id = "fastly" name = "Fastly CLI" homepage = "https://www.fastly.com/documentation/reference/cli/" description = "Build, deploy and configure Fastly services from your terminal." icon = "SimpleIcons:fastly" executables = ["fastly"] [dotfiles] # pkg/config/config.go: FileName = "config.toml" and FilePath is # os.UserConfigDir()/fastly/config.toml, falling back to /.fastly/config.toml # when the OS cannot report a user config directory. os.UserConfigDir() is the # [appData] base directory — ~/Library/Application Support on macOS, the XDG # config home on Linux, %APPDATA% on Windows; the second entry is the fallback, # listed so the rule below reaches it. paths = [ "[appData]/fastly/config.toml", "~/.fastly/config.toml", ] exclude = [] # Not a whole-file secret: the same file holds the API endpoints, the language # toolchain settings and the wasm-metadata opt-ins, all worth carrying. secret = [] # Read at the start of each command; nothing holds it open. side_effect = false # pkg/config/auth.go AuthToken: `token` for a static API token and # `access_token` / `refresh_token` for an SSO session, under [auth.tokens.]. # pkg/config/config.go Profile is the legacy [profile.] shape with the same # three fields. Both spellings of the file are named, or the tokens sync in the # clear from a machine that fell back to ~/.fastly. [[dotfiles.secret_paths]] file = [ "[appData]/fastly/config.toml", "~/.fastly/config.toml", ] match = { key_path = [ "auth.tokens.*.token", "auth.tokens.*.access_token", "auth.tokens.*.refresh_token", "profile.*.token", "profile.*.access_token", "profile.*.refresh_token", ] } # No machine_lines: nothing the CLI writes here names this machine — the # endpoints are Fastly's, and the language settings are toolchain versions. [commands] format = 1 label = "Fastly" description = "Purge cache, build and deploy Compute packages. Everything else is left out." quality = "ai-draft" base = "fig:fastly" 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/fastly.ts" license = "MIT" [[commands.subcommand]] path = ["purge"] label = "Purge cache" description = "Pick exactly one of URL, key or all." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/fastly.ts" license = "MIT" [[commands.subcommand.field]] id = "service_id" label = "Service ID" type = "string" option = ["--service-id"] sources = ["fig"] [[commands.subcommand.field]] id = "url" label = "URL" type = "string" option = ["--url"] sources = ["fig"] [[commands.subcommand.field]] id = "key" label = "Surrogate key" type = "string" option = ["--key"] sources = ["fig"] [[commands.subcommand.field]] id = "all" label = "Purge everything" type = "boolean" option = ["--all"] effect = "delete" sources = ["fig"] [[commands.subcommand.field]] id = "soft" label = "Soft purge" type = "boolean" option = ["--soft"] sources = ["fig"] [[commands.subcommand.task]] id = "url" label = "Purge a URL" fields = ["service_id", "url", "soft"] required = ["url"] [[commands.subcommand.task]] id = "key" label = "Purge a key" fields = ["service_id", "key", "soft"] required = ["key"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["service_id", "url", "key", "all"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["soft"] [[commands.subcommand]] path = ["compute", "build"] label = "Build Compute package" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/fastly.ts" license = "MIT" [[commands.subcommand.field]] id = "name" label = "Package name" type = "string" option = ["--name"] sources = ["fig"] [[commands.subcommand.field]] id = "language" label = "Language" type = "string" option = ["--language"] sources = ["fig"] [[commands.subcommand.field]] id = "include_source" label = "Include source" type = "boolean" option = ["--include-source"] sources = ["fig"] [[commands.subcommand.field]] id = "timeout" label = "Timeout (s)" type = "integer" option = ["--timeout"] sources = ["fig"] [[commands.subcommand.field]] id = "skip_verification" label = "Skip verification" type = "boolean" option = ["--skip-verification"] sources = ["fig"] [[commands.subcommand.task]] id = "build" label = "Build" fields = ["name", "language"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["name", "language", "include_source"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["timeout", "skip_verification"] [[commands.subcommand]] path = ["compute", "deploy"] label = "Deploy Compute package" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/fastly.ts" license = "MIT" [[commands.subcommand.field]] id = "service_id" label = "Service ID" type = "string" option = ["--service-id"] sources = ["fig"] [[commands.subcommand.field]] id = "service_name" label = "Service name" type = "string" option = ["--service-name"] sources = ["fig"] [[commands.subcommand.field]] id = "package" label = "Package" type = "path" option = ["--package"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "comment" label = "Comment" type = "string" option = ["--comment"] sources = ["fig"] [[commands.subcommand.field]] id = "domain" label = "Domain" type = "string" option = ["--domain"] sources = ["fig"] [[commands.subcommand.field]] id = "version" label = "Version" type = "string" option = ["--version"] sources = ["fig"] [[commands.subcommand.task]] id = "deploy" label = "Deploy" fields = ["service_id", "package", "comment"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["service_id", "service_name", "package", "comment"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["version", "domain"]