fix: address code review findings for DNS management
- CRITICAL: Change DNS zones endpoint from GET to POST to avoid leaking API token in URL query parameters - HIGH: Add sync.RWMutex to protect dnsProvider field in Server, Deployer, and proxy Manager against concurrent read/write races - HIGH: Capture old DNS provider reference synchronously before launching background cleanup goroutine - HIGH: Use getDNS()/getDNSProviderLocked() accessors instead of direct field reads in all DNS operations
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import { h as head, e as escape_html, s as store_get, f as ensure_array_like, u as unsubscribe_stores } from "../../../../chunks/index.js";
|
||||
import { S as Skeleton } from "../../../../chunks/Skeleton.js";
|
||||
import "../../../../chunks/toast.js";
|
||||
import { t } from "../../../../chunks/index2.js";
|
||||
import { I as IconPlus } from "../../../../chunks/IconPlus.js";
|
||||
function _page($$renderer, $$props) {
|
||||
$$renderer.component(($$renderer2) => {
|
||||
var $$store_subs;
|
||||
let $$settled = true;
|
||||
let $$inner_renderer;
|
||||
function $$render_inner($$renderer3) {
|
||||
head("p19oey", $$renderer3, ($$renderer4) => {
|
||||
$$renderer4.title(($$renderer5) => {
|
||||
$$renderer5.push(`<title>${escape_html(store_get($$store_subs ??= {}, "$t", t)("settingsRegistries.title"))} - ${escape_html(store_get($$store_subs ??= {}, "$t", t)("app.name"))}</title>`);
|
||||
});
|
||||
});
|
||||
$$renderer3.push(`<div class="space-y-6"><div class="flex items-center justify-between"><div><h2 class="text-lg font-semibold text-[var(--text-primary)]">${escape_html(store_get($$store_subs ??= {}, "$t", t)("settingsRegistries.title"))}</h2> <p class="text-sm text-[var(--text-secondary)]">${escape_html(store_get($$store_subs ??= {}, "$t", t)("settingsRegistries.description"))}</p></div> `);
|
||||
{
|
||||
$$renderer3.push("<!--[0-->");
|
||||
$$renderer3.push(`<button class="inline-flex items-center gap-2 rounded-lg bg-[var(--color-brand-600)] px-4 py-2.5 text-sm font-medium text-white shadow-sm hover:bg-[var(--color-brand-700)] transition-colors active:animate-press">`);
|
||||
IconPlus($$renderer3, { size: 16 });
|
||||
$$renderer3.push(`<!----> ${escape_html(store_get($$store_subs ??= {}, "$t", t)("settingsRegistries.addRegistry"))}</button>`);
|
||||
}
|
||||
$$renderer3.push(`<!--]--></div> `);
|
||||
{
|
||||
$$renderer3.push("<!--[-1-->");
|
||||
}
|
||||
$$renderer3.push(`<!--]--> `);
|
||||
{
|
||||
$$renderer3.push("<!--[0-->");
|
||||
$$renderer3.push(`<div class="space-y-3"><!--[-->`);
|
||||
const each_array = ensure_array_like(Array(2));
|
||||
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
||||
each_array[$$index];
|
||||
Skeleton($$renderer3, { height: "5rem" });
|
||||
}
|
||||
$$renderer3.push(`<!--]--></div>`);
|
||||
}
|
||||
$$renderer3.push(`<!--]--></div>`);
|
||||
}
|
||||
do {
|
||||
$$settled = true;
|
||||
$$inner_renderer = $$renderer2.copy();
|
||||
$$render_inner($$inner_renderer);
|
||||
} while (!$$settled);
|
||||
$$renderer2.subsume($$inner_renderer);
|
||||
if ($$store_subs) unsubscribe_stores($$store_subs);
|
||||
});
|
||||
}
|
||||
export {
|
||||
_page as default
|
||||
};
|
||||
Reference in New Issue
Block a user