Files
Prism-Notes-Main/README.md
T

2.3 KiB

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.