- Implemented PolicyDslValidator with command-line options for strict mode and JSON output. - Created PolicySchemaExporter to generate JSON schemas for policy-related models. - Developed PolicySimulationSmoke tool to validate policy simulations against expected outcomes. - Added project files and necessary dependencies for each tool. - Ensured proper error handling and usage instructions across tools.
197 lines
5.6 KiB
JSON
197 lines
5.6 KiB
JSON
{
|
|
"$id": "https://stella-ops.org/schemas/events/scheduler.graph.job.completed@1.json",
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "Scheduler Graph Job Completed Event",
|
|
"description": "Legacy scheduler event emitted when a graph build or overlay job reaches a terminal state. Consumers validate downstream caches and surface overlay freshness.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["eventId", "kind", "tenant", "ts", "payload"],
|
|
"properties": {
|
|
"eventId": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"description": "Globally unique identifier per event."
|
|
},
|
|
"kind": {
|
|
"const": "scheduler.graph.job.completed"
|
|
},
|
|
"tenant": {
|
|
"type": "string",
|
|
"description": "Tenant identifier scoped to the originating job."
|
|
},
|
|
"ts": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "UTC timestamp when the job reached a terminal state."
|
|
},
|
|
"payload": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["jobType", "job", "status", "occurredAt"],
|
|
"properties": {
|
|
"jobType": {
|
|
"type": "string",
|
|
"enum": ["build", "overlay"],
|
|
"description": "Job flavour, matches the CLR type of the serialized job payload."
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": ["completed", "failed", "cancelled"],
|
|
"description": "Terminal status recorded for the job."
|
|
},
|
|
"occurredAt": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "UTC timestamp of the terminal transition, mirrors job.CompletedAt."
|
|
},
|
|
"job": {
|
|
"oneOf": [
|
|
{"$ref": "#/definitions/graphBuildJob"},
|
|
{"$ref": "#/definitions/graphOverlayJob"}
|
|
],
|
|
"description": "Canonical serialized representation of the finished job."
|
|
},
|
|
"resultUri": {
|
|
"type": "string",
|
|
"description": "Optional URI pointing to Cartographer snapshot or overlay bundle (if available)."
|
|
}
|
|
}
|
|
},
|
|
"attributes": {
|
|
"type": "object",
|
|
"description": "Optional correlation bag for downstream consumers.",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"graphBuildJob": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schemaVersion",
|
|
"id",
|
|
"tenantId",
|
|
"sbomId",
|
|
"sbomVersionId",
|
|
"sbomDigest",
|
|
"status",
|
|
"trigger",
|
|
"attempts",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"schemaVersion": {
|
|
"const": "scheduler.graph-build-job@1"
|
|
},
|
|
"id": {"type": "string"},
|
|
"tenantId": {"type": "string"},
|
|
"sbomId": {"type": "string"},
|
|
"sbomVersionId": {"type": "string"},
|
|
"sbomDigest": {
|
|
"type": "string",
|
|
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
},
|
|
"graphSnapshotId": {"type": "string"},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": ["pending", "queued", "running", "completed", "failed", "cancelled"]
|
|
},
|
|
"trigger": {
|
|
"type": "string",
|
|
"enum": ["sbom-version", "backfill", "manual"]
|
|
},
|
|
"attempts": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"cartographerJobId": {"type": "string"},
|
|
"correlationId": {"type": "string"},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"startedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"completedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"error": {"type": "string"},
|
|
"metadata": {
|
|
"type": "object",
|
|
"additionalProperties": {"type": "string"}
|
|
}
|
|
}
|
|
},
|
|
"graphOverlayJob": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schemaVersion",
|
|
"id",
|
|
"tenantId",
|
|
"graphSnapshotId",
|
|
"overlayKind",
|
|
"overlayKey",
|
|
"status",
|
|
"trigger",
|
|
"attempts",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"schemaVersion": {
|
|
"const": "scheduler.graph-overlay-job@1"
|
|
},
|
|
"id": {"type": "string"},
|
|
"tenantId": {"type": "string"},
|
|
"graphSnapshotId": {"type": "string"},
|
|
"buildJobId": {"type": "string"},
|
|
"overlayKind": {
|
|
"type": "string",
|
|
"enum": ["policy", "advisory", "vex"]
|
|
},
|
|
"overlayKey": {"type": "string"},
|
|
"subjects": {
|
|
"type": "array",
|
|
"items": {"type": "string"},
|
|
"uniqueItems": true
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": ["pending", "queued", "running", "completed", "failed", "cancelled"]
|
|
},
|
|
"trigger": {
|
|
"type": "string",
|
|
"enum": ["policy", "advisory", "vex", "sbom-version", "manual"]
|
|
},
|
|
"attempts": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"correlationId": {"type": "string"},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"startedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"completedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"error": {"type": "string"},
|
|
"metadata": {
|
|
"type": "object",
|
|
"additionalProperties": {"type": "string"}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|