brainfry

Infrastructure Diagram

Based on the Terraform infrastructure files.

flowchart TD
  %% Main project setup
  GCP["Google Cloud Project"] --> FBP["Firebase Project"]
  GCP --> GAE["Google App Engine"]

  %% Firebase Web App
  FBP --> WebApp["Firebase Web App"]
  WebApp --> AppConfig["Web App Config"]

  %% Firestore
  FBP --> Firestore["Firestore Database"]
  Firestore --> BackupSchedule["Daily Backup Schedule"]
  Firestore --> Categories["Initial Data Categories"]
  Categories --> Cat1["General Knowledge"]
  Categories --> Cat2["Arts & Entertainment"]
  Categories --> Cat3["Science & Nature"]
  Categories --> Cat4["History"]
  Categories --> Cat5["People & Places"]
  Categories --> Cat6["Sports & Leisure"]

  %% Storage
  GAE --> DefaultBucket["Default Storage Bucket"]
  DefaultBucket --> FBStorage["Firebase Storage Bucket"]

  %% Authentication
  FBP --> Auth["Identity Platform Config"]
  Auth --> EmailAuth["Email Authentication"]
  Auth --> Domains["Authorized Domains"]

  %% App Check
  FBP --> ReCaptcha["reCAPTCHA Enterprise Key"]
  ReCaptcha --> AppCheck["App Check Config"]

  %% Budget
  GCP --> Budget["Billing Budget"]

  %% APIs - Vertical layout
  GCP --> EnabledAPIs
  subgraph EnabledAPIs["Enabled APIs"]
    direction TB
    API1["Firebase API"] --- API2["ServiceUsage API"]
    API2 --- API3["Firestore API"]
    API3 --- API4["Firebase Rules API"]
    API4 --- API5["Firebase Storage API"]
    API5 --- API6["Storage API"]
    API6 --- API7["Identity Toolkit API"]
    API7 --- API8["reCAPTCHA Enterprise API"]
    API8 --- API9["Firebase App Check API"]
    API9 --- API10["Billing Budgets API"]
  end

  %% Styling
  classDef google fill:#4285F4,color:white
  classDef firebase fill:#FFCA28,color:black
  classDef storage fill:#34A853,color:white
  classDef auth fill:#EA4335,color:white
  classDef firestore fill:#039BE5,color:white
  classDef appcheck fill:#673AB7,color:white
  classDef budget fill:#F57C00,color:white

  class GCP,GAE google
  class FBP,WebApp,AppConfig firebase
  class Firestore,BackupSchedule,Categories,Cat1,Cat2,Cat3,Cat4,Cat5,Cat6 firestore
  class DefaultBucket,FBStorage storage
  class Auth,EmailAuth,Domains auth
  class ReCaptcha,AppCheck appcheck
  class Budget budget