metadata

package
v0.15.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2025 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
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

)
View Source
const CURRENT_DB_VERSION = 7
View Source
const CURRENT_FILE_CACHE_VERSION = 1

Variables

View Source
var ErrConfigAlreadyExists = errors.New("config already exists")
View Source
var ErrConfigNotFound = errors.New("config not found")

Functions

func GlobMatch

func GlobMatch(patterns []string, fileName string) (bool, error)

GlobMatch returns true if the file name matches any of the patterns

Types

type DbFile

type DbFile struct {
	// contains filtered or unexported fields
}

func NewDBFile

func NewDBFile(name string, compressionType string, data []byte, fi DbFileInfo) *DbFile

func (*DbFile) Close

func (f *DbFile) Close() error

func (*DbFile) Name

func (f *DbFile) Name() string

func (*DbFile) Read

func (f *DbFile) Read(dst []byte) (int, error)

func (*DbFile) ReadCompressed

func (f *DbFile) ReadCompressed() ([]byte, string, error)

func (*DbFile) Seek

func (f *DbFile) Seek(offset int64, whence int) (int64, error)

func (*DbFile) Stat

func (f *DbFile) Stat() (fs.FileInfo, error)

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) Read

func (f *DbFileReader) Read(dst []byte) (int, error)

func (*DbFileReader) ReadCompressed

func (f *DbFileReader) ReadCompressed() ([]byte, string, error)

func (*DbFileReader) Seek

func (f *DbFileReader) Seek(offset int64, whence int) (int64, error)

type DbFs

type DbFs struct {
	*types.Logger
	// contains filtered or unexported fields
}

func NewDbFs

func NewDbFs(logger *types.Logger, fileStore *FileStore, specFiles types.SpecFiles) (*DbFs, error)

func (*DbFs) CreateTempSourceDir

func (d *DbFs) CreateTempSourceDir() (string, error)

func (*DbFs) FileHash

func (d *DbFs) FileHash(excludeGlob []string) (string, error)

FileHash returns a hash of the file names and their corresponding sha256 hashes

func (*DbFs) Glob

func (d *DbFs) Glob(pattern string) (matches []string, err error)

func (*DbFs) Open

func (d *DbFs) Open(name string) (fs.File, error)

func (*DbFs) ReadFile

func (d *DbFs) ReadFile(name string) ([]byte, error)

func (*DbFs) Reset

func (d *DbFs) Reset()

func (*DbFs) Stat

func (d *DbFs) Stat(name string) (fs.FileInfo, error)

func (*DbFs) StatNoSpec

func (d *DbFs) StatNoSpec(name string) (fs.FileInfo, error)

func (*DbFs) StaticFiles

func (d *DbFs) StaticFiles() []string

type FileCache added in v0.14.7

type FileCache struct {
	*types.Logger
	// contains filtered or unexported fields
}

func InitFileCache added in v0.14.7

func InitFileCache(logger *types.Logger, config *types.ServerConfig) (*FileCache, error)

func (*FileCache) AddCache added in v0.14.7

func (f *FileCache) AddCache(ctx context.Context, sha string, compressionType string, content []byte) error

func (*FileCache) GetCachedFile added in v0.14.7

func (f *FileCache) GetCachedFile(ctx context.Context, sha string) ([]byte, string, error)

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 NewFileStore(appId types.AppId, version int, metadata *Metadata, tx types.Transaction) (*FileStore, error)

func (*FileStore) AddAppVersionDisk

func (f *FileStore) AddAppVersionDisk(ctx context.Context, tx types.Transaction, metadata types.AppMetadata, checkoutDir string) error

func (*FileStore) GetAppFiles

func (f *FileStore) GetAppFiles(ctx context.Context, tx types.Transaction) ([]types.AppFile, error)

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 (f *FileStore) GetFileBySha(sha string) ([]byte, string, error)

func (*FileStore) GetFileByShaTx

func (f *FileStore) GetFileByShaTx(ctx context.Context, tx types.Transaction, sha string) ([]byte, string, error)

func (*FileStore) GetHighestVersion

func (f *FileStore) GetHighestVersion(ctx context.Context, tx types.Transaction, appId types.AppId) (int, error)

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

func (*FileStore) Reset

func (f *FileStore) Reset()

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

func NewMetadata(logger *types.Logger, config *types.ServerConfig) (*Metadata, error)

NewMetadata creates a new metadata persistence layer

func (*Metadata) BeginTransaction

func (m *Metadata) BeginTransaction(ctx context.Context) (types.Transaction, error)

BeginTransaction starts a new Transaction

func (*Metadata) CommitTransaction

func (m *Metadata) CommitTransaction(tx types.Transaction) error

CommitTransaction commits a transaction

func (*Metadata) CreateApp

func (m *Metadata) CreateApp(ctx context.Context, tx types.Transaction, app *types.AppEntry) error

func (*Metadata) CreateSync

func (m *Metadata) CreateSync(ctx context.Context, tx types.Transaction, sync *types.SyncEntry) error

func (*Metadata) DeleteApp

func (m *Metadata) DeleteApp(ctx context.Context, tx types.Transaction, id types.AppId) error

func (*Metadata) DeleteKV added in v0.15.3

func (m *Metadata) DeleteKV(ctx context.Context, key string) error

func (*Metadata) DeleteSync

func (m *Metadata) DeleteSync(ctx context.Context, tx types.Transaction, id string) error

func (*Metadata) FetchKV added in v0.15.3

func (m *Metadata) FetchKV(ctx context.Context, key string) (map[string]any, error)

func (*Metadata) FetchKVBlob added in v0.15.3

func (m *Metadata) FetchKVBlob(ctx context.Context, key string) ([]byte, error)

func (*Metadata) GetAllApps

func (m *Metadata) GetAllApps(includeInternal bool) ([]types.AppInfo, error)

func (*Metadata) GetApp

func (m *Metadata) GetApp(pathDomain types.AppPathDomain) (*types.AppEntry, error)

func (*Metadata) GetAppTx

func (m *Metadata) GetAppTx(ctx context.Context, tx types.Transaction, pathDomain types.AppPathDomain) (*types.AppEntry, error)

func (*Metadata) GetAppsForDomain

func (m *Metadata) GetAppsForDomain(domain string) ([]string, error)

func (*Metadata) GetConfig added in v0.14.10

func (m *Metadata) GetConfig() (*types.DynamicConfig, error)

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) 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 (m *Metadata) GetSyncEntry(ctx context.Context, tx types.Transaction, id string) (*types.SyncEntry, error)

func (*Metadata) InitConfig added in v0.14.10

func (m *Metadata) InitConfig(ctx context.Context, user string, dynamicConfig *types.DynamicConfig) error

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

func (m *Metadata) NotifyConfigUpdate() error

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) StoreKV added in v0.15.3

func (m *Metadata) StoreKV(ctx context.Context, key string, value map[string]any, expireAt *time.Time) error

func (*Metadata) StoreKVBlob added in v0.15.3

func (m *Metadata) StoreKVBlob(ctx context.Context, key string, value []byte, expireAt *time.Time) error

func (*Metadata) UpdateAppMetadata

func (m *Metadata) UpdateAppMetadata(ctx context.Context, tx types.Transaction, app *types.AppEntry) error

func (*Metadata) UpdateAppSettings

func (m *Metadata) UpdateAppSettings(ctx context.Context, tx types.Transaction, app *types.AppEntry) error

func (*Metadata) UpdateConfig added in v0.14.10

func (m *Metadata) UpdateConfig(ctx context.Context, user string, oldVersionId string, dynamicConfig *types.DynamicConfig) error

func (*Metadata) UpdateKV added in v0.15.3

func (m *Metadata) UpdateKV(ctx context.Context, key string, value map[string]any) error

func (*Metadata) UpdateKVBlob added in v0.15.3

func (m *Metadata) UpdateKVBlob(ctx context.Context, key string, value []byte) error

func (*Metadata) UpdateSourceUrl added in v0.14.7

func (m *Metadata) UpdateSourceUrl(ctx context.Context, tx types.Transaction, app *types.AppEntry) error

func (*Metadata) UpdateSyncStatus

func (m *Metadata) UpdateSyncStatus(ctx context.Context, tx types.Transaction, id string, status *types.SyncJobStatus) error

func (*Metadata) VersionUpgrade

func (m *Metadata) VersionUpgrade(config *types.ServerConfig) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL