@flui-cloud/cli 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cli/src/commands/app/list.d.ts +3 -0
- package/lib/cli/src/commands/app/list.js +72 -18
- package/lib/cli/src/commands/app/status.d.ts +1 -0
- package/lib/cli/src/commands/app/status.js +27 -2
- package/lib/cli/src/commands/cluster/destroy.d.ts +1 -1
- package/lib/cli/src/commands/cluster/destroy.js +2 -2
- package/lib/cli/src/commands/deploy.d.ts +3 -0
- package/lib/cli/src/commands/deploy.js +19 -0
- package/lib/cli/src/commands/dev/creds.d.ts +0 -1
- package/lib/cli/src/commands/dev/creds.js +6 -27
- package/lib/cli/src/commands/dev/tunnel.js +8 -8
- package/lib/cli/src/commands/env/capacity.js +4 -4
- package/lib/cli/src/commands/env/create.d.ts +4 -1
- package/lib/cli/src/commands/env/create.js +73 -52
- package/lib/cli/src/commands/env/credentials.js +12 -12
- package/lib/cli/src/commands/env/destroy.d.ts +2 -1
- package/lib/cli/src/commands/env/destroy.js +45 -28
- package/lib/cli/src/commands/env/diag-ca.js +5 -5
- package/lib/cli/src/commands/env/export-config.d.ts +0 -17
- package/lib/cli/src/commands/env/export-config.js +45 -44
- package/lib/cli/src/commands/env/force-ready.d.ts +1 -1
- package/lib/cli/src/commands/env/force-ready.js +8 -8
- package/lib/cli/src/commands/env/inspect.js +5 -5
- package/lib/cli/src/commands/env/refresh-kubeconfig.js +4 -4
- package/lib/cli/src/commands/env/repair-ssh-ca.js +4 -4
- package/lib/cli/src/commands/env/repair-storage.d.ts +9 -0
- package/lib/cli/src/commands/env/repair-storage.js +82 -0
- package/lib/cli/src/commands/env/restart.d.ts +1 -1
- package/lib/cli/src/commands/env/restart.js +9 -9
- package/lib/cli/src/commands/env/scale-master.js +4 -4
- package/lib/cli/src/commands/env/scale-node.js +4 -4
- package/lib/cli/src/commands/env/set-master-protection.d.ts +16 -0
- package/lib/cli/src/commands/env/set-master-protection.js +120 -0
- package/lib/cli/src/commands/env/status.d.ts +1 -1
- package/lib/cli/src/commands/env/status.js +10 -10
- package/lib/cli/src/commands/env/stop.d.ts +1 -1
- package/lib/cli/src/commands/env/stop.js +8 -8
- package/lib/cli/src/commands/env/storage-expand.js +4 -4
- package/lib/cli/src/commands/env/storage.d.ts +1 -1
- package/lib/cli/src/commands/env/storage.js +5 -5
- package/lib/cli/src/commands/env/sync.js +5 -5
- package/lib/cli/src/commands/env/uncordon.js +4 -4
- package/lib/cli/src/commands/env/update-firewall.d.ts +13 -1
- package/lib/cli/src/commands/env/update-firewall.js +232 -126
- package/lib/cli/src/commands/integration/connect.d.ts +1 -0
- package/lib/cli/src/commands/integration/connect.js +19 -1
- package/lib/cli/src/commands/integration/reset.d.ts +13 -0
- package/lib/cli/src/commands/integration/reset.js +95 -0
- package/lib/cli/src/commands/integration/setup.d.ts +18 -0
- package/lib/cli/src/commands/integration/setup.js +320 -0
- package/lib/cli/src/commands/integration/status.d.ts +9 -0
- package/lib/cli/src/commands/integration/status.js +117 -0
- package/lib/cli/src/commands/node/list.d.ts +1 -0
- package/lib/cli/src/commands/node/list.js +19 -2
- package/lib/cli/src/commands/server-types/list.d.ts +3 -0
- package/lib/cli/src/commands/server-types/list.js +84 -0
- package/lib/cli/src/commands/ssh.js +5 -5
- package/lib/cli/src/commands/version.d.ts +18 -0
- package/lib/cli/src/commands/version.js +85 -0
- package/lib/cli/src/config/bootstrap.config.d.ts +10 -1
- package/lib/cli/src/config/bootstrap.config.js +21 -4
- package/lib/cli/src/config/preferences-schema.js +5 -5
- package/lib/cli/src/config/release.config.d.ts +31 -0
- package/lib/cli/src/config/release.config.js +38 -0
- package/lib/cli/src/lib/prompts.d.ts +1 -6
- package/lib/cli/src/lib/prompts.js +33 -13
- package/lib/cli/src/lib/services/cli-app.service.d.ts +33 -0
- package/lib/cli/src/lib/services/cli-app.service.js +9 -0
- package/lib/cli/src/lib/services/reconciliation.service.js +1 -1
- package/lib/cli/src/lib/templates/firewall-rules.d.ts +2 -2
- package/lib/cli/src/lib/templates/firewall-rules.js +3 -3
- package/lib/cli/src/modules/cli-infrastructure.module.js +3 -3
- package/lib/cli/src/services/cli-cluster-creator.service.js +31 -6
- package/lib/cli/src/services/cli-clusters.service.d.ts +3 -3
- package/lib/cli/src/services/cli-clusters.service.js +57 -34
- package/lib/cli/src/services/cli-control-cluster.service.d.ts +129 -0
- package/lib/cli/src/services/cli-control-cluster.service.js +544 -0
- package/lib/cli/src/services/cli-endpoint-resolver.service.d.ts +1 -0
- package/lib/cli/src/services/cli-endpoint-resolver.service.js +8 -2
- package/lib/cli/src/services/cli-k3s-script.service.d.ts +8 -1
- package/lib/cli/src/services/cli-k3s-script.service.js +14 -6
- package/lib/src/config/release.config.d.ts +28 -0
- package/lib/src/config/release.config.js +35 -0
- package/lib/src/modules/applications/entities/application.entity.d.ts +13 -20
- package/lib/src/modules/applications/entities/application.entity.js +12 -0
- package/lib/src/modules/applications/enums/application-exposure.enum.d.ts +2 -1
- package/lib/src/modules/applications/enums/application-exposure.enum.js +1 -0
- package/lib/src/modules/applications/interfaces/source-config.interface.d.ts +1 -0
- package/lib/src/modules/infrastructure/clusters/entities/cluster.entity.d.ts +8 -2
- package/lib/src/modules/infrastructure/clusters/entities/cluster.entity.js +16 -1
- package/lib/src/modules/infrastructure/clusters/services/cluster-node-scaling.service.js +2 -2
- package/lib/src/modules/infrastructure/firewalls/templates/firewall-rules.template.d.ts +3 -2
- package/lib/src/modules/infrastructure/firewalls/templates/firewall-rules.template.js +11 -4
- package/lib/src/modules/infrastructure/shared/services/kubernetes.service.d.ts +26 -0
- package/lib/src/modules/infrastructure/shared/services/kubernetes.service.js +105 -8
- package/lib/src/modules/management/entities/provider-capabilities.entity.d.ts +2 -0
- package/lib/src/modules/providers/implementations/contabo/contabo-capabilities.service.js +2 -0
- package/lib/src/modules/providers/implementations/hetzner/hetzner-capabilities.service.js +3 -6
- package/lib/src/modules/providers/implementations/scaleway/scaleway-capabilities.service.js +2 -1
- package/lib/src/modules/providers/implementations/scaleway/scaleway-firewall.service.js +3 -1
- package/lib/src/modules/providers/implementations/scaleway/scaleway-provider.service.js +3 -1
- package/lib/src/modules/providers/interfaces/provider-capabilities.interface.d.ts +0 -2
- package/lib/src/modules/providers/services/hetzner-firewall.service.d.ts +1 -1
- package/lib/src/modules/providers/services/hetzner-firewall.service.js +2 -1
- package/oclif.manifest.json +1025 -678
- package/package.json +2 -2
package/oclif.manifest.json
CHANGED
|
@@ -115,6 +115,39 @@
|
|
|
115
115
|
"allowNo": false,
|
|
116
116
|
"type": "boolean"
|
|
117
117
|
},
|
|
118
|
+
"cert-challenge": {
|
|
119
|
+
"description": "ACME challenge for the app endpoint (kind:CatalogApp). http-01 works without a DNS zone and forces a per-host cert; dns-01 needs a cluster DNS zone with a wildcard issuer. Default: derived from cluster config.",
|
|
120
|
+
"name": "cert-challenge",
|
|
121
|
+
"hasDynamicHelp": false,
|
|
122
|
+
"multiple": false,
|
|
123
|
+
"options": [
|
|
124
|
+
"http-01",
|
|
125
|
+
"dns-01"
|
|
126
|
+
],
|
|
127
|
+
"type": "option"
|
|
128
|
+
},
|
|
129
|
+
"cert-provider": {
|
|
130
|
+
"description": "Certificate issuer for the app endpoint (kind:CatalogApp). Default: cluster default.",
|
|
131
|
+
"name": "cert-provider",
|
|
132
|
+
"hasDynamicHelp": false,
|
|
133
|
+
"multiple": false,
|
|
134
|
+
"options": [
|
|
135
|
+
"lets-encrypt",
|
|
136
|
+
"lets-encrypt-staging"
|
|
137
|
+
],
|
|
138
|
+
"type": "option"
|
|
139
|
+
},
|
|
140
|
+
"hostname": {
|
|
141
|
+
"description": "How the app is exposed (kind:CatalogApp): ip (nip.io) or domain (cluster DNS zone). Default: derived from manifest/cluster.",
|
|
142
|
+
"name": "hostname",
|
|
143
|
+
"hasDynamicHelp": false,
|
|
144
|
+
"multiple": false,
|
|
145
|
+
"options": [
|
|
146
|
+
"ip",
|
|
147
|
+
"domain"
|
|
148
|
+
],
|
|
149
|
+
"type": "option"
|
|
150
|
+
},
|
|
118
151
|
"no-wait": {
|
|
119
152
|
"description": "Alias for --detach (kind:CatalogApp compat)",
|
|
120
153
|
"name": "no-wait",
|
|
@@ -266,6 +299,46 @@
|
|
|
266
299
|
"update.js"
|
|
267
300
|
]
|
|
268
301
|
},
|
|
302
|
+
"version": {
|
|
303
|
+
"aliases": [],
|
|
304
|
+
"args": {},
|
|
305
|
+
"description": "Show the CLI version and the platform release it pins (component image tags + bootstrap ref). Useful for debugging an install.",
|
|
306
|
+
"examples": [
|
|
307
|
+
"<%= config.bin %> <%= command.id %>",
|
|
308
|
+
"<%= config.bin %> <%= command.id %> --latest",
|
|
309
|
+
"<%= config.bin %> <%= command.id %> --json"
|
|
310
|
+
],
|
|
311
|
+
"flags": {
|
|
312
|
+
"latest": {
|
|
313
|
+
"description": "Show what `env create --latest` would resolve to (mobile tags: bootstrap master, :latest images) instead of the pinned release",
|
|
314
|
+
"name": "latest",
|
|
315
|
+
"allowNo": false,
|
|
316
|
+
"type": "boolean"
|
|
317
|
+
},
|
|
318
|
+
"json": {
|
|
319
|
+
"description": "Output as JSON",
|
|
320
|
+
"name": "json",
|
|
321
|
+
"allowNo": false,
|
|
322
|
+
"type": "boolean"
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
"hasDynamicHelp": false,
|
|
326
|
+
"hiddenAliases": [],
|
|
327
|
+
"id": "version",
|
|
328
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
329
|
+
"pluginName": "@flui-cloud/cli",
|
|
330
|
+
"pluginType": "core",
|
|
331
|
+
"strict": true,
|
|
332
|
+
"enableJsonFlag": false,
|
|
333
|
+
"isESM": false,
|
|
334
|
+
"relativePath": [
|
|
335
|
+
"lib",
|
|
336
|
+
"cli",
|
|
337
|
+
"src",
|
|
338
|
+
"commands",
|
|
339
|
+
"version.js"
|
|
340
|
+
]
|
|
341
|
+
},
|
|
269
342
|
"app:build": {
|
|
270
343
|
"aliases": [],
|
|
271
344
|
"args": {
|
|
@@ -650,6 +723,7 @@
|
|
|
650
723
|
"description": "List all applications in the cluster",
|
|
651
724
|
"examples": [
|
|
652
725
|
"<%= config.bin %> <%= command.id %>",
|
|
726
|
+
"<%= config.bin %> <%= command.id %> --expanded",
|
|
653
727
|
"<%= config.bin %> <%= command.id %> --output json"
|
|
654
728
|
],
|
|
655
729
|
"flags": {
|
|
@@ -661,6 +735,13 @@
|
|
|
661
735
|
"multiple": false,
|
|
662
736
|
"type": "option"
|
|
663
737
|
},
|
|
738
|
+
"expanded": {
|
|
739
|
+
"char": "x",
|
|
740
|
+
"description": "Show the individual components of composed apps",
|
|
741
|
+
"name": "expanded",
|
|
742
|
+
"allowNo": false,
|
|
743
|
+
"type": "boolean"
|
|
744
|
+
},
|
|
664
745
|
"output": {
|
|
665
746
|
"char": "o",
|
|
666
747
|
"description": "Output format",
|
|
@@ -1455,7 +1536,7 @@
|
|
|
1455
1536
|
"required": true
|
|
1456
1537
|
}
|
|
1457
1538
|
},
|
|
1458
|
-
"description": "Permanently destroy a workload cluster and all its nodes. For the
|
|
1539
|
+
"description": "Permanently destroy a workload cluster and all its nodes. For the control cluster use `flui env destroy`.",
|
|
1459
1540
|
"examples": [
|
|
1460
1541
|
"<%= config.bin %> <%= command.id %> my-workload-cluster",
|
|
1461
1542
|
"<%= config.bin %> <%= command.id %> my-workload-cluster --force",
|
|
@@ -1856,7 +1937,7 @@
|
|
|
1856
1937
|
"examples": [
|
|
1857
1938
|
"<%= config.bin %> <%= command.id %>",
|
|
1858
1939
|
"<%= config.bin %> <%= command.id %> --dry-run",
|
|
1859
|
-
"<%= config.bin %> <%= command.id %> --api-path ../flui
|
|
1940
|
+
"<%= config.bin %> <%= command.id %> --api-path ../flui-core"
|
|
1860
1941
|
],
|
|
1861
1942
|
"flags": {
|
|
1862
1943
|
"dry-run": {
|
|
@@ -1872,7 +1953,7 @@
|
|
|
1872
1953
|
"type": "boolean"
|
|
1873
1954
|
},
|
|
1874
1955
|
"api-path": {
|
|
1875
|
-
"description": "Override resolved value for the \"apiPath\" preference (Path to the flui
|
|
1956
|
+
"description": "Override resolved value for the \"apiPath\" preference (Path to the flui-core repo, used to locate the .env file written by env export-config)",
|
|
1876
1957
|
"name": "api-path",
|
|
1877
1958
|
"hasDynamicHelp": false,
|
|
1878
1959
|
"multiple": false,
|
|
@@ -1906,7 +1987,7 @@
|
|
|
1906
1987
|
"dev:tunnel": {
|
|
1907
1988
|
"aliases": [],
|
|
1908
1989
|
"args": {},
|
|
1909
|
-
"description": "Open SSH tunnels from localhost to the
|
|
1990
|
+
"description": "Open SSH tunnels from localhost to the control cluster services.\nOn the remote side runs kubectl port-forward against the in-cluster Services,\nso no NodePort or kube-API exposure is required. Stay in foreground; CTRL-C to close.",
|
|
1910
1991
|
"examples": [
|
|
1911
1992
|
"<%= config.bin %> <%= command.id %>",
|
|
1912
1993
|
"<%= config.bin %> <%= command.id %> --ports postgres,redis",
|
|
@@ -2003,155 +2084,6 @@
|
|
|
2003
2084
|
"cleanup.js"
|
|
2004
2085
|
]
|
|
2005
2086
|
},
|
|
2006
|
-
"node:add": {
|
|
2007
|
-
"aliases": [],
|
|
2008
|
-
"args": {},
|
|
2009
|
-
"description": "Add worker node(s) to the cluster. Provisions new servers and joins them to K3s.",
|
|
2010
|
-
"examples": [
|
|
2011
|
-
"<%= config.bin %> <%= command.id %>",
|
|
2012
|
-
"<%= config.bin %> <%= command.id %> --count 2",
|
|
2013
|
-
"<%= config.bin %> <%= command.id %> --count 3 --no-wait"
|
|
2014
|
-
],
|
|
2015
|
-
"flags": {
|
|
2016
|
-
"cluster": {
|
|
2017
|
-
"char": "c",
|
|
2018
|
-
"description": "Cluster name or ID (default: auto-detect when only one cluster exists)",
|
|
2019
|
-
"name": "cluster",
|
|
2020
|
-
"hasDynamicHelp": false,
|
|
2021
|
-
"multiple": false,
|
|
2022
|
-
"type": "option"
|
|
2023
|
-
},
|
|
2024
|
-
"count": {
|
|
2025
|
-
"char": "n",
|
|
2026
|
-
"description": "Number of workers to add (1-5)",
|
|
2027
|
-
"name": "count",
|
|
2028
|
-
"default": 1,
|
|
2029
|
-
"hasDynamicHelp": false,
|
|
2030
|
-
"multiple": false,
|
|
2031
|
-
"type": "option"
|
|
2032
|
-
},
|
|
2033
|
-
"no-wait": {
|
|
2034
|
-
"description": "Return immediately after queuing the operation",
|
|
2035
|
-
"name": "no-wait",
|
|
2036
|
-
"allowNo": false,
|
|
2037
|
-
"type": "boolean"
|
|
2038
|
-
}
|
|
2039
|
-
},
|
|
2040
|
-
"hasDynamicHelp": false,
|
|
2041
|
-
"hiddenAliases": [],
|
|
2042
|
-
"id": "node:add",
|
|
2043
|
-
"pluginAlias": "@flui-cloud/cli",
|
|
2044
|
-
"pluginName": "@flui-cloud/cli",
|
|
2045
|
-
"pluginType": "core",
|
|
2046
|
-
"strict": true,
|
|
2047
|
-
"enableJsonFlag": false,
|
|
2048
|
-
"isESM": false,
|
|
2049
|
-
"relativePath": [
|
|
2050
|
-
"lib",
|
|
2051
|
-
"cli",
|
|
2052
|
-
"src",
|
|
2053
|
-
"commands",
|
|
2054
|
-
"node",
|
|
2055
|
-
"add.js"
|
|
2056
|
-
]
|
|
2057
|
-
},
|
|
2058
|
-
"node:list": {
|
|
2059
|
-
"aliases": [],
|
|
2060
|
-
"args": {},
|
|
2061
|
-
"description": "List all nodes in the cluster (master + workers)",
|
|
2062
|
-
"examples": [
|
|
2063
|
-
"<%= config.bin %> <%= command.id %>",
|
|
2064
|
-
"<%= config.bin %> <%= command.id %> --output json"
|
|
2065
|
-
],
|
|
2066
|
-
"flags": {
|
|
2067
|
-
"cluster": {
|
|
2068
|
-
"char": "c",
|
|
2069
|
-
"description": "Cluster name or ID (default: auto-detect when only one cluster exists)",
|
|
2070
|
-
"name": "cluster",
|
|
2071
|
-
"hasDynamicHelp": false,
|
|
2072
|
-
"multiple": false,
|
|
2073
|
-
"type": "option"
|
|
2074
|
-
},
|
|
2075
|
-
"output": {
|
|
2076
|
-
"char": "o",
|
|
2077
|
-
"description": "Output format",
|
|
2078
|
-
"name": "output",
|
|
2079
|
-
"default": "table",
|
|
2080
|
-
"hasDynamicHelp": false,
|
|
2081
|
-
"multiple": false,
|
|
2082
|
-
"options": [
|
|
2083
|
-
"table",
|
|
2084
|
-
"json"
|
|
2085
|
-
],
|
|
2086
|
-
"type": "option"
|
|
2087
|
-
}
|
|
2088
|
-
},
|
|
2089
|
-
"hasDynamicHelp": false,
|
|
2090
|
-
"hiddenAliases": [],
|
|
2091
|
-
"id": "node:list",
|
|
2092
|
-
"pluginAlias": "@flui-cloud/cli",
|
|
2093
|
-
"pluginName": "@flui-cloud/cli",
|
|
2094
|
-
"pluginType": "core",
|
|
2095
|
-
"strict": true,
|
|
2096
|
-
"enableJsonFlag": false,
|
|
2097
|
-
"isESM": false,
|
|
2098
|
-
"relativePath": [
|
|
2099
|
-
"lib",
|
|
2100
|
-
"cli",
|
|
2101
|
-
"src",
|
|
2102
|
-
"commands",
|
|
2103
|
-
"node",
|
|
2104
|
-
"list.js"
|
|
2105
|
-
]
|
|
2106
|
-
},
|
|
2107
|
-
"node:remove": {
|
|
2108
|
-
"aliases": [],
|
|
2109
|
-
"args": {
|
|
2110
|
-
"nodeId": {
|
|
2111
|
-
"description": "Node ID to remove (from `flui node list`)",
|
|
2112
|
-
"name": "nodeId",
|
|
2113
|
-
"required": true
|
|
2114
|
-
}
|
|
2115
|
-
},
|
|
2116
|
-
"description": "Cordon, drain and remove a worker node from the cluster. Cannot remove the master.",
|
|
2117
|
-
"examples": [
|
|
2118
|
-
"<%= config.bin %> <%= command.id %> <node-id>",
|
|
2119
|
-
"<%= config.bin %> <%= command.id %> <node-id> --no-wait"
|
|
2120
|
-
],
|
|
2121
|
-
"flags": {
|
|
2122
|
-
"cluster": {
|
|
2123
|
-
"char": "c",
|
|
2124
|
-
"description": "Cluster name or ID (default: auto-detect when only one cluster exists)",
|
|
2125
|
-
"name": "cluster",
|
|
2126
|
-
"hasDynamicHelp": false,
|
|
2127
|
-
"multiple": false,
|
|
2128
|
-
"type": "option"
|
|
2129
|
-
},
|
|
2130
|
-
"no-wait": {
|
|
2131
|
-
"description": "Return immediately after queuing the operation",
|
|
2132
|
-
"name": "no-wait",
|
|
2133
|
-
"allowNo": false,
|
|
2134
|
-
"type": "boolean"
|
|
2135
|
-
}
|
|
2136
|
-
},
|
|
2137
|
-
"hasDynamicHelp": false,
|
|
2138
|
-
"hiddenAliases": [],
|
|
2139
|
-
"id": "node:remove",
|
|
2140
|
-
"pluginAlias": "@flui-cloud/cli",
|
|
2141
|
-
"pluginName": "@flui-cloud/cli",
|
|
2142
|
-
"pluginType": "core",
|
|
2143
|
-
"strict": true,
|
|
2144
|
-
"enableJsonFlag": false,
|
|
2145
|
-
"isESM": false,
|
|
2146
|
-
"relativePath": [
|
|
2147
|
-
"lib",
|
|
2148
|
-
"cli",
|
|
2149
|
-
"src",
|
|
2150
|
-
"commands",
|
|
2151
|
-
"node",
|
|
2152
|
-
"remove.js"
|
|
2153
|
-
]
|
|
2154
|
-
},
|
|
2155
2087
|
"integration:connect": {
|
|
2156
2088
|
"aliases": [],
|
|
2157
2089
|
"args": {
|
|
@@ -2288,6 +2220,49 @@
|
|
|
2288
2220
|
"remove-installation.js"
|
|
2289
2221
|
]
|
|
2290
2222
|
},
|
|
2223
|
+
"integration:reset": {
|
|
2224
|
+
"aliases": [],
|
|
2225
|
+
"args": {
|
|
2226
|
+
"provider": {
|
|
2227
|
+
"description": "Integration provider (currently only `github`)",
|
|
2228
|
+
"name": "provider",
|
|
2229
|
+
"options": [
|
|
2230
|
+
"github"
|
|
2231
|
+
],
|
|
2232
|
+
"required": true
|
|
2233
|
+
}
|
|
2234
|
+
},
|
|
2235
|
+
"description": "Remove the instance-wide GitHub integration (admin). Clears the stored config plus all per-user tokens and App installations. Users will need to reconnect afterwards.",
|
|
2236
|
+
"examples": [
|
|
2237
|
+
"<%= config.bin %> <%= command.id %> github",
|
|
2238
|
+
"<%= config.bin %> <%= command.id %> github --yes"
|
|
2239
|
+
],
|
|
2240
|
+
"flags": {
|
|
2241
|
+
"yes": {
|
|
2242
|
+
"description": "Skip the typed confirmation (for scripts / CI)",
|
|
2243
|
+
"name": "yes",
|
|
2244
|
+
"allowNo": false,
|
|
2245
|
+
"type": "boolean"
|
|
2246
|
+
}
|
|
2247
|
+
},
|
|
2248
|
+
"hasDynamicHelp": false,
|
|
2249
|
+
"hiddenAliases": [],
|
|
2250
|
+
"id": "integration:reset",
|
|
2251
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
2252
|
+
"pluginName": "@flui-cloud/cli",
|
|
2253
|
+
"pluginType": "core",
|
|
2254
|
+
"strict": true,
|
|
2255
|
+
"enableJsonFlag": false,
|
|
2256
|
+
"isESM": false,
|
|
2257
|
+
"relativePath": [
|
|
2258
|
+
"lib",
|
|
2259
|
+
"cli",
|
|
2260
|
+
"src",
|
|
2261
|
+
"commands",
|
|
2262
|
+
"integration",
|
|
2263
|
+
"reset.js"
|
|
2264
|
+
]
|
|
2265
|
+
},
|
|
2291
2266
|
"integration:setup-github-app": {
|
|
2292
2267
|
"aliases": [],
|
|
2293
2268
|
"args": {},
|
|
@@ -2330,14 +2305,92 @@
|
|
|
2330
2305
|
"setup-github-app.js"
|
|
2331
2306
|
]
|
|
2332
2307
|
},
|
|
2333
|
-
"
|
|
2308
|
+
"integration:setup": {
|
|
2334
2309
|
"aliases": [],
|
|
2335
|
-
"args": {
|
|
2336
|
-
|
|
2310
|
+
"args": {
|
|
2311
|
+
"provider": {
|
|
2312
|
+
"description": "Integration provider (currently only `github`)",
|
|
2313
|
+
"name": "provider",
|
|
2314
|
+
"options": [
|
|
2315
|
+
"github"
|
|
2316
|
+
],
|
|
2317
|
+
"required": true
|
|
2318
|
+
}
|
|
2319
|
+
},
|
|
2320
|
+
"description": "Guided GitHub integration setup (admin). Pick GitHub App (recommended, creates the App on GitHub via manifest flow) or Personal Access Token (validates and saves a token).",
|
|
2337
2321
|
"examples": [
|
|
2338
|
-
"<%= config.bin %> <%= command.id %>",
|
|
2339
|
-
"<%= config.bin %> <%= command.id %> --
|
|
2340
|
-
|
|
2322
|
+
"<%= config.bin %> <%= command.id %> github",
|
|
2323
|
+
"<%= config.bin %> <%= command.id %> github --headless"
|
|
2324
|
+
],
|
|
2325
|
+
"flags": {
|
|
2326
|
+
"headless": {
|
|
2327
|
+
"description": "Print URLs instead of opening a browser",
|
|
2328
|
+
"name": "headless",
|
|
2329
|
+
"allowNo": false,
|
|
2330
|
+
"type": "boolean"
|
|
2331
|
+
}
|
|
2332
|
+
},
|
|
2333
|
+
"hasDynamicHelp": false,
|
|
2334
|
+
"hiddenAliases": [],
|
|
2335
|
+
"id": "integration:setup",
|
|
2336
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
2337
|
+
"pluginName": "@flui-cloud/cli",
|
|
2338
|
+
"pluginType": "core",
|
|
2339
|
+
"strict": true,
|
|
2340
|
+
"enableJsonFlag": false,
|
|
2341
|
+
"isESM": false,
|
|
2342
|
+
"relativePath": [
|
|
2343
|
+
"lib",
|
|
2344
|
+
"cli",
|
|
2345
|
+
"src",
|
|
2346
|
+
"commands",
|
|
2347
|
+
"integration",
|
|
2348
|
+
"setup.js"
|
|
2349
|
+
]
|
|
2350
|
+
},
|
|
2351
|
+
"integration:status": {
|
|
2352
|
+
"aliases": [],
|
|
2353
|
+
"args": {
|
|
2354
|
+
"provider": {
|
|
2355
|
+
"description": "Integration provider (currently only `github`)",
|
|
2356
|
+
"name": "provider",
|
|
2357
|
+
"options": [
|
|
2358
|
+
"github"
|
|
2359
|
+
],
|
|
2360
|
+
"required": true
|
|
2361
|
+
}
|
|
2362
|
+
},
|
|
2363
|
+
"description": "Show the current GitHub integration status: configured mode, live health check, and (in PAT mode) your own connection state.",
|
|
2364
|
+
"examples": [
|
|
2365
|
+
"<%= config.bin %> <%= command.id %> github"
|
|
2366
|
+
],
|
|
2367
|
+
"flags": {},
|
|
2368
|
+
"hasDynamicHelp": false,
|
|
2369
|
+
"hiddenAliases": [],
|
|
2370
|
+
"id": "integration:status",
|
|
2371
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
2372
|
+
"pluginName": "@flui-cloud/cli",
|
|
2373
|
+
"pluginType": "core",
|
|
2374
|
+
"strict": true,
|
|
2375
|
+
"enableJsonFlag": false,
|
|
2376
|
+
"isESM": false,
|
|
2377
|
+
"relativePath": [
|
|
2378
|
+
"lib",
|
|
2379
|
+
"cli",
|
|
2380
|
+
"src",
|
|
2381
|
+
"commands",
|
|
2382
|
+
"integration",
|
|
2383
|
+
"status.js"
|
|
2384
|
+
]
|
|
2385
|
+
},
|
|
2386
|
+
"env:capacity": {
|
|
2387
|
+
"aliases": [],
|
|
2388
|
+
"args": {},
|
|
2389
|
+
"description": "Show master node capacity (allocatable/used/free) and a sorted list of server-type upgrade/downgrade candidates with monthly cost delta. Use this to plan `flui env scale-master` for apps that need dedicated placement on the master (e.g. databases).",
|
|
2390
|
+
"examples": [
|
|
2391
|
+
"<%= config.bin %> <%= command.id %>",
|
|
2392
|
+
"<%= config.bin %> <%= command.id %> --top 5",
|
|
2393
|
+
"<%= config.bin %> <%= command.id %> --direction upgrade"
|
|
2341
2394
|
],
|
|
2342
2395
|
"flags": {
|
|
2343
2396
|
"top": {
|
|
@@ -2383,7 +2436,7 @@
|
|
|
2383
2436
|
"env:create": {
|
|
2384
2437
|
"aliases": [],
|
|
2385
2438
|
"args": {},
|
|
2386
|
-
"description": "Create
|
|
2439
|
+
"description": "Create control cluster infrastructure on K3s",
|
|
2387
2440
|
"examples": [
|
|
2388
2441
|
"<%= config.bin %> <%= command.id %>",
|
|
2389
2442
|
"<%= config.bin %> <%= command.id %> --node-size cx32",
|
|
@@ -2394,9 +2447,8 @@
|
|
|
2394
2447
|
"flags": {
|
|
2395
2448
|
"provider": {
|
|
2396
2449
|
"char": "p",
|
|
2397
|
-
"description": "Cloud provider for the
|
|
2450
|
+
"description": "Cloud provider for the control cluster (default: the profile's configured provider)",
|
|
2398
2451
|
"name": "provider",
|
|
2399
|
-
"default": "hetzner",
|
|
2400
2452
|
"hasDynamicHelp": false,
|
|
2401
2453
|
"multiple": false,
|
|
2402
2454
|
"options": [
|
|
@@ -2451,7 +2503,7 @@
|
|
|
2451
2503
|
"configure-firewall": {
|
|
2452
2504
|
"description": "Automatically configure firewall after cluster creation",
|
|
2453
2505
|
"name": "configure-firewall",
|
|
2454
|
-
"allowNo":
|
|
2506
|
+
"allowNo": true,
|
|
2455
2507
|
"type": "boolean"
|
|
2456
2508
|
},
|
|
2457
2509
|
"firewall-ip": {
|
|
@@ -2475,6 +2527,12 @@
|
|
|
2475
2527
|
"allowNo": false,
|
|
2476
2528
|
"type": "boolean"
|
|
2477
2529
|
},
|
|
2530
|
+
"latest": {
|
|
2531
|
+
"description": "Install mobile dev tags instead of the pinned release: bootstrap scripts from `master` and `:latest` Docker images. Default: every component is pinned to the CLI release version.",
|
|
2532
|
+
"name": "latest",
|
|
2533
|
+
"allowNo": false,
|
|
2534
|
+
"type": "boolean"
|
|
2535
|
+
},
|
|
2478
2536
|
"no-shared-storage": {
|
|
2479
2537
|
"description": "Disable Flui shared storage (NFS+fscache). Default: shared storage enabled — master gets a Volume hosting the NFS export, workers mount it. Disable to fall back to local-path on each node bundled disk.",
|
|
2480
2538
|
"name": "no-shared-storage",
|
|
@@ -2511,7 +2569,7 @@
|
|
|
2511
2569
|
"env:credentials": {
|
|
2512
2570
|
"aliases": [],
|
|
2513
2571
|
"args": {},
|
|
2514
|
-
"description": "Display
|
|
2572
|
+
"description": "Display control cluster connection information.\nSecrets are hidden by default; pass --show-secrets to print them. To populate\na local .env.local for development use `flui dev creds` instead.",
|
|
2515
2573
|
"examples": [
|
|
2516
2574
|
"<%= config.bin %> <%= command.id %>",
|
|
2517
2575
|
"<%= config.bin %> <%= command.id %> --format json",
|
|
@@ -2571,7 +2629,7 @@
|
|
|
2571
2629
|
"env:destroy": {
|
|
2572
2630
|
"aliases": [],
|
|
2573
2631
|
"args": {},
|
|
2574
|
-
"description": "Permanently delete
|
|
2632
|
+
"description": "Permanently delete control cluster (WARNING: All data will be lost!)",
|
|
2575
2633
|
"examples": [
|
|
2576
2634
|
"<%= config.bin %> <%= command.id %>",
|
|
2577
2635
|
"<%= config.bin %> <%= command.id %> --force"
|
|
@@ -2664,14 +2722,14 @@
|
|
|
2664
2722
|
"type": "boolean"
|
|
2665
2723
|
},
|
|
2666
2724
|
"api-path": {
|
|
2667
|
-
"description": "Override resolved value for the \"apiPath\" preference (Path to the flui
|
|
2725
|
+
"description": "Override resolved value for the \"apiPath\" preference (Path to the flui-core repo, used to locate the .env file written by env export-config)",
|
|
2668
2726
|
"name": "api-path",
|
|
2669
2727
|
"hasDynamicHelp": false,
|
|
2670
2728
|
"multiple": false,
|
|
2671
2729
|
"type": "option"
|
|
2672
2730
|
},
|
|
2673
2731
|
"dashboard-path": {
|
|
2674
|
-
"description": "Override resolved value for the \"dashboardPath\" preference (Path to the flui
|
|
2732
|
+
"description": "Override resolved value for the \"dashboardPath\" preference (Path to the flui-dashboard repo, used when syncing its config.json)",
|
|
2675
2733
|
"name": "dashboard-path",
|
|
2676
2734
|
"hasDynamicHelp": false,
|
|
2677
2735
|
"multiple": false,
|
|
@@ -2724,7 +2782,7 @@
|
|
|
2724
2782
|
"env:force-ready": {
|
|
2725
2783
|
"aliases": [],
|
|
2726
2784
|
"args": {},
|
|
2727
|
-
"description": "Force
|
|
2785
|
+
"description": "Force control cluster status to READY (use when cluster is working but stuck in ERROR or CREATING state)",
|
|
2728
2786
|
"examples": [
|
|
2729
2787
|
"<%= config.bin %> <%= command.id %>",
|
|
2730
2788
|
"<%= config.bin %> <%= command.id %> --force",
|
|
@@ -3036,10 +3094,44 @@
|
|
|
3036
3094
|
"repair-ssh-ca.js"
|
|
3037
3095
|
]
|
|
3038
3096
|
},
|
|
3097
|
+
"env:repair-storage": {
|
|
3098
|
+
"aliases": [],
|
|
3099
|
+
"args": {},
|
|
3100
|
+
"description": "Backfill the shared-storage volume id into the cluster DB. Repairs clusters whose flui-secrets/DB never received FLUI_SHARED_STORAGE_VOLUME_ID at create — symptom is sharedStorageVolumeId NULL in the DB and \"no Flui-managed shared storage volume\" on storage expand. Reads the volume id from the active profile, patches flui-secrets over SSH, then restarts flui-api so the bootstrap seeder backfills the DB.",
|
|
3101
|
+
"examples": [
|
|
3102
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3103
|
+
"<%= config.bin %> <%= command.id %> --no-restart"
|
|
3104
|
+
],
|
|
3105
|
+
"flags": {
|
|
3106
|
+
"no-restart": {
|
|
3107
|
+
"description": "Skip the flui-api rolling restart after patching the Secret",
|
|
3108
|
+
"name": "no-restart",
|
|
3109
|
+
"allowNo": false,
|
|
3110
|
+
"type": "boolean"
|
|
3111
|
+
}
|
|
3112
|
+
},
|
|
3113
|
+
"hasDynamicHelp": false,
|
|
3114
|
+
"hiddenAliases": [],
|
|
3115
|
+
"id": "env:repair-storage",
|
|
3116
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
3117
|
+
"pluginName": "@flui-cloud/cli",
|
|
3118
|
+
"pluginType": "core",
|
|
3119
|
+
"strict": true,
|
|
3120
|
+
"enableJsonFlag": false,
|
|
3121
|
+
"isESM": false,
|
|
3122
|
+
"relativePath": [
|
|
3123
|
+
"lib",
|
|
3124
|
+
"cli",
|
|
3125
|
+
"src",
|
|
3126
|
+
"commands",
|
|
3127
|
+
"env",
|
|
3128
|
+
"repair-storage.js"
|
|
3129
|
+
]
|
|
3130
|
+
},
|
|
3039
3131
|
"env:restart": {
|
|
3040
3132
|
"aliases": [],
|
|
3041
3133
|
"args": {},
|
|
3042
|
-
"description": "Restart stopped
|
|
3134
|
+
"description": "Restart stopped control cluster servers",
|
|
3043
3135
|
"examples": [
|
|
3044
3136
|
"<%= config.bin %> <%= command.id %>"
|
|
3045
3137
|
],
|
|
@@ -3164,10 +3256,49 @@
|
|
|
3164
3256
|
"scale-node.js"
|
|
3165
3257
|
]
|
|
3166
3258
|
},
|
|
3259
|
+
"env:set-master-protection": {
|
|
3260
|
+
"aliases": [],
|
|
3261
|
+
"args": {
|
|
3262
|
+
"action": {
|
|
3263
|
+
"description": "on | off | show",
|
|
3264
|
+
"name": "action",
|
|
3265
|
+
"options": [
|
|
3266
|
+
"on",
|
|
3267
|
+
"off",
|
|
3268
|
+
"show"
|
|
3269
|
+
],
|
|
3270
|
+
"required": true
|
|
3271
|
+
}
|
|
3272
|
+
},
|
|
3273
|
+
"description": "Taint the control-cluster master so new pods schedule on workers (on), remove it (off), or report current state (show).",
|
|
3274
|
+
"examples": [
|
|
3275
|
+
"<%= config.bin %> <%= command.id %> on",
|
|
3276
|
+
"<%= config.bin %> <%= command.id %> off",
|
|
3277
|
+
"<%= config.bin %> <%= command.id %> show"
|
|
3278
|
+
],
|
|
3279
|
+
"flags": {},
|
|
3280
|
+
"hasDynamicHelp": false,
|
|
3281
|
+
"hiddenAliases": [],
|
|
3282
|
+
"id": "env:set-master-protection",
|
|
3283
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
3284
|
+
"pluginName": "@flui-cloud/cli",
|
|
3285
|
+
"pluginType": "core",
|
|
3286
|
+
"strict": true,
|
|
3287
|
+
"enableJsonFlag": false,
|
|
3288
|
+
"isESM": false,
|
|
3289
|
+
"relativePath": [
|
|
3290
|
+
"lib",
|
|
3291
|
+
"cli",
|
|
3292
|
+
"src",
|
|
3293
|
+
"commands",
|
|
3294
|
+
"env",
|
|
3295
|
+
"set-master-protection.js"
|
|
3296
|
+
]
|
|
3297
|
+
},
|
|
3167
3298
|
"env:status": {
|
|
3168
3299
|
"aliases": [],
|
|
3169
3300
|
"args": {},
|
|
3170
|
-
"description": "Check
|
|
3301
|
+
"description": "Check control cluster status",
|
|
3171
3302
|
"examples": [
|
|
3172
3303
|
"<%= config.bin %> <%= command.id %>"
|
|
3173
3304
|
],
|
|
@@ -3193,7 +3324,7 @@
|
|
|
3193
3324
|
"env:stop": {
|
|
3194
3325
|
"aliases": [],
|
|
3195
3326
|
"args": {},
|
|
3196
|
-
"description": "Shutdown
|
|
3327
|
+
"description": "Shutdown control cluster servers (saves costs while preserving data)",
|
|
3197
3328
|
"examples": [
|
|
3198
3329
|
"<%= config.bin %> <%= command.id %>"
|
|
3199
3330
|
],
|
|
@@ -3261,7 +3392,7 @@
|
|
|
3261
3392
|
"env:storage": {
|
|
3262
3393
|
"aliases": [],
|
|
3263
3394
|
"args": {},
|
|
3264
|
-
"description": "Show shared storage status (Volume + NFS export + PVC summary) for the current
|
|
3395
|
+
"description": "Show shared storage status (Volume + NFS export + PVC summary) for the current control cluster",
|
|
3265
3396
|
"examples": [
|
|
3266
3397
|
"<%= config.bin %> <%= command.id %>"
|
|
3267
3398
|
],
|
|
@@ -3360,11 +3491,13 @@
|
|
|
3360
3491
|
"env:update-firewall": {
|
|
3361
3492
|
"aliases": [],
|
|
3362
3493
|
"args": {},
|
|
3363
|
-
"description": "
|
|
3494
|
+
"description": "Manage SSH access (port 22) on the control cluster firewall. Updates only the SSH source IPs — every other rule is left untouched. Runs directly against the cloud provider, so it works even when your current IP is locked out.",
|
|
3364
3495
|
"examples": [
|
|
3365
3496
|
"<%= config.bin %> <%= command.id %>",
|
|
3366
3497
|
"<%= config.bin %> <%= command.id %> --ip 203.0.113.42",
|
|
3367
|
-
"<%= config.bin %> <%= command.id %> --ip
|
|
3498
|
+
"<%= config.bin %> <%= command.id %> --add --ip 203.0.113.42",
|
|
3499
|
+
"<%= config.bin %> <%= command.id %> --remove --ip 198.51.100.5/32",
|
|
3500
|
+
"<%= config.bin %> <%= command.id %> --list"
|
|
3368
3501
|
],
|
|
3369
3502
|
"flags": {
|
|
3370
3503
|
"ip": {
|
|
@@ -3374,6 +3507,36 @@
|
|
|
3374
3507
|
"hasDynamicHelp": false,
|
|
3375
3508
|
"multiple": false,
|
|
3376
3509
|
"type": "option"
|
|
3510
|
+
},
|
|
3511
|
+
"add": {
|
|
3512
|
+
"description": "Add the IP(s) to the existing SSH allowlist (keeps current entries)",
|
|
3513
|
+
"exclusive": [
|
|
3514
|
+
"remove",
|
|
3515
|
+
"list"
|
|
3516
|
+
],
|
|
3517
|
+
"name": "add",
|
|
3518
|
+
"allowNo": false,
|
|
3519
|
+
"type": "boolean"
|
|
3520
|
+
},
|
|
3521
|
+
"remove": {
|
|
3522
|
+
"description": "Remove the IP(s) from the SSH allowlist",
|
|
3523
|
+
"exclusive": [
|
|
3524
|
+
"add",
|
|
3525
|
+
"list"
|
|
3526
|
+
],
|
|
3527
|
+
"name": "remove",
|
|
3528
|
+
"allowNo": false,
|
|
3529
|
+
"type": "boolean"
|
|
3530
|
+
},
|
|
3531
|
+
"list": {
|
|
3532
|
+
"description": "Show the current SSH allowlist and exit (no changes)",
|
|
3533
|
+
"exclusive": [
|
|
3534
|
+
"add",
|
|
3535
|
+
"remove"
|
|
3536
|
+
],
|
|
3537
|
+
"name": "list",
|
|
3538
|
+
"allowNo": false,
|
|
3539
|
+
"type": "boolean"
|
|
3377
3540
|
}
|
|
3378
3541
|
},
|
|
3379
3542
|
"hasDynamicHelp": false,
|
|
@@ -3394,6 +3557,121 @@
|
|
|
3394
3557
|
"update-firewall.js"
|
|
3395
3558
|
]
|
|
3396
3559
|
},
|
|
3560
|
+
"repo:connect": {
|
|
3561
|
+
"aliases": [],
|
|
3562
|
+
"args": {
|
|
3563
|
+
"repo": {
|
|
3564
|
+
"description": "Full repository name `owner/repo`. Omit to pick interactively.",
|
|
3565
|
+
"name": "repo",
|
|
3566
|
+
"required": false
|
|
3567
|
+
}
|
|
3568
|
+
},
|
|
3569
|
+
"description": "Connect (import) a GitHub repository into your Flui account so it can be deployed with `flui deploy`. Pass the full name `owner/repo`, or omit it for an interactive picker over the repositories accessible via your GitHub integration.",
|
|
3570
|
+
"examples": [
|
|
3571
|
+
"<%= config.bin %> <%= command.id %> acme/my-app",
|
|
3572
|
+
"<%= config.bin %> <%= command.id %>"
|
|
3573
|
+
],
|
|
3574
|
+
"flags": {},
|
|
3575
|
+
"hasDynamicHelp": false,
|
|
3576
|
+
"hiddenAliases": [],
|
|
3577
|
+
"id": "repo:connect",
|
|
3578
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
3579
|
+
"pluginName": "@flui-cloud/cli",
|
|
3580
|
+
"pluginType": "core",
|
|
3581
|
+
"strict": true,
|
|
3582
|
+
"enableJsonFlag": false,
|
|
3583
|
+
"isESM": false,
|
|
3584
|
+
"relativePath": [
|
|
3585
|
+
"lib",
|
|
3586
|
+
"cli",
|
|
3587
|
+
"src",
|
|
3588
|
+
"commands",
|
|
3589
|
+
"repo",
|
|
3590
|
+
"connect.js"
|
|
3591
|
+
]
|
|
3592
|
+
},
|
|
3593
|
+
"repo:disconnect": {
|
|
3594
|
+
"aliases": [],
|
|
3595
|
+
"args": {
|
|
3596
|
+
"repo": {
|
|
3597
|
+
"description": "Full repository name `owner/repo`",
|
|
3598
|
+
"name": "repo",
|
|
3599
|
+
"required": true
|
|
3600
|
+
}
|
|
3601
|
+
},
|
|
3602
|
+
"description": "Disconnect a repository from your Flui account. Requires admin privileges. Does not delete the repository on GitHub.",
|
|
3603
|
+
"examples": [
|
|
3604
|
+
"<%= config.bin %> <%= command.id %> acme/my-app",
|
|
3605
|
+
"<%= config.bin %> <%= command.id %> acme/my-app --yes"
|
|
3606
|
+
],
|
|
3607
|
+
"flags": {
|
|
3608
|
+
"yes": {
|
|
3609
|
+
"char": "y",
|
|
3610
|
+
"description": "Skip the confirmation prompt",
|
|
3611
|
+
"name": "yes",
|
|
3612
|
+
"allowNo": false,
|
|
3613
|
+
"type": "boolean"
|
|
3614
|
+
}
|
|
3615
|
+
},
|
|
3616
|
+
"hasDynamicHelp": false,
|
|
3617
|
+
"hiddenAliases": [],
|
|
3618
|
+
"id": "repo:disconnect",
|
|
3619
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
3620
|
+
"pluginName": "@flui-cloud/cli",
|
|
3621
|
+
"pluginType": "core",
|
|
3622
|
+
"strict": true,
|
|
3623
|
+
"enableJsonFlag": false,
|
|
3624
|
+
"isESM": false,
|
|
3625
|
+
"relativePath": [
|
|
3626
|
+
"lib",
|
|
3627
|
+
"cli",
|
|
3628
|
+
"src",
|
|
3629
|
+
"commands",
|
|
3630
|
+
"repo",
|
|
3631
|
+
"disconnect.js"
|
|
3632
|
+
]
|
|
3633
|
+
},
|
|
3634
|
+
"repo:list": {
|
|
3635
|
+
"aliases": [],
|
|
3636
|
+
"args": {},
|
|
3637
|
+
"description": "List repositories connected to your Flui account.",
|
|
3638
|
+
"examples": [
|
|
3639
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3640
|
+
"<%= config.bin %> <%= command.id %> --output json"
|
|
3641
|
+
],
|
|
3642
|
+
"flags": {
|
|
3643
|
+
"output": {
|
|
3644
|
+
"char": "o",
|
|
3645
|
+
"description": "Output format",
|
|
3646
|
+
"name": "output",
|
|
3647
|
+
"default": "text",
|
|
3648
|
+
"hasDynamicHelp": false,
|
|
3649
|
+
"multiple": false,
|
|
3650
|
+
"options": [
|
|
3651
|
+
"text",
|
|
3652
|
+
"json"
|
|
3653
|
+
],
|
|
3654
|
+
"type": "option"
|
|
3655
|
+
}
|
|
3656
|
+
},
|
|
3657
|
+
"hasDynamicHelp": false,
|
|
3658
|
+
"hiddenAliases": [],
|
|
3659
|
+
"id": "repo:list",
|
|
3660
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
3661
|
+
"pluginName": "@flui-cloud/cli",
|
|
3662
|
+
"pluginType": "core",
|
|
3663
|
+
"strict": true,
|
|
3664
|
+
"enableJsonFlag": false,
|
|
3665
|
+
"isESM": false,
|
|
3666
|
+
"relativePath": [
|
|
3667
|
+
"lib",
|
|
3668
|
+
"cli",
|
|
3669
|
+
"src",
|
|
3670
|
+
"commands",
|
|
3671
|
+
"repo",
|
|
3672
|
+
"list.js"
|
|
3673
|
+
]
|
|
3674
|
+
},
|
|
3397
3675
|
"server-types:list": {
|
|
3398
3676
|
"aliases": [],
|
|
3399
3677
|
"args": {},
|
|
@@ -3401,6 +3679,11 @@
|
|
|
3401
3679
|
"examples": [
|
|
3402
3680
|
"<%= config.bin %> <%= command.id %> --provider hetzner",
|
|
3403
3681
|
"<%= config.bin %> <%= command.id %> --provider hetzner --region fsn1",
|
|
3682
|
+
"<%= config.bin %> <%= command.id %> --provider scaleway --memory 16",
|
|
3683
|
+
"<%= config.bin %> <%= command.id %> --provider scaleway --memory 8-32",
|
|
3684
|
+
"<%= config.bin %> <%= command.id %> --provider scaleway --memory -32",
|
|
3685
|
+
"<%= config.bin %> <%= command.id %> --provider scaleway --sort memory",
|
|
3686
|
+
"<%= config.bin %> <%= command.id %> --provider scaleway --sort price --desc",
|
|
3404
3687
|
"<%= config.bin %> <%= command.id %> --provider hetzner --json",
|
|
3405
3688
|
"<%= config.bin %> <%= command.id %> --provider hetzner --force-refresh"
|
|
3406
3689
|
],
|
|
@@ -3426,9 +3709,39 @@
|
|
|
3426
3709
|
"multiple": false,
|
|
3427
3710
|
"type": "option"
|
|
3428
3711
|
},
|
|
3429
|
-
"
|
|
3430
|
-
"
|
|
3431
|
-
"
|
|
3712
|
+
"memory": {
|
|
3713
|
+
"char": "m",
|
|
3714
|
+
"description": "Filter by RAM in GB: exact \"16\", range \"8-32\", min \"8-\", or max \"-32\"",
|
|
3715
|
+
"name": "memory",
|
|
3716
|
+
"hasDynamicHelp": false,
|
|
3717
|
+
"multiple": false,
|
|
3718
|
+
"type": "option"
|
|
3719
|
+
},
|
|
3720
|
+
"sort": {
|
|
3721
|
+
"char": "s",
|
|
3722
|
+
"description": "Sort by field",
|
|
3723
|
+
"name": "sort",
|
|
3724
|
+
"default": "price",
|
|
3725
|
+
"hasDynamicHelp": false,
|
|
3726
|
+
"multiple": false,
|
|
3727
|
+
"options": [
|
|
3728
|
+
"price",
|
|
3729
|
+
"memory",
|
|
3730
|
+
"cores",
|
|
3731
|
+
"disk",
|
|
3732
|
+
"name"
|
|
3733
|
+
],
|
|
3734
|
+
"type": "option"
|
|
3735
|
+
},
|
|
3736
|
+
"desc": {
|
|
3737
|
+
"description": "Sort in descending order",
|
|
3738
|
+
"name": "desc",
|
|
3739
|
+
"allowNo": false,
|
|
3740
|
+
"type": "boolean"
|
|
3741
|
+
},
|
|
3742
|
+
"json": {
|
|
3743
|
+
"description": "Output as JSON",
|
|
3744
|
+
"name": "json",
|
|
3432
3745
|
"allowNo": false,
|
|
3433
3746
|
"type": "boolean"
|
|
3434
3747
|
},
|
|
@@ -3586,6 +3899,155 @@
|
|
|
3586
3899
|
"install.js"
|
|
3587
3900
|
]
|
|
3588
3901
|
},
|
|
3902
|
+
"node:add": {
|
|
3903
|
+
"aliases": [],
|
|
3904
|
+
"args": {},
|
|
3905
|
+
"description": "Add worker node(s) to the cluster. Provisions new servers and joins them to K3s.",
|
|
3906
|
+
"examples": [
|
|
3907
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3908
|
+
"<%= config.bin %> <%= command.id %> --count 2",
|
|
3909
|
+
"<%= config.bin %> <%= command.id %> --count 3 --no-wait"
|
|
3910
|
+
],
|
|
3911
|
+
"flags": {
|
|
3912
|
+
"cluster": {
|
|
3913
|
+
"char": "c",
|
|
3914
|
+
"description": "Cluster name or ID (default: auto-detect when only one cluster exists)",
|
|
3915
|
+
"name": "cluster",
|
|
3916
|
+
"hasDynamicHelp": false,
|
|
3917
|
+
"multiple": false,
|
|
3918
|
+
"type": "option"
|
|
3919
|
+
},
|
|
3920
|
+
"count": {
|
|
3921
|
+
"char": "n",
|
|
3922
|
+
"description": "Number of workers to add (1-5)",
|
|
3923
|
+
"name": "count",
|
|
3924
|
+
"default": 1,
|
|
3925
|
+
"hasDynamicHelp": false,
|
|
3926
|
+
"multiple": false,
|
|
3927
|
+
"type": "option"
|
|
3928
|
+
},
|
|
3929
|
+
"no-wait": {
|
|
3930
|
+
"description": "Return immediately after queuing the operation",
|
|
3931
|
+
"name": "no-wait",
|
|
3932
|
+
"allowNo": false,
|
|
3933
|
+
"type": "boolean"
|
|
3934
|
+
}
|
|
3935
|
+
},
|
|
3936
|
+
"hasDynamicHelp": false,
|
|
3937
|
+
"hiddenAliases": [],
|
|
3938
|
+
"id": "node:add",
|
|
3939
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
3940
|
+
"pluginName": "@flui-cloud/cli",
|
|
3941
|
+
"pluginType": "core",
|
|
3942
|
+
"strict": true,
|
|
3943
|
+
"enableJsonFlag": false,
|
|
3944
|
+
"isESM": false,
|
|
3945
|
+
"relativePath": [
|
|
3946
|
+
"lib",
|
|
3947
|
+
"cli",
|
|
3948
|
+
"src",
|
|
3949
|
+
"commands",
|
|
3950
|
+
"node",
|
|
3951
|
+
"add.js"
|
|
3952
|
+
]
|
|
3953
|
+
},
|
|
3954
|
+
"node:list": {
|
|
3955
|
+
"aliases": [],
|
|
3956
|
+
"args": {},
|
|
3957
|
+
"description": "List all nodes in the cluster (master + workers)",
|
|
3958
|
+
"examples": [
|
|
3959
|
+
"<%= config.bin %> <%= command.id %>",
|
|
3960
|
+
"<%= config.bin %> <%= command.id %> --output json"
|
|
3961
|
+
],
|
|
3962
|
+
"flags": {
|
|
3963
|
+
"cluster": {
|
|
3964
|
+
"char": "c",
|
|
3965
|
+
"description": "Cluster name or ID (default: auto-detect when only one cluster exists)",
|
|
3966
|
+
"name": "cluster",
|
|
3967
|
+
"hasDynamicHelp": false,
|
|
3968
|
+
"multiple": false,
|
|
3969
|
+
"type": "option"
|
|
3970
|
+
},
|
|
3971
|
+
"output": {
|
|
3972
|
+
"char": "o",
|
|
3973
|
+
"description": "Output format",
|
|
3974
|
+
"name": "output",
|
|
3975
|
+
"default": "table",
|
|
3976
|
+
"hasDynamicHelp": false,
|
|
3977
|
+
"multiple": false,
|
|
3978
|
+
"options": [
|
|
3979
|
+
"table",
|
|
3980
|
+
"json"
|
|
3981
|
+
],
|
|
3982
|
+
"type": "option"
|
|
3983
|
+
}
|
|
3984
|
+
},
|
|
3985
|
+
"hasDynamicHelp": false,
|
|
3986
|
+
"hiddenAliases": [],
|
|
3987
|
+
"id": "node:list",
|
|
3988
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
3989
|
+
"pluginName": "@flui-cloud/cli",
|
|
3990
|
+
"pluginType": "core",
|
|
3991
|
+
"strict": true,
|
|
3992
|
+
"enableJsonFlag": false,
|
|
3993
|
+
"isESM": false,
|
|
3994
|
+
"relativePath": [
|
|
3995
|
+
"lib",
|
|
3996
|
+
"cli",
|
|
3997
|
+
"src",
|
|
3998
|
+
"commands",
|
|
3999
|
+
"node",
|
|
4000
|
+
"list.js"
|
|
4001
|
+
]
|
|
4002
|
+
},
|
|
4003
|
+
"node:remove": {
|
|
4004
|
+
"aliases": [],
|
|
4005
|
+
"args": {
|
|
4006
|
+
"nodeId": {
|
|
4007
|
+
"description": "Node ID to remove (from `flui node list`)",
|
|
4008
|
+
"name": "nodeId",
|
|
4009
|
+
"required": true
|
|
4010
|
+
}
|
|
4011
|
+
},
|
|
4012
|
+
"description": "Cordon, drain and remove a worker node from the cluster. Cannot remove the master.",
|
|
4013
|
+
"examples": [
|
|
4014
|
+
"<%= config.bin %> <%= command.id %> <node-id>",
|
|
4015
|
+
"<%= config.bin %> <%= command.id %> <node-id> --no-wait"
|
|
4016
|
+
],
|
|
4017
|
+
"flags": {
|
|
4018
|
+
"cluster": {
|
|
4019
|
+
"char": "c",
|
|
4020
|
+
"description": "Cluster name or ID (default: auto-detect when only one cluster exists)",
|
|
4021
|
+
"name": "cluster",
|
|
4022
|
+
"hasDynamicHelp": false,
|
|
4023
|
+
"multiple": false,
|
|
4024
|
+
"type": "option"
|
|
4025
|
+
},
|
|
4026
|
+
"no-wait": {
|
|
4027
|
+
"description": "Return immediately after queuing the operation",
|
|
4028
|
+
"name": "no-wait",
|
|
4029
|
+
"allowNo": false,
|
|
4030
|
+
"type": "boolean"
|
|
4031
|
+
}
|
|
4032
|
+
},
|
|
4033
|
+
"hasDynamicHelp": false,
|
|
4034
|
+
"hiddenAliases": [],
|
|
4035
|
+
"id": "node:remove",
|
|
4036
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
4037
|
+
"pluginName": "@flui-cloud/cli",
|
|
4038
|
+
"pluginType": "core",
|
|
4039
|
+
"strict": true,
|
|
4040
|
+
"enableJsonFlag": false,
|
|
4041
|
+
"isESM": false,
|
|
4042
|
+
"relativePath": [
|
|
4043
|
+
"lib",
|
|
4044
|
+
"cli",
|
|
4045
|
+
"src",
|
|
4046
|
+
"commands",
|
|
4047
|
+
"node",
|
|
4048
|
+
"remove.js"
|
|
4049
|
+
]
|
|
4050
|
+
},
|
|
3589
4051
|
"template:use": {
|
|
3590
4052
|
"aliases": [],
|
|
3591
4053
|
"args": {
|
|
@@ -3858,57 +4320,42 @@
|
|
|
3858
4320
|
"delete.js"
|
|
3859
4321
|
]
|
|
3860
4322
|
},
|
|
3861
|
-
"
|
|
3862
|
-
"aliases": [],
|
|
3863
|
-
"args": {
|
|
3864
|
-
"repo": {
|
|
3865
|
-
"description": "Full repository name `owner/repo`. Omit to pick interactively.",
|
|
3866
|
-
"name": "repo",
|
|
3867
|
-
"required": false
|
|
3868
|
-
}
|
|
3869
|
-
},
|
|
3870
|
-
"description": "Connect (import) a GitHub repository into your Flui account so it can be deployed with `flui deploy`. Pass the full name `owner/repo`, or omit it for an interactive picker over the repositories accessible via your GitHub integration.",
|
|
3871
|
-
"examples": [
|
|
3872
|
-
"<%= config.bin %> <%= command.id %> acme/my-app",
|
|
3873
|
-
"<%= config.bin %> <%= command.id %>"
|
|
3874
|
-
],
|
|
3875
|
-
"flags": {},
|
|
3876
|
-
"hasDynamicHelp": false,
|
|
3877
|
-
"hiddenAliases": [],
|
|
3878
|
-
"id": "repo:connect",
|
|
3879
|
-
"pluginAlias": "@flui-cloud/cli",
|
|
3880
|
-
"pluginName": "@flui-cloud/cli",
|
|
3881
|
-
"pluginType": "core",
|
|
3882
|
-
"strict": true,
|
|
3883
|
-
"enableJsonFlag": false,
|
|
3884
|
-
"isESM": false,
|
|
3885
|
-
"relativePath": [
|
|
3886
|
-
"lib",
|
|
3887
|
-
"cli",
|
|
3888
|
-
"src",
|
|
3889
|
-
"commands",
|
|
3890
|
-
"repo",
|
|
3891
|
-
"connect.js"
|
|
3892
|
-
]
|
|
3893
|
-
},
|
|
3894
|
-
"repo:disconnect": {
|
|
4323
|
+
"app:image:delete": {
|
|
3895
4324
|
"aliases": [],
|
|
3896
4325
|
"args": {
|
|
3897
|
-
"
|
|
3898
|
-
"description": "
|
|
3899
|
-
"name": "
|
|
4326
|
+
"name": {
|
|
4327
|
+
"description": "Application name or slug",
|
|
4328
|
+
"name": "name",
|
|
4329
|
+
"required": true
|
|
4330
|
+
},
|
|
4331
|
+
"versionId": {
|
|
4332
|
+
"description": "GitHub Packages numeric version id (from `flui app versions --output json`)",
|
|
4333
|
+
"name": "versionId",
|
|
3900
4334
|
"required": true
|
|
3901
4335
|
}
|
|
3902
4336
|
},
|
|
3903
|
-
"description": "
|
|
4337
|
+
"description": "Delete a container image version from the registry (GHCR). Refuses to delete the currently deployed version. The latest-release guard can be overridden with --force.",
|
|
3904
4338
|
"examples": [
|
|
3905
|
-
"<%= config.bin %> <%= command.id %>
|
|
3906
|
-
"<%= config.bin %> <%= command.id %>
|
|
4339
|
+
"<%= config.bin %> <%= command.id %> my-api 845914920",
|
|
4340
|
+
"<%= config.bin %> <%= command.id %> my-api 845914920 --force"
|
|
3907
4341
|
],
|
|
3908
4342
|
"flags": {
|
|
4343
|
+
"cluster": {
|
|
4344
|
+
"char": "c",
|
|
4345
|
+
"name": "cluster",
|
|
4346
|
+
"hasDynamicHelp": false,
|
|
4347
|
+
"multiple": false,
|
|
4348
|
+
"type": "option"
|
|
4349
|
+
},
|
|
4350
|
+
"force": {
|
|
4351
|
+
"description": "Override the latest-release guard. The currently-deployed guard is never bypassable.",
|
|
4352
|
+
"name": "force",
|
|
4353
|
+
"allowNo": false,
|
|
4354
|
+
"type": "boolean"
|
|
4355
|
+
},
|
|
3909
4356
|
"yes": {
|
|
3910
4357
|
"char": "y",
|
|
3911
|
-
"description": "Skip
|
|
4358
|
+
"description": "Skip confirmation prompt",
|
|
3912
4359
|
"name": "yes",
|
|
3913
4360
|
"allowNo": false,
|
|
3914
4361
|
"type": "boolean"
|
|
@@ -3916,7 +4363,7 @@
|
|
|
3916
4363
|
},
|
|
3917
4364
|
"hasDynamicHelp": false,
|
|
3918
4365
|
"hiddenAliases": [],
|
|
3919
|
-
"id": "
|
|
4366
|
+
"id": "app:image:delete",
|
|
3920
4367
|
"pluginAlias": "@flui-cloud/cli",
|
|
3921
4368
|
"pluginName": "@flui-cloud/cli",
|
|
3922
4369
|
"pluginType": "core",
|
|
@@ -3928,61 +4375,21 @@
|
|
|
3928
4375
|
"cli",
|
|
3929
4376
|
"src",
|
|
3930
4377
|
"commands",
|
|
3931
|
-
"
|
|
3932
|
-
"
|
|
4378
|
+
"app",
|
|
4379
|
+
"image",
|
|
4380
|
+
"delete.js"
|
|
3933
4381
|
]
|
|
3934
4382
|
},
|
|
3935
|
-
"
|
|
4383
|
+
"app:snapshot:create": {
|
|
3936
4384
|
"aliases": [],
|
|
3937
|
-
"args": {
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
"char": "o",
|
|
3946
|
-
"description": "Output format",
|
|
3947
|
-
"name": "output",
|
|
3948
|
-
"default": "text",
|
|
3949
|
-
"hasDynamicHelp": false,
|
|
3950
|
-
"multiple": false,
|
|
3951
|
-
"options": [
|
|
3952
|
-
"text",
|
|
3953
|
-
"json"
|
|
3954
|
-
],
|
|
3955
|
-
"type": "option"
|
|
3956
|
-
}
|
|
3957
|
-
},
|
|
3958
|
-
"hasDynamicHelp": false,
|
|
3959
|
-
"hiddenAliases": [],
|
|
3960
|
-
"id": "repo:list",
|
|
3961
|
-
"pluginAlias": "@flui-cloud/cli",
|
|
3962
|
-
"pluginName": "@flui-cloud/cli",
|
|
3963
|
-
"pluginType": "core",
|
|
3964
|
-
"strict": true,
|
|
3965
|
-
"enableJsonFlag": false,
|
|
3966
|
-
"isESM": false,
|
|
3967
|
-
"relativePath": [
|
|
3968
|
-
"lib",
|
|
3969
|
-
"cli",
|
|
3970
|
-
"src",
|
|
3971
|
-
"commands",
|
|
3972
|
-
"repo",
|
|
3973
|
-
"list.js"
|
|
3974
|
-
]
|
|
3975
|
-
},
|
|
3976
|
-
"app:snapshot:create": {
|
|
3977
|
-
"aliases": [],
|
|
3978
|
-
"args": {
|
|
3979
|
-
"name": {
|
|
3980
|
-
"description": "Application name or slug",
|
|
3981
|
-
"name": "name",
|
|
3982
|
-
"required": true
|
|
3983
|
-
}
|
|
3984
|
-
},
|
|
3985
|
-
"description": "Create a snapshot of an application volume. Today on every provider this is a full PVC clone built via the copy-pod export primitive (sink=pvc-clone) because workload PVCs use local-path. Cost: a full Volume per snapshot.",
|
|
4385
|
+
"args": {
|
|
4386
|
+
"name": {
|
|
4387
|
+
"description": "Application name or slug",
|
|
4388
|
+
"name": "name",
|
|
4389
|
+
"required": true
|
|
4390
|
+
}
|
|
4391
|
+
},
|
|
4392
|
+
"description": "Create a snapshot of an application volume. Today on every provider this is a full PVC clone built via the copy-pod export primitive (sink=pvc-clone) because workload PVCs use local-path. Cost: a full Volume per snapshot.",
|
|
3986
4393
|
"examples": [
|
|
3987
4394
|
"<%= config.bin %> <%= command.id %> my-app",
|
|
3988
4395
|
"<%= config.bin %> <%= command.id %> my-app --description before-upgrade",
|
|
@@ -4271,188 +4678,116 @@
|
|
|
4271
4678
|
"swap.js"
|
|
4272
4679
|
]
|
|
4273
4680
|
},
|
|
4274
|
-
"
|
|
4275
|
-
"aliases": [],
|
|
4276
|
-
"args": {
|
|
4277
|
-
"name": {
|
|
4278
|
-
"description": "Application name or slug",
|
|
4279
|
-
"name": "name",
|
|
4280
|
-
"required": true
|
|
4281
|
-
},
|
|
4282
|
-
"versionId": {
|
|
4283
|
-
"description": "GitHub Packages numeric version id (from `flui app versions --output json`)",
|
|
4284
|
-
"name": "versionId",
|
|
4285
|
-
"required": true
|
|
4286
|
-
}
|
|
4287
|
-
},
|
|
4288
|
-
"description": "Delete a container image version from the registry (GHCR). Refuses to delete the currently deployed version. The latest-release guard can be overridden with --force.",
|
|
4289
|
-
"examples": [
|
|
4290
|
-
"<%= config.bin %> <%= command.id %> my-api 845914920",
|
|
4291
|
-
"<%= config.bin %> <%= command.id %> my-api 845914920 --force"
|
|
4292
|
-
],
|
|
4293
|
-
"flags": {
|
|
4294
|
-
"cluster": {
|
|
4295
|
-
"char": "c",
|
|
4296
|
-
"name": "cluster",
|
|
4297
|
-
"hasDynamicHelp": false,
|
|
4298
|
-
"multiple": false,
|
|
4299
|
-
"type": "option"
|
|
4300
|
-
},
|
|
4301
|
-
"force": {
|
|
4302
|
-
"description": "Override the latest-release guard. The currently-deployed guard is never bypassable.",
|
|
4303
|
-
"name": "force",
|
|
4304
|
-
"allowNo": false,
|
|
4305
|
-
"type": "boolean"
|
|
4306
|
-
},
|
|
4307
|
-
"yes": {
|
|
4308
|
-
"char": "y",
|
|
4309
|
-
"description": "Skip confirmation prompt",
|
|
4310
|
-
"name": "yes",
|
|
4311
|
-
"allowNo": false,
|
|
4312
|
-
"type": "boolean"
|
|
4313
|
-
}
|
|
4314
|
-
},
|
|
4315
|
-
"hasDynamicHelp": false,
|
|
4316
|
-
"hiddenAliases": [],
|
|
4317
|
-
"id": "app:image:delete",
|
|
4318
|
-
"pluginAlias": "@flui-cloud/cli",
|
|
4319
|
-
"pluginName": "@flui-cloud/cli",
|
|
4320
|
-
"pluginType": "core",
|
|
4321
|
-
"strict": true,
|
|
4322
|
-
"enableJsonFlag": false,
|
|
4323
|
-
"isESM": false,
|
|
4324
|
-
"relativePath": [
|
|
4325
|
-
"lib",
|
|
4326
|
-
"cli",
|
|
4327
|
-
"src",
|
|
4328
|
-
"commands",
|
|
4329
|
-
"app",
|
|
4330
|
-
"image",
|
|
4331
|
-
"delete.js"
|
|
4332
|
-
]
|
|
4333
|
-
},
|
|
4334
|
-
"backup:destination:create": {
|
|
4681
|
+
"backup:policy:create": {
|
|
4335
4682
|
"aliases": [],
|
|
4336
4683
|
"args": {},
|
|
4337
|
-
"description": "Create a backup
|
|
4684
|
+
"description": "Create a backup policy",
|
|
4338
4685
|
"examples": [
|
|
4339
|
-
"<%= config.bin %> <%= command.id %> --name
|
|
4340
|
-
"<%= config.bin %> <%= command.id %> --name
|
|
4686
|
+
"<%= config.bin %> <%= command.id %> --name daily-all --cluster <id> --scope cluster_all --schedule \"0 2 * * *\" --retention-days 14 --destination <destId>",
|
|
4687
|
+
"<%= config.bin %> <%= command.id %> --name app-snap --cluster <id> --scope applications --scope-namespaces ns1,ns2 --destination <destId>"
|
|
4341
4688
|
],
|
|
4342
4689
|
"flags": {
|
|
4343
4690
|
"name": {
|
|
4344
|
-
"description": "Display name (≤120 chars)",
|
|
4345
4691
|
"name": "name",
|
|
4346
4692
|
"required": true,
|
|
4347
4693
|
"hasDynamicHelp": false,
|
|
4348
4694
|
"multiple": false,
|
|
4349
4695
|
"type": "option"
|
|
4350
4696
|
},
|
|
4351
|
-
"
|
|
4352
|
-
"description": "
|
|
4353
|
-
"name": "
|
|
4354
|
-
"required": true,
|
|
4355
|
-
"hasDynamicHelp": false,
|
|
4356
|
-
"multiple": false,
|
|
4357
|
-
"options": [
|
|
4358
|
-
"hetzner_object_storage",
|
|
4359
|
-
"scaleway_object_storage",
|
|
4360
|
-
"minio",
|
|
4361
|
-
"generic_s3"
|
|
4362
|
-
],
|
|
4363
|
-
"type": "option"
|
|
4364
|
-
},
|
|
4365
|
-
"endpoint": {
|
|
4366
|
-
"description": "S3 endpoint URL (e.g. https://s3.fr-par.scw.cloud)",
|
|
4367
|
-
"name": "endpoint",
|
|
4697
|
+
"cluster": {
|
|
4698
|
+
"description": "Cluster ID",
|
|
4699
|
+
"name": "cluster",
|
|
4368
4700
|
"required": true,
|
|
4369
4701
|
"hasDynamicHelp": false,
|
|
4370
4702
|
"multiple": false,
|
|
4371
4703
|
"type": "option"
|
|
4372
4704
|
},
|
|
4373
|
-
"
|
|
4374
|
-
"name": "
|
|
4705
|
+
"scope": {
|
|
4706
|
+
"name": "scope",
|
|
4375
4707
|
"required": true,
|
|
4376
4708
|
"hasDynamicHelp": false,
|
|
4377
4709
|
"multiple": false,
|
|
4710
|
+
"options": [
|
|
4711
|
+
"cluster_all",
|
|
4712
|
+
"namespaces",
|
|
4713
|
+
"applications",
|
|
4714
|
+
"label_selector"
|
|
4715
|
+
],
|
|
4378
4716
|
"type": "option"
|
|
4379
4717
|
},
|
|
4380
|
-
"
|
|
4381
|
-
"
|
|
4382
|
-
"
|
|
4718
|
+
"scope-namespaces": {
|
|
4719
|
+
"description": "Comma-separated namespaces (for scope=namespaces)",
|
|
4720
|
+
"name": "scope-namespaces",
|
|
4383
4721
|
"hasDynamicHelp": false,
|
|
4384
4722
|
"multiple": false,
|
|
4385
4723
|
"type": "option"
|
|
4386
4724
|
},
|
|
4387
|
-
"
|
|
4388
|
-
"
|
|
4389
|
-
"
|
|
4725
|
+
"scope-apps": {
|
|
4726
|
+
"description": "Comma-separated application IDs (for scope=applications)",
|
|
4727
|
+
"name": "scope-apps",
|
|
4390
4728
|
"hasDynamicHelp": false,
|
|
4391
4729
|
"multiple": false,
|
|
4392
4730
|
"type": "option"
|
|
4393
4731
|
},
|
|
4394
|
-
"
|
|
4395
|
-
"name": "
|
|
4396
|
-
"
|
|
4732
|
+
"profile": {
|
|
4733
|
+
"name": "profile",
|
|
4734
|
+
"default": "single",
|
|
4397
4735
|
"hasDynamicHelp": false,
|
|
4398
4736
|
"multiple": false,
|
|
4737
|
+
"options": [
|
|
4738
|
+
"single",
|
|
4739
|
+
"mirrored",
|
|
4740
|
+
"custom"
|
|
4741
|
+
],
|
|
4399
4742
|
"type": "option"
|
|
4400
4743
|
},
|
|
4401
|
-
"
|
|
4402
|
-
"description": "
|
|
4403
|
-
"name": "
|
|
4744
|
+
"schedule": {
|
|
4745
|
+
"description": "Cron schedule (e.g. \"0 2 * * *\" for daily 02:00 UTC)",
|
|
4746
|
+
"name": "schedule",
|
|
4404
4747
|
"hasDynamicHelp": false,
|
|
4405
4748
|
"multiple": false,
|
|
4406
4749
|
"type": "option"
|
|
4407
4750
|
},
|
|
4408
|
-
"
|
|
4409
|
-
"
|
|
4410
|
-
"
|
|
4751
|
+
"retention-days": {
|
|
4752
|
+
"name": "retention-days",
|
|
4753
|
+
"default": 30,
|
|
4411
4754
|
"hasDynamicHelp": false,
|
|
4412
4755
|
"multiple": false,
|
|
4413
|
-
"options": [
|
|
4414
|
-
"flui_managed",
|
|
4415
|
-
"byo_passphrase",
|
|
4416
|
-
"none"
|
|
4417
|
-
],
|
|
4418
4756
|
"type": "option"
|
|
4419
4757
|
},
|
|
4420
|
-
"
|
|
4421
|
-
"
|
|
4422
|
-
"name": "encryption-passphrase",
|
|
4758
|
+
"retention-max-copies": {
|
|
4759
|
+
"name": "retention-max-copies",
|
|
4423
4760
|
"hasDynamicHelp": false,
|
|
4424
4761
|
"multiple": false,
|
|
4425
4762
|
"type": "option"
|
|
4426
4763
|
},
|
|
4427
|
-
"
|
|
4428
|
-
"
|
|
4429
|
-
"name": "force-path-style",
|
|
4764
|
+
"include-pvcs": {
|
|
4765
|
+
"name": "include-pvcs",
|
|
4430
4766
|
"allowNo": false,
|
|
4431
4767
|
"type": "boolean"
|
|
4432
4768
|
},
|
|
4433
|
-
"
|
|
4434
|
-
"
|
|
4435
|
-
"name": "use-sse",
|
|
4769
|
+
"include-etcd-l1": {
|
|
4770
|
+
"name": "include-etcd-l1",
|
|
4436
4771
|
"allowNo": false,
|
|
4437
4772
|
"type": "boolean"
|
|
4438
4773
|
},
|
|
4439
|
-
"
|
|
4440
|
-
"
|
|
4441
|
-
"
|
|
4442
|
-
"allowNo": false,
|
|
4774
|
+
"enabled": {
|
|
4775
|
+
"name": "enabled",
|
|
4776
|
+
"allowNo": true,
|
|
4443
4777
|
"type": "boolean"
|
|
4444
4778
|
},
|
|
4445
|
-
"
|
|
4446
|
-
"description": "
|
|
4447
|
-
"name": "
|
|
4779
|
+
"destination": {
|
|
4780
|
+
"description": "Destination spec: <destId>[:primary|replica[:priority]] (repeatable)",
|
|
4781
|
+
"name": "destination",
|
|
4782
|
+
"required": true,
|
|
4448
4783
|
"hasDynamicHelp": false,
|
|
4449
|
-
"multiple":
|
|
4784
|
+
"multiple": true,
|
|
4450
4785
|
"type": "option"
|
|
4451
4786
|
}
|
|
4452
4787
|
},
|
|
4453
4788
|
"hasDynamicHelp": false,
|
|
4454
4789
|
"hiddenAliases": [],
|
|
4455
|
-
"id": "backup:
|
|
4790
|
+
"id": "backup:policy:create",
|
|
4456
4791
|
"pluginAlias": "@flui-cloud/cli",
|
|
4457
4792
|
"pluginName": "@flui-cloud/cli",
|
|
4458
4793
|
"pluginType": "core",
|
|
@@ -4465,24 +4800,22 @@
|
|
|
4465
4800
|
"src",
|
|
4466
4801
|
"commands",
|
|
4467
4802
|
"backup",
|
|
4468
|
-
"
|
|
4803
|
+
"policy",
|
|
4469
4804
|
"create.js"
|
|
4470
4805
|
]
|
|
4471
4806
|
},
|
|
4472
|
-
"backup:
|
|
4807
|
+
"backup:policy:delete": {
|
|
4473
4808
|
"aliases": [],
|
|
4474
4809
|
"args": {
|
|
4475
4810
|
"id": {
|
|
4476
|
-
"description": "Destination ID",
|
|
4477
4811
|
"name": "id",
|
|
4478
4812
|
"required": true
|
|
4479
4813
|
}
|
|
4480
4814
|
},
|
|
4481
|
-
"description": "Delete a backup
|
|
4815
|
+
"description": "Delete a backup policy (existing artifacts are retained)",
|
|
4482
4816
|
"flags": {
|
|
4483
4817
|
"yes": {
|
|
4484
4818
|
"char": "y",
|
|
4485
|
-
"description": "Skip confirmation",
|
|
4486
4819
|
"name": "yes",
|
|
4487
4820
|
"allowNo": false,
|
|
4488
4821
|
"type": "boolean"
|
|
@@ -4490,7 +4823,7 @@
|
|
|
4490
4823
|
},
|
|
4491
4824
|
"hasDynamicHelp": false,
|
|
4492
4825
|
"hiddenAliases": [],
|
|
4493
|
-
"id": "backup:
|
|
4826
|
+
"id": "backup:policy:delete",
|
|
4494
4827
|
"pluginAlias": "@flui-cloud/cli",
|
|
4495
4828
|
"pluginName": "@flui-cloud/cli",
|
|
4496
4829
|
"pluginType": "core",
|
|
@@ -4503,20 +4836,23 @@
|
|
|
4503
4836
|
"src",
|
|
4504
4837
|
"commands",
|
|
4505
4838
|
"backup",
|
|
4506
|
-
"
|
|
4839
|
+
"policy",
|
|
4507
4840
|
"delete.js"
|
|
4508
4841
|
]
|
|
4509
4842
|
},
|
|
4510
|
-
"backup:
|
|
4843
|
+
"backup:policy:list": {
|
|
4511
4844
|
"aliases": [],
|
|
4512
4845
|
"args": {},
|
|
4513
|
-
"description": "List backup
|
|
4514
|
-
"examples": [
|
|
4515
|
-
"<%= config.bin %> <%= command.id %>"
|
|
4516
|
-
],
|
|
4846
|
+
"description": "List backup policies",
|
|
4517
4847
|
"flags": {
|
|
4848
|
+
"cluster": {
|
|
4849
|
+
"description": "Filter by cluster ID",
|
|
4850
|
+
"name": "cluster",
|
|
4851
|
+
"hasDynamicHelp": false,
|
|
4852
|
+
"multiple": false,
|
|
4853
|
+
"type": "option"
|
|
4854
|
+
},
|
|
4518
4855
|
"json": {
|
|
4519
|
-
"description": "Output as JSON",
|
|
4520
4856
|
"name": "json",
|
|
4521
4857
|
"allowNo": false,
|
|
4522
4858
|
"type": "boolean"
|
|
@@ -4524,7 +4860,7 @@
|
|
|
4524
4860
|
},
|
|
4525
4861
|
"hasDynamicHelp": false,
|
|
4526
4862
|
"hiddenAliases": [],
|
|
4527
|
-
"id": "backup:
|
|
4863
|
+
"id": "backup:policy:list",
|
|
4528
4864
|
"pluginAlias": "@flui-cloud/cli",
|
|
4529
4865
|
"pluginName": "@flui-cloud/cli",
|
|
4530
4866
|
"pluginType": "core",
|
|
@@ -4537,23 +4873,22 @@
|
|
|
4537
4873
|
"src",
|
|
4538
4874
|
"commands",
|
|
4539
4875
|
"backup",
|
|
4540
|
-
"
|
|
4876
|
+
"policy",
|
|
4541
4877
|
"list.js"
|
|
4542
4878
|
]
|
|
4543
4879
|
},
|
|
4544
|
-
"backup:
|
|
4880
|
+
"backup:policy:show": {
|
|
4545
4881
|
"aliases": [],
|
|
4546
4882
|
"args": {
|
|
4547
4883
|
"id": {
|
|
4548
|
-
"description": "
|
|
4884
|
+
"description": "Policy ID",
|
|
4549
4885
|
"name": "id",
|
|
4550
4886
|
"required": true
|
|
4551
4887
|
}
|
|
4552
4888
|
},
|
|
4553
|
-
"description": "Show a backup
|
|
4889
|
+
"description": "Show a backup policy by ID",
|
|
4554
4890
|
"flags": {
|
|
4555
4891
|
"json": {
|
|
4556
|
-
"description": "Output as JSON",
|
|
4557
4892
|
"name": "json",
|
|
4558
4893
|
"allowNo": false,
|
|
4559
4894
|
"type": "boolean"
|
|
@@ -4561,7 +4896,7 @@
|
|
|
4561
4896
|
},
|
|
4562
4897
|
"hasDynamicHelp": false,
|
|
4563
4898
|
"hiddenAliases": [],
|
|
4564
|
-
"id": "backup:
|
|
4899
|
+
"id": "backup:policy:show",
|
|
4565
4900
|
"pluginAlias": "@flui-cloud/cli",
|
|
4566
4901
|
"pluginName": "@flui-cloud/cli",
|
|
4567
4902
|
"pluginType": "core",
|
|
@@ -4574,56 +4909,15 @@
|
|
|
4574
4909
|
"src",
|
|
4575
4910
|
"commands",
|
|
4576
4911
|
"backup",
|
|
4577
|
-
"
|
|
4912
|
+
"policy",
|
|
4578
4913
|
"show.js"
|
|
4579
4914
|
]
|
|
4580
4915
|
},
|
|
4581
|
-
"backup:
|
|
4582
|
-
"aliases": [],
|
|
4583
|
-
"args": {
|
|
4584
|
-
"id": {
|
|
4585
|
-
"description": "Destination ID",
|
|
4586
|
-
"name": "id",
|
|
4587
|
-
"required": true
|
|
4588
|
-
}
|
|
4589
|
-
},
|
|
4590
|
-
"description": "Test connectivity to a backup destination (S3 PUT/GET/DELETE round-trip)",
|
|
4591
|
-
"flags": {},
|
|
4592
|
-
"hasDynamicHelp": false,
|
|
4593
|
-
"hiddenAliases": [],
|
|
4594
|
-
"id": "backup:destination:test",
|
|
4595
|
-
"pluginAlias": "@flui-cloud/cli",
|
|
4596
|
-
"pluginName": "@flui-cloud/cli",
|
|
4597
|
-
"pluginType": "core",
|
|
4598
|
-
"strict": true,
|
|
4599
|
-
"enableJsonFlag": false,
|
|
4600
|
-
"isESM": false,
|
|
4601
|
-
"relativePath": [
|
|
4602
|
-
"lib",
|
|
4603
|
-
"cli",
|
|
4604
|
-
"src",
|
|
4605
|
-
"commands",
|
|
4606
|
-
"backup",
|
|
4607
|
-
"destination",
|
|
4608
|
-
"test.js"
|
|
4609
|
-
]
|
|
4610
|
-
},
|
|
4611
|
-
"backup:policy:create": {
|
|
4916
|
+
"backup:job:list": {
|
|
4612
4917
|
"aliases": [],
|
|
4613
4918
|
"args": {},
|
|
4614
|
-
"description": "
|
|
4615
|
-
"examples": [
|
|
4616
|
-
"<%= config.bin %> <%= command.id %> --name daily-all --cluster <id> --scope cluster_all --schedule \"0 2 * * *\" --retention-days 14 --destination <destId>",
|
|
4617
|
-
"<%= config.bin %> <%= command.id %> --name app-snap --cluster <id> --scope applications --scope-namespaces ns1,ns2 --destination <destId>"
|
|
4618
|
-
],
|
|
4919
|
+
"description": "List backup jobs for a cluster",
|
|
4619
4920
|
"flags": {
|
|
4620
|
-
"name": {
|
|
4621
|
-
"name": "name",
|
|
4622
|
-
"required": true,
|
|
4623
|
-
"hasDynamicHelp": false,
|
|
4624
|
-
"multiple": false,
|
|
4625
|
-
"type": "option"
|
|
4626
|
-
},
|
|
4627
4921
|
"cluster": {
|
|
4628
4922
|
"description": "Cluster ID",
|
|
4629
4923
|
"name": "cluster",
|
|
@@ -4632,128 +4926,15 @@
|
|
|
4632
4926
|
"multiple": false,
|
|
4633
4927
|
"type": "option"
|
|
4634
4928
|
},
|
|
4635
|
-
"
|
|
4636
|
-
"name": "
|
|
4637
|
-
"required": true,
|
|
4638
|
-
"hasDynamicHelp": false,
|
|
4639
|
-
"multiple": false,
|
|
4640
|
-
"options": [
|
|
4641
|
-
"cluster_all",
|
|
4642
|
-
"namespaces",
|
|
4643
|
-
"applications",
|
|
4644
|
-
"label_selector"
|
|
4645
|
-
],
|
|
4646
|
-
"type": "option"
|
|
4647
|
-
},
|
|
4648
|
-
"scope-namespaces": {
|
|
4649
|
-
"description": "Comma-separated namespaces (for scope=namespaces)",
|
|
4650
|
-
"name": "scope-namespaces",
|
|
4651
|
-
"hasDynamicHelp": false,
|
|
4652
|
-
"multiple": false,
|
|
4653
|
-
"type": "option"
|
|
4654
|
-
},
|
|
4655
|
-
"scope-apps": {
|
|
4656
|
-
"description": "Comma-separated application IDs (for scope=applications)",
|
|
4657
|
-
"name": "scope-apps",
|
|
4658
|
-
"hasDynamicHelp": false,
|
|
4659
|
-
"multiple": false,
|
|
4660
|
-
"type": "option"
|
|
4661
|
-
},
|
|
4662
|
-
"profile": {
|
|
4663
|
-
"name": "profile",
|
|
4664
|
-
"default": "single",
|
|
4665
|
-
"hasDynamicHelp": false,
|
|
4666
|
-
"multiple": false,
|
|
4667
|
-
"options": [
|
|
4668
|
-
"single",
|
|
4669
|
-
"mirrored",
|
|
4670
|
-
"custom"
|
|
4671
|
-
],
|
|
4672
|
-
"type": "option"
|
|
4673
|
-
},
|
|
4674
|
-
"schedule": {
|
|
4675
|
-
"description": "Cron schedule (e.g. \"0 2 * * *\" for daily 02:00 UTC)",
|
|
4676
|
-
"name": "schedule",
|
|
4677
|
-
"hasDynamicHelp": false,
|
|
4678
|
-
"multiple": false,
|
|
4679
|
-
"type": "option"
|
|
4680
|
-
},
|
|
4681
|
-
"retention-days": {
|
|
4682
|
-
"name": "retention-days",
|
|
4683
|
-
"default": 30,
|
|
4684
|
-
"hasDynamicHelp": false,
|
|
4685
|
-
"multiple": false,
|
|
4686
|
-
"type": "option"
|
|
4687
|
-
},
|
|
4688
|
-
"retention-max-copies": {
|
|
4689
|
-
"name": "retention-max-copies",
|
|
4690
|
-
"hasDynamicHelp": false,
|
|
4691
|
-
"multiple": false,
|
|
4692
|
-
"type": "option"
|
|
4693
|
-
},
|
|
4694
|
-
"include-pvcs": {
|
|
4695
|
-
"name": "include-pvcs",
|
|
4696
|
-
"allowNo": false,
|
|
4697
|
-
"type": "boolean"
|
|
4698
|
-
},
|
|
4699
|
-
"include-etcd-l1": {
|
|
4700
|
-
"name": "include-etcd-l1",
|
|
4701
|
-
"allowNo": false,
|
|
4702
|
-
"type": "boolean"
|
|
4703
|
-
},
|
|
4704
|
-
"enabled": {
|
|
4705
|
-
"name": "enabled",
|
|
4706
|
-
"allowNo": true,
|
|
4707
|
-
"type": "boolean"
|
|
4708
|
-
},
|
|
4709
|
-
"destination": {
|
|
4710
|
-
"description": "Destination spec: <destId>[:primary|replica[:priority]] (repeatable)",
|
|
4711
|
-
"name": "destination",
|
|
4712
|
-
"required": true,
|
|
4713
|
-
"hasDynamicHelp": false,
|
|
4714
|
-
"multiple": true,
|
|
4715
|
-
"type": "option"
|
|
4716
|
-
}
|
|
4717
|
-
},
|
|
4718
|
-
"hasDynamicHelp": false,
|
|
4719
|
-
"hiddenAliases": [],
|
|
4720
|
-
"id": "backup:policy:create",
|
|
4721
|
-
"pluginAlias": "@flui-cloud/cli",
|
|
4722
|
-
"pluginName": "@flui-cloud/cli",
|
|
4723
|
-
"pluginType": "core",
|
|
4724
|
-
"strict": true,
|
|
4725
|
-
"enableJsonFlag": false,
|
|
4726
|
-
"isESM": false,
|
|
4727
|
-
"relativePath": [
|
|
4728
|
-
"lib",
|
|
4729
|
-
"cli",
|
|
4730
|
-
"src",
|
|
4731
|
-
"commands",
|
|
4732
|
-
"backup",
|
|
4733
|
-
"policy",
|
|
4734
|
-
"create.js"
|
|
4735
|
-
]
|
|
4736
|
-
},
|
|
4737
|
-
"backup:policy:delete": {
|
|
4738
|
-
"aliases": [],
|
|
4739
|
-
"args": {
|
|
4740
|
-
"id": {
|
|
4741
|
-
"name": "id",
|
|
4742
|
-
"required": true
|
|
4743
|
-
}
|
|
4744
|
-
},
|
|
4745
|
-
"description": "Delete a backup policy (existing artifacts are retained)",
|
|
4746
|
-
"flags": {
|
|
4747
|
-
"yes": {
|
|
4748
|
-
"char": "y",
|
|
4749
|
-
"name": "yes",
|
|
4929
|
+
"json": {
|
|
4930
|
+
"name": "json",
|
|
4750
4931
|
"allowNo": false,
|
|
4751
4932
|
"type": "boolean"
|
|
4752
4933
|
}
|
|
4753
4934
|
},
|
|
4754
4935
|
"hasDynamicHelp": false,
|
|
4755
4936
|
"hiddenAliases": [],
|
|
4756
|
-
"id": "backup:
|
|
4937
|
+
"id": "backup:job:list",
|
|
4757
4938
|
"pluginAlias": "@flui-cloud/cli",
|
|
4758
4939
|
"pluginName": "@flui-cloud/cli",
|
|
4759
4940
|
"pluginType": "core",
|
|
@@ -4766,31 +4947,27 @@
|
|
|
4766
4947
|
"src",
|
|
4767
4948
|
"commands",
|
|
4768
4949
|
"backup",
|
|
4769
|
-
"
|
|
4770
|
-
"
|
|
4950
|
+
"job",
|
|
4951
|
+
"list.js"
|
|
4771
4952
|
]
|
|
4772
4953
|
},
|
|
4773
|
-
"backup:
|
|
4954
|
+
"backup:job:run": {
|
|
4774
4955
|
"aliases": [],
|
|
4775
4956
|
"args": {},
|
|
4776
|
-
"description": "
|
|
4957
|
+
"description": "Trigger an on-demand backup job for a given policy",
|
|
4777
4958
|
"flags": {
|
|
4778
|
-
"
|
|
4779
|
-
"description": "
|
|
4780
|
-
"name": "
|
|
4959
|
+
"policy": {
|
|
4960
|
+
"description": "Policy ID",
|
|
4961
|
+
"name": "policy",
|
|
4962
|
+
"required": true,
|
|
4781
4963
|
"hasDynamicHelp": false,
|
|
4782
4964
|
"multiple": false,
|
|
4783
4965
|
"type": "option"
|
|
4784
|
-
},
|
|
4785
|
-
"json": {
|
|
4786
|
-
"name": "json",
|
|
4787
|
-
"allowNo": false,
|
|
4788
|
-
"type": "boolean"
|
|
4789
4966
|
}
|
|
4790
4967
|
},
|
|
4791
4968
|
"hasDynamicHelp": false,
|
|
4792
4969
|
"hiddenAliases": [],
|
|
4793
|
-
"id": "backup:
|
|
4970
|
+
"id": "backup:job:run",
|
|
4794
4971
|
"pluginAlias": "@flui-cloud/cli",
|
|
4795
4972
|
"pluginName": "@flui-cloud/cli",
|
|
4796
4973
|
"pluginType": "core",
|
|
@@ -4803,20 +4980,19 @@
|
|
|
4803
4980
|
"src",
|
|
4804
4981
|
"commands",
|
|
4805
4982
|
"backup",
|
|
4806
|
-
"
|
|
4807
|
-
"
|
|
4983
|
+
"job",
|
|
4984
|
+
"run.js"
|
|
4808
4985
|
]
|
|
4809
4986
|
},
|
|
4810
|
-
"backup:
|
|
4987
|
+
"backup:job:show": {
|
|
4811
4988
|
"aliases": [],
|
|
4812
4989
|
"args": {
|
|
4813
4990
|
"id": {
|
|
4814
|
-
"description": "Policy ID",
|
|
4815
4991
|
"name": "id",
|
|
4816
4992
|
"required": true
|
|
4817
4993
|
}
|
|
4818
4994
|
},
|
|
4819
|
-
"description": "Show a backup
|
|
4995
|
+
"description": "Show a backup job by ID",
|
|
4820
4996
|
"flags": {
|
|
4821
4997
|
"json": {
|
|
4822
4998
|
"name": "json",
|
|
@@ -4826,7 +5002,7 @@
|
|
|
4826
5002
|
},
|
|
4827
5003
|
"hasDynamicHelp": false,
|
|
4828
5004
|
"hiddenAliases": [],
|
|
4829
|
-
"id": "backup:
|
|
5005
|
+
"id": "backup:job:show",
|
|
4830
5006
|
"pluginAlias": "@flui-cloud/cli",
|
|
4831
5007
|
"pluginName": "@flui-cloud/cli",
|
|
4832
5008
|
"pluginType": "core",
|
|
@@ -4839,79 +5015,132 @@
|
|
|
4839
5015
|
"src",
|
|
4840
5016
|
"commands",
|
|
4841
5017
|
"backup",
|
|
4842
|
-
"
|
|
5018
|
+
"job",
|
|
4843
5019
|
"show.js"
|
|
4844
5020
|
]
|
|
4845
5021
|
},
|
|
4846
|
-
"backup:
|
|
5022
|
+
"backup:destination:create": {
|
|
4847
5023
|
"aliases": [],
|
|
4848
5024
|
"args": {},
|
|
4849
|
-
"description": "Create a
|
|
5025
|
+
"description": "Create a backup destination (S3-compatible storage target for Velero)",
|
|
5026
|
+
"examples": [
|
|
5027
|
+
"<%= config.bin %> <%= command.id %> --name my-s3 --provider hetzner_object_storage --endpoint https://fsn1.your-objectstorage.com --region fsn1 --bucket flui-backups --access-key AK --secret-key SK",
|
|
5028
|
+
"<%= config.bin %> <%= command.id %> --name scw --provider scaleway_object_storage --endpoint https://s3.fr-par.scw.cloud --region fr-par --bucket flui-bkp --access-key AK --secret-key SK"
|
|
5029
|
+
],
|
|
4850
5030
|
"flags": {
|
|
4851
|
-
"
|
|
4852
|
-
"description": "
|
|
4853
|
-
"name": "
|
|
5031
|
+
"name": {
|
|
5032
|
+
"description": "Display name (≤120 chars)",
|
|
5033
|
+
"name": "name",
|
|
4854
5034
|
"required": true,
|
|
4855
5035
|
"hasDynamicHelp": false,
|
|
4856
5036
|
"multiple": false,
|
|
4857
5037
|
"type": "option"
|
|
4858
5038
|
},
|
|
4859
|
-
"
|
|
4860
|
-
"
|
|
5039
|
+
"provider": {
|
|
5040
|
+
"description": "Storage backend provider",
|
|
5041
|
+
"name": "provider",
|
|
4861
5042
|
"required": true,
|
|
4862
5043
|
"hasDynamicHelp": false,
|
|
4863
5044
|
"multiple": false,
|
|
5045
|
+
"options": [
|
|
5046
|
+
"hetzner_object_storage",
|
|
5047
|
+
"scaleway_object_storage",
|
|
5048
|
+
"minio",
|
|
5049
|
+
"generic_s3"
|
|
5050
|
+
],
|
|
4864
5051
|
"type": "option"
|
|
4865
5052
|
},
|
|
4866
|
-
"
|
|
4867
|
-
"description": "
|
|
4868
|
-
"name": "
|
|
5053
|
+
"endpoint": {
|
|
5054
|
+
"description": "S3 endpoint URL (e.g. https://s3.fr-par.scw.cloud)",
|
|
5055
|
+
"name": "endpoint",
|
|
4869
5056
|
"required": true,
|
|
4870
5057
|
"hasDynamicHelp": false,
|
|
4871
5058
|
"multiple": false,
|
|
4872
5059
|
"type": "option"
|
|
4873
5060
|
},
|
|
4874
|
-
"
|
|
4875
|
-
"name": "
|
|
5061
|
+
"region": {
|
|
5062
|
+
"name": "region",
|
|
5063
|
+
"required": true,
|
|
5064
|
+
"hasDynamicHelp": false,
|
|
5065
|
+
"multiple": false,
|
|
5066
|
+
"type": "option"
|
|
5067
|
+
},
|
|
5068
|
+
"bucket": {
|
|
5069
|
+
"name": "bucket",
|
|
5070
|
+
"required": true,
|
|
5071
|
+
"hasDynamicHelp": false,
|
|
5072
|
+
"multiple": false,
|
|
5073
|
+
"type": "option"
|
|
5074
|
+
},
|
|
5075
|
+
"access-key": {
|
|
5076
|
+
"name": "access-key",
|
|
4876
5077
|
"required": true,
|
|
4877
5078
|
"hasDynamicHelp": false,
|
|
4878
5079
|
"multiple": false,
|
|
5080
|
+
"type": "option"
|
|
5081
|
+
},
|
|
5082
|
+
"secret-key": {
|
|
5083
|
+
"name": "secret-key",
|
|
5084
|
+
"required": true,
|
|
5085
|
+
"hasDynamicHelp": false,
|
|
5086
|
+
"multiple": false,
|
|
5087
|
+
"type": "option"
|
|
5088
|
+
},
|
|
5089
|
+
"prefix": {
|
|
5090
|
+
"description": "Optional path prefix inside the bucket",
|
|
5091
|
+
"name": "prefix",
|
|
5092
|
+
"hasDynamicHelp": false,
|
|
5093
|
+
"multiple": false,
|
|
5094
|
+
"type": "option"
|
|
5095
|
+
},
|
|
5096
|
+
"encryption-mode": {
|
|
5097
|
+
"description": "Encryption mode (default: flui_managed)",
|
|
5098
|
+
"name": "encryption-mode",
|
|
5099
|
+
"hasDynamicHelp": false,
|
|
5100
|
+
"multiple": false,
|
|
4879
5101
|
"options": [
|
|
4880
|
-
"
|
|
4881
|
-
"
|
|
4882
|
-
"
|
|
4883
|
-
"observability"
|
|
5102
|
+
"flui_managed",
|
|
5103
|
+
"byo_passphrase",
|
|
5104
|
+
"none"
|
|
4884
5105
|
],
|
|
4885
5106
|
"type": "option"
|
|
4886
5107
|
},
|
|
4887
|
-
"
|
|
4888
|
-
"description": "Required when --
|
|
4889
|
-
"name": "
|
|
5108
|
+
"encryption-passphrase": {
|
|
5109
|
+
"description": "Required when --encryption-mode=byo_passphrase",
|
|
5110
|
+
"name": "encryption-passphrase",
|
|
4890
5111
|
"hasDynamicHelp": false,
|
|
4891
5112
|
"multiple": false,
|
|
4892
5113
|
"type": "option"
|
|
4893
5114
|
},
|
|
4894
|
-
"
|
|
4895
|
-
"description": "
|
|
4896
|
-
"name": "
|
|
4897
|
-
"
|
|
4898
|
-
"
|
|
4899
|
-
"type": "option"
|
|
5115
|
+
"force-path-style": {
|
|
5116
|
+
"description": "Force path-style S3 URLs (needed for MinIO/some providers)",
|
|
5117
|
+
"name": "force-path-style",
|
|
5118
|
+
"allowNo": false,
|
|
5119
|
+
"type": "boolean"
|
|
4900
5120
|
},
|
|
4901
|
-
"
|
|
4902
|
-
"
|
|
5121
|
+
"use-sse": {
|
|
5122
|
+
"description": "Use server-side encryption (SSE-S3) at the provider",
|
|
5123
|
+
"name": "use-sse",
|
|
5124
|
+
"allowNo": false,
|
|
5125
|
+
"type": "boolean"
|
|
5126
|
+
},
|
|
5127
|
+
"usable-for-etcd-l1": {
|
|
5128
|
+
"description": "Allow this destination to receive L1 etcd snapshots",
|
|
5129
|
+
"name": "usable-for-etcd-l1",
|
|
5130
|
+
"allowNo": false,
|
|
5131
|
+
"type": "boolean"
|
|
5132
|
+
},
|
|
5133
|
+
"cost-per-gb-month-cents": {
|
|
5134
|
+
"description": "Provider cost in cents/GB·month (used for billing estimate)",
|
|
5135
|
+
"name": "cost-per-gb-month-cents",
|
|
4903
5136
|
"hasDynamicHelp": false,
|
|
4904
5137
|
"multiple": false,
|
|
4905
|
-
"options": [
|
|
4906
|
-
"velero_rebuild",
|
|
4907
|
-
"os_snapshot"
|
|
4908
|
-
],
|
|
4909
5138
|
"type": "option"
|
|
4910
5139
|
}
|
|
4911
5140
|
},
|
|
4912
5141
|
"hasDynamicHelp": false,
|
|
4913
5142
|
"hiddenAliases": [],
|
|
4914
|
-
"id": "backup:
|
|
5143
|
+
"id": "backup:destination:create",
|
|
4915
5144
|
"pluginAlias": "@flui-cloud/cli",
|
|
4916
5145
|
"pluginName": "@flui-cloud/cli",
|
|
4917
5146
|
"pluginType": "core",
|
|
@@ -4924,24 +5153,32 @@
|
|
|
4924
5153
|
"src",
|
|
4925
5154
|
"commands",
|
|
4926
5155
|
"backup",
|
|
4927
|
-
"
|
|
5156
|
+
"destination",
|
|
4928
5157
|
"create.js"
|
|
4929
5158
|
]
|
|
4930
5159
|
},
|
|
4931
|
-
"backup:
|
|
5160
|
+
"backup:destination:delete": {
|
|
4932
5161
|
"aliases": [],
|
|
4933
|
-
"args": {
|
|
4934
|
-
|
|
5162
|
+
"args": {
|
|
5163
|
+
"id": {
|
|
5164
|
+
"description": "Destination ID",
|
|
5165
|
+
"name": "id",
|
|
5166
|
+
"required": true
|
|
5167
|
+
}
|
|
5168
|
+
},
|
|
5169
|
+
"description": "Delete a backup destination",
|
|
4935
5170
|
"flags": {
|
|
4936
|
-
"
|
|
4937
|
-
"
|
|
5171
|
+
"yes": {
|
|
5172
|
+
"char": "y",
|
|
5173
|
+
"description": "Skip confirmation",
|
|
5174
|
+
"name": "yes",
|
|
4938
5175
|
"allowNo": false,
|
|
4939
5176
|
"type": "boolean"
|
|
4940
5177
|
}
|
|
4941
5178
|
},
|
|
4942
5179
|
"hasDynamicHelp": false,
|
|
4943
5180
|
"hiddenAliases": [],
|
|
4944
|
-
"id": "backup:
|
|
5181
|
+
"id": "backup:destination:delete",
|
|
4945
5182
|
"pluginAlias": "@flui-cloud/cli",
|
|
4946
5183
|
"pluginName": "@flui-cloud/cli",
|
|
4947
5184
|
"pluginType": "core",
|
|
@@ -4954,35 +5191,28 @@
|
|
|
4954
5191
|
"src",
|
|
4955
5192
|
"commands",
|
|
4956
5193
|
"backup",
|
|
4957
|
-
"
|
|
4958
|
-
"
|
|
5194
|
+
"destination",
|
|
5195
|
+
"delete.js"
|
|
4959
5196
|
]
|
|
4960
5197
|
},
|
|
4961
|
-
"backup:
|
|
5198
|
+
"backup:destination:list": {
|
|
4962
5199
|
"aliases": [],
|
|
4963
5200
|
"args": {},
|
|
4964
|
-
"description": "
|
|
5201
|
+
"description": "List backup destinations configured in the API",
|
|
5202
|
+
"examples": [
|
|
5203
|
+
"<%= config.bin %> <%= command.id %>"
|
|
5204
|
+
],
|
|
4965
5205
|
"flags": {
|
|
4966
|
-
"
|
|
4967
|
-
"description": "
|
|
4968
|
-
"name": "
|
|
4969
|
-
"
|
|
4970
|
-
"
|
|
4971
|
-
"multiple": false,
|
|
4972
|
-
"type": "option"
|
|
4973
|
-
},
|
|
4974
|
-
"source-destination": {
|
|
4975
|
-
"description": "Source destination ID (where the artifact lives)",
|
|
4976
|
-
"name": "source-destination",
|
|
4977
|
-
"required": true,
|
|
4978
|
-
"hasDynamicHelp": false,
|
|
4979
|
-
"multiple": false,
|
|
4980
|
-
"type": "option"
|
|
5206
|
+
"json": {
|
|
5207
|
+
"description": "Output as JSON",
|
|
5208
|
+
"name": "json",
|
|
5209
|
+
"allowNo": false,
|
|
5210
|
+
"type": "boolean"
|
|
4981
5211
|
}
|
|
4982
5212
|
},
|
|
4983
5213
|
"hasDynamicHelp": false,
|
|
4984
5214
|
"hiddenAliases": [],
|
|
4985
|
-
"id": "backup:
|
|
5215
|
+
"id": "backup:destination:list",
|
|
4986
5216
|
"pluginAlias": "@flui-cloud/cli",
|
|
4987
5217
|
"pluginName": "@flui-cloud/cli",
|
|
4988
5218
|
"pluginType": "core",
|
|
@@ -4995,21 +5225,23 @@
|
|
|
4995
5225
|
"src",
|
|
4996
5226
|
"commands",
|
|
4997
5227
|
"backup",
|
|
4998
|
-
"
|
|
4999
|
-
"
|
|
5228
|
+
"destination",
|
|
5229
|
+
"list.js"
|
|
5000
5230
|
]
|
|
5001
5231
|
},
|
|
5002
|
-
"backup:
|
|
5232
|
+
"backup:destination:show": {
|
|
5003
5233
|
"aliases": [],
|
|
5004
5234
|
"args": {
|
|
5005
5235
|
"id": {
|
|
5236
|
+
"description": "Destination ID (UUID)",
|
|
5006
5237
|
"name": "id",
|
|
5007
5238
|
"required": true
|
|
5008
5239
|
}
|
|
5009
5240
|
},
|
|
5010
|
-
"description": "Show a
|
|
5241
|
+
"description": "Show a backup destination by ID",
|
|
5011
5242
|
"flags": {
|
|
5012
5243
|
"json": {
|
|
5244
|
+
"description": "Output as JSON",
|
|
5013
5245
|
"name": "json",
|
|
5014
5246
|
"allowNo": false,
|
|
5015
5247
|
"type": "boolean"
|
|
@@ -5017,7 +5249,7 @@
|
|
|
5017
5249
|
},
|
|
5018
5250
|
"hasDynamicHelp": false,
|
|
5019
5251
|
"hiddenAliases": [],
|
|
5020
|
-
"id": "backup:
|
|
5252
|
+
"id": "backup:destination:show",
|
|
5021
5253
|
"pluginAlias": "@flui-cloud/cli",
|
|
5022
5254
|
"pluginName": "@flui-cloud/cli",
|
|
5023
5255
|
"pluginType": "core",
|
|
@@ -5030,10 +5262,40 @@
|
|
|
5030
5262
|
"src",
|
|
5031
5263
|
"commands",
|
|
5032
5264
|
"backup",
|
|
5033
|
-
"
|
|
5265
|
+
"destination",
|
|
5034
5266
|
"show.js"
|
|
5035
5267
|
]
|
|
5036
5268
|
},
|
|
5269
|
+
"backup:destination:test": {
|
|
5270
|
+
"aliases": [],
|
|
5271
|
+
"args": {
|
|
5272
|
+
"id": {
|
|
5273
|
+
"description": "Destination ID",
|
|
5274
|
+
"name": "id",
|
|
5275
|
+
"required": true
|
|
5276
|
+
}
|
|
5277
|
+
},
|
|
5278
|
+
"description": "Test connectivity to a backup destination (S3 PUT/GET/DELETE round-trip)",
|
|
5279
|
+
"flags": {},
|
|
5280
|
+
"hasDynamicHelp": false,
|
|
5281
|
+
"hiddenAliases": [],
|
|
5282
|
+
"id": "backup:destination:test",
|
|
5283
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
5284
|
+
"pluginName": "@flui-cloud/cli",
|
|
5285
|
+
"pluginType": "core",
|
|
5286
|
+
"strict": true,
|
|
5287
|
+
"enableJsonFlag": false,
|
|
5288
|
+
"isESM": false,
|
|
5289
|
+
"relativePath": [
|
|
5290
|
+
"lib",
|
|
5291
|
+
"cli",
|
|
5292
|
+
"src",
|
|
5293
|
+
"commands",
|
|
5294
|
+
"backup",
|
|
5295
|
+
"destination",
|
|
5296
|
+
"test.js"
|
|
5297
|
+
]
|
|
5298
|
+
},
|
|
5037
5299
|
"integration:ghcr-pat:revoke": {
|
|
5038
5300
|
"aliases": [],
|
|
5039
5301
|
"args": {},
|
|
@@ -5132,19 +5394,96 @@
|
|
|
5132
5394
|
"status.js"
|
|
5133
5395
|
]
|
|
5134
5396
|
},
|
|
5135
|
-
"backup:
|
|
5397
|
+
"backup:restore:create": {
|
|
5136
5398
|
"aliases": [],
|
|
5137
5399
|
"args": {},
|
|
5138
|
-
"description": "
|
|
5400
|
+
"description": "Create a restore job",
|
|
5139
5401
|
"flags": {
|
|
5140
|
-
"
|
|
5141
|
-
"description": "
|
|
5142
|
-
"name": "
|
|
5402
|
+
"artifact": {
|
|
5403
|
+
"description": "Backup artifact ID",
|
|
5404
|
+
"name": "artifact",
|
|
5405
|
+
"required": true,
|
|
5406
|
+
"hasDynamicHelp": false,
|
|
5407
|
+
"multiple": false,
|
|
5408
|
+
"type": "option"
|
|
5409
|
+
},
|
|
5410
|
+
"source-destination": {
|
|
5411
|
+
"name": "source-destination",
|
|
5412
|
+
"required": true,
|
|
5413
|
+
"hasDynamicHelp": false,
|
|
5414
|
+
"multiple": false,
|
|
5415
|
+
"type": "option"
|
|
5416
|
+
},
|
|
5417
|
+
"target-cluster": {
|
|
5418
|
+
"description": "Cluster to restore into",
|
|
5419
|
+
"name": "target-cluster",
|
|
5420
|
+
"required": true,
|
|
5421
|
+
"hasDynamicHelp": false,
|
|
5422
|
+
"multiple": false,
|
|
5423
|
+
"type": "option"
|
|
5424
|
+
},
|
|
5425
|
+
"target-kind": {
|
|
5426
|
+
"name": "target-kind",
|
|
5143
5427
|
"required": true,
|
|
5144
5428
|
"hasDynamicHelp": false,
|
|
5145
5429
|
"multiple": false,
|
|
5430
|
+
"options": [
|
|
5431
|
+
"cluster",
|
|
5432
|
+
"namespace",
|
|
5433
|
+
"application",
|
|
5434
|
+
"observability"
|
|
5435
|
+
],
|
|
5436
|
+
"type": "option"
|
|
5437
|
+
},
|
|
5438
|
+
"target-namespace": {
|
|
5439
|
+
"description": "Required when --target-kind=namespace",
|
|
5440
|
+
"name": "target-namespace",
|
|
5441
|
+
"hasDynamicHelp": false,
|
|
5442
|
+
"multiple": false,
|
|
5443
|
+
"type": "option"
|
|
5444
|
+
},
|
|
5445
|
+
"target-app": {
|
|
5446
|
+
"description": "Required when --target-kind=application",
|
|
5447
|
+
"name": "target-app",
|
|
5448
|
+
"hasDynamicHelp": false,
|
|
5449
|
+
"multiple": false,
|
|
5146
5450
|
"type": "option"
|
|
5147
5451
|
},
|
|
5452
|
+
"strategy": {
|
|
5453
|
+
"name": "strategy",
|
|
5454
|
+
"hasDynamicHelp": false,
|
|
5455
|
+
"multiple": false,
|
|
5456
|
+
"options": [
|
|
5457
|
+
"velero_rebuild",
|
|
5458
|
+
"os_snapshot"
|
|
5459
|
+
],
|
|
5460
|
+
"type": "option"
|
|
5461
|
+
}
|
|
5462
|
+
},
|
|
5463
|
+
"hasDynamicHelp": false,
|
|
5464
|
+
"hiddenAliases": [],
|
|
5465
|
+
"id": "backup:restore:create",
|
|
5466
|
+
"pluginAlias": "@flui-cloud/cli",
|
|
5467
|
+
"pluginName": "@flui-cloud/cli",
|
|
5468
|
+
"pluginType": "core",
|
|
5469
|
+
"strict": true,
|
|
5470
|
+
"enableJsonFlag": false,
|
|
5471
|
+
"isESM": false,
|
|
5472
|
+
"relativePath": [
|
|
5473
|
+
"lib",
|
|
5474
|
+
"cli",
|
|
5475
|
+
"src",
|
|
5476
|
+
"commands",
|
|
5477
|
+
"backup",
|
|
5478
|
+
"restore",
|
|
5479
|
+
"create.js"
|
|
5480
|
+
]
|
|
5481
|
+
},
|
|
5482
|
+
"backup:restore:list": {
|
|
5483
|
+
"aliases": [],
|
|
5484
|
+
"args": {},
|
|
5485
|
+
"description": "List restore jobs",
|
|
5486
|
+
"flags": {
|
|
5148
5487
|
"json": {
|
|
5149
5488
|
"name": "json",
|
|
5150
5489
|
"allowNo": false,
|
|
@@ -5153,7 +5492,7 @@
|
|
|
5153
5492
|
},
|
|
5154
5493
|
"hasDynamicHelp": false,
|
|
5155
5494
|
"hiddenAliases": [],
|
|
5156
|
-
"id": "backup:
|
|
5495
|
+
"id": "backup:restore:list",
|
|
5157
5496
|
"pluginAlias": "@flui-cloud/cli",
|
|
5158
5497
|
"pluginName": "@flui-cloud/cli",
|
|
5159
5498
|
"pluginType": "core",
|
|
@@ -5166,18 +5505,26 @@
|
|
|
5166
5505
|
"src",
|
|
5167
5506
|
"commands",
|
|
5168
5507
|
"backup",
|
|
5169
|
-
"
|
|
5508
|
+
"restore",
|
|
5170
5509
|
"list.js"
|
|
5171
5510
|
]
|
|
5172
5511
|
},
|
|
5173
|
-
"backup:
|
|
5512
|
+
"backup:restore:preview": {
|
|
5174
5513
|
"aliases": [],
|
|
5175
5514
|
"args": {},
|
|
5176
|
-
"description": "
|
|
5515
|
+
"description": "Preview what a restore would touch (resources to be created/replaced)",
|
|
5177
5516
|
"flags": {
|
|
5178
|
-
"
|
|
5179
|
-
"description": "
|
|
5180
|
-
"name": "
|
|
5517
|
+
"artifact": {
|
|
5518
|
+
"description": "Backup artifact ID",
|
|
5519
|
+
"name": "artifact",
|
|
5520
|
+
"required": true,
|
|
5521
|
+
"hasDynamicHelp": false,
|
|
5522
|
+
"multiple": false,
|
|
5523
|
+
"type": "option"
|
|
5524
|
+
},
|
|
5525
|
+
"source-destination": {
|
|
5526
|
+
"description": "Source destination ID (where the artifact lives)",
|
|
5527
|
+
"name": "source-destination",
|
|
5181
5528
|
"required": true,
|
|
5182
5529
|
"hasDynamicHelp": false,
|
|
5183
5530
|
"multiple": false,
|
|
@@ -5186,7 +5533,7 @@
|
|
|
5186
5533
|
},
|
|
5187
5534
|
"hasDynamicHelp": false,
|
|
5188
5535
|
"hiddenAliases": [],
|
|
5189
|
-
"id": "backup:
|
|
5536
|
+
"id": "backup:restore:preview",
|
|
5190
5537
|
"pluginAlias": "@flui-cloud/cli",
|
|
5191
5538
|
"pluginName": "@flui-cloud/cli",
|
|
5192
5539
|
"pluginType": "core",
|
|
@@ -5199,11 +5546,11 @@
|
|
|
5199
5546
|
"src",
|
|
5200
5547
|
"commands",
|
|
5201
5548
|
"backup",
|
|
5202
|
-
"
|
|
5203
|
-
"
|
|
5549
|
+
"restore",
|
|
5550
|
+
"preview.js"
|
|
5204
5551
|
]
|
|
5205
5552
|
},
|
|
5206
|
-
"backup:
|
|
5553
|
+
"backup:restore:show": {
|
|
5207
5554
|
"aliases": [],
|
|
5208
5555
|
"args": {
|
|
5209
5556
|
"id": {
|
|
@@ -5211,7 +5558,7 @@
|
|
|
5211
5558
|
"required": true
|
|
5212
5559
|
}
|
|
5213
5560
|
},
|
|
5214
|
-
"description": "Show a
|
|
5561
|
+
"description": "Show a restore job by ID",
|
|
5215
5562
|
"flags": {
|
|
5216
5563
|
"json": {
|
|
5217
5564
|
"name": "json",
|
|
@@ -5221,7 +5568,7 @@
|
|
|
5221
5568
|
},
|
|
5222
5569
|
"hasDynamicHelp": false,
|
|
5223
5570
|
"hiddenAliases": [],
|
|
5224
|
-
"id": "backup:
|
|
5571
|
+
"id": "backup:restore:show",
|
|
5225
5572
|
"pluginAlias": "@flui-cloud/cli",
|
|
5226
5573
|
"pluginName": "@flui-cloud/cli",
|
|
5227
5574
|
"pluginType": "core",
|
|
@@ -5234,10 +5581,10 @@
|
|
|
5234
5581
|
"src",
|
|
5235
5582
|
"commands",
|
|
5236
5583
|
"backup",
|
|
5237
|
-
"
|
|
5584
|
+
"restore",
|
|
5238
5585
|
"show.js"
|
|
5239
5586
|
]
|
|
5240
5587
|
}
|
|
5241
5588
|
},
|
|
5242
|
-
"version": "0.0
|
|
5589
|
+
"version": "0.1.0"
|
|
5243
5590
|
}
|