[PR #1519] feat: Integrate DNS record management into site configuration #5753

Closed
opened 2026-03-01 15:42:28 +03:00 by kerem · 0 comments
Owner

Original Pull Request: https://github.com/0xJacky/nginx-ui/pull/1519

State: closed
Merged: Yes


  • Enhanced SiteAdd.vue to include DNS record integration, allowing users to select or create DNS records linked to the site.
  • Added DNSRecordIntegration component for managing DNS records, including selection and creation of new records.
  • Implemented DNS linking functionality in the RightPanel component, enabling users to link existing DNS records to their site configuration.
  • Updated SiteEditor to provide DNS link status to child components.
  • Extended the site model to include fields for linked DNS domain and record information.
  • Added logic to handle DNS record recreation if a linked record is missing.

Note

Introduces DNS record integration across backend and UI for site configurations.

  • Backend: Extends model.Site with dns_* fields; SaveSite accepts/persists DNS link data and sets dns_record_exists; GetSite verifies record existence via internal/dns and updates status.
  • Site creation: SiteAdd.vue adds a DNS step using DNSRecordIntegration to select/create records, auto-updating server_name and passing DNS data on save.
  • Site editing: New RightPanel/DNS.vue to link existing records, create/recreate missing ones, and clear links; editor store now carries DNS fields and saves them.
  • UX safeguards: DirectiveEditorItem.vue locks server_name and shows a lock icon when DNS is linked.
  • API/types: Updates app/src/api/site.ts to include DNS fields in Site.
  • Also exposes proxy targets in GetSite response unchanged, now reused in UI.

Written by Cursor Bugbot for commit c6b0213761. This will update automatically on new commits. Configure here.

**Original Pull Request:** https://github.com/0xJacky/nginx-ui/pull/1519 **State:** closed **Merged:** Yes --- - Enhanced SiteAdd.vue to include DNS record integration, allowing users to select or create DNS records linked to the site. - Added DNSRecordIntegration component for managing DNS records, including selection and creation of new records. - Implemented DNS linking functionality in the RightPanel component, enabling users to link existing DNS records to their site configuration. - Updated SiteEditor to provide DNS link status to child components. - Extended the site model to include fields for linked DNS domain and record information. - Added logic to handle DNS record recreation if a linked record is missing. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Introduces DNS record integration across backend and UI for site configurations. > > - **Backend**: Extends `model.Site` with `dns_*` fields; `SaveSite` accepts/persists DNS link data and sets `dns_record_exists`; `GetSite` verifies record existence via `internal/dns` and updates status. > - **Site creation**: `SiteAdd.vue` adds a DNS step using `DNSRecordIntegration` to select/create records, auto-updating `server_name` and passing DNS data on save. > - **Site editing**: New `RightPanel/DNS.vue` to link existing records, create/recreate missing ones, and clear links; editor store now carries DNS fields and saves them. > - **UX safeguards**: `DirectiveEditorItem.vue` locks `server_name` and shows a lock icon when DNS is linked. > - **API/types**: Updates `app/src/api/site.ts` to include DNS fields in `Site`. > - Also exposes proxy targets in `GetSite` response unchanged, now reused in UI. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit c6b0213761e7a046c372d54b0c534478b912fe82. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
kerem 2026-03-01 15:42:28 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/nginx-ui#5753
No description provided.