Seeds
Hand-crafted JSON fixtures for Bitwarden Seeder test data.
Quick Start
- Copy template from
templates/to appropriatefixtures/subfolder - Edit JSON (your editor validates against
$schemaautomatically) - Build to verify:
dotnet build util/Seeder/Seeder.csproj
File Structure
Seeds/
├── fixtures/ Your seed data goes here
│ ├── ciphers/ Vault items (logins, cards, identities, notes)
│ ├── organizations/ Organization definitions
│ ├── rosters/ Users, groups, collections, permissions
│ └── presets/ Complete seeding scenarios
├── schemas/ JSON Schema validation (auto-checked by editors)
├── templates/ Starter files - copy these
│ └── CONTRIBUTING.md Detailed guide for contributors
└── README.md This file
Fixtures Overview
Ciphers
Vault items - logins, cards, identities, secure notes.
| Type | Required Object | Description |
|---|---|---|
login |
login |
Website credentials + URIs |
card |
card |
Payment card details |
identity |
identity |
Personal identity info |
secureNote |
— | Uses notes field only |
sshKey |
sshKey |
SSH key credentials |
Schema: schemas/cipher.schema.json
Organizations
Organization identity definitions with name and domain. Plan type and seats are defined in presets, not org fixtures.
Required fields: name, domain
Schema: schemas/organization.schema.json
Rosters
Complete user/group/collection structures with permissions. User emails auto-generated as firstName.lastName@domain.
User roles: owner, admin, user, custom
Collection permissions: readOnly, hidePasswords, manage
Schema: schemas/roster.schema.json
Example: See fixtures/rosters/dunder-mifflin.json for a complete 58-user example
Presets
Combine organization, roster, and ciphers into complete scenarios. Presets can reference fixtures, generate data programmatically, or mix both approaches.
Key features:
- Reference existing fixtures by name
- Generate users, groups, collections, and ciphers with count parameters
- Add personal ciphers (user-owned, encrypted with user key, not in collections)
- Mix fixture references and generated data
Schema: schemas/preset.schema.json
Examples: See fixtures/presets/ for complete examples including fixture-based, generated, and hybrid approaches
Validation
Modern editors validate against $schema automatically - errors appear as red squiggles.
Build errors catch schema violations:
dotnet build util/Seeder/Seeder.csproj
Naming Conventions
| Element | Pattern | Example |
|---|---|---|
| File names | kebab-case | banking-logins.json |
| Item names | Title case, unique | Chase Bank Login |
| User refs | firstName.lastName | jane.doe |
| Org domains | Realistic or .test | acme.com, test.local |
Security
- Test password: See
UserSeeder.DefaultPasswordconstant - Use fictional names/addresses
- Never commit real passwords or PII
- Never seed production databases