bootstrapper/schemas/tracks.schema.json
Rama main · réplica de lectura del repositorio original.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://atlas/schemas/tracks.schema.json",
"title": "Tracks Registry",
"description": "Schema for bootstrapper/tracks.yml — predefined wizard profiles that curate a subset of source-configurable services for a given user role.",
"type": "object",
"additionalProperties": false,
"required": ["tracks"],
"properties": {
"tracks": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["key", "display_name", "description", "services"],
"properties": {
"key": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*[a-z0-9]$",
"description": "kebab-case track slug (≥2 chars) used by --track and the picker selections key."
},
"display_name": {
"type": "string",
"minLength": 1,
"description": "Human-readable label shown in the wizard picker."
},
"description": {
"type": "string",
"minLength": 1,
"description": "One-line description shown beneath the display name in the picker."
},
"services": {
"oneOf": [
{
"const": "*",
"description": "Sentinel: 'all' track — no filtering applied."
},
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*[a-z0-9]$"
},
"description": "List of services/<name> folder keys that this track curates on top of the always-on tier."
}
]
}
}
}
}
}
}