Files
George Karr a25ae3ddfc Adding initial tool - dibble the tapir for seeding data (#46122)
## Overview

`dibble` is a one-stop CLI for seeding a Fleet server with test data —
users, teams, policies, reports, labels, scripts, MDM profiles,
software, secrets, CAs, and vulns — replacing ~8 ad-hoc seeding tools
with a single binary.

It makes it easy to:
- **Spin up a populated dev/test server in one command** — `dibble all`
plants everything with sensible, idempotent defaults.
- **Skip the flag-memorization** — running `dibble` with no args
launches an interactive wizard that prompts for Fleet URL, API token,
theme, and which entities to seed, and offers to save the config to
`~/.dibble.yaml`.
- **Seed individual entity types** — `dibble users`, `dibble teams`,
`dibble policies`, etc., when you only need one slice.
- **Get themed, recognizable test data** — pick a theme (hitchhikers,
tng, lotr, ghibli, parksrec, …) so seeded names are easy to eyeball in
the UI.

Hosts are intentionally out of scope — `cmd/osquery-perf` still owns
that. `dibble hosts` is a thin convenience wrapper that picks a fleet,
fetches its enroll secret, and prints/runs the osquery-perf invocation
for you.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Dibble: a CLI tool to seed realistic test data, including an
interactive wizard and subcommands for
teams/users/software/policies/scripts/reports/profiles/labels/activities/enroll-secrets/hosts/vulns,
plus theme-driven “cas” and “ping”.
* Theme system: multiple curated themes to generate consistent seeded
identities, policies, software, labels, and scripts.
* **Chores**
* Ignored the built dibble binary and added a Makefile build target to
compile the dibble tool.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-17 11:07:05 -05:00

45 lines
1.3 KiB
Go

package themes
func init() {
Register(Theme{
Name: "cosmere",
Display: "Brandon Sanderson's Cosmere",
Domain: "cosmere.test",
Users: []Person{
{"Kaladin", "Stormblessed", "kaladin"},
{"Shallan", "Davar", "shallan"},
{"Dalinar", "Kholin", "dalinar"},
{"Vin", "", "vin"},
{"Kelsier", "", "kelsier"},
{"Sazed", "", "sazed"},
{"Wax", "Ladrian", "wax"},
{"Wayne", "", "wayne"},
{"Hoid", "", "hoid"},
{"Lift", "", "lift"},
},
Teams: []string{
"Bridge Four", "Survivors of the Final Empire", "Knights Radiant",
"Worldsingers", "Ghostbloods", "Skybreakers", "Mistborn",
},
Policies: []Named{
{"Stormlight reserve check", "Spheres dun → noncompliant"},
{"Journey before destination", "Process maturity policy"},
{"No metal in cabinets", "Allomantic safety"},
{"Honor the oaths", "Audit log integrity"},
},
Software: []Named{
{"Stormlight Manager", "Bind to highstorms only"},
{"Allomantic Burn Console", "Eight basic metals"},
{"Shardplate Diagnostics", "Pre-flight checks"},
},
Labels: []string{
"windrunner-eligible", "mistborn-active",
"radiant-aspirant", "ghostblood-affiliated",
},
Scripts: []Named{
{"swear-the-oaths.sh", "Idempotent — second-ideal-aware"},
{"burn-pewter.ps1", "Windows variant for Allomancers"},
},
})
}