sqlinsight-pro/src/SQLInsight.Web/WebOptions.cs
Claude 0e2146ef6d
Some checks are pending
CI / Build og unit tests (push) Waiting to run
CI / Integration (mcr.microsoft.com/mssql/server:2017-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2019-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2022-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2025-latest) (push) Blocked by required conditions
Fase 4: integration with Prometheus, Grafana, SCOM and scripts
Read-only JSON API (/api/v1/instances, /api/v1/findings) and a
Prometheus endpoint (/metrics) in the web UI, with bearer tokens for
machines (only their SHA-256 is configured; a token only opens the API,
never the pages; sensitive evidence left out unless enabled). A
Grafana dashboard and Prometheus scrape example. A Windows Event Log
notification channel with fixed event ids for SCOM, exempt from the
hourly cap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E3EExwndy8Z22EK2Qpt6BK
2026-09-29 09:56:01 +00:00

23 lines
1 KiB
C#

namespace SQLInsight.Web;
public sealed class WebOptions
{
public const string SectionName = "SQLInsight:Web";
/// <summary>Windows (Negotiate/Kerberos) or None. None is for development only.</summary>
public string Authentication { get; set; } = "Windows";
/// <summary>Windows groups allowed to use the UI (e.g. DOMAIN\SQL-Admins). Empty: any authenticated user.</summary>
public IList<string> AllowedGroups { get; } = [];
/// <summary>Time zone for display, e.g. Europe/Copenhagen. Defaults to the server's local time zone.</summary>
public string? TimeZone { get; set; }
/// <summary>
/// Tokens for /api/ and /metrics (name → "sha256:&lt;hex&gt;"). Create one with <c>SQLInsight.Web new-api-token &lt;name&gt;</c>.
/// </summary>
public IDictionary<string, string> ApiTokens { get; } = new Dictionary<string, string>();
/// <summary>Include evidence marked sensitive (query text, logins, host names) in /api/v1/findings. Off by default.</summary>
public bool ApiIncludesSensitiveEvidence { get; set; }
}