Skip to content

feat(ooda): create redacted Analysis Snapshots from Run detail #101

Description

@1012839419a-alt

Parent: #96

Status: ready-for-agent

What to build

Add the Observe and Orient portion of the OODA Analysis Loop from a completed Run. An authorized operator selects a bounded UTC range, previews eligible Workflow Trace and acquisition execution counts, and explicitly creates an Analysis Snapshot. OpenCLI persists the authoritative export receipt while QuestDB receives only a disposable, redacted projection.

Support the two versioned V1 row families only: redacted Workflow Trace events and acquisition execution metrics. Provide curated time-window summaries for throughput, latency, failure rate, event type, and node behavior. The Run detail experience must show capability state, preview, progress, receipt, source range, analysis summaries, and isolated errors without exposing arbitrary SQL.

Acceptance criteria

  • The public authenticated Run analysis API supports capability status, range preview, snapshot creation, receipt lookup, and curated summaries.
  • Only completed Runs in the operator's authorized scope can be selected, and empty or invalid ranges are rejected.
  • Export uses authoritative UTC source timestamps and deterministic source identities so repeating the same selection is idempotent.
  • Workflow Trace export uses an explicit scalar allowlist and excludes messages, details, URLs, credentials, tokens, raw payloads, and artifacts.
  • Acquisition export includes bounded status, capability, and duration metadata while excluding inputs, results, endpoints, and raw errors.
  • OpenCLI persists a receipt with scope, schema version, status, row counts, timestamps, retention deadline, and a bounded redacted failure code.
  • Export failure leaves Runs, trace events, acquisition executions, Records, Evidence, and prior receipts unchanged except for the new failed receipt.
  • Curated analysis results cite their Analysis Snapshot and exact source range.
  • The Run detail UI covers disabled, unavailable, unhealthy, ready, exporting, complete, empty, expired, and failed states.
  • Contract and API tests prove mapping, redaction, idempotency, authorization, source-time selection, bounded schemas, and failure isolation.

Blocked by

#100

Verification evidence

  • Red-green contract and authenticated API tests.
  • Frontend component/integration tests through public user behavior.
  • Disposable-runtime integration evidence for export and curated aggregation.
  • Security scan showing forbidden fields absent from receipts, exported rows, API responses, logs, and rendered output.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions