Files

2.8 KiB

Data Model: Git Integration Plugin

Feature: Git Integration for Dashboard Development Date: 2026-01-22

Entities

1. GitServerConfig

Configuration for connecting a dashboard to a Git repository.

Field Type Description
id UUID Unique identifier
dashboard_uuid UUID The Superset Dashboard UUID this config applies to
provider Enum GITHUB, GITLAB, GITEA, GENERIC
server_url String Base URL of the git server (e.g., https://gitlab.com)
repo_url String Full HTTPS clone URL
username String Username for auth
pat_token String Personal Access Token (stored securely)
created_at DateTime Creation timestamp
updated_at DateTime Last update timestamp

2. Environment

Target environments for deployment.

Field Type Description
id UUID Unique identifier
name String Display name (e.g., "Production", "Staging")
superset_url String Base URL of the target Superset instance
auth_token String Authentication token/credentials for the target API
is_active Boolean Whether this environment is enabled

3. Branch (DTO)

Data Transfer Object representing a Git branch.

Field Type Description
name String Branch name (e.g., main, feature/fix-chart)
is_current Boolean True if currently checked out
is_remote Boolean True if it exists on remote
last_commit_hash String SHA of the tip commit
last_commit_msg String Message of the tip commit

4. Commit (DTO)

Data Transfer Object representing a Git commit.

Field Type Description
hash String Full SHA hash
short_hash String First 7 chars of hash
author_name String Author name
author_email String Author email
date DateTime Commit timestamp
message String Commit message
files_changed List[String] List of modified files

5. DashboardChange (DTO)

Represents a local change (diff) between Superset state and Git state.

Field Type Description
file_path String Relative path in repo
change_type Enum ADDED, MODIFIED, DELETED, RENAMED
diff_content String Unified diff string

Relationships

  • One-to-One: Dashboard (Superset concept) <-> GitServerConfig.
  • Many-to-Many: Dashboard <-> Environment (Technically environments are global or scoped, but for MVP they can be global settings available to all dashboards).

Validation Rules

  • repo_url: Must be a valid HTTPS URL ending in .git.
  • pat_token: Must not be empty.
  • branch.name: Must follow git branch naming conventions (no spaces, special chars).