Commit Graph

12 Commits

Author SHA1 Message Date
782e42ac64 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>
2026-05-17 20:50:58 +01:00
8f8d6d5465 feat(auth): OIDC login UI + binding management + OIDC-only mode
- useAuthConfig fetches public /auth/config; LoginPage hides the
  password form when oidc_only and shows an SSO button when enabled.
- /oidc/callback route applies the returned JWT (sign-in) or shows the
  link result; oidc_error surfaced on LoginPage.
- UsersPage: hides password fields in OIDC-only mode; admin OIDC
  bind/unbind UI per user. Sidebar self-service "Link OIDC account"
  (non-OIDC_ONLY).
- Dockerfile ARG/ENV HARBORFORGE_OIDC_ONLY.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 20:22:14 +01:00
zhi
ef42231697 feat: unify task creation with shared modal 2026-03-16 16:32:09 +00:00
1d74917899 fix: use backend:8000 for container network in wizard default 2026-03-15 13:36:27 +00:00
fb02808666 fix: set ARG before COPY for VITE_API_BASE to work in build 2026-03-15 12:57:21 +00:00
800a618aaa feat: add role editor page with create/delete functionality
- Add RoleEditorPage with role management
- Add Create New Role button (admin only)
- Add Delete Role button (admin only, admin role protected)
- Fix useAuth import in RoleEditorPage
2026-03-15 12:26:04 +00:00
Zhi
9190c17abc Hardcode wizard base to 127.0.0.1 2026-03-14 10:22:36 +00:00
Zhi
f7a19c71d6 Add VITE_WIZARD_HOST env variable 2026-03-13 19:43:04 +00:00
zhi
c92e399218 fix: check wizard config for initialized flag instead of backend health
- App checks wizard API for harborforge.json config with initialized=true
- If not initialized, show embedded setup wizard (talks to wizard API via CORS)
- Setup saves config with initialized:true to wizard config volume
- After restart, backend reads config and starts, frontend sees initialized=true
- Remove VITE_API_BASE build arg (not needed, api.ts uses /api relative path)
- Fix Object.entries null crash in DashboardPage
2026-03-11 10:09:33 +00:00
zhi
f8fac48fcc feat: setup wizard page for first-deploy initialization
- SetupWizardPage: step-by-step config (DB, admin, project)
- Connects directly to AbstractWizard via SSH tunnel (127.0.0.1)
- App.tsx: detect backend health, show wizard if not ready
- Auto-switch wizard to readonly after setup
- Add VITE_WIZARD_PORT build arg
- Add vite-env.d.ts for type safety
2026-03-06 13:46:46 +00:00
zhi
54d4c4379a feat: remove nginx, add projects/milestones/notifications pages
- Dockerfile: replace nginx with serve for static files
- Fix auth endpoint: /auth/login → /auth/token
- Add ProjectsPage, ProjectDetailPage
- Add MilestonesPage, MilestoneDetailPage with progress bar
- Add NotificationsPage with unread count
- Sidebar: add milestones/notifications nav, live unread badge
- API: configurable VITE_API_BASE for host nginx proxy
- Types: add Milestone, MilestoneProgress, Notification, ProjectMember
2026-03-06 13:05:19 +00:00
Zhi
853594f447 feat: initial frontend - React + TypeScript + Vite
- Login page with JWT auth
- Dashboard with stats and charts
- Issues list with pagination, filtering
- Issue detail with comments, status transitions
- Create issue form
- Dark theme UI
- Docker (nginx) with API proxy to backend
- Sidebar navigation
2026-02-27 09:47:19 +00:00