diff --git a/assets/provisioning.svg b/assets/provisioning.svg new file mode 100644 index 0000000..0323a9b --- /dev/null +++ b/assets/provisioning.svg @@ -0,0 +1,241 @@ + + diff --git a/assets/provisioning_img.svg b/assets/provisioning_img.svg new file mode 100644 index 0000000..d8320ac --- /dev/null +++ b/assets/provisioning_img.svg @@ -0,0 +1,161 @@ + + diff --git a/assets/provisioning_v.svg b/assets/provisioning_v.svg new file mode 100644 index 0000000..f701b3e --- /dev/null +++ b/assets/provisioning_v.svg @@ -0,0 +1,243 @@ + + diff --git a/assets/web/README.md b/assets/web/README.md new file mode 100644 index 0000000..42f4dab --- /dev/null +++ b/assets/web/README.md @@ -0,0 +1,217 @@ +# Provisioning Web Assets + +Web-based landing page and static content for Provisioning. + +## Directory Structure + +```text +assets/web/ +├── src/ +│ ├── index.html # Source HTML (readable, 38.3KB) +│ └── architecture-diagram.html # Architecture diagram (readable, 28.1KB) +├── index.html # Minified landing page (19.8KB) +├── architecture-diagram.html # Minified architecture (21.3KB) +├── provisioning.svg # Logo (12KB) +├── logo-text.svg # Logo text (14KB) +├── minify.sh # Minification script +└── README.md # This file +``` + +## Files + +### `src/index.html` - Source Version + +- **Purpose**: Development and maintenance +- **Size**: 38.1KB (uncompressed) +- **Content**: + - Full formatting and indentation + - Inline CSS and JavaScript + - Bilingual (English/Spanish) content + - Language-aware dynamic switching + - Core capabilities showcase + - Technology stack display + - 13 Platform services showcase + +**Use for:** +- Editing content +- Understanding structure +- Version control +- Making translations updates + +### `index.html` - Production Version + +- **Purpose**: Served to browsers (fast loading) +- **Size**: 19.8KB (48% compression) +- **Optimizations**: + - Removed all comments + - Compressed CSS (removed spaces, combined rules) + - Minified JavaScript (single line) + - Removed whitespace between tags + - Preserved all functionality + +**Use for:** +- Production web server +- CDN distribution +- Browser caching +- Fast load times + +### `architecture-diagram.html` - Architecture Visualization + +- **Purpose**: Interactive system architecture diagram +- **Size**: 28.1KB source → 21.3KB minified (24% compression) +- **Content**: + - Visual representation of Provisioning platform + - Component relationships and data flows + - Interactive SVG diagram + - Dark theme with animations + +**Use for:** +- Understanding system design +- Architecture documentation +- Technical presentations +- Linked from landing page via "🏗️ ARCH" button + +## How to Use + +### Development + +Edit `src/index.html`: + +```bash +# Edit source file +nano provisioning/assets/web/src/index.html + +# Regenerate minified version (script below) +``` + +### Update Minified Versions + +When you update any source file in `src/`, regenerate all minified versions: + +```bash +# Minify both index.html and architecture-diagram.html +./provisioning/assets/web/minify.sh +``` + +This script automatically: +- Minifies `src/index.html` → `index.html` +- Minifies `src/architecture-diagram.html` → `architecture-diagram.html` +- Shows compression statistics for each file +- Validates that source files exist before processing +- Stops on any errors + +### Deployment + +Serve `index.html` from your web server: + +```bash + +# Using Rust +cargo install static-web-server +static-web-server -d provisioning/assets/web/ + +# Using Python +python3 -m http.server --directory provisioning/assets/web + +# Using Node.js +npx http-server provisioning/assets/web + +# Using nginx +# Point root to provisioning/assets/web/ +# Serve index.html as default +``` + +## Features + +✅ **Responsive Design** +- Mobile-first approach +- Flexbox layouts +- Media queries for mobile + +✅ **Performance** +- Inline CSS (no separate requests) +- Inline JavaScript (no blocking external scripts) +- Minimal dependencies (no frameworks) +- 19.6KB minified size + +✅ **Bilingual** +- English and Spanish +- LocalStorage persistence +- Data attributes for translations +- Dynamic language switching + +✅ **Modern CSS** +- CSS Gradients +- Animations (fadeInUp) +- Hover effects +- Grid layouts + +✅ **Styling** +- Provisioning color scheme +- Gradient backgrounds +- Monospace font (JetBrains Mono) +- Smooth transitions + +## Content Sections + +1. **Hero** - Title, tagline, logo (provisioning.svg + logo-text.svg) +2. **Core Capabilities** - 4 key capabilities +3. **How It Works** - Feature overview +4. **Technology Stack** - Tech badges +5. **Platform Services** - 13 core services: + - Orchestrator (Workflow engine) + - ControlCenter (CEDAR + AUTH) + - ControlCenter-UI (Dashboard interface) + - Installer (TUI + CLI + Unattended) + - MCP-Server (RAG + AI services) + - API-Gateway (REST routing) + - OCI-Registry (Extension distribution) + - Extension-Registry (Extension catalog) + - SecretumVault (PQC vault) + - TypeDialog (Type-safe config) + - Daemon-CLI (Service management) + - Monitoring (Prometheus + Grafana) + - CoreDNS (Service discovery) +6. **CTA** - Call-to-action button +7. **Footer** - Credits and links + +## Translations + +All text content is bilingual. Edit data attributes in `src/index.html`: + +```html + +Hello +``` + +The JavaScript automatically updates based on selected language. + +## Maintenance + +- Source edits go in `src/index.html` +- Regenerate `index.html` when source changes +- Both files are versioned in git +- Keep them in sync + +## Git Workflow + +```bash +# Edit source +git add provisioning/assets/web/src/index.html +git add provisioning/assets/web/index.html +git commit -m "Update landing page content" +git push +``` + +## Compression Statistics + +|File|Source|Minified|Compression|Saved| +|---|---|---|---|---| +|`index.html`|38.3KB|19.8KB|48%|18.5KB| +|`architecture-diagram.html`|28.1KB|21.3KB|24%|6.8KB| +|**TOTAL**|**66.4KB**|**41.1KB**|**38%**|**25.3KB**| + +--- + +**Last Updated**: 2026-02-10 +**Version**: 1.0.0 (matches Provisioning v3.5.0) diff --git a/assets/web/_index.html b/assets/web/_index.html new file mode 100644 index 0000000..c313b92 --- /dev/null +++ b/assets/web/_index.html @@ -0,0 +1,1394 @@ + + +
+ + +Provision at Scale
+
+ Declarative infrastructure
+
+ management with Nickel schemas, Nushell orchestration,
+ and Rust executables. Type-safe configuration, automated
+ validation, and cloud-native deployment across
+ Kubernetes, Docker, and custom platforms.
+
+
100% infrastructure as code.
+
+
+ Nickel provides formal type checking, automated + validation, and recursive merging for infrastructure + definitions. Eliminate configuration drift and + parsing errors. +
++ Nushell scripts orchestrate complex deployment + workflows with structured data pipelines, state + management, and error recovery. Built-in type system + prevents runtime failures. +
++ Deploy to Kubernetes, Docker Compose, local VMs, and + custom infrastructure. Unified interface with + platform-specific overrides and workspace isolation. +
++ All infrastructure lives in Git. Configuration + schemas, Nickel modules, and Nushell scripts are + versionable, reviewable, and rollbackable. +
++ Write declarative infrastructure schemas with full + type safety. Nickel's lazy evaluation and recursive + merging enable powerful abstractions and + configuration composition. +
+ → Easy config via TypeDialog ++ Structured data pipelines, type-safe operations, and + stateful workflows. Nushell eliminates shell script + fragility while maintaining scripting simplicity. +
+ → Nushell plugins added ++ Performance-critical operations backed by Rust. + Zero-cost abstractions, memory safety, and fearless + concurrency for infrastructure tooling. +
++ Persistent event bus for decoupled service + coordination. Services exchange lease_id, task_id, + and status events — credentials never traverse the + bus. Auditable, replay-capable, at-least-once + delivery. +
++ Cedar policy-as-code for authorization, JWT sessions + managed exclusively by ControlCenter, and + post-quantum cryptography via SecretumVault. + Credentials never leave the vault — services operate + on lease references only. +
+ → SecretumVault repo ++ Distribute custom providers, task services, and + cluster definitions as OCI artifacts. The Extension + Registry catalogs and versions capabilities + independently — swap or compose providers without + touching core platform code. +
+ → Provisioning Extensions ++ 8 platform subcommands (list, status, health, check, + config, connections, init, start) with declarative + external service management. Validates SurrealDB, OCI + registries (Zot/Harbor), Git sources (Forgejo/Gitea), + and cache before startup. +
++ All tool and provider versions defined in Nickel + schemas. Generates bash-compatible exports via + ‘provisioning setup versions’. Automatic + provider discovery, shell script integration, and + single source of truth for Nushell, Nickel, SOPS, + Age, AWS CLI, and all providers. +
++ All hcloud, AWS, and provider SDK calls are isolated + to the Orchestrator crate. Every other service routes + through the Orchestrator HTTP API. SSH operations + share this same boundary. +
++ JWT validation and Cedar policy evaluation happen + exclusively in ControlCenter. Other services receive + a UserContext via middleware — no service re-validates + tokens or evaluates policies directly. +
++ Credentials are never stored in NATS messages or + environment variables. Services hold a lease_id and + retrieve actual secrets via HTTPS to the Vault + Service. The bus carries references, not values. +
++ Built with Nickel & Nushell | Type-Safe | Open Source +
+ Explore Git Repo → +Provision at Scale
Declarative infrastructure management with Nickel schemas, Nushell orchestration, and Rust executables. Type-safe configuration, automated validation, and cloud-native deployment across Kubernetes, Docker, and custom platforms.
100% infrastructure as code.
Nickel provides formal type checking, automated validation, and recursive merging for infrastructure definitions. Eliminate configuration drift and parsing errors.
Nushell scripts orchestrate complex deployment workflows with structured data pipelines, state management, and error recovery. Built-in type system prevents runtime failures.
Deploy to Kubernetes, Docker Compose, local VMs, and custom infrastructure. Unified interface with platform-specific overrides and workspace isolation.
All infrastructure lives in Git. Configuration schemas, Nickel modules, and Nushell scripts are versionable, reviewable, and rollbackable.
Write declarative infrastructure schemas with full type safety. Nickel's lazy evaluation and recursive merging enable powerful abstractions and configuration composition.
→ Easy config via TypeDialogStructured data pipelines, type-safe operations, and stateful workflows. Nushell eliminates shell script fragility while maintaining scripting simplicity.
→ Nushell plugins addedPerformance-critical operations backed by Rust. Zero-cost abstractions, memory safety, and fearless concurrency for infrastructure tooling.
Persistent event bus for decoupled service coordination. Services exchange lease_id, task_id, and status events — credentials never traverse the bus. Auditable, replay-capable, at-least-once delivery.
Cedar policy-as-code for authorization, JWT sessions managed exclusively by ControlCenter, and post-quantum cryptography via SecretumVault. Credentials never leave the vault — services operate on lease references only.
→ SecretumVault repoDistribute custom providers, task services, and cluster definitions as OCI artifacts. The Extension Registry catalogs and versions capabilities independently — swap or compose providers without touching core platform code.
→ Provisioning Extensions8 platform subcommands (list, status, health, check, config, connections, init, start) with declarative external service management. Validates SurrealDB, OCI registries (Zot/Harbor), Git sources (Forgejo/Gitea), and cache before startup.
All tool and provider versions defined in Nickel schemas. Generates bash-compatible exports via ‘provisioning setup versions’. Automatic provider discovery, shell script integration, and single source of truth for Nushell, Nickel, SOPS, Age, AWS CLI, and all providers.
Workspace taskserv pipelines declared as typed Nickel DAGs — referential integrity validated at schema time. Formula::into_workflow converts to WorkflowDefinition consumed by the existing DependencyGraph with max_parallel_tasks dispatch. Parallelism and on_error semantics are declarative, not implicit.
.ontology/core.ncl declares architectural nodes, invariants, and artifact paths. The on+re protocol runs governance modes (assess, audit, coverage, validate-formula) that detect MISSING artifacts and STALE node claims — keeping declared architecture in sync with the codebase at scan time.
All hcloud, AWS, and provider SDK calls are isolated to the Orchestrator crate. Every other service routes through the Orchestrator HTTP API. SSH operations share this same boundary.
JWT validation and Cedar policy evaluation happen exclusively in ControlCenter. Other services receive a UserContext via middleware — no service re-validates tokens or evaluates policies directly.
Credentials are never stored in NATS messages or environment variables. Services hold a lease_id and retrieve actual secrets via HTTPS to the Vault Service. The bus carries references, not values.
Built with Nickel & Nushell | Type-Safe | Open Source
Explore Git Repo →