RC v0.1.0#185
Open
jeroenrinzema wants to merge 472 commits into
Open
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
67b54c7 to
f1f4c61
Compare
Contributor
|
I have read the CLA Document and I hereby sign the CLA |
Contributor
|
recheck |
The destination argument was missing (&positive) and the query returned an interval instead of a boolean, causing GetContext to always error and the function to reject every interval.
Public API keys were removed (see the access-policies series): keys are now always private (sk_, backend-only) and rejected on browser-originated requests. - Settings → Access: drop the public/secret scope table; API keys are private, client-side uses a trusted issuer or a session; reframe the use-case cards. - SDK / quick-start: browser SDKs authenticate as a verified end user (a session or trusted-issuer token), not an embedded key; server Client uses an sk_ key. - replace pk_ examples across the reference docs with sk_ (server) or a session token (browser).
Replace the project-level client-event allow-list section with the per-grant create-constraint model (configurable under Settings → Access), and align the console comment with the backend's grant_constraints map.
Replace the flat EntranceStepData (a trigger discriminator plus optional fields whose validity depended on the trigger) with a oneOf: `trigger` selects the kind and exactly the matching sub-object (event, scheduled, list) carries its own fields, so the requirements live in the type system rather than in a doc comment. Adds the `none` (API/manual) trigger to the union. Field names lose the stutter: event.name, scheduled.name, scheduled.offset_id, list.id. Draft-save stays lenient so partially configured entrances can be saved while still being built; the union invariant is enforced strictly at publish via EntranceStepData.Validate. Updates every entrance consumer through new EntranceRule/MemberRule accessors, the OpenAPI spec and regenerated client types, and the console entrance editor (event/scheduled/list) to produce and consume the nested shape (clearing sibling blocks on trigger switch).
…-schemas The rules.RuleSet x-go-type overlay targeted EntranceStepData.rule and .user_rule, which moved into the EntranceEventTrigger and EntranceScheduledTrigger sub-schemas. Update the selectors so the strict overlay apply (and `make generate`) succeeds.
…as instances Move a method's create-name allow-list off the parallel top-level grant_constraints map and onto the grant itself: a PermissionGrant gains an optional instances list scoping that grant to those named instances. The constraint's dependency on a grant is now structural — it cannot exist apart from the grant that enforces it — which removes the orphan-constraint class of bug and unifies two parallel structures. Scope stays create-only for now. - oapi: add PermissionGrant.instances; delete the GrantConstraints schema and the grant_constraints property from Create/Update/AuthMethod. Regenerate Go bindings and console types. - migration 1764116042: add auth_method_grants.instances JSONB; drop auth_methods.grant_constraints. Down reverses both. - store: Grant carries Instances; insertGrants and the grant read aggregate carry instances; replace the GrantConstraints type/Permits/store method with CreateGrantInstances, preserving fail-closed-on-deleted-method. - controller: map instances through create/update/response; fold the constraint validation into validateGrants (instances only on a create grant for a constrainable resource). - enforcement: CreateConstraints.Enforce reads CreateGrantInstances and rejects any name off a restricted allow-list, keeping the existing fail-closed paths.
Cover the session verification middleware (WithSession) and the CreateSession controller, plus the PKCS#8 / non-EC branches of parseECPrivateKey that the SEC1-only signer tests never exercised.
feat(auth): normalized auth_methods schema + RBAC foundation
feat(store): AuthMethod store over the normalized tables
feat(http): client API transport hardening (scope, CORS, rate limiting)
feat(management): auth-methods CRUD API
feat(jwks): two-tier JWKS cache for trusted-issuer verification
feat(auth): Lunogram-signed client sessions
feat(client): bind end-user requests to their verified subject (own data)
feat(auth-methods): per-grant create constraints
test(auth): trusted-issuer middleware coverage (from #250)
fix(auth): security-review hardening for the client-access auth rework
feat(console): unified Settings → Access page (replaces API Keys)
docs: document the auth-methods model (Access)
feat(journeys): add list entry/leave trigger
ci(release): publish OpenAPI specs as release assets
…sts on main (#266) Two PR merges collided in the v1/client test package, breaking `make lint` and `make test` on main (the build failure masked the second issue): - `capturingPublisher` was declared in both inbox_idor_test.go and ownscope_helpers_test.go. Drop the duplicate (simpler) copy from inbox_idor_test.go and adapt publishedIdentifiers to the canonical captured()/capturedMessage API in ownscope_helpers_test.go. - ownDataActor/allDataActor built actors with a random UUID and no auth-method row. After per-grant create-constraint enforcement landed (#261), CreateConstraints.Enforce looks the method up by the actor id and fails closed on a missing row (sql.ErrNoRows -> 500), breaking every PostUserEvents own/all-data test. Provision a real, unconstrained auth method and use its id as the actor identity, mirroring actorContext. go vet ./... and the full v1/client suite pass.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
First release candidate for Lunogram is taking shape. Feedback welcome.