Files
tiku-backend.net/Tiku.Application/Tenancy/TenantDomainLifecycleModels.cs
xiong c497a3ca8d
Some checks failed
ci / release-gate (push) Has been cancelled
清理代码
2026-08-03 12:31:39 +08:00

41 lines
1.4 KiB
C#

namespace Tiku.Application.Tenancy;
public sealed class DomainLifecycleOptions
{
public bool Enabled { get; set; } = true;
public int PollSeconds { get; set; } = 60;
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);
}