# Provisioning Repository - Changes **Date**: 2026-01-08 **Repository**: provisioning (standalone, nickel branch) **Changes**: Nickel IaC migration complete - Legacy KCL and config cleanup --- ## πŸ“‹ Summary 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. --- ## πŸ“ 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 # For custom configs: nickel eval --format json | 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 **Branch**: nickel