2.8 KiB
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).