sqlinsight-pro/src/SQLInsight.Web/WebOptions.cs
Søren Eggert Lundsteen Olsen ce49866d2b
Some checks are pending
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
CI / Build og unit tests (push) Successful in 1m0s
deploy community / deploy (push) Successful in 0s
deploy hub / deploy (push) Successful in 23s
CI / MSI-installer (push) Successful in 36s
Forum: one SEOSoft forum at forum.seosoft.dk, SQLInsight Pro as a category
The forum is shared by SEOSoft's products, so SQLInsight Pro becomes the
top-level category "sqlinsight" with the existing categories beneath it.

- render.py/install.sh: default hostname forum.seosoft.dk
- configure.py: forum-wide settings ("SEOSoft Forum") kept apart from the
  SQLInsight Pro category tree; subcategories found via /site.json; the
  welcome topic is pinned in the category, not on the shared front page
- Community site: ForumCategory option. The front page lists only that
  category's topics (c/<slug>/l/latest.json); forum links go to the
  category, topic links stay at the forum root
- Web: default ForumUrl https://forum.seosoft.dk/c/sqlinsight. The old
  forum.sqlinsight.seosoft.dk stays as a redirect for installed versions

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 10:34:29 +02:00

32 lines
1.5 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; }
/// <summary>Name shown on reports, e.g. the company or department.</summary>
public string Organization { get; set; } = "SQL Server-miljøet";
/// <summary>The SQLInsight Pro website (documentation, downloads, support plans), linked from the menu.</summary>
public Uri CommunityUrl { get; set; } = new("https://sqlinsight.seosoft.dk/");
/// <summary>The community forum, linked from the menu.</summary>
public Uri ForumUrl { get; set; } = new("https://forum.seosoft.dk/c/sqlinsight");
}