Files
tiku-backend.net/Tiku.Application/Tenancy/TenantDomainLifecycleModels.cs
xiong 2c4a0bad6c
Some checks failed
ci / release-gate (push) Has been cancelled
fix:修复部分数据库查询问题
2026-08-03 14:22:06 +08:00

43 lines
1.5 KiB
C#

namespace Tiku.Application.Tenancy;
public sealed class DomainLifecycleOptions
{
public bool Enabled { get; set; } = true;
public int PollSeconds { get; set; } = 60;
public int MaxIdlePollSeconds { get; set; } = 300;
public int BatchSize { get; set; } = 50;
public string DnsJsonEndpoint { get; set; } = "https://cloudflare-dns.com/dns-query";
public string VerificationRecordPrefix { get; set; } = "_tiku-verification";
public string[] AllowedCnameTargets { get; set; } = [];
public string? GatewayBaseUrl { get; set; }
public string? GatewayApiKey { get; set; }
public bool EnableDevelopmentLocalhostBypass { get; set; }
}
public sealed record DomainOwnershipResult(bool Verified, bool Configured, string? FailureReason);
public sealed record DomainGatewayResult(bool TlsReady, bool Configured, string? FailureReason);
public interface IDomainOwnershipVerifier
{
Task<DomainOwnershipResult> VerifyAsync(
string host,
string verificationToken,
CancellationToken cancellationToken = default);
}
public interface IDomainGatewayProvisioner
{
Task<DomainGatewayResult> EnsureTlsAsync(string host, CancellationToken cancellationToken = default);
}
public interface ITenantDomainLifecycleService
{
Task<int> ProcessPendingAsync(CancellationToken cancellationToken = default);
}
public interface ITenantRuntimeCacheInvalidator
{
Task InvalidateAsync(Guid tenantId, CancellationToken cancellationToken = default);
}