Documentation
¶
Index ¶
- Constants
- func RollingFileLogger(config *LogConfig, logType string) io.Writer
- func StripQuotes(s string) string
- type AccountLink
- type AppApproveResponse
- type AppAuthnType
- type AppConfig
- type AppCreateResponse
- type AppDeleteResponse
- type AppEntry
- type AppFile
- type AppGetResponse
- type AppId
- type AppInfo
- type AppLinkAccountResponse
- type AppListResponse
- type AppMetadata
- type AppMetadataConfigType
- type AppPathDomain
- type AppPreviewResponse
- type AppPromoteResponse
- type AppReloadResponse
- type AppResponse
- type AppSettings
- type AppSpec
- type AppStagedUpdateResponse
- type AppToken
- type AppUpdateMetadataResponse
- type AppUpdateSettingsResponse
- type AppVersion
- type AppVersionFilesResponse
- type AppVersionListResponse
- type AppVersionSwitchResponse
- type ApproveResult
- type AuthConfig
- type BoolValue
- type CORS
- type ClientCertConfig
- type ClientConfig
- type ClientConfigStruct
- type Container
- type ContextKey
- type CreateAppRequest
- type FS
- type GitAuthEntry
- type GlobalConfig
- type HttpConfig
- type HttpsConfig
- type LogConfig
- type Logger
- type MetadataConfig
- type Permission
- type PluginContext
- type PluginSettings
- type Proxy
- type RequestError
- type SecretConfig
- type SecurityConfig
- type ServerConfig
- type SpecFiles
- type StringValue
- type StyleType
- type SystemConfig
- type TokenCreateResponse
- type TokenDeleteResponse
- type TokenListResponse
- type Transaction
- type UpdateAppMetadataRequest
- type UpdateAppRequest
- type UserFile
- type VersionMetadata
- type WebhookTokens
- type WebhookType
Constants ¶
const ( ID_PREFIX_APP_PROD = "app_prd_" ID_PREFIX_APP_DEV = "app_dev_" ID_PREFIX_APP_STAGE = "app_stg_" ID_PREFIX_APP_PREVIEW = "app_pre_" INTERNAL_URL_PREFIX = "/_clace" WEBHOOK_URL_PREFIX = "/_clace_webhook" APP_INTERNAL_URL_PREFIX = "/_clace_app" INTERNAL_APP_DELIM = "_cl_" STAGE_SUFFIX = INTERNAL_APP_DELIM + "stage" PREVIEW_SUFFIX = INTERNAL_APP_DELIM + "preview" NO_SOURCE = "-" // No source url is provided )
const ( TL_CONTEXT = "TL_context" TL_DEFER_MAP = "TL_defer_map" TL_CURRENT_MODULE_FULL_PATH = "TL_current_module_full_path" TL_PLUGIN_API_FAILED_ERROR = "TL_plugin_api_failed_error" TL_CONTAINER_URL = "TL_container_url" )
const ( CONTAINER_SOURCE_AUTO = "auto" CONTAINER_SOURCE_NIXPACKS = "nixpacks" CONTAINER_SOURCE_IMAGE_PREFIX = "image:" )
const ( ANONYMOUS_USER = "anonymous" ADMIN_USER = "admin" )
Variables ¶
This section is empty.
Functions ¶
func StripQuotes ¶ added in v0.7.1
Types ¶
type AccountLink ¶
AccountLink links the account to use for each plugin
type AppApproveResponse ¶
type AppApproveResponse struct { DryRun bool `json:"dry_run"` StagedUpdateResults []ApproveResult `json:"staged_update_results"` PromoteResults []AppPathDomain `json:"promote_results"` }
type AppAuthnType ¶
type AppAuthnType string
AppAuthnType is the app level authentication type
const ( AppAuthnNone AppAuthnType = "none" // No auth AppAuthnDefault AppAuthnType = "default" // Use whatever auth is the default for the system AppAuthnSystem AppAuthnType = "system" // Use the system admin user )
type AppCreateResponse ¶
type AppCreateResponse struct { DryRun bool `json:"dry_run"` HttpUrl string `json:"http_url"` HttpsUrl string `json:"https_url"` ApproveResults []ApproveResult `json:"approve_results"` }
type AppDeleteResponse ¶
type AppEntry ¶
type AppEntry struct { Id AppId `json:"id"` Path string `json:"path"` Domain string `json:"domain"` MainApp AppId `json:"main_app"` // the id of the app that this app is linked to SourceUrl string `json:"source_url"` IsDev bool `json:"is_dev"` UserID string `json:"user_id"` CreateTime *time.Time `json:"create_time"` UpdateTime *time.Time `json:"update_time"` Settings AppSettings `json:"settings"` // settings are not version controlled Metadata AppMetadata `json:"metadata"` // metadata is version controlled }
AppEntry is the application configuration in the DB
func (*AppEntry) AppPathDomain ¶
func (ae *AppEntry) AppPathDomain() AppPathDomain
type AppGetResponse ¶
type AppGetResponse struct {
AppEntry AppEntry `json:"app_entry"`
}
type AppInfo ¶
type AppInfo struct { AppPathDomain Name string Id AppId IsDev bool MainApp AppId Auth AppAuthnType SourceUrl string Spec AppSpec Version int GitSha string GitMessage string }
AppInfo is the basic info for an app
type AppLinkAccountResponse ¶
type AppLinkAccountResponse struct { DryRun bool `json:"dry_run"` StagedUpdateResults []AppPathDomain `json:"staged_update_results"` PromoteResults []AppPathDomain `json:"promote_results"` }
type AppListResponse ¶
type AppListResponse struct {
Apps []AppResponse `json:"apps"`
}
type AppMetadata ¶
type AppMetadata struct { Name string `json:"name"` VersionMetadata VersionMetadata `json:"version_metadata"` Loads []string `json:"loads"` Permissions []Permission `json:"permissions"` Accounts []AccountLink `json:"accounts"` ParamValues map[string]string `json:"param_values"` Spec AppSpec `json:"spec"` SpecFiles *SpecFiles `json:"spec_files"` ContainerOptions map[string]string `json:"container_options"` ContainerArgs map[string]string `json:"container_args"` ContainerVolumes []string `json:"container_volumes"` AppConfig map[string]string `json:"appconfig"` }
AppMetadata contains the configuration for an app. App configurations are version controlled.
type AppMetadataConfigType ¶ added in v0.7.1
type AppMetadataConfigType string
const ( AppMetadataAppConfig AppMetadataConfigType = "app_config" AppMetadataContainerOptions AppMetadataConfigType = "container_options" AppMetadataContainerArgs AppMetadataConfigType = "container_args" AppMetadataContainerVolumes AppMetadataConfigType = "container_volumes" )
type AppPathDomain ¶
AppPathDomain is a unique identifier for an app, consisting of the path and domain
func CreateAppPathDomain ¶
func CreateAppPathDomain(path, domain string) AppPathDomain
func (AppPathDomain) String ¶
func (a AppPathDomain) String() string
type AppPreviewResponse ¶
type AppPreviewResponse struct { DryRun bool `json:"dry_run"` HttpUrl string `json:"http_url"` HttpsUrl string `json:"https_url"` Success bool `json:"success"` ApproveResult ApproveResult `json:"approve_result"` }
type AppPromoteResponse ¶
type AppPromoteResponse struct { DryRun bool `json:"dry_run"` PromoteResults []AppPathDomain `json:"promote_results"` }
type AppReloadResponse ¶
type AppReloadResponse struct { DryRun bool `json:"dry_run"` ReloadResults []AppPathDomain `json:"reload_results"` ApproveResults []ApproveResult `json:"approve_results"` PromoteResults []AppPathDomain `json:"promote_results"` }
type AppResponse ¶
type AppSettings ¶
type AppSettings struct { AuthnType AppAuthnType `json:"authn_type"` GitAuthName string `json:"git_auth_name"` StageWriteAccess bool `json:"stage_write_access"` PreviewWriteAccess bool `json:"preview_write_access"` WebhookTokens WebhookTokens `json:"webhook_tokens"` }
AppSettings contains the settings for an app. Settings are not version controlled.
type AppStagedUpdateResponse ¶
type AppStagedUpdateResponse struct { DryRun bool `json:"dry_run"` StagedUpdateResults any `json:"staged_update_results"` PromoteResults []AppPathDomain `json:"promote_results"` }
type AppToken ¶ added in v0.7.0
type AppToken struct { Type WebhookType `json:"type"` Url string `json:"url"` Token string `json:"token"` }
type AppUpdateMetadataResponse ¶
type AppUpdateMetadataResponse struct { DryRun bool `json:"dry_run"` StagedUpdateResults []AppPathDomain `json:"staged_update_results"` PromoteResults []AppPathDomain `json:"promote_results"` }
type AppUpdateSettingsResponse ¶
type AppUpdateSettingsResponse struct { DryRun bool `json:"dry_run"` UpdateResults []AppPathDomain `json:"update_results"` }
type AppVersion ¶
type AppVersionFilesResponse ¶
type AppVersionFilesResponse struct {
Files []AppFile `json:"files"`
}
type AppVersionListResponse ¶
type AppVersionListResponse struct {
Versions []AppVersion `json:"versions"`
}
type ApproveResult ¶
type ApproveResult struct { Id AppId `json:"id"` AppPathDomain AppPathDomain `json:"app_path_domain"` NewLoads []string `json:"new_loads"` NewPermissions []Permission `json:"new_permissions"` ApprovedLoads []string `json:"approved_loads"` ApprovedPermissions []Permission `json:"approved_permissions"` NeedsApproval bool `json:"needs_approval"` }
ApproveResult represents the result of an app approval audit
type AuthConfig ¶
type AuthConfig struct { Key string `toml:"key"` // the client id Secret string `toml:"secret"` // the client secret OrgUrl string `toml:"org_url"` // the org url, used for Okta Domain string `toml:"domain"` // the domain, used for Auth0 DiscoveryUrl string `toml:"discovery_url"` // the discovery url, used for OIDC HostedDomain string `toml:"hosted_domain"` // the hosted domain, used for Google Scopes []string `toml:"scopes"` // oauth scopes }
AuthConfig is the configuration for the Authentication provider
type ClientCertConfig ¶ added in v0.7.5
type ClientConfig ¶
type ClientConfig struct { GlobalConfig Client ClientConfigStruct `toml:"client"` }
ClientConfig is the configuration for the Clace Client
type ClientConfigStruct ¶ added in v0.6.5
type ClientConfigStruct struct { SkipCertCheck bool `toml:"skip_cert_check"` AdminPassword string `toml:"admin_password"` DefaultFormat string `toml:"default_format"` // the default format for the CLI output }
ClientConfigStruct is the configuration for the Clace Client
type Container ¶ added in v0.7.1
type Container struct { // Health check related config HealthUrl string `toml:"health_url"` HealthAttemptsAfterStartup int `toml:"health_attempts_after_startup"` HealthTimeoutSecs int `toml:"health_timeout_secs"` // Idle shutdown related config IdleShutdownSecs int `toml:"idle_shutdown_secs"` IdleShutdownDevApps bool `toml:"idle_shutdown_dev_apps"` // Status check related config StatusCheckIntervalSecs int `toml:"status_check_interval_secs"` StatusHealthAttempts int `toml:"status_health_attempts"` }
type CreateAppRequest ¶
type CreateAppRequest struct { SourceUrl string `json:"source_url"` IsDev bool `json:"is_dev"` AppAuthn AppAuthnType `json:"app_authn"` GitBranch string `json:"git_branch"` GitCommit string `json:"git_commit"` GitAuthName string `json:"git_auth_name"` Spec AppSpec `json:"spec"` ParamValues map[string]string `json:"param_values"` ContainerOptions map[string]string `json:"container_options"` ContainerArgs map[string]string `json:"container_args"` ContainerVolumes []string `json:"container_volumes"` AppConfig map[string]string `json:"appconfig"` }
CreateAppRequest is the request body for creating an app
type GitAuthEntry ¶
type GitAuthEntry struct { UserID string `toml:"user_id"` // the user id of the user, defaults to "git" https://github.com/src-d/go-git/issues/637 KeyFilePath string `toml:"key_file_path"` // the path to the private key file Password string `toml:"password"` // the password for the private key file }
GitAuth is a github auth config entry
type GlobalConfig ¶
type GlobalConfig struct { ConfigFile string `toml:"config_file"` AdminUser string `toml:"admin_user"` ServerUri string `toml:"server_uri"` }
Config entries shared between client and server
type HttpConfig ¶
HttpConfig is the configuration for the HTTP server
type HttpsConfig ¶
type HttpsConfig struct { Host string `toml:"host"` Port int `toml:"port"` EnableCertLookup bool `toml:"enable_cert_lookup"` ServiceEmail string `toml:"service_email"` UseStaging bool `toml:"use_staging"` StorageLocation string `toml:"storage_location"` CertLocation string `toml:"cert_location"` DisableClientCerts bool `toml:"disable_client_certs"` }
HttpsConfig is the configuration for the HTTPs server
type LogConfig ¶
type LogConfig struct { Level string `toml:"level"` MaxBackups int `toml:"max_backups"` MaxSizeMB int `toml:"max_size_mb"` Console bool `toml:"console"` File bool `toml:"file"` AccessLogging bool `toml:"access_logging"` }
LogConfig is the configuration for the Logger
type MetadataConfig ¶
type MetadataConfig struct { DBConnection string `toml:"db_connection"` AutoUpgrade bool `toml:"auto_upgrade"` }
MetadataConfig is the configuration for the Metadata persistence layer
type Permission ¶
type Permission struct { Plugin string `json:"plugin"` Method string `json:"method"` Arguments []string `json:"arguments"` IsRead *bool `json:"is_read,omitempty"` // Whether the call is a Read operation or Write operation. }
Permission represents a permission granted to an app to run a plugin method with the given arguments
type PluginContext ¶
type PluginContext struct { Logger *Logger AppId AppId StoreInfo *starlark_type.StoreInfo Config PluginSettings AppConfig AppConfig AppPath string }
type PluginSettings ¶
type RequestError ¶
RequestError is the error returned by the API
func CreateRequestError ¶
func CreateRequestError(message string, code int) RequestError
func (RequestError) Error ¶
func (r RequestError) Error() string
type SecretConfig ¶ added in v0.7.2
type SecurityConfig ¶
type SecurityConfig struct { AdminOverTCP bool `toml:"admin_over_tcp"` AdminPasswordBcrypt string `toml:"admin_password_bcrypt"` AppDefaultAuthType string `toml:"app_default_auth_type"` AppDefaultSecretsProvider string `toml:"app_default_secrets_provider"` SessionSecret string `toml:"session_secret"` SessionMaxAge int `toml:"session_max_age"` SessionHttpsOnly bool `toml:"session_https_only"` CallbackUrl string `toml:"callback_url"` }
SecurityConfig is the configuration for Inter process communication
type ServerConfig ¶
type ServerConfig struct { GlobalConfig Http HttpConfig `toml:"http"` Https HttpsConfig `toml:"https"` Security SecurityConfig `toml:"security"` Metadata MetadataConfig `toml:"metadata"` Log LogConfig `toml:"logging"` System SystemConfig `toml:"system"` GitAuth map[string]GitAuthEntry `toml:"git_auth"` Plugins map[string]PluginSettings `toml:"plugin"` Auth map[string]AuthConfig `toml:"auth"` ClientAuth map[string]ClientCertConfig `toml:"client_auth"` Secret map[string]SecretConfig `toml:"secret"` ProfileMode string `toml:"profile_mode"` AppConfig AppConfig `toml:"app_config"` }
ServerConfig is the configuration for the Clace Server
type SpecFiles ¶
SpecFiles is a map of file names to file data. JSON encoding uses base 64 encoding of file text
func (*SpecFiles) MarshalJSON ¶
func (*SpecFiles) UnmarshalJSON ¶
type StringValue ¶
type StringValue string
const (
StringValueUndefined StringValue = "<CL_UNDEFINED>"
)
type StyleType ¶ added in v0.8.2
type StyleType string
StyleType is the type of style library used by the app
type SystemConfig ¶
type SystemConfig struct { TailwindCSSCommand string `toml:"tailwindcss_command"` FileWatcherDebounceMillis int `toml:"file_watcher_debounce_millis"` NodePath string `toml:"node_path"` ContainerCommand string `toml:"container_command"` DefaultDomain string `toml:"default_domain"` DisableUnknownDomains bool `toml:"disable_unknown_domains"` RootServeListApps string `toml:"root_serve_list_apps"` }
SystemConfig is the system level configuration
type TokenCreateResponse ¶ added in v0.7.0
type TokenDeleteResponse ¶ added in v0.7.0
type TokenDeleteResponse struct {
DryRun bool `json:"dry_run"`
}
type TokenListResponse ¶ added in v0.7.0
type TokenListResponse struct {
Tokens []AppToken `json:"tokens"`
}
type Transaction ¶
Transaction is a wrapper around sql.Tx
func (*Transaction) IsInitialized ¶
func (t *Transaction) IsInitialized() bool
type UpdateAppMetadataRequest ¶
type UpdateAppMetadataRequest struct { Spec StringValue `json:"spec"` ConfigType AppMetadataConfigType `json:"config_type"` ConfigEntries []string `json:"config_entries"` }
UpdateAppMetadataRequest is the request body for updating an app metadata
func CreateUpdateAppMetadataRequest ¶
func CreateUpdateAppMetadataRequest() UpdateAppMetadataRequest
type UpdateAppRequest ¶
type UpdateAppRequest struct { AuthnType StringValue `json:"authn_type"` GitAuthName StringValue `json:"git_auth_name"` StageWriteAccess BoolValue `json:"stage_write_access"` PreviewWriteAccess BoolValue `json:"preview_write_access"` Spec StringValue `json:"spec"` }
UpdateAppRequest is the request body for updating an app settings
func CreateUpdateAppRequest ¶
func CreateUpdateAppRequest() UpdateAppRequest
type VersionMetadata ¶
type VersionMetadata struct { Version int `json:"version"` PreviousVersion int `json:"previous_version"` GitBranch string `json:"git_branch"` GitCommit string `json:"git_commit"` GitMessage string `json:"git_message"` }
VersionMetadata contains the metadata for an app
type WebhookTokens ¶ added in v0.7.0
type WebhookType ¶ added in v0.7.0
type WebhookType string
const ( WebhookReload WebhookType = "reload" WebhookReloadPromote WebhookType = "reload_promote" WebhookPromote WebhookType = "promote" )