Skip to content

Instantly share code, notes, and snippets.

@kilonzi
Created May 31, 2024 16:41
Show Gist options
  • Save kilonzi/4b5b1b18e1d855a6cbd18950ed76876f to your computer and use it in GitHub Desktop.
Save kilonzi/4b5b1b18e1d855a6cbd18950ed76876f to your computer and use it in GitHub Desktop.
@startuml
skinparam class {
BackgroundColor<<Namespace>> LightBlue
BackgroundColor<<Token>> LightCoral
BackgroundColor<<Workflow>> LightGoldenRodYellow
BackgroundColor<<Run>> LightSalmon
BackgroundColor<<Task>> LightSteelBlue
BackgroundColor<<Secret>> LightPink
}
entity Common {
+ id: UUID
+ created_at: datetime
+ updated_at: datetime
+ is_active: bool
}
entity Namespace <<Namespace>> {
+ id: UUID
+ created_at: datetime
+ updated_at: datetime
+ is_active: bool
+ name: str <<required>>
+ description: str
}
entity Token <<Token>> {
+ id: UUID
+ created_at: datetime
+ updated_at: datetime
+ is_active: bool
+ expiry: datetime
+ name: str
+ is_revoked: bool
}
entity Workflow <<Workflow>> {
+ id: UUID
+ created_at: datetime
+ updated_at: datetime
+ is_active: bool
+ name: str <<required>>
+ description: LongStr
+ uid: str
+ version: str
+ raw: LongStr
+ generated: LongStr
+ params: JSON
+ hash: str
+ is_public: bool <<default: False>>
}
entity Run <<Run>> {
+ id: UUID
+ created_at: datetime
+ updated_at: datetime
+ is_active: bool
+ uid: str
+ inputs: JSON
+ status: str <<required>>
}
entity Task <<Task>> {
+ id: UUID
+ created_at: datetime
+ updated_at: datetime
+ is_active: bool
+ name: str
+ uid: str
+ inputs: JSON
+ outputs: JSON
+ is_system: bool
+ status: str <<required>>
}
entity Secret <<Secret>> {
+ id: UUID
+ created_at: datetime
+ updated_at: datetime
+ is_active: bool
+ name: str
+ uid: str
}
Common <|-- Namespace
Common <|-- Token
Common <|-- Workflow
Common <|-- Run
Common <|-- Task
Common <|-- Secret
Namespace "1" -- "0..*" Token : has_many
Namespace "1" -- "0..*" Workflow : has_many
Namespace "1" -- "0..*" Run : has_many
Namespace "1" -- "0..*" Secret : has_many
Workflow "0..*" -- "1" Namespace : owner
Workflow "1" -- "0..*" Run : has_many
Run "0..*" -- "1" Workflow : belongs_to
Run "0..*" -- "1" Namespace : belongs_to
Task "0..*" -- "1" Run : belongs_to
Secret "0..*" -- "1" Namespace : belongs_to
@enduml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment