Skip to content

feat: rest for orgs, SSO, SCIM, org domains, webauthn; full protocol coverage - #51

Merged
lakhansamani merged 1 commit into
mainfrom
feat/rest-parity-2.4.0
Aug 2, 2026
Merged

feat: rest for orgs, SSO, SCIM, org domains, webauthn; full protocol coverage#51
lakhansamani merged 1 commit into
mainfrom
feat/rest-parity-2.4.0

Conversation

@lakhansamani

Copy link
Copy Markdown
Contributor

Brings the SDK to full protocol coverage against server 2.4.0.

What changed

32 operations that were graphql-only gained REST routes in authorizer #739 — 26 admin (organizations, org members, org domains, org OIDC/SAML connections, SCIM endpoints) and 6 public WebAuthn ceremonies. The WebAuthn methods called graphqlQuery directly; they now go through dispatch like the rest of the client.

A further 5 — adminLogout, adminSession, adminMeta, fgaGetModel, fgaReset — were rest-only despite each having a GraphQL op on the server. All now work over both protocols, leaving adminSignup, updateEnv and generateJWTKeys graphql-only (no proto RPC exists for them).

Response unwrapping

The gateway's wrapper differs per endpoint, so each carries the right unwrap: a single nested payload is unwrapped (organization, org_member, org_domain, challenge, org_oidc_connection, org_saml_connection, scim_endpoint, webauthn_credentials, admin_meta, model), while flat messages are read whole — paginated lists, and the SCIM create/rotate pair carrying endpoint plus one-time token, where unwrapping either field would drop the other.

The mocked tests pin path and unwrap per endpoint; they are inherently non-vacuous, since a wrong unwrap changes the asserted data shape.

Verification

Type-checks clean, test suite at baseline, and live-verified over graphql and rest against a real 2.4.0 server.

…coverage

32 operations were graphql-only because the server had no REST route for
them. Server 2.4.0 (authorizer #739) added the proto RPCs and REST
bindings: 26 admin (organizations, org members, org domains, org
OIDC/SAML connections, SCIM endpoints) and 6 public WebAuthn ceremonies.
The WebAuthn methods called graphqlQuery directly; they now go through
dispatch like the rest of the client.

A further 5 -- adminLogout, adminSession, adminMeta, fgaGetModel and
fgaReset -- were rest-only despite each having a GraphQL op on the server;
the SDK simply carried no query for them. That leaves adminSignup,
updateEnv and generateJWTKeys graphql-only, the only admin operations with
no proto RPC.

The gateway's wrapper differs per endpoint, so each carries the right
unwrap: a single nested payload is unwrapped (organization, org_member,
org_domain, challenge, org_oidc_connection, org_saml_connection,
scim_endpoint, webauthn_credentials, admin_meta, model), while flat
messages are read whole -- paginated lists, and the SCIM create/rotate
pair carrying endpoint plus one-time token.

Also bumps the integration-test image from 2.4.0-rc.1, which no longer
exists in the registry, to 2.4.0-rc.13. Those tests could not start, so 46
of 101 were failing; the whole suite now runs and passes.
@lakhansamani
lakhansamani force-pushed the feat/rest-parity-2.4.0 branch from 4391aae to 5acfbdb Compare August 2, 2026 16:10
@lakhansamani
lakhansamani merged commit ad47621 into main Aug 2, 2026
2 checks passed
@lakhansamani
lakhansamani deleted the feat/rest-parity-2.4.0 branch August 2, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant