Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)
Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
1.8 KiB
1.8 KiB
Technical Specification: Auth & Integration
Authentication System (RBAC)
Architecture
We use a light-weight, client-side approach for the MVP. Authentication state is persisted in the browser's sessionStorage, meaning the user stays logged in as long as the tab/window remains open.
Storage Key
- Key:
kiq_role - Values:
'admin'|'investor'
Protection Logic (ProtectedRoute.jsx)
The component wraps any route that requires authorization.
- If no
kiq_roleexists: Redirect to/login(storing the intended destination in router state). - If
allowedRolesprop is provided and the current role is not included: Redirect to/(Home).
Credential Matrix
| Username | Password | Role | Access Path |
|---|---|---|---|
admin |
testthetestingtesters-2026 |
admin |
/admin, /restricted |
investor-KIQ |
testinvestortestingit-2026 |
investor |
/restricted |
Form Integration (Web3Forms)
Implementation (AccessRequest.jsx)
The form uses the https://api.web3forms.com/submit endpoint to send structured JSON data via a POST request.
API Key
- Access Key:
5c3d4233-020d-494a-bca6-6336886f6db3(bound toKIQ@d-hive.de)
Data Payload
The following fields are transmitted:
access_key: Internal API keysubject: Dynamic subject line containing the requester's name/companyfrom_name: Static label for identificationname,company,role,email,phone,purpose,reason
UX Logic
- Validation: Native browser validation (
required,type="email") is enforced. - Loading: Submit button changes to "Wird gesendet..." and is disabled during
fetch. - Success: Displays a success component and auto-redirects to
/after 4 seconds. - Error: Displays an inline banner if the API returns an error or a network timeout occurs.