fix(dns): a consola dizia que faltava o token da Cloudflare, e nao faltava
O painel respondia "DNS reconciliation needs a provider token to be configured" enquanto o token estava configurado e a funcionar: a varredura de fundo estava a publicar registos com ele nesse preciso momento. SetDnsReconciler so atribuia quando r.dns ja existia, e o main.go chama-o antes de SetAdminDnsAPI. Escrevia num struct que ainda nao existia, sem erro nem aviso, e a API era depois construida sem reconciliador nenhum. Os testes anteriores nao apanharam isto porque construiam o adminDnsAPI directamente -- justamente a fiacao que estava partida. O teste novo passa pelos setters do Router nas duas ordens possiveis. - o reconciliador passa a ser guardado no Router, logo a ordem deixa de contar - so e ligado quando ha token, para a rota poder dizer que esta indisponivel em vez de falar com a Cloudflare com um token vazio e reportar uma recusa - a mensagem deixa de culpar o token, que nao era a causa Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9519be889d
commit
9ce5fcafaa
4 files changed
+84
-6
No files matched your search
@@ -209,10 +209,14 @@ func run(cfg config) {
|
||||
// Folders the mailbox owner keeps for themselves, which the filing rules
|
||||
// can then name as a destination.
|
||||
// The console's reconcile button reaches this: the same sync the timer
|
||||
// runs, for one named domain, on demand.
|
||||
router.SetDnsReconciler(domainReconciler{run: func(c context.Context, domain string) (*usecase.SyncDnsRecordsOutput, error) {
|
||||
return reconcileDomainOnDemand(c, cfg, aliasRepo, dkimRepo, domain)
|
||||
}})
|
||||
// runs, for one named domain, on demand. Only wired when there is a
|
||||
// provider to talk to, so the route can say it is unavailable instead of
|
||||
// reaching Cloudflare with an empty token and reporting a refusal.
|
||||
if cfg.CloudflareToken != "" {
|
||||
router.SetDnsReconciler(domainReconciler{run: func(c context.Context, domain string) (*usecase.SyncDnsRecordsOutput, error) {
|
||||
return reconcileDomainOnDemand(c, cfg, aliasRepo, dkimRepo, domain)
|
||||
}})
|
||||
}
|
||||
router.SetFolderAdmin(usecase.NewManageFoldersUseCase(
|
||||
postgres.NewWebmailRepository(pool), postgres.NewWebmailRepository(pool)))
|
||||
if dkimRepo != nil {
|
||||
|
||||
Reference in new issue
Block a user