Table of Contents

Interface IAuditOversightService

Namespace
Tharga.Team.Service.Audit
Assembly
Tharga.Team.Service.dll

Reading audit across every team. Requires a system audit:read grant.

public interface IAuditOversightService

Remarks

Separate from IAuditReadService because the two ask different questions of the same scope name. A team grant is issued for one team; accepting it here would let a team administrator read every team's log, which is the hole the Scope / SystemScope provenance split closed.

Registered with AddSystemService, so ScopeProxy requires the system grant and never consults a team one. There is no argument naming a team, so there is nothing here for a team-bound caller to aim at — the confinement is structural.

This mirrors ITeamManagementService / ITeamOversightService, which split for exactly the same reason one level up.

Methods

QueryAllAsync(AuditQuery)

Audit entries across every team, newest first. A TeamKey on the query narrows the result as a filter — the caller is authorized for all teams either way.

[RequireScope("audit:read")]
Task<AuditQueryResult> QueryAllAsync(AuditQuery query)

Parameters

query AuditQuery

Returns

Task<AuditQueryResult>