1.9 KiB
| id | title | status | assignee | created_date | labels | dependencies | priority | |||
|---|---|---|---|---|---|---|---|---|---|---|
| TASK-19 | Add EncryptID auth header and gate community creation | Done | 2026-02-17 00:51 |
|
high |
Description
Add a persistent header bar with EncryptID sign-in/sign-up across all rSpace pages (landing + canvas). Gate the "Create Community Space" form behind authentication — shows a passkey auth modal if the user isn't signed in. Auth tokens are sent with the community creation API call.
Acceptance Criteria
- #1 Header bar with sign-in button on landing page (dark theme)
- #2 Header bar with sign-in button on canvas page (light theme)
- #3 Auth modal with sign-in and register flows using WebAuthn passkeys
- #4 Create Community form requires auth — shows modal if not signed in
- #5 Bearer token sent with community creation API call
- #6 User avatar and dropdown menu when logged in
- #7 EncryptID modules lazy-loaded only when auth triggered
Final Summary
Implemented in commit da48f6f. Created lib/rspace-header.ts shared module with mountHeader(), showAuthModal(), requireAuth() functions. Modified both website/index.html and website/canvas.html to mount the header. Added @encryptid vite alias for lazy-loading WebAuthn modules.
Follow-up fix in 46d8429: header now re-renders after auth via the requireAuth() flow (e.g. community creation form), so the Sign In button updates to show the user avatar immediately.
Docker build fixed in fd25996/6bafcf3: switched to self-contained build context with additional_contexts for encryptid-sdk, added .dockerignore, skipped tsc in Docker build.
Auto-deploy configured: added rspace-online to deploy-webhook REPOS + created Gitea webhook (ID 74). Pushes to main now auto-deploy.