Files
captoys/diigo-cache/README.md
T
dckc ea3e256bb8 diigo-cache: README: workerd, not a vendor
Generated-by: Claude Opus 5.5
2026-10-09 01:28:50 -05:00

39 lines
1.5 KiB
Markdown

# diigo-cache
Your diigo bookmarks, cached in a [workerd](https://github.com/cloudflare/workerd)
worker, with a public page you can filter by week:
`/public/<you>?in=2026-W41`. Your diigo session cookie
is stored in one Durable Object and nowhere else.
## Getting started
```sh
pnpm install
pnpm dev # → http://localhost:8787/
```
Then, in the browser:
1. **mint the diigo session at webapp**: paste the `Cookie` header from
diigo.com (devtools, any logged-in request).
2. **wire** it, mode **public**. Save the cache id it shows (the
password-manager button does this).
3. **open this cache** → **fill**, and watch it walk your bookmarks.
4. Visit `/public/<your diigo username>?days=7`.
## Bookmarks you hold, a page anyone can read
- **Filter by date and search:** `?days=7`, `?in=2026-W41` (ISO week,
UTC), `?after=2026-01-01&before=2026-02-01`, `?by=created`, and
`?q=` with words, `"phrases"`, `#tags`, `-negation`, and gmail-style
`newer_than:7d`. Add `Accept: application/json` for JSON.
- **Private stays private:** the public cache drops private bookmarks
before storing anything, so it never holds them.
- **Ids are capabilities:** the cache id is a bearer key you keep in
your password manager. It rides URL fragments and POST bodies, never a
path or query string, so it stays out of logs and history.
- **Cheap to read:** pages come from Durable Object SQLite storage, and
a fill job in the background fetches each diigo page once.
Design, tests, and deploying: [CONTRIBUTING](CONTRIBUTING.md).