Files
Job-Info-Prod/CHANGELOG_SESSION.md
T
2026-01-01 16:46:29 +00:00

77 lines
2.4 KiB
Markdown

# Session Changelog - January 1, 2026
## Production Setup Session
### What Was Done
1. **Backend Setup**
- Copied working `server.ts` from Job-Info-Test
- Added `redis-cache.ts` for Valkey/Redis caching
- Fixed static file path to serve from `frontend/public`
- Fast job loading: returns first 40 jobs instantly, then full list on poll
2. **Frontend Setup**
- Copied working frontend from Job-Info-Test to `frontend/public/`
- Simplified token validation at startup:
- Check PocketBase session valid
- Check Graph token in localStorage
- If either missing → redirect to signin
- Removed redundant token refresh loops
- Added localStorage storage for Graph token in signin.html
3. **Authentication Flow**
- PocketBase OAuth with Microsoft provider
- Graph token stored in localStorage after signin
- Both tokens checked once at page load
- No repeated token validation during app usage
4. **Systemd Service**
- Created `/etc/systemd/system/job-info-prod.service`
- Runs on port 3005
- Auto-restarts on failure
5. **Git Repository**
- Initialized and pushed to: https://gitea.ccllc.pro/Cardoza_Construction/Job-Info-Prod.git
- Branch: main
### Key Files
| File | Purpose |
|------|---------|
| `backend/src/index.ts` | Main Hono server with all endpoints |
| `backend/src/redis-cache.ts` | Redis/Valkey cache helpers |
| `frontend/public/index.html` | Main app UI |
| `frontend/public/signin.html` | OAuth signin page (purple styling) |
| `frontend/public/auth.js` | PocketBase auth bootstrap |
### Endpoints
- `GET /` - Serve frontend
- `GET /version` - App version
- `GET /api/health` - Health check
- `GET /api/jobs-all` - All jobs (first 40 fast, then full)
- `GET /api/jobs` - Paginated jobs
- `GET /api/job-files` - SharePoint files via Graph API
- `GET /api/job-file-content` - File content/download
- `GET /api/job-file-pdf` - PDF proxy
- `POST /log-change` - Log changes
### Configuration
- Port: 3005
- PocketBase: https://pocketbase.ccllc.pro
- Collection: pbc_1407612689
- Redis/Valkey: localhost:6379
### Known Limitations
- Graph tokens expire after ~60 minutes (Microsoft limitation)
- No automatic Graph token refresh (would require direct OAuth flow)
- User must re-signin when Graph token expires
### Next Steps
- Consider implementing direct Microsoft OAuth for refresh token support
- Add error boundaries for better UX on token expiry
- Performance monitoring