Skip to content

Instantly share code, notes, and snippets.

@petergi
Created March 10, 2026 17:25
Show Gist options
  • Select an option

  • Save petergi/5c83d9f0f41dcdc6c6bfa07a3eaf1e0d to your computer and use it in GitHub Desktop.

Select an option

Save petergi/5c83d9f0f41dcdc6c6bfa07a3eaf1e0d to your computer and use it in GitHub Desktop.
erDiagram
  USERS ||--o{ USER_ROLES : assigns
  USERS ||--o{ PROJECTS : owns
  USERS ||--o{ TASKS : assigned
  USERS ||--o{ AUDIT_LOGS : acts
  ROLES ||--o{ USER_ROLES : grants
  PROJECTS ||--o{ TASKS : contains
  PROJECTS ||--o{ PROJECT_VIEWS : configures
  PROJECTS ||--o{ AUTOMATION_FLOWS : drives
  PROJECTS ||--o{ ANALYTICS_DASHBOARDS : reports
  TASKS ||--o{ TASK_DEPENDENCIES : depends
  AUTOMATION_FLOWS ||--o{ AUTOMATION_RULES : defines
  AUTOMATION_FLOWS ||--o{ AUTOMATION_RUNS : executes
  ANALYTICS_DASHBOARDS ||--o{ ANALYTICS_WIDGETS : renders
  ANALYTICS_DASHBOARDS ||--o{ ANALYTICS_SNAPSHOTS : caches
  INTEGRATIONS ||--o{ SYNC_JOBS : schedules
  INTEGRATIONS ||--o{ CHANNEL_CAMPAIGNS : syncs
  INTEGRATIONS ||--o{ CHANNEL_PARTNERS : syncs
  PROJECTS ||--o{ PROJECT_CAMPAIGNS : links
  PROJECTS ||--o{ PROJECT_PARTNERS : links

  USERS {
    uuid id
    string email
    string full_name
    string status
    string username
    string password_hash
  }
  ROLES {
    uuid id
    string name
    string permissions_json
  }
  PROJECTS {
    uuid id
    string name
    string status
    string metadata_json
    uuid owner_id
  }
  TASKS {
    uuid id
    uuid project_id
    string title
    string status
    uuid assignee_id
    datetime due_at
    string priority
    string metadata_json
  }
  AUTOMATION_FLOWS {
    uuid id
    uuid project_id
    string name
    string status
    string definition_json
  }
  AUTOMATION_RUNS {
    uuid id
    uuid automation_flow_id
    string status
    string context_json
  }
  ANALYTICS_DASHBOARDS {
    uuid id
    uuid project_id
    string name
    string layout_json
    string filters_json
  }
  ANALYTICS_WIDGETS {
    uuid id
    uuid dashboard_id
    string widget_type
    string config_json
  }
  INTEGRATIONS {
    uuid id
    string provider
    string name
    string config_json
    string status
  }
  SYNC_JOBS {
    uuid id
    uuid integration_id
    string sync_type
    string status
    string details_json
    string error_message
  }
  CHANNEL_CAMPAIGNS {
    uuid id
    string nop_campaign_id
    string metrics_json
  }
  CHANNEL_PARTNERS {
    uuid id
    string nop_partner_id
    string metadata_json
  }
  AUDIT_LOGS {
    uuid id
    uuid actor_id
    string action
    string resource_type
    uuid resource_id
    string payload_json
  }
  REFRESH_TOKENS {
    uuid id
    uuid user_id
    string token_hash
    datetime expires_at
  }
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment