|
Multi-user auth via gnexus-auth OAuth + hybrid role/permission model
- Integrate gnexus-auth-client-py (GAuthClient) for OAuth flow, token refresh, and webhook parsing - Add navi/auth/ package: User model, Fernet encryptor, client singleton, deps (get_current_user, require_admin, require_permission) - New tables: navi_users, user_auth_sessions (auto-created on startup) - Session/memory isolation by user_id with legacy NULL support - Cookie-based auth proxy: /auth/login, /callback, /logout, /me - Webhook receiver /webhooks/gnexus-auth handling user events, global logout, session revocation, role/permission changes - Admin endpoints (/admin/*) gated by role + permissions - Webclient auth store with isAdmin/hasPermission guards - Admin-only profile filtering in /agents/profiles - 200/200 tests passing Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
|---|
|
|
| navi/api/deps.py |
|---|
| navi/api/routes/admin.py 0 → 100644 |
|---|
| navi/api/routes/agents.py |
|---|
| navi/api/routes/auth.py 0 → 100644 |
|---|
| navi/api/routes/messages.py |
|---|
| navi/api/routes/sessions.py |
|---|
| navi/api/routes/webhooks.py 0 → 100644 |
|---|
| navi/api/websocket.py |
|---|
| navi/auth/__init__.py 0 → 100644 |
|---|
| navi/auth/_ddl.py 0 → 100644 |
|---|
| navi/auth/client.py 0 → 100644 |
|---|
| navi/auth/deps.py 0 → 100644 |
|---|
| navi/auth/encrypt.py 0 → 100644 |
|---|
| navi/config.py |
|---|
| navi/core/agent.py |
|---|
| navi/core/context_builder.py |
|---|
| navi/core/pg_session_store.py |
|---|
| navi/core/session.py |
|---|
| navi/main.py |
|---|
| navi/memory/_ddl.py |
|---|
| navi/memory/_facts.py |
|---|
| navi/memory/_summary.py |
|---|
| navi/memory/extractor.py |
|---|
| navi/profiles/base.py |
|---|
| tests/integration/conftest.py |
|---|
| tests/unit/api/test_session_files.py |
|---|
| tests/unit/memory/test_extractor.py |
|---|
| tests/unit/test_startup.py |
|---|
| webclient/dist/assets/index-BAFK9TX3.css 0 → 100644 |
|---|
| webclient/dist/assets/index-C1CG_FUm.js 100644 → 0 |
|---|
|
Not supported
|
| webclient/dist/assets/index-DA27t1M9.js 0 → 100644 |
|---|
|
Not supported
|
| webclient/dist/assets/index-DjmTz8GY.css 100644 → 0 |
|---|
| webclient/dist/index.html |
|---|
| webclient/src/App.vue |
|---|
| webclient/src/api/index.js |
|---|
| webclient/src/components/sidebar/AppSidebar.vue |
|---|
| webclient/src/stores/auth.js 0 → 100644 |
|---|