id = "northflank" name = "Northflank CLI" homepage = "https://northflank.com" description = "Provides a command-line interface to the Northflank platform." # Northflank's own mark, from its GitHub organisation avatar. icon = "https://github.com/northflank.png?size=200" executables = ["northflank", "nf"] [dotfiles] # @northflank/js-client (dist/api-client.mjs), the context provider the CLI # builds on: # this.configPath = e || `${os.homedir()}/.northflank`; # this.configFile = `${this.configPath}/config.json`; # and it writes { current, contexts: [ { name, host, token, … } ] } there. # `nf` and `northflank` are the two names in the CLI package's bin map. paths = ["~/.northflank/config.json"] exclude = [] # Not a whole-file secret: the context names, API hosts and the currently # selected project/service are worth carrying. Only the token is lifted out. secret = [] # Each context carries the API token `northflank login` obtained, keyed by an # array index, so the rule matches any element. [[dotfiles.secret_paths]] file = "~/.northflank/config.json" match = { key_path = ["contexts.*.token"] } [commands] format = 1 label = "Northflank CLI" description = "Global options only; use the subcommands for the most common service operations." quality = "ai-draft" base = "fig:northflank" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/northflank.ts" license = "MIT" [[commands.subcommand]] path = ["list", "services"] label = "List services" description = "List services in a project." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/northflank.ts" license = "MIT" [[commands.subcommand.field]] id = "project" label = "Project ID" type = "string" option = ["--project", "--projectId"] sources = ["fig"] [[commands.subcommand.field]] id = "output" label = "Output" type = "string" option = ["-o", "--output"] suggestions = [{ value = "json", label = "json" }, { value = "yaml", label = "yaml" }] sources = ["fig"] [[commands.subcommand.field]] id = "no_defaults" label = "Ignore context defaults" type = "boolean" option = ["--noDefaults"] sources = ["fig"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose"] sources = ["fig"] [[commands.subcommand.field]] id = "quiet" label = "Quiet" type = "boolean" option = ["--quiet"] sources = ["fig"] [[commands.subcommand.task]] id = "list" label = "List services" fields = ["project", "output"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["project", "output"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["no_defaults", "verbose", "quiet"] [[commands.subcommand]] path = ["get", "service"] label = "Get service" description = "Show information about one service." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/northflank.ts" license = "MIT" [[commands.subcommand.field]] id = "project" label = "Project ID" type = "string" option = ["--project", "--projectId"] sources = ["fig"] [[commands.subcommand.field]] id = "service" label = "Service ID" type = "string" option = ["--service", "--serviceId"] sources = ["fig"] [[commands.subcommand.field]] id = "output" label = "Output" type = "string" option = ["-o", "--output"] suggestions = [{ value = "json", label = "json" }, { value = "yaml", label = "yaml" }] sources = ["fig"] [[commands.subcommand.field]] id = "no_defaults" label = "Ignore context defaults" type = "boolean" option = ["--noDefaults"] sources = ["fig"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose"] sources = ["fig"] [[commands.subcommand.field]] id = "quiet" label = "Quiet" type = "boolean" option = ["--quiet"] sources = ["fig"] [[commands.subcommand.task]] id = "get" label = "Get service" fields = ["project", "service", "output"] required = ["service"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["project", "service", "output"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["no_defaults", "verbose", "quiet"] [[commands.subcommand]] path = ["restart", "service"] label = "Restart service" description = "Restart a service." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/northflank.ts" license = "MIT" [[commands.subcommand.field]] id = "project" label = "Project ID" type = "string" option = ["--project", "--projectId"] sources = ["fig"] [[commands.subcommand.field]] id = "service" label = "Service ID" type = "string" option = ["--service", "--serviceId"] sources = ["fig"] [[commands.subcommand.field]] id = "output" label = "Output" type = "string" option = ["-o", "--output"] suggestions = [{ value = "json", label = "json" }, { value = "yaml", label = "yaml" }] sources = ["fig"] [[commands.subcommand.field]] id = "no_defaults" label = "Ignore context defaults" type = "boolean" option = ["--noDefaults"] sources = ["fig"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose"] sources = ["fig"] [[commands.subcommand.field]] id = "quiet" label = "Quiet" type = "boolean" option = ["--quiet"] sources = ["fig"] [[commands.subcommand.task]] id = "restart" label = "Restart service" fields = ["project", "service"] required = ["service"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["project", "service", "output"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["no_defaults", "verbose", "quiet"] [[commands.subcommand]] path = ["forward", "service"] label = "Forward service" description = "Port-forward a service locally." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/northflank.ts" license = "MIT" [[commands.subcommand.field]] id = "project" label = "Project ID" type = "string" option = ["--project", "--projectId"] sources = ["fig"] [[commands.subcommand.field]] id = "service" label = "Service" type = "string" option = ["--service", "--serviceId"] sources = ["fig"] [[commands.subcommand.field]] id = "skip_hostnames" label = "Skip hostnames (no root)" type = "boolean" option = ["--skipHostnames"] sources = ["fig"] [[commands.subcommand.field]] id = "no_defaults" label = "Ignore context defaults" type = "boolean" option = ["--noDefaults"] sources = ["fig"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose"] sources = ["fig"] [[commands.subcommand.field]] id = "quiet" label = "Quiet" type = "boolean" option = ["--quiet"] sources = ["fig"] [[commands.subcommand.task]] id = "forward" label = "Forward service" fields = ["project", "service", "skip_hostnames"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["project", "service", "skip_hostnames"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["no_defaults", "verbose", "quiet"]