ops: accept direct host isolation during internal verify
Staging Backend Quality Gate / validate (push) Successful in 22m15s
Staging Backend Quality Gate / publish (push) Successful in 10m8s

This commit is contained in:
Jesse_Chen
2026-08-10 05:27:24 +08:00
parent 7a24a8d387
commit 8823597f4c
2 changed files with 6 additions and 2 deletions
+3 -2
View File
@@ -241,6 +241,7 @@ for (const [role, key] of [
}
const internal = process.env.VERIFICATION_MODE === "internal";
const expectedUserAdminStatus = internal ? 403 : 404;
const request = (origin, path, options = {}) => {
if (!internal) return fetch(`${origin}${path}`, options);
return new Promise((resolve, reject) => {
@@ -298,8 +299,8 @@ for (let attempt = 1; attempt <= 12; attempt += 1) {
};
if (
login.ok
&& userAdminPage.status === 404
&& userAdminApi.status === 404
&& userAdminPage.status === expectedUserAdminStatus
&& userAdminApi.status === expectedUserAdminStatus
&& adminPage.status === 307
&& adminPage.headers.get("location") === "/login"
&& adminApi.status === 401
@@ -990,6 +990,9 @@ test("production runner validates state and migrations before switching exact im
assert.match(runner, /if \[ "\$VERIFICATION_MODE" = "public" \]/);
assert.match(runner, /import http from "node:http"/);
assert.match(runner, /http\.request\(\{[\s\S]*Host: new URL\(origin\)\.host/);
assert.match(runner, /expectedUserAdminStatus = internal \? 403 : 404/);
assert.match(runner, /userAdminPage\.status === expectedUserAdminStatus/);
assert.match(runner, /userAdminApi\.status === expectedUserAdminStatus/);
assert.match(runner, /up -d --no-build api web/);
assert.match(runner, /up -d --no-build --force-recreate --no-deps caddy/);
assert.match(runner, /\["identity", "IDENTITY_DATABASE_URL"\]/);