feat(setup): OIDC step in setup wizard + runtime OIDC_ONLY flag
Solves the OIDC-only bootstrap lockout (admin can't reach the in-app OIDC settings page when password login is disabled and OIDC is unset). - Frontend image entrypoint injects /runtime-config.js from the deploy-time HARBORFORGE_OIDC_ONLY env so the SPA knows the mode before the backend exists. - Setup wizard gains an "OIDC" step (between Admin and Backend): required when OIDC-only (incl. admin's OIDC subject so the bootstrap admin can sign in), optional otherwise; written into harborforge.json. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
13
Dockerfile
13
Dockerfile
@@ -12,10 +12,15 @@ RUN npm install -g serve@14
|
||||
WORKDIR /app
|
||||
COPY --from=build /app ./
|
||||
ENV FRONTEND_DEV_MODE=0
|
||||
# OIDC-only mode flag. The SPA's effective behavior is driven at runtime by
|
||||
# the backend's public GET /auth/config (single source of truth); this
|
||||
# build/runtime arg is declared so the frontend image carries the same knob.
|
||||
# OIDC-only mode flag. Injected into the SPA at container start as
|
||||
# /runtime-config.js so the setup wizard knows it before the backend
|
||||
# exists; /auth/config remains authoritative once the backend is up.
|
||||
ARG HARBORFORGE_OIDC_ONLY=false
|
||||
ENV HARBORFORGE_OIDC_ONLY=${HARBORFORGE_OIDC_ONLY}
|
||||
EXPOSE 3000
|
||||
CMD ["sh", "-c", "if [ \"$FRONTEND_DEV_MODE\" = \"1\" ]; then npm run dev -- --host 0.0.0.0 --port 3000 --strictPort; else serve -s dist -l 3000; fi"]
|
||||
CMD ["sh", "-c", "\
|
||||
if [ \"$HARBORFORGE_OIDC_ONLY\" = \"true\" ]; then OO=true; else OO=false; fi; \
|
||||
CFG=\"window.__HF_RUNTIME__={\\\"oidc_only\\\":$OO};\"; \
|
||||
mkdir -p public; printf '%s' \"$CFG\" > public/runtime-config.js; \
|
||||
[ -d dist ] && printf '%s' \"$CFG\" > dist/runtime-config.js; \
|
||||
if [ \"$FRONTEND_DEV_MODE\" = \"1\" ]; then npm run dev -- --host 0.0.0.0 --port 3000 --strictPort; else serve -s dist -l 3000; fi"]
|
||||
|
||||
Reference in New Issue
Block a user