feat: store latest challenge/attestation data#2179
Merged
Conversation
Pull Request Test Coverage Report for Build 18012303612Details
💛 - Coveralls |
hf
reviewed
Sep 25, 2025
migrations/20250925093508_add_last_webauthn_challenge_data.up.sql
Outdated
Show resolved
Hide resolved
hf
approved these changes
Sep 25, 2025
Co-authored-by: Stojan Dimitrovski <[email protected]>
hf
approved these changes
Sep 25, 2025
fadymak
pushed a commit
that referenced
this pull request
Sep 30, 2025
## What kind of change does this PR introduce?
Feature - Store WebAuthn challenge data for customer verification
purposes
## What is the current behavior?
Currently, WebAuthn challenge data (attestation/assertion responses) is
not persisted after verification, making it impossible for customers to
review or audit the WebAuthn authentication details.
## What is the new behavior?
- Added `last_webauthn_challenge_data` JSONB column to `mfa_factors`
table to store the latest challenge verification data
- The system now stores the challenge, type (create/request), and parsed
credential response after successful WebAuthn verification, THEN deletes
the challenge like before.
## Additional context
The structure for the JSONb would be like so, based on whether it's a
`create` or `request` webauthn operation
```typescript
type LastWebAuthnChallengeData = {
challenge: ChallengeData,
} & {
type: "create"
credential_response: ParsedCredentialCreationData
} | {
type: "request"
credential_response: ParsedCredentialAssertionData
}
```
---------
Co-authored-by: Stojan Dimitrovski <[email protected]>
fadymak
pushed a commit
that referenced
this pull request
Nov 4, 2025
🤖 I have created a release *beep* *boop* --- ## [2.181.0](v2.180.0...v2.181.0) (2025-10-31) ### Features * add `.well-known/openid-configuration` ([#2197](#2197)) ([9a8d0df](9a8d0df)) * add `auth_migration` annotation for the migrations ([#2234](#2234)) ([b276d0b](b276d0b)) * add advisor to notify you when to double the max connection pool ([#2167](#2167)) ([a72f5d9](a72f5d9)) * add after-user-created hook ([#2169](#2169)) ([bd80df8](bd80df8)) * add support for account changes notifications in email send hook ([#2192](#2192)) ([6b382ae](6b382ae)) * email address changed notification ([#2181](#2181)) ([047f851](047f851)) * identity linked/unlinked notifications ([#2185](#2185)) ([7d46936](7d46936)) * introduce v2 refresh token algorithm ([#2216](#2216)) ([dea5b8e](dea5b8e)) * MFA factor enrollment notifications ([#2183](#2183)) ([53db712](53db712)) * notify users when their phone number has changed ([#2184](#2184)) ([21f3070](21f3070)) * **oauthserver:** add OAuth client admin update endpoint ([#2231](#2231)) ([6296a5a](6296a5a)) * properly handle redirect url fragments and unusual hostnames ([#2200](#2200)) ([aa0ac5b](aa0ac5b)) * store latest challenge/attestation data ([#2179](#2179)) ([01ebce1](01ebce1)) * support percentage based db limits with reload support ([#2177](#2177)) ([1731466](1731466)) * webauthn support schema changes, update openapi.yaml ([#2163](#2163)) ([68cb8d2](68cb8d2)) ### Bug Fixes * gosec incorrectly warns about accessing signature[64] ([#2222](#2222)) ([bca6626](bca6626)) * **openapi:** add missing OAuth client registration fields ([#2227](#2227)) ([cf39a8a](cf39a8a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
DevRyuki
pushed a commit
to sasatech-gk/supabase-auth
that referenced
this pull request
Feb 23, 2026
🤖 I have created a release *beep* *boop* --- ## [2.181.0](supabase/auth@v2.180.0...v2.181.0) (2025-10-31) ### Features * add `.well-known/openid-configuration` ([supabase#2197](supabase#2197)) ([9a8d0df](supabase@9a8d0df)) * add `auth_migration` annotation for the migrations ([supabase#2234](supabase#2234)) ([b276d0b](supabase@b276d0b)) * add advisor to notify you when to double the max connection pool ([supabase#2167](supabase#2167)) ([a72f5d9](supabase@a72f5d9)) * add after-user-created hook ([supabase#2169](supabase#2169)) ([bd80df8](supabase@bd80df8)) * add support for account changes notifications in email send hook ([supabase#2192](supabase#2192)) ([6b382ae](supabase@6b382ae)) * email address changed notification ([supabase#2181](supabase#2181)) ([047f851](supabase@047f851)) * identity linked/unlinked notifications ([supabase#2185](supabase#2185)) ([7d46936](supabase@7d46936)) * introduce v2 refresh token algorithm ([supabase#2216](supabase#2216)) ([dea5b8e](supabase@dea5b8e)) * MFA factor enrollment notifications ([supabase#2183](supabase#2183)) ([53db712](supabase@53db712)) * notify users when their phone number has changed ([supabase#2184](supabase#2184)) ([21f3070](supabase@21f3070)) * **oauthserver:** add OAuth client admin update endpoint ([supabase#2231](supabase#2231)) ([6296a5a](supabase@6296a5a)) * properly handle redirect url fragments and unusual hostnames ([supabase#2200](supabase#2200)) ([aa0ac5b](supabase@aa0ac5b)) * store latest challenge/attestation data ([supabase#2179](supabase#2179)) ([01ebce1](supabase@01ebce1)) * support percentage based db limits with reload support ([supabase#2177](supabase#2177)) ([1731466](supabase@1731466)) * webauthn support schema changes, update openapi.yaml ([supabase#2163](supabase#2163)) ([68cb8d2](supabase@68cb8d2)) ### Bug Fixes * gosec incorrectly warns about accessing signature[64] ([supabase#2222](supabase#2222)) ([bca6626](supabase@bca6626)) * **openapi:** add missing OAuth client registration fields ([supabase#2227](supabase#2227)) ([cf39a8a](supabase@cf39a8a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.
What kind of change does this PR introduce?
Feature - Store WebAuthn challenge data for customer verification purposes
What is the current behavior?
Currently, WebAuthn challenge data (attestation/assertion responses) is not persisted after verification, making it impossible for customers to review or audit the WebAuthn authentication details.
What is the new behavior?
last_webauthn_challenge_dataJSONB column tomfa_factorstable to store the latest challenge verification dataAdditional context
The structure for the JSONb would be like so, based on whether it's a
createorrequestwebauthn operation