From 7a1861c0eeac790ec2139cfd5b7adfbfdaace854 Mon Sep 17 00:00:00 2001 From: Axel Rindle Date: Fri, 6 Feb 2026 10:40:05 +0100 Subject: [PATCH 1/7] fix: quote boolean value --- chart/brahmsee-digital/templates/secrets.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chart/brahmsee-digital/templates/secrets.yaml b/chart/brahmsee-digital/templates/secrets.yaml index 829f5c70..b296c04a 100644 --- a/chart/brahmsee-digital/templates/secrets.yaml +++ b/chart/brahmsee-digital/templates/secrets.yaml @@ -23,7 +23,7 @@ stringData: oidc_issuer: {{ .Values.app.oidc.issuer }} oidc_clientId: {{ .Values.app.oidc.clientId }} oidc_clientSecret: {{ .Values.app.oidc.clientSecret }} - oidc_allowInsecure: {{ .Values.app.oidc.allowInsecure }} + oidc_allowInsecure: {{ .Values.app.oidc.allowInsecure | quote }} --- apiVersion: v1 kind: Secret From ce3e604d26d7a6e4ea782dc98713ee538aed982d Mon Sep 17 00:00:00 2001 From: Axel Rindle Date: Fri, 6 Feb 2026 11:05:34 +0100 Subject: [PATCH 2/7] fix: install openssl --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2251e120..bfe04bad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM node:22.20.0-alpine3.22 AS workspace-base -RUN apk add --no-cache bash curl jq +RUN apk add --no-cache bash curl jq openssl RUN export COREPACK_INTEGRITY_KEYS="$(curl https://registry.npmjs.org/-/npm/v1/keys | jq -c '{npm: .keys}')" From 55a8915f3a88dcf11236a03bf0c0d300be24acd8 Mon Sep 17 00:00:00 2001 From: Axel Rindle Date: Fri, 6 Feb 2026 11:19:42 +0100 Subject: [PATCH 3/7] fix: coerce boolean --- apps/api/src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/api/src/config.ts b/apps/api/src/config.ts index d6b7558d..4fdff314 100644 --- a/apps/api/src/config.ts +++ b/apps/api/src/config.ts @@ -47,7 +47,7 @@ export const configSchema = z.strictObject({ } return trimmed }), - allowInsecure: z.boolean(), + allowInsecure: z.coerce.boolean(), }), }), From 3510dae8259e90d956d72a5be5cc25106aac79ae Mon Sep 17 00:00:00 2001 From: Axel Rindle Date: Fri, 6 Feb 2026 11:29:50 +0100 Subject: [PATCH 4/7] fix: tweak ingress routes --- chart/brahmsee-digital/templates/ingress.yaml | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/chart/brahmsee-digital/templates/ingress.yaml b/chart/brahmsee-digital/templates/ingress.yaml index e124f8b6..6969f669 100644 --- a/chart/brahmsee-digital/templates/ingress.yaml +++ b/chart/brahmsee-digital/templates/ingress.yaml @@ -23,30 +23,16 @@ spec: certResolver: default routes: {{- range .Values.global.ingress.hosts }} - - match: Host(`{{ . }}`) && PathPrefix(`/`) - kind: Rule - services: - - name: {{ $.Chart.Name }}-app-svc - port: 80 - - match: Host(`{{ . }}`) && PathPrefix(`/api/connect`) - kind: Rule - services: - - name: {{ $.Chart.Name }}-app-svc - port: 80 - middlewares: - - name: stripapiprefix - - match: Host(`{{ . }}`) && PathPrefix(`/api/export`) + - match: Host(`{{ . }}`) && PathPrefix(`/api`) kind: Rule services: - name: {{ $.Chart.Name }}-app-svc port: 80 middlewares: - name: stripapiprefix - - match: Host(`{{ . }}`) && PathPrefix(`/api/upload`) + - match: Host(`{{ . }}`) && PathPrefix(`/`) kind: Rule services: - name: {{ $.Chart.Name }}-app-svc port: 80 - middlewares: - - name: stripapiprefix {{- end }} From 4458a68f2d354f2a2cf14619b1b382702f4d6fc1 Mon Sep 17 00:00:00 2001 From: Axel Rindle Date: Fri, 6 Feb 2026 11:52:41 +0100 Subject: [PATCH 5/7] fix: restore original /connect path --- apps/api/src/routes/oidc/index.ts | 4 ++-- apps/api/src/server.ts | 2 +- apps/frontend/src/views/Login/Login.vue | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/api/src/routes/oidc/index.ts b/apps/api/src/routes/oidc/index.ts index eed98eaa..ceeb1765 100644 --- a/apps/api/src/routes/oidc/index.ts +++ b/apps/api/src/routes/oidc/index.ts @@ -31,7 +31,7 @@ oidcRouter.get('/dlrg/callback', async (c) => { config.authentication.dlrg.clientSecret === undefined ? oauth.None() : oauth.ClientSecretPost(config.authentication.dlrg.clientSecret) - const redirect_uri = `${config.clientUrl}/api/oidc/dlrg/callback` + const redirect_uri = `${config.clientUrl}/api/connect/dlrg/callback` const currentUrl: URL = new URL(c.req.url, config.clientUrl) const params = oauth.validateAuthResponse(as, client, currentUrl) @@ -144,7 +144,7 @@ oidcRouter.get('/dlrg/login', async (c) => { const as = await oauth.processDiscoveryResponse(issuer, discoveryRequestResponse) const authorizationUrl = new URL(as.authorization_endpoint!) - const redirectUri = new URL('/api/oidc/dlrg/callback', config.clientUrl) + const redirectUri = new URL('/api/connect/dlrg/callback', config.clientUrl) const registerAs = c.req.query('as')?.trim() if (registerAs !== undefined && registerAs?.length > 0) { redirectUri.searchParams.set('as', registerAs) diff --git a/apps/api/src/server.ts b/apps/api/src/server.ts index 3cce184b..88a59442 100644 --- a/apps/api/src/server.ts +++ b/apps/api/src/server.ts @@ -55,7 +55,7 @@ const app = makeApp() .route('/export', routes.exportRouter) .route('/import', routes.importRouter) .route('/file', routes.fileRouter) - .route('/oidc', routes.oidcRouter) + .route('/connect', routes.oidcRouter) const server = serve({ fetch: app.fetch, diff --git a/apps/frontend/src/views/Login/Login.vue b/apps/frontend/src/views/Login/Login.vue index ba523aeb..f632577e 100644 --- a/apps/frontend/src/views/Login/Login.vue +++ b/apps/frontend/src/views/Login/Login.vue @@ -54,7 +54,7 @@ const formatLoginError = computed(() => { const version = `${import.meta.env.VITE_APP_VERSION || 'unknown'}-${import.meta.env.VITE_APP_COMMIT_HASH || 'unknown'}` -const oauthHref = `/api/oidc/dlrg/login` +const oauthHref = `/api/connect/dlrg/login`