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
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
}
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
}
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.