profiles

package
v0.439.0 Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LocalProfileConfig

type LocalProfileConfig struct {
	SecretsProvider configuration.ProviderKey
	ConfigProvider  configuration.ProviderKey
}

type Profile

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

func (*Profile) ConfigurationManager

func (p *Profile) ConfigurationManager() *manager.Manager[configuration.Configuration]

ConfigurationManager returns the configuration manager for this profile.

func (*Profile) Endpoint added in v0.435.0

func (p *Profile) Endpoint() *url.URL

func (*Profile) Name added in v0.435.0

func (p *Profile) Name() string

func (*Profile) ProjectConfig

func (p *Profile) ProjectConfig() ProjectConfig

ProjectConfig is the static project-wide configuration shared by all profiles.

func (*Profile) SecretsManager

func (p *Profile) SecretsManager() *manager.Manager[configuration.Secrets]

SecretsManager returns the secrets manager for this profile.

type ProfileConfig

type ProfileConfig struct {
	Name   string
	Config ProfileConfigKind
}

func (ProfileConfig) String

func (p ProfileConfig) String() string

type ProfileConfigKind added in v0.435.0

type ProfileConfigKind interface {
	// contains filtered or unexported methods
}

type Project

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

func Init

func Init(
	project ProjectConfig,
	secretsRegistry *providers.Registry[configuration.Secrets],
	configRegistry *providers.Registry[configuration.Configuration],
) (*Project, error)

Init a new project with a default local profile.

If "project.Default" is empty a new project will be created with a default "local" profile.

func Open

func Open(
	root string,
	secretsRegistry *providers.Registry[configuration.Secrets],
	configRegistry *providers.Registry[configuration.Configuration],
) (*Project, error)

Open a project.

func (*Project) ActiveProfile

func (p *Project) ActiveProfile() (string, error)

ActiveProfile returns the name of the active profile.

If no profile is active, the default profile is returned.

func (*Project) DefaultProfile

func (p *Project) DefaultProfile() string

DefaultProfile returns the name of the default profile.

func (*Project) List

func (p *Project) List() ([]ProfileConfig, error)

List all profiles in the project.

func (*Project) Load

func (p *Project) Load(ctx context.Context, profile string) (Profile, error)

Load a profile from the project.

func (*Project) New

func (p *Project) New(profileConfig ProfileConfig) error

New creates a new profile in the project.

func (*Project) SetDefault

func (p *Project) SetDefault(profile string) error

SetDefault profile for the project.

func (*Project) Switch

func (p *Project) Switch(profile string) error

Switch active profiles.

type ProjectConfig

type ProjectConfig struct {
	Realm         string `json:"realm"`
	FTLMinVersion string `json:"ftl-min-version,omitempty"`
	// ModuleRoots is a list of directories that contain modules.
	ModuleRoots    []string `json:"module-roots,omitempty"`
	Git            bool     `json:"git,omitempty"`
	Hermit         bool     `json:"hermit,omitempty"`
	DefaultProfile string   `json:"default-profile,omitempty"`

	Root string `json:"-"`
}

ProjectConfig is the static project-wide configuration shared by all profiles.

It mirrors the internal.Project struct.

func (ProjectConfig) AbsModuleDirs added in v0.435.0

func (c ProjectConfig) AbsModuleDirs() []string

AbsModuleDirs returns the absolute path for the module-dirs field from the ftl-project.toml, unless that is not defined, in which case it defaults to the root directory.

type RemoteProfileConfig

type RemoteProfileConfig struct {
	Endpoint *url.URL
}

Directories

Path Synopsis
Package internal manages the persistent profile configuration of the FTL CLI.
Package internal manages the persistent profile configuration of the FTL CLI.

Jump to

Keyboard shortcuts

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