Conman Entity Relationship Diagram

Conman Entity Relationship Diagram

This document captures the entities currently implemented and how they relate.

Naming note

Primary ER diagram

erDiagram
    TEAM ||--o{ REPO : owns
    USER ||--o{ TEAM_MEMBERSHIP : belongs_to
    TEAM ||--o{ TEAM_MEMBERSHIP : has_members
    TEAM ||--o{ INVITE : issues
    USER ||--o{ PASSWORD_RESET_TOKEN : resets

    REPO ||--o{ REPO_MEMBERSHIP : grants_roles
    USER ||--o{ REPO_MEMBERSHIP : assigned
    REPO ||--o{ APP : exposes

    REPO ||--o{ ENVIRONMENT : defines
    REPO ||--o{ RUNTIME_PROFILE : defines
    ENVIRONMENT }o--|| RUNTIME_PROFILE : runtime_profile_id
    RUNTIME_PROFILE }o--|| RUNTIME_PROFILE : base_profile_id

    REPO ||--o{ WORKSPACE : has
    USER ||--o{ WORKSPACE : owns

    REPO ||--o{ CHANGESET : scopes
    WORKSPACE ||--o{ CHANGESET : source
    USER ||--o{ CHANGESET : authors
    CHANGESET ||--o{ CHANGESET_COMMENT : has
    USER ||--o{ CHANGESET_COMMENT : writes

    CHANGESET ||--o{ CHANGESET_PROFILE_OVERRIDE : overrides
    RUNTIME_PROFILE ||--o{ CHANGESET_PROFILE_OVERRIDE : targets

    REPO ||--o{ RELEASE_BATCH : creates
    RELEASE_BATCH }o--o{ CHANGESET : includes_ordered

    RELEASE_BATCH ||--o{ DEPLOYMENT : deploys
    ENVIRONMENT ||--o{ DEPLOYMENT : target
    USER ||--o{ DEPLOYMENT : created_by

    REPO ||--o{ TEMP_ENVIRONMENT : provisions
    USER ||--o{ TEMP_ENVIRONMENT : owns
    RUNTIME_PROFILE ||--o{ TEMP_ENVIRONMENT : runtime_profile
    WORKSPACE ||--o{ TEMP_ENVIRONMENT : source_workspace
    CHANGESET ||--o{ TEMP_ENVIRONMENT : source_changeset

    REPO ||--o{ JOB : runs
    JOB ||--o{ JOB_LOG_LINE : emits

    USER ||--|| NOTIFICATION_PREFERENCE : has
    USER ||--o{ NOTIFICATION_EVENT : receives
    REPO ||--o{ NOTIFICATION_EVENT : optional_scope

    USER ||--o{ AUDIT_EVENT : actor_optional
    REPO ||--o{ AUDIT_EVENT : optional_scope

Key relationship fields

Runtime constraints worth remembering