# Mode1 - Auth Module Test Suite Self-contained test environment for the auth-module. This directory includes its own copy of auth-module and all dependencies. ## Structure ``` Mode1/ ├── auth-module/ # Local copy of auth-module (not linked to root) ├── backend/ # Backend server with auth endpoints │ └── server.ts # Hono app with Graph token and PB validation APIs ├── frontend/ # Frontend test interface │ └── index.html # Interactive test dashboard ├── logs/ # Application logs ├── package.json # Dependencies (auth module + Hono + PocketBase) └── bun.lock # Locked dependencies ``` ## Features Tested ✓ **Frontend Auth (PocketBaseAuth)** - OAuth2 login initialization - Auth state retrieval - Token refresh - Logout ✓ **Backend Auth (GraphTokenManager)** - Microsoft Graph token acquisition - Token caching (with 60s expiration buffer) - Cache validity checking - Cache refresh ✓ **PocketBase Validation (PocketBaseValidator)** - User token validation - User record retrieval ## Running Mode1 ### Via Orchestrator (recommended) ```bash # Switch to Mode1 curl -X POST http://localhost:3006/switch/Mode1 # Check status curl http://localhost:3006/status ``` ### Direct ```bash # Install dependencies (already done) bun install # Start server bun run backend/server.ts # Access dashboard open http://localhost:3005 ``` ## API Endpoints ### Configuration - `GET /api/auth/config` - Get frontend configuration ### Graph Token Management - `GET /api/auth/graph/token` - Get current Graph token (with expiration) - `POST /api/auth/refresh-graph` - Force refresh Graph token ### PocketBase Validation - `POST /api/auth/validate-pb-token` - Validate a PocketBase token ### Health - `GET /health` - Health check ## Environment Variables Uses `/home/admin/secrets/.env` via auth-module: - `CLIENT_ID` - Microsoft application ID - `TENANT_ID` - Azure tenant ID - `CLIENT_SECRET` - Microsoft client secret - `PB_URL` - PocketBase frontend URL - `PB_DB` - PocketBase backend URL ## Dependencies All dependencies are installed locally in `node_modules/`: - `hono` - Web framework - `pocketbase` - PocketBase client - `@azure/msal-node` - Microsoft authentication - `dotenv` - Environment variable loading ## Notes - This Mode1 is **completely self-contained** with its own auth-module copy - No dependencies on root auth-module - Safe to modify and test independently - All secrets come from `/home/admin/secrets/.env`