50 lines
2.3 KiB
Markdown
50 lines
2.3 KiB
Markdown
# Prism Notes
|
|
|
|
PocketBase + Microsoft Graph OAuth capture app. Frontend is a Tailwind-powered note and audio capture page; backend is a Bun/Hono server that validates PocketBase tokens and can mint Graph tokens (client credentials flow).
|
|
|
|
## What you get
|
|
- `server.ts` — Bun + Hono server with `/health`, `/api/graph/status`, `/api/submit`, and static `index.html` serving.
|
|
- `index.html` — Microsoft OAuth via PocketBase plus note/audio capture UI.
|
|
- `tsconfig.json`, `package.json`, `bun.lock` — project configuration.
|
|
|
|
## Setup
|
|
1) Install Bun (https://bun.sh).
|
|
2) Add a `.env` file at the project root with the variables below.
|
|
3) Install deps: `bun install`
|
|
4) Run dev server: `bun run --watch server.ts` (default port **3030**).
|
|
|
|
Open http://localhost:3030 and sign in with Microsoft.
|
|
|
|
## Environment variables
|
|
| Name | Description |
|
|
| --- | --- |
|
|
| `CLIENT_ID` | Azure AD app (client) ID |
|
|
| `CLIENT_SECRET` | Azure AD client secret |
|
|
| `TENANT_ID` | Azure AD tenant ID |
|
|
| `REDIRECT_URI` | Redirect URI configured in the Azure app |
|
|
| `PB_DB` | PocketBase URL (e.g., http://127.0.0.1:8090) |
|
|
| `PB_COLLECTION` | Collection to store submissions (default `Job_Info_TestEnv`) |
|
|
| `PB_AUTH_COLLECTION` | Auth collection for token refresh (default `Users`) |
|
|
| `PORT` | Server port (default **3030**, enforced in package.json `dev` script) |
|
|
|
|
## Notes
|
|
- `getGraphToken()` in `server.ts` is ready for Graph API calls; extend with additional routes as needed.
|
|
- `/api/submit` validates the provided `pbToken` then writes the payload to `PB_COLLECTION`; adjust fields to match your schema.
|
|
- Static file serving uses `index.html` from the repo root.
|
|
|
|
## OneNote sync (append MVP)
|
|
- Backend endpoint: `POST /api/onenote/append`
|
|
- Required headers:
|
|
- `Authorization: Bearer <delegated Microsoft access token>`
|
|
- `x-pb-token: <PocketBase user token>`
|
|
- Current hardcoded target in `server.ts`:
|
|
- Host: `czflex.sharepoint.com`
|
|
- Site path: `/sites/Team`
|
|
- Section ID: `ed504699-67be-47a3-838a-e01ec17198fb`
|
|
- Page ID: `addbbca7-18ce-4d8d-833e-96cc08d990bc`
|
|
- Frontend buttons:
|
|
- New note: `Submit + Sync OneNote`
|
|
- Note detail: `Sync to OneNote`
|
|
|
|
Important: sync requires a delegated Microsoft token with OneNote write permissions. The UI captures this from PocketBase Microsoft OAuth metadata when available.
|