|
| 1 | +# docs/codeiq.yml.example |
| 2 | +# |
| 3 | +# Authoritative reference for `codeiq.yml` (Phase B unified config). |
| 4 | +# |
| 5 | +# - Place this file as `codeiq.yml` at the repo root. |
| 6 | +# - Every field is optional; omitted fields fall back to the built-in defaults |
| 7 | +# (see `ConfigDefaults.builtIn()`). |
| 8 | +# - All keys are snake_case. camelCase spellings (e.g. `cacheDir`, `batchSize`, |
| 9 | +# `bindAddress`, `pageCacheMb`, `perToolTimeoutMs`, `logFormat`) are accepted |
| 10 | +# as deprecated aliases for one release and emit a WARN on load. Do not use |
| 11 | +# camelCase in new config. |
| 12 | +# - Run `code-iq config validate` to type-check your file, and |
| 13 | +# `code-iq config explain` to print every effective value and the layer it |
| 14 | +# was resolved from. |
| 15 | + |
| 16 | +# --------------------------------------------------------------------------- |
| 17 | +# project |
| 18 | +# --------------------------------------------------------------------------- |
| 19 | +project: |
| 20 | + name: my-service # human-readable identifier; defaults to null |
| 21 | + root: . # codebase root, relative to this file (default: ".") |
| 22 | + service_name: my-service # override for the emitted SERVICE node name |
| 23 | + modules: [] # optional list of sub-modules (Phase C). Example: |
| 24 | + # - path: services/api |
| 25 | + # type: maven # maven | gradle | npm | pnpm | pip | go | cargo | ... |
| 26 | + # name: api |
| 27 | + # kind: service # service | library | tool | infra |
| 28 | + |
| 29 | +# --------------------------------------------------------------------------- |
| 30 | +# indexing |
| 31 | +# --------------------------------------------------------------------------- |
| 32 | +indexing: |
| 33 | + languages: [] # allow-list; empty = detect all supported languages |
| 34 | + include: [] # glob allow-list; empty = include everything discovered |
| 35 | + exclude: # glob deny-list; applied after `include` |
| 36 | + - '**/node_modules/**' |
| 37 | + - '**/build/**' |
| 38 | + - '**/dist/**' |
| 39 | + - '**/generated/**' |
| 40 | + incremental: true # reuse H2 cache when file hashes match |
| 41 | + cache_dir: .code-iq/cache # H2 analysis cache directory |
| 42 | + parallelism: auto # "auto" or a positive integer |
| 43 | + batch_size: 500 # files per H2 flush batch (default: 500) |
| 44 | + max_depth: 10 # max impact-trace depth |
| 45 | + max_radius: 10 # max ego-graph radius |
| 46 | + max_files: null # null = no cap; positive int to bound discovery |
| 47 | + max_snippet_lines: null # null = use CodeIqConfig default |
| 48 | + |
| 49 | +# --------------------------------------------------------------------------- |
| 50 | +# serving |
| 51 | +# --------------------------------------------------------------------------- |
| 52 | +serving: |
| 53 | + port: 8080 # HTTP port for REST + MCP + UI |
| 54 | + bind_address: 0.0.0.0 # interface to bind; 127.0.0.1 for localhost-only |
| 55 | + read_only: false # must be false in non-prod; CI gate enforces this |
| 56 | + neo4j: |
| 57 | + dir: .code-iq/graph/graph.db # embedded Neo4j data directory |
| 58 | + page_cache_mb: 256 # Neo4j page cache (MB) |
| 59 | + heap_initial_mb: 256 # JVM -Xms for Neo4j (MB) |
| 60 | + heap_max_mb: 1024 # JVM -Xmx for Neo4j (MB) |
| 61 | + |
| 62 | +# --------------------------------------------------------------------------- |
| 63 | +# mcp (Model Context Protocol server) |
| 64 | +# --------------------------------------------------------------------------- |
| 65 | +mcp: |
| 66 | + enabled: true # expose MCP tools via the serving layer |
| 67 | + transport: http # http | stdio |
| 68 | + base_path: /mcp # HTTP path prefix when transport=http |
| 69 | + auth: |
| 70 | + mode: none # none (default) | bearer | mtls |
| 71 | + token_env: CODEIQ_MCP_TOKEN # env var read when mode=bearer |
| 72 | + limits: |
| 73 | + per_tool_timeout_ms: 15000 # hard cap per tool invocation |
| 74 | + max_results: 500 # cap on result rows returned per tool |
| 75 | + max_payload_bytes: 2000000 # cap on single response body (bytes) |
| 76 | + rate_per_minute: 300 # per-client rate limit |
| 77 | + tools: |
| 78 | + enabled: ['*'] # allow-list of tool names; '*' = all |
| 79 | + disabled: [] # deny-list wins over `enabled` |
| 80 | + |
| 81 | +# --------------------------------------------------------------------------- |
| 82 | +# observability |
| 83 | +# --------------------------------------------------------------------------- |
| 84 | +observability: |
| 85 | + metrics: true # expose Micrometer/Prometheus metrics |
| 86 | + tracing: false # emit OTLP spans (off by default) |
| 87 | + log_format: json # json | text |
| 88 | + log_level: info # trace | debug | info | warn | error |
| 89 | + |
| 90 | +# --------------------------------------------------------------------------- |
| 91 | +# detectors |
| 92 | +# --------------------------------------------------------------------------- |
| 93 | +detectors: |
| 94 | + profiles: [default] # named detector bundles to activate |
| 95 | + overrides: # per-detector feature flags, keyed by SimpleClassName |
| 96 | + SpringRestDetector: { enabled: true } |
| 97 | + QuarkusRestDetector: { enabled: true } |
| 98 | + # MicronautRestDetector: { enabled: false } |
0 commit comments