Skip to content

Conversation

@Spomky
Copy link
Contributor

@Spomky Spomky commented Oct 26, 2025

Target branch: 5.3.x
Resolves issue #717

  • It is a Bug fix
  • It is a New feature
  • Breaks BC
  • Includes Deprecations

@Spomky Spomky added this to the 5.3.0 milestone Oct 26, 2025
@Spomky Spomky self-assigned this Oct 26, 2025
@Spomky Spomky added the enhancement New feature or request label Oct 26, 2025
@Spomky Spomky linked an issue Oct 26, 2025 that may be closed by this pull request
@Spomky Spomky force-pushed the features/credential-record branch 3 times, most recently from 53d4a16 to 65f5523 Compare November 16, 2025 22:05
@Spomky Spomky force-pushed the features/credential-record branch from ab837ba to ecb1309 Compare November 16, 2025 22:33
@zll600
Copy link

zll600 commented Nov 17, 2025

Hi, @Spomky Thank you for your excellent changes 👍

This PR passes all my tests in my personal project(sorry, it's private 😞 ) after I adapted to the CredentialRecord. I'd like to help you review this MR if you want 😄

@Spomky Spomky requested a review from Copilot November 17, 2025 21:48
Copilot finished reviewing on behalf of Spomky November 17, 2025 21:49
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a significant architectural change to align with the WebAuthn Level 3 specification by introducing CredentialRecord as a replacement for the deprecated PublicKeyCredentialSource. The migration maintains backward compatibility through union types and deprecation notices.

Key Changes:

  • Introduces CredentialRecord class as the new standard for credential storage
  • Deprecates PublicKeyCredentialSource with planned removal in version 6.0
  • Updates all repository interfaces to support both types via union type declarations
  • Adds CredentialRecordConverter utility for bidirectional conversion
  • Updates event classes to use credentialRecord property with backward-compatible access

Reviewed Changes

Copilot reviewed 62 out of 62 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/symfony/unit/Repository/RepositoryImplementationsTest.php New comprehensive test suite verifying repository implementations support union types
tests/symfony/functional/Repository/RepositoryFunctionalTest.php New functional tests for repository CRUD operations with both credential types
tests/symfony/functional/PublicKeyCredentialSourceRepository.php Updated to accept union types in method signatures
tests/symfony/functional/CredentialRecordRepository.php New test repository implementation for CredentialRecord
tests/library/Unit/RepositoryCompatibilityTest.php New unit tests validating compatibility between credential types
tests/library/Unit/CredentialRecordTest.php New test suite for CredentialRecord functionality
tests/library/Unit/CredentialRecordConverterTest.php New tests for bidirectional credential conversion utility
tests/library/Functional/ValidatorCompatibilityTest.php New functional tests ensuring validators work with both types
tests/library/Functional/BackupStateEventsTest.php Updated to test deprecated property access via magic methods
tests/framework/MockedCredentialRecordTrait.php New test trait for creating mock CredentialRecord instances
src/webauthn/src/CredentialRecord.php New core class representing credential records per WebAuthn L3 spec
src/webauthn/src/Util/CredentialRecordConverter.php New utility for converting between PublicKeyCredentialSource and CredentialRecord
src/webauthn/src/PublicKeyCredentialSource.php Marked as deprecated with clear migration path
src/webauthn/src/Event/*.php Updated event classes to use credentialRecord with backward-compatible accessors
src/webauthn/src/CeremonyStep/*.php All ceremony steps updated to accept union types
src/webauthn/src/*Validator.php Validators updated to work with both credential types
src/symfony/src/Repository/*.php All repository interfaces and implementations updated for union type support
src/symfony/src/Security/*.php Security components updated to handle both credential types
src/symfony/src/Resources/config/doctrine-mapping/CredentialRecord.orm.xml New Doctrine mapping for CredentialRecord
docs/migration/credential-record-migration.md Comprehensive migration guide with examples
CLAUDE.md New developer documentation about the project architecture
.ci-tools/phpstan-baseline.neon Updated baseline for deprecation warnings

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Spomky Spomky merged commit eb2aa67 into 5.3.x Nov 28, 2025
37 of 39 checks passed
@Spomky Spomky deleted the features/credential-record branch November 28, 2025 07:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PublicKeyCredentialSource class is misleading

3 participants