Revert NocoDB auto sign-in, keep CSP fix for embed proxy
NocoDB v2 stores auth tokens in-memory (Pinia store), not in cookies
accessible to external pages. The auth bridge approach can't inject
tokens into NocoDB's SPA state. Reverted to the original banner
approach ("sign in to NocoDB in a new tab").
Kept: CSP fix (frame-ancestors http://localhost:* instead of just
localhost, which only matched port 80).
Bunker Admin
This commit is contained in:
@@ -96,8 +96,6 @@ const envSchema = z.object({
|
||||
|
||||
// Platform Services (NocoDB, n8n, Gitea)
|
||||
NOCODB_URL: z.string().default('http://changemaker-v2-nocodb:8080'),
|
||||
NC_ADMIN_EMAIL: z.string().default(''),
|
||||
NC_ADMIN_PASSWORD: z.string().default(''),
|
||||
NOCODB_PORT: z.coerce.number().default(8091),
|
||||
NOCODB_EMBED_PORT: z.coerce.number().default(8881),
|
||||
N8N_URL: z.string().default('http://n8n-changemaker:5678'),
|
||||
|
||||
@@ -64,48 +64,6 @@ router.get(
|
||||
},
|
||||
);
|
||||
|
||||
// GET /api/services/nocodb-auth — proxy NocoDB signin to get an auth token for iframe auto-login
|
||||
router.get(
|
||||
'/nocodb-auth',
|
||||
async (_req: Request, res: Response, next: NextFunction) => {
|
||||
try {
|
||||
if (!env.NC_ADMIN_EMAIL || !env.NC_ADMIN_PASSWORD) {
|
||||
res.status(503).json({ error: 'NocoDB admin credentials not configured' });
|
||||
return;
|
||||
}
|
||||
|
||||
const controller = new AbortController();
|
||||
const timeout = setTimeout(() => controller.abort(), 5000);
|
||||
try {
|
||||
const response = await fetch(`${env.NOCODB_URL}/api/v1/auth/user/signin`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ email: env.NC_ADMIN_EMAIL, password: env.NC_ADMIN_PASSWORD }),
|
||||
signal: controller.signal,
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
res.status(502).json({ error: 'NocoDB authentication failed' });
|
||||
return;
|
||||
}
|
||||
|
||||
const data = (await response.json()) as { token?: string };
|
||||
if (!data.token) {
|
||||
res.status(502).json({ error: 'No token in NocoDB response' });
|
||||
return;
|
||||
}
|
||||
|
||||
res.json({ token: data.token });
|
||||
} finally {
|
||||
clearTimeout(timeout);
|
||||
}
|
||||
} catch (err) {
|
||||
logger.error('NocoDB auth proxy failed', err);
|
||||
next(err);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
// GET /api/services/config — return public-facing port numbers + subdomain info for iframe URLs
|
||||
router.get(
|
||||
'/config',
|
||||
|
||||
Reference in New Issue
Block a user