Skip to content

[Task]: Add governance query store contracts #20

Description

@rian-be

Summary

Introduce query contracts for governance requests, approvals, and decisions.

Goal

Make governance runtime operationally queryable instead of only retrievable by direct request lookup.

Problem

Governance runtime is becoming execution-aware and persistence-aware, but the read side is still too narrow. Once requests, approvals, decisions, and execution outcomes accumulate, users need to answer questions such as:

  • what approvals are pending for a given actor?
  • what requests touched this state or category?
  • what recent stale resolutions or rejections occurred?
  • what high-risk requests are still open?

That requires a dedicated query contract rather than ad hoc storage access.

Scope

  • Introduce IMutationRequestQueryStore or equivalent query contract
  • Query pending approvals by actor, group, role, or request category
  • Query requests by stateId, category, tags, metadata, and blast radius
  • Query recent request decisions, approval actions, stale resolutions, and execution outcomes
  • Define storage-agnostic query contracts before provider-specific implementations

Design Expectations

  • Query contracts should stay storage-agnostic.
  • The read side should distinguish request state, approval state, and execution outcome clearly.
  • Query filters should support both operational usage and later reporting surfaces.
  • The model should not force consumers to reconstruct workflows manually from low-level store access.

Acceptance Criteria

  • Governance query contracts cover request, approval, and decision scenarios
  • Query model supports both operational and reporting-style retrieval
  • Contracts are independent from concrete persistence providers
  • Example usage or docs show how the query surface is meant to be consumed

Non-Goals

  • This issue does not implement EF Core or PostgreSQL providers
  • This issue does not define dashboards or UI surfaces
  • This issue does not redesign the write-side storage contract

Notes

Persistence without queryability is only a storage layer. This issue is about the read side of governance data.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions