Skip to content

kunalpro379/CloudIDE-Microservices-SpringBoot

Repository files navigation

erDiagram users { UUID user_id PK VARCHAR(255) email UK VARCHAR(255) password_hash VARCHAR(100) username UK VARCHAR(100) first_name VARCHAR(100) last_name VARCHAR(500) profile_image_url BOOLEAN email_verified BOOLEAN is_active VARCHAR(50) oauth_provider VARCHAR(255) oauth_provider_id TIMESTAMP created_at TIMESTAMP updated_at TIMESTAMP last_login }

workspaces {
    UUID ws_id PK
    VARCHAR(255) name
    TEXT description
    UUID owner_id FK
    BOOLEAN is_public
    BOOLEAN is_template
    VARCHAR(20) status
    TIMESTAMP created_at
    TIMESTAMP updated_at
    TIMESTAMP last_active
}

workspace_permissions {
    UUID ws_id PK,FK
    UUID user_id PK,FK
    VARCHAR(20) role
    UUID granted_by FK
    VARCHAR(20) status
    TIMESTAMP created_at
    TIMESTAMP updated_at
}

workspace_invitations {
    UUID invitation_id PK
    UUID ws_id FK
    UUID invited_by FK
    UUID invited_user_id FK
    VARCHAR(255) invited_email
    VARCHAR(20) role
    VARCHAR(20) status
    TIMESTAMP expires_at
    TIMESTAMP created_at
    TIMESTAMP updated_at
}

sessions {
    UUID session_id PK
    VARCHAR(255) name
    TEXT description
    VARCHAR(100) language
    VARCHAR(100) framework
    BOOLEAN is_dynamic
    UUID owner_id FK
    VARCHAR(20) status
    TIMESTAMP created_at
    TIMESTAMP updated_at
    TIMESTAMP last_active
}

session_participants {
    UUID participant_id PK
    UUID session_id FK
    UUID user_id FK
    VARCHAR(255) email
    VARCHAR(20) role
    TIMESTAMP joined_at
    TIMESTAMP last_active
    BOOLEAN is_active
}

session_invitations {
    UUID invitation_id PK
    UUID session_id FK
    VARCHAR(255) email
    UUID invited_by FK
    VARCHAR(20) role
    TEXT message
    VARCHAR(20) status
    TIMESTAMP created_at
    TIMESTAMP expires_at
    TIMESTAMP responded_at
}

deployments {
    UUID deployment_id PK
    UUID session_id FK
    VARCHAR(500) deployment_url
    VARCHAR(255) container_id
    INTEGER port
    VARCHAR(20) status
    UUID owner_id FK
    TIMESTAMP created_at
    TIMESTAMP started_at
    TIMESTAMP stopped_at
    TIMESTAMP last_active
}

deployment_participants {
    UUID participant_id PK
    UUID deployment_id FK
    UUID user_id FK
    VARCHAR(255) email
    VARCHAR(20) role
    TIMESTAMP joined_at
    TIMESTAMP last_active
    BOOLEAN is_active
}

past_deployments {
    UUID past_deployment_id PK
    UUID original_deployment_id FK
    UUID session_id FK
    VARCHAR(500) deployment_url
    VARCHAR(255) container_id
    INTEGER port
    UUID owner_id FK
    TIMESTAMP created_at
    TIMESTAMP started_at
    TIMESTAMP stopped_at
    BIGINT total_runtime_minutes
    VARCHAR(255) reason_for_stop
}

audit_logs {
    SERIAL log_id PK
    UUID ws_id FK
    UUID user_id FK
    VARCHAR(100) action
    VARCHAR(50) resource_type
    VARCHAR(255) resource_id
    JSONB old_value
    JSONB new_value
    INET ip_address
    TEXT user_agent
    TIMESTAMP timestamp
}

refresh_tokens {
    UUID token_id PK
    UUID user_id FK
    VARCHAR(255) token_hash
    TIMESTAMP expires_at
    TIMESTAMP created_at
    TIMESTAMP revoked_at
    VARCHAR(500) device_info
}

user_sessions {
    UUID session_id PK
    UUID user_id FK
    UUID ws_id FK
    VARCHAR(20) status
    TIMESTAMP last_activity
    TIMESTAMP created_at
    TIMESTAMP ended_at
}

mongo_workspaces {
    ObjectId _id PK
    UUID ws_id FK
    UUID owner_id FK
    String name
    Object settings
    Array files
    Object environment
    Object deployment
    Object git
    Object collaboration
    Array tags
    Object analytics
}

users ||--o{ workspaces : "owns"
users ||--o{ workspace_permissions : "has access to"
users ||--o{ workspace_invitations : "invites/is invited"
users ||--o{ refresh_tokens : "has"
users ||--o{ user_sessions : "has"
users ||--o{ audit_logs : "generates"

workspaces ||--o{ workspace_permissions : "has"
workspaces ||--o{ workspace_invitations : "has"
workspaces ||--o{ user_sessions : "has"
workspaces ||--o{ audit_logs : "has"

sessions ||--o{ session_participants : "has"
sessions ||--o{ session_invitations : "has"
sessions ||--o{ deployments : "has"
sessions ||--o{ past_deployments : "has"

deployments ||--o{ deployment_participants : "has"
deployments ||--o{ past_deployments : "tracks"

workspaces ||--|| mongo_workspaces : "extends to NoSQL"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published