PM-39866 - Enhance seeder to seed archive and deleted ciphers#7923
PM-39866 - Enhance seeder to seed archive and deleted ciphers#7923theMickster wants to merge 2 commits into
Conversation
🤖 Bitwarden Claude Code ReviewOverall Assessment: APPROVE Reviewed the Seeder density-pipeline enhancement that adds archived/deleted cipher lifecycle-state generation for both personal and org vaults. Traced the target-math ( Code Review DetailsNo blocking findings. Notable strengths that informed the assessment (no action required):
The three prior github-code-quality threads (unused locals, constant condition) are resolved in b9af380. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7923 +/- ##
=======================================
Coverage 61.35% 61.36%
=======================================
Files 2236 2236
Lines 98547 98547
Branches 8911 8911
=======================================
+ Hits 60468 60469 +1
+ Misses 35943 35942 -1
Partials 2136 2136 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
🎟️ Tracking
PM-39866
📔 Objective
Adds archive and delete lifecycle-state generation to the Seeder's density-driven cipher pipeline for both personal and organizational vaults. New
DensityProfilerate + ceiling fields drive the feature similar to the pre-existing properties. Altered the LoginCipherScene.cs to handle archived ciphers.🧪 Testing
Expand for details
End-to-end via the SeederApi scenes
Drove the SeederApi
/seedendpoint end-to-end to build a full account graph and confirm the newarchive/delete request flags flow through the scene → factory → encrypted-entity path:
SingleUserScene+SingleOrganizationScene/OrganizationUserScene— create theuser, the org, and org membership.
UserLoginCipherSceneandOrganizationLoginCipherScenewithArchived: trueandDeleted: true— create archived and deleted login ciphers in both the personal and orgvaults.
Archivedwrites the per-userArchivesJSON viaCipherComposer.BuildArchivesJson(same shape as
Cipher_Archive.sql);DeletedstampsDeletedDate.UserCardCipherScene,UserIdentityCipherScene,UserSecureNoteCipherScene,UserBankAccountCipherScene,UserDriversLicenseCipherScene,UserPassportCipherScene,UserSshKeyCipherScene— confirm the mixed-type creation path stillseeds and encrypts correctly alongside the archived/deleted login ciphers.
Confirmed the seeded archived/deleted login ciphers surface correctly in the web-vault UI (Archive
and Trash tabs) when logged in as the seeded user and org owner.
Live preset seed + SQL verification
Seeded Scale presets via
dotnet run -- preset --name scale.<name> --mangleand queried[dbo].[Cipher]directly (verification.md Q9 + Q11) for each. Every count landed exactly on theconfigured target/cap — no overshoot, no starvation:
Step 4: Owner-visibility guarantee (live)
Logged into the web-vault UI as the seeded org Owner and confirmed the Owner always has at least one
collection-assigned archived item and one deleted item visible — the Archive and Trash tabs
render them, matching the SQL counts. Verified for Central Perk and Bluth Company.