UNPKG

claude-flow-novice

Version:

Claude Flow Novice - Advanced orchestration platform for multi-agent AI workflows with CFN Loop architecture Includes CodeSearch (hybrid SQLite + pgvector), mem0/memgraph specialists, and all CFN skills.

496 lines (460 loc) 10.2 kB
_format_version: "3.0" # Transform metadata for distributed Kong deployment _transform: true # Database configuration (for production use) database: host: ${KONG_DATABASE_HOST:-kong-database} port: ${KONG_DATABASE_PORT:-5432} user: ${KONG_DATABASE_USER:-kong} password: ${KONG_DATABASE_PASSWORD:-kong_pass} database: ${KONG_DATABASE_NAME:-kong} # Services (upstream APIs) for CFN Loop system services: - name: orchestrator-service url: http://orchestrator:3000 protocol: http connect_timeout: 60000 write_timeout: 60000 read_timeout: 60000 retries: 5 tags: - production - core - v1 - name: agent-pool-service url: http://agent-pool:3000 protocol: http connect_timeout: 60000 write_timeout: 60000 read_timeout: 60000 retries: 5 tags: - production - workers - v1 - name: prometheus-service url: http://prometheus:9090 protocol: http connect_timeout: 30000 write_timeout: 30000 read_timeout: 30000 retries: 3 tags: - production - monitoring - name: grafana-service url: http://grafana:3000 protocol: http connect_timeout: 30000 write_timeout: 30000 read_timeout: 30000 retries: 3 tags: - production - monitoring - name: redis-coordinator-service url: http://redis-coordinator:6379 protocol: tcp connect_timeout: 30000 retries: 3 tags: - production - coordination # Routes (external endpoints) routes: - name: orchestrator-api-routes service: orchestrator-service protocols: - http - https methods: - GET - POST - PUT - DELETE - OPTIONS paths: - /api/v1/orchestrator - /api/v1/agents - /api/v1/tasks - /api/v1/coordination strip_path: false preserve_host: false tags: - core-api - authenticated - name: monitoring-api-routes service: prometheus-service protocols: - https methods: - GET paths: - /api/v1/metrics - /api/v1/prometheus strip_path: false tags: - monitoring-api - restricted - name: dashboard-routes service: grafana-service protocols: - https methods: - GET - POST paths: - /dashboard - /grafana strip_path: false tags: - dashboard - authenticated - name: health-check-routes service: orchestrator-service protocols: - http - https methods: - GET paths: - /health - /api/v1/health - /status strip_path: false tags: - health - public # Global plugins configuration plugins: # Rate limiting (global) - name: rate-limiting config: minute: 100 hour: 10000 day: 100000 policy: cluster fault_tolerant: true hide_client_headers: false tags: - global # CORS (global) - name: cors config: origins: - "https://app.example.com" - "https://dashboard.example.com" - "http://localhost:3000" - "http://localhost:3001" methods: - GET - POST - PUT - DELETE - OPTIONS - PATCH headers: - Accept - Accept-Version - Authorization - Content-Type - Content-MD5 - Cache-Control - X-Requested-With - X-API-Key - X-Gateway-Request-ID exposed_headers: - X-Auth-Token - X-Rate-Limit-Limit - X-Rate-Limit-Remaining - X-Rate-Limit-Reset - X-Response-Time - X-Cache-Status credentials: true max_age: 3600 preflight_continue: false tags: - global # Request ID generator - name: request-id config: generator: "uuid#counter" header_name: "X-Gateway-Request-ID" echo_request_id: true tags: - global # Request size limiting - name: request-size-limiting config: allowed_payload_size: 10 # 10MB tags: - global # IP restriction (for sensitive endpoints) - name: ip-restriction route: monitoring-api-routes config: allow: - 172.30.0.0/16 # cfn-network - 172.31.0.0/16 # mcp-network - 127.0.0.1 deny: - 0.0.0.0/0 tags: - security # JWT Authentication (for core APIs) - name: jwt service: orchestrator-service config: key_claim_name: "kid" secret_is_base64: false claims_to_verify: - exp - nbf - iat uri_param_names: - jwt cookie_names: - gateway_jwt tags: - authentication # API Key authentication (for external access) - name: key-auth service: prometheus-service config: key_names: - apikey - X-API-Key hide_credentials: false tags: - authentication # ACL (Access Control List) - name: acl service: orchestrator-service config: allow: - admin - orchestrator - agent-pool - monitoring deny: - blocked hide_groups_header: false tags: - authorization # Request transformer (add headers) - name: request-transformer service: orchestrator-service config: add: headers: - X-Gateway: kong - X-Forwarded-Proto: https - X-Gateway-Version: 3.0 - X-Request-Start: ${start_time} remove: headers: - X-Internal-Secret - X-Debug-Info tags: - transformation # Response transformer - name: response-transformer service: orchestrator-service config: add: headers: - X-Response-Time: ${latency} - X-Cache-Status: ${cache_status} - X-Gateway-Response-ID: ${request_id} tags: - transformation # Prometheus metrics - name: prometheus config: per_consumer: true status_code_metrics: true latency_metrics: true bandwidth_metrics: true upstream_health_metrics: true tags: - metrics # Zipkin tracing - name: zipkin config: http_endpoint: http://zipkin:9411/api/v2/spans sample_ratio: 0.1 include_service_name_in_header: true tags: - tracing # Consumers (API clients) consumers: - username: orchestrator-client custom_id: orchestrator-v1 tags: - internal - core jwt_secrets: - key: orchestrator-key-1 algorithm: HS256 secret: ${ORCHESTRATOR_JWT_SECRET} acls: - group: orchestrator - username: agent-pool-client custom_id: agent-pool-v1 tags: - internal - workers jwt_secrets: - key: agent-pool-key-1 algorithm: HS256 secret: ${AGENT_POOL_JWT_SECRET} acls: - group: agent-pool - username: monitoring-client custom_id: monitoring-v1 tags: - internal - monitoring keyauth_credentials: - key: ${MONITORING_API_KEY} acls: - group: monitoring - username: admin-client custom_id: admin-v1 tags: - admin jwt_secrets: - key: admin-key-1 algorithm: HS256 secret: ${ADMIN_JWT_SECRET} acls: - group: admin - username: external-api-client custom_id: external-v1 tags: - external keyauth_credentials: - key: ${EXTERNAL_API_KEY} plugins: - name: rate-limiting-advanced config: limit: - 1000 # requests per hour - 5000 # requests per day window_size: - 3600 # 1 hour - 86400 # 1 day window_type: sliding identifier: consumer strategy: cluster sync_rate: 0.5 # Upstreams (load balancing) upstreams: - name: orchestrator-upstream algorithm: round-robin hash_on: none hash_fallback: none slots: 10000 healthchecks: active: https_verify_certificate: false healthy: interval: 10 successes: 3 unhealthy: interval: 10 http_failures: 3 timeouts: 3 tcp_failures: 3 passive: healthy: http_statuses: - 200 - 201 - 202 - 203 - 204 successes: 5 unhealthy: http_statuses: - 429 - 500 - 502 - 503 - 504 http_failures: 3 tcp_failures: 3 timeouts: 3 tags: - production - core - name: agent-pool-upstream algorithm: least-connections hash_on: none hash_fallback: none slots: 10000 healthchecks: active: healthy: interval: 5 successes: 2 unhealthy: interval: 5 http_failures: 2 timeouts: 2 passive: healthy: http_statuses: - 200 - 201 - 202 successes: 3 unhealthy: http_statuses: - 500 - 503 http_failures: 3 tags: - production - workers # Targets (upstream servers) targets: - target: orchestrator:3000 weight: 100 upstream: orchestrator-upstream tags: - primary - target: agent-pool-1:3000 weight: 100 upstream: agent-pool-upstream tags: - worker-1 - target: agent-pool-2:3000 weight: 100 upstream: agent-pool-upstream tags: - worker-2 - target: agent-pool-3:3000 weight: 100 upstream: agent-pool-upstream tags: - worker-3 # Certificates certificates: - cert: ${KONG_SSL_CERT} key: ${KONG_SSL_KEY} tags: - production snis: - api.example.com - gateway.example.com - kong.example.com # Service discovery for dynamic environments services: - name: docker-registry-service url: http://registry:5000 plugins: - name: file-log config: path: /var/log/kong/docker-registry.log reopen: false