docs: Update SDK reference docs (js 2.105.0, swift 2.45.0, kt 3.6.0, py 2.29.0, dart) (#45294)

## Summary

Updates SDK reference docs based on recent SDK releases, analyzed
2026-04-16 → 2026-04-27.

## Changes by SDK

### supabase-js `2.104.1 → 2.105.0`
- **New:** Passkey/WebAuthn support — `signInWithPasskey()`,
`registerPasskey()`, full `auth.passkey.*` namespace (list, update,
delete, startRegistration, verifyRegistration, startAuthentication,
verifyAuthentication), and `auth.admin.passkey.*` admin methods
- Passkeys are behind an experimental opt-in flag: `createClient(url,
key, { auth: { experimental: { passkey: true } } })`

### supabase-swift `v2.43.1 → v2.45.0`
- **New:** `stripNulls()` on `PostgrestTransformBuilder` — sets `Prefer:
return=stripped-nulls`, omitting null fields from PostgREST responses
(requires PostgREST 11.2.0+)

### supabase-kt `3.5.0 → 3.6.0`
- **New:** `stripNulls()` in `select { }` block — same PostgREST
stripped-nulls behavior as Swift

### supabase-py `v3.0.0a1 → 2.29.0`
- **New param:** `current_password` added to `UserAttributes` in
`update_user()` — used to verify identity when changing password

### supabase-flutter (dart)
- **New option:** `stream()` now supports `channelOptions: const
RealtimeChannelConfig(private: true)` to use a private Realtime channel
— documented in notes

## Files changed
- `apps/docs/spec/supabase_js_v2.yml` — passkey entries
- `apps/docs/spec/supabase_swift_v2.yml` — stripNulls
- `apps/docs/spec/supabase_kt_v3.yml` — stripNulls
- `apps/docs/spec/supabase_py_v2.yml` — current_password param
- `apps/docs/spec/supabase_dart_v2.yml` — stream private channel note
- `apps/docs/spec/common-client-libs-sections.json` — nav entries for
all new JS passkey methods

---

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Added passkey authentication support with sign-in and registration
capabilities across all SDKs.
* Introduced `stripNulls()` modifier to filter null values from query
responses.
  * Enhanced user update method with password verification field.
  * Documented private Realtime channel configuration option.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Guilherme SouzaandClaude Sonnet 4.6 authored and GitHub committed 2026-04-28 10:53:17 +02:00
1 parent af762a9c54
commit 0882677354
6 files changed
+181 -1

No files matched your search

@@ -505,6 +505,20 @@
"product": "auth",
"type": "function"
},
{
"id": "sign-in-with-passkey",
"title": "Sign in with a passkey",
"slug": "auth-signinwithpasskey",
"product": "auth",
"type": "function"
},
{
"id": "register-passkey",
"title": "Register a passkey",
"slug": "auth-registerpasskey",
"product": "auth",
"type": "function"
},
{
"id": "get-claims",
"title": "Get user claims from verified JWT",
@@ -730,6 +744,65 @@
}
]
},
{
"id": "passkey-api",
"isFunc": false,
"title": "Auth Passkey",
"slug": "auth-passkey-api",
"product": "auth",
"type": "function",
"items": [
{
"id": "passkey-list",
"title": "List passkeys",
"slug": "auth-passkey-list",
"product": "auth",
"type": "function"
},
{
"id": "passkey-update",
"title": "Update a passkey",
"slug": "auth-passkey-update",
"product": "auth",
"type": "function"
},
{
"id": "passkey-delete",
"title": "Delete a passkey",
"slug": "auth-passkey-delete",
"product": "auth",
"type": "function"
},
{
"id": "passkey-start-registration",
"title": "Start passkey registration",
"slug": "auth-passkey-startregistration",
"product": "auth",
"type": "function"
},
{
"id": "passkey-verify-registration",
"title": "Verify passkey registration",
"slug": "auth-passkey-verifyregistration",
"product": "auth",
"type": "function"
},
{
"id": "passkey-start-authentication",
"title": "Start passkey authentication",
"slug": "auth-passkey-startauthentication",
"product": "auth",
"type": "function"
},
{
"id": "passkey-verify-authentication",
"title": "Verify passkey authentication",
"slug": "auth-passkey-verifyauthentication",
"product": "auth",
"type": "function"
}
]
},
{
"id": "oauth-server-api",
"isFunc": false,
@@ -851,7 +924,30 @@
"product": "auth-admin",
"type": "function"
},
{
"id": "admin-passkey-api",
"isFunc": false,
"title": "Passkey Admin",
"slug": "auth-admin-passkey-api",
"product": "auth-admin",
"type": "function",
"items": [
{
"id": "admin-list-passkeys",
"title": "List passkeys for a user",
"slug": "auth-admin-passkey-listpasskeys",
"product": "auth-admin",
"type": "function"
},
{
"id": "admin-delete-passkey",
"title": "Delete a passkey",
"slug": "auth-admin-passkey-deletepasskey",
"product": "auth-admin",
"type": "function"
}
]
},
{
"id": "oauth-admin-api",
"isFunc": false,
+1
View File
@@ -3857,6 +3857,7 @@ functions:
- Realtime is disabled by default for new tables. You can turn it on by [managing replication](/docs/guides/realtime/postgres-changes#replication-setup).
- `stream()` will emit the initial data as well as any further change on the database as `Stream<List<Map<String, dynamic>>>` by combining Postgrest and Realtime.
- Takes a list of primary key column names that will be used to update and delete the proper records within the SDK.
- To use a private Realtime channel, pass `channelOptions: const RealtimeChannelConfig(private: true)` to the `stream()` call.
- The following filters are available
- `.eq('column', value)` listens to rows where the column equals the value
- `.neq('column', value)` listens to rows where the column does not equal the value
+40
View File
@@ -68,6 +68,10 @@ functions:
$ref: '@supabase/auth-js.GoTrueClient.signInWithSSO'
- id: sign-in-with-web3
$ref: '@supabase/auth-js.GoTrueClient.signInWithWeb3'
- id: sign-in-with-passkey
$ref: '@supabase/auth-js.GoTrueClient.signInWithPasskey'
- id: register-passkey
$ref: '@supabase/auth-js.GoTrueClient.registerPasskey'
- id: get-claims
$ref: '@supabase/auth-js.GoTrueClient.getClaims'
- id: sign-out
@@ -124,6 +128,34 @@ functions:
$ref: '@supabase/auth-js.GoTrueMFAApi.unenroll'
- id: mfa-get-authenticator-assurance-level
$ref: '@supabase/auth-js.GoTrueMFAApi.getAuthenticatorAssuranceLevel'
- id: passkey-api
title: Auth Passkey
notes: |
This section contains methods for WebAuthn passkey registration, authentication, and management. Methods are invoked behind the `supabase.auth.passkey` namespace.
Passkey support is an experimental feature. Enable it when creating the client:
```ts
const supabase = createClient(supabaseUrl, publishableKey, {
auth: {
experimental: { passkey: true },
},
})
```
- id: passkey-list
$ref: '@supabase/auth-js.AuthPasskeyApi.list'
- id: passkey-update
$ref: '@supabase/auth-js.AuthPasskeyApi.update'
- id: passkey-delete
$ref: '@supabase/auth-js.AuthPasskeyApi.delete'
- id: passkey-start-registration
$ref: '@supabase/auth-js.AuthPasskeyApi.startRegistration'
- id: passkey-verify-registration
$ref: '@supabase/auth-js.AuthPasskeyApi.verifyRegistration'
- id: passkey-start-authentication
$ref: '@supabase/auth-js.AuthPasskeyApi.startAuthentication'
- id: passkey-verify-authentication
$ref: '@supabase/auth-js.AuthPasskeyApi.verifyAuthentication'
- id: admin-api
title: Overview
notes: |
@@ -169,6 +201,14 @@ functions:
$ref: '@supabase/auth-js.GoTrueAdminMFAApi.listFactors'
- id: mfa-delete-factor
$ref: '@supabase/auth-js.GoTrueAdminMFAApi.deleteFactor'
- id: admin-passkey-api
title: Passkey Admin API
notes: |
Contains passkey administration methods. Requires a secret key.
- id: admin-list-passkeys
$ref: '@supabase/auth-js.GoTrueAdminPasskeyApi.listPasskeys'
- id: admin-delete-passkey
$ref: '@supabase/auth-js.GoTrueAdminPasskeyApi.deletePasskey'
- id: admin-custom-providers-api
title: Custom OIDC/OAuth Provider Admin API
notes: |
+19
View File
@@ -2814,6 +2814,25 @@ functions:
hideCodeBlock: true
isSpotlight: true
- id: strip-nulls
title: stripNulls()
description: |
Strip null values from the response.
notes: |
- Requires PostgREST 11.2.0 or later.
examples:
- id: strip-nulls
name: Strip null values
isSpotlight: true
code: |
```kotlin
val data = supabase
.from("characters")
.select {
stripNulls()
}
```
- id: explain
$ref: '@supabase/postgrest-js.PostgrestTransformBuilder.explain'
title: Using Explain
+4
View File
@@ -1304,6 +1304,10 @@ functions:
isOptional: true
type: string
description: The nonce sent for reauthentication if the user's password is to be updated.
- name: current_password
isOptional: true
type: string
description: The user's current password. Required when changing the password to verify the user's identity.
- name: password
isOptional: true
type: string
+20
View File
@@ -4133,6 +4133,26 @@ functions:
By default, the data is returned in JSON format, but can also be returned as Comma Separated Values.
hideCodeBlock: true
isSpotlight: true
- id: strip-nulls
title: stripNulls()
description: |
Strip null values from the response.
notes: |
- Requires PostgREST 11.2.0 or later.
- Cannot be combined with `.csv()`.
examples:
- id: strip-nulls
name: Strip null values
isSpotlight: true
code: |
```swift
let data = try await supabase
.from("characters")
.select()
.stripNulls()
.execute()
.value
```
- id: explain
title: Using Explain
description: |