132 lines
3.5 KiB
JSON
132 lines
3.5 KiB
JSON
|
|
{
|
||
|
|
"$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" }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|