-
Notifications
You must be signed in to change notification settings - Fork 7
feat: permission sets for Hypercerts & Certified data #222
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
e57a0b1
docs(design): add permission-sets design for hypercerts & certified data
aspiers fa1c29a
feat(permissions): implement org.hypercerts and app.certified write p…
aspiers e9be8af
fix(permissions): remove app.certified.signature.proof from the Certi…
aspiers e105b3f
fix(permissions): rename sets to authWrite (single-segment NSID under…
aspiers 7cb3ce4
refactor(scripts): clarify generate-exports permission-set exclusion …
aspiers c327ada
fix(scripts): codegen via `node … | xargs -0 -r` under pipefail, not …
aspiers 1fe9bd3
fix(scripts): run lex codegen via a Node runner, not a shell pipe
aspiers 9ad6b00
docs: fix stale script-name reference (codegen-lexicon-files → run-le…
aspiers 240c059
docs(scripts): correct 'no ARG_MAX' claim — argv is still execve-bounded
aspiers b0e7ba7
docs(agents): document permission-set sync in the add-a-lexicon check…
aspiers 3dd882a
feat(permissions): add org.hyperboards.authWrite; mark design impleme…
aspiers bfaea59
feat(permissions): add app.certified.signature.proof to the Certified…
aspiers 1dd0dff
docs(agents): nest changeset step 9 sub-bullets under the list item
aspiers 10cbeff
fix(permissions): drop unsupported description field; document set-gr…
aspiers 194721b
docs(design): frame set-growth as a silent consent widening, confirm …
aspiers cd08e55
fix(scripts): render permission-set fields in SCHEMAS.md, add parse c…
aspiers 733f555
fix(scripts,docs): address PR #222 review feedback
aspiers File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| --- | ||
| "@hypercerts-org/lexicon": minor | ||
| --- | ||
|
|
||
| Add three permission-set lexicons — `org.hypercerts.authWrite`, `org.hyperboards.authWrite`, and `app.certified.authWrite` — each granting create/update/delete over every record collection in its namespace. | ||
|
|
||
| A [permission set](https://atproto.com/specs/permission#permission-sets) lets any AT Protocol app request a whole bundle of `repo:` scopes with a single `include:<nsid>` OAuth scope, instead of enumerating each collection by hand. The user's PDS resolves and expands the set during the OAuth grant; the same published set can also be consumed by services (e.g. the Certified group service) when expanding API-key scopes. | ||
|
|
||
| There are **three** sets rather than one because the spec requires it: a permission set "is limited to expressing permissions that reference resources under the same NSID namespace as the set itself" and "can not address 'sibling groups' or 'parents'". `org.hypercerts`, `org.hyperboards`, and `app.certified` are separate namespace authorities, so they cannot be combined in a single set — an app needing more than one requests each `include:` scope. | ||
|
|
||
| Permission sets are published as-is (they are the source of truth for what gets published to AT Protocol) but have no TypeScript shape — `lex gen-api` cannot generate code for `permission-set` defs. They are therefore excluded from the codegen globs (`gen-api`/`gen-md`/`gen-ts`) and from `generated/exports.ts`, while still shipping as raw lexicon JSON. | ||
|
|
||
| Collection lists are enumerated explicitly because the spec forbids wildcards inside a permission set; they must be kept in sync as record types are added. See `docs/design/permission-sets.md`. | ||
|
|
||
| The generated `SCHEMAS.md` reference now renders permission-set entries (title, detail, and the resource/collections/actions each set grants) instead of leaving them as empty sections. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.