dorfteich/packages/shared/src
Claude Opus 4.8 406886c56c
Some checks failed
CD / Build and push images (push) Successful in 3m5s
CI / Lint, typecheck, test (push) Successful in 2m31s
CI / Auth e2e pack (push) Failing after 2m0s
CI / Build container images (push) Has been skipped
CD / Deploy to Test (push) Successful in 9s
CD / Smoke tests against Test (push) Successful in 1m14s
CD / Promote to Int (push) Successful in 12s
Add label- and page-scope access rules UI including deny (#55)
Pond Admins configure the vision's fine-grained cases through a plain-language
surface, on top of the base roles from #54.

- shared: `AccessRuleView` (a grant enriched with subject/scope display names)
  and pure conflict helpers `scopeSpecificity`/`sameGrantSubject`/
  `isRuleShadowed` (unit-tested) for the client-side shadowed-rule hint. New
  `access` i18n namespace (de+en) with sentence templates (ADR 0012).
- api: `GET /ponds/:id/grants/access-rules` (Pond-Admin) returns the pond's
  grants enriched with each user's display name and each label/page scope's
  name, resolved in one batched query per kind.
- web `access/`: `AccessRulesManager` in Pond Settings — the pond's rules
  grouped by subject and rendered as readable de/en sentences ("Anna may not
  edit pages labeled “Confidential”"), an add form (subject = member or the
  `signed-in`/`public` pseudo-subjects; scope = label from the tree or a
  specific page; role; allow/deny) that warns when a rule would be shadowed by
  a more specific existing one (shared algorithm) and requires an explicit
  confirmation before granting anything to `public`. Semantics are the shared
  resolver's — the UI only reflects permissions.md.
- tests: shared `conflicts.test.ts`; an api db case for the enriched endpoint;
  a browser `access-rules` pack that configures BOTH vision patterns through
  the UI and verifies their effect end to end — "deny label X" (an editor
  loses a labelled page) and "only label Y" (a signed-in non-member, new
  `fixture-viewer`, reads only the labelled pages) — plus the shadow hint and
  the public confirmation, with its own CI step.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EwZ4jR4KFAPvpjWevfUGX1
2026-07-09 21:45:31 +02:00
..
editor-schema Add wikilink index, backlinks API, and phantom resolution (#47) 2026-07-09 12:54:10 +02:00
permissions Add label- and page-scope access rules UI including deny (#55) 2026-07-09 21:45:31 +02:00
api-error.ts Add NestJS API skeleton with config, logging, and /healthz 2026-07-04 19:10:07 +02:00
auth.test.ts Add user, identity, session, and auth-support data model 2026-07-05 00:42:22 +02:00
auth.ts Define the reset-password form schema in shared 2026-07-05 05:47:40 +02:00
collab-token.test.ts Add collaboration token issuance and connection authentication (#34) 2026-07-08 15:52:19 +02:00
collab-token.ts Wire real permissions into collab tokens and revocation (#53) 2026-07-09 18:48:42 +02:00
env.test.ts Add Prisma with PostgreSQL, automatic migrations, and /readyz 2026-07-04 19:16:44 +02:00
env.ts Add collaboration token issuance and connection authentication (#34) 2026-07-08 15:52:19 +02:00
files.ts Add file storage service and image upload API (#27) 2026-07-08 10:35:03 +02:00
health.test.ts Scaffold pnpm monorepo with lint, format, and test tooling 2026-07-04 19:06:27 +02:00
health.ts Scaffold pnpm monorepo with lint, format, and test tooling 2026-07-04 19:06:27 +02:00
i18n-tools.test.ts Add i18n with i18next, German and English, and a key-parity check 2026-07-04 19:23:45 +02:00
i18n-tools.ts Add i18n with i18next, German and English, and a key-parity check 2026-07-04 19:23:45 +02:00
index.ts Add pond member management UI (#54) 2026-07-09 20:22:52 +02:00
labels.test.ts Add label UI: tree management, page assignment, and sidebar filter (#44) 2026-07-09 11:41:42 +02:00
labels.ts Add label UI: tree management, page assignment, and sidebar filter (#44) 2026-07-09 11:41:42 +02:00
links.ts Add backlinks panel and phantom-pages view (#48) 2026-07-09 13:05:32 +02:00
members.ts Add pond member management UI (#54) 2026-07-09 20:22:52 +02:00
pages.ts Add manual page ordering with drag-and-drop (#45) 2026-07-09 12:18:44 +02:00
ponds.ts Ponds: data model, CRUD API, personal pond on verification (#21) 2026-07-05 11:08:16 +02:00
quotas.ts Quota foundation: overrides, resolution, race-safe consumption (#22) 2026-07-05 20:55:59 +02:00
search.test.ts Add SearchProvider interface with PostgreSQL FTS (#49) 2026-07-09 13:25:05 +02:00
search.ts Add SearchProvider interface with PostgreSQL FTS (#49) 2026-07-09 13:25:05 +02:00
text-diff.test.ts Add version history UI: list, view, diff, restore (#42) 2026-07-09 08:53:42 +02:00
text-diff.ts Add version history UI: list, view, diff, restore (#42) 2026-07-09 08:53:42 +02:00
token-crypto.ts Add collaboration token issuance and connection authentication (#34) 2026-07-08 15:52:19 +02:00