Implement SCUM direct data plane
This commit is contained in:
+31
@@ -0,0 +1,31 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Plugin-declared SCUM data packs
|
||||
The system SHALL allow a SCUM plugin manifest to reference package-relative versioned SQL, log parser, and configuration mapping assets. Every query declaration that produces persisted SCUM rows MUST declare a `scum_*` target table and non-empty upsert keys; inline SQL and browser-supplied SQL MUST be rejected.
|
||||
|
||||
#### Scenario: v57 query declaration resolves a packaged statement
|
||||
- **WHEN** the SCUM v57 plugin package declares a query with a relative `.sql` reference and row-target metadata
|
||||
- **THEN** manifest validation accepts the declaration and distribution includes the referenced asset
|
||||
|
||||
#### Scenario: inline statement is rejected
|
||||
- **WHEN** a manifest contains SQL text instead of a package-relative SQL reference
|
||||
- **THEN** manifest validation rejects the manifest with a declaration error
|
||||
|
||||
### Requirement: Generic SCUM row ingestion
|
||||
The system SHALL ingest rows returned for a registered SCUM data template according to that template's declared target table, upsert keys, and column mappings, without routing by a query-key substring.
|
||||
|
||||
#### Scenario: user rows are ingested
|
||||
- **WHEN** a registered user template returns rows containing its declared key and columns
|
||||
- **THEN** Platform upserts those rows into `scum_users` and records their plugin payload
|
||||
|
||||
#### Scenario: unsupported row target is rejected
|
||||
- **WHEN** a registered data template names a target outside the allowed `scum_*` tables
|
||||
- **THEN** Platform rejects the result before any dataset row is written
|
||||
|
||||
### Requirement: SCUM v57 source coverage
|
||||
The initial SCUM pack SHALL include data declarations for users, squads and members, activity, gifts, and map points, plus parser/mapping declarations for supplied SCUM logs and configuration formats.
|
||||
|
||||
#### Scenario: operators inspect supplied source families
|
||||
- **WHEN** the SCUM plugin package is assembled for database version 57
|
||||
- **THEN** it contains SQL assets and declarations for all five console datasets and log/config parser assets
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Persisted SCUM operations datasets
|
||||
The system SHALL expose persisted SCUM users, squads, activity events, gifts, and map points through Platform APIs scoped to a server instance.
|
||||
|
||||
#### Scenario: a completed sync is queried
|
||||
- **WHEN** an operator requests a SCUM dataset for an instance with persisted records
|
||||
- **THEN** Platform returns only the corresponding persisted `scum_*` rows for that instance
|
||||
|
||||
### Requirement: SCUM operations console views
|
||||
The first-party management console SHALL provide themed views for 用户, 队伍, 活动, 礼包, and 地图 using Platform's persisted SCUM dataset APIs, with an explicit empty state when no sync has completed.
|
||||
|
||||
#### Scenario: data is available
|
||||
- **WHEN** an operator opens a SCUM-enabled server after a data sync
|
||||
- **THEN** the console displays the returned persisted dataset without browser-side SQLite or log access
|
||||
|
||||
#### Scenario: no data is available
|
||||
- **WHEN** an operator opens a SCUM-enabled server with no completed data sync
|
||||
- **THEN** each dataset view displays an empty state rather than synthetic records
|
||||
Reference in New Issue
Block a user