• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-flutter / 27546909655
85%

Build:
DEFAULT BRANCH: main
Ran 15 Jun 2026 12:42PM UTC
Jobs 8
Files 76
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

15 Jun 2026 12:41PM UTC coverage: 85.194% (+0.5%) from 84.678%
27546909655

push

github

web-flow
feat(gotrue): add passkey (WebAuthn) support (#1392)

## What kind of change does this PR introduce?

Feature. Closes #1369.

Adds support for the Supabase Auth Passkeys (BETA) API (`/passkeys/*`
endpoints), mirroring the two-step `auth.passkey.*` API surface of
auth-js.

## What is the new behavior?

New `supabase.auth.passkey` namespace (`GoTruePasskeyApi`):

- `startRegistration()` / `verifyRegistration(challengeId:,
credential:)` to register a passkey for the signed-in user
- `startAuthentication(captchaToken:)` /
`verifyAuthentication(challengeId:, credential:)` to sign in with a
passkey; persists the session and fires `AuthChangeEvent.signedIn`
- `list()`, `update(passkeyId:, friendlyName:)`, `delete(passkeyId:)`
for management

New `supabase.auth.admin.passkey` namespace (`GoTrueAdminPasskeyApi`)
with `listPasskeys(userId:)` and `deletePasskey(userId:, passkeyId:)`.

Supporting changes:

- New types: `Passkey`, `PasskeyRegistrationOptionsResponse`,
`PasskeyAuthenticationOptionsResponse`
- PATCH support in `GotrueFetch` (used by the passkey rename endpoint)
- `FactorType.webauthn`, a `webauthn` bucket in `mfa.listFactors()`,
`AMRMethod.passkey` and `AMRMethod.mfaWebauthn`
- New server error codes in `ErrorCode` (`passkey_disabled`,
`webauthn_*`, `mfa_webauthn_*`, `too_many_passkeys`)

## Design notes

- The native WebAuthn ceremony (FaceID/TouchID/security key prompt) is
left to the app via a platform plugin (e.g. `credential_manager`, or
`navigator.credentials` on web). Options and credentials are exchanged
as `Map<String, dynamic>` in the W3C WebAuthn L3 JSON format, which is
what those plugins accept and produce. This matches the two-step
`auth.passkey.start*/verify*` API in auth-js; its one-call
`signInWithPasskey()` performs the ceremony in-browser, which a pure
Dart package cannot do cross-platform. A high-level helper on top of a
pluggable authenticator interface is a possible follow-up, as is the
separate MFA WebAuthn factor flow.
- auth... (continued)

147 of 147 new or added lines in 7 files covered. (100.0%)

4022 of 4721 relevant lines covered (85.19%)

3.48 hits per line

Jobs
ID Job ID Ran Files Coverage
6 supabase_flutter - 27546909655.6 15 Jun 2026 12:43PM UTC 7
78.57
GitHub Action Run
7 gotrue - 27546909655.7 15 Jun 2026 12:44PM UTC 26
81.87
GitHub Action Run
8 supabase - 27546909655.8 15 Jun 2026 12:42PM UTC 15
88.62
GitHub Action Run
7 functions_client - 27544768443.7 15 Jun 2026 12:02PM UTC 2
97.1
GitHub Action Run
5 realtime_client - 27544768443.5 15 Jun 2026 12:04PM UTC 11
87.65
GitHub Action Run
2 storage_client - 27544768443.2 15 Jun 2026 12:03PM UTC 5
93.01
GitHub Action Run
8 yet_another_json_isolate - 27544768443.8 15 Jun 2026 12:02PM UTC 1
79.03
GitHub Action Run
6 postgrest - 27544768443.6 15 Jun 2026 12:03PM UTC 9
83.74
GitHub Action Run
Source Files on build 27546909655
  • Tree
  • List 76
  • Changed 12
  • Source Changed 6
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27546909655
  • 3e890b57 on github
  • Prev Build on main (#27544768443)
  • Next Build on main (#27575444586)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc