Documentation ¶
Index ¶
- func GetAllTables() []interface{}
- func PostAutoMigrate(db *gorm.DB) error
- func PreAutoMigrate(db *gorm.DB) error
- func PrimaryKeyForTable(tableName string) (string, error)
- type CacheEntry
- type CacheLog
- type Execution
- type ExecutionNode
- type ExecutionTask
- type Group
- type Invocation
- type Model
- type Table
- type TelemetryLog
- type Token
- type User
- type UserGroup
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetAllTables ¶
func GetAllTables() []interface{}
func PostAutoMigrate ¶
Manual migration called after auto-migration.
func PreAutoMigrate ¶
Manual migration called before auto-migration.
func PrimaryKeyForTable ¶
Types ¶
type CacheEntry ¶
type CacheEntry struct { Model EntryID string `gorm:"primary_key;"` ExpirationTimeUsec int64 SizeBytes int64 ReadCount int64 }
func (*CacheEntry) TableName ¶
func (c *CacheEntry) TableName() string
type CacheLog ¶
type Execution ¶
type Execution struct { Model // The subscriber ID, a concatenated string of the // auth Issuer ID and the subcriber ID string. ExecutionID string `gorm:"primary_key"` UserID string `gorm:"index:executions_user_id"` GroupID string `gorm:"index:executions_group_id"` Perms int `gorm:"index:executions_perms"` Stage int64 SerializedOperation []byte `gorm:"size:max"` // deprecated. StatusCode int32 StatusMessage string SerializedStatusDetails []byte `gorm:"size:max"` CachedResult bool InvocationID string `gorm:"index:execution_invocation_id"` // IOStats FileDownloadCount int64 FileDownloadSizeBytes int64 FileDownloadDurationUsec int64 FileUploadCount int64 FileUploadSizeBytes int64 FileUploadDurationUsec int64 // ExecutedActionMetadata Worker string QueuedTimestampUsec int64 WorkerStartTimestampUsec int64 WorkerCompletedTimestampUsec int64 InputFetchStartTimestampUsec int64 InputFetchCompletedTimestampUsec int64 ExecutionStartTimestampUsec int64 ExecutionCompletedTimestampUsec int64 OutputUploadStartTimestampUsec int64 OutputUploadCompletedTimestampUsec int64 // Command Snippet CommandSnippet string }
type ExecutionNode ¶
type ExecutionNode struct { Model Host string `gorm:"primary_key"` Port int32 `gorm:"primary_key;auto_increment:false"` AssignableMemoryBytes int64 AssignableMilliCPU int64 Constraints string OS string Arch string Pool string }
func (*ExecutionNode) TableName ¶
func (n *ExecutionNode) TableName() string
type ExecutionTask ¶
type ExecutionTask struct { Model TaskID string `gorm:"primary_key"` SerializedTask []byte `gorm:"size:max"` EstimatedMemoryBytes int64 EstimatedMilliCPU int64 ClaimedAtUsec int64 AttemptCount int64 OS string Arch string Pool string }
func (*ExecutionTask) TableName ¶
func (n *ExecutionTask) TableName() string
type Group ¶
type Group struct { Model GroupID string `gorm:"primary_key;"` // The user that OWNS this group. Only this user may modify it. UserID string // The group name. This may be displayed to users. Name string // A unique URL segment that is displayed in group-related URLs. // e.g. "example-org" in app.buildbuddy.com/join/example-org or // "example-org.buildbuddy.com" if we support subdomains in the future. URLIdentifier *string `gorm:"unique_index:url_identifier_unique_index"` SharingEnabled bool `gorm:"default:true"` // The "owned" domain. In enterprise/cloud version, we create a // group for a customer's domain, and new users that sign up with an // email belonging to that domain may be added to this group. OwnedDomain string `gorm:"index:owned_domain_index"` // The group access token. This token allows writing data for this // group. WriteToken string `gorm:"index:write_token_index"` // The group's api key. This allows members of the group to make // API requests on the group's behalf. APIKey string `gorm:"index:api_key_index"` // The group's Github API token. GithubToken string }
type Invocation ¶
type Invocation struct { Model InvocationID string `gorm:"primary_key;"` UserID string `gorm:"index:user_id"` GroupID string `gorm:"index:group_id"` Perms int `gorm:"index:perms"` Success bool User string `gorm:"index:user_index"` DurationUsec int64 Host string `gorm:"index:host_index"` RepoURL string `gorm:"index:repo_url_index"` CommitSHA string `gorm:"index:commit_sha_index"` Role string `gorm:"index:role_index"` Command string Pattern string `gorm:"type:text;"` ActionCount int64 BlobID string InvocationStatus int64 `gorm:"index:invocation_status_idx"` ActionCacheHits int64 ActionCacheMisses int64 ActionCacheUploads int64 CasCacheHits int64 CasCacheMisses int64 CasCacheUploads int64 TotalDownloadSizeBytes int64 TotalUploadSizeBytes int64 TotalDownloadUsec int64 TotalUploadUsec int64 TotalCachedActionExecUsec int64 }
func (*Invocation) TableName ¶
func (i *Invocation) TableName() string
type Model ¶
func (*Model) BeforeCreate ¶
Timestamps are hard and differing sql implementations do... a lot. Too much. So, we handle this in go-code and set these to time.Now().UnixNano and store as int64.
type TelemetryLog ¶
type TelemetryLog struct { Model InstallationUUID string `gorm:"primary_key"` InstanceUUID string `gorm:"primary_key"` TelemetryLogUUID string `gorm:"primary_key"` RecordedAtUsec int64 AppVersion string AppURL string Hostname string InvocationCount int64 RegisteredUserCount int64 BazelUserCount int64 BazelHostCount int64 FeatureCacheEnabled bool FeatureRBEEnabled bool FeatureAPIEnabled bool FeatureAuthEnabled bool }
func (*TelemetryLog) TableName ¶
func (t *TelemetryLog) TableName() string
type Token ¶
type User ¶
type User struct { Model // The buildbuddy user ID. UserID string `gorm:"primary_key;"` // The subscriber ID, a concatenated string of the // auth Issuer ID and the subcriber ID string. SubID string `gorm:"index:sub_id_index"` // Groups are used to determine read/write permissions // for everything. Groups []*Group `gorm:"-"` // gorm ignore // Profile information etc. FirstName string LastName string Email string ImageURL string }
func (*User) ToProto ¶
func (u *User) ToProto() *uspb.DisplayUser
Click to show internal directories.
Click to hide internal directories.