id = "steadybit" name = "Steadybit CLI" homepage = "https://github.com/steadybit/cli" description = "Command-line interface to interact with the Steadybit API, for running and managing chaos engineering experiments." # Steadybit's symbol, the image its own Helm chart points `icon` at. icon = "https://steadybit-website-assets.s3.amazonaws.com/logo-symbol-transparent.png" executables = ["steadybit"] [dotfiles] # steadybit/cli, src/config/profile/service.ts: # const configDir = () => path.join(homedir(), '.steadybit'); # const profilesFile = () => path.join(configDir(), 'profiles.json'); # const activeProfileFile = () => path.join(configDir(), 'activeProfile'); # and src/config/profile/add.ts prints "Configuration profiles are stored in # ~/.steadybit". paths = ["~/.steadybit/profiles.json", "~/.steadybit/activeProfile"] exclude = [] # profiles.json is not a whole-file secret: the profile names and the base URL # of each Steadybit installation are what makes the file worth carrying. Only # the token is lifted out. secret = [] # Read on demand and written by `steadybit config profile ...`; nothing holds # it open. side_effect = false # src/config/profile/types.ts: # export interface Profile { name: string; apiAccessToken: string; baseUrl?: string } # profiles.json is an array of those, so `*` is the array element. The token is # the API access token from Settings -> API Access Tokens. [[dotfiles.secret_paths]] file = "~/.steadybit/profiles.json" match = { key_path = ["*.apiAccessToken"] } [commands] format = 1 label = "Steadybit service definitions" description = "Upload or verify a Steadybit service definition file. Other subcommands (config profiles, def-repo, init, open, delete) are left out." quality = "ai-draft" base = "fig:steadybit" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/steadybit.ts" license = "MIT" [[commands.subcommand]] path = ["service", "apply"] label = "Apply service definition" description = "Upload a service definition file to Steadybit." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/steadybit.ts" license = "MIT" [[commands.subcommand.field]] id = "file" label = "Service definition file" type = "path" option = ["--file", "-f"] path = { kind = "file", role = "input", must_exist = true } sources = ["fig"] [[commands.subcommand.task]] id = "apply" label = "Upload definition" fields = ["file"] required = ["file"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["file"] [[commands.subcommand]] path = ["service", "verify"] label = "Verify service definition" description = "Read the current service definition and state." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/steadybit.ts" license = "MIT" [[commands.subcommand.field]] id = "file" label = "Service definition file" type = "path" option = ["--file", "-f"] path = { kind = "file", role = "input", must_exist = true } sources = ["fig"] [[commands.subcommand.field]] id = "print_parameters" label = "Print task parameters" type = "boolean" option = ["-pp", "--print-parameters"] sources = ["fig"] [[commands.subcommand.field]] id = "print_matrix" label = "Print matrix context" type = "boolean" option = ["-pm", "--print-matrix-context"] sources = ["fig"] [[commands.subcommand.task]] id = "verify" label = "Verify file" fields = ["file", "print_parameters", "print_matrix"] required = ["file"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["file", "print_parameters", "print_matrix"]