sky-lattice/blueprint/schemas/intent.schema.json

132 lines
3.5 KiB
JSON
Raw Permalink Normal View History

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://skylattice.dev/schemas/intent.schema.json",
"title": "SkyLatticeCustomerIntent",
"type": "object",
"required": ["customer", "blueprint", "environments", "domains"],
"additionalProperties": false,
"properties": {
"customer": {
"type": "string",
"minLength": 1,
"description": "Customer slug (lowercase, hyphen-safe)."
},
"blueprint": {
"type": "string",
"description": "Pinned blueprint version, e.g. 0.1.0"
},
"mode": {
"type": "string",
"enum": ["greenfield", "brownfield"],
"default": "greenfield"
},
"env_strategy": {
"type": "string",
"enum": ["database_per_env", "account_per_env"],
"default": "database_per_env",
"description": "How environments are isolated."
},
"environments": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"enum": ["dev", "test", "prod", "sandbox"]
},
"uniqueItems": true
},
"domains": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["name"],
"additionalProperties": false,
"properties": {
"name": { "type": "string", "minLength": 1 },
"access_profile": {
"type": "string",
"enum": ["standard", "restricted"],
"default": "standard"
},
"zones": {
"type": "array",
"items": {
"type": "string",
"enum": ["landing", "raw", "curated", "marts", "shared"]
},
"default": ["landing", "raw", "curated", "marts"]
}
}
}
},
"warehouses": {
"type": "object",
"additionalProperties": false,
"properties": {
"profile": {
"type": "string",
"enum": ["standard_cost_saver", "performance"],
"default": "standard_cost_saver"
}
}
},
"identity": {
"type": "object",
"additionalProperties": false,
"properties": {
"sso": {
"type": "string",
"enum": ["none", "planned", "okta", "azure_ad", "other"],
"default": "planned"
},
"service_users": {
"type": "boolean",
"default": true
}
}
},
"overrides": {
"type": "array",
"description": "Structured deviations from blueprint defaults; each should link to a decision id.",
"items": {
"type": "object",
"required": ["path", "value", "decision_id"],
"additionalProperties": false,
"properties": {
"path": { "type": "string" },
"value": {},
"decision_id": { "type": "string" }
}
},
"default": []
},
"unmanaged": {
"type": "array",
"description": "Live objects discovered but not managed by Sky Lattice.",
"items": {
"type": "object",
"required": ["kind", "name"],
"properties": {
"kind": { "type": "string" },
"name": { "type": "string" },
"reason": { "type": "string" },
"decision_id": { "type": "string" }
}
},
"default": []
},
"wizard": {
"type": "object",
"description": "Wizard progress metadata for resume.",
"properties": {
"answered": {
"type": "array",
"items": { "type": "string" }
},
"last_run": { "type": "string" }
}
}
}
}