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:
2026-04-02 14:54:15 +03:00
parent c730cfaa45
commit 670948f113
243 changed files with 15971 additions and 535 deletions
@@ -0,0 +1,42 @@
import { w as writable } from "./index3.js";
function createToastStore() {
const { subscribe, update } = writable([]);
let counter = 0;
function add(message, type = "info", duration = 5e3) {
const id = `toast-${++counter}-${Date.now()}`;
const toast = { id, message, type, duration };
update((toasts2) => [...toasts2, toast]);
if (duration > 0) {
setTimeout(() => remove(id), duration);
}
return id;
}
function remove(id) {
update((toasts2) => toasts2.filter((t) => t.id !== id));
}
function success(message, duration = 5e3) {
return add(message, "success", duration);
}
function error(message, duration = 7e3) {
return add(message, "error", duration);
}
function warning(message, duration = 5e3) {
return add(message, "warning", duration);
}
function info(message, duration = 5e3) {
return add(message, "info", duration);
}
return {
subscribe,
add,
remove,
success,
error,
warning,
info
};
}
const toasts = createToastStore();
export {
toasts as t
};