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,168 @@
|
||||
export const manifest = (() => {
|
||||
function __memo(fn) {
|
||||
let value;
|
||||
return () => value ??= (value = fn());
|
||||
}
|
||||
|
||||
return {
|
||||
appDir: "_app",
|
||||
appPath: "_app",
|
||||
assets: new Set([]),
|
||||
mimeTypes: {},
|
||||
_: {
|
||||
client: {start:"_app/immutable/entry/start.BU-sFgwv.js",app:"_app/immutable/entry/app.C3eO1cEh.js",imports:["_app/immutable/entry/start.BU-sFgwv.js","_app/immutable/chunks/CWhLh9u1.js","_app/immutable/chunks/DKemW7Dm.js","_app/immutable/chunks/phMGo29-.js","_app/immutable/entry/app.C3eO1cEh.js","_app/immutable/chunks/DKemW7Dm.js","_app/immutable/chunks/BJdXET8u.js","_app/immutable/chunks/phMGo29-.js","_app/immutable/chunks/BSXRhUWv.js","_app/immutable/chunks/BoGS7hWi.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
|
||||
nodes: [
|
||||
__memo(() => import('./nodes/0.js')),
|
||||
__memo(() => import('./nodes/1.js')),
|
||||
__memo(() => import('./nodes/2.js')),
|
||||
__memo(() => import('./nodes/3.js')),
|
||||
__memo(() => import('./nodes/4.js')),
|
||||
__memo(() => import('./nodes/5.js')),
|
||||
__memo(() => import('./nodes/6.js')),
|
||||
__memo(() => import('./nodes/7.js')),
|
||||
__memo(() => import('./nodes/8.js')),
|
||||
__memo(() => import('./nodes/9.js')),
|
||||
__memo(() => import('./nodes/10.js')),
|
||||
__memo(() => import('./nodes/11.js')),
|
||||
__memo(() => import('./nodes/12.js')),
|
||||
__memo(() => import('./nodes/13.js')),
|
||||
__memo(() => import('./nodes/14.js')),
|
||||
__memo(() => import('./nodes/15.js')),
|
||||
__memo(() => import('./nodes/16.js')),
|
||||
__memo(() => import('./nodes/17.js')),
|
||||
__memo(() => import('./nodes/18.js')),
|
||||
__memo(() => import('./nodes/19.js'))
|
||||
],
|
||||
remotes: {
|
||||
|
||||
},
|
||||
routes: [
|
||||
{
|
||||
id: "/",
|
||||
pattern: /^\/$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 3 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/containers/stale",
|
||||
pattern: /^\/containers\/stale\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 4 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/deploy",
|
||||
pattern: /^\/deploy\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 5 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/events",
|
||||
pattern: /^\/events\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 6 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/login",
|
||||
pattern: /^\/login\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 7 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/projects",
|
||||
pattern: /^\/projects\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 8 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/projects/[id]",
|
||||
pattern: /^\/projects\/([^/]+?)\/?$/,
|
||||
params: [{"name":"id","optional":false,"rest":false,"chained":false}],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 9 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/projects/[id]/env",
|
||||
pattern: /^\/projects\/([^/]+?)\/env\/?$/,
|
||||
params: [{"name":"id","optional":false,"rest":false,"chained":false}],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 10 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/projects/[id]/volumes",
|
||||
pattern: /^\/projects\/([^/]+?)\/volumes\/?$/,
|
||||
params: [{"name":"id","optional":false,"rest":false,"chained":false}],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 11 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/projects/[id]/volumes/[volId]/browse",
|
||||
pattern: /^\/projects\/([^/]+?)\/volumes\/([^/]+?)\/browse\/?$/,
|
||||
params: [{"name":"id","optional":false,"rest":false,"chained":false},{"name":"volId","optional":false,"rest":false,"chained":false}],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 12 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/proxies",
|
||||
pattern: /^\/proxies\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 13 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/proxies/create",
|
||||
pattern: /^\/proxies\/create\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 14 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/proxies/[id]/edit",
|
||||
pattern: /^\/proxies\/([^/]+?)\/edit\/?$/,
|
||||
params: [{"name":"id","optional":false,"rest":false,"chained":false}],
|
||||
page: { layouts: [0,], errors: [1,], leaf: 15 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/settings",
|
||||
pattern: /^\/settings\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,2,], errors: [1,,], leaf: 16 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/settings/auth",
|
||||
pattern: /^\/settings\/auth\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,2,], errors: [1,,], leaf: 17 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/settings/credentials",
|
||||
pattern: /^\/settings\/credentials\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,2,], errors: [1,,], leaf: 18 },
|
||||
endpoint: null
|
||||
},
|
||||
{
|
||||
id: "/settings/registries",
|
||||
pattern: /^\/settings\/registries\/?$/,
|
||||
params: [],
|
||||
page: { layouts: [0,2,], errors: [1,,], leaf: 19 },
|
||||
endpoint: null
|
||||
}
|
||||
],
|
||||
prerendered_routes: new Set([]),
|
||||
matchers: async () => {
|
||||
|
||||
return { };
|
||||
},
|
||||
server_assets: {}
|
||||
}
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user