Files
captoys/capsite-checklist.md
T
dckc 4a8828086e fixup! feat(diigo-dump): session-cookie dump worker, manual test passing
fixup: scrub failed API-key ping from checklist

diigo-ping never authenticated (Diigo 401); the working path is the
session-cookie dump worker. Renumber steps, note the scrub with the
reason, and drop the ping how-to.

Generated-by: opencode (GLM)
2026-10-06 21:36:44 -05:00

2.0 KiB

capsite checklist

Goal ladder toward "an EmDash site collecting diigo.com bookmarks, credentials held by the host, never inside the plugin" (see capsite-notes.md). Start small; each step must pass before moving down.

  • 1. Cookie-path dump worker (diigo-dump/): port of mm-diigo/projects/diigo-bak/diigo-dump.mjs — one page-number field + button, GET interact_api/load_user_items?sort=updated&count=24&page_num=N with the browser session cookie (DIIGO_COOKIE secret). Result (2026-10-06): manual integration test PASSES — status 200, total: 1674, page-1 items returned. GET / is inert; dump only on POST submit. (2026-10-06, scrubbed: a static API-key ping worker, diigo-ping/, was tried first and failed — Diigo rejected the key pair with 401. The session-cookie / interact_api path is the one that works.)
  • 2. Real credentials in madmode/.dev.vars: replace the placeholder DIIGO_API_KEY="dckc-madmode" with a key from https://www.diigo.com/settings/api; confirm the EmDash plugin's "Sync now" returns success (status 200, bookmarks stored).
  • 3. /bookmarks page renders real data after a sync — titles/tags visible at http://localhost:4321/bookmarks.
  • 4. Cron sync works locally without errors (0 */6 * * * task in _emdash_cron_tasks).
  • 5. Deploy: madmode to Workers pnpm wrangler deploy, secrets via wrangler secret put; plugin "Sync now" against prod.
  • 6. bib sync #195: repeat the pattern for the next read-access need.
cd diigo-dump
# .dev.vars: DIIGO_COOKIE="<paste Cookie header from diigo.com devtools>"
npx wrangler dev --port 8788   # → http://localhost:8788
wrangler restarts pick up .dev.vars edits only at startup

Enter a page number, click dump → status + total + JSON items. GET / is inert (no accidental fetches); dumps happen only on POST submits.