From bc863816fb99b5ff19737b7bb063fd61247208bc Mon Sep 17 00:00:00 2001 From: Guilherme Souza Date: Fri, 17 Apr 2026 08:45:22 -0300 Subject: [PATCH] docs: Update JS and Kotlin SDK reference (stripNulls, OAuth 2.1 admin) (#44959) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Updates reference docs based on recent SDK changes. ## Changes analyzed | SDK | Repo | Commits | Latest tag | |-----|------|---------|------------| | js | supabase/supabase-js | \`16dd265...7a9b2e1\` | v2.103.3 | | kt | supabase-community/supabase-kt | \`a671b7a...2a6f456\` | 3.5.0 | | dart | supabase/supabase-flutter | \`e37539e...01551e3\` | — (dep bumps only) | | py | supabase/supabase-py | \`761d972...36cfcd0\` | v3.0.0a1 (dep bumps only) | | swift | supabase/supabase-swift | \`17261e9...b2bf858\` | v2.43.1 (dep bumps only) | | csharp | supabase-community/supabase-csharp | — | no new commits | ## Documentation updates ### `apps/docs/spec/supabase_js_v2.yml` - Added `strip-nulls` entry pointing to `@supabase/postgrest-js.PostgrestTransformBuilder.stripNulls` — new method in v2.103.0 that strips null values from JSON responses via the `nulls=stripped` PostgREST media type parameter. TypeScript enrichments already contain the full documentation. ### `apps/docs/spec/supabase_kt_v3.yml` - Added OAuth 2.1 client admin CRUD API (`admin.oauth.*`) — new in supabase-kt 3.5.0: `listClients`, `createClient`, `getClient`, `updateClient`, `deleteClient`, `regenerateClientSecret` - Marked `IDToken.Config.data` parameter as deprecated (deprecated upstream in supabase-kt); updated sign-in example to remove deprecated usage ### `apps/docs/spec/common-client-libs-sections.json` - Added `strip-nulls` entry to the Database → Using modifiers nav section - Added 6 `admin-oauth-*` entries to the Auth Admin → OAuth Admin nav section for the new Kotlin OAuth 2.1 methods --- 🤖 Generated with [Claude Code](https://claude.com/claude-code) ## Summary by CodeRabbit * **Documentation** * Added documentation for the `stripNulls` function to remove null values from database results. * Expanded OAuth Admin API documentation with 6 new endpoints for OAuth client management: list, get, create, update, delete, and secret regeneration. * Marked deprecated parameter in ID Token sign-in configuration. --------- Co-authored-by: Claude Sonnet 4.6 --- .../spec/common-client-libs-sections.json | 50 ++++++++ apps/docs/spec/supabase_js_v2.yml | 2 + apps/docs/spec/supabase_kt_v3.yml | 119 +++++++++++++++++- 3 files changed, 168 insertions(+), 3 deletions(-) diff --git a/apps/docs/spec/common-client-libs-sections.json b/apps/docs/spec/common-client-libs-sections.json index 813b0b21c49..0f1559522bb 100644 --- a/apps/docs/spec/common-client-libs-sections.json +++ b/apps/docs/spec/common-client-libs-sections.json @@ -368,6 +368,14 @@ "parent": "modifiers", "type": "function" }, + { + "id": "strip-nulls", + "title": "Strip null values", + "slug": "db-strip-nulls", + "product": "database", + "parent": "modifiers", + "type": "function" + }, { "id": "returns", "title": "Override type of successful response", @@ -893,6 +901,48 @@ "slug": "auth-admin-oauth-regenerateclientsecret", "product": "auth-admin", "type": "function" + }, + { + "id": "admin-oauth-list-clients", + "title": "List OAuth clients", + "slug": "auth-admin-oauth-listclients", + "product": "auth-admin", + "type": "function" + }, + { + "id": "admin-oauth-create-client", + "title": "Create OAuth client", + "slug": "auth-admin-oauth-createclient", + "product": "auth-admin", + "type": "function" + }, + { + "id": "admin-oauth-get-client", + "title": "Get OAuth client", + "slug": "auth-admin-oauth-getclient", + "product": "auth-admin", + "type": "function" + }, + { + "id": "admin-oauth-update-client", + "title": "Update OAuth client", + "slug": "auth-admin-oauth-updateclient", + "product": "auth-admin", + "type": "function" + }, + { + "id": "admin-oauth-delete-client", + "title": "Delete OAuth client", + "slug": "auth-admin-oauth-deleteclient", + "product": "auth-admin", + "type": "function" + }, + { + "id": "admin-oauth-regenerate-client-secret", + "title": "Regenerate client secret", + "slug": "auth-admin-oauth-regenerateclientsecret", + "product": "auth-admin", + "type": "function" } ] } diff --git a/apps/docs/spec/supabase_js_v2.yml b/apps/docs/spec/supabase_js_v2.yml index 6b2d34c52d8..efd08fbf093 100644 --- a/apps/docs/spec/supabase_js_v2.yml +++ b/apps/docs/spec/supabase_js_v2.yml @@ -452,6 +452,8 @@ functions: $ref: '@supabase/postgrest-js.PostgrestTransformBuilder.maybeSingle' - id: csv $ref: '@supabase/postgrest-js.PostgrestTransformBuilder.csv' + - id: strip-nulls + $ref: '@supabase/postgrest-js.PostgrestTransformBuilder.stripNulls' - id: returns $ref: '@supabase/postgrest-js.PostgrestTransformBuilder.returns' - id: overrideTypes diff --git a/apps/docs/spec/supabase_kt_v3.yml b/apps/docs/spec/supabase_kt_v3.yml index a55bc9f536e..27b4cd1ae19 100644 --- a/apps/docs/spec/supabase_kt_v3.yml +++ b/apps/docs/spec/supabase_kt_v3.yml @@ -3116,6 +3116,10 @@ functions: isOptional: true type: String? description: The captcha token when having captcha enabled. + - name: data + isOptional: true + type: JsonObject? + description: '**Deprecated** — use `extraData` or user metadata on the sign-up flow instead. Will be removed in a future release.' examples: - id: sign-in-with-id-token @@ -3127,9 +3131,6 @@ functions: provider = Google //Also supported: Apple, Azure and Facebook //optional: nonce = "nonce" - data = buildJsonObject { - //... - } } ``` - id: sign-in-with-otp @@ -4576,6 +4577,118 @@ functions: ```kotlin supabase.auth.admin.deleteFactor(uid = "id", factorId = "factor_id") ``` + - id: oauth-admin-api + title: OAuth Admin API + notes: | + The OAuth Admin API allows you to manage OAuth clients programmatically. + Only relevant when the OAuth 2.1 server is enabled in Supabase Auth. + These functions should only be called on a server. Never expose your `secret key` in the browser. + - id: admin-oauth-list-clients + title: 'admin.oauth.listClients()' + notes: | + Lists all OAuth 2.1 clients. Requires a `secret key`. + params: + - name: page + isOptional: true + type: Int? + description: The page number for pagination. + - name: perPage + isOptional: true + type: Int? + description: The number of results per page. + examples: + - id: list-oauth-clients + name: List all OAuth clients + isSpotlight: true + code: | + ```kotlin + val clients = supabase.auth.admin.oauth.listClients() + ``` + - id: admin-oauth-create-client + title: 'admin.oauth.createClient()' + notes: | + Creates a new OAuth 2.1 client. Requires a `secret key`. + examples: + - id: create-oauth-client + name: Create an OAuth client + isSpotlight: true + code: | + ```kotlin + val client = supabase.auth.admin.oauth.createClient { + name = "My App" + redirectUris = listOf("https://example.com/callback") + } + ``` + - id: admin-oauth-get-client + title: 'admin.oauth.getClient()' + notes: | + Retrieves an OAuth 2.1 client by ID. Requires a `secret key`. + params: + - name: clientId + isOptional: false + type: String + description: The ID of the OAuth client to retrieve. + examples: + - id: get-oauth-client + name: Get an OAuth client + isSpotlight: true + code: | + ```kotlin + val client = supabase.auth.admin.oauth.getClient(clientId = "client_id") + ``` + - id: admin-oauth-update-client + title: 'admin.oauth.updateClient()' + notes: | + Updates an existing OAuth 2.1 client. Requires a `secret key`. + params: + - name: clientId + isOptional: false + type: String + description: The ID of the OAuth client to update. + examples: + - id: update-oauth-client + name: Update an OAuth client + isSpotlight: true + code: | + ```kotlin + val client = supabase.auth.admin.oauth.updateClient(clientId = "client_id") { + name = "Updated App Name" + } + ``` + - id: admin-oauth-delete-client + title: 'admin.oauth.deleteClient()' + notes: | + Deletes an OAuth 2.1 client. Requires a `secret key`. + params: + - name: clientId + isOptional: false + type: String + description: The ID of the OAuth client to delete. + examples: + - id: delete-oauth-client + name: Delete an OAuth client + isSpotlight: true + code: | + ```kotlin + supabase.auth.admin.oauth.deleteClient(clientId = "client_id") + ``` + - id: admin-oauth-regenerate-client-secret + title: 'admin.oauth.regenerateClientSecret()' + notes: | + Regenerates the client secret for an OAuth 2.1 client. Requires a `secret key`. + params: + - name: clientId + isOptional: false + type: String + description: The ID of the OAuth client whose secret should be regenerated. + examples: + - id: regenerate-client-secret + name: Regenerate client secret + isSpotlight: true + code: | + ```kotlin + val client = supabase.auth.admin.oauth.regenerateClientSecret(clientId = "client_id") + ``` - id: invoke title: 'invoke()' description: |