Jesús Pérez 44648e3206
chore: complete nickel migration and consolidate legacy configs
- 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/
2026-01-08 09:55:37 +00:00

53 lines
953 B
Plaintext

# UpCloud Provider Configuration Schema
let defaults = import "./upcloud-defaults.ncl" in
{
# Contract definitions
UpCloudAuth = {
interface | String, # API or CLI
},
UpCloudPaths = {
base | String,
cache | String,
state | String,
},
UpCloudAPI = {
url | String,
timeout | Number,
},
UpCloudProvider = {
name | String,
enabled | Bool,
workspace | String,
auth | UpCloudAuth,
paths | UpCloudPaths,
api | UpCloudAPI,
},
# Hybrid interface
defaults = defaults,
make_auth | not_exported = fun o =>
defaults.auth & o,
make_paths | not_exported = fun o =>
defaults.paths & o,
make_api | not_exported = fun o =>
defaults.api & o,
make_upcloud | not_exported = fun o =>
defaults.upcloud & o,
# Default instances
DefaultAuth = defaults.auth,
DefaultPaths = defaults.paths,
DefaultAPI = defaults.api,
DefaultUpCloudProvider = defaults.upcloud,
}