Add session changelog
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user