Files
git.stella-ops.org/src/Authority/StellaOps.Authority/StellaOps.Auth.ServerIntegration/StellaOpsResourceServerPolicies.cs
2026-02-01 21:37:40 +02:00

122 lines
4.3 KiB
C#

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