
"Can I migrate from [competitor] in one click?" is one of the most common questions vendors hear on sales calls, especially right after a competitor's breach makes headlines. Vendors present one-click migration as a convenience feature. In enterprise environments, it's only the starting point.
A working password manager migration recreates vault hierarchy, ownership, permissions, service accounts, automation, and integrations. The quality of that reconstruction decides whether users, applications, and infrastructure keep operating securely after cutover.
Verizon's 2026 Data Breach Investigations Report found that 39% of System Intrusion breaches involved stolen credentials, while 84% involved servers. As password managers become part of the infrastructure control plane, migration accuracy directly affects operational reliability and security.
This article explains why enterprise migration is an engineering project and how to run one without breaking production access on the way.
Key takeaways
- Enterprise migration is not a one-click data transfer. Moving credentials successfully means recreating the access model around them: vault hierarchy, ownership, RBAC, service accounts, automations, integrations, and auditability.
- Permission models rarely map one-to-one between platforms. A generic importer can copy field values, but it can't decide how inherited permissions, shared-vault ownership, or administrative roles should translate into the destination system.
- Treat migration as a reviewable engineering transformation. Explicit, repeatable rules, ideally encoded in scripts, let you rename vaults, remap owners, split roles, and exclude obsolete records with confidence.
- Import success doesn't prove migration success. Validate real-world behavior after import: authorized access, denied unauthorized access, working service accounts and CI/CD pipelines, and complete audit logging.
- Migration is a security-cleanup opportunity. Reviewing every credential and permission can expose stale access, orphaned secrets, duplicate records, and credentials tied to retired systems before those risks carry forward.
- Reduce cutover risk with a staged, tested process. Inventory, export, review, transform, test in staging, validate, then migrate in phases while running old and new systems in parallel until adoption is confirmed.
- For enterprise environments, correctness outweighs speed. The goal is to preserve, or improve, the organization's security and operational model without disrupting production access.
Migration starts with mapping access models
No universal import tool can accurately recreate an organization's access model, because security models rarely match between platforms.
Different password managers implement role-based access control, permission inheritance, shared vault ownership, and group membership differently. Even when two systems support the same concepts, they often implement them with different assumptions.
Consider three organizations:
- Company A organizes vaults by business function.
- Company B organizes them by product teams.
- Company C organizes them by customers and projects.
Hierarchy is only the visible part of the problem. The real challenge is translating security semantics between systems.
A source platform may inherit permissions through nested groups. The destination may require explicit assignments instead. Shared vault ownership might have no direct equivalent. An administrative role may bundle privileges that need to become multiple roles after migration. RBAC models almost never map one-to-one.
Passwork's own vault types show why. A shared company vault and a shared user vault carry different assumptions about who can see what. An importer has to make that call, not infer it from a folder name.
The same logic applies to structure handling. During import, an admin can:
- Rebuild the source hierarchy under an existing folder
- Flatten everything into one destination
- Recreate the full vault tree at the root
Each option is a deliberate choice about how the organization wants to operate going forward, and that choice depends on how the organization actually works.
A generic importer copies field values. Deciding which permissions to preserve, translate, merge, or drop requires judgment a script doesn't have.
Attackers increasingly target legitimate administrative access, exactly what's being migrated: trusted accounts and the paths that make privileged operations work. A correct migration keeps those paths behaving as intended after cutover.
Some objects can be copied, others must be redesigned
Enterprise password manager migration reshapes an organization's access model across four distinct layers: identity context, access policies, operational integrations, and trust boundaries. Each layer introduces technical constraints that a flat import file cannot represent.
| Component | Why it complicates migration |
|---|---|
| Identity context | Linking each credential to the correct SSO identity or local user account, not just a username string. |
| Access policies | Translating the source system's RBAC model into the destination system's permission logic, which is rarely a 1:1 mapping. |
| Operational integrations | Re-linking CI/CD pipelines, API keys, and service accounts without breaking automated deployments. |
| Trust boundaries | Mapping access for external vendors and contractors correctly. Verizon's 2026 DBIR found third-party involvement in 48% of breaches. |
The gap between copied and redesigned shows up clearly in real migration tooling. Passwork's official Bitwarden importer, for example, moves login items, secure notes, collections, folder structure, URLs, and TOTP codes automatically. It deliberately skips attachments and any item type it doesn't recognize, logging each skip instead of guessing at a mapping. That's a design decision, not a limitation: some objects can be copied safely, and some need a human to decide what happens to them.
Service accounts without clear owners, inherited permissions, obsolete integrations, and long-forgotten shared vaults fall into the second category. A successful migration preserves only what still reflects the organization's intended access model.
Any one of these handled incorrectly creates a gap: an orphaned integration, a contractor retaining production access, or an automation account authenticating against the wrong destination. None of these appear as import errors. They usually surface weeks later as incidents.
The right mental model for migration, and how Passwork applies it
Once migration is treated as an architectural transformation, the implementation naturally follows the same engineering principles used elsewhere in infrastructure projects: make every step explicit, reviewable, and reproducible.
Rather than relying on a black-box importer to interpret an organization's structure, the migration process should expose every transformation as code. Engineers should be able to inspect exported data, define how it is translated, and control exactly how every object is recreated in the destination system.
Passwork supports three migration paths, chosen by source and volume rather than by convenience:
| Path | When to use it | What it gives you |
|---|---|---|
| UI import | KeePass, LastPass/1Password/Bitwarden CSV, Passwork JSON, small-to-medium vaults | Guided column mapping, structure options for JSON/XML |
| Official Bitwarden script | Bitwarden or Vaultwarden org and personal JSON exports | Collections mapped to vaults or folders, items created one by one through the API |
| Python connector | Internal databases, .env trees, or exporters nothing else supports | Full control over mapping, tags, retries, and validation |
The first two cover most real-world moves. The third makes the "transformation as code" principle visible. A migration script built on Passwork's Python connector authenticates, creates the destination vault and folder structure explicitly, and writes each item with exactly the fields the organization wants preserved:
from passwork_client import PassworkClient
passwork = PassworkClient("https://passwork.example.com")
passwork.set_tokens(access_token, refresh_token)
passwork.set_master_key(master_key)
vault_type = passwork.find_vault_type(code="company")
vault_id = passwork.create_vault("Migrated – IT", vault_type["id"])
vault = passwork.get_vault(vault_id)
folder = passwork.call("POST", "/api/v1/folders", {
"name": "Databases",
"vaultId": vault["id"],
})
passwork.create_item({
"name": "Postgres primary",
"login": "app_rw",
"password": "...",
"urls": ["https://db.internal"],
"description": "Imported from Bitwarden",
"vaultId": vault["id"],
"folderId": folder["id"],
"customs": [
{"name": "TOTP", "value": "otpauth://...", "type": "totp"},
],
})
Nothing lands in a vault, a folder, or a permission set unless the script says so. For a full Passwork-to-Passwork move, the same logic scales to bulk REST endpoints — vaults/import, folders/import, and items/import — which return a sourceId → id map so parent objects are created before their children and every relationship stays intact.
The transformation stage is where migration becomes predictable. Engineers can encode migration rules explicitly: rename vaults, remap owners, split administrative roles, flatten inherited permissions, or exclude obsolete records altogether. Those decisions become reviewable code rather than assumptions hidden inside a generic import wizard. If the migration needs to be repeated or audited later, the transformation logic stays transparent and reproducible.
This also changes how the migration itself is secured. Traditional one-click imports typically generate an intermediate plaintext export, often a CSV, that is then processed by a generic parser with limited understanding of the destination environment. Each stage introduces its own security considerations.
| Migration Stage | Security Risk |
|---|---|
| Export | Credentials temporarily exist in plaintext on a local disk or shared drive. Passwork's own export carries the same caveat: files leave the platform as plaintext and should be treated as a secret, and attachments are never included. |
| Data transfer | Credentials may be exposed if transfer channels or APIs aren't adequately protected. |
| Import and conversion | Bulk import is not a single atomic transaction — some rows can succeed while others fail, so parsing errors or malformed rows need to be caught, not assumed away. |
| Access management | Permissions may be translated incorrectly, or remain active in the source environment after migration. Passwork gates import behind explicit create/import rights, so a migration script can't silently grant broader access than an admin intended. |
If something goes wrong mid-batch, recovery is manual: delete or bin the affected vault, then re-run the script against staging. That's exactly why a dry run is worth the extra hour before a production cutover.
Validate behavior, not just imported records
Import and migration mark two separate checkpoints. Import confirms that credentials exist in the destination vault. Migration confirms that the environment behaves exactly as intended once production workloads depend on it.
A practical validation phase should answer questions such as:
- Can every authorized user access the vaults they're expected to use?
- Are unauthorized users correctly denied access?
- Do CI/CD pipelines, infrastructure automation, and API integrations retrieve secrets without modification?
- Are service accounts functioning with the expected permissions?
- Do audit logs record authentication events, permission changes, and administrative actions correctly?
These checks often surface issues that appear only after import completes. A migrated credential may sit in the correct folder while remaining inaccessible to the automation that depends on it. A role translation error may silently grant broader access than intended, passing import validation cleanly.
Passwork's activity log (events like item_imported and vault_imported) gives auditors a paper trail for exactly this kind of check, and the Security Dashboard flags weak or duplicate passwords that came along for the ride from the old vault, so they can be rotated rather than carried forward. Records missing a URL are worth a second pass too: autofill won't work on them until someone fixes the field.
Successful migration is measured by operational behavior. The destination system should enforce the same security model as before, or a deliberately improved one, rather than merely hold the same secrets.
Turning password manager migration into a security audit
Migration is often the only moment when an organization reviews every stored credential and every permission at the same time.
Day-to-day administration tends to be incremental: users are added, projects evolve, integrations accumulate, and access rights gradually expand. A migration interrupts that process and forces every object to justify its place in the new environment. That's why a structured migration often doubles as the most comprehensive access review an organization has performed in years.
During this review, teams typically discover:
- Orphaned secrets belonging to employees who left months ago
- Duplicate credentials for the same service stored across multiple vaults
- Inactive users still holding production access
- API keys that expired but were never removed
- Personal credentials stored inside corporate vaults
- Credentials for systems decommissioned long ago but never deleted
A bulk import silently carries these problems into the new platform. A transformation-based migration exposes them, because every credential, owner, and permission must be evaluated before it's recreated.
Verizon's 2026 DBIR reports that 27% of ransomware victims had evidence of an infostealer or credential leak during the previous year, and among those organizations, half were exposed within 95 days before the ransomware incident occurred. Migration is one of the few opportunities to revoke exposed or obsolete credentials before they become part of an attack chain.
The same report also notes that resolving weak passwords and permission misconfigurations across third-party cloud environments takes organizations nearly eight months on average. Doing that review during migration compresses those eight months into a planned engineering activity instead of a prolonged remediation effort.
Under GDPR Article 32, organizations must implement technical and organizational measures appropriate to the risks of processing personal data. Removing stale access and orphaned credentials during migration demonstrates those controls in practice rather than simply documenting them.
Seven steps that reduce migration risk before production
The Passwork migration workflow treats migration as an engineering project with explicit checkpoints rather than a single import operation.
1. Inventory
Document existing vaults, service accounts, integrations, automation, and external dependencies before writing any migration code.
2. Export
Extract data from the source system in a structured format. JSON is generally preferable because it preserves hierarchical relationships — Passwork's own JSON export keeps vault and folder structure intact, while CSV flattens everything into a table.
3. Review
Identify stale, duplicate, orphaned, or over-privileged credentials before they're migrated.
4. Transform
Implement migration rules that map the source environment to the destination hierarchy, ownership model, RBAC configuration, and naming conventions.
5. Test import
Run the migration against a staging environment to verify objects are created correctly before touching production. Passwork's own guidance for the Bitwarden script is explicit on this point: back up the destination database and dry-run on staging before a real cutover.
6. Validate permissions
Confirm that:
- authorized users have access;
- unauthorized users do not;
- service accounts authenticate successfully;
- CI/CD pipelines and integrations continue to function;
- audit logs capture expected security events.
7. Production migration
Execute the production migration in phases rather than one sweep — shared IT and infrastructure credentials first, then department vaults one team at a time, then private vaults once users are activated. Run the old and new systems in parallel for two to four weeks, spot-check with each department owner, and only decommission the source platform once adoption is real, not assumed.
Skipping either the testing or permission validation stages usually doesn't eliminate the work. It postpones it until production users or automated systems start failing after cutover.
Getting migration right
The easiest migrations move passwords. Successful migrations recreate how an organization operates: who owns each credential, how permissions are inherited, which systems depend on shared secrets, and which access paths should no longer exist.
One-click imports optimize for speed. Enterprise migrations optimize for correctness, auditability, and predictable behavior after cutover. Those goals rarely point in the same direction.
If there's one action worth taking before scheduling a migration, it's the first step in the workflow above: build an accurate inventory of your vaults, service accounts, integrations, and permission model before writing a single line of migration logic.
The best migration scripts document every migration decision along the way. Long after cutover, those transformation rules become a record of why access was mapped the way it was — making future audits, troubleshooting, and repeat migrations significantly easier.
Password manager migration FAQ
What is password manager migration?
Password manager migration is the process of moving an organization's credential vaults, including passwords, secrets, permissions, and integrations, from one system to another. Unlike a personal password export, enterprise migration must preserve access control structures, service account dependencies, and audit requirements, not just the credential values themselves.
Can you migrate passwords with a one-click import?
A one-click import can move raw credential strings, but it can't reliably preserve folder hierarchy, ownership, permission inheritance, or integration dependencies. For personal use, that's often acceptable. For enterprise vaults, it typically produces a working but structurally broken destination that needs manual correction afterward.
What migration paths does Passwork actually offer?
Passwork covers three practical paths, chosen by source system and volume: guided UI import for KeePass, LastPass/1Password/Bitwarden CSV, and Passwork JSON; an official Python script for Bitwarden or Vaultwarden organization exports; and a Python connector for internal databases, .env files, or any exporter without native support. A separate admin-only command handles upgrading Passwork's own database between major versions — that's an infrastructure task, not a vendor switch.
How long does an enterprise password manager migration take?
Timelines vary by vault size and structural complexity, so a specific figure would be misleading without context. Organizations following a structured workflow, inventory through production migration, typically budget for staging tests and permission validation rather than a single weekend cutover, since correctness matters more than speed for enterprise deployments.
What's the difference between password manager migration and a data import?
A data import moves values, such as usernames and passwords, from one format to another. Migration additionally recreates the operational context around those values: who owns each credential, which group has access, and which automated systems depend on it. Import is a subset of migration, not a substitute for it.
How do you migrate shared vaults and shared access?
Migrating shared vaults requires mapping each group's permissions to an equivalent structure in the destination system, including access for external vendors and contractors. Verizon's 2026 DBIR found third-party involvement in 48% of breaches, which makes accurate trust-boundary mapping during migration a security requirement, not just an administrative task.



Table of contents
- Key takeaways
- Migration starts with mapping access models
- Some objects can be copied, others must be redesigned
- The right mental model for migration, and how Passwork applies it
- Validate behavior, not just imported records
- Turning password manager migration into a security audit
- Seven steps that reduce migration risk before production
- Getting migration right
- Password manager migration FAQ
Table of contents
- Key takeaways
- Migration starts with mapping access models
- Some objects can be copied, others must be redesigned
- The right mental model for migration, and how Passwork applies it
- Validate behavior, not just imported records
- Turning password manager migration into a security audit
- Seven steps that reduce migration risk before production
- Getting migration right
- Password manager migration FAQ
Self-hosted password manager for business
Passwork provides an advantage of effective teamwork with corporate passwords in a totally safe environment. Double encryption and zero-knowledge architecture ensure your passwords never leave your infrastructure.
Learn more


