1
0
mirror of https://github.com/bitwarden/server synced 2026-02-19 19:03:30 +00:00
Files
server/util/Seeder/Seeds

Seeds

Hand-crafted JSON fixtures for Bitwarden Seeder test data.

Quick Start

  1. Copy template from templates/ to appropriate fixtures/ subfolder
  2. Edit JSON (your editor validates against $schema automatically)
  3. 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.DefaultPassword constant
  • Use fictional names/addresses
  • Never commit real passwords or PII
  • Never seed production databases