provisioning/CHANGELOG.md

5.0 KiB

Provisioning Repository - Changes\n\nDate: 2026-01-08\nRepository: provisioning (standalone, nickel branch)\nChanges: Nickel IaC migration complete - Legacy KCL and config cleanup\n\n---\n\n## 📋 Summary\n\nComplete 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.\n\n---\n\n## 📁 Changes by Directory\n\n### REMOVED (Legacy KCL Ecosystem)\n\n- config/ - Deprecated TOML configs (config.defaults.toml, kms.toml, plugins.toml, etc.)\n- config/cedar-policies/ - Legacy Cedar policies (moved to Nickel schemas)\n- config/templates/ - Old Jinja2 templates (replaced by Nickel generator/)\n- config/installer-examples/ - KCL-based examples\n- docs/src/ - Legacy documentation (full migration to provisioning/docs/src/)\n- kcl/ - Complete removal (all workspaces migrated to Nickel)\n- tools/kcl-packager.nu - KCL packaging system\n\n### ADDED (Nickel IaC & New Structure)\n\n- .cargo/ - Rust build configuration (clippy settings, rustfmt.toml)\n- .github/ - GitHub Actions CI/CD workflows\n- schemas/ - Nickel schema definitions (primary IaC format)\n - main.ncl, provider-aws.ncl, provider-local.ncl, provider-upcloud.ncl\n - Infrastructure, deployment, services, operations schemas\n- docs/src/architecture/adr/ - ADR updates for Nickel migration\n - adr-010-configuration-format-strategy.md\n - adr-011-nickel-migration.md\n - adr-012-nushell-nickel-plugin-cli-wrapper.md\n\n### 📝 UPDATED (Core System)\n\n- provisioning/docs/src/ - Comprehensive product documentation\n - API reference, architecture, guides, operations, security, testing\n - Nickel configuration guide with examples\n - Migrated from legacy KCL documentation\n\n- core/ - Updated with Nickel integration\n - Scripts, plugins, CLI updated for Nickel schema parsing\n\n- justfiles/ - Added ci.just for Nickel-aware CI/CD\n- README.md - Complete restructure for Nickel-first approach\n- .gitignore - Updated to ignore Nickel build artifacts\n\n---\n\n## 📊 Change Statistics\n\n| Category | Removed | Added | Modified |\n| ---------- | --------- | ------- | ---------- |\n| Configuration | 50+ | 10+ | 3 |\n| Documentation | 150+ | 200+ | 40+ |\n| Infrastructure | 1 (kcl/) | - | - |\n| Plugins | 1 | - | 5+ |\n| Build System | 5 | 8+ | 3 |\n| Total | ~220 files | ~250 files | 50+ files |\n\n## ⚠️ Breaking Changes\n\n1. KCL Sunset: All KCL infrastructure code removed. Migrate workspaces using nickel-kcl-bridge or rewrite directly in Nickel.\n2. Config Format: TOML configuration files moved to schema-driven Nickel system. Legacy config loading deprecated.\n3. Documentation: Old KCL/legacy docs removed. Use provisioning/docs/ for current product documentation.\n4. Plugin System: Updated to Nickel-aware plugin API. Legacy Nushell plugins require recompilation.\n\n## 🔧 Migration Path\n\n\n# For existing workspaces:\nprovisioning workspace migrate --from-kcl <workspace-name>\n\n# For custom configs:\nnickel eval --format json <your-config.ncl> | jq '.'\n\n\n## Key Features\n\n- Type-Safe: Nickel schemas eliminate silent config errors\n- Composable: Modular infrastructure definitions with lazy evaluation\n- Documented: Schema validation built-in, IDE support via LSP\n- Validated: All imports pre-checked, circular dependencies prevented\n- Bridge Available: nickel-kcl-bridge for gradual KCL→Nickel migration\n\n---\n\n## 📝 Implementation Details\n\n### Nickel Schema System\n\n- Three-tier architecture: infrastructure, operations, deployment\n- Lazy evaluation: Efficient resource binding and composition\n- Record merging: Clean override patterns without duplication\n- Type validation: LSP-aware with IDE auto-completion\n- Generator system: Nickel-based dynamic configuration at runtime\n\n### Documentation Reorganization\n\n- provisioning/docs/src/ (200+ files) - Customer-facing product docs\n- docs/src/ (20-30 files) - Architecture and development guidelines\n- .coder/ - Session files and implementation records\n- Separation of concerns: Product docs isolated from session artifacts\n\n### CI/CD Integration\n\n- GitHub Actions workflows for Rust, Nickel, Nushell\n- Automated schema validation pre-commit\n- Cross-platform testing (Linux, macOS)\n- Build artifact caching for fast iteration\n\n---\n\n## ⚠️ Compatibility Notes\n\nBreaking: KCL workspaces require migration to Nickel. Use schema-aware tooling for validation.\n\nMigration support: nickel-kcl-bridge tool and guides available in provisioning/docs/src/development/.\n\nLegacy configs: Old TOML files no longer loaded. Migrate to Nickel schema format via CLI tool.\n\n---\n\nStatus: Nickel migration complete. System is production-ready.\nDate: 2026-01-08\nBranch: nickel