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 58s
deploy community / deploy (push) Successful in 13s
deploy hub / deploy (push) Successful in 23s
CI / MSI-installer (push) Successful in 35s
A thin bar above the header ("Tilbage til seosoft.dk") and footer links
lead back to the vendor's site. CompanyUrl is configurable.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
43 lines
2.1 KiB
C#
43 lines
2.1 KiB
C#
namespace SQLInsight.Community;
|
|
|
|
public sealed class CommunityOptions
|
|
{
|
|
public const string SectionName = "SQLInsight:Community";
|
|
|
|
/// <summary>The signed update feed (https or folder), where releases and rule packs are published.</summary>
|
|
public string? Feed { get; set; }
|
|
|
|
/// <summary>
|
|
/// Public address of the feed, for download links, when <see cref="Feed"/> is a folder or an internal address
|
|
/// (e.g. https://hub.sqlinsight.seosoft.dk/updates/). Defaults to <see cref="Feed"/> when that is http(s).
|
|
/// </summary>
|
|
public Uri? DownloadUrl { get; set; }
|
|
|
|
/// <summary>The Discourse forum's root, e.g. https://forum.seosoft.dk/. Topic links are built from it.</summary>
|
|
public Uri? ForumUrl { get; set; }
|
|
|
|
/// <summary>
|
|
/// Slug of SQLInsight Pro's category when the forum is shared with other products (e.g. "sqlinsight"). The front
|
|
/// page then only lists that category's topics, and the forum links go to the category instead of the root.
|
|
/// </summary>
|
|
public string? ForumCategory { get; set; }
|
|
|
|
/// <summary>Where "Forum" links go: the category when <see cref="ForumCategory"/> is set, otherwise the root.</summary>
|
|
public Uri? ForumHome => ForumUrl is { } forum && !string.IsNullOrWhiteSpace(ForumCategory)
|
|
? new Uri(forum, $"c/{Uri.EscapeDataString(ForumCategory)}")
|
|
: ForumUrl;
|
|
|
|
public Uri SourceUrl { get; set; } = new("https://git.seosoft.dk/seo/sqlinsight-pro");
|
|
|
|
/// <summary>The vendor's own site, linked from the header and footer so visitors can get back to it.</summary>
|
|
public Uri CompanyUrl { get; set; } = new("https://seosoft.dk/");
|
|
|
|
/// <summary>Where Professional and Enterprise enquiries go.</summary>
|
|
public string ContactEmail { get; set; } = "salg@example.com";
|
|
|
|
/// <summary>Public keys trusted for the feed, in addition to the embedded ones (key id → base64 SubjectPublicKeyInfo).</summary>
|
|
public IDictionary<string, string> TrustedKeys { get; } = new Dictionary<string, string>();
|
|
|
|
/// <summary>How long releases, the rule pack and forum topics are cached.</summary>
|
|
public TimeSpan CacheFor { get; set; } = TimeSpan.FromMinutes(10);
|
|
}
|