provisioning-catalog/domains/cache-management/contract.ncl

29 lines
1 KiB
Text

# cache-management domain contract v0.1.0
#
# Build cache access policy for OCI-backed caches.
# Enables CI/session namespace isolation per ADR-039 / lian-build cache design.
let _CacheAccessMode = [| 'read_only, 'read_write, 'append_only |] in
let _CacheEntry = {
key | String
| doc "Cache key path within the registry namespace (e.g. 'ci/myproject-rust:buildcache')",
access | _CacheAccessMode,
endpoint | String | optional
| doc "Registry endpoint override for this cache entry; falls back to default_endpoint",
} in
let _CacheManagementContext = {
schema_version | String | default = "0.1.0",
workspace | String,
mode_id | String,
default_endpoint | String | optional
| doc "Default registry endpoint for all cache entries unless overridden per entry",
entries | Array _CacheEntry,
} in
{
CacheAccessMode = _CacheAccessMode,
CacheEntry = _CacheEntry,
CacheManagementContext = _CacheManagementContext,
}