Dashboard UI for per-service DNS-01 cert issuance#626
Dashboard UI for per-service DNS-01 cert issuance#626TechHutTV wants to merge 8 commits intonetbirdio:mainfrom
Conversation
|
|
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary (proof of concept for testing)
Adds the dashboard surface for the new per-service ACME configuration on the management API. A user can now choose how each reverse-proxy service issues its certificate (
tls-alpn-01/http-01/dns-01), pick a DNS provider, and either enter credentials inline or reuse a previously saved credential.A new account-level DNS Credentials page makes those credentials manageable independently of any single service: create, rotate (with leave-blank-to-keep semantics), and delete.
Pairs with the management/proxy work on
brandon/dns-lego-feature(TechHutTV/netbird).Changes
Service modal — Certificate tab
tls-alpn-01,http-01,dns-01.dns_credentials_refdirectly (no extra request)./credentialsfirst, then service POST/PUT references the returned id.dns_credentials_refis preserved.DNS Credentials page (
/reverse-proxy/dns-credentials)secret_fieldswhen the user actually typed something — name-only edits keep the existing secret.Types and data layer
src/interfaces/Credential.ts— TS contract for the/credentialsAPI surface (Credential,CredentialRequest,CredentialProviderType,ChallengeType,CHALLENGE_TYPES).src/interfaces/ReverseProxy.ts— three new optional fields onReverseProxy:challenge_type,dns_provider,dns_credentials_ref.src/contexts/ReverseProxiesProvider.tsx— exposescredentials,createCredential,updateCredential,deleteCredential; SWR-mutates/credentialson each mutation.Out of scope (intentional)
credentialspermission key — falls back topermission?.services?.*for now; the management API doesn't yet expose a dedicated permission module for credentials.How to test
/reverse-proxy/dns-credentialswith a real scoped API token.dns-01service pointing at a domain in that zone, picking the saved credential — confirm only one request hits/services(no/credentialsPOST).dns-01service via the inline "Create new credential" path — confirm POST/credentialsthen POST/servicesin the network tab./credentials/{id}withsecret_fieldspopulated.dns-01service, switch it to a different saved credential — confirmdns_credentials_refupdates without re-creating a credential.Verification
npx tsc --noEmit— clean.npm run build— production build succeeds; new/reverse-proxy/dns-credentialsroute is generated.Issue ticket number and link
Documentation
Select exactly one:
Docs PR URL (required if "docs added" is checked)
Paste the PR link from https://github.com/netbirdio/docs here:
https://github.com/netbirdio/docs/pull/__