feat: Add UI benchmark driver and scenarios for graph interactions
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
- Introduced `ui_bench_driver.mjs` to read scenarios and fixture manifest, generating a deterministic run plan. - Created `ui_bench_plan.md` outlining the purpose, scope, and next steps for the benchmark. - Added `ui_bench_scenarios.json` containing various scenarios for graph UI interactions. - Implemented tests for CLI commands, ensuring bundle verification and telemetry defaults. - Developed schemas for orchestrator components, including replay manifests and event envelopes. - Added mock API for risk management, including listing and statistics functionalities. - Implemented models for risk profiles and query options to support the new API.
This commit is contained in:
46
docs/modules/telemetry/schemas/telemetry-bundle.schema.json
Normal file
46
docs/modules/telemetry/schemas/telemetry-bundle.schema.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "StellaOps Telemetry Bundle Manifest",
|
||||
"version": "1.0.0",
|
||||
"type": "object",
|
||||
"required": ["schemaVersion", "bundleId", "createdAt", "artifacts", "manifestHashAlgorithm", "timeAnchor"],
|
||||
"properties": {
|
||||
"schemaVersion": { "type": "string", "const": "1.0.0" },
|
||||
"bundleId": { "type": "string", "format": "uuid" },
|
||||
"createdAt": { "type": "string", "format": "date-time" },
|
||||
"profileHash": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
|
||||
"collectorVersion": { "type": "string" },
|
||||
"sealedMode": { "type": "boolean" },
|
||||
"redactionManifest": { "type": "string" },
|
||||
"manifestHashAlgorithm": { "type": "string", "enum": ["sha256"] },
|
||||
"timeAnchor": {
|
||||
"type": "object",
|
||||
"required": ["type", "value"],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["rfc3161", "roughtime"] },
|
||||
"value": { "type": "string" }
|
||||
}
|
||||
},
|
||||
"artifacts": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["path", "sha256", "mediaType"],
|
||||
"properties": {
|
||||
"path": { "type": "string" },
|
||||
"sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
|
||||
"mediaType": { "type": "string" },
|
||||
"size": { "type": "integer", "minimum": 0 }
|
||||
}
|
||||
}
|
||||
},
|
||||
"dsseEnvelope": {
|
||||
"type": "object",
|
||||
"required": ["hash"],
|
||||
"properties": {
|
||||
"hash": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
|
||||
"location": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
75
docs/modules/telemetry/schemas/telemetry-config.schema.json
Normal file
75
docs/modules/telemetry/schemas/telemetry-config.schema.json
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "StellaOps Telemetry Config",
|
||||
"version": "1.0.0",
|
||||
"type": "object",
|
||||
"required": ["schemaVersion", "profiles"],
|
||||
"properties": {
|
||||
"schemaVersion": { "type": "string", "const": "1.0.0" },
|
||||
"hashAlgorithm": { "type": "string", "enum": ["sha256"] },
|
||||
"profiles": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["name", "collectorVersion", "exporters", "redactionPolicyUri", "sampling"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"description": { "type": "string" },
|
||||
"collectorVersion": { "type": "string" },
|
||||
"cryptoProfile": { "type": "string" },
|
||||
"sealedMode": { "type": "boolean" },
|
||||
"allowlistedEndpoints": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "format": "uri" }
|
||||
},
|
||||
"exporters": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["type", "endpoint"],
|
||||
"properties": {
|
||||
"type": { "type": "string", "enum": ["otlp", "file", "stdout", "null"] },
|
||||
"endpoint": { "type": "string" },
|
||||
"protocol": { "type": "string", "enum": ["grpc", "http"] },
|
||||
"compression": { "type": "string", "enum": ["none", "gzip"] },
|
||||
"enabled": { "type": "boolean", "default": true }
|
||||
}
|
||||
}
|
||||
},
|
||||
"redactionPolicyUri": { "type": "string", "format": "uri" },
|
||||
"sampling": {
|
||||
"type": "object",
|
||||
"required": ["strategy", "seed"],
|
||||
"properties": {
|
||||
"strategy": { "type": "string", "enum": ["always_on", "always_off", "traceidratio", "tail"] },
|
||||
"seed": { "type": "string", "pattern": "^[0-9a-fA-F]{16}$" },
|
||||
"rules": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["match", "priority"],
|
||||
"properties": {
|
||||
"match": { "type": "string" },
|
||||
"priority": { "type": "integer", "minimum": 0 },
|
||||
"sampleRate": { "type": "number", "minimum": 0, "maximum": 1 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"tenantRouting": {
|
||||
"type": "object",
|
||||
"required": ["attribute"],
|
||||
"properties": {
|
||||
"attribute": { "type": "string", "const": "tenant.id" },
|
||||
"quotasPerTenant": {
|
||||
"type": "object",
|
||||
"additionalProperties": { "type": "integer", "minimum": 0 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user