Documentation
¶
Index ¶
- Constants
- Variables
- func GenerateSelfSignedCertificate(certPath, keyPath string, validityDuration time.Duration) error
- func MatchGlob(appPathGlob string, app types.AppPathDomain) (bool, error)
- func ParseGlob(appPathGlob string, apps []types.AppPathDomain) ([]types.AppPathDomain, error)
- func ParseGlobFromInfo(appPathGlob string, apps []types.AppInfo) ([]types.AppInfo, error)
- type AdminBasicAuth
- type AppStore
- func (a *AppStore) AddApp(app *app.App)
- func (a *AppStore) ClearApps(pathDomains []types.AppPathDomain)
- func (a *AppStore) ClearAppsAudit(ctx context.Context, pathDomains []types.AppPathDomain, op string) error
- func (a *AppStore) ClearAppsNoNotify(pathDomains []types.AppPathDomain)
- func (a *AppStore) ClearLinkedApps(pathDomain types.AppPathDomain) error
- func (a *AppStore) GetAllAppsInfo() ([]types.AppInfo, error)
- func (a *AppStore) GetAllDomains() (map[string]bool, error)
- func (a *AppStore) GetApp(pathDomain types.AppPathDomain) (*app.App, error)
- func (a *AppStore) GetAppInfo(appId types.AppId) (types.AppInfo, bool)
- func (a *AppStore) GetAppsFullInfo() ([]types.AppInfo, map[string]bool, error)
- func (a *AppStore) ResetAllAppCache()
- type CacheDir
- type ContextShared
- type Handler
- type Repo
- type RepoCache
- type SSOAuth
- func (s *SSOAuth) CheckAuth(w http.ResponseWriter, r *http.Request, appProvider string, ...) (string, error)
- func (s *SSOAuth) RegisterRoutes(mux *chi.Mux)
- func (s *SSOAuth) Setup() error
- func (s *SSOAuth) ValidateAuthType(authType string) bool
- func (s *SSOAuth) ValidateProviderName(provider string) bool
- type Server
- func (s *Server) Apply(ctx context.Context, inputTx types.Transaction, applyPath string, ...) (*types.AppApplyResponse, []types.AppPathDomain, error)
- func (s *Server) CheckAppValid(domain, matchPath string) (string, error)
- func (s *Server) CompleteTransaction(ctx context.Context, tx types.Transaction, entries []types.AppPathDomain, ...) error
- func (s *Server) CreateApp(ctx context.Context, appPath string, approve, dryRun bool, ...) (*types.AppCreateResponse, error)
- func (s *Server) CreateAppTx(ctx context.Context, currentTx types.Transaction, appPath string, ...) (*types.AppCreateResponse, error)
- func (s *Server) CreateSyncEntry(ctx context.Context, path string, scheduled, dryRun bool, ...) (*types.SyncCreateResponse, error)
- func (s *Server) DeleteApps(ctx context.Context, appPathGlob string, dryRun bool) (*types.AppDeleteResponse, error)
- func (s *Server) DeleteSyncEntry(ctx context.Context, id string, dryRun bool) (*types.SyncDeleteResponse, error)
- func (s *Server) FilterApps(appappPathGlob string, includeInternal bool) ([]types.AppInfo, error)
- func (s *Server) GetApp(pathDomain types.AppPathDomain, init bool) (*app.App, error)
- func (s *Server) GetAppApi(ctx context.Context, appPath string) (*types.AppGetResponse, error)
- func (s *Server) GetAppEntry(ctx context.Context, tx types.Transaction, pathDomain types.AppPathDomain) (*types.AppEntry, error)
- func (s *Server) GetAppSpec(name types.AppSpec) types.SpecFiles
- func (s *Server) GetApps(ctx context.Context, appPathGlob string, internal bool) ([]types.AppResponse, error)
- func (s *Server) GetListAppsApp() (*app.App, error)
- func (s *Server) InsertAuditEvent(event *types.AuditEvent) error
- func (s *Server) ListSyncEntries(ctx context.Context) (*types.SyncListResponse, error)
- func (s *Server) MatchApp(hostHeader, matchPath string) (types.AppInfo, error)
- func (s *Server) ParseGlob(appGlob string) ([]types.AppInfo, error)
- func (s *Server) PreviewApp(ctx context.Context, mainAppPath, commitId string, approve, dryRun bool) (*types.AppPreviewResponse, error)
- func (s *Server) PromoteApps(ctx context.Context, appPathGlob string, dryRun bool) (*types.AppPromoteResponse, error)
- func (s *Server) ReloadApp(ctx context.Context, tx types.Transaction, appEntry *types.AppEntry, ...) (*types.AppReloadResult, error)
- func (s *Server) ReloadApps(ctx context.Context, appPathGlob string, approve, dryRun, promote bool, ...) (*types.AppReloadResponse, error)
- func (s *Server) RunSync(ctx context.Context, id string, dryRun bool) (*types.SyncJobStatus, error)
- func (s *Server) StagedUpdate(ctx context.Context, appPathGlob string, dryRun, promote bool, ...) (*types.AppStagedUpdateResponse, error)
- func (s *Server) StagedUpdateAppsTx(ctx context.Context, tx types.Transaction, appPathGlob string, promote bool, ...) ([]any, []types.AppPathDomain, []types.AppPathDomain, error)
- func (s *Server) Start() error
- func (s *Server) Stop(ctx context.Context) error
- func (s *Server) TokenCreate(ctx context.Context, appPath string, webhookType types.WebhookType, ...) (*types.TokenCreateResponse, error)
- func (s *Server) TokenDelete(ctx context.Context, appPath string, webhookType types.WebhookType, ...) (*types.TokenDeleteResponse, error)
- func (s *Server) TokenList(ctx context.Context, appPath string) (*types.TokenListResponse, error)
- func (s *Server) UpdateAppSettings(ctx context.Context, appPathGlob string, dryRun bool, ...) (*types.AppUpdateSettingsResponse, error)
- func (s *Server) VersionFiles(ctx context.Context, mainAppPath, version string) (*types.AppVersionFilesResponse, error)
- func (s *Server) VersionList(ctx context.Context, mainAppPath string) (*types.AppVersionListResponse, error)
- func (s *Server) VersionSwitch(ctx context.Context, mainAppPath string, dryRun bool, version string) (*types.AppVersionSwitchResponse, error)
Constants ¶
const ( DRY_RUN_ARG = "dryRun" PROMOTE_ARG = "promote" )
const ( DEFAULT_CERT_FILE = "default.crt" DEFAULT_KEY_FILE = "default.key" APPSPECS = "appspecs" )
const ( DOCKER_COMMAND = "docker" PODMAN_COMMAND = "podman" )
const ( PROVIDER_NAME_DELIMITER = "_" SESSION_COOKIE = "openrun_session" AUTH_KEY = "authenticated" USER_ID_KEY = "user" USER_EMAIL_KEY = "email" USER_NICKNAME_KEY = "nickname" PROVIDER_NAME_KEY = "provider_name" REDIRECT_URL = "redirect" )
const (
APP = "app"
)
const CURRENT_AUDIT_DB_VERSION = 1
const (
REALM = "openrun"
)
Variables ¶
var (
COMPRESSION_ENABLED_MIME_TYPES = []string{
"text/html",
"text/css",
"text/plain",
"text/xml",
"text/x-component",
"text/javascript",
"application/x-javascript",
"application/javascript",
"application/json",
"application/manifest+json",
"application/vnd.api+json",
"application/xml",
"application/xhtml+xml",
"application/rss+xml",
"application/atom+xml",
"application/vnd.ms-fontobject",
"application/x-font-ttf",
"application/x-font-opentype",
"application/x-font-truetype",
"image/svg+xml",
"image/x-icon",
"image/vnd.microsoft.icon",
"font/ttf",
"font/eot",
"font/otf",
"font/opentype",
}
)
Functions ¶
func ParseGlob ¶
func ParseGlob(appPathGlob string, apps []types.AppPathDomain) ([]types.AppPathDomain, error)
ParseGlob parses a path spec in the format of domain:path. If domain is not specified, it will match empty domain. glob patters are supported, *:** matches all apps.
Types ¶
type AdminBasicAuth ¶
AdminBasicAuth implements basic auth for the admin user account. Cache the success auth header to avoid the bcrypt hash check penalty Basic auth is supported for admin user only, and changing it requires service restart. Caching the sha of the successful auth header allows us to skip the bcrypt check which significantly improves performance.
func NewAdminBasicAuth ¶
func NewAdminBasicAuth(logger *types.Logger, config *types.ServerConfig) *AdminBasicAuth
type AppStore ¶
AppStore is a store of apps. List of apps is stored in memory. Apps are initialized lazily, AddApp has to be called before GetApp to initialize the app
func (*AppStore) ClearApps ¶
func (a *AppStore) ClearApps(pathDomains []types.AppPathDomain)
ClearApps removes the specified apps from the in memory App cache Also clears the app info cache for all apps (so that it is reloaded on next request)
func (*AppStore) ClearAppsAudit ¶
func (a *AppStore) ClearAppsAudit(ctx context.Context, pathDomains []types.AppPathDomain, op string) error
ClearApps removes the specified apps from the in memory App cache and creates an audit entry. Also clears the app info cache for all apps (so that it is reloaded on next request)
func (*AppStore) ClearAppsNoNotify ¶
func (a *AppStore) ClearAppsNoNotify(pathDomains []types.AppPathDomain)
ClearApps removes the specified apps from the in memory App cache Also clears the app info cache for all apps (so that it is reloaded on next request) This does not notify other servers of the app update (intended for use from the listener)
func (*AppStore) ClearLinkedApps ¶
func (a *AppStore) ClearLinkedApps(pathDomain types.AppPathDomain) error
func (*AppStore) GetAppInfo ¶
func (*AppStore) GetAppsFullInfo ¶
func (*AppStore) ResetAllAppCache ¶
func (a *AppStore) ResetAllAppCache()
type ContextShared ¶
type ContextShared struct {
}
type Handler ¶
func NewTCPHandler ¶
NewTCPHandler creates a new handler for HTTP/HTTPS requests. App API's are mounted amd authentication is enabled. It also mounts the internal APIs if admin over TCP is enabled
func NewUDSHandler ¶
NewUDSHandler creates a new handler for admin APIs over the unix domain socket
type RepoCache ¶
type RepoCache struct {
// contains filtered or unexported fields
}
func NewRepoCache ¶
func (*RepoCache) CheckoutRepo ¶
type SSOAuth ¶
func NewSSOAuth ¶
func NewSSOAuth(logger *types.Logger, config *types.ServerConfig) *SSOAuth
func (*SSOAuth) RegisterRoutes ¶
func (*SSOAuth) ValidateAuthType ¶
func (*SSOAuth) ValidateProviderName ¶
type Server ¶
Server is the instance of the OpenRun Server
func NewServer ¶
func NewServer(config *types.ServerConfig) (*Server, error)
NewServer creates a new instance of the OpenRun Server
func (*Server) Apply ¶
func (s *Server) Apply(ctx context.Context, inputTx types.Transaction, applyPath string, appPathGlob string, approve, dryRun, promote bool, reload types.AppReloadOption, branch, commit, gitAuth string, clobber, forceReload bool, lastRunCommitId string, repoCache *RepoCache, dev bool) (*types.AppApplyResponse, []types.AppPathDomain, error)
func (*Server) CheckAppValid ¶
func (*Server) CompleteTransaction ¶
func (s *Server) CompleteTransaction(ctx context.Context, tx types.Transaction, entries []types.AppPathDomain, dryRun bool, op string) error
func (*Server) CreateApp ¶
func (s *Server) CreateApp(ctx context.Context, appPath string, approve, dryRun bool, appRequest *types.CreateAppRequest) (*types.AppCreateResponse, error)
func (*Server) CreateAppTx ¶
func (s *Server) CreateAppTx(ctx context.Context, currentTx types.Transaction, appPath string, approve, dryRun bool, appRequest *types.CreateAppRequest, repoCache *RepoCache) (*types.AppCreateResponse, error)
func (*Server) CreateSyncEntry ¶
func (s *Server) CreateSyncEntry(ctx context.Context, path string, scheduled, dryRun bool, sync *types.SyncMetadata) (*types.SyncCreateResponse, error)
func (*Server) DeleteApps ¶
func (*Server) DeleteSyncEntry ¶
func (*Server) FilterApps ¶
func (*Server) GetAppEntry ¶
func (s *Server) GetAppEntry(ctx context.Context, tx types.Transaction, pathDomain types.AppPathDomain) (*types.AppEntry, error)
func (*Server) InsertAuditEvent ¶
func (s *Server) InsertAuditEvent(event *types.AuditEvent) error
func (*Server) ListSyncEntries ¶
func (*Server) PreviewApp ¶
func (*Server) PromoteApps ¶
func (*Server) ReloadApps ¶
func (*Server) StagedUpdate ¶
func (*Server) StagedUpdateAppsTx ¶
func (s *Server) StagedUpdateAppsTx(ctx context.Context, tx types.Transaction, appPathGlob string, promote bool, handler stagedUpdateHandler, args map[string]any) ([]any, []types.AppPathDomain, []types.AppPathDomain, error)
func (*Server) TokenCreate ¶
func (s *Server) TokenCreate(ctx context.Context, appPath string, webhookType types.WebhookType, dryRun bool) (*types.TokenCreateResponse, error)
func (*Server) TokenDelete ¶
func (s *Server) TokenDelete(ctx context.Context, appPath string, webhookType types.WebhookType, dryRun bool) (*types.TokenDeleteResponse, error)
func (*Server) UpdateAppSettings ¶
func (s *Server) UpdateAppSettings(ctx context.Context, appPathGlob string, dryRun bool, updateAppRequest types.UpdateAppRequest) (*types.AppUpdateSettingsResponse, error)