Commit d67233b
Add private documents with Cloudflare Zero Trust authentication
Features:
- Cloudflare JWT validation with JWKS caching
- Sharing modes: only_me, specific_people, authenticated_users, public
- Document ownership assigned on first access from private domain
- Sharing settings API with owner-only access control
- Frontend sharing modal with email list management
- Dev mode for local testing without Cloudflare
New files:
- lib/markdoc/auth/cloudflare.ex - CF JWT validation
- lib/markdoc/auth/token.ex - Joken token config
- lib/markdoc_web/plugs/cloudflare_auth.ex - HTTP auth plug
- lib/markdoc_web/controllers/sharing_controller.ex - Sharing API
- frontend/src/components/SharingSettings.tsx - Sharing UI
- frontend/src/hooks/useSharingSettings.ts - Sharing state hook
Environment variables:
- CLOUDFLARE_TEAM_DOMAIN - CF team domain
- CLOUDFLARE_AUD - Application audience tag
- PRIVATE_DOMAIN - Private domain hostname
- PUBLIC_DOMAIN - Public domain hostname
- MARKDOC_AUTH_DEV_MODE - Enable dev bypass
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>1 parent c1faff4 commit d67233b
20 files changed
Lines changed: 1746 additions & 70 deletions
File tree
- config
- frontend/src
- components
- hooks
- lib
- lib
- markdoc_web
- channels
- controllers
- plugs
- markdoc
- auth
- storage
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
| 36 | + | |
35 | 37 | | |
36 | 38 | | |
37 | 39 | | |
| |||
167 | 169 | | |
168 | 170 | | |
169 | 171 | | |
| 172 | + | |
| 173 | + | |
170 | 174 | | |
171 | 175 | | |
172 | 176 | | |
| |||
268 | 272 | | |
269 | 273 | | |
270 | 274 | | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
271 | 285 | | |
272 | 286 | | |
273 | 287 | | |
274 | 288 | | |
275 | | - | |
| 289 | + | |
276 | 290 | | |
277 | 291 | | |
278 | 292 | | |
279 | 293 | | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
280 | 299 | | |
281 | | - | |
| 300 | + | |
282 | 301 | | |
283 | 302 | | |
284 | 303 | | |
| |||
567 | 586 | | |
568 | 587 | | |
569 | 588 | | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
570 | 618 | | |
571 | 619 | | |
572 | 620 | | |
| |||
640 | 688 | | |
641 | 689 | | |
642 | 690 | | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
643 | 702 | | |
644 | 703 | | |
645 | 704 | | |
| |||
0 commit comments