Documentation
¶
Overview ¶
Package config loads and persists the CLI configuration in ~/.volcano/config.json.
Index ¶
- Variables
- func Delete() error
- func FirstPartyDeviceClientID() (string, error)
- func FunctionAliasScope(apiURL, projectID string) string
- func IsLoopbackAPIURL(apiURL string) bool
- func Path() (string, error)
- type Config
- func (c *Config) APIURL() string
- func (c *Config) DeleteFunctionAlias(scope, alias string) bool
- func (c *Config) FunctionAlias(scope, alias string) (string, bool)
- func (c *Config) FunctionInvokeToken() string
- func (c *Config) ProjectID() string
- func (c *Config) RequireAuth() error
- func (c *Config) RequireProject() error
- func (c *Config) Save() error
- func (c *Config) SetFunctionAlias(scope, alias, functionID string)
- func (c *Config) Token() string
- func (c *Config) WebURL() string
- func (c *Config) WebURLOverride() (string, bool)
- type DocsSourceConfig
- type ProjectConfig
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNotAuthenticated indicates no token is configured for cloud API calls. ErrNotAuthenticated = errors.New("not authenticated. Run 'volcano login' first") // ErrNoProjectSelected indicates no active project is configured for project-scoped cloud API calls. ErrNoProjectSelected = errors.New("no project selected. Run 'volcano use <project-name>' or set VOLCANO_PROJECT_ID") )
Functions ¶
func Delete ¶
func Delete() error
Delete removes ~/.volcano/config.json. A missing file is considered success.
func FirstPartyDeviceClientID ¶
FirstPartyDeviceClientID resolves the first-party OAuth device client ID.
func FunctionAliasScope ¶ added in v0.0.4
FunctionAliasScope returns the config key for aliases bound to one API URL and project ID. The API URL is trimmed so trailing slashes do not split scopes.
func IsLoopbackAPIURL ¶ added in v0.2.0
IsLoopbackAPIURL reports whether apiURL points at a loopback address ("localhost" or a loopback IP). Shared by local-mode's device-client selection and by deriveWebURL below.
Types ¶
type Config ¶
type Config struct {
// APIBaseURL overrides the compiled API URL for synthetic command configs.
// It is intentionally not persisted to the user's cloud config file.
APIBaseURL string `json:"-"`
UserToken string `json:"user_token,omitempty"`
UserID string `json:"user_id,omitempty"`
AnonKey string `json:"-"`
ServiceKey string `json:"-"`
CurrentProject *ProjectConfig `json:"current_project,omitempty"`
// FunctionAliases stores per-user function invoke aliases by API URL and
// project ID scope. Scope keys are produced by FunctionAliasScope.
FunctionAliases map[string]map[string]string `json:"function_aliases,omitempty"`
// DocsSource persists a non-default documentation source override so that
// `volcano docs` commands resolve the same repo/ref/path across invocations
// without repeating --repo/--ref/--path flags. Nil means "use the compiled
// default source".
DocsSource *DocsSourceConfig `json:"docs_source,omitempty"`
// IgnoreEnv disables environment overrides for synthetic command configs.
IgnoreEnv bool `json:"-"`
}
Config represents the CLI configuration stored in ~/.volcano/config.json.
func (*Config) APIURL ¶
APIURL returns the API URL with VOLCANO_API_URL taking precedence unless env overrides are disabled. Precedence: env > runtime override (APIBaseURL) > compiled default.
func (*Config) DeleteFunctionAlias ¶ added in v0.0.4
DeleteFunctionAlias removes alias from the given scope and reports whether it existed.
func (*Config) FunctionAlias ¶ added in v0.0.4
FunctionAlias returns the function ID configured for alias in the given scope.
func (*Config) FunctionInvokeToken ¶ added in v0.0.4
FunctionInvokeToken returns the token used for runtime function invocation. Local mode supplies service and anon keys for invoke endpoints; cloud falls back to the normal configured token until a project invoke key is available.
func (*Config) ProjectID ¶
ProjectID returns the current project ID, with VOLCANO_PROJECT_ID taking precedence unless env overrides are disabled.
func (*Config) RequireAuth ¶
RequireAuth returns an old-CLI-compatible error when no token is available.
func (*Config) RequireProject ¶
RequireProject returns an old-CLI-compatible error when no project is selected.
func (*Config) SetFunctionAlias ¶ added in v0.0.4
SetFunctionAlias stores alias in the given scope.
func (*Config) Token ¶
Token returns the configured token, with VOLCANO_TOKEN taking precedence unless env overrides are disabled.
func (*Config) WebURL ¶ added in v0.0.4
WebURL returns the Volcano web URL with VOLCANO_WEB_URL taking precedence, then an explicitly compiled-in default (e.g. via `make local`'s DEFAULT_WEB_URL, which differs from the shipped defaultCompiledWebURL literal only when someone set it), then a URL derived from the resolved API URL (see deriveWebURL), then the shipped compiled default. The explicit compiled default has to win over derivation: otherwise a loopback VOLCANO_API_URL baked in alongside a non-conventional compiled web URL (e.g. a frontend dev server not on port 3000) would have its own compiled default silently overridden by the :3000 convention.
func (*Config) WebURLOverride ¶ added in v0.0.4
WebURLOverride returns an explicit VOLCANO_WEB_URL value when one is set, reporting false otherwise. Callers that derive the web origin from another source (e.g. the device-flow verification URI) use this to let an explicit override win without mistaking the compiled default for an override.
type DocsSourceConfig ¶ added in v0.1.0
type DocsSourceConfig struct {
Repo string `json:"repo,omitempty"`
Ref string `json:"ref,omitempty"`
Path string `json:"path,omitempty"`
}
DocsSourceConfig persists a documentation source override. Empty fields fall back to the compiled defaults during resolution.
type ProjectConfig ¶
ProjectConfig represents the currently selected Volcano project.