<p align="center">
    <img src="resources/provisioning_logo.svg" alt="Provisioning Logo" width="300"/>
</p>

<p align="center">
    <img src="resources/logo-text.svg" alt="Provisioning" width="500"/>
</p>

# Provisioning Platform Documentation

Welcome to the Provisioning Platform documentation. This is an enterprise-grade Infrastructure
as Code (IaC) platform built with Rust, Nushell, and Nickel.

## What is Provisioning

Provisioning is a comprehensive infrastructure automation platform that manages complete
infrastructure lifecycles across multiple cloud providers. The platform emphasizes type-safety,
configuration-driven design, and workspace-first organization.

## Key Features

- **Workspace Management**: Default mode for organizing infrastructure, settings, schemas, and extensions
- **Type-Safe Configuration**: Nickel-based configuration system with validation and contracts
- **Multi-Cloud Support**: Unified interface for AWS, UpCloud, and local providers
- **Modular CLI Architecture**: 111+ commands with 84% code reduction through modularity
- **Batch Workflow Engine**: Orchestrate complex multi-cloud operations
- **Complete Security System**: Authentication, authorization, encryption, and compliance
- **Extensible Architecture**: Custom providers, task services, and plugins

## Getting Started

New users should start with:

1. [Prerequisites](getting-started/prerequisites.md) - System requirements and dependencies
2. [Installation](getting-started/installation.md) - Install the platform
3. [Quick Start](getting-started/quick-start.md) - 5-minute deployment tutorial
4. [First Deployment](getting-started/first-deployment.md) - Comprehensive walkthrough

## Documentation Structure

- **Getting Started**: Installation and initial setup
- **User Guides**: Workflow tutorials and best practices
- **Infrastructure as Code**: Nickel configuration and schema reference
- **Platform Features**: Core capabilities and systems
- **Operations**: Deployment, monitoring, and maintenance
- **Security**: Complete security system documentation
- **Development**: Extension and plugin development
- **API Reference**: REST API and CLI command reference
- **Architecture**: System design and ADRs
- **Examples**: Practical use cases and patterns
- **Troubleshooting**: Problem-solving guides

## Core Technologies

- **Rust**: Platform services and performance-critical components
- **Nushell**: Scripting, CLI, and automation
- **Nickel**: Type-safe infrastructure configuration
- **SecretumVault**: Secrets management integration

## Workspace-First Approach

Provisioning uses workspaces as the default organizational unit. A workspace contains:

- Infrastructure definitions (Nickel schemas)
- Environment-specific settings
- Custom extensions and providers
- Deployment state and metadata

All operations work within workspace context, providing isolation and consistency.

## Support and Community

- **Issues**: Report bugs and request features on GitHub
- **Documentation**: This documentation site
- **Examples**: See the [Examples](examples/README.md) section

## License

See project LICENSE file for details.
