DOCS / CONFIGURATION

Project configuration

Configure local memory, reports, incident sources, evidence providers, rules, and model policy through a strict versioned public API.

PHASE 1 · PRE-1.0PYTHON 3.11+EDIT ON GITHUB ↗

Project document

yaml
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: false

Field reference

FieldMeaning
apiVersionlumis.dev/v1 for new documents. Released v1alpha1 project and rule documents still load with a deprecation warning through 1.x.
metadata.nameStable project or pipeline identifier used in incidents and reports.
metadata.labelsOptional project-owned string labels for future adapters and policy.
spec.environmentEnvironment label; defaults to local.
spec.memorysqlite (reference, with a local path) or postgres (independent plugin, configured via connectionUrlEnv).
spec.reports.providermarkdown or json in the reference package.
spec.reports.outputDirReport directory, relative to the project YAML.
spec.incidentSourcesBounded source declarations; v1 includes local-log.
spec.evidenceProvidersOrdered bounded evidence declarations; v1 includes local-json, and the optional http-json plugin adds a validated HTTPS connector.
spec.rules.filesOrdered rule documents—either legacy DiagnosisRuleSet files or structured DiagnosisRule files, never mixed.
spec.model.enabledExplicit opt-in flag; it does not install or select a provider.

Evidence provider fields

FieldMeaning
providerReference provider name; v1 supports local-json.
pathLocal JSON file containing an item list or an object with an items array.
kindsOptional evidence-kind allowlist; empty means all supplied kinds.
maxItemsMaximum accepted items after filtering and duplicate removal.
maxTotalCharactersMaximum combined detail size accepted from the provider.
maxItemCharactersMaximum detail size per item; longer details are marked and truncated.
timeoutSecondsCollection deadline enforced by EvidenceService.
redactConservatively 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)

yaml
spec:
  memory:
    provider: postgres
    connectionUrlEnv: LUMIS_MEMORY_DATABASE_URL
    schema: lumis_memory
    connectTimeoutSeconds: 10
    maxSearchCandidates: 1000

connectionUrlEnv 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.