Skip to main content

Crate noetl_server

Crate noetl_server 

Source
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 variables
  • db: Database connectivity and models
  • error: Custom error types with Axum integration
  • handlers: HTTP route handlers
  • state: 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§

pub use error::AppError;
pub use error::AppResult;
pub use result_ext::ResultExt;

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).