id = "serverless" name = "Serverless Framework" homepage = "https://www.serverless.com/framework" description = "Makes it easy to use AWS Lambda and other managed cloud services to build applications that auto-scale and cost nothing when idle." icon = "SimpleIcons:serverless" # `sls` is the framework's own short alias for the same binary, not a separate # tool, so it is a second detect name rather than a second entry. executables = ["serverless", "sls"] [dotfiles] # @serverless/utils/config.js builds the global config path from # `.${baseFilename}rc`: # getDefaultGlobalConfigPath() -> path.join(os.homedir(), '.serverlessrc') # getHomeConfigGlobalConfigPath() -> path.join(os.homedir(), '.config', '.serverlessrc') # getGlobalConfigPath() prefers ~/.serverlessrc when both exist and warns. # There is also a project-local .serverlessrc in the CWD, which is not # user-level and is not listed. paths = ["~/.serverlessrc", "~/.config/.serverlessrc"] exclude = [] # The file is not a whole-file secret: trackingDisabled, enterpriseDisabled and # userId are settings worth carrying. Only the auth block is lifted out. secret = [] # Read and rewritten per command; no resident process holds it. side_effect = false # Both spellings, or the token is only lifted out on a machine that happens to # use the ~/.config location. `auth` is what `serverless login` writes: # auth/login.js does `configUtils.set('auth', { refreshToken })` and # auth/resolve-token.js does `configUtils.set({ auth: { idToken, refreshToken } })`. # The name has no extension, so the parser has to be named explicitly. [[dotfiles.secret_paths]] file = ["~/.serverlessrc", "~/.config/.serverlessrc"] format = "json" match = { key_path = ["auth.idToken", "auth.refreshToken"] } # frameworkId is a uuid.v1() minted once per installation # (createDefaultGlobalConfig in @serverless/utils/config.js) and reported with # telemetry. It identifies this install, so copying it to a second machine # makes two machines claim to be one. [[dotfiles.machine_lines]] file = ["~/.serverlessrc", "~/.config/.serverlessrc"] format = "json" match = { key_path = ["frameworkId"] } [commands] format = 1 label = "Serverless Framework" description = "Deploy a service. Other commands are not included." quality = "ai-draft" base = "fig:serverless" 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/serverless.ts" license = "MIT" [[commands.subcommand]] path = ["deploy"] label = "Deploy" description = "Deploy a Serverless service." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/serverless.ts" license = "MIT" [[commands.subcommand.field]] id = "stage" label = "Stage" type = "string" option = ["--stage", "-s"] sources = ["fig"] [[commands.subcommand.field]] id = "region" label = "Region" type = "string" option = ["--region", "-r"] suggestions = [{ value = "us-east-1", label = "us-east-1" }, { value = "us-east-2", label = "us-east-2" }, { value = "us-west-1", label = "us-west-1" }, { value = "us-west-2", label = "us-west-2" }, { value = "eu-west-1", label = "eu-west-1" }, { value = "ap-northeast-1", label = "ap-northeast-1" }, { value = "ap-southeast-1", label = "ap-southeast-1" }] sources = ["fig"] [[commands.subcommand.field]] id = "aws_profile" label = "AWS profile" type = "string" option = ["--aws-profile"] sources = ["fig"] [[commands.subcommand.field]] id = "config" label = "Config file" type = "path" option = ["--config", "-c"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "function" label = "Single function" type = "string" option = ["--function", "-f"] sources = ["fig"] [[commands.subcommand.field]] id = "force" label = "Force deployment" type = "boolean" option = ["--force"] effect = "overwrite" sources = ["fig"] [[commands.subcommand.field]] id = "conceal" label = "Hide secrets in output" type = "boolean" option = ["--conceal"] sources = ["fig"] [[commands.subcommand.field]] id = "package" label = "Deployment package directory" type = "path" option = ["--package", "-p"] path = { kind = "directory", role = "input" } sources = ["fig"] [[commands.subcommand.task]] id = "deploy" label = "Deploy" fields = ["stage", "region", "aws_profile"] [[commands.subcommand.task]] id = "fn" label = "Deploy one function" fields = ["function", "stage", "region"] required = ["function"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["stage", "region", "aws_profile", "function"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["config", "force", "conceal", "package"]