Allow unknown MDS enum values and add missing fields#469
Merged
Conversation
FIDO MDS metadata may include attachmentHint value smart-card; Jackson deserialization fails without this enum constant (#466). Value 0x0200 (512) is the next bit after ATTACHMENT_HINT_WIFI_DIRECT. Made-with: Cursor
…ard' into mmoayyed/attachment-hint-smartcard
This was referenced Apr 18, 2026
Test Results2 308 tests 2 300 ✅ 59s ⏱️ Results for commit 9229c9b. |
fdennis
approved these changes
Apr 20, 2026
As agreed in #467 (comment) and #468 (comment)
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.
This is already released as experimental release
2.9.0-alpha1to unbreak people's deployments, but we'll review after the fact and iterate as needed.This incorporates both PR #467 and #468, preserving the original commits from both PRs.
Beyond adding the missing
AttachmentHintvalue identified in #466, this adds anUNKNOWNconstant as the default deserialization of all enums in the MDS data model; this should prevent hard crashes on new enum values in the future. To ensure that new values don't go unnoticed forever, this also adds a new integration test that attempts to deserialize the BLOB with enum defaults disabled and unknown fields forbidden. This should help us detect when new additions appear in the upstream data, as the integration test runs once a week on GitHub Actions.The new test also revealed several other new fields that were missing. I also added any other new fields defined in immediate proximity to the ones identified by the test; not all of these added fields have yet appeared in the actual data.
Fixes #466.