Documentation ¶
Overview ¶
Package database connects to external services for stateful storage.
Query functions are generated using sqlc.
To modify the database schema: 1. Add a new migration using "create_migration.sh" in database/migrations/ 2. Run "make coderd/database/generate" in the root to generate models. 3. Add/Edit queries in "query.sql" and run "make coderd/database/generate" to create Go code.
Code generated by gen/enum. DO NOT EDIT.
Index ¶
- Constants
- func GenLockID(name string) int64
- func IsQueryCanceledError(err error) bool
- func IsSerializedError(err error) bool
- func IsStartupLogsLimitError(err error) bool
- func IsUniqueViolation(err error, uniqueConstraints ...UniqueConstraint) bool
- func Now() time.Time
- func Time(t time.Time) time.Time
- type APIKey
- type APIKeyScope
- type AcquireProvisionerJobParams
- type Actions
- type AppSharingLevel
- type AuditAction
- type AuditLog
- type AuditOAuthConvertState
- type AuditableGroup
- type BuildReason
- type DBTX
- type DeleteGroupMemberFromGroupParams
- type DeleteGroupMembersByOrgAndUserParams
- type DeleteTailnetAgentParams
- type DeleteTailnetAgentRow
- type DeleteTailnetClientParams
- type DeleteTailnetClientRow
- type File
- type GetAPIKeyByNameParams
- type GetAPIKeysByUserIDParams
- type GetAuditLogsOffsetParams
- type GetAuditLogsOffsetRow
- type GetAuthorizationUserRolesRow
- type GetDefaultProxyConfigRow
- type GetDeploymentDAUsRow
- type GetDeploymentWorkspaceAgentStatsRow
- type GetDeploymentWorkspaceStatsRow
- type GetFileByHashAndCreatorParams
- type GetFileTemplatesRow
- type GetGitAuthLinkParams
- type GetGroupByOrgAndNameParams
- type GetOrganizationIDsByMemberIDsRow
- type GetOrganizationMemberByUserIDParams
- type GetPreviousTemplateVersionParams
- type GetProvisionerJobsByIDsWithQueuePositionRow
- type GetProvisionerLogsAfterIDParams
- type GetTemplateAverageBuildTimeParams
- type GetTemplateAverageBuildTimeRow
- type GetTemplateByOrganizationAndNameParams
- type GetTemplateDAUsParams
- type GetTemplateDAUsRow
- type GetTemplateVersionByTemplateIDAndNameParams
- type GetTemplateVersionsByTemplateIDParams
- type GetTemplatesWithFilterParams
- type GetUserByEmailOrUsernameParams
- type GetUserLinkByUserIDLoginTypeParams
- type GetUsersParams
- type GetUsersRow
- type GetWorkspaceAgentLifecycleStateByIDRow
- type GetWorkspaceAgentStartupLogsAfterParams
- type GetWorkspaceAgentStatsAndLabelsRow
- type GetWorkspaceAgentStatsRow
- type GetWorkspaceAppByAgentIDAndSlugParams
- type GetWorkspaceBuildByWorkspaceIDAndBuildNumberParams
- type GetWorkspaceBuildsByWorkspaceIDParams
- type GetWorkspaceByOwnerIDAndNameParams
- type GetWorkspaceProxyByHostnameParams
- type GetWorkspacesParams
- type GetWorkspacesRow
- type GitAuthLink
- type GitSSHKey
- type Group
- type GroupMember
- type InsertAPIKeyParams
- type InsertAuditLogParams
- type InsertFileParams
- type InsertGitAuthLinkParams
- type InsertGitSSHKeyParams
- type InsertGroupMemberParams
- type InsertGroupParams
- type InsertLicenseParams
- type InsertOrganizationMemberParams
- type InsertOrganizationParams
- type InsertProvisionerDaemonParams
- type InsertProvisionerJobLogsParams
- type InsertProvisionerJobParams
- type InsertReplicaParams
- type InsertTemplateParams
- type InsertTemplateVersionParameterParams
- type InsertTemplateVersionParams
- type InsertTemplateVersionVariableParams
- type InsertUserGroupsByNameParams
- type InsertUserLinkParams
- type InsertUserParams
- type InsertWorkspaceAgentMetadataParams
- type InsertWorkspaceAgentParams
- type InsertWorkspaceAgentStartupLogsParams
- type InsertWorkspaceAgentStatParams
- type InsertWorkspaceAppParams
- type InsertWorkspaceBuildParametersParams
- type InsertWorkspaceBuildParams
- type InsertWorkspaceParams
- type InsertWorkspaceProxyParams
- type InsertWorkspaceResourceMetadataParams
- type InsertWorkspaceResourceParams
- type License
- type LogLevel
- type LogSource
- type LoginType
- type NullAPIKeyScope
- type NullAppSharingLevel
- type NullAuditAction
- type NullBuildReason
- type NullLogLevel
- type NullLogSource
- type NullLoginType
- type NullParameterDestinationScheme
- type NullParameterScope
- type NullParameterSourceScheme
- type NullParameterTypeSystem
- type NullProvisionerJobType
- type NullProvisionerStorageMethod
- type NullProvisionerType
- type NullResourceType
- type NullStartupScriptBehavior
- type NullUserStatus
- type NullWorkspaceAgentLifecycleState
- type NullWorkspaceAgentSubsystem
- type NullWorkspaceAppHealth
- type NullWorkspaceTransition
- type Organization
- type OrganizationMember
- type ParameterDestinationScheme
- type ParameterSchema
- type ParameterScope
- type ParameterSourceScheme
- type ParameterTypeSystem
- type ParameterValue
- type ProvisionerDaemon
- type ProvisionerJob
- type ProvisionerJobLog
- type ProvisionerJobType
- type ProvisionerStorageMethod
- type ProvisionerType
- type RegisterWorkspaceProxyParams
- type Replica
- type ResourceType
- type SiteConfig
- type StartupScriptBehavior
- type Store
- type StringMap
- type TailnetAgent
- type TailnetClient
- type TailnetCoordinator
- type Template
- type TemplateACL
- type TemplateGroup
- type TemplateTable
- type TemplateUser
- type TemplateVersion
- type TemplateVersionParameter
- type TemplateVersionVariable
- type UniqueConstraint
- type UpdateAPIKeyByIDParams
- type UpdateGitAuthLinkParams
- type UpdateGitSSHKeyParams
- type UpdateGroupByIDParams
- type UpdateMemberRolesParams
- type UpdateProvisionerJobByIDParams
- type UpdateProvisionerJobWithCancelByIDParams
- type UpdateProvisionerJobWithCompleteByIDParams
- type UpdateReplicaParams
- type UpdateTemplateACLByIDParams
- type UpdateTemplateActiveVersionByIDParams
- type UpdateTemplateDeletedByIDParams
- type UpdateTemplateMetaByIDParams
- type UpdateTemplateScheduleByIDParams
- type UpdateTemplateVersionByIDParams
- type UpdateTemplateVersionDescriptionByJobIDParams
- type UpdateTemplateVersionGitAuthProvidersByJobIDParams
- type UpdateUserDeletedByIDParams
- type UpdateUserHashedPasswordParams
- type UpdateUserLastSeenAtParams
- type UpdateUserLinkParams
- type UpdateUserLinkedIDParams
- type UpdateUserLoginTypeParams
- type UpdateUserProfileParams
- type UpdateUserQuietHoursScheduleParams
- type UpdateUserRolesParams
- type UpdateUserStatusParams
- type UpdateWorkspaceAgentConnectionByIDParams
- type UpdateWorkspaceAgentLifecycleStateByIDParams
- type UpdateWorkspaceAgentMetadataParams
- type UpdateWorkspaceAgentStartupByIDParams
- type UpdateWorkspaceAgentStartupLogOverflowByIDParams
- type UpdateWorkspaceAppHealthByIDParams
- type UpdateWorkspaceAutostartParams
- type UpdateWorkspaceBuildByIDParams
- type UpdateWorkspaceBuildCostByIDParams
- type UpdateWorkspaceDeletedByIDParams
- type UpdateWorkspaceLastUsedAtParams
- type UpdateWorkspaceLockedDeletingAtParams
- type UpdateWorkspaceParams
- type UpdateWorkspaceProxyDeletedParams
- type UpdateWorkspaceProxyParams
- type UpdateWorkspaceTTLParams
- type UpdateWorkspacesDeletingAtByTemplateIDParams
- type UpsertDefaultProxyParams
- type UpsertTailnetAgentParams
- type UpsertTailnetClientParams
- type User
- type UserLink
- type UserStatus
- type VisibleUser
- type Workspace
- type WorkspaceAgent
- type WorkspaceAgentConnectionStatus
- type WorkspaceAgentLifecycleState
- type WorkspaceAgentMetadatum
- type WorkspaceAgentStartupLog
- type WorkspaceAgentStat
- type WorkspaceAgentStatus
- type WorkspaceAgentSubsystem
- type WorkspaceApp
- type WorkspaceAppHealth
- type WorkspaceBuild
- type WorkspaceBuildParameter
- type WorkspaceProxy
- type WorkspaceResource
- type WorkspaceResourceMetadatum
- type WorkspaceStatus
- type WorkspaceTransition
Constants ¶
const AllUsersGroup = "Everyone"
const (
LockIDDeploymentSetup
)
Well-known lock IDs for lock functions in the database. These should not change. If locks are deprecated, they should be kept in this list to avoid reusing the same ID.
Variables ¶
This section is empty.
Functions ¶
func GenLockID ¶ added in v0.25.0
GenLockID generates a unique and consistent lock ID from a given string.
func IsQueryCanceledError ¶ added in v0.18.0
IsQueryCanceledError checks if the error is due to a query being canceled.
func IsSerializedError ¶ added in v0.20.1
func IsStartupLogsLimitError ¶ added in v0.21.0
func IsUniqueViolation ¶ added in v0.8.7
func IsUniqueViolation(err error, uniqueConstraints ...UniqueConstraint) bool
IsUniqueViolation checks if the error is due to a unique violation. If one or more specific unique constraints are given as arguments, the error must be caused by one of them. If no constraints are given, this function returns true for any unique violation.
Types ¶
type APIKey ¶
type APIKey struct { ID string `db:"id" json:"id"` // hashed_secret contains a SHA256 hash of the key secret. This is considered a secret and MUST NOT be returned from the API as it is used for API key encryption in app proxying code. HashedSecret []byte `db:"hashed_secret" json:"hashed_secret"` UserID uuid.UUID `db:"user_id" json:"user_id"` LastUsed time.Time `db:"last_used" json:"last_used"` ExpiresAt time.Time `db:"expires_at" json:"expires_at"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` LoginType LoginType `db:"login_type" json:"login_type"` LifetimeSeconds int64 `db:"lifetime_seconds" json:"lifetime_seconds"` IPAddress pqtype.Inet `db:"ip_address" json:"ip_address"` Scope APIKeyScope `db:"scope" json:"scope"` TokenName string `db:"token_name" json:"token_name"` }
func (APIKey) RBACObject ¶ added in v0.15.1
type APIKeyScope ¶ added in v0.9.0
type APIKeyScope string
const ( APIKeyScopeAll APIKeyScope = "all" APIKeyScopeApplicationConnect APIKeyScope = "application_connect" )
func AllAPIKeyScopeValues ¶ added in v0.15.2
func AllAPIKeyScopeValues() []APIKeyScope
func (*APIKeyScope) Scan ¶ added in v0.9.0
func (e *APIKeyScope) Scan(src interface{}) error
func (APIKeyScope) ToRBAC ¶ added in v0.9.0
func (s APIKeyScope) ToRBAC() rbac.ScopeName
func (APIKeyScope) Valid ¶ added in v0.15.2
func (e APIKeyScope) Valid() bool
type AcquireProvisionerJobParams ¶
type AcquireProvisionerJobParams struct { StartedAt sql.NullTime `db:"started_at" json:"started_at"` WorkerID uuid.NullUUID `db:"worker_id" json:"worker_id"` Types []ProvisionerType `db:"types" json:"types"` Tags json.RawMessage `db:"tags" json:"tags"` }
type AppSharingLevel ¶ added in v0.10.0
type AppSharingLevel string
const ( AppSharingLevelOwner AppSharingLevel = "owner" AppSharingLevelAuthenticated AppSharingLevel = "authenticated" AppSharingLevelPublic AppSharingLevel = "public" )
func AllAppSharingLevelValues ¶ added in v0.15.2
func AllAppSharingLevelValues() []AppSharingLevel
func (*AppSharingLevel) Scan ¶ added in v0.10.0
func (e *AppSharingLevel) Scan(src interface{}) error
func (AppSharingLevel) Valid ¶ added in v0.15.2
func (e AppSharingLevel) Valid() bool
type AuditAction ¶ added in v0.5.3
type AuditAction string
const ( AuditActionCreate AuditAction = "create" AuditActionWrite AuditAction = "write" AuditActionDelete AuditAction = "delete" AuditActionStart AuditAction = "start" AuditActionStop AuditAction = "stop" AuditActionLogin AuditAction = "login" AuditActionLogout AuditAction = "logout" AuditActionRegister AuditAction = "register" )
func AllAuditActionValues ¶ added in v0.15.2
func AllAuditActionValues() []AuditAction
func (*AuditAction) Scan ¶ added in v0.5.3
func (e *AuditAction) Scan(src interface{}) error
func (AuditAction) Valid ¶ added in v0.15.2
func (e AuditAction) Valid() bool
type AuditLog ¶ added in v0.5.3
type AuditLog struct { ID uuid.UUID `db:"id" json:"id"` Time time.Time `db:"time" json:"time"` UserID uuid.UUID `db:"user_id" json:"user_id"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` Ip pqtype.Inet `db:"ip" json:"ip"` UserAgent sql.NullString `db:"user_agent" json:"user_agent"` ResourceType ResourceType `db:"resource_type" json:"resource_type"` ResourceID uuid.UUID `db:"resource_id" json:"resource_id"` ResourceTarget string `db:"resource_target" json:"resource_target"` Action AuditAction `db:"action" json:"action"` Diff json.RawMessage `db:"diff" json:"diff"` StatusCode int32 `db:"status_code" json:"status_code"` AdditionalFields json.RawMessage `db:"additional_fields" json:"additional_fields"` RequestID uuid.UUID `db:"request_id" json:"request_id"` ResourceIcon string `db:"resource_icon" json:"resource_icon"` }
type AuditOAuthConvertState ¶ added in v0.25.0
type AuditOAuthConvertState struct { CreatedAt time.Time `db:"created_at" json:"created_at"` // The time at which the state string expires, a merge request times out if the user does not perform it quick enough. ExpiresAt time.Time `db:"expires_at" json:"expires_at"` FromLoginType LoginType `db:"from_login_type" json:"from_login_type"` // The login type the user is converting to. Should be github or oidc. ToLoginType LoginType `db:"to_login_type" json:"to_login_type"` UserID uuid.UUID `db:"user_id" json:"user_id"` }
AuditOAuthConvertState is never stored in the database. It is stored in a cookie clientside as a JWT. This type is provided for audit logging purposes.
type AuditableGroup ¶ added in v0.15.0
type AuditableGroup struct { Group Members []GroupMember `json:"members"` }
type BuildReason ¶ added in v0.7.2
type BuildReason string
const ( BuildReasonInitiator BuildReason = "initiator" BuildReasonAutostart BuildReason = "autostart" BuildReasonAutostop BuildReason = "autostop" BuildReasonAutolock BuildReason = "autolock" BuildReasonFailedstop BuildReason = "failedstop" BuildReasonAutodelete BuildReason = "autodelete" )
func AllBuildReasonValues ¶ added in v0.15.2
func AllBuildReasonValues() []BuildReason
func (*BuildReason) Scan ¶ added in v0.7.2
func (e *BuildReason) Scan(src interface{}) error
func (BuildReason) Valid ¶ added in v0.15.2
func (e BuildReason) Valid() bool
type DBTX ¶
type DBTX interface { ExecContext(context.Context, string, ...interface{}) (sql.Result, error) PrepareContext(context.Context, string) (*sql.Stmt, error) QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error) QueryRowContext(context.Context, string, ...interface{}) *sql.Row SelectContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error GetContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error }
DBTX represents a database connection or transaction.
type DeleteGroupMemberFromGroupParams ¶ added in v0.16.0
type DeleteGroupMembersByOrgAndUserParams ¶ added in v0.17.0
type DeleteTailnetAgentParams ¶ added in v0.25.0
type DeleteTailnetAgentRow ¶ added in v0.25.0
type DeleteTailnetClientParams ¶ added in v0.25.0
type DeleteTailnetClientRow ¶ added in v0.25.0
type File ¶
type File struct { Hash string `db:"hash" json:"hash"` CreatedAt time.Time `db:"created_at" json:"created_at"` CreatedBy uuid.UUID `db:"created_by" json:"created_by"` Mimetype string `db:"mimetype" json:"mimetype"` Data []byte `db:"data" json:"data"` ID uuid.UUID `db:"id" json:"id"` }
func (File) RBACObject ¶ added in v0.6.1
type GetAPIKeyByNameParams ¶ added in v0.19.0
type GetAPIKeysByUserIDParams ¶ added in v0.18.0
type GetAuditLogsOffsetParams ¶ added in v0.8.14
type GetAuditLogsOffsetParams struct { Limit int32 `db:"limit" json:"limit"` Offset int32 `db:"offset" json:"offset"` ResourceType string `db:"resource_type" json:"resource_type"` ResourceID uuid.UUID `db:"resource_id" json:"resource_id"` ResourceTarget string `db:"resource_target" json:"resource_target"` Action string `db:"action" json:"action"` UserID uuid.UUID `db:"user_id" json:"user_id"` Username string `db:"username" json:"username"` Email string `db:"email" json:"email"` DateFrom time.Time `db:"date_from" json:"date_from"` DateTo time.Time `db:"date_to" json:"date_to"` BuildReason string `db:"build_reason" json:"build_reason"` }
type GetAuditLogsOffsetRow ¶ added in v0.8.14
type GetAuditLogsOffsetRow struct { ID uuid.UUID `db:"id" json:"id"` Time time.Time `db:"time" json:"time"` UserID uuid.UUID `db:"user_id" json:"user_id"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` Ip pqtype.Inet `db:"ip" json:"ip"` UserAgent sql.NullString `db:"user_agent" json:"user_agent"` ResourceType ResourceType `db:"resource_type" json:"resource_type"` ResourceID uuid.UUID `db:"resource_id" json:"resource_id"` ResourceTarget string `db:"resource_target" json:"resource_target"` Action AuditAction `db:"action" json:"action"` Diff json.RawMessage `db:"diff" json:"diff"` StatusCode int32 `db:"status_code" json:"status_code"` AdditionalFields json.RawMessage `db:"additional_fields" json:"additional_fields"` RequestID uuid.UUID `db:"request_id" json:"request_id"` ResourceIcon string `db:"resource_icon" json:"resource_icon"` UserUsername sql.NullString `db:"user_username" json:"user_username"` UserEmail sql.NullString `db:"user_email" json:"user_email"` UserCreatedAt sql.NullTime `db:"user_created_at" json:"user_created_at"` UserStatus NullUserStatus `db:"user_status" json:"user_status"` UserRoles pq.StringArray `db:"user_roles" json:"user_roles"` UserAvatarUrl sql.NullString `db:"user_avatar_url" json:"user_avatar_url"` Count int64 `db:"count" json:"count"` }
type GetAuthorizationUserRolesRow ¶ added in v0.6.1
type GetDefaultProxyConfigRow ¶ added in v0.24.0
type GetDeploymentDAUsRow ¶ added in v0.15.3
type GetDeploymentWorkspaceAgentStatsRow ¶ added in v0.19.0
type GetDeploymentWorkspaceAgentStatsRow struct { WorkspaceRxBytes int64 `db:"workspace_rx_bytes" json:"workspace_rx_bytes"` WorkspaceTxBytes int64 `db:"workspace_tx_bytes" json:"workspace_tx_bytes"` WorkspaceConnectionLatency50 float64 `db:"workspace_connection_latency_50" json:"workspace_connection_latency_50"` WorkspaceConnectionLatency95 float64 `db:"workspace_connection_latency_95" json:"workspace_connection_latency_95"` SessionCountVSCode int64 `db:"session_count_vscode" json:"session_count_vscode"` SessionCountSSH int64 `db:"session_count_ssh" json:"session_count_ssh"` SessionCountJetBrains int64 `db:"session_count_jetbrains" json:"session_count_jetbrains"` SessionCountReconnectingPTY int64 `db:"session_count_reconnecting_pty" json:"session_count_reconnecting_pty"` }
type GetDeploymentWorkspaceStatsRow ¶ added in v0.19.0
type GetDeploymentWorkspaceStatsRow struct { PendingWorkspaces int64 `db:"pending_workspaces" json:"pending_workspaces"` BuildingWorkspaces int64 `db:"building_workspaces" json:"building_workspaces"` RunningWorkspaces int64 `db:"running_workspaces" json:"running_workspaces"` FailedWorkspaces int64 `db:"failed_workspaces" json:"failed_workspaces"` StoppedWorkspaces int64 `db:"stopped_workspaces" json:"stopped_workspaces"` }
type GetFileByHashAndCreatorParams ¶ added in v0.10.0
type GetFileTemplatesRow ¶ added in v0.21.0
type GetFileTemplatesRow struct { FileID uuid.UUID `db:"file_id" json:"file_id"` FileCreatedBy uuid.UUID `db:"file_created_by" json:"file_created_by"` TemplateID uuid.UUID `db:"template_id" json:"template_id"` TemplateOrganizationID uuid.UUID `db:"template_organization_id" json:"template_organization_id"` TemplateCreatedBy uuid.UUID `db:"template_created_by" json:"template_created_by"` UserACL TemplateACL `db:"user_acl" json:"user_acl"` GroupACL TemplateACL `db:"group_acl" json:"group_acl"` }
func (GetFileTemplatesRow) RBACObject ¶ added in v0.21.0
func (t GetFileTemplatesRow) RBACObject() rbac.Object
type GetGitAuthLinkParams ¶ added in v0.11.0
type GetGroupByOrgAndNameParams ¶ added in v0.9.9
type GetOrganizationIDsByMemberIDsRow ¶ added in v0.5.1
type GetOrganizationIDsByMemberIDsRow struct { UserID uuid.UUID `db:"user_id" json:"user_id"` OrganizationIDs []uuid.UUID `db:"organization_IDs" json:"organization_IDs"` }
func (GetOrganizationIDsByMemberIDsRow) RBACObject ¶ added in v0.17.2
func (m GetOrganizationIDsByMemberIDsRow) RBACObject() rbac.Object
type GetPreviousTemplateVersionParams ¶ added in v0.13.2
type GetProvisionerJobsByIDsWithQueuePositionRow ¶ added in v0.25.0
type GetProvisionerJobsByIDsWithQueuePositionRow struct { ProvisionerJob ProvisionerJob `db:"provisioner_job" json:"provisioner_job"` QueuePosition int64 `db:"queue_position" json:"queue_position"` QueueSize int64 `db:"queue_size" json:"queue_size"` }
type GetProvisionerLogsAfterIDParams ¶ added in v0.21.0
type GetTemplateAverageBuildTimeParams ¶ added in v0.10.0
type GetTemplateAverageBuildTimeRow ¶ added in v0.10.0
type GetTemplateAverageBuildTimeRow struct { Start50 float64 `db:"start_50" json:"start_50"` Stop50 float64 `db:"stop_50" json:"stop_50"` Delete50 float64 `db:"delete_50" json:"delete_50"` Start95 float64 `db:"start_95" json:"start_95"` Stop95 float64 `db:"stop_95" json:"stop_95"` Delete95 float64 `db:"delete_95" json:"delete_95"` }
type GetTemplateByOrganizationAndNameParams ¶ added in v0.4.0
type GetTemplateDAUsParams ¶ added in v0.24.0
type GetTemplateDAUsRow ¶ added in v0.8.12
type GetTemplateVersionByTemplateIDAndNameParams ¶ added in v0.4.0
type GetTemplateVersionsByTemplateIDParams ¶ added in v0.5.6
type GetTemplatesWithFilterParams ¶ added in v0.7.0
type GetUserLinkByUserIDLoginTypeParams ¶ added in v0.8.6
type GetUsersParams ¶ added in v0.4.4
type GetUsersParams struct { AfterID uuid.UUID `db:"after_id" json:"after_id"` Search string `db:"search" json:"search"` Status []UserStatus `db:"status" json:"status"` RbacRole []string `db:"rbac_role" json:"rbac_role"` LastSeenBefore time.Time `db:"last_seen_before" json:"last_seen_before"` LastSeenAfter time.Time `db:"last_seen_after" json:"last_seen_after"` OffsetOpt int32 `db:"offset_opt" json:"offset_opt"` LimitOpt int32 `db:"limit_opt" json:"limit_opt"` }
type GetUsersRow ¶ added in v0.12.8
type GetUsersRow struct { ID uuid.UUID `db:"id" json:"id"` Email string `db:"email" json:"email"` Username string `db:"username" json:"username"` HashedPassword []byte `db:"hashed_password" json:"hashed_password"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` Status UserStatus `db:"status" json:"status"` RBACRoles pq.StringArray `db:"rbac_roles" json:"rbac_roles"` LoginType LoginType `db:"login_type" json:"login_type"` AvatarURL sql.NullString `db:"avatar_url" json:"avatar_url"` Deleted bool `db:"deleted" json:"deleted"` LastSeenAt time.Time `db:"last_seen_at" json:"last_seen_at"` QuietHoursSchedule string `db:"quiet_hours_schedule" json:"quiet_hours_schedule"` Count int64 `db:"count" json:"count"` }
func (GetUsersRow) RBACObject ¶ added in v0.17.2
func (u GetUsersRow) RBACObject() rbac.Object
type GetWorkspaceAgentLifecycleStateByIDRow ¶ added in v0.25.0
type GetWorkspaceAgentLifecycleStateByIDRow struct { LifecycleState WorkspaceAgentLifecycleState `db:"lifecycle_state" json:"lifecycle_state"` StartedAt sql.NullTime `db:"started_at" json:"started_at"` ReadyAt sql.NullTime `db:"ready_at" json:"ready_at"` }
type GetWorkspaceAgentStartupLogsAfterParams ¶ added in v0.21.0
type GetWorkspaceAgentStatsAndLabelsRow ¶ added in v0.22.1
type GetWorkspaceAgentStatsAndLabelsRow struct { Username string `db:"username" json:"username"` AgentName string `db:"agent_name" json:"agent_name"` WorkspaceName string `db:"workspace_name" json:"workspace_name"` RxBytes int64 `db:"rx_bytes" json:"rx_bytes"` TxBytes int64 `db:"tx_bytes" json:"tx_bytes"` SessionCountVSCode int64 `db:"session_count_vscode" json:"session_count_vscode"` SessionCountSSH int64 `db:"session_count_ssh" json:"session_count_ssh"` SessionCountJetBrains int64 `db:"session_count_jetbrains" json:"session_count_jetbrains"` SessionCountReconnectingPTY int64 `db:"session_count_reconnecting_pty" json:"session_count_reconnecting_pty"` ConnectionCount int64 `db:"connection_count" json:"connection_count"` ConnectionMedianLatencyMS float64 `db:"connection_median_latency_ms" json:"connection_median_latency_ms"` }
type GetWorkspaceAgentStatsRow ¶ added in v0.20.0
type GetWorkspaceAgentStatsRow struct { UserID uuid.UUID `db:"user_id" json:"user_id"` AgentID uuid.UUID `db:"agent_id" json:"agent_id"` WorkspaceID uuid.UUID `db:"workspace_id" json:"workspace_id"` TemplateID uuid.UUID `db:"template_id" json:"template_id"` AggregatedFrom time.Time `db:"aggregated_from" json:"aggregated_from"` WorkspaceRxBytes int64 `db:"workspace_rx_bytes" json:"workspace_rx_bytes"` WorkspaceTxBytes int64 `db:"workspace_tx_bytes" json:"workspace_tx_bytes"` WorkspaceConnectionLatency50 float64 `db:"workspace_connection_latency_50" json:"workspace_connection_latency_50"` WorkspaceConnectionLatency95 float64 `db:"workspace_connection_latency_95" json:"workspace_connection_latency_95"` AgentID_2 uuid.UUID `db:"agent_id_2" json:"agent_id_2"` SessionCountVSCode int64 `db:"session_count_vscode" json:"session_count_vscode"` SessionCountSSH int64 `db:"session_count_ssh" json:"session_count_ssh"` SessionCountJetBrains int64 `db:"session_count_jetbrains" json:"session_count_jetbrains"` SessionCountReconnectingPTY int64 `db:"session_count_reconnecting_pty" json:"session_count_reconnecting_pty"` }
type GetWorkspaceAppByAgentIDAndSlugParams ¶ added in v0.12.0
type GetWorkspaceBuildByWorkspaceIDAndBuildNumberParams ¶ added in v0.6.6
type GetWorkspaceBuildsByWorkspaceIDParams ¶ added in v0.9.8
type GetWorkspaceBuildsByWorkspaceIDParams struct { WorkspaceID uuid.UUID `db:"workspace_id" json:"workspace_id"` Since time.Time `db:"since" json:"since"` AfterID uuid.UUID `db:"after_id" json:"after_id"` OffsetOpt int32 `db:"offset_opt" json:"offset_opt"` LimitOpt int32 `db:"limit_opt" json:"limit_opt"` }
type GetWorkspaceByOwnerIDAndNameParams ¶ added in v0.5.0
type GetWorkspaceProxyByHostnameParams ¶ added in v0.23.0
type GetWorkspacesParams ¶ added in v0.7.2
type GetWorkspacesParams struct { Deleted bool `db:"deleted" json:"deleted"` Status string `db:"status" json:"status"` OwnerID uuid.UUID `db:"owner_id" json:"owner_id"` OwnerUsername string `db:"owner_username" json:"owner_username"` TemplateName string `db:"template_name" json:"template_name"` TemplateIds []uuid.UUID `db:"template_ids" json:"template_ids"` Name string `db:"name" json:"name"` HasAgent string `db:"has_agent" json:"has_agent"` AgentInactiveDisconnectTimeoutSeconds int64 `db:"agent_inactive_disconnect_timeout_seconds" json:"agent_inactive_disconnect_timeout_seconds"` Offset int32 `db:"offset_" json:"offset_"` Limit int32 `db:"limit_" json:"limit_"` }
type GetWorkspacesRow ¶ added in v0.12.8
type GetWorkspacesRow struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` OwnerID uuid.UUID `db:"owner_id" json:"owner_id"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` TemplateID uuid.UUID `db:"template_id" json:"template_id"` Deleted bool `db:"deleted" json:"deleted"` Name string `db:"name" json:"name"` AutostartSchedule sql.NullString `db:"autostart_schedule" json:"autostart_schedule"` Ttl sql.NullInt64 `db:"ttl" json:"ttl"` LastUsedAt time.Time `db:"last_used_at" json:"last_used_at"` LockedAt sql.NullTime `db:"locked_at" json:"locked_at"` DeletingAt sql.NullTime `db:"deleting_at" json:"deleting_at"` TemplateName string `db:"template_name" json:"template_name"` TemplateVersionID uuid.UUID `db:"template_version_id" json:"template_version_id"` TemplateVersionName sql.NullString `db:"template_version_name" json:"template_version_name"` Count int64 `db:"count" json:"count"` }
type GitAuthLink ¶ added in v0.11.0
type GitAuthLink struct { ProviderID string `db:"provider_id" json:"provider_id"` UserID uuid.UUID `db:"user_id" json:"user_id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` OAuthAccessToken string `db:"oauth_access_token" json:"oauth_access_token"` OAuthRefreshToken string `db:"oauth_refresh_token" json:"oauth_refresh_token"` OAuthExpiry time.Time `db:"oauth_expiry" json:"oauth_expiry"` }
func (GitAuthLink) RBACObject ¶ added in v0.17.2
func (u GitAuthLink) RBACObject() rbac.Object
type GitSSHKey ¶ added in v0.4.0
type GitSSHKey struct { UserID uuid.UUID `db:"user_id" json:"user_id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` PrivateKey string `db:"private_key" json:"private_key"` PublicKey string `db:"public_key" json:"public_key"` }
func (GitSSHKey) RBACObject ¶ added in v0.17.2
type Group ¶ added in v0.9.9
type Group struct { ID uuid.UUID `db:"id" json:"id"` Name string `db:"name" json:"name"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` AvatarURL string `db:"avatar_url" json:"avatar_url"` QuotaAllowance int32 `db:"quota_allowance" json:"quota_allowance"` }
func (Group) Auditable ¶ added in v0.15.0
func (g Group) Auditable(users []User) AuditableGroup
Auditable returns an object that can be used in audit logs. Covers both group and group member changes.
func (Group) RBACObject ¶ added in v0.9.9
type GroupMember ¶ added in v0.9.9
type InsertAPIKeyParams ¶
type InsertAPIKeyParams struct { ID string `db:"id" json:"id"` LifetimeSeconds int64 `db:"lifetime_seconds" json:"lifetime_seconds"` HashedSecret []byte `db:"hashed_secret" json:"hashed_secret"` IPAddress pqtype.Inet `db:"ip_address" json:"ip_address"` UserID uuid.UUID `db:"user_id" json:"user_id"` LastUsed time.Time `db:"last_used" json:"last_used"` ExpiresAt time.Time `db:"expires_at" json:"expires_at"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` LoginType LoginType `db:"login_type" json:"login_type"` Scope APIKeyScope `db:"scope" json:"scope"` TokenName string `db:"token_name" json:"token_name"` }
type InsertAuditLogParams ¶ added in v0.5.3
type InsertAuditLogParams struct { ID uuid.UUID `db:"id" json:"id"` Time time.Time `db:"time" json:"time"` UserID uuid.UUID `db:"user_id" json:"user_id"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` Ip pqtype.Inet `db:"ip" json:"ip"` UserAgent sql.NullString `db:"user_agent" json:"user_agent"` ResourceType ResourceType `db:"resource_type" json:"resource_type"` ResourceID uuid.UUID `db:"resource_id" json:"resource_id"` ResourceTarget string `db:"resource_target" json:"resource_target"` Action AuditAction `db:"action" json:"action"` Diff json.RawMessage `db:"diff" json:"diff"` StatusCode int32 `db:"status_code" json:"status_code"` AdditionalFields json.RawMessage `db:"additional_fields" json:"additional_fields"` RequestID uuid.UUID `db:"request_id" json:"request_id"` ResourceIcon string `db:"resource_icon" json:"resource_icon"` }
type InsertFileParams ¶
type InsertGitAuthLinkParams ¶ added in v0.11.0
type InsertGitAuthLinkParams struct { ProviderID string `db:"provider_id" json:"provider_id"` UserID uuid.UUID `db:"user_id" json:"user_id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` OAuthAccessToken string `db:"oauth_access_token" json:"oauth_access_token"` OAuthRefreshToken string `db:"oauth_refresh_token" json:"oauth_refresh_token"` OAuthExpiry time.Time `db:"oauth_expiry" json:"oauth_expiry"` }
type InsertGitSSHKeyParams ¶ added in v0.4.0
type InsertGitSSHKeyParams struct { UserID uuid.UUID `db:"user_id" json:"user_id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` PrivateKey string `db:"private_key" json:"private_key"` PublicKey string `db:"public_key" json:"public_key"` }
type InsertGroupMemberParams ¶ added in v0.9.9
type InsertGroupParams ¶ added in v0.9.9
type InsertLicenseParams ¶ added in v0.8.7
type InsertOrganizationMemberParams ¶
type InsertOrganizationMemberParams struct { OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` UserID uuid.UUID `db:"user_id" json:"user_id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` Roles []string `db:"roles" json:"roles"` }
type InsertProvisionerJobLogsParams ¶
type InsertProvisionerJobLogsParams struct { JobID uuid.UUID `db:"job_id" json:"job_id"` CreatedAt []time.Time `db:"created_at" json:"created_at"` Source []LogSource `db:"source" json:"source"` Level []LogLevel `db:"level" json:"level"` Stage []string `db:"stage" json:"stage"` Output []string `db:"output" json:"output"` }
type InsertProvisionerJobParams ¶
type InsertProvisionerJobParams struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` InitiatorID uuid.UUID `db:"initiator_id" json:"initiator_id"` Provisioner ProvisionerType `db:"provisioner" json:"provisioner"` StorageMethod ProvisionerStorageMethod `db:"storage_method" json:"storage_method"` FileID uuid.UUID `db:"file_id" json:"file_id"` Type ProvisionerJobType `db:"type" json:"type"` Input json.RawMessage `db:"input" json:"input"` Tags StringMap `db:"tags" json:"tags"` TraceMetadata pqtype.NullRawMessage `db:"trace_metadata" json:"trace_metadata"` }
type InsertReplicaParams ¶ added in v0.10.0
type InsertReplicaParams struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` StartedAt time.Time `db:"started_at" json:"started_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` Hostname string `db:"hostname" json:"hostname"` RegionID int32 `db:"region_id" json:"region_id"` RelayAddress string `db:"relay_address" json:"relay_address"` Version string `db:"version" json:"version"` DatabaseLatency int32 `db:"database_latency" json:"database_latency"` }
type InsertTemplateParams ¶ added in v0.4.0
type InsertTemplateParams struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` Name string `db:"name" json:"name"` Provisioner ProvisionerType `db:"provisioner" json:"provisioner"` ActiveVersionID uuid.UUID `db:"active_version_id" json:"active_version_id"` Description string `db:"description" json:"description"` CreatedBy uuid.UUID `db:"created_by" json:"created_by"` Icon string `db:"icon" json:"icon"` UserACL TemplateACL `db:"user_acl" json:"user_acl"` GroupACL TemplateACL `db:"group_acl" json:"group_acl"` DisplayName string `db:"display_name" json:"display_name"` AllowUserCancelWorkspaceJobs bool `db:"allow_user_cancel_workspace_jobs" json:"allow_user_cancel_workspace_jobs"` }
type InsertTemplateVersionParameterParams ¶ added in v0.15.0
type InsertTemplateVersionParameterParams struct { TemplateVersionID uuid.UUID `db:"template_version_id" json:"template_version_id"` Name string `db:"name" json:"name"` Description string `db:"description" json:"description"` Type string `db:"type" json:"type"` Mutable bool `db:"mutable" json:"mutable"` DefaultValue string `db:"default_value" json:"default_value"` Icon string `db:"icon" json:"icon"` Options json.RawMessage `db:"options" json:"options"` ValidationRegex string `db:"validation_regex" json:"validation_regex"` ValidationMin sql.NullInt32 `db:"validation_min" json:"validation_min"` ValidationMax sql.NullInt32 `db:"validation_max" json:"validation_max"` ValidationError string `db:"validation_error" json:"validation_error"` ValidationMonotonic string `db:"validation_monotonic" json:"validation_monotonic"` Required bool `db:"required" json:"required"` DisplayName string `db:"display_name" json:"display_name"` DisplayOrder int32 `db:"display_order" json:"display_order"` Ephemeral bool `db:"ephemeral" json:"ephemeral"` }
type InsertTemplateVersionParams ¶ added in v0.4.0
type InsertTemplateVersionParams struct { ID uuid.UUID `db:"id" json:"id"` TemplateID uuid.NullUUID `db:"template_id" json:"template_id"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` Name string `db:"name" json:"name"` Message string `db:"message" json:"message"` Readme string `db:"readme" json:"readme"` JobID uuid.UUID `db:"job_id" json:"job_id"` CreatedBy uuid.UUID `db:"created_by" json:"created_by"` }
type InsertTemplateVersionVariableParams ¶ added in v0.17.4
type InsertTemplateVersionVariableParams struct { TemplateVersionID uuid.UUID `db:"template_version_id" json:"template_version_id"` Name string `db:"name" json:"name"` Description string `db:"description" json:"description"` Type string `db:"type" json:"type"` Value string `db:"value" json:"value"` DefaultValue string `db:"default_value" json:"default_value"` Required bool `db:"required" json:"required"` Sensitive bool `db:"sensitive" json:"sensitive"` }
type InsertUserGroupsByNameParams ¶ added in v0.17.0
type InsertUserLinkParams ¶ added in v0.8.6
type InsertUserLinkParams struct { UserID uuid.UUID `db:"user_id" json:"user_id"` LoginType LoginType `db:"login_type" json:"login_type"` LinkedID string `db:"linked_id" json:"linked_id"` OAuthAccessToken string `db:"oauth_access_token" json:"oauth_access_token"` OAuthRefreshToken string `db:"oauth_refresh_token" json:"oauth_refresh_token"` OAuthExpiry time.Time `db:"oauth_expiry" json:"oauth_expiry"` }
type InsertUserParams ¶
type InsertUserParams struct { ID uuid.UUID `db:"id" json:"id"` Email string `db:"email" json:"email"` Username string `db:"username" json:"username"` HashedPassword []byte `db:"hashed_password" json:"hashed_password"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` RBACRoles pq.StringArray `db:"rbac_roles" json:"rbac_roles"` LoginType LoginType `db:"login_type" json:"login_type"` }
type InsertWorkspaceAgentMetadataParams ¶ added in v0.21.3
type InsertWorkspaceAgentMetadataParams struct { WorkspaceAgentID uuid.UUID `db:"workspace_agent_id" json:"workspace_agent_id"` DisplayName string `db:"display_name" json:"display_name"` Key string `db:"key" json:"key"` Script string `db:"script" json:"script"` Timeout int64 `db:"timeout" json:"timeout"` Interval int64 `db:"interval" json:"interval"` }
type InsertWorkspaceAgentParams ¶
type InsertWorkspaceAgentParams struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` Name string `db:"name" json:"name"` ResourceID uuid.UUID `db:"resource_id" json:"resource_id"` AuthToken uuid.UUID `db:"auth_token" json:"auth_token"` AuthInstanceID sql.NullString `db:"auth_instance_id" json:"auth_instance_id"` Architecture string `db:"architecture" json:"architecture"` EnvironmentVariables pqtype.NullRawMessage `db:"environment_variables" json:"environment_variables"` OperatingSystem string `db:"operating_system" json:"operating_system"` StartupScript sql.NullString `db:"startup_script" json:"startup_script"` Directory string `db:"directory" json:"directory"` InstanceMetadata pqtype.NullRawMessage `db:"instance_metadata" json:"instance_metadata"` ResourceMetadata pqtype.NullRawMessage `db:"resource_metadata" json:"resource_metadata"` ConnectionTimeoutSeconds int32 `db:"connection_timeout_seconds" json:"connection_timeout_seconds"` TroubleshootingURL string `db:"troubleshooting_url" json:"troubleshooting_url"` MOTDFile string `db:"motd_file" json:"motd_file"` StartupScriptBehavior StartupScriptBehavior `db:"startup_script_behavior" json:"startup_script_behavior"` StartupScriptTimeoutSeconds int32 `db:"startup_script_timeout_seconds" json:"startup_script_timeout_seconds"` ShutdownScript sql.NullString `db:"shutdown_script" json:"shutdown_script"` ShutdownScriptTimeoutSeconds int32 `db:"shutdown_script_timeout_seconds" json:"shutdown_script_timeout_seconds"` }
type InsertWorkspaceAgentStartupLogsParams ¶ added in v0.21.0
type InsertWorkspaceAgentStartupLogsParams struct { AgentID uuid.UUID `db:"agent_id" json:"agent_id"` CreatedAt []time.Time `db:"created_at" json:"created_at"` Output []string `db:"output" json:"output"` Level []LogLevel `db:"level" json:"level"` OutputLength int32 `db:"output_length" json:"output_length"` }
type InsertWorkspaceAgentStatParams ¶ added in v0.18.0
type InsertWorkspaceAgentStatParams struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UserID uuid.UUID `db:"user_id" json:"user_id"` WorkspaceID uuid.UUID `db:"workspace_id" json:"workspace_id"` TemplateID uuid.UUID `db:"template_id" json:"template_id"` AgentID uuid.UUID `db:"agent_id" json:"agent_id"` ConnectionsByProto json.RawMessage `db:"connections_by_proto" json:"connections_by_proto"` ConnectionCount int64 `db:"connection_count" json:"connection_count"` RxPackets int64 `db:"rx_packets" json:"rx_packets"` RxBytes int64 `db:"rx_bytes" json:"rx_bytes"` TxPackets int64 `db:"tx_packets" json:"tx_packets"` TxBytes int64 `db:"tx_bytes" json:"tx_bytes"` SessionCountVSCode int64 `db:"session_count_vscode" json:"session_count_vscode"` SessionCountJetBrains int64 `db:"session_count_jetbrains" json:"session_count_jetbrains"` SessionCountReconnectingPTY int64 `db:"session_count_reconnecting_pty" json:"session_count_reconnecting_pty"` SessionCountSSH int64 `db:"session_count_ssh" json:"session_count_ssh"` ConnectionMedianLatencyMS float64 `db:"connection_median_latency_ms" json:"connection_median_latency_ms"` }
type InsertWorkspaceAppParams ¶ added in v0.6.2
type InsertWorkspaceAppParams struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` AgentID uuid.UUID `db:"agent_id" json:"agent_id"` Slug string `db:"slug" json:"slug"` DisplayName string `db:"display_name" json:"display_name"` Icon string `db:"icon" json:"icon"` Command sql.NullString `db:"command" json:"command"` Url sql.NullString `db:"url" json:"url"` External bool `db:"external" json:"external"` Subdomain bool `db:"subdomain" json:"subdomain"` SharingLevel AppSharingLevel `db:"sharing_level" json:"sharing_level"` HealthcheckUrl string `db:"healthcheck_url" json:"healthcheck_url"` HealthcheckInterval int32 `db:"healthcheck_interval" json:"healthcheck_interval"` HealthcheckThreshold int32 `db:"healthcheck_threshold" json:"healthcheck_threshold"` Health WorkspaceAppHealth `db:"health" json:"health"` }
type InsertWorkspaceBuildParametersParams ¶ added in v0.15.0
type InsertWorkspaceBuildParams ¶
type InsertWorkspaceBuildParams struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` WorkspaceID uuid.UUID `db:"workspace_id" json:"workspace_id"` TemplateVersionID uuid.UUID `db:"template_version_id" json:"template_version_id"` BuildNumber int32 `db:"build_number" json:"build_number"` Transition WorkspaceTransition `db:"transition" json:"transition"` InitiatorID uuid.UUID `db:"initiator_id" json:"initiator_id"` JobID uuid.UUID `db:"job_id" json:"job_id"` ProvisionerState []byte `db:"provisioner_state" json:"provisioner_state"` Deadline time.Time `db:"deadline" json:"deadline"` MaxDeadline time.Time `db:"max_deadline" json:"max_deadline"` Reason BuildReason `db:"reason" json:"reason"` }
type InsertWorkspaceParams ¶
type InsertWorkspaceParams struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` OwnerID uuid.UUID `db:"owner_id" json:"owner_id"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` TemplateID uuid.UUID `db:"template_id" json:"template_id"` Name string `db:"name" json:"name"` AutostartSchedule sql.NullString `db:"autostart_schedule" json:"autostart_schedule"` Ttl sql.NullInt64 `db:"ttl" json:"ttl"` LastUsedAt time.Time `db:"last_used_at" json:"last_used_at"` }
type InsertWorkspaceProxyParams ¶ added in v0.22.0
type InsertWorkspaceProxyParams struct { ID uuid.UUID `db:"id" json:"id"` Name string `db:"name" json:"name"` DisplayName string `db:"display_name" json:"display_name"` Icon string `db:"icon" json:"icon"` TokenHashedSecret []byte `db:"token_hashed_secret" json:"token_hashed_secret"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` }
type InsertWorkspaceResourceMetadataParams ¶ added in v0.8.3
type InsertWorkspaceResourceParams ¶
type InsertWorkspaceResourceParams struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` JobID uuid.UUID `db:"job_id" json:"job_id"` Transition WorkspaceTransition `db:"transition" json:"transition"` Type string `db:"type" json:"type"` Name string `db:"name" json:"name"` Hide bool `db:"hide" json:"hide"` Icon string `db:"icon" json:"icon"` InstanceType sql.NullString `db:"instance_type" json:"instance_type"` DailyCost int32 `db:"daily_cost" json:"daily_cost"` }
type License ¶
type License struct { ID int32 `db:"id" json:"id"` UploadedAt time.Time `db:"uploaded_at" json:"uploaded_at"` JWT string `db:"jwt" json:"jwt"` // exp tracks the claim of the same name in the JWT, and we include it here so that we can easily query for licenses that have not yet expired. Exp time.Time `db:"exp" json:"exp"` UUID uuid.UUID `db:"uuid" json:"uuid"` }
func (License) RBACObject ¶ added in v0.8.7
type LogLevel ¶
type LogLevel string
func AllLogLevelValues ¶ added in v0.15.2
func AllLogLevelValues() []LogLevel
type LogSource ¶
type LogSource string
func AllLogSourceValues ¶ added in v0.15.2
func AllLogSourceValues() []LogSource
type LoginType ¶
type LoginType string
Specifies the method of authentication. "none" is a special case in which no authentication method is allowed.
func AllLoginTypeValues ¶ added in v0.15.2
func AllLoginTypeValues() []LoginType
type NullAPIKeyScope ¶ added in v0.15.2
type NullAPIKeyScope struct { APIKeyScope APIKeyScope `json:"api_key_scope"` Valid bool `json:"valid"` // Valid is true if APIKeyScope is not NULL }
func (*NullAPIKeyScope) Scan ¶ added in v0.15.2
func (ns *NullAPIKeyScope) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullAppSharingLevel ¶ added in v0.15.2
type NullAppSharingLevel struct { AppSharingLevel AppSharingLevel `json:"app_sharing_level"` Valid bool `json:"valid"` // Valid is true if AppSharingLevel is not NULL }
func (*NullAppSharingLevel) Scan ¶ added in v0.15.2
func (ns *NullAppSharingLevel) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullAuditAction ¶ added in v0.15.2
type NullAuditAction struct { AuditAction AuditAction `json:"audit_action"` Valid bool `json:"valid"` // Valid is true if AuditAction is not NULL }
func (*NullAuditAction) Scan ¶ added in v0.15.2
func (ns *NullAuditAction) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullBuildReason ¶ added in v0.15.2
type NullBuildReason struct { BuildReason BuildReason `json:"build_reason"` Valid bool `json:"valid"` // Valid is true if BuildReason is not NULL }
func (*NullBuildReason) Scan ¶ added in v0.15.2
func (ns *NullBuildReason) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullLogLevel ¶ added in v0.15.2
type NullLogLevel struct { LogLevel LogLevel `json:"log_level"` Valid bool `json:"valid"` // Valid is true if LogLevel is not NULL }
func (*NullLogLevel) Scan ¶ added in v0.15.2
func (ns *NullLogLevel) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullLogSource ¶ added in v0.15.2
type NullLogSource struct { LogSource LogSource `json:"log_source"` Valid bool `json:"valid"` // Valid is true if LogSource is not NULL }
func (*NullLogSource) Scan ¶ added in v0.15.2
func (ns *NullLogSource) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullLoginType ¶ added in v0.15.2
type NullLoginType struct { LoginType LoginType `json:"login_type"` Valid bool `json:"valid"` // Valid is true if LoginType is not NULL }
func (*NullLoginType) Scan ¶ added in v0.15.2
func (ns *NullLoginType) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullParameterDestinationScheme ¶ added in v0.15.2
type NullParameterDestinationScheme struct { ParameterDestinationScheme ParameterDestinationScheme `json:"parameter_destination_scheme"` Valid bool `json:"valid"` // Valid is true if ParameterDestinationScheme is not NULL }
func (*NullParameterDestinationScheme) Scan ¶ added in v0.15.2
func (ns *NullParameterDestinationScheme) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullParameterScope ¶ added in v0.15.2
type NullParameterScope struct { ParameterScope ParameterScope `json:"parameter_scope"` Valid bool `json:"valid"` // Valid is true if ParameterScope is not NULL }
func (*NullParameterScope) Scan ¶ added in v0.15.2
func (ns *NullParameterScope) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullParameterSourceScheme ¶ added in v0.15.2
type NullParameterSourceScheme struct { ParameterSourceScheme ParameterSourceScheme `json:"parameter_source_scheme"` Valid bool `json:"valid"` // Valid is true if ParameterSourceScheme is not NULL }
func (*NullParameterSourceScheme) Scan ¶ added in v0.15.2
func (ns *NullParameterSourceScheme) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullParameterTypeSystem ¶ added in v0.15.2
type NullParameterTypeSystem struct { ParameterTypeSystem ParameterTypeSystem `json:"parameter_type_system"` Valid bool `json:"valid"` // Valid is true if ParameterTypeSystem is not NULL }
func (*NullParameterTypeSystem) Scan ¶ added in v0.15.2
func (ns *NullParameterTypeSystem) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullProvisionerJobType ¶ added in v0.15.2
type NullProvisionerJobType struct { ProvisionerJobType ProvisionerJobType `json:"provisioner_job_type"` Valid bool `json:"valid"` // Valid is true if ProvisionerJobType is not NULL }
func (*NullProvisionerJobType) Scan ¶ added in v0.15.2
func (ns *NullProvisionerJobType) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullProvisionerStorageMethod ¶ added in v0.15.2
type NullProvisionerStorageMethod struct { ProvisionerStorageMethod ProvisionerStorageMethod `json:"provisioner_storage_method"` Valid bool `json:"valid"` // Valid is true if ProvisionerStorageMethod is not NULL }
func (*NullProvisionerStorageMethod) Scan ¶ added in v0.15.2
func (ns *NullProvisionerStorageMethod) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullProvisionerType ¶ added in v0.15.2
type NullProvisionerType struct { ProvisionerType ProvisionerType `json:"provisioner_type"` Valid bool `json:"valid"` // Valid is true if ProvisionerType is not NULL }
func (*NullProvisionerType) Scan ¶ added in v0.15.2
func (ns *NullProvisionerType) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullResourceType ¶ added in v0.15.2
type NullResourceType struct { ResourceType ResourceType `json:"resource_type"` Valid bool `json:"valid"` // Valid is true if ResourceType is not NULL }
func (*NullResourceType) Scan ¶ added in v0.15.2
func (ns *NullResourceType) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullStartupScriptBehavior ¶ added in v0.24.0
type NullStartupScriptBehavior struct { StartupScriptBehavior StartupScriptBehavior `json:"startup_script_behavior"` Valid bool `json:"valid"` // Valid is true if StartupScriptBehavior is not NULL }
func (*NullStartupScriptBehavior) Scan ¶ added in v0.24.0
func (ns *NullStartupScriptBehavior) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullUserStatus ¶ added in v0.15.2
type NullUserStatus struct { UserStatus UserStatus `json:"user_status"` Valid bool `json:"valid"` // Valid is true if UserStatus is not NULL }
func (*NullUserStatus) Scan ¶ added in v0.15.2
func (ns *NullUserStatus) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullWorkspaceAgentLifecycleState ¶ added in v0.15.3
type NullWorkspaceAgentLifecycleState struct { WorkspaceAgentLifecycleState WorkspaceAgentLifecycleState `json:"workspace_agent_lifecycle_state"` Valid bool `json:"valid"` // Valid is true if WorkspaceAgentLifecycleState is not NULL }
func (*NullWorkspaceAgentLifecycleState) Scan ¶ added in v0.15.3
func (ns *NullWorkspaceAgentLifecycleState) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullWorkspaceAgentSubsystem ¶ added in v0.23.5
type NullWorkspaceAgentSubsystem struct { WorkspaceAgentSubsystem WorkspaceAgentSubsystem `json:"workspace_agent_subsystem"` Valid bool `json:"valid"` // Valid is true if WorkspaceAgentSubsystem is not NULL }
func (*NullWorkspaceAgentSubsystem) Scan ¶ added in v0.23.5
func (ns *NullWorkspaceAgentSubsystem) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullWorkspaceAppHealth ¶ added in v0.15.2
type NullWorkspaceAppHealth struct { WorkspaceAppHealth WorkspaceAppHealth `json:"workspace_app_health"` Valid bool `json:"valid"` // Valid is true if WorkspaceAppHealth is not NULL }
func (*NullWorkspaceAppHealth) Scan ¶ added in v0.15.2
func (ns *NullWorkspaceAppHealth) Scan(value interface{}) error
Scan implements the Scanner interface.
type NullWorkspaceTransition ¶ added in v0.15.2
type NullWorkspaceTransition struct { WorkspaceTransition WorkspaceTransition `json:"workspace_transition"` Valid bool `json:"valid"` // Valid is true if WorkspaceTransition is not NULL }
func (*NullWorkspaceTransition) Scan ¶ added in v0.15.2
func (ns *NullWorkspaceTransition) Scan(value interface{}) error
Scan implements the Scanner interface.
type Organization ¶
type Organization struct { ID uuid.UUID `db:"id" json:"id"` Name string `db:"name" json:"name"` Description string `db:"description" json:"description"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` }
func (Organization) RBACObject ¶ added in v0.6.0
func (o Organization) RBACObject() rbac.Object
type OrganizationMember ¶
type OrganizationMember struct { UserID uuid.UUID `db:"user_id" json:"user_id"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` Roles []string `db:"roles" json:"roles"` }
func (OrganizationMember) RBACObject ¶ added in v0.6.0
func (m OrganizationMember) RBACObject() rbac.Object
type ParameterDestinationScheme ¶
type ParameterDestinationScheme string
const ( ParameterDestinationSchemeNone ParameterDestinationScheme = "none" ParameterDestinationSchemeEnvironmentVariable ParameterDestinationScheme = "environment_variable" ParameterDestinationSchemeProvisionerVariable ParameterDestinationScheme = "provisioner_variable" )
func AllParameterDestinationSchemeValues ¶ added in v0.15.2
func AllParameterDestinationSchemeValues() []ParameterDestinationScheme
func (*ParameterDestinationScheme) Scan ¶
func (e *ParameterDestinationScheme) Scan(src interface{}) error
func (ParameterDestinationScheme) Valid ¶ added in v0.15.2
func (e ParameterDestinationScheme) Valid() bool
type ParameterSchema ¶
type ParameterSchema struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` JobID uuid.UUID `db:"job_id" json:"job_id"` Name string `db:"name" json:"name"` Description string `db:"description" json:"description"` DefaultSourceScheme ParameterSourceScheme `db:"default_source_scheme" json:"default_source_scheme"` DefaultSourceValue string `db:"default_source_value" json:"default_source_value"` AllowOverrideSource bool `db:"allow_override_source" json:"allow_override_source"` DefaultDestinationScheme ParameterDestinationScheme `db:"default_destination_scheme" json:"default_destination_scheme"` AllowOverrideDestination bool `db:"allow_override_destination" json:"allow_override_destination"` DefaultRefresh string `db:"default_refresh" json:"default_refresh"` RedisplayValue bool `db:"redisplay_value" json:"redisplay_value"` ValidationError string `db:"validation_error" json:"validation_error"` ValidationCondition string `db:"validation_condition" json:"validation_condition"` ValidationTypeSystem ParameterTypeSystem `db:"validation_type_system" json:"validation_type_system"` ValidationValueType string `db:"validation_value_type" json:"validation_value_type"` Index int32 `db:"index" json:"index"` }
type ParameterScope ¶
type ParameterScope string
const ( ParameterScopeTemplate ParameterScope = "template" ParameterScopeImportJob ParameterScope = "import_job" ParameterScopeWorkspace ParameterScope = "workspace" )
func AllParameterScopeValues ¶ added in v0.15.2
func AllParameterScopeValues() []ParameterScope
func (*ParameterScope) Scan ¶
func (e *ParameterScope) Scan(src interface{}) error
func (ParameterScope) Valid ¶ added in v0.15.2
func (e ParameterScope) Valid() bool
type ParameterSourceScheme ¶
type ParameterSourceScheme string
const ( ParameterSourceSchemeNone ParameterSourceScheme = "none" ParameterSourceSchemeData ParameterSourceScheme = "data" )
func AllParameterSourceSchemeValues ¶ added in v0.15.2
func AllParameterSourceSchemeValues() []ParameterSourceScheme
func (*ParameterSourceScheme) Scan ¶
func (e *ParameterSourceScheme) Scan(src interface{}) error
func (ParameterSourceScheme) Valid ¶ added in v0.15.2
func (e ParameterSourceScheme) Valid() bool
type ParameterTypeSystem ¶
type ParameterTypeSystem string
const ( ParameterTypeSystemNone ParameterTypeSystem = "none" ParameterTypeSystemHCL ParameterTypeSystem = "hcl" )
func AllParameterTypeSystemValues ¶ added in v0.15.2
func AllParameterTypeSystemValues() []ParameterTypeSystem
func (*ParameterTypeSystem) Scan ¶
func (e *ParameterTypeSystem) Scan(src interface{}) error
func (ParameterTypeSystem) Valid ¶ added in v0.15.2
func (e ParameterTypeSystem) Valid() bool
type ParameterValue ¶
type ParameterValue struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` Scope ParameterScope `db:"scope" json:"scope"` ScopeID uuid.UUID `db:"scope_id" json:"scope_id"` Name string `db:"name" json:"name"` SourceScheme ParameterSourceScheme `db:"source_scheme" json:"source_scheme"` SourceValue string `db:"source_value" json:"source_value"` DestinationScheme ParameterDestinationScheme `db:"destination_scheme" json:"destination_scheme"` }
type ProvisionerDaemon ¶
type ProvisionerDaemon struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt sql.NullTime `db:"updated_at" json:"updated_at"` Name string `db:"name" json:"name"` Provisioners []ProvisionerType `db:"provisioners" json:"provisioners"` ReplicaID uuid.NullUUID `db:"replica_id" json:"replica_id"` Tags StringMap `db:"tags" json:"tags"` }
func (ProvisionerDaemon) RBACObject ¶ added in v0.6.1
func (p ProvisionerDaemon) RBACObject() rbac.Object
type ProvisionerJob ¶
type ProvisionerJob struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` StartedAt sql.NullTime `db:"started_at" json:"started_at"` CanceledAt sql.NullTime `db:"canceled_at" json:"canceled_at"` CompletedAt sql.NullTime `db:"completed_at" json:"completed_at"` Error sql.NullString `db:"error" json:"error"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` InitiatorID uuid.UUID `db:"initiator_id" json:"initiator_id"` Provisioner ProvisionerType `db:"provisioner" json:"provisioner"` StorageMethod ProvisionerStorageMethod `db:"storage_method" json:"storage_method"` Type ProvisionerJobType `db:"type" json:"type"` Input json.RawMessage `db:"input" json:"input"` WorkerID uuid.NullUUID `db:"worker_id" json:"worker_id"` FileID uuid.UUID `db:"file_id" json:"file_id"` Tags StringMap `db:"tags" json:"tags"` ErrorCode sql.NullString `db:"error_code" json:"error_code"` TraceMetadata pqtype.NullRawMessage `db:"trace_metadata" json:"trace_metadata"` }
type ProvisionerJobLog ¶
type ProvisionerJobLog struct { JobID uuid.UUID `db:"job_id" json:"job_id"` CreatedAt time.Time `db:"created_at" json:"created_at"` Source LogSource `db:"source" json:"source"` Level LogLevel `db:"level" json:"level"` Stage string `db:"stage" json:"stage"` Output string `db:"output" json:"output"` ID int64 `db:"id" json:"id"` }
type ProvisionerJobType ¶
type ProvisionerJobType string
const ( ProvisionerJobTypeTemplateVersionImport ProvisionerJobType = "template_version_import" ProvisionerJobTypeWorkspaceBuild ProvisionerJobType = "workspace_build" ProvisionerJobTypeTemplateVersionDryRun ProvisionerJobType = "template_version_dry_run" )
func AllProvisionerJobTypeValues ¶ added in v0.15.2
func AllProvisionerJobTypeValues() []ProvisionerJobType
func (*ProvisionerJobType) Scan ¶
func (e *ProvisionerJobType) Scan(src interface{}) error
func (ProvisionerJobType) Valid ¶ added in v0.15.2
func (e ProvisionerJobType) Valid() bool
type ProvisionerStorageMethod ¶
type ProvisionerStorageMethod string
const (
ProvisionerStorageMethodFile ProvisionerStorageMethod = "file"
)
func AllProvisionerStorageMethodValues ¶ added in v0.15.2
func AllProvisionerStorageMethodValues() []ProvisionerStorageMethod
func (*ProvisionerStorageMethod) Scan ¶
func (e *ProvisionerStorageMethod) Scan(src interface{}) error
func (ProvisionerStorageMethod) Valid ¶ added in v0.15.2
func (e ProvisionerStorageMethod) Valid() bool
type ProvisionerType ¶
type ProvisionerType string
const ( ProvisionerTypeEcho ProvisionerType = "echo" ProvisionerTypeTerraform ProvisionerType = "terraform" )
func AllProvisionerTypeValues ¶ added in v0.15.2
func AllProvisionerTypeValues() []ProvisionerType
func (*ProvisionerType) Scan ¶
func (e *ProvisionerType) Scan(src interface{}) error
func (ProvisionerType) Valid ¶ added in v0.15.2
func (e ProvisionerType) Valid() bool
type RegisterWorkspaceProxyParams ¶ added in v0.23.0
type Replica ¶ added in v0.10.0
type Replica struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` StartedAt time.Time `db:"started_at" json:"started_at"` StoppedAt sql.NullTime `db:"stopped_at" json:"stopped_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` Hostname string `db:"hostname" json:"hostname"` RegionID int32 `db:"region_id" json:"region_id"` RelayAddress string `db:"relay_address" json:"relay_address"` DatabaseLatency int32 `db:"database_latency" json:"database_latency"` Version string `db:"version" json:"version"` Error string `db:"error" json:"error"` }
type ResourceType ¶ added in v0.5.3
type ResourceType string
const ( ResourceTypeOrganization ResourceType = "organization" ResourceTypeTemplate ResourceType = "template" ResourceTypeTemplateVersion ResourceType = "template_version" ResourceTypeUser ResourceType = "user" ResourceTypeWorkspace ResourceType = "workspace" ResourceTypeGitSshKey ResourceType = "git_ssh_key" ResourceTypeApiKey ResourceType = "api_key" ResourceTypeGroup ResourceType = "group" ResourceTypeWorkspaceBuild ResourceType = "workspace_build" ResourceTypeLicense ResourceType = "license" ResourceTypeWorkspaceProxy ResourceType = "workspace_proxy" ResourceTypeConvertLogin ResourceType = "convert_login" )
func AllResourceTypeValues ¶ added in v0.15.2
func AllResourceTypeValues() []ResourceType
func (*ResourceType) Scan ¶ added in v0.5.3
func (e *ResourceType) Scan(src interface{}) error
func (ResourceType) Valid ¶ added in v0.15.2
func (e ResourceType) Valid() bool
type SiteConfig ¶ added in v0.7.2
type StartupScriptBehavior ¶ added in v0.24.0
type StartupScriptBehavior string
const ( StartupScriptBehaviorBlocking StartupScriptBehavior = "blocking" StartupScriptBehaviorNonBlocking StartupScriptBehavior = "non-blocking" )
func AllStartupScriptBehaviorValues ¶ added in v0.24.0
func AllStartupScriptBehaviorValues() []StartupScriptBehavior
func (*StartupScriptBehavior) Scan ¶ added in v0.24.0
func (e *StartupScriptBehavior) Scan(src interface{}) error
func (StartupScriptBehavior) Valid ¶ added in v0.24.0
func (e StartupScriptBehavior) Valid() bool
type Store ¶
type Store interface { Ping(ctx context.Context) (time.Duration, error) InTx(func(Store) error, *sql.TxOptions) error // contains filtered or unexported methods }
Store contains all queryable database functions. It extends the generated interface to add transaction support.
type TailnetAgent ¶ added in v0.25.0
type TailnetClient ¶ added in v0.25.0
type TailnetCoordinator ¶ added in v0.25.0
type TailnetCoordinator struct { ID uuid.UUID `db:"id" json:"id"` HeartbeatAt time.Time `db:"heartbeat_at" json:"heartbeat_at"` }
We keep this separate from replicas in case we need to break the coordinator out into its own service
type Template ¶ added in v0.4.0
type Template struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` Deleted bool `db:"deleted" json:"deleted"` Name string `db:"name" json:"name"` Provisioner ProvisionerType `db:"provisioner" json:"provisioner"` ActiveVersionID uuid.UUID `db:"active_version_id" json:"active_version_id"` Description string `db:"description" json:"description"` DefaultTTL int64 `db:"default_ttl" json:"default_ttl"` CreatedBy uuid.UUID `db:"created_by" json:"created_by"` Icon string `db:"icon" json:"icon"` UserACL TemplateACL `db:"user_acl" json:"user_acl"` GroupACL TemplateACL `db:"group_acl" json:"group_acl"` DisplayName string `db:"display_name" json:"display_name"` AllowUserCancelWorkspaceJobs bool `db:"allow_user_cancel_workspace_jobs" json:"allow_user_cancel_workspace_jobs"` MaxTTL int64 `db:"max_ttl" json:"max_ttl"` AllowUserAutostart bool `db:"allow_user_autostart" json:"allow_user_autostart"` AllowUserAutostop bool `db:"allow_user_autostop" json:"allow_user_autostop"` FailureTTL int64 `db:"failure_ttl" json:"failure_ttl"` InactivityTTL int64 `db:"inactivity_ttl" json:"inactivity_ttl"` LockedTTL int64 `db:"locked_ttl" json:"locked_ttl"` RestartRequirementDaysOfWeek int16 `db:"restart_requirement_days_of_week" json:"restart_requirement_days_of_week"` RestartRequirementWeeks int64 `db:"restart_requirement_weeks" json:"restart_requirement_weeks"` CreatedByAvatarURL string `db:"created_by_avatar_url" json:"created_by_avatar_url"` CreatedByUsername string `db:"created_by_username" json:"created_by_username"` }
Joins in the username + avatar url of the created by user.
func (Template) RBACObject ¶ added in v0.6.0
type TemplateACL ¶ added in v0.9.9
TemplateACL is a map of ids to permissions.
func (*TemplateACL) Scan ¶ added in v0.10.2
func (t *TemplateACL) Scan(src interface{}) error
type TemplateGroup ¶ added in v0.9.9
type TemplateTable ¶ added in v0.26.2
type TemplateTable struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` Deleted bool `db:"deleted" json:"deleted"` Name string `db:"name" json:"name"` Provisioner ProvisionerType `db:"provisioner" json:"provisioner"` ActiveVersionID uuid.UUID `db:"active_version_id" json:"active_version_id"` Description string `db:"description" json:"description"` // The default duration for autostop for workspaces created from this template. DefaultTTL int64 `db:"default_ttl" json:"default_ttl"` CreatedBy uuid.UUID `db:"created_by" json:"created_by"` Icon string `db:"icon" json:"icon"` UserACL TemplateACL `db:"user_acl" json:"user_acl"` GroupACL TemplateACL `db:"group_acl" json:"group_acl"` // Display name is a custom, human-friendly template name that user can set. DisplayName string `db:"display_name" json:"display_name"` // Allow users to cancel in-progress workspace jobs. AllowUserCancelWorkspaceJobs bool `db:"allow_user_cancel_workspace_jobs" json:"allow_user_cancel_workspace_jobs"` MaxTTL int64 `db:"max_ttl" json:"max_ttl"` // Allow users to specify an autostart schedule for workspaces (enterprise). AllowUserAutostart bool `db:"allow_user_autostart" json:"allow_user_autostart"` // Allow users to specify custom autostop values for workspaces (enterprise). AllowUserAutostop bool `db:"allow_user_autostop" json:"allow_user_autostop"` FailureTTL int64 `db:"failure_ttl" json:"failure_ttl"` InactivityTTL int64 `db:"inactivity_ttl" json:"inactivity_ttl"` LockedTTL int64 `db:"locked_ttl" json:"locked_ttl"` // A bitmap of days of week to restart the workspace on, starting with Monday as the 0th bit, and Sunday as the 6th bit. The 7th bit is unused. RestartRequirementDaysOfWeek int16 `db:"restart_requirement_days_of_week" json:"restart_requirement_days_of_week"` // The number of weeks between restarts. 0 or 1 weeks means "every week", 2 week means "every second week", etc. Weeks are counted from January 2, 2023, which is the first Monday of 2023. This is to ensure workspaces are started consistently for all customers on the same n-week cycles. RestartRequirementWeeks int64 `db:"restart_requirement_weeks" json:"restart_requirement_weeks"` }
type TemplateUser ¶ added in v0.9.9
type TemplateVersion ¶ added in v0.4.0
type TemplateVersion struct { ID uuid.UUID `db:"id" json:"id"` TemplateID uuid.NullUUID `db:"template_id" json:"template_id"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` Name string `db:"name" json:"name"` Readme string `db:"readme" json:"readme"` JobID uuid.UUID `db:"job_id" json:"job_id"` CreatedBy uuid.UUID `db:"created_by" json:"created_by"` // IDs of Git auth providers for a specific template version GitAuthProviders []string `db:"git_auth_providers" json:"git_auth_providers"` // Message describing the changes in this version of the template, similar to a Git commit message. Like a commit message, this should be a short, high-level description of the changes in this version of the template. This message is immutable and should not be updated after the fact. Message string `db:"message" json:"message"` }
func (TemplateVersion) RBACObject ¶ added in v0.6.0
func (TemplateVersion) RBACObject(template Template) rbac.Object
func (TemplateVersion) RBACObjectNoTemplate ¶ added in v0.17.2
func (v TemplateVersion) RBACObjectNoTemplate() rbac.Object
RBACObjectNoTemplate is for orphaned template versions.
type TemplateVersionParameter ¶ added in v0.15.0
type TemplateVersionParameter struct { TemplateVersionID uuid.UUID `db:"template_version_id" json:"template_version_id"` // Parameter name Name string `db:"name" json:"name"` // Parameter description Description string `db:"description" json:"description"` // Parameter type Type string `db:"type" json:"type"` // Is parameter mutable? Mutable bool `db:"mutable" json:"mutable"` // Default value DefaultValue string `db:"default_value" json:"default_value"` // Icon Icon string `db:"icon" json:"icon"` // Additional options Options json.RawMessage `db:"options" json:"options"` // Validation: regex pattern ValidationRegex string `db:"validation_regex" json:"validation_regex"` // Validation: minimum length of value ValidationMin sql.NullInt32 `db:"validation_min" json:"validation_min"` // Validation: maximum length of value ValidationMax sql.NullInt32 `db:"validation_max" json:"validation_max"` // Validation: error displayed when the regex does not match. ValidationError string `db:"validation_error" json:"validation_error"` // Validation: consecutive values preserve the monotonic order ValidationMonotonic string `db:"validation_monotonic" json:"validation_monotonic"` // Is parameter required? Required bool `db:"required" json:"required"` // Display name of the rich parameter DisplayName string `db:"display_name" json:"display_name"` // Specifies the order in which to display parameters in user interfaces. DisplayOrder int32 `db:"display_order" json:"display_order"` // The value of an ephemeral parameter will not be preserved between consecutive workspace builds. Ephemeral bool `db:"ephemeral" json:"ephemeral"` }
type TemplateVersionVariable ¶ added in v0.17.4
type TemplateVersionVariable struct { TemplateVersionID uuid.UUID `db:"template_version_id" json:"template_version_id"` // Variable name Name string `db:"name" json:"name"` // Variable description Description string `db:"description" json:"description"` // Variable type Type string `db:"type" json:"type"` // Variable value Value string `db:"value" json:"value"` // Variable default value DefaultValue string `db:"default_value" json:"default_value"` // Required variables needs a default value or a value provided by template admin Required bool `db:"required" json:"required"` // Sensitive variables have their values redacted in logs or site UI Sensitive bool `db:"sensitive" json:"sensitive"` }
type UniqueConstraint ¶ added in v0.8.7
type UniqueConstraint string
UniqueConstraint represents a named unique constraint on a table.
const ( UniqueFilesHashCreatedByKey UniqueConstraint = "files_hash_created_by_key" // ALTER TABLE ONLY files ADD CONSTRAINT files_hash_created_by_key UNIQUE (hash, created_by); UniqueGitAuthLinksProviderIDUserIDKey UniqueConstraint = "git_auth_links_provider_id_user_id_key" // ALTER TABLE ONLY git_auth_links ADD CONSTRAINT git_auth_links_provider_id_user_id_key UNIQUE (provider_id, user_id); UniqueGroupMembersUserIDGroupIDKey UniqueConstraint = "group_members_user_id_group_id_key" // ALTER TABLE ONLY group_members ADD CONSTRAINT group_members_user_id_group_id_key UNIQUE (user_id, group_id); UniqueGroupsNameOrganizationIDKey UniqueConstraint = "groups_name_organization_id_key" // ALTER TABLE ONLY groups ADD CONSTRAINT groups_name_organization_id_key UNIQUE (name, organization_id); UniqueLicensesJWTKey UniqueConstraint = "licenses_jwt_key" // ALTER TABLE ONLY licenses ADD CONSTRAINT licenses_jwt_key UNIQUE (jwt); UniqueParameterSchemasJobIDNameKey UniqueConstraint = "parameter_schemas_job_id_name_key" // ALTER TABLE ONLY parameter_schemas ADD CONSTRAINT parameter_schemas_job_id_name_key UNIQUE (job_id, name); UniqueParameterValuesScopeIDNameKey UniqueConstraint = "parameter_values_scope_id_name_key" // ALTER TABLE ONLY parameter_values ADD CONSTRAINT parameter_values_scope_id_name_key UNIQUE (scope_id, name); UniqueProvisionerDaemonsNameKey UniqueConstraint = "provisioner_daemons_name_key" // ALTER TABLE ONLY provisioner_daemons ADD CONSTRAINT provisioner_daemons_name_key UNIQUE (name); UniqueSiteConfigsKeyKey UniqueConstraint = "site_configs_key_key" // ALTER TABLE ONLY site_configs ADD CONSTRAINT site_configs_key_key UNIQUE (key); UniqueTemplateVersionParametersTemplateVersionIDNameKey UniqueConstraint = "template_version_parameters_template_version_id_name_key" // ALTER TABLE ONLY template_version_parameters ADD CONSTRAINT template_version_parameters_template_version_id_name_key UNIQUE (template_version_id, name); UniqueTemplateVersionVariablesTemplateVersionIDNameKey UniqueConstraint = "template_version_variables_template_version_id_name_key" // ALTER TABLE ONLY template_version_variables ADD CONSTRAINT template_version_variables_template_version_id_name_key UNIQUE (template_version_id, name); UniqueTemplateVersionsTemplateIDNameKey UniqueConstraint = "template_versions_template_id_name_key" // ALTER TABLE ONLY template_versions ADD CONSTRAINT template_versions_template_id_name_key UNIQUE (template_id, name); UniqueWorkspaceAppsAgentIDSlugIndex UniqueConstraint = "workspace_apps_agent_id_slug_idx" // ALTER TABLE ONLY workspace_apps ADD CONSTRAINT workspace_apps_agent_id_slug_idx UNIQUE (agent_id, slug); UniqueWorkspaceBuildParametersWorkspaceBuildIDNameKey UniqueConstraint = "workspace_build_parameters_workspace_build_id_name_key" // ALTER TABLE ONLY workspace_build_parameters ADD CONSTRAINT workspace_build_parameters_workspace_build_id_name_key UNIQUE (workspace_build_id, name); UniqueWorkspaceBuildsJobIDKey UniqueConstraint = "workspace_builds_job_id_key" // ALTER TABLE ONLY workspace_builds ADD CONSTRAINT workspace_builds_job_id_key UNIQUE (job_id); UniqueWorkspaceBuildsWorkspaceIDBuildNumberKey UniqueConstraint = "workspace_builds_workspace_id_build_number_key" // ALTER TABLE ONLY workspace_builds ADD CONSTRAINT workspace_builds_workspace_id_build_number_key UNIQUE (workspace_id, build_number); UniqueWorkspaceResourceMetadataName UniqueConstraint = "workspace_resource_metadata_name" // ALTER TABLE ONLY workspace_resource_metadata ADD CONSTRAINT workspace_resource_metadata_name UNIQUE (workspace_resource_id, key); UniqueIndexApiKeyName UniqueConstraint = "idx_api_key_name" // CREATE UNIQUE INDEX idx_api_key_name ON api_keys USING btree (user_id, token_name) WHERE (login_type = 'token'::login_type); UniqueIndexOrganizationName UniqueConstraint = "idx_organization_name" // CREATE UNIQUE INDEX idx_organization_name ON organizations USING btree (name); UniqueIndexOrganizationNameLower UniqueConstraint = "idx_organization_name_lower" // CREATE UNIQUE INDEX idx_organization_name_lower ON organizations USING btree (lower(name)); UniqueIndexUsersEmail UniqueConstraint = "idx_users_email" // CREATE UNIQUE INDEX idx_users_email ON users USING btree (email) WHERE (deleted = false); UniqueIndexUsersUsername UniqueConstraint = "idx_users_username" // CREATE UNIQUE INDEX idx_users_username ON users USING btree (username) WHERE (deleted = false); UniqueTemplatesOrganizationIDNameIndex UniqueConstraint = "templates_organization_id_name_idx" // CREATE UNIQUE INDEX templates_organization_id_name_idx ON templates USING btree (organization_id, lower((name)::text)) WHERE (deleted = false); UniqueUsersEmailLowerIndex UniqueConstraint = "users_email_lower_idx" // CREATE UNIQUE INDEX users_email_lower_idx ON users USING btree (lower(email)) WHERE (deleted = false); UniqueUsersUsernameLowerIndex UniqueConstraint = "users_username_lower_idx" // CREATE UNIQUE INDEX users_username_lower_idx ON users USING btree (lower(username)) WHERE (deleted = false); UniqueWorkspaceProxiesLowerNameIndex UniqueConstraint = "workspace_proxies_lower_name_idx" // CREATE UNIQUE INDEX workspace_proxies_lower_name_idx ON workspace_proxies USING btree (lower(name)) WHERE (deleted = false); UniqueWorkspacesOwnerIDLowerIndex UniqueConstraint = "workspaces_owner_id_lower_idx" // CREATE UNIQUE INDEX workspaces_owner_id_lower_idx ON workspaces USING btree (owner_id, lower((name)::text)) WHERE (deleted = false); )
UniqueConstraint enums.
type UpdateAPIKeyByIDParams ¶
type UpdateGitAuthLinkParams ¶ added in v0.11.0
type UpdateGitAuthLinkParams struct { ProviderID string `db:"provider_id" json:"provider_id"` UserID uuid.UUID `db:"user_id" json:"user_id"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` OAuthAccessToken string `db:"oauth_access_token" json:"oauth_access_token"` OAuthRefreshToken string `db:"oauth_refresh_token" json:"oauth_refresh_token"` OAuthExpiry time.Time `db:"oauth_expiry" json:"oauth_expiry"` }
type UpdateGitSSHKeyParams ¶ added in v0.4.0
type UpdateGroupByIDParams ¶ added in v0.9.9
type UpdateMemberRolesParams ¶ added in v0.5.2
type UpdateProvisionerJobWithCompleteByIDParams ¶
type UpdateProvisionerJobWithCompleteByIDParams struct { ID uuid.UUID `db:"id" json:"id"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` CompletedAt sql.NullTime `db:"completed_at" json:"completed_at"` Error sql.NullString `db:"error" json:"error"` ErrorCode sql.NullString `db:"error_code" json:"error_code"` }
type UpdateReplicaParams ¶ added in v0.10.0
type UpdateReplicaParams struct { ID uuid.UUID `db:"id" json:"id"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` StartedAt time.Time `db:"started_at" json:"started_at"` StoppedAt sql.NullTime `db:"stopped_at" json:"stopped_at"` RelayAddress string `db:"relay_address" json:"relay_address"` RegionID int32 `db:"region_id" json:"region_id"` Hostname string `db:"hostname" json:"hostname"` Version string `db:"version" json:"version"` Error string `db:"error" json:"error"` DatabaseLatency int32 `db:"database_latency" json:"database_latency"` }
type UpdateTemplateACLByIDParams ¶ added in v0.10.2
type UpdateTemplateACLByIDParams struct { GroupACL TemplateACL `db:"group_acl" json:"group_acl"` UserACL TemplateACL `db:"user_acl" json:"user_acl"` ID uuid.UUID `db:"id" json:"id"` }
type UpdateTemplateActiveVersionByIDParams ¶ added in v0.4.0
type UpdateTemplateDeletedByIDParams ¶ added in v0.4.0
type UpdateTemplateMetaByIDParams ¶ added in v0.6.3
type UpdateTemplateMetaByIDParams struct { ID uuid.UUID `db:"id" json:"id"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` Description string `db:"description" json:"description"` Name string `db:"name" json:"name"` Icon string `db:"icon" json:"icon"` DisplayName string `db:"display_name" json:"display_name"` AllowUserCancelWorkspaceJobs bool `db:"allow_user_cancel_workspace_jobs" json:"allow_user_cancel_workspace_jobs"` }
type UpdateTemplateScheduleByIDParams ¶ added in v0.19.0
type UpdateTemplateScheduleByIDParams struct { ID uuid.UUID `db:"id" json:"id"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` AllowUserAutostart bool `db:"allow_user_autostart" json:"allow_user_autostart"` AllowUserAutostop bool `db:"allow_user_autostop" json:"allow_user_autostop"` DefaultTTL int64 `db:"default_ttl" json:"default_ttl"` MaxTTL int64 `db:"max_ttl" json:"max_ttl"` RestartRequirementDaysOfWeek int16 `db:"restart_requirement_days_of_week" json:"restart_requirement_days_of_week"` RestartRequirementWeeks int64 `db:"restart_requirement_weeks" json:"restart_requirement_weeks"` FailureTTL int64 `db:"failure_ttl" json:"failure_ttl"` InactivityTTL int64 `db:"inactivity_ttl" json:"inactivity_ttl"` LockedTTL int64 `db:"locked_ttl" json:"locked_ttl"` }
type UpdateTemplateVersionByIDParams ¶ added in v0.4.0
type UpdateTemplateVersionDescriptionByJobIDParams ¶ added in v0.5.10
type UpdateTemplateVersionGitAuthProvidersByJobIDParams ¶ added in v0.18.0
type UpdateUserDeletedByIDParams ¶ added in v0.8.15
type UpdateUserHashedPasswordParams ¶ added in v0.5.5
type UpdateUserLastSeenAtParams ¶ added in v0.9.0
type UpdateUserLinkParams ¶ added in v0.8.6
type UpdateUserLinkParams struct { OAuthAccessToken string `db:"oauth_access_token" json:"oauth_access_token"` OAuthRefreshToken string `db:"oauth_refresh_token" json:"oauth_refresh_token"` OAuthExpiry time.Time `db:"oauth_expiry" json:"oauth_expiry"` UserID uuid.UUID `db:"user_id" json:"user_id"` LoginType LoginType `db:"login_type" json:"login_type"` }
type UpdateUserLinkedIDParams ¶ added in v0.8.6
type UpdateUserLoginTypeParams ¶ added in v0.25.0
type UpdateUserProfileParams ¶ added in v0.4.2
type UpdateUserQuietHoursScheduleParams ¶ added in v0.26.2
type UpdateUserRolesParams ¶ added in v0.5.2
type UpdateUserStatusParams ¶ added in v0.5.1
type UpdateUserStatusParams struct { ID uuid.UUID `db:"id" json:"id"` Status UserStatus `db:"status" json:"status"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` }
type UpdateWorkspaceAgentConnectionByIDParams ¶
type UpdateWorkspaceAgentConnectionByIDParams struct { ID uuid.UUID `db:"id" json:"id"` FirstConnectedAt sql.NullTime `db:"first_connected_at" json:"first_connected_at"` LastConnectedAt sql.NullTime `db:"last_connected_at" json:"last_connected_at"` LastConnectedReplicaID uuid.NullUUID `db:"last_connected_replica_id" json:"last_connected_replica_id"` DisconnectedAt sql.NullTime `db:"disconnected_at" json:"disconnected_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` }
type UpdateWorkspaceAgentLifecycleStateByIDParams ¶ added in v0.15.3
type UpdateWorkspaceAgentMetadataParams ¶ added in v0.21.3
type UpdateWorkspaceAgentMetadataParams struct { WorkspaceAgentID uuid.UUID `db:"workspace_agent_id" json:"workspace_agent_id"` Key string `db:"key" json:"key"` Value string `db:"value" json:"value"` Error string `db:"error" json:"error"` CollectedAt time.Time `db:"collected_at" json:"collected_at"` }
type UpdateWorkspaceAgentStartupByIDParams ¶ added in v0.17.1
type UpdateWorkspaceAgentStartupByIDParams struct { ID uuid.UUID `db:"id" json:"id"` Version string `db:"version" json:"version"` ExpandedDirectory string `db:"expanded_directory" json:"expanded_directory"` Subsystem WorkspaceAgentSubsystem `db:"subsystem" json:"subsystem"` }
type UpdateWorkspaceAgentStartupLogOverflowByIDParams ¶ added in v0.21.0
type UpdateWorkspaceAppHealthByIDParams ¶ added in v0.9.0
type UpdateWorkspaceAppHealthByIDParams struct { ID uuid.UUID `db:"id" json:"id"` Health WorkspaceAppHealth `db:"health" json:"health"` }
type UpdateWorkspaceAutostartParams ¶ added in v0.4.1
type UpdateWorkspaceAutostartParams struct { ID uuid.UUID `db:"id" json:"id"` AutostartSchedule sql.NullString `db:"autostart_schedule" json:"autostart_schedule"` }
type UpdateWorkspaceBuildByIDParams ¶
type UpdateWorkspaceBuildByIDParams struct { ID uuid.UUID `db:"id" json:"id"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` ProvisionerState []byte `db:"provisioner_state" json:"provisioner_state"` Deadline time.Time `db:"deadline" json:"deadline"` MaxDeadline time.Time `db:"max_deadline" json:"max_deadline"` }
type UpdateWorkspaceBuildCostByIDParams ¶ added in v0.12.7
type UpdateWorkspaceLastUsedAtParams ¶ added in v0.8.12
type UpdateWorkspaceLockedDeletingAtParams ¶ added in v0.26.2
type UpdateWorkspaceParams ¶ added in v0.8.7
type UpdateWorkspaceProxyDeletedParams ¶ added in v0.22.0
type UpdateWorkspaceProxyParams ¶ added in v0.22.0
type UpdateWorkspaceTTLParams ¶ added in v0.6.0
type UpdateWorkspacesDeletingAtByTemplateIDParams ¶ added in v0.26.2
type UpsertDefaultProxyParams ¶ added in v0.24.0
type UpsertTailnetAgentParams ¶ added in v0.25.0
type UpsertTailnetClientParams ¶ added in v0.25.0
type User ¶
type User struct { ID uuid.UUID `db:"id" json:"id"` Email string `db:"email" json:"email"` Username string `db:"username" json:"username"` HashedPassword []byte `db:"hashed_password" json:"hashed_password"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` Status UserStatus `db:"status" json:"status"` RBACRoles pq.StringArray `db:"rbac_roles" json:"rbac_roles"` LoginType LoginType `db:"login_type" json:"login_type"` AvatarURL sql.NullString `db:"avatar_url" json:"avatar_url"` Deleted bool `db:"deleted" json:"deleted"` LastSeenAt time.Time `db:"last_seen_at" json:"last_seen_at"` // Daily (!) cron schedule (with optional CRON_TZ) signifying the start of the user's quiet hours. If empty, the default quiet hours on the instance is used instead. QuietHoursSchedule string `db:"quiet_hours_schedule" json:"quiet_hours_schedule"` }
func ConvertUserRows ¶ added in v0.12.8
func ConvertUserRows(rows []GetUsersRow) []User
func (User) RBACObject ¶ added in v0.7.5
RBACObject returns the RBAC object for the site wide user resource. If you are trying to get the RBAC object for the UserData, use u.UserDataRBACObject() instead.
func (User) UserDataRBACObject ¶ added in v0.15.1
type UserLink ¶ added in v0.8.6
type UserLink struct { UserID uuid.UUID `db:"user_id" json:"user_id"` LoginType LoginType `db:"login_type" json:"login_type"` LinkedID string `db:"linked_id" json:"linked_id"` OAuthAccessToken string `db:"oauth_access_token" json:"oauth_access_token"` OAuthRefreshToken string `db:"oauth_refresh_token" json:"oauth_refresh_token"` OAuthExpiry time.Time `db:"oauth_expiry" json:"oauth_expiry"` }
func (UserLink) RBACObject ¶ added in v0.17.2
type UserStatus ¶ added in v0.5.1
type UserStatus string
const ( UserStatusActive UserStatus = "active" UserStatusSuspended UserStatus = "suspended" )
func AllUserStatusValues ¶ added in v0.15.2
func AllUserStatusValues() []UserStatus
func (*UserStatus) Scan ¶ added in v0.5.1
func (e *UserStatus) Scan(src interface{}) error
func (UserStatus) Valid ¶ added in v0.15.2
func (e UserStatus) Valid() bool
type VisibleUser ¶ added in v0.26.2
type VisibleUser struct { ID uuid.UUID `db:"id" json:"id"` Username string `db:"username" json:"username"` AvatarURL sql.NullString `db:"avatar_url" json:"avatar_url"` }
Visible fields of users are allowed to be joined with other tables for including context of other resources.
type Workspace ¶
type Workspace struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` OwnerID uuid.UUID `db:"owner_id" json:"owner_id"` OrganizationID uuid.UUID `db:"organization_id" json:"organization_id"` TemplateID uuid.UUID `db:"template_id" json:"template_id"` Deleted bool `db:"deleted" json:"deleted"` Name string `db:"name" json:"name"` AutostartSchedule sql.NullString `db:"autostart_schedule" json:"autostart_schedule"` Ttl sql.NullInt64 `db:"ttl" json:"ttl"` LastUsedAt time.Time `db:"last_used_at" json:"last_used_at"` LockedAt sql.NullTime `db:"locked_at" json:"locked_at"` DeletingAt sql.NullTime `db:"deleting_at" json:"deleting_at"` }
func ConvertWorkspaceRows ¶ added in v0.12.8
func ConvertWorkspaceRows(rows []GetWorkspacesRow) []Workspace
func (Workspace) ApplicationConnectRBAC ¶ added in v0.9.0
func (Workspace) ExecutionRBAC ¶ added in v0.8.6
func (Workspace) LockedRBAC ¶ added in v0.25.0
func (Workspace) RBACObject ¶ added in v0.6.0
func (Workspace) WorkspaceBuildRBAC ¶ added in v0.25.0
func (w Workspace) WorkspaceBuildRBAC(transition WorkspaceTransition) rbac.Object
type WorkspaceAgent ¶
type WorkspaceAgent struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` Name string `db:"name" json:"name"` FirstConnectedAt sql.NullTime `db:"first_connected_at" json:"first_connected_at"` LastConnectedAt sql.NullTime `db:"last_connected_at" json:"last_connected_at"` DisconnectedAt sql.NullTime `db:"disconnected_at" json:"disconnected_at"` ResourceID uuid.UUID `db:"resource_id" json:"resource_id"` AuthToken uuid.UUID `db:"auth_token" json:"auth_token"` AuthInstanceID sql.NullString `db:"auth_instance_id" json:"auth_instance_id"` Architecture string `db:"architecture" json:"architecture"` EnvironmentVariables pqtype.NullRawMessage `db:"environment_variables" json:"environment_variables"` OperatingSystem string `db:"operating_system" json:"operating_system"` StartupScript sql.NullString `db:"startup_script" json:"startup_script"` InstanceMetadata pqtype.NullRawMessage `db:"instance_metadata" json:"instance_metadata"` ResourceMetadata pqtype.NullRawMessage `db:"resource_metadata" json:"resource_metadata"` Directory string `db:"directory" json:"directory"` // Version tracks the version of the currently running workspace agent. Workspace agents register their version upon start. Version string `db:"version" json:"version"` LastConnectedReplicaID uuid.NullUUID `db:"last_connected_replica_id" json:"last_connected_replica_id"` // Connection timeout in seconds, 0 means disabled. ConnectionTimeoutSeconds int32 `db:"connection_timeout_seconds" json:"connection_timeout_seconds"` // URL for troubleshooting the agent. TroubleshootingURL string `db:"troubleshooting_url" json:"troubleshooting_url"` // Path to file inside workspace containing the message of the day (MOTD) to show to the user when logging in via SSH. MOTDFile string `db:"motd_file" json:"motd_file"` // The current lifecycle state reported by the workspace agent. LifecycleState WorkspaceAgentLifecycleState `db:"lifecycle_state" json:"lifecycle_state"` // The number of seconds to wait for the startup script to complete. If the script does not complete within this time, the agent lifecycle will be marked as start_timeout. StartupScriptTimeoutSeconds int32 `db:"startup_script_timeout_seconds" json:"startup_script_timeout_seconds"` // The resolved path of a user-specified directory. e.g. ~/coder -> /home/coder/coder ExpandedDirectory string `db:"expanded_directory" json:"expanded_directory"` // Script that is executed before the agent is stopped. ShutdownScript sql.NullString `db:"shutdown_script" json:"shutdown_script"` // The number of seconds to wait for the shutdown script to complete. If the script does not complete within this time, the agent lifecycle will be marked as shutdown_timeout. ShutdownScriptTimeoutSeconds int32 `db:"shutdown_script_timeout_seconds" json:"shutdown_script_timeout_seconds"` // Total length of startup logs StartupLogsLength int32 `db:"startup_logs_length" json:"startup_logs_length"` // Whether the startup logs overflowed in length StartupLogsOverflowed bool `db:"startup_logs_overflowed" json:"startup_logs_overflowed"` Subsystem WorkspaceAgentSubsystem `db:"subsystem" json:"subsystem"` // When startup script behavior is non-blocking, the workspace will be ready and accessible upon agent connection, when it is blocking, workspace will wait for the startup script to complete before becoming ready and accessible. StartupScriptBehavior StartupScriptBehavior `db:"startup_script_behavior" json:"startup_script_behavior"` // The time the agent entered the starting lifecycle state StartedAt sql.NullTime `db:"started_at" json:"started_at"` // The time the agent entered the ready or start_error lifecycle state ReadyAt sql.NullTime `db:"ready_at" json:"ready_at"` }
func (WorkspaceAgent) Status ¶ added in v0.21.3
func (a WorkspaceAgent) Status(inactiveTimeout time.Duration) WorkspaceAgentConnectionStatus
type WorkspaceAgentConnectionStatus ¶ added in v0.21.3
type WorkspaceAgentLifecycleState ¶ added in v0.15.3
type WorkspaceAgentLifecycleState string
const ( WorkspaceAgentLifecycleStateCreated WorkspaceAgentLifecycleState = "created" WorkspaceAgentLifecycleStateStarting WorkspaceAgentLifecycleState = "starting" WorkspaceAgentLifecycleStateStartTimeout WorkspaceAgentLifecycleState = "start_timeout" WorkspaceAgentLifecycleStateStartError WorkspaceAgentLifecycleState = "start_error" WorkspaceAgentLifecycleStateReady WorkspaceAgentLifecycleState = "ready" WorkspaceAgentLifecycleStateShuttingDown WorkspaceAgentLifecycleState = "shutting_down" WorkspaceAgentLifecycleStateShutdownTimeout WorkspaceAgentLifecycleState = "shutdown_timeout" WorkspaceAgentLifecycleStateShutdownError WorkspaceAgentLifecycleState = "shutdown_error" WorkspaceAgentLifecycleStateOff WorkspaceAgentLifecycleState = "off" )
func AllWorkspaceAgentLifecycleStateValues ¶ added in v0.15.3
func AllWorkspaceAgentLifecycleStateValues() []WorkspaceAgentLifecycleState
func (*WorkspaceAgentLifecycleState) Scan ¶ added in v0.15.3
func (e *WorkspaceAgentLifecycleState) Scan(src interface{}) error
func (WorkspaceAgentLifecycleState) Valid ¶ added in v0.15.3
func (e WorkspaceAgentLifecycleState) Valid() bool
type WorkspaceAgentMetadatum ¶ added in v0.21.3
type WorkspaceAgentMetadatum struct { WorkspaceAgentID uuid.UUID `db:"workspace_agent_id" json:"workspace_agent_id"` DisplayName string `db:"display_name" json:"display_name"` Key string `db:"key" json:"key"` Script string `db:"script" json:"script"` Value string `db:"value" json:"value"` Error string `db:"error" json:"error"` Timeout int64 `db:"timeout" json:"timeout"` Interval int64 `db:"interval" json:"interval"` CollectedAt time.Time `db:"collected_at" json:"collected_at"` }
type WorkspaceAgentStartupLog ¶ added in v0.21.0
type WorkspaceAgentStat ¶ added in v0.18.0
type WorkspaceAgentStat struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UserID uuid.UUID `db:"user_id" json:"user_id"` AgentID uuid.UUID `db:"agent_id" json:"agent_id"` WorkspaceID uuid.UUID `db:"workspace_id" json:"workspace_id"` TemplateID uuid.UUID `db:"template_id" json:"template_id"` ConnectionsByProto json.RawMessage `db:"connections_by_proto" json:"connections_by_proto"` ConnectionCount int64 `db:"connection_count" json:"connection_count"` RxPackets int64 `db:"rx_packets" json:"rx_packets"` RxBytes int64 `db:"rx_bytes" json:"rx_bytes"` TxPackets int64 `db:"tx_packets" json:"tx_packets"` TxBytes int64 `db:"tx_bytes" json:"tx_bytes"` ConnectionMedianLatencyMS float64 `db:"connection_median_latency_ms" json:"connection_median_latency_ms"` SessionCountVSCode int64 `db:"session_count_vscode" json:"session_count_vscode"` SessionCountJetBrains int64 `db:"session_count_jetbrains" json:"session_count_jetbrains"` SessionCountReconnectingPTY int64 `db:"session_count_reconnecting_pty" json:"session_count_reconnecting_pty"` SessionCountSSH int64 `db:"session_count_ssh" json:"session_count_ssh"` }
type WorkspaceAgentStatus ¶ added in v0.21.3
type WorkspaceAgentStatus string
const ( WorkspaceAgentStatusConnecting WorkspaceAgentStatus = "connecting" WorkspaceAgentStatusConnected WorkspaceAgentStatus = "connected" WorkspaceAgentStatusDisconnected WorkspaceAgentStatus = "disconnected" WorkspaceAgentStatusTimeout WorkspaceAgentStatus = "timeout" )
This is also in codersdk/workspaceagents.go and should be kept in sync.
func (WorkspaceAgentStatus) Valid ¶ added in v0.21.3
func (s WorkspaceAgentStatus) Valid() bool
type WorkspaceAgentSubsystem ¶ added in v0.23.5
type WorkspaceAgentSubsystem string
const ( WorkspaceAgentSubsystemEnvbuilder WorkspaceAgentSubsystem = "envbuilder" WorkspaceAgentSubsystemEnvbox WorkspaceAgentSubsystem = "envbox" WorkspaceAgentSubsystemNone WorkspaceAgentSubsystem = "none" )
func AllWorkspaceAgentSubsystemValues ¶ added in v0.23.5
func AllWorkspaceAgentSubsystemValues() []WorkspaceAgentSubsystem
func (*WorkspaceAgentSubsystem) Scan ¶ added in v0.23.5
func (e *WorkspaceAgentSubsystem) Scan(src interface{}) error
func (WorkspaceAgentSubsystem) Valid ¶ added in v0.23.5
func (e WorkspaceAgentSubsystem) Valid() bool
type WorkspaceApp ¶ added in v0.6.2
type WorkspaceApp struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` AgentID uuid.UUID `db:"agent_id" json:"agent_id"` DisplayName string `db:"display_name" json:"display_name"` Icon string `db:"icon" json:"icon"` Command sql.NullString `db:"command" json:"command"` Url sql.NullString `db:"url" json:"url"` HealthcheckUrl string `db:"healthcheck_url" json:"healthcheck_url"` HealthcheckInterval int32 `db:"healthcheck_interval" json:"healthcheck_interval"` HealthcheckThreshold int32 `db:"healthcheck_threshold" json:"healthcheck_threshold"` Health WorkspaceAppHealth `db:"health" json:"health"` Subdomain bool `db:"subdomain" json:"subdomain"` SharingLevel AppSharingLevel `db:"sharing_level" json:"sharing_level"` Slug string `db:"slug" json:"slug"` External bool `db:"external" json:"external"` }
type WorkspaceAppHealth ¶ added in v0.9.0
type WorkspaceAppHealth string
const ( WorkspaceAppHealthDisabled WorkspaceAppHealth = "disabled" WorkspaceAppHealthInitializing WorkspaceAppHealth = "initializing" WorkspaceAppHealthHealthy WorkspaceAppHealth = "healthy" WorkspaceAppHealthUnhealthy WorkspaceAppHealth = "unhealthy" )
func AllWorkspaceAppHealthValues ¶ added in v0.15.2
func AllWorkspaceAppHealthValues() []WorkspaceAppHealth
func (*WorkspaceAppHealth) Scan ¶ added in v0.9.0
func (e *WorkspaceAppHealth) Scan(src interface{}) error
func (WorkspaceAppHealth) Valid ¶ added in v0.15.2
func (e WorkspaceAppHealth) Valid() bool
type WorkspaceBuild ¶
type WorkspaceBuild struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` WorkspaceID uuid.UUID `db:"workspace_id" json:"workspace_id"` TemplateVersionID uuid.UUID `db:"template_version_id" json:"template_version_id"` BuildNumber int32 `db:"build_number" json:"build_number"` Transition WorkspaceTransition `db:"transition" json:"transition"` InitiatorID uuid.UUID `db:"initiator_id" json:"initiator_id"` ProvisionerState []byte `db:"provisioner_state" json:"provisioner_state"` JobID uuid.UUID `db:"job_id" json:"job_id"` Deadline time.Time `db:"deadline" json:"deadline"` Reason BuildReason `db:"reason" json:"reason"` DailyCost int32 `db:"daily_cost" json:"daily_cost"` MaxDeadline time.Time `db:"max_deadline" json:"max_deadline"` }
type WorkspaceBuildParameter ¶ added in v0.15.0
type WorkspaceProxy ¶ added in v0.22.0
type WorkspaceProxy struct { ID uuid.UUID `db:"id" json:"id"` Name string `db:"name" json:"name"` DisplayName string `db:"display_name" json:"display_name"` // Expects an emoji character. (/emojis/1f1fa-1f1f8.png) Icon string `db:"icon" json:"icon"` // Full url including scheme of the proxy api url: https://us.example.com Url string `db:"url" json:"url"` // Hostname with the wildcard for subdomain based app hosting: *.us.example.com WildcardHostname string `db:"wildcard_hostname" json:"wildcard_hostname"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` // Boolean indicator of a deleted workspace proxy. Proxies are soft-deleted. Deleted bool `db:"deleted" json:"deleted"` // Hashed secret is used to authenticate the workspace proxy using a session token. TokenHashedSecret []byte `db:"token_hashed_secret" json:"token_hashed_secret"` }
func (WorkspaceProxy) IsPrimary ¶ added in v0.24.0
func (w WorkspaceProxy) IsPrimary() bool
func (WorkspaceProxy) RBACObject ¶ added in v0.22.0
func (w WorkspaceProxy) RBACObject() rbac.Object
type WorkspaceResource ¶
type WorkspaceResource struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` JobID uuid.UUID `db:"job_id" json:"job_id"` Transition WorkspaceTransition `db:"transition" json:"transition"` Type string `db:"type" json:"type"` Name string `db:"name" json:"name"` Hide bool `db:"hide" json:"hide"` Icon string `db:"icon" json:"icon"` InstanceType sql.NullString `db:"instance_type" json:"instance_type"` DailyCost int32 `db:"daily_cost" json:"daily_cost"` }
type WorkspaceResourceMetadatum ¶ added in v0.8.3
type WorkspaceStatus ¶ added in v0.18.1
type WorkspaceStatus string
const ( WorkspaceStatusPending WorkspaceStatus = "pending" WorkspaceStatusStarting WorkspaceStatus = "starting" WorkspaceStatusRunning WorkspaceStatus = "running" WorkspaceStatusStopping WorkspaceStatus = "stopping" WorkspaceStatusStopped WorkspaceStatus = "stopped" WorkspaceStatusFailed WorkspaceStatus = "failed" WorkspaceStatusCanceling WorkspaceStatus = "canceling" WorkspaceStatusCanceled WorkspaceStatus = "canceled" WorkspaceStatusDeleting WorkspaceStatus = "deleting" WorkspaceStatusDeleted WorkspaceStatus = "deleted" )
func (WorkspaceStatus) Valid ¶ added in v0.18.1
func (s WorkspaceStatus) Valid() bool
type WorkspaceTransition ¶
type WorkspaceTransition string
const ( WorkspaceTransitionStart WorkspaceTransition = "start" WorkspaceTransitionStop WorkspaceTransition = "stop" WorkspaceTransitionDelete WorkspaceTransition = "delete" )
func AllWorkspaceTransitionValues ¶ added in v0.15.2
func AllWorkspaceTransitionValues() []WorkspaceTransition
func (*WorkspaceTransition) Scan ¶
func (e *WorkspaceTransition) Scan(src interface{}) error
func (WorkspaceTransition) Valid ¶ added in v0.15.2
func (e WorkspaceTransition) Valid() bool
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package db2sdk provides common conversion routines from database types to codersdk types
|
Package db2sdk provides common conversion routines from database types to codersdk types |
Package dbauthz provides an authorization layer on top of the database.
|
Package dbauthz provides an authorization layer on top of the database. |
Code generated by coderd/database/gen/metrics.
|
Code generated by coderd/database/gen/metrics. |
Package dbmock is a generated GoMock package.
|
Package dbmock is a generated GoMock package. |
gen
|
|