- 
                Notifications
    You must be signed in to change notification settings 
- Fork 20
Accept SecureNote with Type 1 and set to 0 #521
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
| Claude finished @Jingo88's task —— View job Code Review Complete
 Summary of ChangesThis PR modifies  Commits since last review: 2 commits 
 Critical Issues
 | 
| 
 Great job! No new security vulnerabilities introduced in this pull request | 
| Codecov Report❌ Patch coverage is  
 Additional details and impacted files@@            Coverage Diff            @@
##             main     #521     +/-   ##
=========================================
  Coverage   78.34%   78.34%             
=========================================
  Files         287      291      +4     
  Lines       28095    29400   +1305     
=========================================
+ Hits        22010    23034   +1024     
- Misses       6085     6366    +281     ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
 | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you know how the mobile apps currently handles this? We haven't had any issues there and they've used this logic since those apps were built. I suspect they handle the failures on their mapping side.
// This allows the SDK to handle future secure note types gracefully
I don't quite agree on this, a future type can not generally be mapped to an existing type without potential data loss.
| That's fair about the comment, it can be a little misleading. I'll remove it. Currently iOS will default to 0. Android throws an exception. | 
| 
 | 
| Are we concerned about the different behaviour between mobile and clients? Mobile never goes through the json layer and the 0/1 types are handled in the mapping layer. | 
| 
 @Hinton No real concerns, the behavior is already different between Mobile and Clients and this is bringing the behavior more in line with the iOS mapping that already automatically maps 1>0 | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still have reservations around mobile handling this in the conversion layer and web handles this by loosely parsing serialized json it's inconsistent. As we shift the response parsing into the SDK this will stop working since we won't manually parse the json and will need to handle this in the impl From<SecureNoteResponse> for SecureNote.
Once we have data migrations one of the first migrations should be to get rid of notes with values other than 1 since this will cause headache should we ever want another note type.
Also please ensure Android is updated to handle this gracefully as I understand iOS parses unknown to 1, but Android throws errors.
…SecureNote with Type 1 and set to 0 (bitwarden/sdk-internal#521)




🎟️ Tracking
PM-27214
📔 Objective
Some users have Notes with a
Type:1in their data. This was breaking some vaults as failures were returning. Changes allow for Cipher Notes to have Type:1 and setting them to 0⏰ Reminders before review
team
🦮 Reviewer guidelines
:+1:) or similar for great changes:memo:) or ℹ️ (:information_source:) for notes or general info:question:) for questions:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmedissue and could potentially benefit from discussion
:art:) for suggestions / improvements:x:) or:warning:) for more significant problems or concerns needing attention:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt:pick:) for minor or nitpick changes