- Introduced `ReachabilityState`, `RuntimeHit`, `ExploitabilitySignal`, `ReachabilitySignal`, `SignalEnvelope`, `SignalType`, `TrustSignal`, and `UnknownSymbolSignal` records to define various signal types and their properties. - Implemented JSON serialization attributes for proper data interchange. - Created project files for the new signal contracts library and corresponding test projects. - Added deterministic test fixtures for micro-interaction testing. - Included cryptographic keys for secure operations with cosign.
73 lines
2.3 KiB
JSON
73 lines
2.3 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://stella-ops.org/ui/schemas/ui-micro.schema.json",
|
|
"title": "UI Micro-Interaction Telemetry Event",
|
|
"description": "Schema for ui.micro.* telemetry events (MI7)",
|
|
"type": "object",
|
|
"required": ["schema_version", "event_type", "timestamp", "tenant_id", "surface", "component", "action"],
|
|
"properties": {
|
|
"schema_version": {
|
|
"type": "string",
|
|
"pattern": "^v[0-9]+\\.[0-9]+$",
|
|
"description": "Schema version (e.g., v1.0)"
|
|
},
|
|
"event_type": {
|
|
"type": "string",
|
|
"enum": ["ui.micro.interaction", "ui.micro.error", "ui.micro.latency", "ui.micro.state_change"],
|
|
"description": "Event type category"
|
|
},
|
|
"timestamp": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "ISO-8601 UTC timestamp"
|
|
},
|
|
"tenant_id": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"description": "Tenant identifier (required for scoping)"
|
|
},
|
|
"surface": {
|
|
"type": "string",
|
|
"enum": ["dashboard", "vulnerabilities", "graph", "exceptions", "releases", "settings", "onboarding"],
|
|
"description": "UI surface/page where interaction occurred"
|
|
},
|
|
"component": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"description": "Component name (e.g., button, modal, dropdown)"
|
|
},
|
|
"action": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"description": "Action taken (e.g., click, hover, focus, submit, dismiss)"
|
|
},
|
|
"latency_ms": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Time from action to visual feedback in milliseconds"
|
|
},
|
|
"outcome": {
|
|
"type": "string",
|
|
"enum": ["success", "error", "cancelled", "timeout", "offline"],
|
|
"description": "Result of the interaction"
|
|
},
|
|
"reduced_motion": {
|
|
"type": "boolean",
|
|
"description": "True if user has prefers-reduced-motion enabled"
|
|
},
|
|
"offline_mode": {
|
|
"type": "boolean",
|
|
"description": "True if app is in offline mode"
|
|
},
|
|
"error_code": {
|
|
"type": ["string", "null"],
|
|
"description": "Error code if outcome is error (e.g., UI_ERR_001)"
|
|
},
|
|
"correlation_id": {
|
|
"type": "string",
|
|
"description": "Trace correlation ID for request tracing"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|