Skip to content

hyperpolymath/conflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

107 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

conflow - Configuration Flow Orchestrator

License: PMPL-1.0 Palimpsest

Intelligently orchestrate CUE, Nickel, and configuration validation workflows.

RSR Compliance Rust Version

Why conflow?

Problem: You have configuration files and you’re not sure whether to use CUE, Nickel, or both.

Solution: conflow analyzes your configs, recommends the right tool, and orchestrates the entire pipeline.

# Instead of:
nickel export config.ncl > temp.json
cue vet schema.cue temp.json
cue export schema.cue --out yaml > deploy.yaml
rm temp.json

# Just:
conflow run

Features

  • Intelligent analysis - Recommends CUE vs Nickel based on complexity

  • Pipeline orchestration - Chain tools with dependency management

  • Smart caching - Only re-run what changed

  • Educational - Learn why certain tools fit certain problems

  • Type-safe - Catch errors before deployment

  • RSR Integration - Full Rhodium Standard Repository compliance checking

Quick Start

# Install
cargo install conflow

# Initialize
conflow init my-project

# Analyze existing configs
conflow analyze config.yaml

# Run pipeline
conflow run

Example Pipeline

# .conflow.yaml
version: "1"
name: "k8s-deployment"

stages:
  - name: "generate"
    tool:
      type: nickel
      command: export
      file: config.ncl
    output: generated/config.json

  - name: "validate"
    tool:
      type: cue
      command: vet
      schemas: [schemas/k8s.cue]
    input:
      from_stage: generate
    depends_on: [generate]

  - name: "export"
    tool:
      type: cue
      command: export
      out_format: yaml
    input:
      from_stage: generate
    depends_on: [validate]
    output: deploy/k8s.yaml
$ conflow run
βœ“ generate (0.08s)
βœ“ validate (0.05s)
βœ“ export (0.03s)

Pipeline completed in 0.16s

When to Use What?

Use CUE when:

  • βœ… Validating configuration

  • βœ… Expressing constraints

  • βœ… Merging configurations

  • βœ… Simple transformations

Use Nickel when:

  • βœ… Generating configurations

  • βœ… Complex logic needed

  • βœ… Functions and abstraction

  • βœ… DRY configuration

Use Both when:

  • βœ… Nickel generates β†’ CUE validates

  • βœ… Complex generation + strict validation

Commands

Command Description

conflow init [--template <name>]

Initialize project

conflow analyze <files>

Analyze config files

conflow run [--stage <name>]

Execute pipeline

conflow watch

Watch mode

conflow validate

Validate pipeline

conflow graph [--format <fmt>]

Show pipeline graph

conflow cache stats

Cache statistics

conflow cache clear

Clear cache

conflow rsr check

Check RSR compliance

conflow rsr requirements

List RSR requirements

Templates

conflow init --template cue-validation     # Simple CUE validation
conflow init --template nickel-generation  # Nickel config generation
conflow init --template full-pipeline      # Generate β†’ validate β†’ export
conflow init --template kubernetes         # Kubernetes manifests
conflow init --template multi-env          # Multi-environment configs

RSR Compliance

conflow includes full RSR (Rhodium Standard Repository) integration:

  • Compliance checking - Validate against RSR requirements

  • Auto-remediation - Automatically fix common issues

  • Badge generation - Generate compliance badges for CI

  • Diff reports - Track compliance changes over time

# Check compliance
conflow rsr check

# Auto-fix issues
conflow rsr check --fix

# Generate badge
conflow rsr check --badge badge.svg

Development

# Using Nix (recommended)
nix develop

# Using just
just build      # Build
just test       # Run tests
just check      # Run all checks
just install    # Install locally

Documentation

RSR Standards

This project follows Rhodium Standard Repository guidelines:

  • βœ… Memory-safe language (Rust)

  • βœ… Offline-first design

  • βœ… Reproducible builds (Nix)

  • βœ… Comprehensive documentation

  • βœ… SPDX license headers

  • βœ… Security policy

  • βœ… TPCF contribution framework

License

This project is dual-licensed under:

  • Palimpsest-MPL-1.0 License

  • Apache License, Version 2.0

See LICENSE.txt for details.

Contributing

Contributions are welcome! Please read our Contributing Guide first.

Architecture

See TOPOLOGY.md for a visual architecture map and completion dashboard.