Expand description
NoETL Control Plane Library
This crate provides the control plane server for NoETL, handling:
- Workflow Orchestration: Execute playbooks and manage workflow state
- Catalog Management: Register and retrieve playbooks, tools, and resources
- Credential Management: Securely store and retrieve encrypted credentials
- Event Processing: Handle worker events and drive workflow execution
- Execution Management: Track and manage playbook executions
§Architecture
The control plane follows an event-sourcing architecture where all state is derived from events stored in PostgreSQL. NATS JetStream is used for command notifications to workers.
§Modules
config: Configuration loading from environment variablesdb: Database connectivity and modelserror: Custom error types with Axum integrationhandlers: HTTP route handlersstate: Shared application state
§Example
ⓘ
use noetl_control_plane::{
config::{AppConfig, DatabaseConfig},
db::create_pool,
state::AppState,
};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let app_config = AppConfig::from_env()?;
let db_config = DatabaseConfig::from_env()?;
let db_pool = create_pool(&db_config).await?;
// Single-pool fallback shim — production main.rs builds
// the DbPoolMap from ShardingConfig::from_env() for the
// sharded path; test / example code uses new_legacy.
let state = AppState::new_legacy(db_pool, app_config, None);
// ... build and run server
Ok(())
}Re-exports§
Modules§
- config
- Configuration module for the NoETL Control Plane server.
- crypto
- Cryptography module for the NoETL Control Plane.
- db
- Database module for the NoETL Control Plane server.
- engine
- Workflow execution engine.
- error
- Error types for the NoETL Control Plane server.
- handlers
- HTTP handlers for the NoETL Control Plane API.
- metrics
- Prometheus metrics surface for the NoETL control plane.
- nats
- NATS JetStream integration for NoETL Control Plane.
- playbook
- NoETL Playbook DSL v2.
- result_
ext - Result extension trait for logging errors with context.
- sanitize
- Sensitive data sanitization for NoETL.
- secrets
- Server-side secret-provider clients (Secrets Wallet Phase 3b, noetl/ai-meta#61).
- services
- Service layer for the NoETL Control Plane.
- sharding
- Shard routing — application-side shard-key derivation.
- snowflake
- Application-side snowflake ID generation.
- state
- Application state for the NoETL Control Plane server.
- template
- Template rendering module.
- tls
- Opt-in TLS / mTLS for the control-plane HTTP listener (Secrets Wallet Phase 4a, noetl/ai-meta#61).