mirror of
https://github.com/coder/coder.git
synced 2025-07-06 15:41:45 +00:00
* chore: rename `AgentConn` to `WorkspaceAgentConn` The codersdk was becoming bloated with consts for the workspace agent that made no sense to a reader. `Tailnet*` is an example of these consts. * chore: remove `Get` prefix from *Client functions * chore: remove `BypassRatelimits` option in `codersdk.Client` It feels wrong to have this as a direct option because it's so infrequently needed by API callers. It's better to directly modify headers in the two places that we actually use it. * Merge `appearance.go` and `buildinfo.go` into `deployment.go` * Merge `experiments.go` and `features.go` into `deployment.go` * Fix `make gen` referencing old type names * Merge `error.go` into `client.go` `codersdk.Response` lived in `error.go`, which is wrong. * chore: refactor workspace agent functions into agentsdk It was odd conflating the codersdk that clients should use with functions that only the agent should use. This separates them into two SDKs that are closely coupled, but separate. * Merge `insights.go` into `deployment.go` * Merge `organizationmember.go` into `organizations.go` * Merge `quota.go` into `workspaces.go` * Rename `sse.go` to `serversentevents.go` * Rename `codersdk.WorkspaceAppHostResponse` to `codersdk.AppHostResponse` * Format `.vscode/settings.json` * Fix outdated naming in `api.ts` * Fix app host response * Fix unsupported type * Fix imported type
59 lines
2.2 KiB
Go
59 lines
2.2 KiB
Go
package codersdk
|
|
|
|
import (
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type WorkspaceAppHealth string
|
|
|
|
const (
|
|
WorkspaceAppHealthDisabled WorkspaceAppHealth = "disabled"
|
|
WorkspaceAppHealthInitializing WorkspaceAppHealth = "initializing"
|
|
WorkspaceAppHealthHealthy WorkspaceAppHealth = "healthy"
|
|
WorkspaceAppHealthUnhealthy WorkspaceAppHealth = "unhealthy"
|
|
)
|
|
|
|
type WorkspaceAppSharingLevel string
|
|
|
|
const (
|
|
WorkspaceAppSharingLevelOwner WorkspaceAppSharingLevel = "owner"
|
|
WorkspaceAppSharingLevelAuthenticated WorkspaceAppSharingLevel = "authenticated"
|
|
WorkspaceAppSharingLevelPublic WorkspaceAppSharingLevel = "public"
|
|
)
|
|
|
|
type WorkspaceApp struct {
|
|
ID uuid.UUID `json:"id" format:"uuid"`
|
|
// URL is the address being proxied to inside the workspace.
|
|
// If external is specified, this will be opened on the client.
|
|
URL string `json:"url"`
|
|
// External specifies whether the URL should be opened externally on
|
|
// the client or not.
|
|
External bool `json:"external"`
|
|
// Slug is a unique identifier within the agent.
|
|
Slug string `json:"slug"`
|
|
// DisplayName is a friendly name for the app.
|
|
DisplayName string `json:"display_name"`
|
|
Command string `json:"command,omitempty"`
|
|
// Icon is a relative path or external URL that specifies
|
|
// an icon to be displayed in the dashboard.
|
|
Icon string `json:"icon,omitempty"`
|
|
// Subdomain denotes whether the app should be accessed via a path on the
|
|
// `coder server` or via a hostname-based dev URL. If this is set to true
|
|
// and there is no app wildcard configured on the server, the app will not
|
|
// be accessible in the UI.
|
|
Subdomain bool `json:"subdomain"`
|
|
SharingLevel WorkspaceAppSharingLevel `json:"sharing_level" enums:"owner,authenticated,public"`
|
|
// Healthcheck specifies the configuration for checking app health.
|
|
Healthcheck Healthcheck `json:"healthcheck"`
|
|
Health WorkspaceAppHealth `json:"health"`
|
|
}
|
|
|
|
type Healthcheck struct {
|
|
// URL specifies the endpoint to check for the app health.
|
|
URL string `json:"url"`
|
|
// Interval specifies the seconds between each health check.
|
|
Interval int32 `json:"interval"`
|
|
// Threshold specifies the number of consecutive failed health checks before returning "unhealthy".
|
|
Threshold int32 `json:"threshold"`
|
|
}
|