Home Mac app guides Seed Studio GUI

Seed Studio GUI

Last updated on Jul 12, 2026

Purpose

Seed Studio generates deterministic Firestore seed data from schemas/templates, stores seed snapshots, and compares generated snapshots with current emulator data for drift.

Flow

  1. Select target project/database.
  2. Define or choose a schema/template.
  3. Configure deterministic seed options.
  4. Generate preview data.
  5. Review snapshot output and logs.
  6. Apply the seed to a Firestore emulator with confirmation.
  7. Later, compare original snapshot values against current emulator data for drift.

Outputs

  • TABLE: generated records, snapshot rows, or drift rows
  • JSON: seed template, generated payloads, snapshots, and drift details
  • LOGS: generation, validation, emulator apply, and readback logs

Snapshot and Drift

Seed snapshots record generated values so teams can compare original fixture data with current Firestore documents. Drift output should identify unchanged, changed, missing, and extra fields/documents where the service can classify them.

Use snapshots as review evidence, not just generated fixtures. A snapshot should make the target collection paths, deterministic seed options, generated document IDs, and expected field values visible before any apply operation begins.

Drift comparison is useful after manual testing or shared emulator sessions. It helps identify which records still match the seed, which were edited during the test, and which expected documents are missing from the current emulator target.

Current app-test evidence covers the schema-editor and preview state used by the GUI. The editor can compose generated fields, structured nested maps, static template values, document ID templates, and count, then apply through the task queue to a real Firestore emulator and read the generated documents back. Changing the deterministic seed changes the generated snapshot digest and document rows, and returning to the same seed restores the same preview. Apply Snapshot and Apply Partial now share an explicit overwrite toggle; document ID templates no longer infer overwrite automatically, and project switching clears the overwrite choice with the live-write confirmation. Reset + Reapply remains an emulator-only action that always logs overwrite and reset intent. CLI integration coverage also proves emulator-backed apply, partial apply, and drift. Live seed apply remains open.

Safety

  • Seed apply is a Firestore write and is Pro-gated.
  • Template file persistence is Pro-gated.
  • Production seed apply requires explicit confirmation.
  • Emulator apply operations are task-backed and expose overwrite/reset behavior before enqueue.
  • Live seed apply remains unclaimed until approved live verification proves disposable writes and cleanup.

Source Anchors

  • Sources/FirestructApp/Features/SeedStudio/UI/SeedStudioView.swift
  • Sources/FirestructApp/Features/SeedStudio/Services/AppModel+SeedStudioActions.swift
  • Sources/FirestructApp/Features/SeedStudio/Services/AppModel+SeedStudioPersistenceAndGeneration.swift
  • Sources/FirestructCore/SeedStudioService.swift
  • Sources/FirestructCore/SeedStudioService+GenerationUtilities.swift