2026-01-14 04:56:20 +00:00
|
|
|
|
# Provisioning Repository - Changes
|
|
|
|
|
|
|
2026-05-12 02:32:02 +01:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 2026-05-12 — nickel branch consolidation
|
|
|
|
|
|
|
|
|
|
|
|
### ADR-025 Amendments: Eager function-body parse (2026-04-17)
|
|
|
|
|
|
|
|
|
|
|
|
**Decision**: Nushell parses `use` statements inside function bodies at module-load time. Subprocess boundary is the only true lazy-load mechanism.
|
|
|
|
|
|
|
|
|
|
|
|
**Constraints added/amended**:
|
|
|
|
|
|
|
|
|
|
|
|
- `bash-wrapper-has-no-runner-reference` — now permits `provisioning-cli.nu` as transitional fallback
|
2026-05-12 02:40:14 +01:00
|
|
|
|
- `universal-fallback-is-transitional` — 22 unmapped commands are explicit migration debt;
|
|
|
|
|
|
must be resolved before lazy-load architecture is considered complete
|
2026-05-12 02:32:02 +01:00
|
|
|
|
- `every-registry-command-has-thin-handler` — made directional (progress metric, not gate)
|
|
|
|
|
|
|
2026-05-12 02:40:14 +01:00
|
|
|
|
**Rejected approach**: Single-entry `provisioning-cli.nu` for hot paths — measured at 3.1s vs 0.08–0.15s
|
|
|
|
|
|
for thin handlers. All 15 dispatcher wrappers fire at module-load regardless of invoked command.
|
2026-05-12 02:32:02 +01:00
|
|
|
|
|
|
|
|
|
|
**Files**: `adrs/adr-025-unified-lazy-loading.ncl`
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### Platform Services Documentation (2026-02-03)
|
|
|
|
|
|
|
|
|
|
|
|
**All 10 platform services documented** with endpoint catalogue and local setup guide.
|
|
|
|
|
|
|
|
|
|
|
|
**Services**:
|
|
|
|
|
|
|
|
|
|
|
|
| Service | Endpoints | Notes |
|
|
|
|
|
|
| ------- | --------- | ----- |
|
|
|
|
|
|
| vault | 8 | Transit encryption, dynamic secrets |
|
|
|
|
|
|
| registry | 6 | OCI extension distribution |
|
|
|
|
|
|
| control-center | 12 | RBAC, audit, compliance |
|
|
|
|
|
|
| rag | 5 | Vector search, document ingestion |
|
|
|
|
|
|
| ai-service | 7 | Model routing, DAG execution |
|
|
|
|
|
|
| mcp-server | 4 | AI-powered config tools |
|
|
|
|
|
|
| daemon | 3 | State sync, health aggregation |
|
|
|
|
|
|
| orchestrator | 8 | Workflow execution, checkpoints |
|
|
|
|
|
|
| detector | 4 | Anomaly detection, alerts |
|
|
|
|
|
|
| ui | 3 | Web control center frontend |
|
|
|
|
|
|
|
|
|
|
|
|
**Added**:
|
|
|
|
|
|
|
|
|
|
|
|
- `docs/src/operations/platform-services-inventory.md` — 50+ endpoints
|
|
|
|
|
|
- `docs/src/operations/local-services-setup.md` — build, config, troubleshooting
|
|
|
|
|
|
- `scripts/start-local-binaries.nu` — dependency-ordered service startup automation
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### TypeDialog Migration (2026-01-09)
|
|
|
|
|
|
|
|
|
|
|
|
**`forminquire` fully replaced** by TOML-driven `typedialog` with TTY wrappers.
|
|
|
|
|
|
|
|
|
|
|
|
**New form registry** (`.typedialog/`):
|
|
|
|
|
|
|
|
|
|
|
|
- `core/forms/auth-login.toml`
|
|
|
|
|
|
- `core/forms/mfa-enroll.toml`
|
|
|
|
|
|
- `core/forms/setup-wizard.toml`
|
|
|
|
|
|
- `core/forms/infrastructure/server_delete_confirm.toml`
|
|
|
|
|
|
- `core/forms/infrastructure/cluster_delete_confirm.toml`
|
|
|
|
|
|
- `core/forms/infrastructure/taskserv_delete_confirm.toml`
|
|
|
|
|
|
- `core/forms/infrastructure/generic_delete_confirm.toml`
|
|
|
|
|
|
- `platform/forms/ai-service-form.toml` (with Nickel fragment composition)
|
|
|
|
|
|
- `platform/forms/control-center-form.toml`
|
|
|
|
|
|
- `platform/forms/extension-registry-form.toml`
|
|
|
|
|
|
|
|
|
|
|
|
**Documentation**: `.typedialog/README.md`, `platform/forms/README.md`, `platform/forms/fragments/README.md`
|
|
|
|
|
|
|
|
|
|
|
|
**Architecture doc**: `docs/src/architecture/config-loading-architecture.md`
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### Nushell 0.110.0 Compatibility (2026-01-21)
|
|
|
|
|
|
|
|
|
|
|
|
- Fixed `try`/`catch` syntax across `.typedialog/platform/scripts/`, `bootstrap/install.nu`, example deploy scripts
|
|
|
|
|
|
- Updated `external.nu`, `paths.nu`, `export-toml.nu` for Nu 0.110.0 API changes
|
|
|
|
|
|
- Removed stale session reports from `.coder/`
|
|
|
|
|
|
- Relocated `nickel-installation-guide.md` into `docs/src/setup/`
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 2026-01-08 — Nickel IaC migration complete
|
|
|
|
|
|
|
2026-01-14 04:56:20 +00:00
|
|
|
|
**Repository**: provisioning (standalone, nickel branch)
|
2026-05-12 02:32:02 +01:00
|
|
|
|
**Changes**: Nickel IaC migration complete — Legacy KCL and config cleanup
|
2026-01-14 04:56:20 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📋 Summary
|
|
|
|
|
|
|
2026-05-12 02:40:14 +01:00
|
|
|
|
Complete migration to Nickel-based infrastructure-as-code with consolidated configuration strategy.
|
|
|
|
|
|
Legacy KCL schemas, deprecated config files, and redundant documentation removed.
|
|
|
|
|
|
New project structure with `.cargo/`, `.github/`, and schema-driven configuration system.
|
2026-01-14 04:56:20 +00:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📁 Changes by Directory
|
|
|
|
|
|
|
|
|
|
|
|
### ✅ REMOVED (Legacy KCL Ecosystem)
|
|
|
|
|
|
|
|
|
|
|
|
- **config/** - Deprecated TOML configs (config.defaults.toml, kms.toml, plugins.toml, etc.)
|
|
|
|
|
|
- **config/cedar-policies/** - Legacy Cedar policies (moved to Nickel schemas)
|
|
|
|
|
|
- **config/templates/** - Old Jinja2 templates (replaced by Nickel generator/)
|
|
|
|
|
|
- **config/installer-examples/** - KCL-based examples
|
|
|
|
|
|
- **docs/src/** - Legacy documentation (full migration to provisioning/docs/src/)
|
|
|
|
|
|
- **kcl/** - Complete removal (all workspaces migrated to Nickel)
|
|
|
|
|
|
- **tools/kcl-packager.nu** - KCL packaging system
|
|
|
|
|
|
|
|
|
|
|
|
### ✅ ADDED (Nickel IaC & New Structure)
|
|
|
|
|
|
|
|
|
|
|
|
- **.cargo/** - Rust build configuration (clippy settings, rustfmt.toml)
|
|
|
|
|
|
- **.github/** - GitHub Actions CI/CD workflows
|
|
|
|
|
|
- **schemas/** - Nickel schema definitions (primary IaC format)
|
|
|
|
|
|
- main.ncl, provider-aws.ncl, provider-local.ncl, provider-upcloud.ncl
|
|
|
|
|
|
- Infrastructure, deployment, services, operations schemas
|
|
|
|
|
|
- **docs/src/architecture/adr/** - ADR updates for Nickel migration
|
|
|
|
|
|
- adr-010-configuration-format-strategy.md
|
|
|
|
|
|
- adr-011-nickel-migration.md
|
|
|
|
|
|
- adr-012-nushell-nickel-plugin-cli-wrapper.md
|
|
|
|
|
|
|
|
|
|
|
|
### 📝 UPDATED (Core System)
|
|
|
|
|
|
|
|
|
|
|
|
- **provisioning/docs/src/** - Comprehensive product documentation
|
|
|
|
|
|
- API reference, architecture, guides, operations, security, testing
|
|
|
|
|
|
- Nickel configuration guide with examples
|
|
|
|
|
|
- Migrated from legacy KCL documentation
|
|
|
|
|
|
|
|
|
|
|
|
- **core/** - Updated with Nickel integration
|
|
|
|
|
|
- Scripts, plugins, CLI updated for Nickel schema parsing
|
|
|
|
|
|
|
|
|
|
|
|
- **justfiles/** - Added ci.just for Nickel-aware CI/CD
|
|
|
|
|
|
- **README.md** - Complete restructure for Nickel-first approach
|
|
|
|
|
|
- **.gitignore** - Updated to ignore Nickel build artifacts
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📊 Change Statistics
|
|
|
|
|
|
|
|
|
|
|
|
| Category | Removed | Added | Modified |
|
|
|
|
|
|
| ---------- | --------- | ------- | ---------- |
|
|
|
|
|
|
| Configuration | 50+ | 10+ | 3 |
|
|
|
|
|
|
| Documentation | 150+ | 200+ | 40+ |
|
|
|
|
|
|
| Infrastructure | 1 (kcl/) | - | - |
|
|
|
|
|
|
| Plugins | 1 | - | 5+ |
|
|
|
|
|
|
| Build System | 5 | 8+ | 3 |
|
|
|
|
|
|
| **Total** | **~220 files** | **~250 files** | **50+ files** |
|
|
|
|
|
|
|
|
|
|
|
|
## ⚠️ Breaking Changes
|
|
|
|
|
|
|
|
|
|
|
|
1. **KCL Sunset**: All KCL infrastructure code removed. Migrate workspaces using `nickel-kcl-bridge` or rewrite directly in Nickel.
|
|
|
|
|
|
2. **Config Format**: TOML configuration files moved to schema-driven Nickel system. Legacy config loading deprecated.
|
|
|
|
|
|
3. **Documentation**: Old KCL/legacy docs removed. Use `provisioning/docs/` for current product documentation.
|
|
|
|
|
|
4. **Plugin System**: Updated to Nickel-aware plugin API. Legacy Nushell plugins require recompilation.
|
|
|
|
|
|
|
|
|
|
|
|
## 🔧 Migration Path
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# For existing workspaces:
|
|
|
|
|
|
provisioning workspace migrate --from-kcl <workspace-name>
|
|
|
|
|
|
|
|
|
|
|
|
# For custom configs:
|
|
|
|
|
|
nickel eval --format json <your-config.ncl> | jq '.'
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## ✨ Key Features
|
|
|
|
|
|
|
|
|
|
|
|
- **Type-Safe**: Nickel schemas eliminate silent config errors
|
|
|
|
|
|
- **Composable**: Modular infrastructure definitions with lazy evaluation
|
|
|
|
|
|
- **Documented**: Schema validation built-in, IDE support via LSP
|
|
|
|
|
|
- **Validated**: All imports pre-checked, circular dependencies prevented
|
|
|
|
|
|
- **Bridge Available**: `nickel-kcl-bridge` for gradual KCL→Nickel migration
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📝 Implementation Details
|
|
|
|
|
|
|
|
|
|
|
|
### Nickel Schema System
|
|
|
|
|
|
|
|
|
|
|
|
- **Three-tier architecture**: infrastructure, operations, deployment
|
|
|
|
|
|
- **Lazy evaluation**: Efficient resource binding and composition
|
|
|
|
|
|
- **Record merging**: Clean override patterns without duplication
|
|
|
|
|
|
- **Type validation**: LSP-aware with IDE auto-completion
|
|
|
|
|
|
- **Generator system**: Nickel-based dynamic configuration at runtime
|
|
|
|
|
|
|
|
|
|
|
|
### Documentation Reorganization
|
|
|
|
|
|
|
|
|
|
|
|
- **provisioning/docs/src/** (200+ files) - Customer-facing product docs
|
|
|
|
|
|
- **docs/src/** (20-30 files) - Architecture and development guidelines
|
|
|
|
|
|
- **.coder/** - Session files and implementation records
|
|
|
|
|
|
- Separation of concerns: Product docs isolated from session artifacts
|
|
|
|
|
|
|
|
|
|
|
|
### CI/CD Integration
|
|
|
|
|
|
|
|
|
|
|
|
- GitHub Actions workflows for Rust, Nickel, Nushell
|
|
|
|
|
|
- Automated schema validation pre-commit
|
|
|
|
|
|
- Cross-platform testing (Linux, macOS)
|
|
|
|
|
|
- Build artifact caching for fast iteration
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## ⚠️ Compatibility Notes
|
|
|
|
|
|
|
|
|
|
|
|
**Breaking**: KCL workspaces require migration to Nickel. Use schema-aware tooling for validation.
|
|
|
|
|
|
|
|
|
|
|
|
**Migration support**: `nickel-kcl-bridge` tool and guides available in `provisioning/docs/src/development/`.
|
|
|
|
|
|
|
|
|
|
|
|
**Legacy configs**: Old TOML files no longer loaded. Migrate to Nickel schema format via CLI tool.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
**Status**: Nickel migration complete. System is production-ready.
|
|
|
|
|
|
**Date**: 2026-01-08
|
2026-01-14 05:01:36 +00:00
|
|
|
|
**Branch**: nickel
|
2026-05-12 02:32:02 +01:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
*Last updated: 2026-05-12*
|