Documentation
¶
Index ¶
- Constants
- Variables
- func GlobMatch(patterns []string, fileName string) (bool, error)
- type CertStorage
- func (c *CertStorage) Delete(ctx context.Context, id string) error
- func (c *CertStorage) Exists(ctx context.Context, id string) bool
- func (c *CertStorage) List(ctx context.Context, prefix string, recursive bool) ([]string, error)
- func (c *CertStorage) Load(ctx context.Context, id string) ([]byte, error)
- func (c *CertStorage) Lock(ctx context.Context, id string) error
- func (c *CertStorage) Stat(ctx context.Context, id string) (certmagic.KeyInfo, error)
- func (c *CertStorage) Store(ctx context.Context, id string, value []byte) error
- func (c *CertStorage) Unlock(ctx context.Context, id string) error
- type DbFile
- type DbFileInfo
- type DbFileReader
- type DbFs
- func (d *DbFs) CreateTempSourceDir() (string, error)
- func (d *DbFs) FileHash(excludeGlob []string) (string, error)
- func (d *DbFs) Glob(pattern string) (matches []string, err error)
- func (d *DbFs) Open(name string) (fs.File, error)
- func (d *DbFs) ReadFile(name string) ([]byte, error)
- func (d *DbFs) Reset()
- func (d *DbFs) Stat(name string) (fs.FileInfo, error)
- func (d *DbFs) StatNoSpec(name string) (fs.FileInfo, error)
- func (d *DbFs) StaticFiles() []string
- type FileCache
- func (f *FileCache) AddCache(ctx context.Context, sha string, compressionType string, content []byte) error
- func (f *FileCache) Close() error
- func (f *FileCache) GetCachedFile(ctx context.Context, sha string) ([]byte, string, error)
- func (f *FileCache) VersionUpgrade(config *types.ServerConfig) error
- type FileStore
- func (f *FileStore) AddAppVersionDisk(ctx context.Context, tx types.Transaction, metadata types.AppMetadata, ...) error
- func (f *FileStore) GetAppFiles(ctx context.Context, tx types.Transaction) ([]types.AppFile, error)
- func (f *FileStore) GetAppVersion(ctx context.Context, tx types.Transaction, version int) (*types.AppVersion, error)
- func (f *FileStore) GetAppVersions(ctx context.Context, tx types.Transaction) ([]types.AppVersion, error)
- func (f *FileStore) GetFileBySha(sha string) ([]byte, string, error)
- func (f *FileStore) GetFileByShaTx(ctx context.Context, tx types.Transaction, sha string) ([]byte, string, error)
- func (f *FileStore) GetHighestVersion(ctx context.Context, tx types.Transaction, appId types.AppId) (int, error)
- func (f *FileStore) IncrementAppVersion(ctx context.Context, tx types.Transaction, metadata *types.AppMetadata) error
- func (f *FileStore) PromoteApp(ctx context.Context, tx types.Transaction, prodAppId types.AppId, ...) error
- func (f *FileStore) Reset()
- type LeaderElection
- type LeaderState
- type Metadata
- func (m *Metadata) BeginTransaction(ctx context.Context) (types.Transaction, error)
- func (m *Metadata) CleanupAppVersions(app types.AppInfo) error
- func (m *Metadata) CleanupExpiredKV(ctx context.Context) error
- func (m *Metadata) CleanupFiles() error
- func (m *Metadata) ClearServiceDefault(ctx context.Context, tx types.Transaction, serviceType, exceptName string) error
- func (m *Metadata) ClearServiceStaging(ctx context.Context, tx types.Transaction, serviceType, staging string) error
- func (m *Metadata) Close()
- func (m *Metadata) CommitTransaction(tx types.Transaction) error
- func (m *Metadata) CountServices(ctx context.Context, tx types.Transaction, serviceType string) (int, error)
- func (m *Metadata) CreateApp(ctx context.Context, tx types.Transaction, app *types.AppEntry) error
- func (m *Metadata) CreateBinding(ctx context.Context, tx types.Transaction, binding *types.Binding) error
- func (m *Metadata) CreateBuilderActivity(ctx context.Context, tx types.Transaction, activity *types.BuilderActivity) error
- func (m *Metadata) CreateBuilderSession(ctx context.Context, tx types.Transaction, session *types.BuilderSession) error
- func (m *Metadata) CreateService(ctx context.Context, tx types.Transaction, service *types.Service) error
- func (m *Metadata) CreateSync(ctx context.Context, tx types.Transaction, sync *types.SyncEntry) error
- func (m *Metadata) DeleteApp(ctx context.Context, tx types.Transaction, id types.AppId) error
- func (m *Metadata) DeleteBinding(ctx context.Context, tx types.Transaction, path string) error
- func (m *Metadata) DeleteBuilderSession(ctx context.Context, tx types.Transaction, id string) error
- func (m *Metadata) DeleteConfigDraft(ctx context.Context) error
- func (m *Metadata) DeleteKV(ctx context.Context, key string) error
- func (m *Metadata) DeleteSecretEntry(ctx context.Context, name string) error
- func (m *Metadata) DeleteService(ctx context.Context, tx types.Transaction, name, serviceType string) error
- func (m *Metadata) DeleteSync(ctx context.Context, tx types.Transaction, id string) error
- func (m *Metadata) FetchKV(ctx context.Context, key string) (map[string]any, error)
- func (m *Metadata) FetchKVBlob(ctx context.Context, key string) ([]byte, error)
- func (m *Metadata) GetAllApps(includeInternal bool) ([]types.AppInfo, error)
- func (m *Metadata) GetAppEntry(ctx context.Context, pathDomain types.AppPathDomain) (*types.AppEntry, error)
- func (m *Metadata) GetAppEntryTx(ctx context.Context, tx types.Transaction, pathDomain types.AppPathDomain) (*types.AppEntry, error)
- func (m *Metadata) GetAppsForDomain(domain string) ([]string, error)
- func (m *Metadata) GetBinding(ctx context.Context, tx types.Transaction, path string) (*types.Binding, error)
- func (m *Metadata) GetBuilderSession(ctx context.Context, tx types.Transaction, id string) (*types.BuilderSession, error)
- func (m *Metadata) GetCertStorage() certmagic.Storage
- func (m *Metadata) GetConfig() (*types.DynamicConfig, error)
- func (m *Metadata) GetConfigDraft(ctx context.Context) (*types.ConfigDraft, error)
- func (m *Metadata) GetConfigVersion(ctx context.Context, versionId string) (*types.DynamicConfig, error)
- func (m *Metadata) GetDefaultService(ctx context.Context, tx types.Transaction, serviceType string) (*types.Service, error)
- func (m *Metadata) GetLinkedApps(ctx context.Context, tx types.Transaction, mainAppId types.AppId) ([]*types.AppEntry, error)
- func (m *Metadata) GetSecretEntry(ctx context.Context, name string) (*types.SecretEntry, error)
- func (m *Metadata) GetService(ctx context.Context, tx types.Transaction, serviceType, name string) (*types.Service, error)
- func (m *Metadata) GetSyncEntries(ctx context.Context, tx types.Transaction) ([]*types.SyncEntry, error)
- func (m *Metadata) GetSyncEntry(ctx context.Context, tx types.Transaction, id string) (*types.SyncEntry, error)
- func (m *Metadata) GetVersionUsers() (map[types.AppId]map[int]string, error)
- func (m *Metadata) InitConfig(ctx context.Context, user string, dynamicConfig *types.DynamicConfig) error
- func (m *Metadata) InsertSecretEntry(ctx context.Context, entry *types.SecretEntry) error
- func (m *Metadata) IsLeader() bool
- func (m *Metadata) ListBindings(ctx context.Context, tx types.Transaction, source string) ([]*types.Binding, error)
- func (m *Metadata) ListBuilderActivity(ctx context.Context, sessionId, afterId string, limit int) ([]*types.BuilderActivity, error)
- func (m *Metadata) ListBuilderSessions(ctx context.Context, userID string) ([]*types.BuilderSession, error)
- func (m *Metadata) ListConfigHistory(ctx context.Context) ([]types.ConfigHistoryEntry, error)
- func (m *Metadata) ListSecretEntries(ctx context.Context, includeValues bool) ([]*types.SecretEntry, error)
- func (m *Metadata) ListServices(ctx context.Context, tx types.Transaction, serviceType, name string) ([]*types.Service, error)
- func (m *Metadata) NotifyAppUpdate(appPathDomains []types.AppPathDomain) error
- func (m *Metadata) NotifyConfigUpdate() error
- func (m *Metadata) RollbackTransaction(tx types.Transaction) error
- func (m *Metadata) ServiceExists(ctx context.Context, tx types.Transaction, serviceType, name string) (bool, error)
- func (m *Metadata) SetConfigDraft(ctx context.Context, draft *types.ConfigDraft) error
- func (m *Metadata) StoreKV(ctx context.Context, key string, value map[string]any, expireAt *time.Time) error
- func (m *Metadata) StoreKVBlob(ctx context.Context, key string, value []byte, expireAt *time.Time) error
- func (m *Metadata) UpdateAppMetadata(ctx context.Context, tx types.Transaction, app *types.AppEntry) error
- func (m *Metadata) UpdateAppSettings(ctx context.Context, tx types.Transaction, app *types.AppEntry) error
- func (m *Metadata) UpdateBinding(ctx context.Context, tx types.Transaction, binding *types.Binding) error
- func (m *Metadata) UpdateBuilderSession(ctx context.Context, tx types.Transaction, session *types.BuilderSession) error
- func (m *Metadata) UpdateConfig(ctx context.Context, user string, oldVersionId string, ...) error
- func (m *Metadata) UpdateKV(ctx context.Context, key string, value map[string]any) error
- func (m *Metadata) UpdateKVBlob(ctx context.Context, key string, value []byte) error
- func (m *Metadata) UpdateSecretEntry(ctx context.Context, entry *types.SecretEntry) error
- func (m *Metadata) UpdateSecretEntryIfUnchanged(ctx context.Context, entry *types.SecretEntry, prevKeyId string, ...) (bool, error)
- func (m *Metadata) UpdateService(ctx context.Context, tx types.Transaction, service *types.Service) error
- func (m *Metadata) UpdateSourceUrl(ctx context.Context, tx types.Transaction, app *types.AppEntry) error
- func (m *Metadata) UpdateSyncStatus(ctx context.Context, tx types.Transaction, id string, ...) error
- func (m *Metadata) UpsertKVBlob(ctx context.Context, key string, value []byte, expireAt *time.Time) error
- func (m *Metadata) VersionUpgrade(config *types.ServerConfig) error
Constants ¶
const ( COMPRESSION_THRESHOLD = 0 // files above this size are stored compressed. The chi Compress middleware does not have a threshold, // so the threshold is set to zero here BROTLI_COMPRESSION_LEVEL = 9 // https://paulcalvano.com/2018-07-25-brotli-compression-how-much-will-it-reduce-your-content/ seems )
const CURRENT_DB_VERSION = 17
const CURRENT_FILE_CACHE_VERSION = 1
Variables ¶
var ErrAppNotFound = errors.New("app not found")
ErrAppNotFound is returned when an app entry does not exist in the metadata store.
var ErrConfigAlreadyExists = errors.New("config already exists")
var ErrConfigNotFound = errors.New("config not found")
var ErrNoConfigDraft = errors.New("no staged config draft")
Functions ¶
Types ¶
type CertStorage ¶ added in v0.16.11
CertStorage is the database backed storage for the cert info. Implements the certmagic.Storage interface.
func NewCertStorage ¶ added in v0.16.11
func (*CertStorage) Delete ¶ added in v0.16.11
func (c *CertStorage) Delete(ctx context.Context, id string) error
Delete deletes the certificate with the given id.
func (*CertStorage) Exists ¶ added in v0.16.11
func (c *CertStorage) Exists(ctx context.Context, id string) bool
Exists checks if the certificate with the given id exists.
func (*CertStorage) Lock ¶ added in v0.16.11
func (c *CertStorage) Lock(ctx context.Context, id string) error
Lock locks the certificate with the given id.
func (*CertStorage) Stat ¶ added in v0.16.11
Stat returns the information about the certificate with the given id.
type DbFile ¶
type DbFile struct {
// contains filtered or unexported fields
}
type DbFileInfo ¶
type DbFileInfo struct {
// contains filtered or unexported fields
}
func (*DbFileInfo) IsDir ¶
func (fi *DbFileInfo) IsDir() bool
func (*DbFileInfo) ModTime ¶
func (fi *DbFileInfo) ModTime() time.Time
func (*DbFileInfo) Mode ¶
func (fi *DbFileInfo) Mode() fs.FileMode
func (*DbFileInfo) Name ¶
func (fi *DbFileInfo) Name() string
func (*DbFileInfo) Size ¶
func (fi *DbFileInfo) Size() int64
func (*DbFileInfo) Sys ¶
func (fi *DbFileInfo) Sys() any
type DbFileReader ¶
type DbFileReader struct {
// contains filtered or unexported fields
}
func NewDbFileReader ¶
func NewDbFileReader(compressionType string, data []byte) *DbFileReader
func (*DbFileReader) ReadCompressed ¶
func (f *DbFileReader) ReadCompressed() ([]byte, string, error)
type DbFs ¶
func (*DbFs) CreateTempSourceDir ¶
func (*DbFs) FileHash ¶
FileHash returns a hash of the file names and their corresponding sha256 hashes
func (*DbFs) StaticFiles ¶
type FileCache ¶ added in v0.14.7
func InitFileCache ¶ added in v0.14.7
func (*FileCache) GetCachedFile ¶ added in v0.14.7
func (*FileCache) VersionUpgrade ¶ added in v0.14.7
func (f *FileCache) VersionUpgrade(config *types.ServerConfig) error
type FileStore ¶
type FileStore struct {
// contains filtered or unexported fields
}
func NewFileStore ¶
func (*FileStore) AddAppVersionDisk ¶
func (f *FileStore) AddAppVersionDisk(ctx context.Context, tx types.Transaction, metadata types.AppMetadata, checkoutDir string) error
func (*FileStore) GetAppFiles ¶
func (*FileStore) GetAppVersion ¶
func (f *FileStore) GetAppVersion(ctx context.Context, tx types.Transaction, version int) (*types.AppVersion, error)
func (*FileStore) GetAppVersions ¶
func (f *FileStore) GetAppVersions(ctx context.Context, tx types.Transaction) ([]types.AppVersion, error)
func (*FileStore) GetFileBySha ¶
func (*FileStore) GetFileByShaTx ¶
func (*FileStore) GetHighestVersion ¶
func (*FileStore) IncrementAppVersion ¶
func (f *FileStore) IncrementAppVersion(ctx context.Context, tx types.Transaction, metadata *types.AppMetadata) error
func (*FileStore) PromoteApp ¶
func (f *FileStore) PromoteApp(ctx context.Context, tx types.Transaction, prodAppId types.AppId, metadata *types.AppMetadata) error
type LeaderElection ¶ added in v0.16.21
func NewLeaderElection ¶ added in v0.16.21
func NewLeaderElection(logger *types.Logger, metadata *Metadata, config *types.ServerConfig, nodeId string, hostname string) *LeaderElection
func (*LeaderElection) CreateTables ¶ added in v0.16.21
func (l *LeaderElection) CreateTables(ctx context.Context, tx types.Transaction) error
func (*LeaderElection) IsLeader ¶ added in v0.16.21
func (l *LeaderElection) IsLeader() bool
func (*LeaderElection) StartLoop ¶ added in v0.16.21
func (l *LeaderElection) StartLoop(parentCtx context.Context)
func (*LeaderElection) Stop ¶ added in v0.16.21
func (l *LeaderElection) Stop()
type LeaderState ¶ added in v0.16.21
type Metadata ¶
type Metadata struct {
*types.Logger
AppNotifyFunc func(types.AppUpdatePayload)
ConfigNotifyFunc func(types.ConfigUpdatePayload)
// contains filtered or unexported fields
}
Metadata is the metadata persistence layer
func NewMetadata ¶
NewMetadata creates a new metadata persistence layer
func (*Metadata) BeginTransaction ¶
BeginTransaction starts a new Transaction
func (*Metadata) CleanupAppVersions ¶ added in v0.16.22
func (*Metadata) CleanupExpiredKV ¶ added in v0.17.1
func (*Metadata) CleanupFiles ¶ added in v0.16.22
func (*Metadata) ClearServiceDefault ¶ added in v0.17.2
func (m *Metadata) ClearServiceDefault(ctx context.Context, tx types.Transaction, serviceType, exceptName string) error
ClearServiceDefault unsets the is_default flag for any service of the given service_type except for the service with the given name. If exceptName is empty, the default flag is cleared for all services of that type.
func (*Metadata) ClearServiceStaging ¶ added in v0.17.2
func (*Metadata) Close ¶ added in v0.16.21
func (m *Metadata) Close()
Close stops background goroutines owned by Metadata (leader election and the postgres listener) and closes the database connection pools.
func (*Metadata) CommitTransaction ¶
func (m *Metadata) CommitTransaction(tx types.Transaction) error
CommitTransaction commits a transaction
func (*Metadata) CountServices ¶ added in v0.17.2
func (m *Metadata) CountServices(ctx context.Context, tx types.Transaction, serviceType string) (int, error)
CountServices returns the number of services of the given service_type.
func (*Metadata) CreateBinding ¶ added in v0.17.2
func (*Metadata) CreateBuilderActivity ¶ added in v0.18.6
func (m *Metadata) CreateBuilderActivity(ctx context.Context, tx types.Transaction, activity *types.BuilderActivity) error
func (*Metadata) CreateBuilderSession ¶ added in v0.18.6
func (m *Metadata) CreateBuilderSession(ctx context.Context, tx types.Transaction, session *types.BuilderSession) error
func (*Metadata) CreateService ¶ added in v0.17.2
func (*Metadata) CreateSync ¶
func (*Metadata) DeleteBinding ¶ added in v0.17.2
func (*Metadata) DeleteBuilderSession ¶ added in v0.18.6
func (*Metadata) DeleteConfigDraft ¶ added in v0.18.4
DeleteConfigDraft drops the staged config draft
func (*Metadata) DeleteSecretEntry ¶ added in v0.18.6
DeleteSecretEntry deletes the secret with the given name, types.ErrSecretNotFound if it does not exist
func (*Metadata) DeleteService ¶ added in v0.17.2
func (*Metadata) DeleteSync ¶
func (*Metadata) FetchKVBlob ¶ added in v0.15.3
func (*Metadata) GetAllApps ¶
func (*Metadata) GetAppEntry ¶ added in v0.18.0
func (*Metadata) GetAppEntryTx ¶ added in v0.18.0
func (m *Metadata) GetAppEntryTx(ctx context.Context, tx types.Transaction, pathDomain types.AppPathDomain) (*types.AppEntry, error)
func (*Metadata) GetAppsForDomain ¶
func (*Metadata) GetBinding ¶ added in v0.17.2
func (*Metadata) GetBuilderSession ¶ added in v0.18.6
func (m *Metadata) GetBuilderSession(ctx context.Context, tx types.Transaction, id string) (*types.BuilderSession, error)
func (*Metadata) GetCertStorage ¶ added in v0.16.11
GetCertStorage returns the cert storage implementation which persists the cert info to the database.
func (*Metadata) GetConfig ¶ added in v0.14.10
func (m *Metadata) GetConfig() (*types.DynamicConfig, error)
func (*Metadata) GetConfigDraft ¶ added in v0.18.4
GetConfigDraft returns the staged config draft, ErrNoConfigDraft if none
func (*Metadata) GetConfigVersion ¶ added in v0.18.4
func (m *Metadata) GetConfigVersion(ctx context.Context, versionId string) (*types.DynamicConfig, error)
GetConfigVersion returns the full dynamic config snapshot for a history version
func (*Metadata) GetDefaultService ¶ added in v0.17.2
func (*Metadata) GetLinkedApps ¶
func (m *Metadata) GetLinkedApps(ctx context.Context, tx types.Transaction, mainAppId types.AppId) ([]*types.AppEntry, error)
GetLinkedApps gets all the apps linked to the given main app (staging and preview apps)
func (*Metadata) GetSecretEntry ¶ added in v0.18.6
GetSecretEntry returns the secret row for the given name, types.ErrSecretNotFound if it does not exist
func (*Metadata) GetService ¶ added in v0.17.2
func (*Metadata) GetSyncEntries ¶
func (m *Metadata) GetSyncEntries(ctx context.Context, tx types.Transaction) ([]*types.SyncEntry, error)
GetSyncEntries gets all the sync entries for the given webhook type
func (*Metadata) GetSyncEntry ¶
func (*Metadata) GetVersionUsers ¶ added in v0.18.6
GetVersionUsers returns the user who created each app version, keyed by app id and version. Used to annotate app listings with who performed the last (active version) update, in one query instead of per app
func (*Metadata) InitConfig ¶ added in v0.14.10
func (*Metadata) InsertSecretEntry ¶ added in v0.18.6
InsertSecretEntry inserts a new secret row, types.ErrSecretExists if a row with the same name is already present
func (*Metadata) IsLeader ¶ added in v0.16.21
IsLeader returns true if the current server is the leader
func (*Metadata) ListBindings ¶ added in v0.17.2
func (m *Metadata) ListBindings(ctx context.Context, tx types.Transaction, source string) ([]*types.Binding, error)
ListBindings returns bindings filtered by the optional source. Empty string means no filter.
func (*Metadata) ListBuilderActivity ¶ added in v0.18.6
func (m *Metadata) ListBuilderActivity(ctx context.Context, sessionId, afterId string, limit int) ([]*types.BuilderActivity, error)
ListBuilderActivity returns activity rows for a session in insertion order (activity ids are time-ordered ksuids). afterId returns rows later than the given id, for incremental fetches; limit 0 means no limit
func (*Metadata) ListBuilderSessions ¶ added in v0.18.6
func (m *Metadata) ListBuilderSessions(ctx context.Context, userID string) ([]*types.BuilderSession, error)
ListBuilderSessions returns all sessions, newest first, optionally filtered to one user
func (*Metadata) ListConfigHistory ¶ added in v0.18.4
ListConfigHistory returns the config history entries, newest first
func (*Metadata) ListSecretEntries ¶ added in v0.18.6
func (m *Metadata) ListSecretEntries(ctx context.Context, includeValues bool) ([]*types.SecretEntry, error)
ListSecretEntries returns all secret rows, sorted by name. With includeValues false the ciphertext and nonce columns are not fetched; listing does not need to pull up to 1MiB blobs per row
func (*Metadata) ListServices ¶ added in v0.17.2
func (m *Metadata) ListServices(ctx context.Context, tx types.Transaction, serviceType, name string) ([]*types.Service, error)
ListServices returns services filtered by the optional serviceType and name. Empty string means no filter.
func (*Metadata) NotifyAppUpdate ¶
func (m *Metadata) NotifyAppUpdate(appPathDomains []types.AppPathDomain) error
NotifyAppUpdate sends a notification through the postgres listener that an app has been updated
func (*Metadata) NotifyConfigUpdate ¶ added in v0.15.0
NotifyConfigUpdate sends a notification through the postgres listener that the config has been updated
func (*Metadata) RollbackTransaction ¶
func (m *Metadata) RollbackTransaction(tx types.Transaction) error
RollbackTransaction rolls back a transaction
func (*Metadata) ServiceExists ¶ added in v0.17.2
func (*Metadata) SetConfigDraft ¶ added in v0.18.4
SetConfigDraft creates or replaces the staged config draft
func (*Metadata) StoreKVBlob ¶ added in v0.15.3
func (*Metadata) UpdateAppMetadata ¶
func (*Metadata) UpdateAppSettings ¶
func (*Metadata) UpdateBinding ¶ added in v0.17.2
func (*Metadata) UpdateBuilderSession ¶ added in v0.18.6
func (m *Metadata) UpdateBuilderSession(ctx context.Context, tx types.Transaction, session *types.BuilderSession) error
func (*Metadata) UpdateConfig ¶ added in v0.14.10
func (*Metadata) UpdateKVBlob ¶ added in v0.15.3
func (*Metadata) UpdateSecretEntry ¶ added in v0.18.6
UpdateSecretEntry updates the value (and metadata) of an existing secret, types.ErrSecretNotFound if the name is not present
func (*Metadata) UpdateSecretEntryIfUnchanged ¶ added in v0.18.6
func (m *Metadata) UpdateSecretEntryIfUnchanged(ctx context.Context, entry *types.SecretEntry, prevKeyId string, prevNonce []byte) (bool, error)
UpdateSecretEntryIfUnchanged updates the row only if its current key_id and nonce still match prevKeyId/prevNonce, returning whether a row was updated
func (*Metadata) UpdateService ¶ added in v0.17.2
func (*Metadata) UpdateSourceUrl ¶ added in v0.14.7
func (*Metadata) UpdateSyncStatus ¶
func (m *Metadata) UpdateSyncStatus(ctx context.Context, tx types.Transaction, id string, status *types.SyncJobStatus) error
func (*Metadata) UpsertKVBlob ¶ added in v0.17.1
func (*Metadata) VersionUpgrade ¶
func (m *Metadata) VersionUpgrade(config *types.ServerConfig) error