Project configuration
Configure local memory, reports, incident sources, evidence providers, rules, and model policy through a strict versioned public API.
Project document
apiVersion: lumis.dev/v1
kind: Project
metadata:
name: customer-pipeline
spec:
environment: local
memory:
provider: sqlite
path: .lumis/incidents.db
reports:
provider: markdown
outputDir: .lumis/reports
incidentSources:
- provider: local-log
path: logs/latest-failure.log
evidenceProviders:
- provider: local-json
path: evidence/schema-diff.json
kinds: [schema-diff]
maxItems: 20
maxTotalCharacters: 50000
maxItemCharacters: 10000
timeoutSeconds: 5
redact: true
rules:
files: [rules.yml]
model:
enabled: falseField reference
| Field | Meaning |
|---|---|
| apiVersion | lumis.dev/v1 for new documents. Released v1alpha1 project and rule documents still load with a deprecation warning through 1.x. |
| metadata.name | Stable project or pipeline identifier used in incidents and reports. |
| metadata.labels | Optional project-owned string labels for future adapters and policy. |
| spec.environment | Environment label; defaults to local. |
| spec.memory | sqlite (reference, with a local path) or postgres (independent plugin, configured via connectionUrlEnv). |
| spec.reports.provider | markdown or json in the reference package. |
| spec.reports.outputDir | Report directory, relative to the project YAML. |
| spec.incidentSources | Bounded source declarations; v1 includes local-log. |
| spec.evidenceProviders | Ordered bounded evidence declarations; v1 includes local-json, and the optional http-json plugin adds a validated HTTPS connector. |
| spec.rules.files | Ordered rule documents—either legacy DiagnosisRuleSet files or structured DiagnosisRule files, never mixed. |
| spec.model.enabled | Explicit opt-in flag; it does not install or select a provider. |
Evidence provider fields
| Field | Meaning |
|---|---|
| provider | Reference provider name; v1 supports local-json. |
| path | Local JSON file containing an item list or an object with an items array. |
| kinds | Optional evidence-kind allowlist; empty means all supplied kinds. |
| maxItems | Maximum accepted items after filtering and duplicate removal. |
| maxTotalCharacters | Maximum combined detail size accepted from the provider. |
| maxItemCharacters | Maximum detail size per item; longer details are marked and truncated. |
| timeoutSeconds | Collection deadline enforced by EvidenceService. |
| redact | Conservatively redact likely secrets before evidence enters diagnosis or reports. |
Provider errors, malformed files, timeouts, and unreadable paths become structured collection failures. They do not silently become facts, and they do not grant network, execution, or broader filesystem authority.
PostgreSQL memory (plugin)
spec:
memory:
provider: postgres
connectionUrlEnv: LUMIS_MEMORY_DATABASE_URL
schema: lumis_memory
connectTimeoutSeconds: 10
maxSearchCandidates: 1000connectionUrlEnv names an environment variable—never the URL itself, so credentials stay out of YAML. PostgreSQL requires the independently packaged lumis-sdk-postgres-memory plugin; the reference CLI store remains SQLite-only, and applications compose the async PostgreSQL MemoryStore through the Python and plugin API.
Limits and secrets
- Project and rule documents are limited to one MiB each.
- The reference CLI reads local logs up to ten MiB.
- The local JSON evidence adapter reads files up to one MiB, then applies configured item, character, timeout, kind, duplicate, and redaction limits.
- Do not put plaintext credentials in project YAML—providers accept only environment-variable references.
- The v1 configuration intentionally has no generic secret string and no undocumented provider selector.
Checked JSON Schemas for the project, rule set, structured rule, and JSON report documents live in the repository's schemas directory and are verified in CI to match the Pydantic contracts, so editors and tooling can validate configuration as you type.