Files
git.stella-ops.org/src/Concelier/__Libraries/StellaOps.Concelier.Storage.Mongo/AGENTS.md
master 90c244948a Update AGENTS.md files across multiple modules to standardize task status update instructions and introduce a new document for Secret Leak Detection operations.
- Modified task status update instructions in AGENTS.md files to refer to corresponding sprint files as `/docs/implplan/SPRINT_*.md` instead of `docs/implplan/SPRINTS.md`.
- Added a comprehensive document for Secret Leak Detection operations detailing scope, prerequisites, rule bundle lifecycle, enabling the analyzer, policy patterns, observability, troubleshooting, and references.
2025-11-05 11:58:32 +02:00

3.0 KiB

AGENTS

Role

Canonical persistence for raw documents, DTOs, canonical advisories, jobs, and state. Provides repositories and bootstrapper for collections/indexes.

Scope

  • Collections (MongoStorageDefaults): source, source_state, document, dto, advisory, alias, affected, reference, kev_flag, ru_flags, jp_flags, psirt_flags, merge_event, export_state, locks, jobs; GridFS bucket fs.documents; field names include ttlAt (locks), sourceName, uri, advisoryKey.
  • Records: SourceState (cursor, lastSuccess/error, failCount, backoffUntil), JobRun, MergeEvent, ExportState, Advisory documents mirroring Models with embedded arrays when practical.
  • Bootstrapper: create collections, indexes (unique advisoryKey, scheme/value, platform/name, published, modified), TTL on locks, and validate connectivity for /ready health probes.
  • Job store: create, read, mark completed/failed; compute durations; recent/last queries; active by status.
  • Advisory store: CRUD for canonical advisories; query by key/alias and list for exporters with deterministic paging.

Participants

  • Core jobs read/write runs and leases; WebService /ready pings database; /jobs APIs query runs/definitions.
  • Source connectors store raw docs, DTOs, and mapped canonical advisories with provenance; Update SourceState cursor/backoff.
  • Exporters read advisories and write export_state.

Interfaces & contracts

  • IMongoDatabase injected; MongoUrl from options; database name from options or MongoUrl or default "concelier".
  • Repositories expose async methods with CancellationToken; deterministic sorting.
  • All date/time values stored as UTC; identifiers normalized.

In/Out of scope

In: persistence, bootstrap, indexes, basic query helpers. Out: business mapping logic, HTTP, packaging.

Observability & security expectations

  • Log collection/index creation; warn on existing mismatches.
  • Timeouts and retry policies; avoid unbounded scans; page reads.
  • Do not log DSNs with credentials; redact in diagnostics.

Tests

  • Author and review coverage in ../StellaOps.Concelier.Storage.Mongo.Tests.
  • Shared fixtures (e.g., MongoIntegrationFixture, ConnectorTestHarness) live in ../StellaOps.Concelier.Testing.
  • Keep fixtures deterministic; match new cases to real-world advisories or regression scenarios.

Required Reading

  • docs/modules/concelier/architecture.md
  • docs/modules/platform/architecture-overview.md

Working Agreement

    1. Update task status to DOING/DONE in both correspoding sprint file /docs/implplan/SPRINT_*.md and the local TASKS.md when you start or finish work.
    1. Review this charter and the Required Reading documents before coding; confirm prerequisites are met.
    1. Keep changes deterministic (stable ordering, timestamps, hashes) and align with offline/air-gap expectations.
    1. Coordinate doc updates, tests, and cross-guild communication whenever contracts or workflows change.
    1. Revert to TODO if you pause the task without shipping changes; leave notes in commit/PR descriptions for context.