236 lines
8.2 KiB
Markdown
236 lines
8.2 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)
|
|||
|
|
|
|||
|
|
### Documentation Structure
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
docs/
|
|||
|
|
├── en/ # English documentation
|
|||
|
|
│ ├── ia/ # AI/Development track
|
|||
|
|
│ └── ops/ # Ops/DevOps track
|
|||
|
|
└── es/ # Spanish documentation
|
|||
|
|
├── ia/ # AI/Development track
|
|||
|
|
└── ops/ # Ops/DevOps track
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 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>
|