using Microsoft.AspNetCore.Authorization; using StellaOps.Auth.Abstractions; using System; namespace StellaOps.Auth.ServerIntegration; /// /// Named authorization policies for StellaOps observability and evidence resource servers. /// public static class StellaOpsResourceServerPolicies { /// /// Observability dashboards/read-only access policy name. /// public const string ObservabilityRead = StellaOpsScopes.ObservabilityRead; /// /// Observability incident activation policy name. /// public const string ObservabilityIncident = StellaOpsScopes.ObservabilityIncident; /// /// Timeline read policy name. /// public const string TimelineRead = StellaOpsScopes.TimelineRead; /// /// Timeline write policy name. /// public const string TimelineWrite = StellaOpsScopes.TimelineWrite; /// /// Evidence create policy name. /// public const string EvidenceCreate = StellaOpsScopes.EvidenceCreate; /// /// Evidence read policy name. /// public const string EvidenceRead = StellaOpsScopes.EvidenceRead; /// /// Evidence hold policy name. /// public const string EvidenceHold = StellaOpsScopes.EvidenceHold; /// /// Attestation read policy name. /// public const string AttestRead = StellaOpsScopes.AttestRead; /// /// Export viewer policy name. /// public const string ExportViewer = StellaOpsScopes.ExportViewer; /// /// Export operator policy name. /// public const string ExportOperator = StellaOpsScopes.ExportOperator; /// /// Export admin policy name. /// public const string ExportAdmin = StellaOpsScopes.ExportAdmin; /// /// Pack read policy name. /// public const string PacksRead = StellaOpsScopes.PacksRead; /// /// Pack write policy name. /// public const string PacksWrite = StellaOpsScopes.PacksWrite; /// /// Pack run policy name. /// public const string PacksRun = StellaOpsScopes.PacksRun; /// /// Pack approval policy name. /// public const string PacksApprove = StellaOpsScopes.PacksApprove; /// /// Registers all observability, timeline, evidence, attestation, and export authorization policies. /// public static void AddObservabilityResourcePolicies(this AuthorizationOptions options) { ArgumentNullException.ThrowIfNull(options); options.AddStellaOpsScopePolicy(ObservabilityRead, StellaOpsScopes.ObservabilityRead); options.AddStellaOpsScopePolicy(ObservabilityIncident, StellaOpsScopes.ObservabilityIncident); options.AddStellaOpsScopePolicy(TimelineRead, StellaOpsScopes.TimelineRead); options.AddStellaOpsScopePolicy(TimelineWrite, StellaOpsScopes.TimelineWrite); options.AddStellaOpsScopePolicy(EvidenceCreate, StellaOpsScopes.EvidenceCreate); options.AddStellaOpsScopePolicy(EvidenceRead, StellaOpsScopes.EvidenceRead); options.AddStellaOpsScopePolicy(EvidenceHold, StellaOpsScopes.EvidenceHold); options.AddStellaOpsScopePolicy(AttestRead, StellaOpsScopes.AttestRead); options.AddStellaOpsScopePolicy(ExportViewer, StellaOpsScopes.ExportViewer); options.AddStellaOpsScopePolicy(ExportOperator, StellaOpsScopes.ExportOperator); options.AddStellaOpsScopePolicy(ExportAdmin, StellaOpsScopes.ExportAdmin); } /// /// Registers Task Pack registry, execution, and approval authorization policies. /// /// The authorization options to update. public static void AddPacksResourcePolicies(this AuthorizationOptions options) { ArgumentNullException.ThrowIfNull(options); options.AddStellaOpsScopePolicy(PacksRead, StellaOpsScopes.PacksRead); options.AddStellaOpsScopePolicy(PacksWrite, StellaOpsScopes.PacksWrite); options.AddStellaOpsScopePolicy(PacksRun, StellaOpsScopes.PacksRun); options.AddStellaOpsScopePolicy(PacksApprove, StellaOpsScopes.PacksApprove); } }