Skip to content

[Task]: Add governance request query API #8

Description

@rian-be

Summary

Add a governance query API so mutation requests, pending approvals, and governance metadata can be retrieved as operational data instead of existing only as stored records.

Goal

Make governance request data usable for real workflows such as listing pending approvals, reviewing high-risk requests, and filtering request history by governance dimensions.

Scope

What should be implemented?

  • Define query contracts for governed mutation requests
  • Support listing pending requests
  • Support filtering by PendingMutationReason
  • Support filtering by request status
  • Support filtering by actor, category, and time range
  • Support filtering by tags, governance metadata, and estimated blast radius
  • Support approval-oriented views such as recent approvals and pending approval queues
  • Keep query abstractions storage-agnostic so later providers can implement them consistently

Acceptance Criteria

  • Governance exposes a query-oriented abstraction, not only point lookup by request id
  • Pending requests can be listed without custom store-specific logic
  • Query surface supports governance metadata and risk-oriented filtering
  • Approval-oriented request views are explicitly supported
  • Query contracts are suitable for future persistence providers
  • The implementation remains in ModularityKit.Mutator.Governance and does not bloat the core runtime API

Notes

Persistence without queryability is only storage. The governance layer becomes operational once request data can be filtered and listed in ways that match approval and review workflows.

This should align with the Governance Data direction in the roadmap.

Related ADRs:

  • ADR-020: Governance MutationRequest Model
  • ADR-021: Governance Pending Mutation Lifecycle
  • ADR-022: Governance Request Decisions and Storage

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions