parse

package
v0.19.769 Latest Latest
Warning

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

Go to latest
Published: Feb 5, 2026 License: AGPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidFilename error = fmt.Errorf("invalid filename")

Functions

func AppNameFromDirName

func AppNameFromDirName(dir string) (string, error)

func AppNameFromFilename

func AppNameFromFilename(file string) (string, error)

func FilenameFromAppName

func FilenameFromAppName(appName string) string

func Parse

func Parse(parseCfg ParseConfig) (*config.AppConfig, error)

func ParseDir

func ParseDir(ctx context.Context, parseCfg ParseConfig) (*config.AppConfig, error)

func ReadFile

func ReadFile(filename string) ([]byte, error)

func Template

func Template(byts []byte) ([]byte, error)

Types

type BaseConfig

type BaseConfig struct {
	ConfigVars map[string]interface{} `toml:"config_vars"`
}

type ConfigDir

type ConfigDir struct {
	Branch     *config.AppBranchConfig `name:"branch"`
	Components []*config.Component     `name:"components"`
	Actions    []*config.ActionConfig  `name:"actions"`
	Installs   []*config.Install       `name:"installs"`

	Policies    *config.PoliciesConfig `name:"policies"`
	PoliciesDir []config.AppPolicy     `name:"policies"`

	Secrets    *config.SecretsConfig `name:"secrets"`
	SecretsDir []*config.AppSecret   `name:"secrets"`

	Inputs         *config.AppInputConfig `name:"inputs"`
	InputsDir      []config.AppInput      `name:"inputs"`
	InputGroupsDir []config.AppInputGroup `name:"input_groups"`

	Permissions    *config.PermissionsConfig `name:"permissions"`
	PermissionsDir []*config.AppAWSIAMRole   `name:"permissions"`

	BreakGlass    *config.BreakGlass      `name:"break_glass"`
	BreakGlassDir []*config.AppAWSIAMRole `name:"break_glass"`

	Stack     *config.StackConfig      `name:"stack"`
	Sandbox   *config.AppSandboxConfig `name:"sandbox"`
	Runner    *config.AppRunnerConfig  `name:"runner"`
	Metadata  *config.MetadataConfig   `name:"metadata,required"`
	Installer *config.InstallerConfig  `name:"installer"`
}

NOTE(jm): this is only required as a temporary migration path, while the old config syncing exists.

This will be removed and we will pass the `config.AppConfig` into the directory parser once we have time to remove the old version.

type File

type File struct {
	AppName string
	Path    string
}

func FindConfigFiles

func FindConfigFiles(rootDir string) ([]File, error)

type FileProcessor

type FileProcessor func(string, map[string]any) map[string]any

FileProcessor is a function to process config files before they're marshalled into a config struct and synced to the api.

type ParseConfig

type ParseConfig struct {
	Filename string
	Dirname  string

	Bytes []byte

	BackendType   config.BackendType
	V             *validator.Validate
	Template      bool
	FileProcessor func(name string, obj map[string]any) map[string]any
}

type ParseErr

type ParseErr struct {
	Filename    string
	Description string
	Err         error
}

func (ParseErr) Error

func (p ParseErr) Error() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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