From 0d8b9205509e118d0e5807c3065812d23b0e343b Mon Sep 17 00:00:00 2001 From: Mick Letofsky Date: Tue, 24 Feb 2026 18:28:49 +0100 Subject: [PATCH] Seeder simplifying and extending seeds (#7065) --- util/Seeder/Seeds/README.md | 108 +- .../{qa-tde-org.json => adams-family.json} | 4 +- .../organizations/cobalt-logistics.json | 5 + .../organizations/dunder-mifflin.json | 2 +- .../organizations/maple-pine-trading.json | 2 +- .../{qa-sso-org.json => obsidian-labs.json} | 4 +- .../organizations/pinnacle-designs.json | 5 + .../qa-collection-permissions.json | 5 - .../fixtures/organizations/qa-enterprise.json | 5 - .../fixtures/organizations/qa-policy-org.json | 5 - .../organizations/redwood-analytics.json | 5 + .../organizations/stark-industries.json | 2 +- .../organizations/verdant-health.json | 5 + .../organizations/wonka-confections.json | 2 +- .../organizations/zero-knowledge-labs.json | 5 + .../collection-permissions-enterprise.json | 2 +- .../fixtures/presets/enterprise-basic.json | 2 +- .../fixtures/presets/families-basic.json | 19 + .../fixtures/presets/large-enterprise.json | 2 +- .../fixtures/presets/policy-enterprise.json | 4 +- .../fixtures/presets/sso-enterprise.json | 6 +- .../fixtures/presets/tde-enterprise.json | 6 +- .../presets/wonka-teams-personal-vaults.json | 26 - .../fixtures/presets/wonka-teams-small.json | 13 +- .../fixtures/rosters/enterprise-basic.json | 16 +- .../Seeder/Seeds/fixtures/rosters/family.json | 60 + .../Seeds/fixtures/rosters/policy-org.json | 9 - .../Seeds/fixtures/rosters/sso-basic.json | 8 - .../Seeds/fixtures/rosters/starter-team.json | 46 + .../Seeds/fixtures/rosters/tde-basic.json | 16 - .../fixtures/rosters/zero-knowledge-labs.json | 1337 +++++++++++++++++ .../Seeds/templates/cipher.template.json | 81 - .../templates/organization.template.json | 6 - .../Seeds/templates/preset.template.json | 19 - .../Seeds/templates/roster.template.json | 87 -- util/SeederUtility/README.md | 26 +- 36 files changed, 1588 insertions(+), 367 deletions(-) rename util/Seeder/Seeds/fixtures/organizations/{qa-tde-org.json => adams-family.json} (52%) create mode 100644 util/Seeder/Seeds/fixtures/organizations/cobalt-logistics.json rename util/Seeder/Seeds/fixtures/organizations/{qa-sso-org.json => obsidian-labs.json} (50%) create mode 100644 util/Seeder/Seeds/fixtures/organizations/pinnacle-designs.json delete mode 100644 util/Seeder/Seeds/fixtures/organizations/qa-collection-permissions.json delete mode 100644 util/Seeder/Seeds/fixtures/organizations/qa-enterprise.json delete mode 100644 util/Seeder/Seeds/fixtures/organizations/qa-policy-org.json create mode 100644 util/Seeder/Seeds/fixtures/organizations/redwood-analytics.json create mode 100644 util/Seeder/Seeds/fixtures/organizations/verdant-health.json create mode 100644 util/Seeder/Seeds/fixtures/organizations/zero-knowledge-labs.json create mode 100644 util/Seeder/Seeds/fixtures/presets/families-basic.json delete mode 100644 util/Seeder/Seeds/fixtures/presets/wonka-teams-personal-vaults.json create mode 100644 util/Seeder/Seeds/fixtures/rosters/family.json delete mode 100644 util/Seeder/Seeds/fixtures/rosters/policy-org.json delete mode 100644 util/Seeder/Seeds/fixtures/rosters/sso-basic.json create mode 100644 util/Seeder/Seeds/fixtures/rosters/starter-team.json delete mode 100644 util/Seeder/Seeds/fixtures/rosters/tde-basic.json create mode 100644 util/Seeder/Seeds/fixtures/rosters/zero-knowledge-labs.json delete mode 100644 util/Seeder/Seeds/templates/cipher.template.json delete mode 100644 util/Seeder/Seeds/templates/organization.template.json delete mode 100644 util/Seeder/Seeds/templates/preset.template.json delete mode 100644 util/Seeder/Seeds/templates/roster.template.json diff --git a/util/Seeder/Seeds/README.md b/util/Seeder/Seeds/README.md index a11ebcf850..e9c72eef2e 100644 --- a/util/Seeder/Seeds/README.md +++ b/util/Seeder/Seeds/README.md @@ -4,28 +4,35 @@ 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) +1. Create a JSON file in the right `fixtures/` subfolder +2. Add the `$schema` line — your editor picks up validation automatically 3. Build to verify: `dotnet build util/Seeder/Seeder.csproj` -## File Structure +## Writing Fixtures -``` -Seeds/ -├── fixtures/ Your seed data goes here -│ ├── ciphers/ Vault items -│ ├── 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 -└── README.md This file -``` +### Organizations -## Fixtures Overview +Just a name and domain. That's it. +Domains must use `.example` (RFC 2606 — guaranteed unresolvable, safe for QA email pipelines). +Plan type and seats are defined in presets, not here. + +See: `fixtures/organizations/redwood-analytics.json` + +### Rosters + +Users, groups, and collections for an org. + +- Users have a `firstName`, `lastName`, and `role` (`owner`, `admin`, `user`, `custom`) +- The Seeder pipeline builds emails as `firstName.lastName@domain`, so `"Family"` + `"Mom"` at domain `acme.example` becomes `family.mom@acme.example` or `a1b2c3d4+family.mom@acme.example` with mangling on +- Groups reference users by that same email prefix (e.g. `"family.mom"`) +- Collections assign permissions to groups or individual users (`readOnly`, `hidePasswords`, `manage` — all default false) + +See: `starter-team.json` (minimal), `family.json` (groups + collections), `dunder-mifflin.json` (58-user enterprise) ### Ciphers +Vault items. Each item needs a `type` and `name`. + | Type | Required Object | Description | | ------------ | --------------- | -------------------------- | | `login` | `login` | Website credentials + URIs | @@ -34,77 +41,56 @@ Seeds/ | `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 +See: `fixtures/ciphers/enterprise-basic.json` ### Presets -Combine organization, roster, and ciphers into complete scenarios. Presets can reference fixtures, generate data programmatically, or mix both approaches. +Presets **wire everything together**: org + roster + ciphers. You can reference fixtures by name or generate data with counts. -**Key features**: +Three styles: -- 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 +- **Fixture-based**: `enterprise-basic.json` — references org, roster, and cipher fixtures +- **Generated**: `wonka-teams-small.json` — uses `count` parameters to create users, groups, collections, ciphers +- **Feature-specific**: `tde-enterprise.json`, `policy-enterprise.json` — adds SSO config, policies -**Schema**: `schemas/preset.schema.json` -**Examples**: See `fixtures/presets/` for complete examples including fixture-based, generated, and hybrid approaches +Presets can also define inline orgs (name + domain right in the preset) instead of referencing a fixture — see `large-enterprise.json`. + +## 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 | .example | `acme.example` | ## Validation -Modern editors validate against `$schema` automatically - errors appear as red squiggles. - -Build errors catch schema violations: +Your editor validates against `$schema` automatically — errors show up as red squiggles. Build also catches schema violations: ```bash 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` | - ## QA Test Fixture Migration Matrix These Seeds consolidate test data previously found across the `bitwarden/test` repo. The table below maps existing QA fixtures to their Seeder equivalents. -| QA Source (`test/Bitwarden.Web.Tests/TestData/SetupData/`) | Used By | Seeder Preset | Org Fixture | Roster Fixture | Cipher Fixture | -| ---------------------------------------------------------- | --------------------------------- | ----------------------------------- | --------------------------- | ------------------------ | ------------------------ | -| `CollectionPermissionsOrg.json` | Web, Extension | `collection-permissions-enterprise` | `qa-collection-permissions` | `collection-permissions` | `collection-permissions` | -| `EnterpriseOrg.json` | Web, Extension, Android, iOS, CLI | `enterprise-basic` | `qa-enterprise` | `enterprise-basic` | `enterprise-basic` | -| `SsoOrg.json` | Web | `sso-enterprise` | `qa-sso-org` | `sso-basic` | `sso-vault` | -| `TDEOrg.json` | Web, Extension, Android, iOS | `tde-enterprise` | `qa-tde-org` | `tde-basic` | `tde-vault` | -| _(Confluence: Policy Org guide)_ | QA manual setup | `policy-enterprise` | `qa-policy-org` | `policy-org` | — | +| QA Source (`test/Bitwarden.Web.Tests/TestData/SetupData/`) | Used By | Seeder Preset | Org Fixture | Roster Fixture | Cipher Fixture | +| ---------------------------------------------------------- | --------------------------------- | ----------------------------------- | ------------------- | ------------------------ | ------------------------ | +| `CollectionPermissionsOrg.json` | Web, Extension | `collection-permissions-enterprise` | `cobalt-logistics` | `collection-permissions` | `collection-permissions` | +| `EnterpriseOrg.json` | Web, Extension, Android, iOS, CLI | `enterprise-basic` | `redwood-analytics` | `enterprise-basic` | `enterprise-basic` | +| `SsoOrg.json` | Web | `sso-enterprise` | `verdant-health` | `starter-team` | `sso-vault` | +| `TDEOrg.json` | Web, Extension, Android, iOS | `tde-enterprise` | `obsidian-labs` | `starter-team` | `tde-vault` | +| _(Confluence: Policy Org guide)_ | QA manual setup | `policy-enterprise` | `pinnacle-designs` | `starter-team` | — | +| `FamiliesOrg.json` | Web, Extension | `families-basic` | `adams-family` | `family` | — | ### Not Yet Migrated | QA Source | Used By | Status | | --------------------- | ---------------------------- | --------------------------------------------------------------------- | | `FreeAccount.json` | All 7 platforms | Planned — `free-personal-vault` preset (separate PR due to file size) | -| `FamiliesOrg.json` | Web, Extension | Planned — `families-basic` preset | | `PremiumAccount.json` | Web, Extension, Android, iOS | Planned — `premium-personal-vault` preset | | `SecretsManager.json` | Web | Planned — `secrets-manager-enterprise` preset | | `FreeOrg.json` | Web | Planned — `free-org-basic` preset | diff --git a/util/Seeder/Seeds/fixtures/organizations/qa-tde-org.json b/util/Seeder/Seeds/fixtures/organizations/adams-family.json similarity index 52% rename from util/Seeder/Seeds/fixtures/organizations/qa-tde-org.json rename to util/Seeder/Seeds/fixtures/organizations/adams-family.json index 58052105f1..1a7405c4ea 100644 --- a/util/Seeder/Seeds/fixtures/organizations/qa-tde-org.json +++ b/util/Seeder/Seeds/fixtures/organizations/adams-family.json @@ -1,5 +1,5 @@ { "$schema": "../../schemas/organization.schema.json", - "name": "TDE QA Org", - "domain": "qa-tde.test" + "name": "Adams Family", + "domain": "adams.example" } diff --git a/util/Seeder/Seeds/fixtures/organizations/cobalt-logistics.json b/util/Seeder/Seeds/fixtures/organizations/cobalt-logistics.json new file mode 100644 index 0000000000..585ff8c78a --- /dev/null +++ b/util/Seeder/Seeds/fixtures/organizations/cobalt-logistics.json @@ -0,0 +1,5 @@ +{ + "$schema": "../../schemas/organization.schema.json", + "name": "Cobalt Logistics", + "domain": "cobalt.example" +} diff --git a/util/Seeder/Seeds/fixtures/organizations/dunder-mifflin.json b/util/Seeder/Seeds/fixtures/organizations/dunder-mifflin.json index 1ab246a5c7..2d73687695 100644 --- a/util/Seeder/Seeds/fixtures/organizations/dunder-mifflin.json +++ b/util/Seeder/Seeds/fixtures/organizations/dunder-mifflin.json @@ -1,5 +1,5 @@ { "$schema": "../../schemas/organization.schema.json", "name": "Dunder Mifflin", - "domain": "dundermifflin.com" + "domain": "dundermifflin.example" } diff --git a/util/Seeder/Seeds/fixtures/organizations/maple-pine-trading.json b/util/Seeder/Seeds/fixtures/organizations/maple-pine-trading.json index cad448471d..747c443fe5 100644 --- a/util/Seeder/Seeds/fixtures/organizations/maple-pine-trading.json +++ b/util/Seeder/Seeds/fixtures/organizations/maple-pine-trading.json @@ -1,5 +1,5 @@ { "$schema": "../../schemas/organization.schema.json", "name": "Maple & Pine Trading Co", - "domain": "maplepine.com" + "domain": "maplepine.example" } diff --git a/util/Seeder/Seeds/fixtures/organizations/qa-sso-org.json b/util/Seeder/Seeds/fixtures/organizations/obsidian-labs.json similarity index 50% rename from util/Seeder/Seeds/fixtures/organizations/qa-sso-org.json rename to util/Seeder/Seeds/fixtures/organizations/obsidian-labs.json index ea46853c52..2578738388 100644 --- a/util/Seeder/Seeds/fixtures/organizations/qa-sso-org.json +++ b/util/Seeder/Seeds/fixtures/organizations/obsidian-labs.json @@ -1,5 +1,5 @@ { "$schema": "../../schemas/organization.schema.json", - "name": "SSO QA Org", - "domain": "qa-sso.test" + "name": "Obsidian Labs", + "domain": "obsidian.example" } diff --git a/util/Seeder/Seeds/fixtures/organizations/pinnacle-designs.json b/util/Seeder/Seeds/fixtures/organizations/pinnacle-designs.json new file mode 100644 index 0000000000..398671c6db --- /dev/null +++ b/util/Seeder/Seeds/fixtures/organizations/pinnacle-designs.json @@ -0,0 +1,5 @@ +{ + "$schema": "../../schemas/organization.schema.json", + "name": "Pinnacle Designs", + "domain": "pinnacle.example" +} diff --git a/util/Seeder/Seeds/fixtures/organizations/qa-collection-permissions.json b/util/Seeder/Seeds/fixtures/organizations/qa-collection-permissions.json deleted file mode 100644 index 1c2b350bd4..0000000000 --- a/util/Seeder/Seeds/fixtures/organizations/qa-collection-permissions.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "../../schemas/organization.schema.json", - "name": "Collection Permissions QA Org", - "domain": "qa-collperms.test" -} diff --git a/util/Seeder/Seeds/fixtures/organizations/qa-enterprise.json b/util/Seeder/Seeds/fixtures/organizations/qa-enterprise.json deleted file mode 100644 index 2bcaa88c07..0000000000 --- a/util/Seeder/Seeds/fixtures/organizations/qa-enterprise.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "../../schemas/organization.schema.json", - "name": "Enterprise QA Org", - "domain": "qa-enterprise.test" -} diff --git a/util/Seeder/Seeds/fixtures/organizations/qa-policy-org.json b/util/Seeder/Seeds/fixtures/organizations/qa-policy-org.json deleted file mode 100644 index 0f044fb8a1..0000000000 --- a/util/Seeder/Seeds/fixtures/organizations/qa-policy-org.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "../../schemas/organization.schema.json", - "name": "Policy Testing Org", - "domain": "qa-policy.test" -} diff --git a/util/Seeder/Seeds/fixtures/organizations/redwood-analytics.json b/util/Seeder/Seeds/fixtures/organizations/redwood-analytics.json new file mode 100644 index 0000000000..1ee8005fac --- /dev/null +++ b/util/Seeder/Seeds/fixtures/organizations/redwood-analytics.json @@ -0,0 +1,5 @@ +{ + "$schema": "../../schemas/organization.schema.json", + "name": "Redwood Analytics", + "domain": "redwood.example" +} diff --git a/util/Seeder/Seeds/fixtures/organizations/stark-industries.json b/util/Seeder/Seeds/fixtures/organizations/stark-industries.json index 758692b29b..a32865e4c1 100644 --- a/util/Seeder/Seeds/fixtures/organizations/stark-industries.json +++ b/util/Seeder/Seeds/fixtures/organizations/stark-industries.json @@ -1,5 +1,5 @@ { "$schema": "../../schemas/organization.schema.json", "name": "Stark Industries", - "domain": "stark.dev" + "domain": "stark.example" } diff --git a/util/Seeder/Seeds/fixtures/organizations/verdant-health.json b/util/Seeder/Seeds/fixtures/organizations/verdant-health.json new file mode 100644 index 0000000000..99d76611cd --- /dev/null +++ b/util/Seeder/Seeds/fixtures/organizations/verdant-health.json @@ -0,0 +1,5 @@ +{ + "$schema": "../../schemas/organization.schema.json", + "name": "Verdant Health", + "domain": "verdant.example" +} diff --git a/util/Seeder/Seeds/fixtures/organizations/wonka-confections.json b/util/Seeder/Seeds/fixtures/organizations/wonka-confections.json index 9b7126ad8f..117835183c 100644 --- a/util/Seeder/Seeds/fixtures/organizations/wonka-confections.json +++ b/util/Seeder/Seeds/fixtures/organizations/wonka-confections.json @@ -1,5 +1,5 @@ { "$schema": "../../schemas/organization.schema.json", "name": "Wonka Confections", - "domain": "wonka.co" + "domain": "wonka.example" } diff --git a/util/Seeder/Seeds/fixtures/organizations/zero-knowledge-labs.json b/util/Seeder/Seeds/fixtures/organizations/zero-knowledge-labs.json new file mode 100644 index 0000000000..0d0982bb33 --- /dev/null +++ b/util/Seeder/Seeds/fixtures/organizations/zero-knowledge-labs.json @@ -0,0 +1,5 @@ +{ + "$schema": "../../schemas/organization.schema.json", + "name": "Zero Knowledge Labs", + "domain": "zero-knowledge.example" +} diff --git a/util/Seeder/Seeds/fixtures/presets/collection-permissions-enterprise.json b/util/Seeder/Seeds/fixtures/presets/collection-permissions-enterprise.json index ebb5eaee4d..d3866ea5cb 100644 --- a/util/Seeder/Seeds/fixtures/presets/collection-permissions-enterprise.json +++ b/util/Seeder/Seeds/fixtures/presets/collection-permissions-enterprise.json @@ -1,7 +1,7 @@ { "$schema": "../../schemas/preset.schema.json", "organization": { - "fixture": "qa-collection-permissions", + "fixture": "cobalt-logistics", "planType": "enterprise-annually", "seats": 10 }, diff --git a/util/Seeder/Seeds/fixtures/presets/enterprise-basic.json b/util/Seeder/Seeds/fixtures/presets/enterprise-basic.json index f3a8e04fa6..d8102e7b83 100644 --- a/util/Seeder/Seeds/fixtures/presets/enterprise-basic.json +++ b/util/Seeder/Seeds/fixtures/presets/enterprise-basic.json @@ -1,7 +1,7 @@ { "$schema": "../../schemas/preset.schema.json", "organization": { - "fixture": "qa-enterprise", + "fixture": "redwood-analytics", "planType": "enterprise-annually", "seats": 10 }, diff --git a/util/Seeder/Seeds/fixtures/presets/families-basic.json b/util/Seeder/Seeds/fixtures/presets/families-basic.json new file mode 100644 index 0000000000..0e90d72990 --- /dev/null +++ b/util/Seeder/Seeds/fixtures/presets/families-basic.json @@ -0,0 +1,19 @@ +{ + "$schema": "../../schemas/preset.schema.json", + "organization": { + "fixture": "adams-family", + "planType": "families-annually", + "seats": 6 + }, + "roster": { + "fixture": "family" + }, + "folders": true, + "ciphers": { + "count": 150, + "assignFolders": true + }, + "personalCiphers": { + "countPerUser": 65 + } +} diff --git a/util/Seeder/Seeds/fixtures/presets/large-enterprise.json b/util/Seeder/Seeds/fixtures/presets/large-enterprise.json index 1936713356..7adc49a058 100644 --- a/util/Seeder/Seeds/fixtures/presets/large-enterprise.json +++ b/util/Seeder/Seeds/fixtures/presets/large-enterprise.json @@ -2,7 +2,7 @@ "$schema": "../../schemas/preset.schema.json", "organization": { "name": "Globex Corp", - "domain": "globex.com", + "domain": "globex.example", "seats": 10000 }, "users": { diff --git a/util/Seeder/Seeds/fixtures/presets/policy-enterprise.json b/util/Seeder/Seeds/fixtures/presets/policy-enterprise.json index bdc46841e8..7177d7312d 100644 --- a/util/Seeder/Seeds/fixtures/presets/policy-enterprise.json +++ b/util/Seeder/Seeds/fixtures/presets/policy-enterprise.json @@ -1,11 +1,11 @@ { "$schema": "../../schemas/preset.schema.json", "organization": { - "fixture": "qa-policy-org", + "fixture": "pinnacle-designs", "planType": "enterprise-annually" }, "roster": { - "fixture": "policy-org" + "fixture": "starter-team" }, "policies": { "enableAll": true, diff --git a/util/Seeder/Seeds/fixtures/presets/sso-enterprise.json b/util/Seeder/Seeds/fixtures/presets/sso-enterprise.json index e88e78ea7f..7c8c041c2b 100644 --- a/util/Seeder/Seeds/fixtures/presets/sso-enterprise.json +++ b/util/Seeder/Seeds/fixtures/presets/sso-enterprise.json @@ -1,12 +1,12 @@ { "$schema": "../../schemas/preset.schema.json", "organization": { - "fixture": "qa-sso-org", + "fixture": "verdant-health", "planType": "enterprise-annually", "seats": 10 }, "roster": { - "fixture": "sso-basic" + "fixture": "starter-team" }, "ciphers": { "fixture": "sso-vault" @@ -15,7 +15,7 @@ "enable": ["requireSso"] }, "sso": { - "identifier": "qa-sso-org", + "identifier": "verdant-health", "encryptionType": "masterPassword", "provider": "oidc" } diff --git a/util/Seeder/Seeds/fixtures/presets/tde-enterprise.json b/util/Seeder/Seeds/fixtures/presets/tde-enterprise.json index eb8f7c04a7..7fe9e75fbe 100644 --- a/util/Seeder/Seeds/fixtures/presets/tde-enterprise.json +++ b/util/Seeder/Seeds/fixtures/presets/tde-enterprise.json @@ -1,12 +1,12 @@ { "$schema": "../../schemas/preset.schema.json", "organization": { - "fixture": "qa-tde-org", + "fixture": "obsidian-labs", "planType": "enterprise-annually", "seats": 10 }, "roster": { - "fixture": "tde-basic" + "fixture": "starter-team" }, "ciphers": { "fixture": "tde-vault" @@ -15,7 +15,7 @@ "enable": ["requireSso"] }, "sso": { - "identifier": "qa-tde-org", + "identifier": "obsidian-labs", "encryptionType": "trustedDevices", "provider": "oidc" } diff --git a/util/Seeder/Seeds/fixtures/presets/wonka-teams-personal-vaults.json b/util/Seeder/Seeds/fixtures/presets/wonka-teams-personal-vaults.json deleted file mode 100644 index 463ba3bcaf..0000000000 --- a/util/Seeder/Seeds/fixtures/presets/wonka-teams-personal-vaults.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "$schema": "../../schemas/preset.schema.json", - "organization": { - "fixture": "wonka-confections", - "planType": "teams-annually", - "seats": 25 - }, - "users": { - "count": 10, - "realisticStatusMix": true - }, - "groups": { - "count": 3 - }, - "collections": { - "count": 5 - }, - "folders": true, - "ciphers": { - "count": 50, - "assignFolders": true - }, - "personalCiphers": { - "countPerUser": 20 - } -} diff --git a/util/Seeder/Seeds/fixtures/presets/wonka-teams-small.json b/util/Seeder/Seeds/fixtures/presets/wonka-teams-small.json index 6d7384eae9..e805409eca 100644 --- a/util/Seeder/Seeds/fixtures/presets/wonka-teams-small.json +++ b/util/Seeder/Seeds/fixtures/presets/wonka-teams-small.json @@ -6,16 +6,21 @@ "seats": 25 }, "users": { - "count": 10, + "count": 25, "realisticStatusMix": true }, "groups": { - "count": 3 + "count": 8 }, "collections": { - "count": 5 + "count": 15 }, + "folders": true, "ciphers": { - "count": 100 + "count": 250, + "assignFolders": true + }, + "personalCiphers": { + "countPerUser": 25 } } diff --git a/util/Seeder/Seeds/fixtures/rosters/enterprise-basic.json b/util/Seeder/Seeds/fixtures/rosters/enterprise-basic.json index 63d37801c5..792170ebdd 100644 --- a/util/Seeder/Seeds/fixtures/rosters/enterprise-basic.json +++ b/util/Seeder/Seeds/fixtures/rosters/enterprise-basic.json @@ -51,13 +51,23 @@ { "name": "Collection-1892038", "groups": [{ "group": "All Members" }] }, { "name": "Collection-1892039", "groups": [{ "group": "All Members" }] }, { "name": "Collection-1892047-No-Access" }, - { "name": "Collection-1892047-View", "groups": [{ "group": "All Members", "readOnly": true }] }, - { "name": "Collection-1892047-Manage", "groups": [{ "group": "All Members", "manage": true }] }, + { + "name": "Collection-1892047-View", + "groups": [{ "group": "All Members", "readOnly": true }] + }, + { + "name": "Collection-1892047-Manage", + "groups": [{ "group": "All Members", "manage": true }] + }, { "name": "Collection-2532597", "groups": [{ "group": "All Members" }] }, { "name": "Collection-1793366", "groups": [{ "group": "All Members" }] }, { "name": "Collection-3925894", "groups": [{ "group": "All Members" }] }, { "name": "Collection-4204903", "groups": [{ "group": "All Members" }] }, - { "name": "Collection-5172094", "externalId": "Collection-5172094", "groups": [{ "group": "All Members" }] }, + { + "name": "Collection-5172094", + "externalId": "Collection-5172094", + "groups": [{ "group": "All Members" }] + }, { "name": "Collection-3392572", "groups": [{ "group": "All Members" }] }, { "name": "Collection-3171087", "groups": [{ "group": "All Members" }] } ] diff --git a/util/Seeder/Seeds/fixtures/rosters/family.json b/util/Seeder/Seeds/fixtures/rosters/family.json new file mode 100644 index 0000000000..c2df191669 --- /dev/null +++ b/util/Seeder/Seeds/fixtures/rosters/family.json @@ -0,0 +1,60 @@ +{ + "$schema": "../../schemas/roster.schema.json", + "users": [ + { "firstName": "Family", "lastName": "Mom", "role": "owner" }, + { "firstName": "Family", "lastName": "Dad", "role": "admin" }, + { "firstName": "Family", "lastName": "Son", "role": "user" }, + { "firstName": "Family", "lastName": "Daughter", "role": "user" }, + { "firstName": "Family", "lastName": "Grandpa", "role": "user" }, + { "firstName": "Family", "lastName": "Grandma", "role": "user" } + ], + "groups": [ + { + "name": "Everyone", + "members": [ + "family.mom", + "family.dad", + "family.son", + "family.daughter", + "family.grandpa", + "family.grandma" + ] + }, + { + "name": "Parents", + "members": ["family.mom", "family.dad"] + }, + { + "name": "Grandparents", + "members": ["family.grandpa", "family.grandma"] + } + ], + "collections": [ + { + "name": "Streaming", + "groups": [{ "group": "Everyone" }] + }, + { + "name": "Banking", + "groups": [{ "group": "Parents", "manage": true }] + }, + { + "name": "Wi-Fi & Home", + "groups": [{ "group": "Everyone" }] + }, + { + "name": "School", + "users": [ + { "user": "family.son" }, + { "user": "family.daughter" } + ] + }, + { + "name": "Medical", + "groups": [ + { "group": "Parents" }, + { "group": "Grandparents" } + ] + } + ] +} diff --git a/util/Seeder/Seeds/fixtures/rosters/policy-org.json b/util/Seeder/Seeds/fixtures/rosters/policy-org.json deleted file mode 100644 index bc92938ef4..0000000000 --- a/util/Seeder/Seeds/fixtures/rosters/policy-org.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "../../schemas/roster.schema.json", - "users": [ - { "firstName": "Policy", "lastName": "Owner", "role": "owner" }, - { "firstName": "Policy", "lastName": "Admin", "role": "admin" }, - { "firstName": "Policy", "lastName": "Custom", "role": "custom" }, - { "firstName": "Policy", "lastName": "User", "role": "user" } - ] -} diff --git a/util/Seeder/Seeds/fixtures/rosters/sso-basic.json b/util/Seeder/Seeds/fixtures/rosters/sso-basic.json deleted file mode 100644 index e2ade019d5..0000000000 --- a/util/Seeder/Seeds/fixtures/rosters/sso-basic.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "$schema": "../../schemas/roster.schema.json", - "users": [ - { "firstName": "Sso", "lastName": "Owner", "role": "owner" }, - { "firstName": "Sso", "lastName": "User", "role": "user" }, - { "firstName": "Sso", "lastName": "Provisioning", "role": "user" } - ] -} diff --git a/util/Seeder/Seeds/fixtures/rosters/starter-team.json b/util/Seeder/Seeds/fixtures/rosters/starter-team.json new file mode 100644 index 0000000000..f7a6567a5b --- /dev/null +++ b/util/Seeder/Seeds/fixtures/rosters/starter-team.json @@ -0,0 +1,46 @@ +{ + "$schema": "../../schemas/roster.schema.json", + "users": [ + { "firstName": "StarterTeam", "lastName": "Owner", "role": "owner" }, + { "firstName": "StarterTeam", "lastName": "Admin", "role": "admin" }, + { "firstName": "StarterTeam", "lastName": "Custom", "role": "custom" }, + { "firstName": "StarterTeam", "lastName": "UserOne", "role": "user" }, + { "firstName": "StarterTeam", "lastName": "UserTwo", "role": "user" }, + { "firstName": "StarterTeam", "lastName": "UserThree", "role": "user" }, + { "firstName": "StarterTeam", "lastName": "UserFour", "role": "user" }, + { "firstName": "StarterTeam", "lastName": "Provisioning", "role": "user" }, + { + "firstName": "StarterTeam", + "lastName": "Mp-Non-Trusted", + "role": "user" + }, + { + "firstName": "StarterTeam", + "lastName": "No-Mp-Non-Trusted", + "role": "user" + } + ], + "groups": [ + { + "name": "Everyone", + "members": [ + "starterteam.owner", + "starterteam.admin", + "starterteam.custom", + "starterteam.userone", + "starterteam.usertwo", + "starterteam.userthree", + "starterteam.userfour", + "starterteam.provisioning", + "starterteam.mp-non-trusted", + "starterteam.no-mp-non-trusted" + ] + } + ], + "collections": [ + { + "name": "Default collection", + "users": [{ "user": "starterteam.no-mp-non-trusted", "manage": true }] + } + ] +} diff --git a/util/Seeder/Seeds/fixtures/rosters/tde-basic.json b/util/Seeder/Seeds/fixtures/rosters/tde-basic.json deleted file mode 100644 index 05ddf80878..0000000000 --- a/util/Seeder/Seeds/fixtures/rosters/tde-basic.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "../../schemas/roster.schema.json", - "users": [ - { "firstName": "Tde", "lastName": "Owner", "role": "owner" }, - { "firstName": "Tde", "lastName": "Mp-Non-Trusted", "role": "user" }, - { "firstName": "Tde", "lastName": "No-Mp-Non-Trusted", "role": "user" } - ], - "collections": [ - { - "name": "Default collection", - "users": [ - { "user": "tde.no-mp-non-trusted", "manage": true } - ] - } - ] -} diff --git a/util/Seeder/Seeds/fixtures/rosters/zero-knowledge-labs.json b/util/Seeder/Seeds/fixtures/rosters/zero-knowledge-labs.json new file mode 100644 index 0000000000..32adcf49bf --- /dev/null +++ b/util/Seeder/Seeds/fixtures/rosters/zero-knowledge-labs.json @@ -0,0 +1,1337 @@ +{ + "$schema": "../../schemas/roster.schema.json", + "users": [ + { "firstName": "Marcus", "lastName": "Chen", "title": "CEO", "role": "owner", "branch": "Leadership", "department": "Executive" }, + { "firstName": "Priya", "lastName": "Narayanan", "title": "CTO", "role": "owner", "branch": "Leadership", "department": "Executive" }, + { "firstName": "Catherine", "lastName": "Okonkwo", "title": "CFO", "role": "owner", "branch": "Leadership", "department": "Executive" }, + { "firstName": "James", "lastName": "Whitfield", "title": "COO", "role": "owner", "branch": "Leadership", "department": "Executive" }, + { "firstName": "Elena", "lastName": "Vasquez", "title": "VP Engineering", "role": "owner", "branch": "Leadership", "department": "Executive" }, + { "firstName": "Robert", "lastName": "Adeyemi", "title": "CISO", "role": "owner", "branch": "Leadership", "department": "Executive" }, + + { "firstName": "Takeshi", "lastName": "Yamamoto", "title": "Principal Architect", "branch": "Engineering", "department": "Architecture" }, + { "firstName": "Ingrid", "lastName": "Bergstrom", "title": "Principal Software Engineer", "branch": "Engineering", "department": "Architecture" }, + { "firstName": "Omar", "lastName": "Farouk", "title": "Principal Software Engineer", "branch": "Engineering", "department": "Architecture" }, + { "firstName": "Lucia", "lastName": "Moreno", "title": "Principal Software Engineer", "branch": "Engineering", "department": "Architecture" }, + { "firstName": "Devon", "lastName": "Chakravarti", "title": "Staff Software Engineer", "branch": "Engineering", "department": "Architecture" }, + { "firstName": "Astrid", "lastName": "Nielsen", "title": "Staff Software Engineer", "branch": "Engineering", "department": "Architecture" }, + { "firstName": "Kofi", "lastName": "Mensah", "title": "Staff Software Engineer", "branch": "Engineering", "department": "Architecture" }, + { "firstName": "Rachel", "lastName": "Petrov", "title": "Staff Software Engineer", "branch": "Engineering", "department": "Architecture" }, + + { "firstName": "Sanjay", "lastName": "Patel", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Avengers" }, + { "firstName": "Yuki", "lastName": "Tanaka", "title": "Scrum Master", "branch": "Engineering", "department": "Avengers" }, + { "firstName": "Maria", "lastName": "Santos", "title": "Product Owner", "branch": "Engineering", "department": "Avengers" }, + { "firstName": "Derek", "lastName": "Osei", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Avengers" }, + { "firstName": "Hannah", "lastName": "Liu", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Avengers" }, + { "firstName": "Viktor", "lastName": "Kozlov", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Avengers" }, + { "firstName": "Amara", "lastName": "Johnson", "title": "Software Engineer", "branch": "Engineering", "department": "Avengers" }, + { "firstName": "Felix", "lastName": "Mueller", "title": "Software Engineer", "branch": "Engineering", "department": "Avengers" }, + { "firstName": "Zara", "lastName": "Ahmad", "title": "Software Engineer", "branch": "Engineering", "department": "Avengers" }, + { "firstName": "Tyler", "lastName": "Brooks", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Avengers" }, + { "firstName": "Nina", "lastName": "Kowalski", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Avengers" }, + + { "firstName": "Fatima", "lastName": "Al-Rashid", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "X-Force" }, + { "firstName": "Bjorn", "lastName": "Eriksen", "title": "Scrum Master", "branch": "Engineering", "department": "X-Force" }, + { "firstName": "Grace", "lastName": "Ndunge", "title": "Product Owner", "branch": "Engineering", "department": "X-Force" }, + { "firstName": "Andrei", "lastName": "Volkov", "title": "Senior Software Engineer", "branch": "Engineering", "department": "X-Force" }, + { "firstName": "Mei-Lin", "lastName": "Wu", "title": "Senior Software Engineer", "branch": "Engineering", "department": "X-Force" }, + { "firstName": "Santiago", "lastName": "Rivera", "title": "Senior Software Engineer", "branch": "Engineering", "department": "X-Force" }, + { "firstName": "Jasper", "lastName": "Thornton", "title": "Software Engineer", "branch": "Engineering", "department": "X-Force" }, + { "firstName": "Aisha", "lastName": "Okafor", "title": "Software Engineer", "branch": "Engineering", "department": "X-Force" }, + { "firstName": "Liam", "lastName": "Brennan", "title": "Software Engineer", "branch": "Engineering", "department": "X-Force" }, + { "firstName": "Priscilla", "lastName": "Huang", "title": "Intern Software Engineer", "branch": "Engineering", "department": "X-Force" }, + { "firstName": "Ravi", "lastName": "Sundaram", "title": "Software Engineer in Test", "branch": "Engineering", "department": "X-Force" }, + + { "firstName": "Patrick", "lastName": "O'Sullivan", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Thunderbolts" }, + { "firstName": "Keiko", "lastName": "Hashimoto", "title": "Scrum Master", "branch": "Engineering", "department": "Thunderbolts" }, + { "firstName": "Daniel", "lastName": "Obi", "title": "Product Owner", "branch": "Engineering", "department": "Thunderbolts" }, + { "firstName": "Natasha", "lastName": "Filipova", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Thunderbolts" }, + { "firstName": "Carlos", "lastName": "Herrera", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Thunderbolts" }, + { "firstName": "Samantha", "lastName": "Park", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Thunderbolts" }, + { "firstName": "Ibrahim", "lastName": "Diallo", "title": "Software Engineer", "branch": "Engineering", "department": "Thunderbolts" }, + { "firstName": "Emma", "lastName": "Johansson", "title": "Software Engineer", "branch": "Engineering", "department": "Thunderbolts" }, + { "firstName": "Raj", "lastName": "Mehta", "title": "Software Engineer", "branch": "Engineering", "department": "Thunderbolts" }, + { "firstName": "Olivia", "lastName": "Chen", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Thunderbolts" }, + { "firstName": "Marco", "lastName": "Rossi", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Thunderbolts" }, + + { "firstName": "Wei", "lastName": "Zhang", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Guardians" }, + { "firstName": "Anna", "lastName": "Kowalczyk", "title": "Scrum Master", "branch": "Engineering", "department": "Guardians" }, + { "firstName": "Trevor", "lastName": "Williams", "title": "Product Owner", "branch": "Engineering", "department": "Guardians" }, + { "firstName": "Olga", "lastName": "Petrova", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Guardians" }, + { "firstName": "Hassan", "lastName": "Mahmoud", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Guardians" }, + { "firstName": "Jennifer", "lastName": "Reyes", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Guardians" }, + { "firstName": "Kwame", "lastName": "Asante", "title": "Software Engineer", "branch": "Engineering", "department": "Guardians" }, + { "firstName": "Mia", "lastName": "Larsson", "title": "Software Engineer", "branch": "Engineering", "department": "Guardians" }, + { "firstName": "Dmitri", "lastName": "Sokolov", "title": "Software Engineer", "branch": "Engineering", "department": "Guardians" }, + { "firstName": "Sophia", "lastName": "Nguyen", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Guardians" }, + { "firstName": "Lucas", "lastName": "Almeida", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Guardians" }, + + { "firstName": "Rashid", "lastName": "Khan", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Defenders" }, + { "firstName": "Elsa", "lastName": "Lindqvist", "title": "Scrum Master", "branch": "Engineering", "department": "Defenders" }, + { "firstName": "Chioma", "lastName": "Eze", "title": "Product Owner", "branch": "Engineering", "department": "Defenders" }, + { "firstName": "Pierre", "lastName": "Dubois", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Defenders" }, + { "firstName": "Yuna", "lastName": "Kim", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Defenders" }, + { "firstName": "Maxwell", "lastName": "Wright", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Defenders" }, + { "firstName": "Fatou", "lastName": "Diop", "title": "Software Engineer", "branch": "Engineering", "department": "Defenders" }, + { "firstName": "Adrian", "lastName": "Stanescu", "title": "Software Engineer", "branch": "Engineering", "department": "Defenders" }, + { "firstName": "Kayla", "lastName": "Morrison", "title": "Software Engineer", "branch": "Engineering", "department": "Defenders" }, + { "firstName": "Ethan", "lastName": "Park", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Defenders" }, + { "firstName": "Shreya", "lastName": "Iyer", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Defenders" }, + + { "firstName": "Nneka", "lastName": "Okonkwo", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Wakanda" }, + { "firstName": "Lars", "lastName": "Andersen", "title": "Scrum Master", "branch": "Engineering", "department": "Wakanda" }, + { "firstName": "Rosa", "lastName": "Martinez", "title": "Product Owner", "branch": "Engineering", "department": "Wakanda" }, + { "firstName": "Hiroshi", "lastName": "Sato", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Wakanda" }, + { "firstName": "Claudia", "lastName": "Fischer", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Wakanda" }, + { "firstName": "David", "lastName": "Mensah", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Wakanda" }, + { "firstName": "Leila", "lastName": "Hosseini", "title": "Software Engineer", "branch": "Engineering", "department": "Wakanda" }, + { "firstName": "Thomas", "lastName": "Olsen", "title": "Software Engineer", "branch": "Engineering", "department": "Wakanda" }, + { "firstName": "Blessing", "lastName": "Adebayo", "title": "Software Engineer", "branch": "Engineering", "department": "Wakanda" }, + { "firstName": "Jamie", "lastName": "Walsh", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Wakanda" }, + { "firstName": "Ananya", "lastName": "Krishnan", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Wakanda" }, + + { "firstName": "Alexander", "lastName": "Petrov", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Asgard" }, + { "firstName": "Sakura", "lastName": "Mori", "title": "Scrum Master", "branch": "Engineering", "department": "Asgard" }, + { "firstName": "Chinedu", "lastName": "Emeka", "title": "Product Owner", "branch": "Engineering", "department": "Asgard" }, + { "firstName": "Eva", "lastName": "Novak", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Asgard" }, + { "firstName": "Richard", "lastName": "Otunga", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Asgard" }, + { "firstName": "Min-Ji", "lastName": "Lee", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Asgard" }, + { "firstName": "Gustaf", "lastName": "Svensson", "title": "Software Engineer", "branch": "Engineering", "department": "Asgard" }, + { "firstName": "Aaliyah", "lastName": "Brown", "title": "Software Engineer", "branch": "Engineering", "department": "Asgard" }, + { "firstName": "Pavel", "lastName": "Dvorak", "title": "Software Engineer", "branch": "Engineering", "department": "Asgard" }, + { "firstName": "Chloe", "lastName": "Williams", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Asgard" }, + { "firstName": "Deepak", "lastName": "Sharma", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Asgard" }, + + { "firstName": "Brigitte", "lastName": "Hoffman", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "S.H.I.E.L.D." }, + { "firstName": "Javier", "lastName": "Castillo", "title": "Scrum Master", "branch": "Engineering", "department": "S.H.I.E.L.D." }, + { "firstName": "Fiona", "lastName": "McGregor", "title": "Product Owner", "branch": "Engineering", "department": "S.H.I.E.L.D." }, + { "firstName": "Nikolai", "lastName": "Volkov", "title": "Senior Software Engineer", "branch": "Engineering", "department": "S.H.I.E.L.D." }, + { "firstName": "Sunita", "lastName": "Reddy", "title": "Senior Software Engineer", "branch": "Engineering", "department": "S.H.I.E.L.D." }, + { "firstName": "Connor", "lastName": "Murphy", "title": "Senior Software Engineer", "branch": "Engineering", "department": "S.H.I.E.L.D." }, + { "firstName": "Youssef", "lastName": "El-Amin", "title": "Software Engineer", "branch": "Engineering", "department": "S.H.I.E.L.D." }, + { "firstName": "Karin", "lastName": "Bergman", "title": "Software Engineer", "branch": "Engineering", "department": "S.H.I.E.L.D." }, + { "firstName": "Tariq", "lastName": "Hassan", "title": "Software Engineer", "branch": "Engineering", "department": "S.H.I.E.L.D." }, + { "firstName": "Lily", "lastName": "Nakamura", "title": "Intern Software Engineer", "branch": "Engineering", "department": "S.H.I.E.L.D." }, + { "firstName": "Roisin", "lastName": "O'Brien", "title": "Software Engineer in Test", "branch": "Engineering", "department": "S.H.I.E.L.D." }, + + { "firstName": "Aditya", "lastName": "Kapoor", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Infinity" }, + { "firstName": "Freya", "lastName": "Johansson", "title": "Scrum Master", "branch": "Engineering", "department": "Infinity" }, + { "firstName": "Binta", "lastName": "Diallo", "title": "Product Owner", "branch": "Engineering", "department": "Infinity" }, + { "firstName": "Ivan", "lastName": "Kovalenko", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Infinity" }, + { "firstName": "Julia", "lastName": "Santos", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Infinity" }, + { "firstName": "Kenneth", "lastName": "Osei", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Infinity" }, + { "firstName": "Hanna", "lastName": "Eriksson", "title": "Software Engineer", "branch": "Engineering", "department": "Infinity" }, + { "firstName": "Moussa", "lastName": "Toure", "title": "Software Engineer", "branch": "Engineering", "department": "Infinity" }, + { "firstName": "Crystal", "lastName": "Zhang", "title": "Software Engineer", "branch": "Engineering", "department": "Infinity" }, + { "firstName": "Leo", "lastName": "Park", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Infinity" }, + { "firstName": "Vladimir", "lastName": "Novak", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Infinity" }, + + { "firstName": "Sarah", "lastName": "Mitchell", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "New Mutants" }, + { "firstName": "Akio", "lastName": "Watanabe", "title": "Scrum Master", "branch": "Engineering", "department": "New Mutants" }, + { "firstName": "Nadia", "lastName": "Benali", "title": "Product Owner", "branch": "Engineering", "department": "New Mutants" }, + { "firstName": "Friedrich", "lastName": "Weber", "title": "Senior Software Engineer", "branch": "Engineering", "department": "New Mutants" }, + { "firstName": "Amira", "lastName": "Khalil", "title": "Senior Software Engineer", "branch": "Engineering", "department": "New Mutants" }, + { "firstName": "Bryan", "lastName": "Torres", "title": "Senior Software Engineer", "branch": "Engineering", "department": "New Mutants" }, + { "firstName": "Sienna", "lastName": "Russo", "title": "Software Engineer", "branch": "Engineering", "department": "New Mutants" }, + { "firstName": "Lars", "lastName": "Hagen", "title": "Software Engineer", "branch": "Engineering", "department": "New Mutants" }, + { "firstName": "Dayo", "lastName": "Ogundimu", "title": "Software Engineer", "branch": "Engineering", "department": "New Mutants" }, + { "firstName": "Mason", "lastName": "Rivera", "title": "Intern Software Engineer", "branch": "Engineering", "department": "New Mutants" }, + { "firstName": "Petra", "lastName": "Kovar", "title": "Software Engineer in Test", "branch": "Engineering", "department": "New Mutants" }, + + { "firstName": "Rebecca", "lastName": "Goldstein", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Fantastic Four" }, + { "firstName": "Hiroki", "lastName": "Suzuki", "title": "Scrum Master", "branch": "Engineering", "department": "Fantastic Four" }, + { "firstName": "Folake", "lastName": "Adewale", "title": "Product Owner", "branch": "Engineering", "department": "Fantastic Four" }, + { "firstName": "Christian", "lastName": "Bach", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Fantastic Four" }, + { "firstName": "Priyanka", "lastName": "Gupta", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Fantastic Four" }, + { "firstName": "Andre", "lastName": "Ferreira", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Fantastic Four" }, + { "firstName": "Ingrid", "lastName": "Dahl", "title": "Software Engineer", "branch": "Engineering", "department": "Fantastic Four" }, + { "firstName": "Rasheed", "lastName": "Thomas", "title": "Software Engineer", "branch": "Engineering", "department": "Fantastic Four" }, + { "firstName": "Luna", "lastName": "Garcia", "title": "Software Engineer", "branch": "Engineering", "department": "Fantastic Four" }, + { "firstName": "Noah", "lastName": "Kim", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Fantastic Four" }, + { "firstName": "Tomoko", "lastName": "Ishikawa", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Fantastic Four" }, + + { "firstName": "Michael", "lastName": "Ochieng", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Excelsior" }, + { "firstName": "Katerina", "lastName": "Novotna", "title": "Scrum Master", "branch": "Engineering", "department": "Excelsior" }, + { "firstName": "Jared", "lastName": "Sullivan", "title": "Product Owner", "branch": "Engineering", "department": "Excelsior" }, + { "firstName": "Svetlana", "lastName": "Kuznetsova", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Excelsior" }, + { "firstName": "Ahmed", "lastName": "Mansour", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Excelsior" }, + { "firstName": "Heather", "lastName": "Douglas", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Excelsior" }, + { "firstName": "Fabio", "lastName": "Costa", "title": "Software Engineer", "branch": "Engineering", "department": "Excelsior" }, + { "firstName": "Ayesha", "lastName": "Malik", "title": "Software Engineer", "branch": "Engineering", "department": "Excelsior" }, + { "firstName": "Erik", "lastName": "Lindberg", "title": "Software Engineer", "branch": "Engineering", "department": "Excelsior" }, + { "firstName": "Zoe", "lastName": "Papadopoulos", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Excelsior" }, + { "firstName": "Mateo", "lastName": "Vargas", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Excelsior" }, + + { "firstName": "Yumiko", "lastName": "Takahashi", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Alpha Flight" }, + { "firstName": "Henrik", "lastName": "Larsen", "title": "Scrum Master", "branch": "Engineering", "department": "Alpha Flight" }, + { "firstName": "Adaeze", "lastName": "Nwachukwu", "title": "Product Owner", "branch": "Engineering", "department": "Alpha Flight" }, + { "firstName": "Mikhail", "lastName": "Popov", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Alpha Flight" }, + { "firstName": "Carmen", "lastName": "Delgado", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Alpha Flight" }, + { "firstName": "Robert", "lastName": "Tan", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Alpha Flight" }, + { "firstName": "Freya", "lastName": "Schmidt", "title": "Software Engineer", "branch": "Engineering", "department": "Alpha Flight" }, + { "firstName": "Oumar", "lastName": "Sy", "title": "Software Engineer", "branch": "Engineering", "department": "Alpha Flight" }, + { "firstName": "Maeve", "lastName": "O'Connor", "title": "Software Engineer", "branch": "Engineering", "department": "Alpha Flight" }, + { "firstName": "Jin-Ho", "lastName": "Lee", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Alpha Flight" }, + { "firstName": "Daniela", "lastName": "Ionescu", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Alpha Flight" }, + + { "firstName": "Benjamin", "lastName": "Okafor", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Midnight Sons" }, + { "firstName": "Lena", "lastName": "Muller", "title": "Scrum Master", "branch": "Engineering", "department": "Midnight Sons" }, + { "firstName": "Vikram", "lastName": "Singh", "title": "Product Owner", "branch": "Engineering", "department": "Midnight Sons" }, + { "firstName": "Tatiana", "lastName": "Romanova", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Midnight Sons" }, + { "firstName": "Jorge", "lastName": "Gutierrez", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Midnight Sons" }, + { "firstName": "Susan", "lastName": "Chen", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Midnight Sons" }, + { "firstName": "Amadou", "lastName": "Bah", "title": "Software Engineer", "branch": "Engineering", "department": "Midnight Sons" }, + { "firstName": "Elise", "lastName": "Dubois", "title": "Software Engineer", "branch": "Engineering", "department": "Midnight Sons" }, + { "firstName": "Naveen", "lastName": "Patel", "title": "Software Engineer", "branch": "Engineering", "department": "Midnight Sons" }, + { "firstName": "Ava", "lastName": "Johansson", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Midnight Sons" }, + { "firstName": "Cristina", "lastName": "Popescu", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Midnight Sons" }, + + { "firstName": "Diana", "lastName": "Vasquez", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Illuminati" }, + { "firstName": "Tomas", "lastName": "Novak", "title": "Scrum Master", "branch": "Engineering", "department": "Illuminati" }, + { "firstName": "Adebola", "lastName": "Ogunlade", "title": "Product Owner", "branch": "Engineering", "department": "Illuminati" }, + { "firstName": "Mikael", "lastName": "Lindstrom", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Illuminati" }, + { "firstName": "Rachael", "lastName": "Otieno", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Illuminati" }, + { "firstName": "Jakub", "lastName": "Kowalski", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Illuminati" }, + { "firstName": "Mariam", "lastName": "Toure", "title": "Software Engineer", "branch": "Engineering", "department": "Illuminati" }, + { "firstName": "Sebastian", "lastName": "Vogel", "title": "Software Engineer", "branch": "Engineering", "department": "Illuminati" }, + { "firstName": "Anita", "lastName": "Desai", "title": "Software Engineer", "branch": "Engineering", "department": "Illuminati" }, + { "firstName": "Caleb", "lastName": "Hernandez", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Illuminati" }, + { "firstName": "Oleg", "lastName": "Ivanov", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Illuminati" }, + + { "firstName": "Jonathan", "lastName": "Edwards", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Power Pack" }, + { "firstName": "Yui", "lastName": "Kimura", "title": "Scrum Master", "branch": "Engineering", "department": "Power Pack" }, + { "firstName": "Precious", "lastName": "Obi", "title": "Product Owner", "branch": "Engineering", "department": "Power Pack" }, + { "firstName": "Henrik", "lastName": "Strand", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Power Pack" }, + { "firstName": "Layla", "lastName": "Hassan", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Power Pack" }, + { "firstName": "Maxwell", "lastName": "Chen", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Power Pack" }, + { "firstName": "Birgit", "lastName": "Fjord", "title": "Software Engineer", "branch": "Engineering", "department": "Power Pack" }, + { "firstName": "Emeka", "lastName": "Nwosu", "title": "Software Engineer", "branch": "Engineering", "department": "Power Pack" }, + { "firstName": "Daniella", "lastName": "Cruz", "title": "Software Engineer", "branch": "Engineering", "department": "Power Pack" }, + { "firstName": "Ryan", "lastName": "Tanaka", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Power Pack" }, + { "firstName": "Arjun", "lastName": "Mehta", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Power Pack" }, + + { "firstName": "Teresa", "lastName": "Rodrigues", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Inhumans" }, + { "firstName": "Anders", "lastName": "Nilsson", "title": "Scrum Master", "branch": "Engineering", "department": "Inhumans" }, + { "firstName": "Kemi", "lastName": "Oladipo", "title": "Product Owner", "branch": "Engineering", "department": "Inhumans" }, + { "firstName": "Franz", "lastName": "Huber", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Inhumans" }, + { "firstName": "Nkechi", "lastName": "Ike", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Inhumans" }, + { "firstName": "Paul", "lastName": "Henderson", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Inhumans" }, + { "firstName": "Maja", "lastName": "Bergstrom", "title": "Software Engineer", "branch": "Engineering", "department": "Inhumans" }, + { "firstName": "Chidi", "lastName": "Okoro", "title": "Software Engineer", "branch": "Engineering", "department": "Inhumans" }, + { "firstName": "Lena", "lastName": "Schultz", "title": "Software Engineer", "branch": "Engineering", "department": "Inhumans" }, + { "firstName": "Kai", "lastName": "Watanabe", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Inhumans" }, + { "firstName": "Sofia", "lastName": "Alexandrova", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Inhumans" }, + + { "firstName": "Vincent", "lastName": "Mensah", "title": "Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Ravagers" }, + { "firstName": "Camille", "lastName": "Laurent", "title": "Scrum Master", "branch": "Engineering", "department": "Ravagers" }, + { "firstName": "Haruto", "lastName": "Nakamura", "title": "Product Owner", "branch": "Engineering", "department": "Ravagers" }, + { "firstName": "Isabella", "lastName": "Costa", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Ravagers" }, + { "firstName": "Kwesi", "lastName": "Boateng", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Ravagers" }, + { "firstName": "Natalia", "lastName": "Sokolova", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Ravagers" }, + { "firstName": "Oscar", "lastName": "Lindgren", "title": "Software Engineer", "branch": "Engineering", "department": "Ravagers" }, + { "firstName": "Zahra", "lastName": "Ahmadi", "title": "Software Engineer", "branch": "Engineering", "department": "Ravagers" }, + { "firstName": "Philippe", "lastName": "Girard", "title": "Software Engineer", "branch": "Engineering", "department": "Ravagers" }, + { "firstName": "Milo", "lastName": "Fitzgerald", "title": "Intern Software Engineer", "branch": "Engineering", "department": "Ravagers" }, + { "firstName": "Eun-Ji", "lastName": "Choi", "title": "Software Engineer in Test", "branch": "Engineering", "department": "Ravagers" }, + + { "firstName": "Malcolm", "lastName": "Sterling", "title": "Security Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Security Engineering" }, + { "firstName": "Yara", "lastName": "Bashir", "title": "Senior AppSec Engineer", "branch": "Engineering", "department": "Security Engineering" }, + { "firstName": "Darius", "lastName": "Wolfe", "title": "Senior AppSec Engineer", "branch": "Engineering", "department": "Security Engineering" }, + { "firstName": "Keiko", "lastName": "Taniguchi", "title": "AppSec Engineer", "branch": "Engineering", "department": "Security Engineering" }, + { "firstName": "Rafael", "lastName": "Dominguez", "title": "AppSec Engineer", "branch": "Engineering", "department": "Security Engineering" }, + { "firstName": "Samira", "lastName": "Haddad", "title": "Senior Penetration Tester", "branch": "Engineering", "department": "Security Engineering" }, + { "firstName": "Tobias", "lastName": "Engel", "title": "Penetration Tester", "branch": "Engineering", "department": "Security Engineering" }, + { "firstName": "Zuri", "lastName": "Mwangi", "title": "Security Researcher", "branch": "Engineering", "department": "Security Engineering" }, + { "firstName": "Aleksei", "lastName": "Volkov", "title": "Security Researcher", "branch": "Engineering", "department": "Security Engineering" }, + { "firstName": "Isla", "lastName": "Reeves", "title": "Security Researcher", "branch": "Engineering", "department": "Security Engineering" }, + + { "firstName": "Rowan", "lastName": "McKenzie", "title": "Platform Engineering Manager", "role": "admin", "branch": "Engineering", "department": "Platform Engineering" }, + { "firstName": "Fumiko", "lastName": "Ota", "title": "Senior Platform Engineer", "branch": "Engineering", "department": "Platform Engineering" }, + { "firstName": "Stefan", "lastName": "Novak", "title": "Senior Platform Engineer", "branch": "Engineering", "department": "Platform Engineering" }, + { "firstName": "Khadija", "lastName": "Osman", "title": "Platform Engineer", "branch": "Engineering", "department": "Platform Engineering" }, + { "firstName": "Brendan", "lastName": "Foley", "title": "Platform Engineer", "branch": "Engineering", "department": "Platform Engineering" }, + { "firstName": "Linh", "lastName": "Tran", "title": "Senior DevEx Engineer", "branch": "Engineering", "department": "Platform Engineering" }, + { "firstName": "Maxwell", "lastName": "Botha", "title": "DevEx Engineer", "branch": "Engineering", "department": "Platform Engineering" }, + { "firstName": "Ines", "lastName": "Ferreira", "title": "DevEx Engineer", "branch": "Engineering", "department": "Platform Engineering" }, + + { "firstName": "Gloria", "lastName": "Hammond", "title": "Director of QA", "role": "admin", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Satoshi", "lastName": "Kimura", "title": "QA Manager - Automation", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Bianca", "lastName": "Moretti", "title": "QA Manager - Manual", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Rajesh", "lastName": "Venkatesh", "title": "Lead QA Engineer", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Fiona", "lastName": "O'Reilly", "title": "Senior QA Engineer", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Kwabena", "lastName": "Owusu", "title": "Senior QA Engineer", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Marta", "lastName": "Kaczmarek", "title": "QA Engineer", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Daisuke", "lastName": "Harada", "title": "QA Engineer", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Abigail", "lastName": "Foster", "title": "QA Engineer", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Mamadou", "lastName": "Camara", "title": "QA Engineer", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Hilde", "lastName": "Brandt", "title": "QA Engineer", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Tariq", "lastName": "Nazari", "title": "QA Engineer", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Siobhan", "lastName": "Kelly", "title": "Senior SDET", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Enrique", "lastName": "Padilla", "title": "Senior SDET", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Chen", "lastName": "Wei", "title": "SDET", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Natalya", "lastName": "Chernov", "title": "SDET", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Oscar", "lastName": "Lindholm", "title": "SDET", "branch": "Engineering", "department": "Quality Assurance" }, + { "firstName": "Priya", "lastName": "Balasubramanian", "title": "SDET", "branch": "Engineering", "department": "Quality Assurance" }, + + { "firstName": "Curtis", "lastName": "Washington", "title": "SRE Manager", "role": "admin", "branch": "Engineering", "department": "SRE" }, + { "firstName": "Annika", "lastName": "Holm", "title": "Senior SRE", "branch": "Engineering", "department": "SRE" }, + { "firstName": "Jamal", "lastName": "Baptiste", "title": "Senior SRE", "branch": "Engineering", "department": "SRE" }, + { "firstName": "Miriam", "lastName": "Schulz", "title": "Senior SRE", "branch": "Engineering", "department": "SRE" }, + { "firstName": "Renzo", "lastName": "Bianchi", "title": "SRE", "branch": "Engineering", "department": "SRE" }, + { "firstName": "Thandi", "lastName": "Ndlovu", "title": "SRE", "branch": "Engineering", "department": "SRE" }, + { "firstName": "Erik", "lastName": "Gustafsson", "title": "SRE", "branch": "Engineering", "department": "SRE" }, + { "firstName": "Amelia", "lastName": "Watts", "title": "SRE", "branch": "Engineering", "department": "SRE" }, + { "firstName": "Kosei", "lastName": "Ishida", "title": "CloudOps Engineer", "branch": "Engineering", "department": "SRE" }, + { "firstName": "Blessing", "lastName": "Chibuike", "title": "CloudOps Engineer", "branch": "Engineering", "department": "SRE" }, + { "firstName": "Sven", "lastName": "Kristiansen", "title": "CloudOps Engineer", "branch": "Engineering", "department": "SRE" }, + { "firstName": "Paloma", "lastName": "Ruiz", "title": "CloudOps Engineer", "branch": "Engineering", "department": "SRE" }, + + { "firstName": "Gregory", "lastName": "Hampton", "title": "Senior Manager, Build & Release", "role": "admin", "branch": "Engineering", "department": "Build & Release" }, + { "firstName": "Yoko", "lastName": "Fujimoto", "title": "Staff Build Release Engineer", "branch": "Engineering", "department": "Build & Release" }, + { "firstName": "Marcel", "lastName": "Dubois", "title": "Staff Build Release Engineer", "branch": "Engineering", "department": "Build & Release" }, + { "firstName": "Chinara", "lastName": "Abiodun", "title": "Senior Build Release Engineer", "branch": "Engineering", "department": "Build & Release" }, + { "firstName": "Nikolaj", "lastName": "Petersen", "title": "Build Release Engineer", "branch": "Engineering", "department": "Build & Release" }, + { "firstName": "Sadie", "lastName": "Gallagher", "title": "Build Release Engineer", "branch": "Engineering", "department": "Build & Release" }, + { "firstName": "Emre", "lastName": "Yilmaz", "title": "Build Release Engineer", "branch": "Engineering", "department": "Build & Release" }, + { "firstName": "Lenka", "lastName": "Horakova", "title": "Build Release Engineer", "branch": "Engineering", "department": "Build & Release" }, + + { "firstName": "Victoria", "lastName": "Chang", "title": "Senior Director of Product", "role": "admin", "branch": "Product", "department": "Product" }, + { "firstName": "Idris", "lastName": "Bello", "title": "Group Product Manager", "branch": "Product", "department": "Product" }, + { "firstName": "Alina", "lastName": "Federova", "title": "Group Product Manager", "branch": "Product", "department": "Product" }, + { "firstName": "Marcus", "lastName": "Lindgren", "title": "Senior Product Owner", "branch": "Product", "department": "Product" }, + { "firstName": "Nkeiru", "lastName": "Anya", "title": "Senior Product Owner", "branch": "Product", "department": "Product" }, + { "firstName": "Hugh", "lastName": "MacIntyre", "title": "Senior Product Owner", "branch": "Product", "department": "Product" }, + { "firstName": "Catalina", "lastName": "Herrera", "title": "Product Owner", "branch": "Product", "department": "Product" }, + { "firstName": "Ryota", "lastName": "Shimizu", "title": "Product Owner", "branch": "Product", "department": "Product" }, + + { "firstName": "Madeleine", "lastName": "Girard", "title": "Director of Design", "role": "admin", "branch": "Product", "department": "Design" }, + { "firstName": "Kenzo", "lastName": "Aoki", "title": "Senior Product Designer", "branch": "Product", "department": "Design" }, + { "firstName": "Saskia", "lastName": "van-der-Berg", "title": "Senior Product Designer", "branch": "Product", "department": "Design" }, + { "firstName": "Tobenna", "lastName": "Okafor", "title": "Product Designer", "branch": "Product", "department": "Design" }, + { "firstName": "Eloise", "lastName": "Martin", "title": "Design Engineer", "branch": "Product", "department": "Design" }, + { "firstName": "Ashwin", "lastName": "Nair", "title": "Design Engineer", "branch": "Product", "department": "Design" }, + { "firstName": "Frederica", "lastName": "Lang", "title": "Content Designer", "branch": "Product", "department": "Design" }, + { "firstName": "Joon", "lastName": "Park", "title": "Content Designer", "branch": "Product", "department": "Design" }, + + { "firstName": "Adriana", "lastName": "Popescu", "title": "Data Science Lead", "role": "admin", "branch": "Engineering", "department": "Data Science" }, + { "firstName": "Yiannis", "lastName": "Papadakis", "title": "Senior Data Scientist", "branch": "Engineering", "department": "Data Science" }, + { "firstName": "Mei", "lastName": "Zhao", "title": "Data Scientist", "branch": "Engineering", "department": "Data Science" }, + { "firstName": "Olumide", "lastName": "Adebayo", "title": "Senior ML Engineer", "branch": "Engineering", "department": "Data Science" }, + { "firstName": "Katarina", "lastName": "Novak", "title": "ML Engineer", "branch": "Engineering", "department": "Data Science" }, + { "firstName": "Finn", "lastName": "Callahan", "title": "ML Engineer", "branch": "Engineering", "department": "Data Science" }, + + { "firstName": "Raymond", "lastName": "Park", "title": "Head of Information Security", "role": "admin", "branch": "Operations", "department": "InfoSec & IT" }, + { "firstName": "Farida", "lastName": "Saleh", "title": "IT Security Engineer", "branch": "Operations", "department": "InfoSec & IT" }, + { "firstName": "Brendan", "lastName": "Walsh", "title": "IT Security Engineer", "branch": "Operations", "department": "InfoSec & IT" }, + { "firstName": "Akiko", "lastName": "Morimoto", "title": "Senior IT Admin", "branch": "Operations", "department": "InfoSec & IT" }, + { "firstName": "Desmond", "lastName": "Clarke", "title": "IT Admin", "branch": "Operations", "department": "InfoSec & IT" }, + { "firstName": "Vera", "lastName": "Sokolova", "title": "IT Admin", "branch": "Operations", "department": "InfoSec & IT" }, + { "firstName": "Kenneth", "lastName": "Owusu", "title": "IT Manager", "branch": "Operations", "department": "InfoSec & IT" }, + { "firstName": "Miranda", "lastName": "Lopes", "title": "IT Support Specialist", "branch": "Operations", "department": "InfoSec & IT" }, + + { "firstName": "Sandra", "lastName": "Okonkwo", "title": "Senior Technical Program Manager", "branch": "Engineering", "department": "TPM" }, + { "firstName": "Philip", "lastName": "Strauss", "title": "Technical Program Manager", "branch": "Engineering", "department": "TPM" }, + { "firstName": "Noor", "lastName": "Abbasi", "title": "Technical Program Manager", "branch": "Engineering", "department": "TPM" }, + { "firstName": "Grant", "lastName": "Morrison", "title": "Technical Program Manager", "branch": "Engineering", "department": "TPM" }, + + { "firstName": "Danielle", "lastName": "Moreau", "title": "VP People Operations", "role": "admin", "branch": "Operations", "department": "People Operations" }, + { "firstName": "Elijah", "lastName": "Osei", "title": "People Operations Lead", "branch": "Operations", "department": "People Operations" }, + { "firstName": "Kirsten", "lastName": "Arndt", "title": "People Operations Lead", "branch": "Operations", "department": "People Operations" }, + { "firstName": "Matias", "lastName": "Silva", "title": "HR Business Partner", "branch": "Operations", "department": "People Operations" }, + { "firstName": "Deborah", "lastName": "Nyong'o", "title": "HR Business Partner", "branch": "Operations", "department": "People Operations" }, + { "firstName": "Trevor", "lastName": "Kim", "title": "Senior Recruiter", "branch": "Operations", "department": "People Operations" }, + { "firstName": "Joanna", "lastName": "Wisniewska", "title": "Recruiter", "branch": "Operations", "department": "People Operations" }, + { "firstName": "Hamza", "lastName": "El-Khoury", "title": "Recruiter", "branch": "Operations", "department": "People Operations" }, + + { "firstName": "Leonard", "lastName": "Strauss", "title": "Director of Finance", "role": "admin", "branch": "Operations", "department": "Finance" }, + { "firstName": "Chidinma", "lastName": "Obi", "title": "FP&A Director", "branch": "Operations", "department": "Finance" }, + { "firstName": "Margot", "lastName": "Lefevre", "title": "Senior Accountant", "branch": "Operations", "department": "Finance" }, + { "firstName": "Yoshiko", "lastName": "Tanaka", "title": "Senior Accountant", "branch": "Operations", "department": "Finance" }, + { "firstName": "Darren", "lastName": "Frost", "title": "Accountant", "branch": "Operations", "department": "Finance" }, + { "firstName": "Luciana", "lastName": "Barbosa", "title": "Accountant", "branch": "Operations", "department": "Finance" }, + + { "firstName": "Arthur", "lastName": "Kensington", "title": "General Counsel", "role": "admin", "branch": "Operations", "department": "Legal" }, + { "firstName": "Habiba", "lastName": "Omar", "title": "Senior Legal Counsel", "branch": "Operations", "department": "Legal" }, + { "firstName": "Jean-Pierre", "lastName": "Renaud", "title": "Legal Counsel", "branch": "Operations", "department": "Legal" }, + { "firstName": "Mirabel", "lastName": "Okonkwo", "title": "Paralegal", "branch": "Operations", "department": "Legal" }, + { "firstName": "Stavros", "lastName": "Papadimitriou", "title": "Paralegal", "branch": "Operations", "department": "Legal" }, + + { "firstName": "Evelyn", "lastName": "Hartmann", "title": "Chief Compliance Officer", "role": "admin", "branch": "Operations", "department": "Compliance" }, + { "firstName": "Rashid", "lastName": "Al-Farsi", "title": "Senior Compliance Analyst", "branch": "Operations", "department": "Compliance" }, + { "firstName": "Moira", "lastName": "Flanagan", "title": "Compliance Analyst", "branch": "Operations", "department": "Compliance" }, + { "firstName": "Takuya", "lastName": "Endo", "title": "Risk Analyst", "branch": "Operations", "department": "Compliance" }, + { "firstName": "Grace", "lastName": "Nyambura", "title": "Risk Analyst", "branch": "Operations", "department": "Compliance" }, + + { "firstName": "Vanessa", "lastName": "Cole", "title": "VP Customer Success", "role": "admin", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Bernard", "lastName": "Leclerc", "title": "CS Manager - Enterprise", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Chiamaka", "lastName": "Okafor", "title": "CS Manager - Mid-Market", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Wesley", "lastName": "Chambers", "title": "Senior CS Engineer", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Fumie", "lastName": "Watanabe", "title": "Senior CS Engineer", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Randall", "lastName": "Pierce", "title": "CS Engineer", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Adwoa", "lastName": "Mensah", "title": "CS Engineer", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Fritz", "lastName": "Baumgartner", "title": "CS Engineer", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Mariana", "lastName": "Ortiz", "title": "CS Specialist", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Duncan", "lastName": "Fraser", "title": "CS Specialist", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Yewande", "lastName": "Afolabi", "title": "CS Specialist", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Clyde", "lastName": "Patterson", "title": "CS Specialist", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Anja", "lastName": "Richter", "title": "CS Specialist", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Riku", "lastName": "Saito", "title": "CS Specialist", "branch": "Go-to-Market", "department": "Customer Success" }, + { "firstName": "Natalie", "lastName": "Barrett", "title": "CS Specialist", "branch": "Go-to-Market", "department": "Customer Success" }, + + { "firstName": "Harrison", "lastName": "Blake", "title": "Sales Director", "role": "admin", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Simone", "lastName": "Beaumont", "title": "Enterprise Account Executive", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Dorian", "lastName": "Achebe", "title": "Enterprise Account Executive", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Katelyn", "lastName": "Ross", "title": "Enterprise Account Executive", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Vladimir", "lastName": "Kamenev", "title": "Mid-Market Account Executive", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Jasmine", "lastName": "Oduya", "title": "Mid-Market Account Executive", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Barrett", "lastName": "Sullivan", "title": "Mid-Market Account Executive", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Alondra", "lastName": "Cervantes", "title": "Sales Development Representative", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Niall", "lastName": "O'Donovan", "title": "Sales Development Representative", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Aisha", "lastName": "Jallow", "title": "Sales Development Representative", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Cedric", "lastName": "Thibault", "title": "Sales Development Representative", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Megan", "lastName": "Holloway", "title": "Sales Development Representative", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Olu", "lastName": "Adeyinka", "title": "Sales Operations Analyst", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Phoebe", "lastName": "Gallagher", "title": "Sales Operations Analyst", "branch": "Go-to-Market", "department": "Sales" }, + { "firstName": "Tadashi", "lastName": "Ogawa", "title": "Sales Operations Manager", "branch": "Go-to-Market", "department": "Sales" }, + + { "firstName": "Celeste", "lastName": "Dupont", "title": "Marketing Director", "role": "admin", "branch": "Go-to-Market", "department": "Marketing" }, + { "firstName": "Kwesi", "lastName": "Appiah", "title": "Growth Marketing Manager", "branch": "Go-to-Market", "department": "Marketing" }, + { "firstName": "Ilona", "lastName": "Szabo", "title": "Growth Marketing Specialist", "branch": "Go-to-Market", "department": "Marketing" }, + { "firstName": "Derek", "lastName": "Chambers", "title": "Product Marketing Manager", "branch": "Go-to-Market", "department": "Marketing" }, + { "firstName": "Natsuki", "lastName": "Yamada", "title": "Product Marketing Specialist", "branch": "Go-to-Market", "department": "Marketing" }, + { "firstName": "Orlando", "lastName": "Reyes", "title": "Technical Marketing Manager", "branch": "Go-to-Market", "department": "Marketing" }, + { "firstName": "Bridget", "lastName": "Flanagan", "title": "Content Marketing Manager", "branch": "Go-to-Market", "department": "Marketing" }, + { "firstName": "Davi", "lastName": "Santos", "title": "Content Marketing Specialist", "branch": "Go-to-Market", "department": "Marketing" }, + { "firstName": "Lydia", "lastName": "Osei", "title": "Social Media Manager", "branch": "Go-to-Market", "department": "Marketing" }, + { "firstName": "Costas", "lastName": "Nikolaou", "title": "Marketing Operations Analyst", "branch": "Go-to-Market", "department": "Marketing" }, + + { "firstName": "Margaret", "lastName": "Sullivan", "title": "Technical Writing Manager", "role": "admin", "branch": "Product", "department": "Technical Writing" }, + { "firstName": "Rahul", "lastName": "Deshmukh", "title": "Senior Technical Writer", "branch": "Product", "department": "Technical Writing" }, + { "firstName": "Astrid", "lastName": "Eriksen", "title": "Senior Technical Writer", "branch": "Product", "department": "Technical Writing" }, + { "firstName": "Oluwaseun", "lastName": "Adeniyi", "title": "Technical Writer", "branch": "Product", "department": "Technical Writing" }, + { "firstName": "Carmen", "lastName": "Vidal", "title": "Technical Writer", "branch": "Product", "department": "Technical Writing" }, + + { "firstName": "Franklin", "lastName": "Osei-Bonsu", "title": "Solutions Engineering Manager", "role": "admin", "branch": "Go-to-Market", "department": "Solutions Engineering" }, + { "firstName": "Hana", "lastName": "Kato", "title": "Senior Solutions Engineer", "branch": "Go-to-Market", "department": "Solutions Engineering" }, + { "firstName": "Vladimir", "lastName": "Kravchenko", "title": "Senior Solutions Engineer", "branch": "Go-to-Market", "department": "Solutions Engineering" }, + { "firstName": "Destiny", "lastName": "Okafor", "title": "Solutions Engineer", "branch": "Go-to-Market", "department": "Solutions Engineering" }, + { "firstName": "Lachlan", "lastName": "McPherson", "title": "Solutions Engineer", "branch": "Go-to-Market", "department": "Solutions Engineering" }, + { "firstName": "Elif", "lastName": "Demir", "title": "Solutions Engineer", "branch": "Go-to-Market", "department": "Solutions Engineering" }, + + { "firstName": "Xavier", "lastName": "Fontaine", "title": "Head of Innovation", "role": "admin", "branch": "Engineering", "department": "Innovation Lab" }, + { "firstName": "Anika", "lastName": "Joshi", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Innovation Lab" }, + { "firstName": "Dimitri", "lastName": "Alexandrov", "title": "Senior Software Engineer", "branch": "Engineering", "department": "Innovation Lab" }, + { "firstName": "Solange", "lastName": "Mbeki", "title": "Research Engineer", "branch": "Engineering", "department": "Innovation Lab" }, + { "firstName": "Eoin", "lastName": "Gallagher", "title": "Research Engineer", "branch": "Engineering", "department": "Innovation Lab" }, + + { "firstName": "Nolan", "lastName": "Fischer", "title": "Internal Tools Lead", "role": "admin", "branch": "Engineering", "department": "Internal Tools" }, + { "firstName": "Ayumi", "lastName": "Kobayashi", "title": "Full-Stack Engineer", "branch": "Engineering", "department": "Internal Tools" }, + { "firstName": "Thabo", "lastName": "Dlamini", "title": "Full-Stack Engineer", "branch": "Engineering", "department": "Internal Tools" }, + { "firstName": "Gemma", "lastName": "Whitaker", "title": "Full-Stack Engineer", "branch": "Engineering", "department": "Internal Tools" } + ], + "groups": [ + { + "name": "Team Avengers", + "members": [ + "sanjay.patel", "yuki.tanaka", "maria.santos", "derek.osei", "hannah.liu", + "viktor.kozlov", "amara.johnson", "felix.mueller", "zara.ahmad", + "tyler.brooks", "nina.kowalski" + ] + }, + { + "name": "Team X-Force", + "members": [ + "fatima.al-rashid", "bjorn.eriksen", "grace.ndunge", "andrei.volkov", "mei-lin.wu", + "santiago.rivera", "jasper.thornton", "aisha.okafor", "liam.brennan", + "priscilla.huang", "ravi.sundaram" + ] + }, + { + "name": "Team Thunderbolts", + "members": [ + "patrick.o'sullivan", "keiko.hashimoto", "daniel.obi", "natasha.filipova", "carlos.herrera", + "samantha.park", "ibrahim.diallo", "emma.johansson", "raj.mehta", + "olivia.chen", "marco.rossi" + ] + }, + { + "name": "Team Guardians", + "members": [ + "wei.zhang", "anna.kowalczyk", "trevor.williams", "olga.petrova", "hassan.mahmoud", + "jennifer.reyes", "kwame.asante", "mia.larsson", "dmitri.sokolov", + "sophia.nguyen", "lucas.almeida" + ] + }, + { + "name": "Team Defenders", + "members": [ + "rashid.khan", "elsa.lindqvist", "chioma.eze", "pierre.dubois", "yuna.kim", + "maxwell.wright", "fatou.diop", "adrian.stanescu", "kayla.morrison", + "ethan.park", "shreya.iyer" + ] + }, + { + "name": "Team Wakanda", + "members": [ + "nneka.okonkwo", "lars.andersen", "rosa.martinez", "hiroshi.sato", "claudia.fischer", + "david.mensah", "leila.hosseini", "thomas.olsen", "blessing.adebayo", + "jamie.walsh", "ananya.krishnan" + ] + }, + { + "name": "Team Asgard", + "members": [ + "alexander.petrov", "sakura.mori", "chinedu.emeka", "eva.novak", "richard.otunga", + "min-ji.lee", "gustaf.svensson", "aaliyah.brown", "pavel.dvorak", + "chloe.williams", "deepak.sharma" + ] + }, + { + "name": "Team S.H.I.E.L.D.", + "members": [ + "brigitte.hoffman", "javier.castillo", "fiona.mcgregor", "nikolai.volkov", "sunita.reddy", + "connor.murphy", "youssef.el-amin", "karin.bergman", "tariq.hassan", + "lily.nakamura", "roisin.o'brien" + ] + }, + { + "name": "Team Infinity", + "members": [ + "aditya.kapoor", "freya.johansson", "binta.diallo", "ivan.kovalenko", "julia.santos", + "kenneth.osei", "hanna.eriksson", "moussa.toure", "crystal.zhang", + "leo.park", "vladimir.novak" + ] + }, + { + "name": "Team New Mutants", + "members": [ + "sarah.mitchell", "akio.watanabe", "nadia.benali", "friedrich.weber", "amira.khalil", + "bryan.torres", "sienna.russo", "lars.hagen", "dayo.ogundimu", + "mason.rivera", "petra.kovar" + ] + }, + { + "name": "Team Fantastic Four", + "members": [ + "rebecca.goldstein", "hiroki.suzuki", "folake.adewale", "christian.bach", "priyanka.gupta", + "andre.ferreira", "ingrid.dahl", "rasheed.thomas", "luna.garcia", + "noah.kim", "tomoko.ishikawa" + ] + }, + { + "name": "Team Excelsior", + "members": [ + "michael.ochieng", "katerina.novotna", "jared.sullivan", "svetlana.kuznetsova", "ahmed.mansour", + "heather.douglas", "fabio.costa", "ayesha.malik", "erik.lindberg", + "zoe.papadopoulos", "mateo.vargas" + ] + }, + { + "name": "Team Alpha Flight", + "members": [ + "yumiko.takahashi", "henrik.larsen", "adaeze.nwachukwu", "mikhail.popov", "carmen.delgado", + "robert.tan", "freya.schmidt", "oumar.sy", "maeve.o'connor", + "jin-ho.lee", "daniela.ionescu" + ] + }, + { + "name": "Team Midnight Sons", + "members": [ + "benjamin.okafor", "lena.muller", "vikram.singh", "tatiana.romanova", "jorge.gutierrez", + "susan.chen", "amadou.bah", "elise.dubois", "naveen.patel", + "ava.johansson", "cristina.popescu" + ] + }, + { + "name": "Team Illuminati", + "members": [ + "diana.vasquez", "tomas.novak", "adebola.ogunlade", "mikael.lindstrom", "rachael.otieno", + "jakub.kowalski", "mariam.toure", "sebastian.vogel", "anita.desai", + "caleb.hernandez", "oleg.ivanov" + ] + }, + { + "name": "Team Power Pack", + "members": [ + "jonathan.edwards", "yui.kimura", "precious.obi", "henrik.strand", "layla.hassan", + "maxwell.chen", "birgit.fjord", "emeka.nwosu", "daniella.cruz", + "ryan.tanaka", "arjun.mehta" + ] + }, + { + "name": "Team Inhumans", + "members": [ + "teresa.rodrigues", "anders.nilsson", "kemi.oladipo", "franz.huber", "nkechi.ike", + "paul.henderson", "maja.bergstrom", "chidi.okoro", "lena.schultz", + "kai.watanabe", "sofia.alexandrova" + ] + }, + { + "name": "Team Ravagers", + "members": [ + "vincent.mensah", "camille.laurent", "haruto.nakamura", "isabella.costa", "kwesi.boateng", + "natalia.sokolova", "oscar.lindgren", "zahra.ahmadi", "philippe.girard", + "milo.fitzgerald", "eun-ji.choi" + ] + }, + { + "name": "Architecture", + "members": [ + "takeshi.yamamoto", "ingrid.bergstrom", "omar.farouk", "lucia.moreno", + "devon.chakravarti", "astrid.nielsen", "kofi.mensah", "rachel.petrov" + ] + }, + { + "name": "Security Engineering", + "members": [ + "malcolm.sterling", "yara.bashir", "darius.wolfe", "keiko.taniguchi", + "rafael.dominguez", "samira.haddad", "tobias.engel", "zuri.mwangi", + "aleksei.volkov", "isla.reeves" + ] + }, + { + "name": "Platform Engineering", + "members": [ + "rowan.mckenzie", "fumiko.ota", "stefan.novak", "khadija.osman", + "brendan.foley", "linh.tran", "maxwell.botha", "ines.ferreira" + ] + }, + { + "name": "Quality Assurance", + "members": [ + "gloria.hammond", "satoshi.kimura", "bianca.moretti", "rajesh.venkatesh", + "fiona.o'reilly", "kwabena.owusu", "marta.kaczmarek", "daisuke.harada", + "abigail.foster", "mamadou.camara", "hilde.brandt", "tariq.nazari", + "siobhan.kelly", "enrique.padilla", "chen.wei", "natalya.chernov", + "oscar.lindholm", "priya.balasubramanian" + ] + }, + { + "name": "SRE", + "members": [ + "curtis.washington", "annika.holm", "jamal.baptiste", "miriam.schulz", + "renzo.bianchi", "thandi.ndlovu", "erik.gustafsson", "amelia.watts", + "kosei.ishida", "blessing.chibuike", "sven.kristiansen", "paloma.ruiz" + ] + }, + { + "name": "Build & Release", + "members": [ + "gregory.hampton", "yoko.fujimoto", "marcel.dubois", "chinara.abiodun", + "nikolaj.petersen", "sadie.gallagher", "emre.yilmaz", "lenka.horakova" + ] + }, + { + "name": "Product", + "members": [ + "victoria.chang", "idris.bello", "alina.federova", "marcus.lindgren", + "nkeiru.anya", "hugh.macintyre", "catalina.herrera", "ryota.shimizu" + ] + }, + { + "name": "Design", + "members": [ + "madeleine.girard", "kenzo.aoki", "saskia.van-der-berg", "tobenna.okafor", + "eloise.martin", "ashwin.nair", "frederica.lang", "joon.park" + ] + }, + { + "name": "Data Science", + "members": [ + "adriana.popescu", "yiannis.papadakis", "mei.zhao", + "olumide.adebayo", "katarina.novak", "finn.callahan" + ] + }, + { + "name": "InfoSec & IT", + "members": [ + "raymond.park", "farida.saleh", "brendan.walsh", "akiko.morimoto", + "desmond.clarke", "vera.sokolova", "kenneth.owusu", "miranda.lopes" + ] + }, + { + "name": "People Operations", + "members": [ + "danielle.moreau", "elijah.osei", "kirsten.arndt", "matias.silva", + "deborah.nyong'o", "trevor.kim", "joanna.wisniewska", "hamza.el-khoury" + ] + }, + { + "name": "Finance", + "members": [ + "leonard.strauss", "chidinma.obi", "margot.lefevre", + "yoshiko.tanaka", "darren.frost", "luciana.barbosa" + ] + }, + { + "name": "Legal", + "members": [ + "arthur.kensington", "habiba.omar", "jean-pierre.renaud", + "mirabel.okonkwo", "stavros.papadimitriou" + ] + }, + { + "name": "Compliance", + "members": [ + "evelyn.hartmann", "rashid.al-farsi", "moira.flanagan", + "takuya.endo", "grace.nyambura" + ] + }, + { + "name": "Customer Success", + "members": [ + "vanessa.cole", "bernard.leclerc", "chiamaka.okafor", "wesley.chambers", + "fumie.watanabe", "randall.pierce", "adwoa.mensah", "fritz.baumgartner", + "mariana.ortiz", "duncan.fraser", "yewande.afolabi", "clyde.patterson", + "anja.richter", "riku.saito", "natalie.barrett" + ] + }, + { + "name": "Sales", + "members": [ + "harrison.blake", "simone.beaumont", "dorian.achebe", "katelyn.ross", + "vladimir.kamenev", "jasmine.oduya", "barrett.sullivan", "alondra.cervantes", + "niall.o'donovan", "aisha.jallow", "cedric.thibault", "megan.holloway", + "olu.adeyinka", "phoebe.gallagher", "tadashi.ogawa" + ] + }, + { + "name": "Marketing", + "members": [ + "celeste.dupont", "kwesi.appiah", "ilona.szabo", "derek.chambers", + "natsuki.yamada", "orlando.reyes", "bridget.flanagan", "davi.santos", + "lydia.osei", "costas.nikolaou" + ] + }, + { + "name": "All Engineering", + "members": [ + "sanjay.patel", "yuki.tanaka", "maria.santos", "derek.osei", "hannah.liu", + "viktor.kozlov", "amara.johnson", "felix.mueller", "zara.ahmad", + "tyler.brooks", "nina.kowalski", + "fatima.al-rashid", "bjorn.eriksen", "grace.ndunge", "andrei.volkov", "mei-lin.wu", + "santiago.rivera", "jasper.thornton", "aisha.okafor", "liam.brennan", + "priscilla.huang", "ravi.sundaram", + "patrick.o'sullivan", "keiko.hashimoto", "daniel.obi", "natasha.filipova", "carlos.herrera", + "samantha.park", "ibrahim.diallo", "emma.johansson", "raj.mehta", + "olivia.chen", "marco.rossi", + "wei.zhang", "anna.kowalczyk", "trevor.williams", "olga.petrova", "hassan.mahmoud", + "jennifer.reyes", "kwame.asante", "mia.larsson", "dmitri.sokolov", + "sophia.nguyen", "lucas.almeida", + "rashid.khan", "elsa.lindqvist", "chioma.eze", "pierre.dubois", "yuna.kim", + "maxwell.wright", "fatou.diop", "adrian.stanescu", "kayla.morrison", + "ethan.park", "shreya.iyer", + "nneka.okonkwo", "lars.andersen", "rosa.martinez", "hiroshi.sato", "claudia.fischer", + "david.mensah", "leila.hosseini", "thomas.olsen", "blessing.adebayo", + "jamie.walsh", "ananya.krishnan", + "alexander.petrov", "sakura.mori", "chinedu.emeka", "eva.novak", "richard.otunga", + "min-ji.lee", "gustaf.svensson", "aaliyah.brown", "pavel.dvorak", + "chloe.williams", "deepak.sharma", + "brigitte.hoffman", "javier.castillo", "fiona.mcgregor", "nikolai.volkov", "sunita.reddy", + "connor.murphy", "youssef.el-amin", "karin.bergman", "tariq.hassan", + "lily.nakamura", "roisin.o'brien", + "aditya.kapoor", "freya.johansson", "binta.diallo", "ivan.kovalenko", "julia.santos", + "kenneth.osei", "hanna.eriksson", "moussa.toure", "crystal.zhang", + "leo.park", "vladimir.novak", + "sarah.mitchell", "akio.watanabe", "nadia.benali", "friedrich.weber", "amira.khalil", + "bryan.torres", "sienna.russo", "lars.hagen", "dayo.ogundimu", + "mason.rivera", "petra.kovar", + "rebecca.goldstein", "hiroki.suzuki", "folake.adewale", "christian.bach", "priyanka.gupta", + "andre.ferreira", "ingrid.dahl", "rasheed.thomas", "luna.garcia", + "noah.kim", "tomoko.ishikawa", + "michael.ochieng", "katerina.novotna", "jared.sullivan", "svetlana.kuznetsova", "ahmed.mansour", + "heather.douglas", "fabio.costa", "ayesha.malik", "erik.lindberg", + "zoe.papadopoulos", "mateo.vargas", + "yumiko.takahashi", "henrik.larsen", "adaeze.nwachukwu", "mikhail.popov", "carmen.delgado", + "robert.tan", "freya.schmidt", "oumar.sy", "maeve.o'connor", + "jin-ho.lee", "daniela.ionescu", + "benjamin.okafor", "lena.muller", "vikram.singh", "tatiana.romanova", "jorge.gutierrez", + "susan.chen", "amadou.bah", "elise.dubois", "naveen.patel", + "ava.johansson", "cristina.popescu", + "diana.vasquez", "tomas.novak", "adebola.ogunlade", "mikael.lindstrom", "rachael.otieno", + "jakub.kowalski", "mariam.toure", "sebastian.vogel", "anita.desai", + "caleb.hernandez", "oleg.ivanov", + "jonathan.edwards", "yui.kimura", "precious.obi", "henrik.strand", "layla.hassan", + "maxwell.chen", "birgit.fjord", "emeka.nwosu", "daniella.cruz", + "ryan.tanaka", "arjun.mehta", + "teresa.rodrigues", "anders.nilsson", "kemi.oladipo", "franz.huber", "nkechi.ike", + "paul.henderson", "maja.bergstrom", "chidi.okoro", "lena.schultz", + "kai.watanabe", "sofia.alexandrova", + "vincent.mensah", "camille.laurent", "haruto.nakamura", "isabella.costa", "kwesi.boateng", + "natalia.sokolova", "oscar.lindgren", "zahra.ahmadi", "philippe.girard", + "milo.fitzgerald", "eun-ji.choi", + "takeshi.yamamoto", "ingrid.bergstrom", "omar.farouk", "lucia.moreno", + "devon.chakravarti", "astrid.nielsen", "kofi.mensah", "rachel.petrov", + "malcolm.sterling", "yara.bashir", "darius.wolfe", "keiko.taniguchi", + "rafael.dominguez", "samira.haddad", "tobias.engel", "zuri.mwangi", + "aleksei.volkov", "isla.reeves", + "rowan.mckenzie", "fumiko.ota", "stefan.novak", "khadija.osman", + "brendan.foley", "linh.tran", "maxwell.botha", "ines.ferreira", + "gloria.hammond", "satoshi.kimura", "bianca.moretti", "rajesh.venkatesh", + "fiona.o'reilly", "kwabena.owusu", "marta.kaczmarek", "daisuke.harada", + "abigail.foster", "mamadou.camara", "hilde.brandt", "tariq.nazari", + "siobhan.kelly", "enrique.padilla", "chen.wei", "natalya.chernov", + "oscar.lindholm", "priya.balasubramanian", + "curtis.washington", "annika.holm", "jamal.baptiste", "miriam.schulz", + "renzo.bianchi", "thandi.ndlovu", "erik.gustafsson", "amelia.watts", + "kosei.ishida", "blessing.chibuike", "sven.kristiansen", "paloma.ruiz", + "gregory.hampton", "yoko.fujimoto", "marcel.dubois", "chinara.abiodun", + "nikolaj.petersen", "sadie.gallagher", "emre.yilmaz", "lenka.horakova", + "adriana.popescu", "yiannis.papadakis", "mei.zhao", + "olumide.adebayo", "katarina.novak", "finn.callahan", + "xavier.fontaine", "anika.joshi", "dimitri.alexandrov", + "solange.mbeki", "eoin.gallagher", + "nolan.fischer", "ayumi.kobayashi", "thabo.dlamini", "gemma.whitaker", + "sandra.okonkwo", "philip.strauss", "noor.abbasi", "grant.morrison" + ] + }, + { + "name": "Engineering Managers", + "members": [ + "sanjay.patel", "fatima.al-rashid", "patrick.o'sullivan", "wei.zhang", + "rashid.khan", "nneka.okonkwo", "alexander.petrov", "brigitte.hoffman", + "aditya.kapoor", "sarah.mitchell", "rebecca.goldstein", "michael.ochieng", + "yumiko.takahashi", "benjamin.okafor", "diana.vasquez", "jonathan.edwards", + "teresa.rodrigues", "vincent.mensah" + ] + }, + { + "name": "Technical Writing", + "members": [ + "margaret.sullivan", "rahul.deshmukh", "astrid.eriksen", + "oluwaseun.adeniyi", "carmen.vidal" + ] + }, + { + "name": "Solutions Engineering", + "members": [ + "franklin.osei-bonsu", "hana.kato", "vladimir.kravchenko", + "destiny.okafor", "lachlan.mcpherson", "elif.demir" + ] + }, + { + "name": "Innovation Lab", + "members": [ + "xavier.fontaine", "anika.joshi", "dimitri.alexandrov", + "solange.mbeki", "eoin.gallagher" + ] + }, + { + "name": "Internal Tools", + "members": [ + "nolan.fischer", "ayumi.kobayashi", "thabo.dlamini", "gemma.whitaker" + ] + }, + { + "name": "TPM", + "members": [ + "sandra.okonkwo", "philip.strauss", "noor.abbasi", "grant.morrison" + ] + } + ], + "collections": [ + { + "name": "Engineering/Avengers", + "groups": [ + { "group": "Team Avengers" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "sanjay.patel", "manage": true }, + { "user": "tyler.brooks", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/X-Force", + "groups": [ + { "group": "Team X-Force" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "fatima.al-rashid", "manage": true }, + { "user": "priscilla.huang", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Thunderbolts", + "groups": [ + { "group": "Team Thunderbolts" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "patrick.o'sullivan", "manage": true }, + { "user": "olivia.chen", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Guardians", + "groups": [ + { "group": "Team Guardians" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "wei.zhang", "manage": true }, + { "user": "sophia.nguyen", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Defenders", + "groups": [ + { "group": "Team Defenders" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "rashid.khan", "manage": true }, + { "user": "ethan.park", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Wakanda", + "groups": [ + { "group": "Team Wakanda" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "nneka.okonkwo", "manage": true }, + { "user": "jamie.walsh", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Asgard", + "groups": [ + { "group": "Team Asgard" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "alexander.petrov", "manage": true }, + { "user": "chloe.williams", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/S.H.I.E.L.D.", + "groups": [ + { "group": "Team S.H.I.E.L.D." }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "brigitte.hoffman", "manage": true }, + { "user": "lily.nakamura", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Infinity", + "groups": [ + { "group": "Team Infinity" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "aditya.kapoor", "manage": true }, + { "user": "leo.park", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/New Mutants", + "groups": [ + { "group": "Team New Mutants" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "sarah.mitchell", "manage": true }, + { "user": "mason.rivera", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Fantastic Four", + "groups": [ + { "group": "Team Fantastic Four" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "rebecca.goldstein", "manage": true }, + { "user": "noah.kim", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Excelsior", + "groups": [ + { "group": "Team Excelsior" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "michael.ochieng", "manage": true }, + { "user": "zoe.papadopoulos", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Alpha Flight", + "groups": [ + { "group": "Team Alpha Flight" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "yumiko.takahashi", "manage": true }, + { "user": "jin-ho.lee", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Midnight Sons", + "groups": [ + { "group": "Team Midnight Sons" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "benjamin.okafor", "manage": true }, + { "user": "ava.johansson", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Illuminati", + "groups": [ + { "group": "Team Illuminati" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "diana.vasquez", "manage": true }, + { "user": "caleb.hernandez", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Power Pack", + "groups": [ + { "group": "Team Power Pack" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "jonathan.edwards", "manage": true }, + { "user": "ryan.tanaka", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Inhumans", + "groups": [ + { "group": "Team Inhumans" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "teresa.rodrigues", "manage": true }, + { "user": "kai.watanabe", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "Engineering/Ravagers", + "groups": [ + { "group": "Team Ravagers" }, + { "group": "Architecture", "readOnly": true } + ], + "users": [ + { "user": "vincent.mensah", "manage": true }, + { "user": "milo.fitzgerald", "readOnly": true, "hidePasswords": true } + ] + }, + { + "name": "QA/Automation", + "groups": [ + { "group": "Quality Assurance" } + ], + "users": [ + { "user": "gloria.hammond", "manage": true } + ] + }, + { + "name": "QA/Manual Testing", + "groups": [ + { "group": "Quality Assurance" } + ], + "users": [ + { "user": "gloria.hammond", "manage": true } + ] + }, + { + "name": "QA/Performance", + "groups": [ + { "group": "Quality Assurance" } + ], + "users": [ + { "user": "gloria.hammond", "manage": true } + ] + }, + { + "name": "Executive/Reports", + "users": [ + { "user": "marcus.chen", "manage": true }, + { "user": "priya.narayanan", "manage": true }, + { "user": "catherine.okonkwo", "manage": true }, + { "user": "james.whitfield", "manage": true }, + { "user": "elena.vasquez", "manage": true }, + { "user": "robert.adeyemi", "manage": true } + ] + }, + { + "name": "Executive/Financial", + "groups": [ + { "group": "Finance", "readOnly": true } + ], + "users": [ + { "user": "marcus.chen", "manage": true }, + { "user": "priya.narayanan", "manage": true }, + { "user": "catherine.okonkwo", "manage": true }, + { "user": "james.whitfield", "manage": true }, + { "user": "elena.vasquez", "manage": true }, + { "user": "robert.adeyemi", "manage": true } + ] + }, + { + "name": "Sales/Enterprise", + "groups": [ + { "group": "Sales" } + ], + "users": [ + { "user": "harrison.blake", "manage": true } + ] + }, + { + "name": "Sales/Mid-Market", + "groups": [ + { "group": "Sales" } + ], + "users": [ + { "user": "harrison.blake", "manage": true } + ] + }, + { + "name": "Sales/Development", + "groups": [ + { "group": "Sales" } + ], + "users": [ + { "user": "harrison.blake", "manage": true } + ] + }, + { + "name": "Marketing/Growth", + "groups": [ + { "group": "Marketing" } + ], + "users": [ + { "user": "celeste.dupont", "manage": true } + ] + }, + { + "name": "Marketing/Product", + "groups": [ + { "group": "Marketing" } + ], + "users": [ + { "user": "celeste.dupont", "manage": true } + ] + }, + { + "name": "Marketing/Content", + "groups": [ + { "group": "Marketing" } + ], + "users": [ + { "user": "celeste.dupont", "manage": true } + ] + }, + { + "name": "Customer Success/Engineering", + "groups": [ + { "group": "Customer Success" } + ], + "users": [ + { "user": "vanessa.cole", "manage": true } + ] + }, + { + "name": "Customer Success/Support", + "groups": [ + { "group": "Customer Success" } + ], + "users": [ + { "user": "vanessa.cole", "manage": true } + ] + }, + { + "name": "Cloud Infrastructure", + "groups": [ + { "group": "SRE" }, + { "group": "Team Guardians", "readOnly": true }, + { "group": "Team S.H.I.E.L.D.", "readOnly": true } + ], + "users": [ + { "user": "curtis.washington", "manage": true } + ] + }, + { + "name": "CI/CD Pipelines", + "groups": [ + { "group": "Build & Release" }, + { "group": "Team S.H.I.E.L.D." }, + { "group": "Platform Engineering", "readOnly": true } + ], + "users": [ + { "user": "gregory.hampton", "manage": true } + ] + }, + { + "name": "Architecture/Technical Standards", + "groups": [ + { "group": "Architecture", "manage": true } + ], + "users": [ + { "user": "elena.vasquez", "manage": true } + ] + }, + { + "name": "Security Credentials", + "groups": [ + { "group": "Security Engineering", "manage": true } + ], + "users": [ + { "user": "robert.adeyemi", "readOnly": true } + ] + }, + { + "name": "Production Access", + "groups": [ + { "group": "SRE" }, + { "group": "Engineering Managers", "readOnly": true } + ], + "users": [ + { "user": "curtis.washington", "manage": true }, + { "user": "elena.vasquez", "readOnly": true } + ] + }, + { + "name": "Vendor Licenses", + "groups": [ + { "group": "Finance", "manage": true }, + { "group": "Legal", "readOnly": true } + ] + }, + { + "name": "HR Systems", + "groups": [ + { "group": "People Operations", "manage": true } + ] + }, + { + "name": "Benefits Portal", + "groups": [ + { "group": "People Operations", "manage": true } + ] + }, + { + "name": "Legal Documents", + "groups": [ + { "group": "Legal", "manage": true }, + { "group": "Compliance", "readOnly": true } + ] + }, + { + "name": "Compliance Policies", + "groups": [ + { "group": "Compliance", "manage": true }, + { "group": "Legal", "readOnly": true }, + { "group": "All Engineering", "readOnly": true } + ] + }, + { + "name": "Regulatory Filings", + "groups": [ + { "group": "Compliance", "manage": true } + ] + }, + { + "name": "Marketing Assets", + "groups": [ + { "group": "Marketing" } + ], + "users": [ + { "user": "celeste.dupont", "manage": true } + ] + }, + { + "name": "Sales Playbooks", + "groups": [ + { "group": "Sales" } + ], + "users": [ + { "user": "harrison.blake", "manage": true } + ] + }, + { + "name": "Customer Success Tools", + "groups": [ + { "group": "Customer Success" } + ], + "users": [ + { "user": "vanessa.cole", "manage": true } + ] + }, + { + "name": "Onboarding", + "groups": [ + { "group": "People Operations", "manage": true }, + { "group": "All Engineering", "readOnly": true } + ] + }, + { + "name": "Environment Setup", + "groups": [ + { "group": "All Engineering", "readOnly": true }, + { "group": "Platform Engineering", "manage": true } + ] + }, + { + "name": "Shared API Keys", + "groups": [ + { "group": "Platform Engineering", "manage": true }, + { "group": "All Engineering", "readOnly": true } + ] + }, + { + "name": "Data Science Notebooks", + "groups": [ + { "group": "Data Science" } + ], + "users": [ + { "user": "adriana.popescu", "manage": true } + ] + }, + { + "name": "Innovation Lab", + "groups": [ + { "group": "Innovation Lab" } + ], + "users": [ + { "user": "xavier.fontaine", "manage": true } + ] + }, + { + "name": "Internal Tools", + "groups": [ + { "group": "Internal Tools" } + ], + "users": [ + { "user": "nolan.fischer", "manage": true } + ] + }, + { + "name": "Pen Test Reports", + "groups": [ + { "group": "Security Engineering", "manage": true } + ], + "users": [ + { "user": "robert.adeyemi", "readOnly": true } + ] + }, + { + "name": "Incident Postmortems", + "groups": [ + { "group": "SRE", "manage": true }, + { "group": "All Engineering", "readOnly": true } + ] + } + ] +} diff --git a/util/Seeder/Seeds/templates/cipher.template.json b/util/Seeder/Seeds/templates/cipher.template.json deleted file mode 100644 index 92c2019ffd..0000000000 --- a/util/Seeder/Seeds/templates/cipher.template.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "$schema": "../schemas/cipher.schema.json", - "items": [ - { - "type": "login", - "name": "Example Login", - "favorite": true, - "reprompt": 0, - "login": { - "username": "user@example.com", - "password": "ChangeMe123!", - "totp": "otpauth://totp/Example:user?secret=JBSWY3DPEHPK3PXP", - "uris": [ - { - "uri": "https://example.com/login", - "match": "domain" - } - ] - }, - "fields": [ - { - "name": "Recovery Code", - "value": "ABC-123-XYZ", - "type": "hidden" - }, - { - "name": "Linked Username", - "type": "linked", - "linkedId": 100 - } - ], - "passwordHistory": [ - { - "password": "OldPassword1!", - "lastUsedDate": "2024-01-15T00:00:00.000Z" - } - ] - }, - { - "type": "card", - "name": "Example Card", - "card": { - "cardholderName": "Jane Doe", - "brand": "Visa", - "number": "4111111111111111", - "expMonth": "12", - "expYear": "2030", - "code": "123" - } - }, - { - "type": "identity", - "name": "Example Identity", - "identity": { - "firstName": "Jane", - "lastName": "Doe", - "email": "jane.doe@example.com", - "address1": "123 Main St", - "city": "Anytown", - "state": "CA", - "postalCode": "90210", - "country": "US" - } - }, - { - "type": "secureNote", - "name": "Example Secure Note", - "notes": "This is a secure note with sensitive information." - }, - { - "type": "sshKey", - "name": "Example SSH Key", - "reprompt": 1, - "sshKey": { - "privateKey": "-----BEGIN OPENSSH PRIVATE KEY-----\n...\n-----END OPENSSH PRIVATE KEY-----\n", - "publicKey": "ssh-ed25519 AAAAC3...", - "keyFingerprint": "SHA256:..." - } - } - ] -} diff --git a/util/Seeder/Seeds/templates/organization.template.json b/util/Seeder/Seeds/templates/organization.template.json deleted file mode 100644 index 85f682e23c..0000000000 --- a/util/Seeder/Seeds/templates/organization.template.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "../schemas/organization.schema.json", - "name": "Acme Corporation", - "domain": "acme.example.com", - "seats": 10 -} diff --git a/util/Seeder/Seeds/templates/preset.template.json b/util/Seeder/Seeds/templates/preset.template.json deleted file mode 100644 index 1765993d9f..0000000000 --- a/util/Seeder/Seeds/templates/preset.template.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "../schemas/preset.schema.json", - "organization": { - "name": "Acme Corporation", - "domain": "acme.example.com", - "seats": 50, - "planType": "enterprise-annually" - }, - "roster": { - "fixture": "my-roster-fixture" - }, - "ciphers": { - "fixture": "my-cipher-fixture" - }, - "policies": { - "enableAll": true, - "except": ["requireSso"] - } -} diff --git a/util/Seeder/Seeds/templates/roster.template.json b/util/Seeder/Seeds/templates/roster.template.json deleted file mode 100644 index 88ffc9a884..0000000000 --- a/util/Seeder/Seeds/templates/roster.template.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "$schema": "../schemas/roster.schema.json", - "users": [ - { - "firstName": "Alice", - "lastName": "Admin", - "title": "Administrator", - "role": "admin", - "branch": "Headquarters", - "department": "IT" - }, - { - "firstName": "Bob", - "lastName": "User", - "title": "Developer", - "role": "user", - "status": "confirmed", - "branch": "Headquarters", - "department": "Engineering" - }, - { - "firstName": "Dave", - "lastName": "Invited", - "role": "user", - "status": "invited", - "email": "dave.custom-email@external.com" - }, - { - "firstName": "Carol", - "lastName": "Manager", - "title": "Engineering Manager", - "role": "admin", - "branch": "Headquarters", - "department": "Engineering" - } - ], - "groups": [ - { - "name": "Administrators", - "members": [ - "alice.admin", - "carol.manager" - ] - }, - { - "name": "Engineering Team", - "externalId": "eng-team-001", - "members": [ - "bob.user", - "carol.manager" - ] - } - ], - "collections": [ - { - "name": "Company Shared", - "groups": [ - { - "group": "Administrators", - "readOnly": false, - "hidePasswords": false, - "manage": true - } - ], - "users": [ - { - "user": "alice.admin", - "readOnly": false, - "hidePasswords": false, - "manage": true - } - ] - }, - { - "name": "Engineering/Development", - "externalId": "eng-dev-collection", - "groups": [ - { - "group": "Engineering Team", - "readOnly": false, - "hidePasswords": false, - "manage": false - } - ] - } - ] -} diff --git a/util/SeederUtility/README.md b/util/SeederUtility/README.md index cde949bf5f..7c99c9044c 100644 --- a/util/SeederUtility/README.md +++ b/util/SeederUtility/README.md @@ -19,10 +19,10 @@ dotnet run -- [options] ```bash # 100 users -dotnet run -- organization -n MyOrgNoCiphers -u 100 -d myorg-no-ciphers.com +dotnet run -- organization -n MyOrgNoCiphers -u 100 -d myorg-no-ciphers.example # 10,000 users for load testing -dotnet run -- organization -n LargeOrgNoCiphers -u 10000 -d large-org-no-ciphers.test +dotnet run -- organization -n LargeOrgNoCiphers -u 10000 -d large-org-no-ciphers.example ``` ### `seed` - Fixture-Based Seeding @@ -49,33 +49,33 @@ dotnet run -- seed --preset dunder-mifflin-enterprise-full --password "MyTestPas ```bash # Tiny org — quick sanity check -dotnet run -- vault-organization -n SmallOrg -d small.test -u 3 -c 10 -g 5 -o Traditional -m +dotnet run -- vault-organization -n SmallOrg -d small.example -u 3 -c 10 -g 5 -o Traditional -m # Mid-size Traditional org with realistic status mix -dotnet run -- vault-organization -n MidOrg -d mid.test -u 50 -c 1000 -g 15 -o Traditional -m +dotnet run -- vault-organization -n MidOrg -d mid.example -u 50 -c 1000 -g 15 -o Traditional -m # Mid-size with dense cipher-to-user ratio -dotnet run -- vault-organization -n DenseOrg -d dense.test -u 75 -c 650 -g 20 -o Traditional -m +dotnet run -- vault-organization -n DenseOrg -d dense.example -u 75 -c 650 -g 20 -o Traditional -m # Large Modern org -dotnet run -- vault-organization -n LargeOrg -d large.test -u 500 -c 10000 -g 85 -o Modern -m +dotnet run -- vault-organization -n LargeOrg -d large.example -u 500 -c 10000 -g 85 -o Modern -m # Stress test — massive Spotify-style org -dotnet run -- vault-organization -n StressOrg -d stress.test -u 8000 -c 100000 -g 125 -o Spotify -m +dotnet run -- vault-organization -n StressOrg -d stress.example -u 8000 -c 100000 -g 125 -o Spotify -m # Regional data variants -dotnet run -- vault-organization -n EuropeOrg -d europe.test -u 10 -c 100 -g 5 --region Europe -dotnet run -- vault-organization -n ApacOrg -d apac.test -u 17 -c 600 -g 12 --region AsiaPacific +dotnet run -- vault-organization -n EuropeOrg -d europe.example -u 10 -c 100 -g 5 --region Europe +dotnet run -- vault-organization -n ApacOrg -d apac.example -u 17 -c 600 -g 12 --region AsiaPacific # With ID mangling for test isolation (prevents collisions with existing data) -dotnet run -- vault-organization -n IsolatedOrg -d isolated.test -u 5 -c 25 -g 4 -o Spotify --mangle +dotnet run -- vault-organization -n IsolatedOrg -d isolated.example -u 5 -c 25 -g 4 -o Spotify --mangle # With custom password for all accounts -dotnet run -- vault-organization -n CustomPwOrg -d custom-password-05.test -u 10 -c 100 -g 3 --password "MyTestPassword1" --plan-type teams-annually +dotnet run -- vault-organization -n CustomPwOrg -d custom-password-05.example -u 10 -c 100 -g 3 --password "MyTestPassword1" --plan-type teams-annually # Free plan org (limited to 2 seats, 2 collections) -dotnet run -- vault-organization -n FreeOrg -d free.test -u 1 -c 10 -g 1 --plan-type free +dotnet run -- vault-organization -n FreeOrg -d free.example -u 1 -c 10 -g 1 --plan-type free # Teams plan org -dotnet run -- vault-organization -n TeamsOrg -d teams.test -u 20 -c 200 -g 5 --plan-type teams-annually +dotnet run -- vault-organization -n TeamsOrg -d teams.example -u 20 -c 200 -g 5 --plan-type teams-annually ```