- Remove KCL ecosystem (~220 files deleted) - Migrate all infrastructure to Nickel schema system - Consolidate documentation: legacy docs → provisioning/docs/src/ - Add CI/CD workflows (.github/) and Rust build config (.cargo/) - Update core system for Nickel schema parsing - Update README.md and CHANGES.md for v5.0.0 release - Fix pre-commit hooks: end-of-file, trailing-whitespace - Breaking changes: KCL workspaces require migration - Migration bridge available in docs/src/development/
35 lines
775 B
Plaintext
35 lines
775 B
Plaintext
# Workspace Configuration Schema
|
|
# Defines the structure and validation rules for workspace metadata and settings
|
|
|
|
let defaults = import "./workspace-defaults.ncl" in
|
|
|
|
{
|
|
# Contract definitions for workspace components
|
|
|
|
WorkspaceMetadata = {
|
|
owner | String,
|
|
created | String,
|
|
environment | String,
|
|
},
|
|
|
|
WorkspaceConfig = {
|
|
name | String,
|
|
path | String,
|
|
description | String,
|
|
metadata | WorkspaceMetadata,
|
|
},
|
|
|
|
# Hybrid interface: Defaults, makers, and instances
|
|
defaults = defaults,
|
|
|
|
make_metadata | not_exported = fun o =>
|
|
defaults.metadata & o,
|
|
|
|
make_workspace | not_exported = fun o =>
|
|
defaults.workspace & o,
|
|
|
|
# Default instances
|
|
DefaultMetadata = defaults.metadata,
|
|
DefaultWorkspaceConfig = defaults.workspace,
|
|
}
|