249 lines
8.7 KiB
Markdown
249 lines
8.7 KiB
Markdown
<div align="center">
|
||
<img src="assets/logos/stratumiops-h.svg" alt="StratumIOps Logo" width="600" />
|
||
</div>
|
||
|
||
# StratumIOps
|
||
|
||
**Infrastructure operations, AI agent orchestration, knowledge management, secrets management, and configuration generation.**
|
||
|
||
Five integrated Rust projects. One ecosystem. Zero compromises.
|
||
|
||
---
|
||
|
||
## The 4 Problems It Solves
|
||
|
||
### 01 · Scattered Knowledge
|
||
Decisions in Slack, guidelines in wikis, patterns in docs—all disconnected. **Kogral** unifies knowledge with git-native markdown and MCP for AI agents.
|
||
|
||
### 02 · Uncontrolled LLM Costs
|
||
|
||
No visibility or limits on AI spending per team. **Vapora** provides real-time budgets, automatic fallback to cheaper
|
||
providers, and expertise-based agent routing.
|
||
|
||
### 03 · Fragile YAML Configuration
|
||
Runtime errors from untyped configuration. **Provisioning** uses Nickel with pre-runtime validation, **TypeDialog** generates forms with contract validation.
|
||
|
||
### 04 · Static Cryptography
|
||
No preparation for quantum threats. **SecretumVault** implements production post-quantum crypto (ML-KEM-768, ML-DSA-65) with pluggable backends today.
|
||
|
||
---
|
||
|
||
## Ecosystem Projects
|
||
|
||
| Project | Description | Metrics |
|
||
| ------- | ----------- | ------- |
|
||
| **[Vapora](https://repo.jesusperez.pro/jesus/vapora)** | AI agent orchestration with learning and cost control | 13 crates, 218 tests, 50K LOC |
|
||
| **[Kogral](https://repo.jesusperez.pro/jesus/kogral)** | Knowledge graph with MCP for Claude Code | 3 crates, 56 tests, 15K LOC |
|
||
| **[TypeDialog](https://repo.jesusperez.pro/jesus/typedialog)** | Multi-backend forms (CLI, TUI, Web, AI, Agent, Prov-gen) | 8 crates, 3,818 tests, 90K LOC |
|
||
| **[Provisioning](https://repo.jesusperez.pro/jesus/provisioning)** | Declarative IaC with Nickel + AI-assisted generation | 15+ crates, 218 tests, 40K LOC |
|
||
| **[SecretumVault](https://repo.jesusperez.pro/jesus/secretumvault)** | Secrets management with post-quantum cryptography | 1 crate, 50+ tests, 11K LOC |
|
||
|
||
### Vapora · AI Agent Orchestration
|
||
|
||
AI agent orchestration with learning and cost control. Agents improve from experience, automatic budget fallback, NATS JetStream coordination.
|
||
|
||
- AI agent orchestration with learning
|
||
- Agents improve from experience
|
||
- Automatic budget fallback
|
||
- NATS JetStream coordination
|
||
- 13 crates, 218 tests, 50K LOC
|
||
|
||
### Kogral · Knowledge Graph
|
||
|
||
Knowledge graph with MCP for Claude Code. 6 node types (Notes, ADRs, Guidelines, Patterns, Journals, Executions). Git-native markdown with semantic search.
|
||
|
||
- Knowledge graph with MCP for Claude Code
|
||
- 6 node types: Notes, ADRs, Guidelines, Patterns, Journals, Executions
|
||
- Git-native markdown storage
|
||
- Semantic search with embeddings
|
||
- 3 crates, 56 tests, 15K LOC
|
||
|
||
### TypeDialog · Multi-Backend Forms
|
||
|
||
Multi-backend forms (CLI, TUI, Web, AI, Agent, Prov-gen). One TOML definition, 6 interfaces. Nickel contract validation.
|
||
|
||
- 6 backends: CLI, TUI, Web, AI, Agent, Prov-gen
|
||
- One TOML definition for all interfaces
|
||
- Nickel contract validation
|
||
- Conditional fields & repeating groups
|
||
- 8 crates, 3,818 tests, 90K LOC
|
||
|
||
### Provisioning · Declarative IaC
|
||
|
||
Declarative IaC with Nickel + AI-assisted generation. Multi-cloud (AWS, UpCloud, Local), RAG with 1,200+ docs, MCP server, orchestrator with rollback.
|
||
|
||
- Declarative IaC with Nickel + AI-assisted generation
|
||
- Multi-cloud: AWS, UpCloud, Local (LXD)
|
||
- RAG with 1,200+ domain docs
|
||
- MCP server for natural language queries
|
||
- Orchestrator with automatic rollback
|
||
- 15+ crates, 218 tests, 40K LOC
|
||
|
||
### SecretumVault · Secrets Management
|
||
|
||
Secrets management with post-quantum crypto. ML-KEM-768, ML-DSA-65 (NIST FIPS 203/204). 4 crypto backends, 4 storage backends, 4 secrets engines.
|
||
|
||
- Post-quantum crypto: ML-KEM-768, ML-DSA-65 (NIST FIPS 203/204)
|
||
- 4 crypto backends: OpenSSL, OQS, AWS-LC, RustCrypto
|
||
- 4 storage backends: Filesystem, etcd, SurrealDB, PostgreSQL
|
||
- 4 secrets engines: KV, Transit, PKI, Database
|
||
- Shamir Secret Sharing for unsealing
|
||
- 1 crate, 50+ tests, 11K LOC
|
||
|
||
---
|
||
|
||
## Technology Stack
|
||
|
||
- **Languages**: Rust Edition 2021, Nickel, Nushell, Bash, Markdown
|
||
- **Databases**: SurrealDB (multi-tenant), etcd (HA), PostgreSQL (enterprise)
|
||
- **Messaging**: NATS JetStream (durable, ordered)
|
||
- **Frameworks**: Axum (REST), Leptos (WASM), Ratatui (TUI)
|
||
- **Crypto**: OpenSSL, OQS (Post-Quantum), AWS-LC, RustCrypto
|
||
- **Observability**: Prometheus, OpenTelemetry, Grafana
|
||
|
||
---
|
||
|
||
## Ecosystem Metrics
|
||
|
||
| Metric | Value |
|
||
| ------ | ----- |
|
||
| **Total Rust crates** | 40+ |
|
||
| **Total tests** | 4,360+ |
|
||
| **Total LOC** | ~206K |
|
||
| **Clippy warnings** | 0 |
|
||
| **Unsafe code blocks** | 0 |
|
||
| **Public API doc coverage** | 100% |
|
||
| **Crypto backends** | 4 (OpenSSL, OQS, AWS-LC, RustCrypto) |
|
||
| **Storage backends** | 4 (Filesystem, etcd, SurrealDB, PostgreSQL) |
|
||
| **TypeDialog backends** | 6 (CLI, TUI, Web, AI, Agent, Prov-gen) |
|
||
| **MCP Tools** | 14+ |
|
||
| **Multi-Cloud Support** | AWS, UpCloud, Local (LXD) |
|
||
| **Post-Quantum Ready** | Yes (ML-KEM-768, ML-DSA-65) |
|
||
|
||
---
|
||
|
||
## What is StratumIOps
|
||
|
||
StratumIOps is not a single project. It's the **orchestration layer** that coordinates:
|
||
|
||
- **Documentation**: Unified docs for all ecosystem projects (bilingual en/es)
|
||
- **Branding Assets**: Logos, color schemes, web landing pages
|
||
- **Integration Patterns**: How projects work together
|
||
- **Shared Standards**: Language guidelines (Rust, Nickel, Nushell, Bash)
|
||
|
||
### Stratum Crates
|
||
|
||
Shared infrastructure libraries for the ecosystem:
|
||
|
||
| Crate | Description | Status |
|
||
| ----- | ----------- | ------ |
|
||
| **stratum-embeddings** | Unified embedding providers with caching, fallback, and VectorStore trait | Proposed |
|
||
| **stratum-llm** | Unified LLM providers with CLI detection, circuit breaker, and caching | Proposed |
|
||
|
||
See [Architecture ADRs](docs/en/architecture/adrs/) for detailed design decisions.
|
||
|
||
### Documentation Structure
|
||
|
||
```text
|
||
docs/
|
||
├── en/ # English documentation
|
||
│ ├── ia/ # AI/Development track
|
||
│ ├── ops/ # Ops/DevOps track
|
||
│ └── architecture/ # Architecture decisions (ADRs)
|
||
└── es/ # Spanish documentation
|
||
├── ia/ # AI/Development track
|
||
├── ops/ # Ops/DevOps track
|
||
└── architecture/ # Architecture decisions (ADRs)
|
||
```
|
||
|
||
### Branding Assets
|
||
|
||
Complete branding system with 18+ assets:
|
||
|
||
- **8 Logo variants**: Horizontal, vertical, animated, static, dark mode
|
||
- **4 Icon variants**: Animated, static, dark mode
|
||
- **4 Monochrome variants**: Black/white for print and accessibility
|
||
- **2 Social variants**: Optimized for social platforms (1080×1080)
|
||
- **2 Favicon variants**: Browser tabs (16×16, 32×32)
|
||
|
||
See [assets/branding/README.md](assets/branding/README.md) for detailed guidelines.
|
||
|
||
---
|
||
|
||
## Integration Patterns
|
||
|
||
### Example: Kogral → Vapora
|
||
|
||
```rust
|
||
// Vapora agent queries Kogral for guidelines before generating code
|
||
async fn get_project_context(task: &Task) -> Result<ProjectContext> {
|
||
let kogral = KogralMcpClient::connect().await?;
|
||
|
||
let guidelines = kogral.call("get_guidelines", json!({
|
||
"topic": &task.task_type,
|
||
"include_shared": true,
|
||
})).await?;
|
||
|
||
Ok(ProjectContext { guidelines })
|
||
}
|
||
```
|
||
|
||
### Example: TypeDialog → Provisioning
|
||
|
||
```rust
|
||
// TypeDialog prov-gen backend generates Nickel for Provisioning
|
||
async fn generate_infrastructure(form_response: &FormResponse) -> Result<WorkflowId> {
|
||
let generator = ProvGenBackend::new();
|
||
let iac = generator.generate(&form_response.into()).await?;
|
||
|
||
let provisioning = ProvisioningClient::connect().await?;
|
||
let workflow_id = provisioning.submit_workflow(iac).await?;
|
||
|
||
Ok(workflow_id)
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## Related Projects
|
||
|
||
| Project | Local Path | Git Repo |
|
||
| ------- | ---------- | -------- |
|
||
| vapora | `/Users/Akasha/Development/vapora` | `https://repo.jesusperez.pro/jesus/vapora` |
|
||
| kogra | `/Users/Akasha/Development/kogral` | `https://repo.jesusperez.pro/jesus/kogra` |
|
||
| typedialog | `/Users/Akasha/Development/typedialog` | `https://repo.jesusperez.pro/jesus/typedialog` |
|
||
| provisioning | `/Users/Akasha/project-provisioning/provisioning` | `https://repo.jesusperez.pro/jesus/provisioning` |
|
||
| secretumvault | `/Users/Akasha/Development/secretumvault` | `https://repo.jesusperez.pro/jesus/secretumvault` |
|
||
|
||
---
|
||
|
||
## Contributing
|
||
|
||
See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines, code standards, and pull request process.
|
||
|
||
## Security
|
||
|
||
See [SECURITY.md](SECURITY.md) for security policy, vulnerability reporting, and security best practices.
|
||
|
||
## Code of Conduct
|
||
|
||
See [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for community guidelines and expected behavior.
|
||
|
||
## License
|
||
|
||
Proprietary / To be defined
|
||
|
||
---
|
||
|
||
<div align="center">
|
||
|
||
**StratumIOps v0.1.0**
|
||
|
||
*Integrated ecosystem with Rust excellence ✨*
|
||
|
||
Infrastructure Operations | AI Orchestration | Knowledge Management | Secrets & Configuration
|
||
|
||
**100% Rust. Zero compromises.**
|
||
|
||
</div>
|