cmd/taisce/manage.go
cmd/taisce · 338 lines · 13 declarations · source
This file carries the package documentation, rendered on the package page.
Declarations
const envManageAPI, envOperatorToken, envManageAddr and 2 more
const (
envManageAPI = "TAISCE_MANAGE_API"
envOperatorToken = "TAISCE_OPERATOR_TOKEN"
envManageAddr = "TAISCE_MANAGE_ADDR"
envPortal = "TAISCE_PORTAL"
roleManage = "manage"
)
type manageClient
type manageClient struct {
base string
token string
http *http.Client
}
manageClient is the CLI's view of the management surface.
func managementFromEnv
func managementFromEnv() (*manageClient, bool)
managementFromEnv is the switch between the two paths. The token comes from the environment only, never a flag: a flag is in the shell history and the process list.
method manageClient.post
func (c *manageClient) post(ctx context.Context, path string, body any, into any) error
method manageClient.project
func (c *manageClient) project(ctx context.Context, args []string) error
func printProject
func printProject(scope string, surfaces []string, retention string, suspended bool)
method manageClient.credential
func (c *manageClient) credential(ctx context.Context, args []string) error
func retentionArgument
func retentionArgument(args []string) (*int, error)
retentionArgument reads a retention the same way on both paths: whole days, or the word indefinite. Nil means indefinite, which is what a project starts with.
func printCredentials
func printCredentials(listed []credential.Listed)
printCredentials is the credential listing both paths print.
method manageClient.formation
func (c *manageClient) formation(ctx context.Context, args []string, out io.Writer) error
formation speaks the surface's formation operations. The arguments go through the parser the direct path uses, so both refuse the same input before anything is sent, and the answers are printed as the direct path prints them.
method manageClient.audit
func (c *manageClient) audit(ctx context.Context, args []string) error
func operatorCommand
func operatorCommand(ctx context.Context, args []string) error
operatorCommand mints an operator credential over the administrative connection: the one operation that has to exist before the management surface can be spoken to.
func operatorCredentials
func operatorCredentials(ctx context.Context, pool *pgxpool.Pool) (int, error)
operatorCredentials counts the live operator credentials, for bootstrap to know whether the management surface can be reached by anyone.