feat: multi-Oracle server support with runtime switching
Complete implementation of multi-server Oracle database support: Backend: - Multi-pool Oracle with lazy loading per server - Email-to-server cache for automatic server discovery - JWT tokens include server_id claim - /auth/check-identity and /auth/check-email endpoints - /auth/my-servers endpoint for listing user's accessible servers - Server switch with password re-authentication Frontend: - New ServerSelector component for header dropdown - Multi-step login flow (identity → server → password) - Server switching from header with password modal - Mobile drawer menu with server selection - Dark mode support for all new components - URL bookmark support with ?server= query param Scripts: - Unified start.sh replacing start-prod.sh/start-test.sh - Unified ssh-tunnel.sh with multi-server support - Updated status.sh for new architecture Tests: - E2E tests for multi-server and single-server login flows - Backend unit tests for all new endpoints - Oracle multi-pool integration tests Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
26
.gitignore
vendored
26
.gitignore
vendored
@@ -433,9 +433,15 @@ run_tests.*
|
||||
scan_*.json
|
||||
sdist/
|
||||
sdist/
|
||||
# Secrets directories (contains credentials, keys, passwords)
|
||||
secrets/
|
||||
|
||||
# Allow documentation in secrets directories
|
||||
!**/secrets/README.md
|
||||
|
||||
# SSH tunnel configuration (next to .env files)
|
||||
backend/ssh-tunnels.json
|
||||
!backend/ssh-tunnels.json.example
|
||||
security_*.json
|
||||
share/python-wheels/
|
||||
sqlnet.ora
|
||||
@@ -525,3 +531,23 @@ backend/data/receipts/uploads/*
|
||||
backend/data/ocr_queue/
|
||||
!backend/data/*/.gitkeep
|
||||
|
||||
# PRD tasks (generated, not tracked)
|
||||
tasks/
|
||||
|
||||
# ============================================================================
|
||||
# 🤖 CLAUDE & RALPH AUTOMATION - DO NOT COMMIT
|
||||
# ============================================================================
|
||||
# Claude handover and context files (session-specific)
|
||||
.claude/HANDOFF.md
|
||||
.claude/handover/
|
||||
CONTEXT_HANDOVER_*.md
|
||||
|
||||
# Ralph automation - ignore entire directory
|
||||
scripts/ralph/
|
||||
|
||||
# ============================================================================
|
||||
# 💾 SQLITE RUNTIME FILES - DO NOT COMMIT
|
||||
# ============================================================================
|
||||
# SQLite WAL (Write-Ahead Log) and SHM (Shared Memory) files
|
||||
*.db-shm
|
||||
*.db-wal
|
||||
|
||||
Reference in New Issue
Block a user