Home Mac app guides Project Registry GUI

Project Registry GUI

Last updated on May 07, 2026

Purpose

Project Registry stores every Firebase target Firestruct can operate on. The GUI uses it for project linking, selection, emulator configuration, account metadata, read-only mode, color tags, Firestore database selection, and module-specific configuration.

Project Linking

Users can link projects through the project sheet from the sidebar.

Supported project sources:

  • Google OAuth account discovery
  • Service Account JSON
  • Firebase CLI credentials detected on the machine
  • Local emulator manual setup
  • Local emulator discovery after app startup

Stored project fields include:

  • display name
  • Firebase project ID
  • environment (emulator, development, production)
  • read-only flag
  • emulator host and ports for Firestore/Auth/Storage
  • selected Firestore database ID
  • project color tag
  • optional local workspace path
  • module-specific settings such as Auth user collection mapping, push token mapping, and migration collection

Sidebar Behavior

  • The selected project row is highlighted.
  • Rows show name, Firebase project ID, selected Firestore database, environment, emulator endpoint when present, and read-only status.
  • The project color tag helps distinguish multiple connected projects.
  • Removing a linked project only removes local metadata; it does not delete Firebase data.

Multiple Firestore Databases

The registry can discover, persist, select, and refresh Firestore database IDs for a linked project. Module queries and writes use the selected database.

Safety

  • Read-only projects block writes and destructive workflows across modules.
  • Environment is shown in module headers and mutation dialogs.
  • Production targets require explicit confirmation for mutations and deploys.

Source Anchors

  • Sources/FirestructCore/ProjectRegistry.swift
  • Sources/FirestructCore/ProjectRegistry+Stores.swift
  • Sources/FirestructCore/ProjectRegistry+WorkspaceServices.swift
  • Sources/FirestructCore/ProjectRegistry+Migrations.swift
  • Sources/FirestructCore/SQLiteProjectStore.swift
  • Sources/FirestructCore/FirestoreDatabaseDiscoveryService.swift
  • Sources/FirestructApp/App/UI/ProjectLinkSheetView.swift
  • Sources/FirestructApp/App/UI/SidebarView.swift