plano/config
Adil Hafeez 5774452195 Refactor config_generator into modular, testable components
Break the 507-line monolithic validate_and_render_schema() into focused
modules with pure validation functions, proper error handling, and clean
I/O separation:

- config_providers.py: provider constants, ConfigValidationError, unified
  URL parsing (replaces 3 different inline implementations)
- config_validator.py: 11 pure validation functions (no I/O, no print/exit)
- config_generator.py: thin 146-line I/O orchestrator, reads files once
  (was twice), uses logging instead of print()

Also cleans up module responsibilities:
- Move stream_access_logs from utils.py to docker_cli.py (Docker operation)
- Deduplicate llm_providers->model_providers migration
- Fix "Model alias 2 -" debug artifact in error message
- Update docker-compose.dev.yaml volume mounts for new files
- Rewrite tests: 53 tests calling pure functions directly (no mock_open
  chains), up from 10 brittle mock-dependent tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 05:16:34 +00:00
..
arch_config_schema.yaml use standard tracing and logging in brightstaff (#721) 2026-02-09 13:33:27 -08:00
docker-compose.dev.yaml Refactor config_generator into modular, testable components 2026-02-12 05:16:34 +00:00
env.list restructure cli (#656) 2025-12-25 14:55:29 -08:00
envoy.template.yaml use standard tracing and logging in brightstaff (#721) 2026-02-09 13:33:27 -08:00
README.md Adding support for wildcard models in the model_providers config (#696) 2026-01-28 17:47:33 -08:00
requirements.txt restructure cli (#656) 2025-12-25 14:55:29 -08:00
supervisord.conf add log_level env var (#728) 2026-02-09 09:25:43 -08:00
test_passthrough.yaml feat: add passthrough_auth option for forwarding client Authorization header (#687) 2026-01-14 15:06:28 -08:00
validate_plano_config.sh release 0.4.6 (#740) 2026-02-10 21:00:29 -08:00

Envoy filter code for gateway

Add toolchain

$ rustup target add wasm32-wasip1

Building

$ cargo build --target wasm32-wasip1 --release

Testing

$ cargo test

Local development

  • Build docker image for Plano. Note this needs to be built once.

    $ sh build_filter_image.sh
    
  • Build filter binary,

    $ cargo build --target wasm32-wasip1 --release
    
  • Start envoy with config.yaml and test,

    $ docker compose -f docker-compose.dev.yaml up plano
    
  • dev version of docker-compose file uses following files that are mounted inside the container. That means no docker rebuild is needed if any of these files change. Just restart the container and chagne will be picked up,

    • envoy.template.yaml
    • intelligent_prompt_gateway.wasm