@xano/cli 0.0.53 → 0.0.54

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.
Files changed (2) hide show
  1. package/oclif.manifest.json +1478 -1478
  2. package/package.json +1 -1
@@ -86,20 +86,14 @@
86
86
  "index.js"
87
87
  ]
88
88
  },
89
- "branch:edit": {
89
+ "branch:create": {
90
90
  "aliases": [],
91
- "args": {
92
- "branch_label": {
93
- "description": "Branch label to edit (cannot edit \"v1\" label)",
94
- "name": "branch_label",
95
- "required": true
96
- }
97
- },
98
- "description": "Update an existing branch (cannot update \"v1\" label)",
91
+ "args": {},
92
+ "description": "Create a new branch by cloning from an existing branch",
99
93
  "examples": [
100
- "$ xano branch edit dev --label development\nUpdated branch: development\n",
101
- "$ xano branch edit feature-auth -l feature-authentication --color \"#ff5733\"\nUpdated branch: feature-authentication\n Color: #ff5733\n",
102
- "$ xano branch edit staging --description \"Staging environment\" -o json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false\n}\n"
94
+ "$ xano branch create --label dev\nCreated branch: dev\n Cloned from: v1\n",
95
+ "$ xano branch create -l feature-auth -s dev -d \"Authentication feature\"\nCreated branch: feature-auth\n Cloned from: dev\n Description: Authentication feature\n",
96
+ "$ xano branch create --label staging --color \"#ebc346\" --output json\n{\n \"created_at\": \"2024-02-11T10:00:00Z\",\n \"label\": \"staging\",\n \"backup\": false,\n \"live\": false\n}\n"
103
97
  ],
104
98
  "flags": {
105
99
  "profile": {
@@ -123,7 +117,7 @@
123
117
  },
124
118
  "color": {
125
119
  "char": "c",
126
- "description": "New color hex code for the branch (e.g., \"#ff5733\")",
120
+ "description": "Color hex code for the branch (e.g., \"#ebc346\")",
127
121
  "name": "color",
128
122
  "required": false,
129
123
  "hasDynamicHelp": false,
@@ -132,7 +126,7 @@
132
126
  },
133
127
  "description": {
134
128
  "char": "d",
135
- "description": "New description for the branch",
129
+ "description": "Description for the new branch",
136
130
  "name": "description",
137
131
  "required": false,
138
132
  "hasDynamicHelp": false,
@@ -141,9 +135,9 @@
141
135
  },
142
136
  "label": {
143
137
  "char": "l",
144
- "description": "New label for the branch",
138
+ "description": "Label for the new branch",
145
139
  "name": "label",
146
- "required": false,
140
+ "required": true,
147
141
  "hasDynamicHelp": false,
148
142
  "multiple": false,
149
143
  "type": "option"
@@ -162,6 +156,16 @@
162
156
  ],
163
157
  "type": "option"
164
158
  },
159
+ "source": {
160
+ "char": "s",
161
+ "description": "Source branch to clone from (defaults to \"v1\")",
162
+ "name": "source",
163
+ "required": false,
164
+ "default": "v1",
165
+ "hasDynamicHelp": false,
166
+ "multiple": false,
167
+ "type": "option"
168
+ },
165
169
  "workspace": {
166
170
  "char": "w",
167
171
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -174,7 +178,7 @@
174
178
  },
175
179
  "hasDynamicHelp": false,
176
180
  "hiddenAliases": [],
177
- "id": "branch:edit",
181
+ "id": "branch:create",
178
182
  "pluginAlias": "@xano/cli",
179
183
  "pluginName": "@xano/cli",
180
184
  "pluginType": "core",
@@ -185,24 +189,24 @@
185
189
  "dist",
186
190
  "commands",
187
191
  "branch",
188
- "edit",
192
+ "create",
189
193
  "index.js"
190
194
  ]
191
195
  },
192
- "branch:delete": {
196
+ "branch:edit": {
193
197
  "aliases": [],
194
198
  "args": {
195
199
  "branch_label": {
196
- "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
200
+ "description": "Branch label to edit (cannot edit \"v1\" label)",
197
201
  "name": "branch_label",
198
202
  "required": true
199
203
  }
200
204
  },
201
- "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
205
+ "description": "Update an existing branch (cannot update \"v1\" label)",
202
206
  "examples": [
203
- "$ xano branch delete feature-old\nAre you sure you want to delete branch 'feature-old'? This action cannot be undone. (y/N) y\nDeleted branch: feature-old\n",
204
- "$ xano branch delete dev --force\nDeleted branch: dev\n",
205
- "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
207
+ "$ xano branch edit dev --label development\nUpdated branch: development\n",
208
+ "$ xano branch edit feature-auth -l feature-authentication --color \"#ff5733\"\nUpdated branch: feature-authentication\n Color: #ff5733\n",
209
+ "$ xano branch edit staging --description \"Staging environment\" -o json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false\n}\n"
206
210
  ],
207
211
  "flags": {
208
212
  "profile": {
@@ -224,13 +228,32 @@
224
228
  "allowNo": false,
225
229
  "type": "boolean"
226
230
  },
227
- "force": {
228
- "char": "f",
229
- "description": "Skip confirmation prompt",
230
- "name": "force",
231
+ "color": {
232
+ "char": "c",
233
+ "description": "New color hex code for the branch (e.g., \"#ff5733\")",
234
+ "name": "color",
231
235
  "required": false,
232
- "allowNo": false,
233
- "type": "boolean"
236
+ "hasDynamicHelp": false,
237
+ "multiple": false,
238
+ "type": "option"
239
+ },
240
+ "description": {
241
+ "char": "d",
242
+ "description": "New description for the branch",
243
+ "name": "description",
244
+ "required": false,
245
+ "hasDynamicHelp": false,
246
+ "multiple": false,
247
+ "type": "option"
248
+ },
249
+ "label": {
250
+ "char": "l",
251
+ "description": "New label for the branch",
252
+ "name": "label",
253
+ "required": false,
254
+ "hasDynamicHelp": false,
255
+ "multiple": false,
256
+ "type": "option"
234
257
  },
235
258
  "output": {
236
259
  "char": "o",
@@ -258,7 +281,7 @@
258
281
  },
259
282
  "hasDynamicHelp": false,
260
283
  "hiddenAliases": [],
261
- "id": "branch:delete",
284
+ "id": "branch:edit",
262
285
  "pluginAlias": "@xano/cli",
263
286
  "pluginName": "@xano/cli",
264
287
  "pluginType": "core",
@@ -269,24 +292,24 @@
269
292
  "dist",
270
293
  "commands",
271
294
  "branch",
272
- "delete",
295
+ "edit",
273
296
  "index.js"
274
297
  ]
275
298
  },
276
- "branch:get": {
299
+ "branch:delete": {
277
300
  "aliases": [],
278
301
  "args": {
279
302
  "branch_label": {
280
- "description": "Branch label (e.g., \"v1\", \"dev\")",
303
+ "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
281
304
  "name": "branch_label",
282
305
  "required": true
283
306
  }
284
307
  },
285
- "description": "Get details for a specific branch",
308
+ "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
286
309
  "examples": [
287
- "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
288
- "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
289
- "$ xano branch get staging --output json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false,\n \"live\": false\n}\n"
310
+ "$ xano branch delete feature-old\nAre you sure you want to delete branch 'feature-old'? This action cannot be undone. (y/N) y\nDeleted branch: feature-old\n",
311
+ "$ xano branch delete dev --force\nDeleted branch: dev\n",
312
+ "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
290
313
  ],
291
314
  "flags": {
292
315
  "profile": {
@@ -308,6 +331,14 @@
308
331
  "allowNo": false,
309
332
  "type": "boolean"
310
333
  },
334
+ "force": {
335
+ "char": "f",
336
+ "description": "Skip confirmation prompt",
337
+ "name": "force",
338
+ "required": false,
339
+ "allowNo": false,
340
+ "type": "boolean"
341
+ },
311
342
  "output": {
312
343
  "char": "o",
313
344
  "description": "Output format",
@@ -334,7 +365,7 @@
334
365
  },
335
366
  "hasDynamicHelp": false,
336
367
  "hiddenAliases": [],
337
- "id": "branch:get",
368
+ "id": "branch:delete",
338
369
  "pluginAlias": "@xano/cli",
339
370
  "pluginName": "@xano/cli",
340
371
  "pluginType": "core",
@@ -345,18 +376,24 @@
345
376
  "dist",
346
377
  "commands",
347
378
  "branch",
348
- "get",
379
+ "delete",
349
380
  "index.js"
350
381
  ]
351
382
  },
352
- "branch:create": {
383
+ "branch:get": {
353
384
  "aliases": [],
354
- "args": {},
355
- "description": "Create a new branch by cloning from an existing branch",
385
+ "args": {
386
+ "branch_label": {
387
+ "description": "Branch label (e.g., \"v1\", \"dev\")",
388
+ "name": "branch_label",
389
+ "required": true
390
+ }
391
+ },
392
+ "description": "Get details for a specific branch",
356
393
  "examples": [
357
- "$ xano branch create --label dev\nCreated branch: dev\n Cloned from: v1\n",
358
- "$ xano branch create -l feature-auth -s dev -d \"Authentication feature\"\nCreated branch: feature-auth\n Cloned from: dev\n Description: Authentication feature\n",
359
- "$ xano branch create --label staging --color \"#ebc346\" --output json\n{\n \"created_at\": \"2024-02-11T10:00:00Z\",\n \"label\": \"staging\",\n \"backup\": false,\n \"live\": false\n}\n"
394
+ "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
395
+ "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
396
+ "$ xano branch get staging --output json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false,\n \"live\": false\n}\n"
360
397
  ],
361
398
  "flags": {
362
399
  "profile": {
@@ -378,33 +415,6 @@
378
415
  "allowNo": false,
379
416
  "type": "boolean"
380
417
  },
381
- "color": {
382
- "char": "c",
383
- "description": "Color hex code for the branch (e.g., \"#ebc346\")",
384
- "name": "color",
385
- "required": false,
386
- "hasDynamicHelp": false,
387
- "multiple": false,
388
- "type": "option"
389
- },
390
- "description": {
391
- "char": "d",
392
- "description": "Description for the new branch",
393
- "name": "description",
394
- "required": false,
395
- "hasDynamicHelp": false,
396
- "multiple": false,
397
- "type": "option"
398
- },
399
- "label": {
400
- "char": "l",
401
- "description": "Label for the new branch",
402
- "name": "label",
403
- "required": true,
404
- "hasDynamicHelp": false,
405
- "multiple": false,
406
- "type": "option"
407
- },
408
418
  "output": {
409
419
  "char": "o",
410
420
  "description": "Output format",
@@ -419,16 +429,6 @@
419
429
  ],
420
430
  "type": "option"
421
431
  },
422
- "source": {
423
- "char": "s",
424
- "description": "Source branch to clone from (defaults to \"v1\")",
425
- "name": "source",
426
- "required": false,
427
- "default": "v1",
428
- "hasDynamicHelp": false,
429
- "multiple": false,
430
- "type": "option"
431
- },
432
432
  "workspace": {
433
433
  "char": "w",
434
434
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -441,7 +441,7 @@
441
441
  },
442
442
  "hasDynamicHelp": false,
443
443
  "hiddenAliases": [],
444
- "id": "branch:create",
444
+ "id": "branch:get",
445
445
  "pluginAlias": "@xano/cli",
446
446
  "pluginName": "@xano/cli",
447
447
  "pluginType": "core",
@@ -452,7 +452,7 @@
452
452
  "dist",
453
453
  "commands",
454
454
  "branch",
455
- "create",
455
+ "get",
456
456
  "index.js"
457
457
  ]
458
458
  },
@@ -1306,67 +1306,6 @@
1306
1306
  "index.js"
1307
1307
  ]
1308
1308
  },
1309
- "profile:get": {
1310
- "aliases": [],
1311
- "args": {},
1312
- "description": "Get the current default profile name",
1313
- "examples": [
1314
- "$ xano profile get\nproduction\n"
1315
- ],
1316
- "flags": {},
1317
- "hasDynamicHelp": false,
1318
- "hiddenAliases": [],
1319
- "id": "profile:get",
1320
- "pluginAlias": "@xano/cli",
1321
- "pluginName": "@xano/cli",
1322
- "pluginType": "core",
1323
- "strict": true,
1324
- "enableJsonFlag": false,
1325
- "isESM": true,
1326
- "relativePath": [
1327
- "dist",
1328
- "commands",
1329
- "profile",
1330
- "get",
1331
- "index.js"
1332
- ]
1333
- },
1334
- "profile:list": {
1335
- "aliases": [],
1336
- "args": {},
1337
- "description": "List all available profile configurations",
1338
- "examples": [
1339
- "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1340
- "$ xano profile:list --details\nAvailable profiles:\n\nProfile: default\n Account Origin: https://account.xano.com\n Instance Origin: https://instance.xano.com\n Access Token: ***...***\n Workspace: my-workspace\n Branch: main\n Project: my-project\n\nProfile: production\n Account Origin: https://account.xano.com\n Instance Origin: https://prod-instance.xano.com\n Access Token: ***...***\n",
1341
- "$ xano profile:list -d\nAvailable profiles:\n\nProfile: default\n Account Origin: https://account.xano.com\n Instance Origin: https://instance.xano.com\n Access Token: ***...***\n Workspace: my-workspace\n Branch: main\n Project: my-project\n"
1342
- ],
1343
- "flags": {
1344
- "details": {
1345
- "char": "d",
1346
- "description": "Show detailed information for each profile",
1347
- "name": "details",
1348
- "required": false,
1349
- "allowNo": false,
1350
- "type": "boolean"
1351
- }
1352
- },
1353
- "hasDynamicHelp": false,
1354
- "hiddenAliases": [],
1355
- "id": "profile:list",
1356
- "pluginAlias": "@xano/cli",
1357
- "pluginName": "@xano/cli",
1358
- "pluginType": "core",
1359
- "strict": true,
1360
- "enableJsonFlag": false,
1361
- "isESM": true,
1362
- "relativePath": [
1363
- "dist",
1364
- "commands",
1365
- "profile",
1366
- "list",
1367
- "index.js"
1368
- ]
1369
- },
1370
1309
  "profile:edit": {
1371
1310
  "aliases": [],
1372
1311
  "args": {
@@ -1481,32 +1420,93 @@
1481
1420
  "index.js"
1482
1421
  ]
1483
1422
  },
1484
- "profile:me": {
1423
+ "profile:get": {
1485
1424
  "aliases": [],
1486
1425
  "args": {},
1487
- "description": "Get information about the currently authenticated user",
1426
+ "description": "Get the current default profile name",
1488
1427
  "examples": [
1489
- "$ xano profile:me\nUser Information:\n ID: 1\n Name: John Doe\n Email: john@example.com\n",
1490
- "$ xano profile:me --profile production\nUser Information:\n ID: 42\n Name: Admin User\n Email: admin@example.com\n",
1491
- "$ xano profile:me --output json\n{\n \"id\": 1,\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\"\n}\n"
1428
+ "$ xano profile get\nproduction\n"
1492
1429
  ],
1493
- "flags": {
1494
- "profile": {
1495
- "char": "p",
1496
- "description": "Profile to use (uses default profile if not specified)",
1497
- "env": "XANO_PROFILE",
1498
- "name": "profile",
1499
- "required": false,
1500
- "hasDynamicHelp": false,
1501
- "multiple": false,
1502
- "type": "option"
1503
- },
1504
- "verbose": {
1505
- "char": "v",
1506
- "description": "Show detailed request/response information",
1507
- "env": "XANO_VERBOSE",
1508
- "name": "verbose",
1509
- "required": false,
1430
+ "flags": {},
1431
+ "hasDynamicHelp": false,
1432
+ "hiddenAliases": [],
1433
+ "id": "profile:get",
1434
+ "pluginAlias": "@xano/cli",
1435
+ "pluginName": "@xano/cli",
1436
+ "pluginType": "core",
1437
+ "strict": true,
1438
+ "enableJsonFlag": false,
1439
+ "isESM": true,
1440
+ "relativePath": [
1441
+ "dist",
1442
+ "commands",
1443
+ "profile",
1444
+ "get",
1445
+ "index.js"
1446
+ ]
1447
+ },
1448
+ "profile:list": {
1449
+ "aliases": [],
1450
+ "args": {},
1451
+ "description": "List all available profile configurations",
1452
+ "examples": [
1453
+ "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1454
+ "$ xano profile:list --details\nAvailable profiles:\n\nProfile: default\n Account Origin: https://account.xano.com\n Instance Origin: https://instance.xano.com\n Access Token: ***...***\n Workspace: my-workspace\n Branch: main\n Project: my-project\n\nProfile: production\n Account Origin: https://account.xano.com\n Instance Origin: https://prod-instance.xano.com\n Access Token: ***...***\n",
1455
+ "$ xano profile:list -d\nAvailable profiles:\n\nProfile: default\n Account Origin: https://account.xano.com\n Instance Origin: https://instance.xano.com\n Access Token: ***...***\n Workspace: my-workspace\n Branch: main\n Project: my-project\n"
1456
+ ],
1457
+ "flags": {
1458
+ "details": {
1459
+ "char": "d",
1460
+ "description": "Show detailed information for each profile",
1461
+ "name": "details",
1462
+ "required": false,
1463
+ "allowNo": false,
1464
+ "type": "boolean"
1465
+ }
1466
+ },
1467
+ "hasDynamicHelp": false,
1468
+ "hiddenAliases": [],
1469
+ "id": "profile:list",
1470
+ "pluginAlias": "@xano/cli",
1471
+ "pluginName": "@xano/cli",
1472
+ "pluginType": "core",
1473
+ "strict": true,
1474
+ "enableJsonFlag": false,
1475
+ "isESM": true,
1476
+ "relativePath": [
1477
+ "dist",
1478
+ "commands",
1479
+ "profile",
1480
+ "list",
1481
+ "index.js"
1482
+ ]
1483
+ },
1484
+ "profile:me": {
1485
+ "aliases": [],
1486
+ "args": {},
1487
+ "description": "Get information about the currently authenticated user",
1488
+ "examples": [
1489
+ "$ xano profile:me\nUser Information:\n ID: 1\n Name: John Doe\n Email: john@example.com\n",
1490
+ "$ xano profile:me --profile production\nUser Information:\n ID: 42\n Name: Admin User\n Email: admin@example.com\n",
1491
+ "$ xano profile:me --output json\n{\n \"id\": 1,\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\"\n}\n"
1492
+ ],
1493
+ "flags": {
1494
+ "profile": {
1495
+ "char": "p",
1496
+ "description": "Profile to use (uses default profile if not specified)",
1497
+ "env": "XANO_PROFILE",
1498
+ "name": "profile",
1499
+ "required": false,
1500
+ "hasDynamicHelp": false,
1501
+ "multiple": false,
1502
+ "type": "option"
1503
+ },
1504
+ "verbose": {
1505
+ "char": "v",
1506
+ "description": "Show detailed request/response information",
1507
+ "env": "XANO_VERBOSE",
1508
+ "name": "verbose",
1509
+ "required": false,
1510
1510
  "allowNo": false,
1511
1511
  "type": "boolean"
1512
1512
  },
@@ -1625,73 +1625,29 @@
1625
1625
  "index.js"
1626
1626
  ]
1627
1627
  },
1628
- "static_host:list": {
1628
+ "profile:wizard": {
1629
1629
  "aliases": [],
1630
1630
  "args": {},
1631
- "description": "List all static hosts in a workspace from the Xano Metadata API",
1631
+ "description": "Create a new profile configuration using an interactive wizard",
1632
1632
  "examples": [
1633
- "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
1634
- "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
1635
- "$ xano static_host:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"my-static-host\",\n \"domain\": \"example.com\"\n }\n]\n",
1636
- "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
1633
+ "$ xano profile:wizard\nWelcome to the Xano Profile Wizard!\n? Enter your access token: ***...***\n? Select an instance:\n > Production (https://app.xano.com)\n Staging (https://staging.xano.com)\n? Profile name: production\nProfile 'production' created successfully at ~/.xano/credentials.yaml\n"
1637
1634
  ],
1638
1635
  "flags": {
1639
- "profile": {
1640
- "char": "p",
1641
- "description": "Profile to use (uses default profile if not specified)",
1642
- "env": "XANO_PROFILE",
1643
- "name": "profile",
1636
+ "name": {
1637
+ "char": "n",
1638
+ "description": "Profile name (skip prompt if provided)",
1639
+ "name": "name",
1644
1640
  "required": false,
1645
1641
  "hasDynamicHelp": false,
1646
1642
  "multiple": false,
1647
1643
  "type": "option"
1648
1644
  },
1649
- "verbose": {
1650
- "char": "v",
1651
- "description": "Show detailed request/response information",
1652
- "env": "XANO_VERBOSE",
1653
- "name": "verbose",
1654
- "required": false,
1655
- "allowNo": false,
1656
- "type": "boolean"
1657
- },
1658
- "output": {
1645
+ "origin": {
1659
1646
  "char": "o",
1660
- "description": "Output format",
1661
- "name": "output",
1662
- "required": false,
1663
- "default": "summary",
1664
- "hasDynamicHelp": false,
1665
- "multiple": false,
1666
- "options": [
1667
- "summary",
1668
- "json"
1669
- ],
1670
- "type": "option"
1671
- },
1672
- "page": {
1673
- "description": "Page number for pagination",
1674
- "name": "page",
1675
- "required": false,
1676
- "default": 1,
1677
- "hasDynamicHelp": false,
1678
- "multiple": false,
1679
- "type": "option"
1680
- },
1681
- "per_page": {
1682
- "description": "Number of results per page",
1683
- "name": "per_page",
1684
- "required": false,
1685
- "default": 50,
1686
- "hasDynamicHelp": false,
1687
- "multiple": false,
1688
- "type": "option"
1689
- },
1690
- "workspace": {
1691
- "char": "w",
1692
- "description": "Workspace ID (optional if set in profile)",
1693
- "name": "workspace",
1647
+ "description": "Xano instance origin URL",
1648
+ "name": "origin",
1694
1649
  "required": false,
1650
+ "default": "https://app.xano.com",
1695
1651
  "hasDynamicHelp": false,
1696
1652
  "multiple": false,
1697
1653
  "type": "option"
@@ -1699,7 +1655,7 @@
1699
1655
  },
1700
1656
  "hasDynamicHelp": false,
1701
1657
  "hiddenAliases": [],
1702
- "id": "static_host:list",
1658
+ "id": "profile:wizard",
1703
1659
  "pluginAlias": "@xano/cli",
1704
1660
  "pluginName": "@xano/cli",
1705
1661
  "pluginType": "core",
@@ -1709,34 +1665,82 @@
1709
1665
  "relativePath": [
1710
1666
  "dist",
1711
1667
  "commands",
1712
- "static_host",
1713
- "list",
1668
+ "profile",
1669
+ "wizard",
1714
1670
  "index.js"
1715
1671
  ]
1716
1672
  },
1717
- "profile:wizard": {
1673
+ "release:edit": {
1718
1674
  "aliases": [],
1719
- "args": {},
1720
- "description": "Create a new profile configuration using an interactive wizard",
1675
+ "args": {
1676
+ "release_name": {
1677
+ "description": "Release name to edit",
1678
+ "name": "release_name",
1679
+ "required": true
1680
+ }
1681
+ },
1682
+ "description": "Edit an existing release",
1721
1683
  "examples": [
1722
- "$ xano profile:wizard\nWelcome to the Xano Profile Wizard!\n? Enter your access token: ***...***\n? Select an instance:\n > Production (https://app.xano.com)\n Staging (https://staging.xano.com)\n? Profile name: production\nProfile 'production' created successfully at ~/.xano/credentials.yaml\n"
1684
+ "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
1685
+ "$ xano release edit v1.0 --description \"New description\" -o json"
1723
1686
  ],
1724
1687
  "flags": {
1688
+ "profile": {
1689
+ "char": "p",
1690
+ "description": "Profile to use (uses default profile if not specified)",
1691
+ "env": "XANO_PROFILE",
1692
+ "name": "profile",
1693
+ "required": false,
1694
+ "hasDynamicHelp": false,
1695
+ "multiple": false,
1696
+ "type": "option"
1697
+ },
1698
+ "verbose": {
1699
+ "char": "v",
1700
+ "description": "Show detailed request/response information",
1701
+ "env": "XANO_VERBOSE",
1702
+ "name": "verbose",
1703
+ "required": false,
1704
+ "allowNo": false,
1705
+ "type": "boolean"
1706
+ },
1707
+ "description": {
1708
+ "char": "d",
1709
+ "description": "New description",
1710
+ "name": "description",
1711
+ "required": false,
1712
+ "hasDynamicHelp": false,
1713
+ "multiple": false,
1714
+ "type": "option"
1715
+ },
1725
1716
  "name": {
1726
1717
  "char": "n",
1727
- "description": "Profile name (skip prompt if provided)",
1718
+ "description": "New name for the release",
1728
1719
  "name": "name",
1729
1720
  "required": false,
1730
1721
  "hasDynamicHelp": false,
1731
1722
  "multiple": false,
1732
1723
  "type": "option"
1733
1724
  },
1734
- "origin": {
1725
+ "output": {
1735
1726
  "char": "o",
1736
- "description": "Xano instance origin URL",
1737
- "name": "origin",
1727
+ "description": "Output format",
1728
+ "name": "output",
1729
+ "required": false,
1730
+ "default": "summary",
1731
+ "hasDynamicHelp": false,
1732
+ "multiple": false,
1733
+ "options": [
1734
+ "summary",
1735
+ "json"
1736
+ ],
1737
+ "type": "option"
1738
+ },
1739
+ "workspace": {
1740
+ "char": "w",
1741
+ "description": "Workspace ID (uses profile workspace if not provided)",
1742
+ "name": "workspace",
1738
1743
  "required": false,
1739
- "default": "https://app.xano.com",
1740
1744
  "hasDynamicHelp": false,
1741
1745
  "multiple": false,
1742
1746
  "type": "option"
@@ -1744,7 +1748,7 @@
1744
1748
  },
1745
1749
  "hasDynamicHelp": false,
1746
1750
  "hiddenAliases": [],
1747
- "id": "profile:wizard",
1751
+ "id": "release:edit",
1748
1752
  "pluginAlias": "@xano/cli",
1749
1753
  "pluginName": "@xano/cli",
1750
1754
  "pluginType": "core",
@@ -1754,8 +1758,8 @@
1754
1758
  "relativePath": [
1755
1759
  "dist",
1756
1760
  "commands",
1757
- "profile",
1758
- "wizard",
1761
+ "release",
1762
+ "edit",
1759
1763
  "index.js"
1760
1764
  ]
1761
1765
  },
@@ -1870,20 +1874,20 @@
1870
1874
  "index.js"
1871
1875
  ]
1872
1876
  },
1873
- "release:delete": {
1877
+ "release:export": {
1874
1878
  "aliases": [],
1875
1879
  "args": {
1876
1880
  "release_name": {
1877
- "description": "Release name to delete",
1881
+ "description": "Release name to export",
1878
1882
  "name": "release_name",
1879
1883
  "required": true
1880
1884
  }
1881
1885
  },
1882
- "description": "Delete a release permanently. This action cannot be undone.",
1886
+ "description": "Export (download) a release to a local file",
1883
1887
  "examples": [
1884
- "$ xano release delete v1.0\nAre you sure you want to delete release 'v1.0'? This action cannot be undone. (y/N) y\nDeleted release 'v1.0'\n",
1885
- "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1886
- "$ xano release delete v1.0 -f -o json"
1888
+ "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
1889
+ "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
1890
+ "$ xano release export v1.0 -o json"
1887
1891
  ],
1888
1892
  "flags": {
1889
1893
  "profile": {
@@ -1905,18 +1909,10 @@
1905
1909
  "allowNo": false,
1906
1910
  "type": "boolean"
1907
1911
  },
1908
- "force": {
1909
- "char": "f",
1910
- "description": "Skip confirmation prompt",
1911
- "name": "force",
1912
- "required": false,
1913
- "allowNo": false,
1914
- "type": "boolean"
1915
- },
1916
- "output": {
1912
+ "format": {
1917
1913
  "char": "o",
1918
1914
  "description": "Output format",
1919
- "name": "output",
1915
+ "name": "format",
1920
1916
  "required": false,
1921
1917
  "default": "summary",
1922
1918
  "hasDynamicHelp": false,
@@ -1927,6 +1923,14 @@
1927
1923
  ],
1928
1924
  "type": "option"
1929
1925
  },
1926
+ "output": {
1927
+ "description": "Output file path (defaults to ./release-{name}.tar.gz)",
1928
+ "name": "output",
1929
+ "required": false,
1930
+ "hasDynamicHelp": false,
1931
+ "multiple": false,
1932
+ "type": "option"
1933
+ },
1930
1934
  "workspace": {
1931
1935
  "char": "w",
1932
1936
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -1939,7 +1943,7 @@
1939
1943
  },
1940
1944
  "hasDynamicHelp": false,
1941
1945
  "hiddenAliases": [],
1942
- "id": "release:delete",
1946
+ "id": "release:export",
1943
1947
  "pluginAlias": "@xano/cli",
1944
1948
  "pluginName": "@xano/cli",
1945
1949
  "pluginType": "core",
@@ -1950,23 +1954,23 @@
1950
1954
  "dist",
1951
1955
  "commands",
1952
1956
  "release",
1953
- "delete",
1957
+ "export",
1954
1958
  "index.js"
1955
1959
  ]
1956
1960
  },
1957
- "release:edit": {
1961
+ "release:get": {
1958
1962
  "aliases": [],
1959
1963
  "args": {
1960
1964
  "release_name": {
1961
- "description": "Release name to edit",
1965
+ "description": "Release name to retrieve",
1962
1966
  "name": "release_name",
1963
1967
  "required": true
1964
1968
  }
1965
1969
  },
1966
- "description": "Edit an existing release",
1970
+ "description": "Get details of a specific release",
1967
1971
  "examples": [
1968
- "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
1969
- "$ xano release edit v1.0 --description \"New description\" -o json"
1972
+ "$ xano release get v1.0\nRelease: v1.0 - ID: 10\n Branch: main\n Description: Initial release\n Hotfix: false\n",
1973
+ "$ xano release get v1.0 -w 5 -o json"
1970
1974
  ],
1971
1975
  "flags": {
1972
1976
  "profile": {
@@ -1988,24 +1992,6 @@
1988
1992
  "allowNo": false,
1989
1993
  "type": "boolean"
1990
1994
  },
1991
- "description": {
1992
- "char": "d",
1993
- "description": "New description",
1994
- "name": "description",
1995
- "required": false,
1996
- "hasDynamicHelp": false,
1997
- "multiple": false,
1998
- "type": "option"
1999
- },
2000
- "name": {
2001
- "char": "n",
2002
- "description": "New name for the release",
2003
- "name": "name",
2004
- "required": false,
2005
- "hasDynamicHelp": false,
2006
- "multiple": false,
2007
- "type": "option"
2008
- },
2009
1995
  "output": {
2010
1996
  "char": "o",
2011
1997
  "description": "Output format",
@@ -2032,7 +2018,7 @@
2032
2018
  },
2033
2019
  "hasDynamicHelp": false,
2034
2020
  "hiddenAliases": [],
2035
- "id": "release:edit",
2021
+ "id": "release:get",
2036
2022
  "pluginAlias": "@xano/cli",
2037
2023
  "pluginName": "@xano/cli",
2038
2024
  "pluginType": "core",
@@ -2043,24 +2029,24 @@
2043
2029
  "dist",
2044
2030
  "commands",
2045
2031
  "release",
2046
- "edit",
2032
+ "get",
2047
2033
  "index.js"
2048
2034
  ]
2049
2035
  },
2050
- "release:export": {
2036
+ "release:delete": {
2051
2037
  "aliases": [],
2052
2038
  "args": {
2053
2039
  "release_name": {
2054
- "description": "Release name to export",
2040
+ "description": "Release name to delete",
2055
2041
  "name": "release_name",
2056
2042
  "required": true
2057
2043
  }
2058
2044
  },
2059
- "description": "Export (download) a release to a local file",
2045
+ "description": "Delete a release permanently. This action cannot be undone.",
2060
2046
  "examples": [
2061
- "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
2062
- "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
2063
- "$ xano release export v1.0 -o json"
2047
+ "$ xano release delete v1.0\nAre you sure you want to delete release 'v1.0'? This action cannot be undone. (y/N) y\nDeleted release 'v1.0'\n",
2048
+ "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
2049
+ "$ xano release delete v1.0 -f -o json"
2064
2050
  ],
2065
2051
  "flags": {
2066
2052
  "profile": {
@@ -2082,10 +2068,18 @@
2082
2068
  "allowNo": false,
2083
2069
  "type": "boolean"
2084
2070
  },
2085
- "format": {
2071
+ "force": {
2072
+ "char": "f",
2073
+ "description": "Skip confirmation prompt",
2074
+ "name": "force",
2075
+ "required": false,
2076
+ "allowNo": false,
2077
+ "type": "boolean"
2078
+ },
2079
+ "output": {
2086
2080
  "char": "o",
2087
2081
  "description": "Output format",
2088
- "name": "format",
2082
+ "name": "output",
2089
2083
  "required": false,
2090
2084
  "default": "summary",
2091
2085
  "hasDynamicHelp": false,
@@ -2096,14 +2090,6 @@
2096
2090
  ],
2097
2091
  "type": "option"
2098
2092
  },
2099
- "output": {
2100
- "description": "Output file path (defaults to ./release-{name}.tar.gz)",
2101
- "name": "output",
2102
- "required": false,
2103
- "hasDynamicHelp": false,
2104
- "multiple": false,
2105
- "type": "option"
2106
- },
2107
2093
  "workspace": {
2108
2094
  "char": "w",
2109
2095
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2116,7 +2102,7 @@
2116
2102
  },
2117
2103
  "hasDynamicHelp": false,
2118
2104
  "hiddenAliases": [],
2119
- "id": "release:export",
2105
+ "id": "release:delete",
2120
2106
  "pluginAlias": "@xano/cli",
2121
2107
  "pluginName": "@xano/cli",
2122
2108
  "pluginType": "core",
@@ -2127,7 +2113,7 @@
2127
2113
  "dist",
2128
2114
  "commands",
2129
2115
  "release",
2130
- "export",
2116
+ "delete",
2131
2117
  "index.js"
2132
2118
  ]
2133
2119
  },
@@ -2363,81 +2349,6 @@
2363
2349
  "index.js"
2364
2350
  ]
2365
2351
  },
2366
- "release:get": {
2367
- "aliases": [],
2368
- "args": {
2369
- "release_name": {
2370
- "description": "Release name to retrieve",
2371
- "name": "release_name",
2372
- "required": true
2373
- }
2374
- },
2375
- "description": "Get details of a specific release",
2376
- "examples": [
2377
- "$ xano release get v1.0\nRelease: v1.0 - ID: 10\n Branch: main\n Description: Initial release\n Hotfix: false\n",
2378
- "$ xano release get v1.0 -w 5 -o json"
2379
- ],
2380
- "flags": {
2381
- "profile": {
2382
- "char": "p",
2383
- "description": "Profile to use (uses default profile if not specified)",
2384
- "env": "XANO_PROFILE",
2385
- "name": "profile",
2386
- "required": false,
2387
- "hasDynamicHelp": false,
2388
- "multiple": false,
2389
- "type": "option"
2390
- },
2391
- "verbose": {
2392
- "char": "v",
2393
- "description": "Show detailed request/response information",
2394
- "env": "XANO_VERBOSE",
2395
- "name": "verbose",
2396
- "required": false,
2397
- "allowNo": false,
2398
- "type": "boolean"
2399
- },
2400
- "output": {
2401
- "char": "o",
2402
- "description": "Output format",
2403
- "name": "output",
2404
- "required": false,
2405
- "default": "summary",
2406
- "hasDynamicHelp": false,
2407
- "multiple": false,
2408
- "options": [
2409
- "summary",
2410
- "json"
2411
- ],
2412
- "type": "option"
2413
- },
2414
- "workspace": {
2415
- "char": "w",
2416
- "description": "Workspace ID (uses profile workspace if not provided)",
2417
- "name": "workspace",
2418
- "required": false,
2419
- "hasDynamicHelp": false,
2420
- "multiple": false,
2421
- "type": "option"
2422
- }
2423
- },
2424
- "hasDynamicHelp": false,
2425
- "hiddenAliases": [],
2426
- "id": "release:get",
2427
- "pluginAlias": "@xano/cli",
2428
- "pluginName": "@xano/cli",
2429
- "pluginType": "core",
2430
- "strict": true,
2431
- "enableJsonFlag": false,
2432
- "isESM": true,
2433
- "relativePath": [
2434
- "dist",
2435
- "commands",
2436
- "release",
2437
- "get",
2438
- "index.js"
2439
- ]
2440
- },
2441
2352
  "release:push": {
2442
2353
  "aliases": [],
2443
2354
  "args": {
@@ -2556,19 +2467,14 @@
2556
2467
  "index.js"
2557
2468
  ]
2558
2469
  },
2559
- "tenant:create": {
2470
+ "unit_test:list": {
2560
2471
  "aliases": [],
2561
- "args": {
2562
- "display": {
2563
- "description": "Display name for the tenant",
2564
- "name": "display",
2565
- "required": true
2566
- }
2567
- },
2568
- "description": "Create a new tenant in a workspace",
2472
+ "args": {},
2473
+ "description": "List all unit tests in a workspace",
2569
2474
  "examples": [
2570
- "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
2571
- "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
2475
+ "$ xano unit-test list\nUnit tests in workspace 5:\n - my-test (ID: abc-123) [function: math]\n - auth-check (ID: def-456) [query: /user/login]\n",
2476
+ "$ xano unit-test list -w 5 --output json",
2477
+ "$ xano unit-test list --obj-type function"
2572
2478
  ],
2573
2479
  "flags": {
2574
2480
  "profile": {
@@ -2590,54 +2496,25 @@
2590
2496
  "allowNo": false,
2591
2497
  "type": "boolean"
2592
2498
  },
2593
- "cluster_id": {
2594
- "description": "Cluster ID to deploy to (required for tier2/tier3)",
2595
- "name": "cluster_id",
2596
- "required": false,
2597
- "hasDynamicHelp": false,
2598
- "multiple": false,
2599
- "type": "option"
2600
- },
2601
- "description": {
2602
- "char": "d",
2603
- "description": "Tenant description",
2604
- "name": "description",
2605
- "required": false,
2606
- "hasDynamicHelp": false,
2607
- "multiple": false,
2608
- "type": "option"
2609
- },
2610
- "domain": {
2611
- "description": "Custom domain for the tenant",
2612
- "name": "domain",
2499
+ "branch": {
2500
+ "char": "b",
2501
+ "description": "Filter by branch name",
2502
+ "name": "branch",
2613
2503
  "required": false,
2614
2504
  "hasDynamicHelp": false,
2615
2505
  "multiple": false,
2616
2506
  "type": "option"
2617
2507
  },
2618
- "ephemeral": {
2619
- "description": "Mark tenant as ephemeral (allows push operations)",
2620
- "name": "ephemeral",
2621
- "allowNo": false,
2622
- "type": "boolean"
2623
- },
2624
- "ingress": {
2625
- "description": "Enable ingress",
2626
- "name": "ingress",
2627
- "allowNo": true,
2628
- "type": "boolean"
2629
- },
2630
- "license": {
2631
- "description": "License tier",
2632
- "name": "license",
2508
+ "obj-type": {
2509
+ "description": "Filter by object type",
2510
+ "name": "obj-type",
2633
2511
  "required": false,
2634
- "default": "tier1",
2635
2512
  "hasDynamicHelp": false,
2636
2513
  "multiple": false,
2637
2514
  "options": [
2638
- "tier1",
2639
- "tier2",
2640
- "tier3"
2515
+ "function",
2516
+ "query",
2517
+ "middleware"
2641
2518
  ],
2642
2519
  "type": "option"
2643
2520
  },
@@ -2655,20 +2532,6 @@
2655
2532
  ],
2656
2533
  "type": "option"
2657
2534
  },
2658
- "platform_id": {
2659
- "description": "Platform ID to use",
2660
- "name": "platform_id",
2661
- "required": false,
2662
- "hasDynamicHelp": false,
2663
- "multiple": false,
2664
- "type": "option"
2665
- },
2666
- "tasks": {
2667
- "description": "Enable background tasks",
2668
- "name": "tasks",
2669
- "allowNo": true,
2670
- "type": "boolean"
2671
- },
2672
2535
  "workspace": {
2673
2536
  "char": "w",
2674
2537
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2681,7 +2544,7 @@
2681
2544
  },
2682
2545
  "hasDynamicHelp": false,
2683
2546
  "hiddenAliases": [],
2684
- "id": "tenant:create",
2547
+ "id": "unit_test:list",
2685
2548
  "pluginAlias": "@xano/cli",
2686
2549
  "pluginName": "@xano/cli",
2687
2550
  "pluginType": "core",
@@ -2691,24 +2554,20 @@
2691
2554
  "relativePath": [
2692
2555
  "dist",
2693
2556
  "commands",
2694
- "tenant",
2695
- "create",
2557
+ "unit_test",
2558
+ "list",
2696
2559
  "index.js"
2697
2560
  ]
2698
2561
  },
2699
- "tenant:deploy_platform": {
2562
+ "static_host:list": {
2700
2563
  "aliases": [],
2701
- "args": {
2702
- "tenant_name": {
2703
- "description": "Tenant name to deploy to",
2704
- "name": "tenant_name",
2705
- "required": true
2706
- }
2707
- },
2708
- "description": "Deploy a platform version to a tenant",
2564
+ "args": {},
2565
+ "description": "List all static hosts in a workspace from the Xano Metadata API",
2709
2566
  "examples": [
2710
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
2711
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json"
2567
+ "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2568
+ "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2569
+ "$ xano static_host:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"my-static-host\",\n \"domain\": \"example.com\"\n }\n]\n",
2570
+ "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
2712
2571
  ],
2713
2572
  "flags": {
2714
2573
  "profile": {
@@ -2744,17 +2603,27 @@
2744
2603
  ],
2745
2604
  "type": "option"
2746
2605
  },
2747
- "platform_id": {
2748
- "description": "Platform ID to deploy",
2749
- "name": "platform_id",
2750
- "required": true,
2751
- "hasDynamicHelp": false,
2606
+ "page": {
2607
+ "description": "Page number for pagination",
2608
+ "name": "page",
2609
+ "required": false,
2610
+ "default": 1,
2611
+ "hasDynamicHelp": false,
2612
+ "multiple": false,
2613
+ "type": "option"
2614
+ },
2615
+ "per_page": {
2616
+ "description": "Number of results per page",
2617
+ "name": "per_page",
2618
+ "required": false,
2619
+ "default": 50,
2620
+ "hasDynamicHelp": false,
2752
2621
  "multiple": false,
2753
2622
  "type": "option"
2754
2623
  },
2755
2624
  "workspace": {
2756
2625
  "char": "w",
2757
- "description": "Workspace ID (uses profile workspace if not provided)",
2626
+ "description": "Workspace ID (optional if set in profile)",
2758
2627
  "name": "workspace",
2759
2628
  "required": false,
2760
2629
  "hasDynamicHelp": false,
@@ -2764,7 +2633,7 @@
2764
2633
  },
2765
2634
  "hasDynamicHelp": false,
2766
2635
  "hiddenAliases": [],
2767
- "id": "tenant:deploy_platform",
2636
+ "id": "static_host:list",
2768
2637
  "pluginAlias": "@xano/cli",
2769
2638
  "pluginName": "@xano/cli",
2770
2639
  "pluginType": "core",
@@ -2774,25 +2643,24 @@
2774
2643
  "relativePath": [
2775
2644
  "dist",
2776
2645
  "commands",
2777
- "tenant",
2778
- "deploy_platform",
2646
+ "static_host",
2647
+ "list",
2779
2648
  "index.js"
2780
2649
  ]
2781
2650
  },
2782
- "tenant:delete": {
2651
+ "unit_test:run": {
2783
2652
  "aliases": [],
2784
2653
  "args": {
2785
- "tenant_name": {
2786
- "description": "Tenant name to delete",
2787
- "name": "tenant_name",
2654
+ "unit_test_id": {
2655
+ "description": "ID of the unit test to run",
2656
+ "name": "unit_test_id",
2788
2657
  "required": true
2789
2658
  }
2790
2659
  },
2791
- "description": "Delete a tenant permanently. This destroys all associated infrastructure and cannot be undone.",
2660
+ "description": "Run a unit test",
2792
2661
  "examples": [
2793
- "$ xano tenant delete t1234-abcd-xyz1\nAre you sure you want to delete tenant t1234-abcd-xyz1? This action cannot be undone. (y/N) y\nDeleted tenant t1234-abcd-xyz1\n",
2794
- "$ xano tenant delete t1234-abcd-xyz1 --force\nDeleted tenant t1234-abcd-xyz1\n",
2795
- "$ xano tenant delete t1234-abcd-xyz1 -f -o json"
2662
+ "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
2663
+ "$ xano unit-test run abc-123 -o json"
2796
2664
  ],
2797
2665
  "flags": {
2798
2666
  "profile": {
@@ -2814,14 +2682,6 @@
2814
2682
  "allowNo": false,
2815
2683
  "type": "boolean"
2816
2684
  },
2817
- "force": {
2818
- "char": "f",
2819
- "description": "Skip confirmation prompt",
2820
- "name": "force",
2821
- "required": false,
2822
- "allowNo": false,
2823
- "type": "boolean"
2824
- },
2825
2685
  "output": {
2826
2686
  "char": "o",
2827
2687
  "description": "Output format",
@@ -2848,7 +2708,7 @@
2848
2708
  },
2849
2709
  "hasDynamicHelp": false,
2850
2710
  "hiddenAliases": [],
2851
- "id": "tenant:delete",
2711
+ "id": "unit_test:run",
2852
2712
  "pluginAlias": "@xano/cli",
2853
2713
  "pluginName": "@xano/cli",
2854
2714
  "pluginType": "core",
@@ -2858,24 +2718,18 @@
2858
2718
  "relativePath": [
2859
2719
  "dist",
2860
2720
  "commands",
2861
- "tenant",
2862
- "delete",
2721
+ "unit_test",
2722
+ "run",
2863
2723
  "index.js"
2864
2724
  ]
2865
2725
  },
2866
- "tenant:deploy_release": {
2726
+ "unit_test:run_all": {
2867
2727
  "aliases": [],
2868
- "args": {
2869
- "tenant_name": {
2870
- "description": "Tenant name to deploy to",
2871
- "name": "tenant_name",
2872
- "required": true
2873
- }
2874
- },
2875
- "description": "Deploy a release to a tenant",
2728
+ "args": {},
2729
+ "description": "Run all unit tests in a workspace",
2876
2730
  "examples": [
2877
- "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0\nDeployed release \"v1.0\" to tenant: My Tenant (my-tenant)\n",
2878
- "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0 -o json"
2731
+ "$ xano unit-test run-all\nRunning 5 unit tests...\n\nPASS my-test [function: math]\nPASS auth-check [query: /user/login]\nFAIL data-validation [function: validate]\n Error: assertion failed\n\nResults: 2 passed, 1 failed\n",
2732
+ "$ xano unit-test run-all --obj-type function -o json"
2879
2733
  ],
2880
2734
  "flags": {
2881
2735
  "profile": {
@@ -2897,90 +2751,28 @@
2897
2751
  "allowNo": false,
2898
2752
  "type": "boolean"
2899
2753
  },
2900
- "output": {
2901
- "char": "o",
2902
- "description": "Output format",
2903
- "name": "output",
2754
+ "branch": {
2755
+ "char": "b",
2756
+ "description": "Filter by branch name",
2757
+ "name": "branch",
2904
2758
  "required": false,
2905
- "default": "summary",
2906
- "hasDynamicHelp": false,
2907
- "multiple": false,
2908
- "options": [
2909
- "summary",
2910
- "json"
2911
- ],
2912
- "type": "option"
2913
- },
2914
- "release": {
2915
- "char": "r",
2916
- "description": "Release name to deploy",
2917
- "name": "release",
2918
- "required": true,
2919
2759
  "hasDynamicHelp": false,
2920
2760
  "multiple": false,
2921
2761
  "type": "option"
2922
2762
  },
2923
- "workspace": {
2924
- "char": "w",
2925
- "description": "Workspace ID (uses profile workspace if not provided)",
2926
- "name": "workspace",
2927
- "required": false,
2928
- "hasDynamicHelp": false,
2929
- "multiple": false,
2930
- "type": "option"
2931
- }
2932
- },
2933
- "hasDynamicHelp": false,
2934
- "hiddenAliases": [],
2935
- "id": "tenant:deploy_release",
2936
- "pluginAlias": "@xano/cli",
2937
- "pluginName": "@xano/cli",
2938
- "pluginType": "core",
2939
- "strict": true,
2940
- "enableJsonFlag": false,
2941
- "isESM": true,
2942
- "relativePath": [
2943
- "dist",
2944
- "commands",
2945
- "tenant",
2946
- "deploy_release",
2947
- "index.js"
2948
- ]
2949
- },
2950
- "tenant:get": {
2951
- "aliases": [],
2952
- "args": {
2953
- "tenant_name": {
2954
- "description": "Tenant name to retrieve",
2955
- "name": "tenant_name",
2956
- "required": true
2957
- }
2958
- },
2959
- "description": "Get details of a specific tenant",
2960
- "examples": [
2961
- "$ xano tenant get t1234-abcd-xyz1\nTenant: My Tenant (my-tenant)\n State: ok\n License: tier1\n Domain: my-tenant.xano.io\n Cluster: default\n Release: v1.0\n",
2962
- "$ xano tenant get t1234-abcd-xyz1 -w 5 -o json"
2963
- ],
2964
- "flags": {
2965
- "profile": {
2966
- "char": "p",
2967
- "description": "Profile to use (uses default profile if not specified)",
2968
- "env": "XANO_PROFILE",
2969
- "name": "profile",
2763
+ "obj-type": {
2764
+ "description": "Filter by object type",
2765
+ "name": "obj-type",
2970
2766
  "required": false,
2971
2767
  "hasDynamicHelp": false,
2972
2768
  "multiple": false,
2769
+ "options": [
2770
+ "function",
2771
+ "query",
2772
+ "middleware"
2773
+ ],
2973
2774
  "type": "option"
2974
2775
  },
2975
- "verbose": {
2976
- "char": "v",
2977
- "description": "Show detailed request/response information",
2978
- "env": "XANO_VERBOSE",
2979
- "name": "verbose",
2980
- "required": false,
2981
- "allowNo": false,
2982
- "type": "boolean"
2983
- },
2984
2776
  "output": {
2985
2777
  "char": "o",
2986
2778
  "description": "Output format",
@@ -3007,7 +2799,7 @@
3007
2799
  },
3008
2800
  "hasDynamicHelp": false,
3009
2801
  "hiddenAliases": [],
3010
- "id": "tenant:get",
2802
+ "id": "unit_test:run_all",
3011
2803
  "pluginAlias": "@xano/cli",
3012
2804
  "pluginName": "@xano/cli",
3013
2805
  "pluginType": "core",
@@ -3017,24 +2809,24 @@
3017
2809
  "relativePath": [
3018
2810
  "dist",
3019
2811
  "commands",
3020
- "tenant",
3021
- "get",
2812
+ "unit_test",
2813
+ "run_all",
3022
2814
  "index.js"
3023
2815
  ]
3024
2816
  },
3025
- "tenant:edit": {
2817
+ "tenant:create": {
3026
2818
  "aliases": [],
3027
2819
  "args": {
3028
- "tenant_name": {
3029
- "description": "Tenant name to edit",
3030
- "name": "tenant_name",
2820
+ "display": {
2821
+ "description": "Display name for the tenant",
2822
+ "name": "display",
3031
2823
  "required": true
3032
2824
  }
3033
2825
  },
3034
- "description": "Edit an existing tenant",
2826
+ "description": "Create a new tenant in a workspace",
3035
2827
  "examples": [
3036
- "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
3037
- "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
2828
+ "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
2829
+ "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
3038
2830
  ],
3039
2831
  "flags": {
3040
2832
  "profile": {
@@ -3056,38 +2848,57 @@
3056
2848
  "allowNo": false,
3057
2849
  "type": "boolean"
3058
2850
  },
3059
- "description": {
3060
- "char": "d",
3061
- "description": "New description",
3062
- "name": "description",
2851
+ "cluster_id": {
2852
+ "description": "Cluster ID to deploy to (required for tier2/tier3)",
2853
+ "name": "cluster_id",
3063
2854
  "required": false,
3064
2855
  "hasDynamicHelp": false,
3065
2856
  "multiple": false,
3066
2857
  "type": "option"
3067
2858
  },
3068
- "display": {
3069
- "description": "New display name",
3070
- "name": "display",
2859
+ "description": {
2860
+ "char": "d",
2861
+ "description": "Tenant description",
2862
+ "name": "description",
3071
2863
  "required": false,
3072
2864
  "hasDynamicHelp": false,
3073
2865
  "multiple": false,
3074
2866
  "type": "option"
3075
2867
  },
3076
2868
  "domain": {
3077
- "description": "Custom domain",
2869
+ "description": "Custom domain for the tenant",
3078
2870
  "name": "domain",
3079
2871
  "required": false,
3080
2872
  "hasDynamicHelp": false,
3081
2873
  "multiple": false,
3082
2874
  "type": "option"
3083
2875
  },
2876
+ "ephemeral": {
2877
+ "description": "Mark tenant as ephemeral (allows push operations)",
2878
+ "name": "ephemeral",
2879
+ "allowNo": false,
2880
+ "type": "boolean"
2881
+ },
3084
2882
  "ingress": {
3085
- "description": "Enable/disable ingress",
2883
+ "description": "Enable ingress",
3086
2884
  "name": "ingress",
3087
- "required": false,
3088
2885
  "allowNo": true,
3089
2886
  "type": "boolean"
3090
2887
  },
2888
+ "license": {
2889
+ "description": "License tier",
2890
+ "name": "license",
2891
+ "required": false,
2892
+ "default": "tier1",
2893
+ "hasDynamicHelp": false,
2894
+ "multiple": false,
2895
+ "options": [
2896
+ "tier1",
2897
+ "tier2",
2898
+ "tier3"
2899
+ ],
2900
+ "type": "option"
2901
+ },
3091
2902
  "output": {
3092
2903
  "char": "o",
3093
2904
  "description": "Output format",
@@ -3102,25 +2913,17 @@
3102
2913
  ],
3103
2914
  "type": "option"
3104
2915
  },
3105
- "proxy": {
3106
- "description": "Proxy URL",
3107
- "name": "proxy",
2916
+ "platform_id": {
2917
+ "description": "Platform ID to use",
2918
+ "name": "platform_id",
3108
2919
  "required": false,
3109
2920
  "hasDynamicHelp": false,
3110
2921
  "multiple": false,
3111
2922
  "type": "option"
3112
2923
  },
3113
- "rbac": {
3114
- "description": "Enable/disable RBAC",
3115
- "name": "rbac",
3116
- "required": false,
3117
- "allowNo": true,
3118
- "type": "boolean"
3119
- },
3120
2924
  "tasks": {
3121
- "description": "Enable/disable background tasks",
2925
+ "description": "Enable background tasks",
3122
2926
  "name": "tasks",
3123
- "required": false,
3124
2927
  "allowNo": true,
3125
2928
  "type": "boolean"
3126
2929
  },
@@ -3136,7 +2939,7 @@
3136
2939
  },
3137
2940
  "hasDynamicHelp": false,
3138
2941
  "hiddenAliases": [],
3139
- "id": "tenant:edit",
2942
+ "id": "tenant:create",
3140
2943
  "pluginAlias": "@xano/cli",
3141
2944
  "pluginName": "@xano/cli",
3142
2945
  "pluginType": "core",
@@ -3147,23 +2950,24 @@
3147
2950
  "dist",
3148
2951
  "commands",
3149
2952
  "tenant",
3150
- "edit",
2953
+ "create",
3151
2954
  "index.js"
3152
2955
  ]
3153
2956
  },
3154
- "tenant:impersonate": {
2957
+ "tenant:delete": {
3155
2958
  "aliases": [],
3156
2959
  "args": {
3157
2960
  "tenant_name": {
3158
- "description": "Tenant name to impersonate",
2961
+ "description": "Tenant name to delete",
3159
2962
  "name": "tenant_name",
3160
2963
  "required": true
3161
2964
  }
3162
2965
  },
3163
- "description": "Impersonate a tenant and open it in the browser",
2966
+ "description": "Delete a tenant permanently. This destroys all associated infrastructure and cannot be undone.",
3164
2967
  "examples": [
3165
- "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
3166
- "$ xano tenant impersonate my-tenant -o json"
2968
+ "$ xano tenant delete t1234-abcd-xyz1\nAre you sure you want to delete tenant t1234-abcd-xyz1? This action cannot be undone. (y/N) y\nDeleted tenant t1234-abcd-xyz1\n",
2969
+ "$ xano tenant delete t1234-abcd-xyz1 --force\nDeleted tenant t1234-abcd-xyz1\n",
2970
+ "$ xano tenant delete t1234-abcd-xyz1 -f -o json"
3167
2971
  ],
3168
2972
  "flags": {
3169
2973
  "profile": {
@@ -3185,6 +2989,14 @@
3185
2989
  "allowNo": false,
3186
2990
  "type": "boolean"
3187
2991
  },
2992
+ "force": {
2993
+ "char": "f",
2994
+ "description": "Skip confirmation prompt",
2995
+ "name": "force",
2996
+ "required": false,
2997
+ "allowNo": false,
2998
+ "type": "boolean"
2999
+ },
3188
3000
  "output": {
3189
3001
  "char": "o",
3190
3002
  "description": "Output format",
@@ -3199,14 +3011,6 @@
3199
3011
  ],
3200
3012
  "type": "option"
3201
3013
  },
3202
- "url-only": {
3203
- "char": "u",
3204
- "description": "Print the URL without opening the browser",
3205
- "name": "url-only",
3206
- "required": false,
3207
- "allowNo": false,
3208
- "type": "boolean"
3209
- },
3210
3014
  "workspace": {
3211
3015
  "char": "w",
3212
3016
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3219,7 +3023,7 @@
3219
3023
  },
3220
3024
  "hasDynamicHelp": false,
3221
3025
  "hiddenAliases": [],
3222
- "id": "tenant:impersonate",
3026
+ "id": "tenant:delete",
3223
3027
  "pluginAlias": "@xano/cli",
3224
3028
  "pluginName": "@xano/cli",
3225
3029
  "pluginType": "core",
@@ -3230,17 +3034,23 @@
3230
3034
  "dist",
3231
3035
  "commands",
3232
3036
  "tenant",
3233
- "impersonate",
3037
+ "delete",
3234
3038
  "index.js"
3235
3039
  ]
3236
3040
  },
3237
- "tenant:list": {
3041
+ "tenant:deploy_platform": {
3238
3042
  "aliases": [],
3239
- "args": {},
3240
- "description": "List all tenants in a workspace",
3043
+ "args": {
3044
+ "tenant_name": {
3045
+ "description": "Tenant name to deploy to",
3046
+ "name": "tenant_name",
3047
+ "required": true
3048
+ }
3049
+ },
3050
+ "description": "Deploy a platform version to a tenant",
3241
3051
  "examples": [
3242
- "$ xano tenant list\nTenants in workspace 5:\n - My Tenant (my-tenant) [ok] - tier1\n - Staging (staging) [ok] - tier1\n",
3243
- "$ xano tenant list -w 5 --output json"
3052
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
3053
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json"
3244
3054
  ],
3245
3055
  "flags": {
3246
3056
  "profile": {
@@ -3276,6 +3086,14 @@
3276
3086
  ],
3277
3087
  "type": "option"
3278
3088
  },
3089
+ "platform_id": {
3090
+ "description": "Platform ID to deploy",
3091
+ "name": "platform_id",
3092
+ "required": true,
3093
+ "hasDynamicHelp": false,
3094
+ "multiple": false,
3095
+ "type": "option"
3096
+ },
3279
3097
  "workspace": {
3280
3098
  "char": "w",
3281
3099
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3288,7 +3106,7 @@
3288
3106
  },
3289
3107
  "hasDynamicHelp": false,
3290
3108
  "hiddenAliases": [],
3291
- "id": "tenant:list",
3109
+ "id": "tenant:deploy_platform",
3292
3110
  "pluginAlias": "@xano/cli",
3293
3111
  "pluginName": "@xano/cli",
3294
3112
  "pluginType": "core",
@@ -3299,25 +3117,23 @@
3299
3117
  "dist",
3300
3118
  "commands",
3301
3119
  "tenant",
3302
- "list",
3120
+ "deploy_platform",
3303
3121
  "index.js"
3304
3122
  ]
3305
3123
  },
3306
- "tenant:pull": {
3124
+ "tenant:edit": {
3307
3125
  "aliases": [],
3308
3126
  "args": {
3309
- "directory": {
3310
- "description": "Output directory for pulled documents",
3311
- "name": "directory",
3127
+ "tenant_name": {
3128
+ "description": "Tenant name to edit",
3129
+ "name": "tenant_name",
3312
3130
  "required": true
3313
3131
  }
3314
3132
  },
3315
- "description": "Pull a tenant multidoc from the Xano Metadata API and split into individual files",
3133
+ "description": "Edit an existing tenant",
3316
3134
  "examples": [
3317
- "$ xano tenant pull ./my-tenant -t my-tenant\nPulled 42 documents from tenant my-tenant to ./my-tenant\n",
3318
- "$ xano tenant pull ./output -t my-tenant -w 40\nPulled 15 documents from tenant my-tenant to ./output\n",
3319
- "$ xano tenant pull ./backup -t my-tenant --profile production --env --records\nPulled 58 documents from tenant my-tenant to ./backup\n",
3320
- "$ xano tenant pull ./my-tenant -t my-tenant --draft\nPulled 42 documents from tenant my-tenant to ./my-tenant\n"
3135
+ "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
3136
+ "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
3321
3137
  ],
3322
3138
  "flags": {
3323
3139
  "profile": {
@@ -3339,39 +3155,77 @@
3339
3155
  "allowNo": false,
3340
3156
  "type": "boolean"
3341
3157
  },
3342
- "draft": {
3343
- "description": "Include draft versions",
3344
- "name": "draft",
3158
+ "description": {
3159
+ "char": "d",
3160
+ "description": "New description",
3161
+ "name": "description",
3345
3162
  "required": false,
3346
- "allowNo": false,
3347
- "type": "boolean"
3163
+ "hasDynamicHelp": false,
3164
+ "multiple": false,
3165
+ "type": "option"
3348
3166
  },
3349
- "env": {
3350
- "description": "Include environment variables",
3351
- "name": "env",
3167
+ "display": {
3168
+ "description": "New display name",
3169
+ "name": "display",
3352
3170
  "required": false,
3353
- "allowNo": false,
3354
- "type": "boolean"
3171
+ "hasDynamicHelp": false,
3172
+ "multiple": false,
3173
+ "type": "option"
3355
3174
  },
3356
- "records": {
3357
- "description": "Include records",
3358
- "name": "records",
3175
+ "domain": {
3176
+ "description": "Custom domain",
3177
+ "name": "domain",
3359
3178
  "required": false,
3360
- "allowNo": false,
3179
+ "hasDynamicHelp": false,
3180
+ "multiple": false,
3181
+ "type": "option"
3182
+ },
3183
+ "ingress": {
3184
+ "description": "Enable/disable ingress",
3185
+ "name": "ingress",
3186
+ "required": false,
3187
+ "allowNo": true,
3361
3188
  "type": "boolean"
3362
3189
  },
3363
- "tenant": {
3364
- "char": "t",
3365
- "description": "Tenant name to pull from",
3366
- "name": "tenant",
3367
- "required": true,
3190
+ "output": {
3191
+ "char": "o",
3192
+ "description": "Output format",
3193
+ "name": "output",
3194
+ "required": false,
3195
+ "default": "summary",
3196
+ "hasDynamicHelp": false,
3197
+ "multiple": false,
3198
+ "options": [
3199
+ "summary",
3200
+ "json"
3201
+ ],
3202
+ "type": "option"
3203
+ },
3204
+ "proxy": {
3205
+ "description": "Proxy URL",
3206
+ "name": "proxy",
3207
+ "required": false,
3368
3208
  "hasDynamicHelp": false,
3369
3209
  "multiple": false,
3370
3210
  "type": "option"
3371
3211
  },
3212
+ "rbac": {
3213
+ "description": "Enable/disable RBAC",
3214
+ "name": "rbac",
3215
+ "required": false,
3216
+ "allowNo": true,
3217
+ "type": "boolean"
3218
+ },
3219
+ "tasks": {
3220
+ "description": "Enable/disable background tasks",
3221
+ "name": "tasks",
3222
+ "required": false,
3223
+ "allowNo": true,
3224
+ "type": "boolean"
3225
+ },
3372
3226
  "workspace": {
3373
3227
  "char": "w",
3374
- "description": "Workspace ID (optional if set in profile)",
3228
+ "description": "Workspace ID (uses profile workspace if not provided)",
3375
3229
  "name": "workspace",
3376
3230
  "required": false,
3377
3231
  "hasDynamicHelp": false,
@@ -3381,7 +3235,7 @@
3381
3235
  },
3382
3236
  "hasDynamicHelp": false,
3383
3237
  "hiddenAliases": [],
3384
- "id": "tenant:pull",
3238
+ "id": "tenant:edit",
3385
3239
  "pluginAlias": "@xano/cli",
3386
3240
  "pluginName": "@xano/cli",
3387
3241
  "pluginType": "core",
@@ -3392,27 +3246,23 @@
3392
3246
  "dist",
3393
3247
  "commands",
3394
3248
  "tenant",
3395
- "pull",
3249
+ "edit",
3396
3250
  "index.js"
3397
3251
  ]
3398
3252
  },
3399
- "tenant:push": {
3253
+ "tenant:deploy_release": {
3400
3254
  "aliases": [],
3401
3255
  "args": {
3402
- "directory": {
3403
- "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3404
- "name": "directory",
3256
+ "tenant_name": {
3257
+ "description": "Tenant name to deploy to",
3258
+ "name": "tenant_name",
3405
3259
  "required": true
3406
3260
  }
3407
3261
  },
3408
- "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3262
+ "description": "Deploy a release to a tenant",
3409
3263
  "examples": [
3410
- "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
3411
- "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
3412
- "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
3413
- "$ xano tenant push ./my-workspace -t my-tenant --no-records\nPush schema only, skip importing table records\n",
3414
- "$ xano tenant push ./my-workspace -t my-tenant --no-env\nPush without overwriting environment variables\n",
3415
- "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
3264
+ "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0\nDeployed release \"v1.0\" to tenant: My Tenant (my-tenant)\n",
3265
+ "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0 -o json"
3416
3266
  ],
3417
3267
  "flags": {
3418
3268
  "profile": {
@@ -3434,39 +3284,32 @@
3434
3284
  "allowNo": false,
3435
3285
  "type": "boolean"
3436
3286
  },
3437
- "env": {
3438
- "description": "Include environment variables in import (default: true, use --no-env to exclude)",
3439
- "name": "env",
3440
- "required": false,
3441
- "allowNo": true,
3442
- "type": "boolean"
3443
- },
3444
- "records": {
3445
- "description": "Include records in import (default: true, use --no-records to exclude)",
3446
- "name": "records",
3287
+ "output": {
3288
+ "char": "o",
3289
+ "description": "Output format",
3290
+ "name": "output",
3447
3291
  "required": false,
3448
- "allowNo": true,
3449
- "type": "boolean"
3292
+ "default": "summary",
3293
+ "hasDynamicHelp": false,
3294
+ "multiple": false,
3295
+ "options": [
3296
+ "summary",
3297
+ "json"
3298
+ ],
3299
+ "type": "option"
3450
3300
  },
3451
- "tenant": {
3452
- "char": "t",
3453
- "description": "Tenant name to push to",
3454
- "name": "tenant",
3301
+ "release": {
3302
+ "char": "r",
3303
+ "description": "Release name to deploy",
3304
+ "name": "release",
3455
3305
  "required": true,
3456
3306
  "hasDynamicHelp": false,
3457
3307
  "multiple": false,
3458
3308
  "type": "option"
3459
3309
  },
3460
- "truncate": {
3461
- "description": "Truncate all table records before importing",
3462
- "name": "truncate",
3463
- "required": false,
3464
- "allowNo": false,
3465
- "type": "boolean"
3466
- },
3467
3310
  "workspace": {
3468
3311
  "char": "w",
3469
- "description": "Workspace ID (optional if set in profile)",
3312
+ "description": "Workspace ID (uses profile workspace if not provided)",
3470
3313
  "name": "workspace",
3471
3314
  "required": false,
3472
3315
  "hasDynamicHelp": false,
@@ -3476,7 +3319,7 @@
3476
3319
  },
3477
3320
  "hasDynamicHelp": false,
3478
3321
  "hiddenAliases": [],
3479
- "id": "tenant:push",
3322
+ "id": "tenant:deploy_release",
3480
3323
  "pluginAlias": "@xano/cli",
3481
3324
  "pluginName": "@xano/cli",
3482
3325
  "pluginType": "core",
@@ -3487,18 +3330,23 @@
3487
3330
  "dist",
3488
3331
  "commands",
3489
3332
  "tenant",
3490
- "push",
3333
+ "deploy_release",
3491
3334
  "index.js"
3492
3335
  ]
3493
3336
  },
3494
- "unit_test:list": {
3337
+ "tenant:get": {
3495
3338
  "aliases": [],
3496
- "args": {},
3497
- "description": "List all unit tests in a workspace",
3339
+ "args": {
3340
+ "tenant_name": {
3341
+ "description": "Tenant name to retrieve",
3342
+ "name": "tenant_name",
3343
+ "required": true
3344
+ }
3345
+ },
3346
+ "description": "Get details of a specific tenant",
3498
3347
  "examples": [
3499
- "$ xano unit-test list\nUnit tests in workspace 5:\n - my-test (ID: abc-123) [function: math]\n - auth-check (ID: def-456) [query: /user/login]\n",
3500
- "$ xano unit-test list -w 5 --output json",
3501
- "$ xano unit-test list --obj-type function"
3348
+ "$ xano tenant get t1234-abcd-xyz1\nTenant: My Tenant (my-tenant)\n State: ok\n License: tier1\n Domain: my-tenant.xano.io\n Cluster: default\n Release: v1.0\n",
3349
+ "$ xano tenant get t1234-abcd-xyz1 -w 5 -o json"
3502
3350
  ],
3503
3351
  "flags": {
3504
3352
  "profile": {
@@ -3520,28 +3368,6 @@
3520
3368
  "allowNo": false,
3521
3369
  "type": "boolean"
3522
3370
  },
3523
- "branch": {
3524
- "char": "b",
3525
- "description": "Filter by branch name",
3526
- "name": "branch",
3527
- "required": false,
3528
- "hasDynamicHelp": false,
3529
- "multiple": false,
3530
- "type": "option"
3531
- },
3532
- "obj-type": {
3533
- "description": "Filter by object type",
3534
- "name": "obj-type",
3535
- "required": false,
3536
- "hasDynamicHelp": false,
3537
- "multiple": false,
3538
- "options": [
3539
- "function",
3540
- "query",
3541
- "middleware"
3542
- ],
3543
- "type": "option"
3544
- },
3545
3371
  "output": {
3546
3372
  "char": "o",
3547
3373
  "description": "Output format",
@@ -3568,7 +3394,7 @@
3568
3394
  },
3569
3395
  "hasDynamicHelp": false,
3570
3396
  "hiddenAliases": [],
3571
- "id": "unit_test:list",
3397
+ "id": "tenant:get",
3572
3398
  "pluginAlias": "@xano/cli",
3573
3399
  "pluginName": "@xano/cli",
3574
3400
  "pluginType": "core",
@@ -3578,24 +3404,24 @@
3578
3404
  "relativePath": [
3579
3405
  "dist",
3580
3406
  "commands",
3581
- "unit_test",
3582
- "list",
3407
+ "tenant",
3408
+ "get",
3583
3409
  "index.js"
3584
3410
  ]
3585
3411
  },
3586
- "unit_test:run": {
3412
+ "tenant:impersonate": {
3587
3413
  "aliases": [],
3588
3414
  "args": {
3589
- "unit_test_id": {
3590
- "description": "ID of the unit test to run",
3591
- "name": "unit_test_id",
3415
+ "tenant_name": {
3416
+ "description": "Tenant name to impersonate",
3417
+ "name": "tenant_name",
3592
3418
  "required": true
3593
3419
  }
3594
3420
  },
3595
- "description": "Run a unit test",
3421
+ "description": "Impersonate a tenant and open it in the browser",
3596
3422
  "examples": [
3597
- "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
3598
- "$ xano unit-test run abc-123 -o json"
3423
+ "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
3424
+ "$ xano tenant impersonate my-tenant -o json"
3599
3425
  ],
3600
3426
  "flags": {
3601
3427
  "profile": {
@@ -3631,6 +3457,14 @@
3631
3457
  ],
3632
3458
  "type": "option"
3633
3459
  },
3460
+ "url-only": {
3461
+ "char": "u",
3462
+ "description": "Print the URL without opening the browser",
3463
+ "name": "url-only",
3464
+ "required": false,
3465
+ "allowNo": false,
3466
+ "type": "boolean"
3467
+ },
3634
3468
  "workspace": {
3635
3469
  "char": "w",
3636
3470
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3643,7 +3477,7 @@
3643
3477
  },
3644
3478
  "hasDynamicHelp": false,
3645
3479
  "hiddenAliases": [],
3646
- "id": "unit_test:run",
3480
+ "id": "tenant:impersonate",
3647
3481
  "pluginAlias": "@xano/cli",
3648
3482
  "pluginName": "@xano/cli",
3649
3483
  "pluginType": "core",
@@ -3653,25 +3487,18 @@
3653
3487
  "relativePath": [
3654
3488
  "dist",
3655
3489
  "commands",
3656
- "unit_test",
3657
- "run",
3490
+ "tenant",
3491
+ "impersonate",
3658
3492
  "index.js"
3659
3493
  ]
3660
3494
  },
3661
- "workspace:create": {
3495
+ "tenant:list": {
3662
3496
  "aliases": [],
3663
- "args": {
3664
- "name": {
3665
- "description": "Name of the workspace",
3666
- "name": "name",
3667
- "required": true
3668
- }
3669
- },
3670
- "description": "Create a new workspace via the Xano Metadata API",
3497
+ "args": {},
3498
+ "description": "List all tenants in a workspace",
3671
3499
  "examples": [
3672
- "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
3673
- "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
3674
- "$ xano workspace create new-project -d \"New project workspace\" -o json\n{\n \"id\": 789,\n \"name\": \"new-project\",\n \"description\": \"New project workspace\"\n}\n"
3500
+ "$ xano tenant list\nTenants in workspace 5:\n - My Tenant (my-tenant) [ok] - tier1\n - Staging (staging) [ok] - tier1\n",
3501
+ "$ xano tenant list -w 5 --output json"
3675
3502
  ],
3676
3503
  "flags": {
3677
3504
  "profile": {
@@ -3693,15 +3520,6 @@
3693
3520
  "allowNo": false,
3694
3521
  "type": "boolean"
3695
3522
  },
3696
- "description": {
3697
- "char": "d",
3698
- "description": "Description for the workspace",
3699
- "name": "description",
3700
- "required": false,
3701
- "hasDynamicHelp": false,
3702
- "multiple": false,
3703
- "type": "option"
3704
- },
3705
3523
  "output": {
3706
3524
  "char": "o",
3707
3525
  "description": "Output format",
@@ -3715,11 +3533,20 @@
3715
3533
  "json"
3716
3534
  ],
3717
3535
  "type": "option"
3536
+ },
3537
+ "workspace": {
3538
+ "char": "w",
3539
+ "description": "Workspace ID (uses profile workspace if not provided)",
3540
+ "name": "workspace",
3541
+ "required": false,
3542
+ "hasDynamicHelp": false,
3543
+ "multiple": false,
3544
+ "type": "option"
3718
3545
  }
3719
3546
  },
3720
3547
  "hasDynamicHelp": false,
3721
3548
  "hiddenAliases": [],
3722
- "id": "workspace:create",
3549
+ "id": "tenant:list",
3723
3550
  "pluginAlias": "@xano/cli",
3724
3551
  "pluginName": "@xano/cli",
3725
3552
  "pluginType": "core",
@@ -3729,18 +3556,26 @@
3729
3556
  "relativePath": [
3730
3557
  "dist",
3731
3558
  "commands",
3732
- "workspace",
3733
- "create",
3559
+ "tenant",
3560
+ "list",
3734
3561
  "index.js"
3735
3562
  ]
3736
3563
  },
3737
- "unit_test:run_all": {
3564
+ "tenant:pull": {
3738
3565
  "aliases": [],
3739
- "args": {},
3740
- "description": "Run all unit tests in a workspace",
3566
+ "args": {
3567
+ "directory": {
3568
+ "description": "Output directory for pulled documents",
3569
+ "name": "directory",
3570
+ "required": true
3571
+ }
3572
+ },
3573
+ "description": "Pull a tenant multidoc from the Xano Metadata API and split into individual files",
3741
3574
  "examples": [
3742
- "$ xano unit-test run-all\nRunning 5 unit tests...\n\nPASS my-test [function: math]\nPASS auth-check [query: /user/login]\nFAIL data-validation [function: validate]\n Error: assertion failed\n\nResults: 2 passed, 1 failed\n",
3743
- "$ xano unit-test run-all --obj-type function -o json"
3575
+ "$ xano tenant pull ./my-tenant -t my-tenant\nPulled 42 documents from tenant my-tenant to ./my-tenant\n",
3576
+ "$ xano tenant pull ./output -t my-tenant -w 40\nPulled 15 documents from tenant my-tenant to ./output\n",
3577
+ "$ xano tenant pull ./backup -t my-tenant --profile production --env --records\nPulled 58 documents from tenant my-tenant to ./backup\n",
3578
+ "$ xano tenant pull ./my-tenant -t my-tenant --draft\nPulled 42 documents from tenant my-tenant to ./my-tenant\n"
3744
3579
  ],
3745
3580
  "flags": {
3746
3581
  "profile": {
@@ -3762,45 +3597,39 @@
3762
3597
  "allowNo": false,
3763
3598
  "type": "boolean"
3764
3599
  },
3765
- "branch": {
3766
- "char": "b",
3767
- "description": "Filter by branch name",
3768
- "name": "branch",
3600
+ "draft": {
3601
+ "description": "Include draft versions",
3602
+ "name": "draft",
3769
3603
  "required": false,
3770
- "hasDynamicHelp": false,
3771
- "multiple": false,
3772
- "type": "option"
3604
+ "allowNo": false,
3605
+ "type": "boolean"
3773
3606
  },
3774
- "obj-type": {
3775
- "description": "Filter by object type",
3776
- "name": "obj-type",
3607
+ "env": {
3608
+ "description": "Include environment variables",
3609
+ "name": "env",
3777
3610
  "required": false,
3778
- "hasDynamicHelp": false,
3779
- "multiple": false,
3780
- "options": [
3781
- "function",
3782
- "query",
3783
- "middleware"
3784
- ],
3785
- "type": "option"
3611
+ "allowNo": false,
3612
+ "type": "boolean"
3786
3613
  },
3787
- "output": {
3788
- "char": "o",
3789
- "description": "Output format",
3790
- "name": "output",
3614
+ "records": {
3615
+ "description": "Include records",
3616
+ "name": "records",
3791
3617
  "required": false,
3792
- "default": "summary",
3618
+ "allowNo": false,
3619
+ "type": "boolean"
3620
+ },
3621
+ "tenant": {
3622
+ "char": "t",
3623
+ "description": "Tenant name to pull from",
3624
+ "name": "tenant",
3625
+ "required": true,
3793
3626
  "hasDynamicHelp": false,
3794
3627
  "multiple": false,
3795
- "options": [
3796
- "summary",
3797
- "json"
3798
- ],
3799
3628
  "type": "option"
3800
3629
  },
3801
3630
  "workspace": {
3802
3631
  "char": "w",
3803
- "description": "Workspace ID (uses profile workspace if not provided)",
3632
+ "description": "Workspace ID (optional if set in profile)",
3804
3633
  "name": "workspace",
3805
3634
  "required": false,
3806
3635
  "hasDynamicHelp": false,
@@ -3810,7 +3639,7 @@
3810
3639
  },
3811
3640
  "hasDynamicHelp": false,
3812
3641
  "hiddenAliases": [],
3813
- "id": "unit_test:run_all",
3642
+ "id": "tenant:pull",
3814
3643
  "pluginAlias": "@xano/cli",
3815
3644
  "pluginName": "@xano/cli",
3816
3645
  "pluginType": "core",
@@ -3820,26 +3649,28 @@
3820
3649
  "relativePath": [
3821
3650
  "dist",
3822
3651
  "commands",
3823
- "unit_test",
3824
- "run_all",
3652
+ "tenant",
3653
+ "pull",
3825
3654
  "index.js"
3826
3655
  ]
3827
3656
  },
3828
- "workspace:edit": {
3657
+ "tenant:push": {
3829
3658
  "aliases": [],
3830
3659
  "args": {
3831
- "workspace_id": {
3832
- "description": "Workspace ID to edit (uses profile workspace if not provided)",
3833
- "name": "workspace_id",
3834
- "required": false
3660
+ "directory": {
3661
+ "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3662
+ "name": "directory",
3663
+ "required": true
3835
3664
  }
3836
3665
  },
3837
- "description": "Edit an existing workspace via the Xano Metadata API",
3666
+ "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3838
3667
  "examples": [
3839
- "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
3840
- "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
3841
- "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
3842
- "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
3668
+ "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
3669
+ "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
3670
+ "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
3671
+ "$ xano tenant push ./my-workspace -t my-tenant --no-records\nPush schema only, skip importing table records\n",
3672
+ "$ xano tenant push ./my-workspace -t my-tenant --no-env\nPush without overwriting environment variables\n",
3673
+ "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
3843
3674
  ],
3844
3675
  "flags": {
3845
3676
  "profile": {
@@ -3861,56 +3692,49 @@
3861
3692
  "allowNo": false,
3862
3693
  "type": "boolean"
3863
3694
  },
3864
- "description": {
3865
- "char": "d",
3866
- "description": "New description for the workspace",
3867
- "name": "description",
3695
+ "env": {
3696
+ "description": "Include environment variables in import (default: true, use --no-env to exclude)",
3697
+ "name": "env",
3868
3698
  "required": false,
3869
- "hasDynamicHelp": false,
3870
- "multiple": false,
3871
- "type": "option"
3699
+ "allowNo": true,
3700
+ "type": "boolean"
3872
3701
  },
3873
- "name": {
3874
- "char": "n",
3875
- "description": "New name for the workspace",
3876
- "name": "name",
3702
+ "records": {
3703
+ "description": "Include records in import (default: true, use --no-records to exclude)",
3704
+ "name": "records",
3877
3705
  "required": false,
3878
- "hasDynamicHelp": false,
3879
- "multiple": false,
3880
- "type": "option"
3706
+ "allowNo": true,
3707
+ "type": "boolean"
3881
3708
  },
3882
- "output": {
3883
- "char": "o",
3884
- "description": "Output format",
3885
- "name": "output",
3886
- "required": false,
3887
- "default": "summary",
3709
+ "tenant": {
3710
+ "char": "t",
3711
+ "description": "Tenant name to push to",
3712
+ "name": "tenant",
3713
+ "required": true,
3888
3714
  "hasDynamicHelp": false,
3889
3715
  "multiple": false,
3890
- "options": [
3891
- "summary",
3892
- "json"
3893
- ],
3894
3716
  "type": "option"
3895
3717
  },
3896
- "require-token": {
3897
- "description": "Whether to require a token for documentation access",
3898
- "name": "require-token",
3718
+ "truncate": {
3719
+ "description": "Truncate all table records before importing",
3720
+ "name": "truncate",
3899
3721
  "required": false,
3900
- "allowNo": true,
3722
+ "allowNo": false,
3901
3723
  "type": "boolean"
3902
3724
  },
3903
- "swagger": {
3904
- "description": "Enable or disable swagger documentation",
3905
- "name": "swagger",
3725
+ "workspace": {
3726
+ "char": "w",
3727
+ "description": "Workspace ID (optional if set in profile)",
3728
+ "name": "workspace",
3906
3729
  "required": false,
3907
- "allowNo": true,
3908
- "type": "boolean"
3730
+ "hasDynamicHelp": false,
3731
+ "multiple": false,
3732
+ "type": "option"
3909
3733
  }
3910
3734
  },
3911
3735
  "hasDynamicHelp": false,
3912
3736
  "hiddenAliases": [],
3913
- "id": "workspace:edit",
3737
+ "id": "tenant:push",
3914
3738
  "pluginAlias": "@xano/cli",
3915
3739
  "pluginName": "@xano/cli",
3916
3740
  "pluginType": "core",
@@ -3920,25 +3744,25 @@
3920
3744
  "relativePath": [
3921
3745
  "dist",
3922
3746
  "commands",
3923
- "workspace",
3924
- "edit",
3747
+ "tenant",
3748
+ "push",
3925
3749
  "index.js"
3926
3750
  ]
3927
3751
  },
3928
- "workspace:get": {
3752
+ "workflow_test:get": {
3929
3753
  "aliases": [],
3930
3754
  "args": {
3931
- "workspace_id": {
3932
- "description": "Workspace ID to get details for (uses profile workspace if not provided)",
3933
- "name": "workspace_id",
3934
- "required": false
3755
+ "workflow_test_id": {
3756
+ "description": "ID of the workflow test",
3757
+ "name": "workflow_test_id",
3758
+ "required": true
3935
3759
  }
3936
3760
  },
3937
- "description": "Get details of a specific workspace from the Xano Metadata API",
3761
+ "description": "Get a specific workflow test",
3938
3762
  "examples": [
3939
- "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
3940
- "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
3941
- "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
3763
+ "$ xano workflow-test get 1\nWorkflow Test: my-test (ID: 1)\n Description: Validates auth endpoints\n Branch: main\n",
3764
+ "$ xano workflow-test get 1 -o xs",
3765
+ "$ xano workflow-test get 1 -o json"
3942
3766
  ],
3943
3767
  "flags": {
3944
3768
  "profile": {
@@ -3960,6 +3784,13 @@
3960
3784
  "allowNo": false,
3961
3785
  "type": "boolean"
3962
3786
  },
3787
+ "include-draft": {
3788
+ "description": "Include draft version",
3789
+ "name": "include-draft",
3790
+ "required": false,
3791
+ "allowNo": false,
3792
+ "type": "boolean"
3793
+ },
3963
3794
  "output": {
3964
3795
  "char": "o",
3965
3796
  "description": "Output format",
@@ -3970,14 +3801,24 @@
3970
3801
  "multiple": false,
3971
3802
  "options": [
3972
3803
  "summary",
3973
- "json"
3804
+ "json",
3805
+ "xs"
3974
3806
  ],
3975
3807
  "type": "option"
3808
+ },
3809
+ "workspace": {
3810
+ "char": "w",
3811
+ "description": "Workspace ID (uses profile workspace if not provided)",
3812
+ "name": "workspace",
3813
+ "required": false,
3814
+ "hasDynamicHelp": false,
3815
+ "multiple": false,
3816
+ "type": "option"
3976
3817
  }
3977
3818
  },
3978
3819
  "hasDynamicHelp": false,
3979
3820
  "hiddenAliases": [],
3980
- "id": "workspace:get",
3821
+ "id": "workflow_test:get",
3981
3822
  "pluginAlias": "@xano/cli",
3982
3823
  "pluginName": "@xano/cli",
3983
3824
  "pluginType": "core",
@@ -3987,25 +3828,24 @@
3987
3828
  "relativePath": [
3988
3829
  "dist",
3989
3830
  "commands",
3990
- "workspace",
3831
+ "workflow_test",
3991
3832
  "get",
3992
3833
  "index.js"
3993
3834
  ]
3994
3835
  },
3995
- "workspace:delete": {
3836
+ "workflow_test:delete": {
3996
3837
  "aliases": [],
3997
3838
  "args": {
3998
- "workspace_id": {
3999
- "description": "Workspace ID to delete",
4000
- "name": "workspace_id",
3839
+ "workflow_test_id": {
3840
+ "description": "ID of the workflow test to delete",
3841
+ "name": "workflow_test_id",
4001
3842
  "required": true
4002
3843
  }
4003
3844
  },
4004
- "description": "Delete a workspace via the Xano Metadata API. Cannot delete workspaces with active tenants.",
3845
+ "description": "Delete a workflow test",
4005
3846
  "examples": [
4006
- "$ xano workspace delete 123\nAre you sure you want to delete workspace 123? This action cannot be undone. (y/N) y\nDeleted workspace 123\n",
4007
- "$ xano workspace delete 123 --force\nDeleted workspace 123\n",
4008
- "$ xano workspace delete 123 -f -o json\n{\n \"deleted\": true,\n \"workspace_id\": 123\n}\n"
3847
+ "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
3848
+ "$ xano workflow-test delete 1 --force"
4009
3849
  ],
4010
3850
  "flags": {
4011
3851
  "profile": {
@@ -4048,11 +3888,20 @@
4048
3888
  "json"
4049
3889
  ],
4050
3890
  "type": "option"
3891
+ },
3892
+ "workspace": {
3893
+ "char": "w",
3894
+ "description": "Workspace ID (uses profile workspace if not provided)",
3895
+ "name": "workspace",
3896
+ "required": false,
3897
+ "hasDynamicHelp": false,
3898
+ "multiple": false,
3899
+ "type": "option"
4051
3900
  }
4052
3901
  },
4053
3902
  "hasDynamicHelp": false,
4054
3903
  "hiddenAliases": [],
4055
- "id": "workspace:delete",
3904
+ "id": "workflow_test:delete",
4056
3905
  "pluginAlias": "@xano/cli",
4057
3906
  "pluginName": "@xano/cli",
4058
3907
  "pluginType": "core",
@@ -4062,24 +3911,24 @@
4062
3911
  "relativePath": [
4063
3912
  "dist",
4064
3913
  "commands",
4065
- "workspace",
3914
+ "workflow_test",
4066
3915
  "delete",
4067
3916
  "index.js"
4068
3917
  ]
4069
3918
  },
4070
- "workflow_test:delete": {
3919
+ "workflow_test:run": {
4071
3920
  "aliases": [],
4072
3921
  "args": {
4073
3922
  "workflow_test_id": {
4074
- "description": "ID of the workflow test to delete",
3923
+ "description": "ID of the workflow test to run",
4075
3924
  "name": "workflow_test_id",
4076
3925
  "required": true
4077
3926
  }
4078
3927
  },
4079
- "description": "Delete a workflow test",
3928
+ "description": "Run a workflow test",
4080
3929
  "examples": [
4081
- "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
4082
- "$ xano workflow-test delete 1 --force"
3930
+ "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
3931
+ "$ xano workflow-test run 1 -o json"
4083
3932
  ],
4084
3933
  "flags": {
4085
3934
  "profile": {
@@ -4101,14 +3950,85 @@
4101
3950
  "allowNo": false,
4102
3951
  "type": "boolean"
4103
3952
  },
4104
- "force": {
4105
- "char": "f",
4106
- "description": "Skip confirmation prompt",
4107
- "name": "force",
3953
+ "output": {
3954
+ "char": "o",
3955
+ "description": "Output format",
3956
+ "name": "output",
3957
+ "required": false,
3958
+ "default": "summary",
3959
+ "hasDynamicHelp": false,
3960
+ "multiple": false,
3961
+ "options": [
3962
+ "summary",
3963
+ "json"
3964
+ ],
3965
+ "type": "option"
3966
+ },
3967
+ "workspace": {
3968
+ "char": "w",
3969
+ "description": "Workspace ID (uses profile workspace if not provided)",
3970
+ "name": "workspace",
3971
+ "required": false,
3972
+ "hasDynamicHelp": false,
3973
+ "multiple": false,
3974
+ "type": "option"
3975
+ }
3976
+ },
3977
+ "hasDynamicHelp": false,
3978
+ "hiddenAliases": [],
3979
+ "id": "workflow_test:run",
3980
+ "pluginAlias": "@xano/cli",
3981
+ "pluginName": "@xano/cli",
3982
+ "pluginType": "core",
3983
+ "strict": true,
3984
+ "enableJsonFlag": false,
3985
+ "isESM": true,
3986
+ "relativePath": [
3987
+ "dist",
3988
+ "commands",
3989
+ "workflow_test",
3990
+ "run",
3991
+ "index.js"
3992
+ ]
3993
+ },
3994
+ "workflow_test:list": {
3995
+ "aliases": [],
3996
+ "args": {},
3997
+ "description": "List all workflow tests in a workspace",
3998
+ "examples": [
3999
+ "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
4000
+ "$ xano workflow-test list -w 5 --output json",
4001
+ "$ xano workflow-test list --branch main"
4002
+ ],
4003
+ "flags": {
4004
+ "profile": {
4005
+ "char": "p",
4006
+ "description": "Profile to use (uses default profile if not specified)",
4007
+ "env": "XANO_PROFILE",
4008
+ "name": "profile",
4009
+ "required": false,
4010
+ "hasDynamicHelp": false,
4011
+ "multiple": false,
4012
+ "type": "option"
4013
+ },
4014
+ "verbose": {
4015
+ "char": "v",
4016
+ "description": "Show detailed request/response information",
4017
+ "env": "XANO_VERBOSE",
4018
+ "name": "verbose",
4108
4019
  "required": false,
4109
4020
  "allowNo": false,
4110
4021
  "type": "boolean"
4111
4022
  },
4023
+ "branch": {
4024
+ "char": "b",
4025
+ "description": "Filter by branch name",
4026
+ "name": "branch",
4027
+ "required": false,
4028
+ "hasDynamicHelp": false,
4029
+ "multiple": false,
4030
+ "type": "option"
4031
+ },
4112
4032
  "output": {
4113
4033
  "char": "o",
4114
4034
  "description": "Output format",
@@ -4135,7 +4055,7 @@
4135
4055
  },
4136
4056
  "hasDynamicHelp": false,
4137
4057
  "hiddenAliases": [],
4138
- "id": "workflow_test:delete",
4058
+ "id": "workflow_test:list",
4139
4059
  "pluginAlias": "@xano/cli",
4140
4060
  "pluginName": "@xano/cli",
4141
4061
  "pluginType": "core",
@@ -4146,24 +4066,17 @@
4146
4066
  "dist",
4147
4067
  "commands",
4148
4068
  "workflow_test",
4149
- "delete",
4069
+ "list",
4150
4070
  "index.js"
4151
4071
  ]
4152
4072
  },
4153
- "workflow_test:get": {
4073
+ "workflow_test:run_all": {
4154
4074
  "aliases": [],
4155
- "args": {
4156
- "workflow_test_id": {
4157
- "description": "ID of the workflow test",
4158
- "name": "workflow_test_id",
4159
- "required": true
4160
- }
4161
- },
4162
- "description": "Get a specific workflow test",
4163
- "examples": [
4164
- "$ xano workflow-test get 1\nWorkflow Test: my-test (ID: 1)\n Description: Validates auth endpoints\n Branch: main\n",
4165
- "$ xano workflow-test get 1 -o xs",
4166
- "$ xano workflow-test get 1 -o json"
4075
+ "args": {},
4076
+ "description": "Run all workflow tests in a workspace",
4077
+ "examples": [
4078
+ "$ xano workflow-test run-all\nRunning 3 workflow tests...\n\nPASS my-test (1.234s)\nPASS auth-flow (0.567s)\nFAIL data-validation (0.890s)\n Error: assertion failed at step 3\n\nResults: 2 passed, 1 failed (2.691s total)\n",
4079
+ "$ xano workflow-test run-all --branch main -o json"
4167
4080
  ],
4168
4081
  "flags": {
4169
4082
  "profile": {
@@ -4185,12 +4098,14 @@
4185
4098
  "allowNo": false,
4186
4099
  "type": "boolean"
4187
4100
  },
4188
- "include-draft": {
4189
- "description": "Include draft version",
4190
- "name": "include-draft",
4101
+ "branch": {
4102
+ "char": "b",
4103
+ "description": "Filter by branch name",
4104
+ "name": "branch",
4191
4105
  "required": false,
4192
- "allowNo": false,
4193
- "type": "boolean"
4106
+ "hasDynamicHelp": false,
4107
+ "multiple": false,
4108
+ "type": "option"
4194
4109
  },
4195
4110
  "output": {
4196
4111
  "char": "o",
@@ -4202,8 +4117,7 @@
4202
4117
  "multiple": false,
4203
4118
  "options": [
4204
4119
  "summary",
4205
- "json",
4206
- "xs"
4120
+ "json"
4207
4121
  ],
4208
4122
  "type": "option"
4209
4123
  },
@@ -4219,7 +4133,7 @@
4219
4133
  },
4220
4134
  "hasDynamicHelp": false,
4221
4135
  "hiddenAliases": [],
4222
- "id": "workflow_test:get",
4136
+ "id": "workflow_test:run_all",
4223
4137
  "pluginAlias": "@xano/cli",
4224
4138
  "pluginName": "@xano/cli",
4225
4139
  "pluginType": "core",
@@ -4230,19 +4144,24 @@
4230
4144
  "dist",
4231
4145
  "commands",
4232
4146
  "workflow_test",
4233
- "get",
4147
+ "run_all",
4234
4148
  "index.js"
4235
4149
  ]
4236
4150
  },
4237
- "workspace:list": {
4151
+ "workspace:create": {
4238
4152
  "aliases": [],
4239
- "args": {},
4240
- "description": "List all workspaces from the Xano Metadata API",
4153
+ "args": {
4154
+ "name": {
4155
+ "description": "Name of the workspace",
4156
+ "name": "name",
4157
+ "required": true
4158
+ }
4159
+ },
4160
+ "description": "Create a new workspace via the Xano Metadata API",
4241
4161
  "examples": [
4242
- "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4243
- "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4244
- "$ xano workspace:list --output json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"workspace-1\"\n },\n {\n \"id\": 2,\n \"name\": \"workspace-2\"\n }\n ]\n}\n",
4245
- "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4162
+ "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
4163
+ "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
4164
+ "$ xano workspace create new-project -d \"New project workspace\" -o json\n{\n \"id\": 789,\n \"name\": \"new-project\",\n \"description\": \"New project workspace\"\n}\n"
4246
4165
  ],
4247
4166
  "flags": {
4248
4167
  "profile": {
@@ -4264,6 +4183,15 @@
4264
4183
  "allowNo": false,
4265
4184
  "type": "boolean"
4266
4185
  },
4186
+ "description": {
4187
+ "char": "d",
4188
+ "description": "Description for the workspace",
4189
+ "name": "description",
4190
+ "required": false,
4191
+ "hasDynamicHelp": false,
4192
+ "multiple": false,
4193
+ "type": "option"
4194
+ },
4267
4195
  "output": {
4268
4196
  "char": "o",
4269
4197
  "description": "Output format",
@@ -4281,7 +4209,7 @@
4281
4209
  },
4282
4210
  "hasDynamicHelp": false,
4283
4211
  "hiddenAliases": [],
4284
- "id": "workspace:list",
4212
+ "id": "workspace:create",
4285
4213
  "pluginAlias": "@xano/cli",
4286
4214
  "pluginName": "@xano/cli",
4287
4215
  "pluginType": "core",
@@ -4292,32 +4220,24 @@
4292
4220
  "dist",
4293
4221
  "commands",
4294
4222
  "workspace",
4295
- "list",
4223
+ "create",
4296
4224
  "index.js"
4297
4225
  ]
4298
4226
  },
4299
- "workspace:push": {
4227
+ "workspace:delete": {
4300
4228
  "aliases": [],
4301
4229
  "args": {
4302
- "directory": {
4303
- "description": "Directory containing documents to push (as produced by workspace pull)",
4304
- "name": "directory",
4230
+ "workspace_id": {
4231
+ "description": "Workspace ID to delete",
4232
+ "name": "workspace_id",
4305
4233
  "required": true
4306
4234
  }
4307
4235
  },
4308
- "description": "Push local documents to a workspace via the Xano Metadata API multidoc endpoint",
4236
+ "description": "Delete a workspace via the Xano Metadata API. Cannot delete workspaces with active tenants.",
4309
4237
  "examples": [
4310
- "$ xano workspace push ./my-workspace\nPushed 42 documents from ./my-workspace\n",
4311
- "$ xano workspace push ./output -w 40\nPushed 15 documents from ./output\n",
4312
- "$ xano workspace push ./backup --profile production\nPushed 58 documents from ./backup\n",
4313
- "$ xano workspace push ./my-workspace -b dev\nPushed 42 documents from ./my-workspace\n",
4314
- "$ xano workspace push ./my-functions --partial\nPush some files without a workspace block (implies --no-delete)\n",
4315
- "$ xano workspace push ./my-workspace --no-delete\nPatch files without deleting existing workspace objects\n",
4316
- "$ xano workspace push ./my-workspace --no-records\nPush schema only, skip importing table records\n",
4317
- "$ xano workspace push ./my-workspace --no-env\nPush without overwriting environment variables\n",
4318
- "$ xano workspace push ./my-workspace --truncate\nTruncate all table records before importing\n",
4319
- "$ xano workspace push ./my-workspace --truncate --no-records\nTruncate all table records without importing new ones\n",
4320
- "$ xano workspace push ./my-workspace --no-records --no-env\nPush schema only, skip records and environment variables\n"
4238
+ "$ xano workspace delete 123\nAre you sure you want to delete workspace 123? This action cannot be undone. (y/N) y\nDeleted workspace 123\n",
4239
+ "$ xano workspace delete 123 --force\nDeleted workspace 123\n",
4240
+ "$ xano workspace delete 123 -f -o json\n{\n \"deleted\": true,\n \"workspace_id\": 123\n}\n"
4321
4241
  ],
4322
4242
  "flags": {
4323
4243
  "profile": {
@@ -4339,70 +4259,32 @@
4339
4259
  "allowNo": false,
4340
4260
  "type": "boolean"
4341
4261
  },
4342
- "branch": {
4343
- "char": "b",
4344
- "description": "Branch name (optional if set in profile, defaults to live)",
4345
- "name": "branch",
4346
- "required": false,
4347
- "hasDynamicHelp": false,
4348
- "multiple": false,
4349
- "type": "option"
4350
- },
4351
- "delete": {
4352
- "description": "Delete workspace objects not included in the push (default: false)",
4353
- "name": "delete",
4354
- "required": false,
4355
- "allowNo": true,
4356
- "type": "boolean"
4357
- },
4358
- "env": {
4359
- "description": "Include environment variables in import (default: true, use --no-env to exclude)",
4360
- "name": "env",
4361
- "required": false,
4362
- "allowNo": true,
4363
- "type": "boolean"
4364
- },
4365
- "partial": {
4366
- "description": "Partial push — workspace block is not required, existing objects are kept (implies --no-delete)",
4367
- "name": "partial",
4368
- "required": false,
4369
- "allowNo": false,
4370
- "type": "boolean"
4371
- },
4372
- "records": {
4373
- "description": "Include records in import (default: true, use --no-records to exclude)",
4374
- "name": "records",
4375
- "required": false,
4376
- "allowNo": true,
4377
- "type": "boolean"
4378
- },
4379
- "sync-guids": {
4380
- "description": "Write server-assigned GUIDs back to local files (use --no-sync-guids to skip)",
4381
- "name": "sync-guids",
4382
- "required": false,
4383
- "allowNo": true,
4384
- "type": "boolean"
4385
- },
4386
- "truncate": {
4387
- "description": "Truncate all table records before importing",
4388
- "name": "truncate",
4262
+ "force": {
4263
+ "char": "f",
4264
+ "description": "Skip confirmation prompt",
4265
+ "name": "force",
4389
4266
  "required": false,
4390
4267
  "allowNo": false,
4391
4268
  "type": "boolean"
4392
4269
  },
4393
- "workspace": {
4394
- "char": "w",
4395
- "description": "Workspace ID (optional if set in profile)",
4396
- "name": "workspace",
4270
+ "output": {
4271
+ "char": "o",
4272
+ "description": "Output format",
4273
+ "name": "output",
4397
4274
  "required": false,
4275
+ "default": "summary",
4398
4276
  "hasDynamicHelp": false,
4399
4277
  "multiple": false,
4278
+ "options": [
4279
+ "summary",
4280
+ "json"
4281
+ ],
4400
4282
  "type": "option"
4401
4283
  }
4402
4284
  },
4403
4285
  "hasDynamicHelp": false,
4404
4286
  "hiddenAliases": [],
4405
- "id": "workspace:push",
4287
+ "id": "workspace:delete",
4406
4288
  "pluginAlias": "@xano/cli",
4407
4289
  "pluginName": "@xano/cli",
4408
4290
  "pluginType": "core",
@@ -4413,26 +4295,25 @@
4413
4295
  "dist",
4414
4296
  "commands",
4415
4297
  "workspace",
4416
- "push",
4298
+ "delete",
4417
4299
  "index.js"
4418
4300
  ]
4419
4301
  },
4420
- "workspace:pull": {
4302
+ "workspace:edit": {
4421
4303
  "aliases": [],
4422
4304
  "args": {
4423
- "directory": {
4424
- "description": "Output directory for pulled documents",
4425
- "name": "directory",
4426
- "required": true
4305
+ "workspace_id": {
4306
+ "description": "Workspace ID to edit (uses profile workspace if not provided)",
4307
+ "name": "workspace_id",
4308
+ "required": false
4427
4309
  }
4428
4310
  },
4429
- "description": "Pull a workspace multidoc from the Xano Metadata API and split into individual files",
4311
+ "description": "Edit an existing workspace via the Xano Metadata API",
4430
4312
  "examples": [
4431
- "$ xano workspace pull ./my-workspace\nPulled 42 documents to ./my-workspace\n",
4432
- "$ xano workspace pull ./output -w 40\nPulled 15 documents to ./output\n",
4433
- "$ xano workspace pull ./backup --profile production --env --records\nPulled 58 documents to ./backup\n",
4434
- "$ xano workspace pull ./my-workspace --draft\nPulled 42 documents to ./my-workspace\n",
4435
- "$ xano workspace pull ./my-workspace -b dev\nPulled 42 documents to ./my-workspace\n"
4313
+ "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
4314
+ "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
4315
+ "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
4316
+ "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
4436
4317
  ],
4437
4318
  "flags": {
4438
4319
  "profile": {
@@ -4454,49 +4335,56 @@
4454
4335
  "allowNo": false,
4455
4336
  "type": "boolean"
4456
4337
  },
4457
- "branch": {
4458
- "char": "b",
4459
- "description": "Branch name (optional if set in profile, defaults to live)",
4460
- "name": "branch",
4338
+ "description": {
4339
+ "char": "d",
4340
+ "description": "New description for the workspace",
4341
+ "name": "description",
4461
4342
  "required": false,
4462
4343
  "hasDynamicHelp": false,
4463
4344
  "multiple": false,
4464
4345
  "type": "option"
4465
4346
  },
4466
- "env": {
4467
- "description": "Include environment variables",
4468
- "name": "env",
4347
+ "name": {
4348
+ "char": "n",
4349
+ "description": "New name for the workspace",
4350
+ "name": "name",
4469
4351
  "required": false,
4470
- "allowNo": false,
4471
- "type": "boolean"
4352
+ "hasDynamicHelp": false,
4353
+ "multiple": false,
4354
+ "type": "option"
4472
4355
  },
4473
- "draft": {
4474
- "description": "Include draft versions",
4475
- "name": "draft",
4356
+ "output": {
4357
+ "char": "o",
4358
+ "description": "Output format",
4359
+ "name": "output",
4476
4360
  "required": false,
4477
- "allowNo": false,
4478
- "type": "boolean"
4361
+ "default": "summary",
4362
+ "hasDynamicHelp": false,
4363
+ "multiple": false,
4364
+ "options": [
4365
+ "summary",
4366
+ "json"
4367
+ ],
4368
+ "type": "option"
4479
4369
  },
4480
- "records": {
4481
- "description": "Include records",
4482
- "name": "records",
4370
+ "require-token": {
4371
+ "description": "Whether to require a token for documentation access",
4372
+ "name": "require-token",
4483
4373
  "required": false,
4484
- "allowNo": false,
4374
+ "allowNo": true,
4485
4375
  "type": "boolean"
4486
4376
  },
4487
- "workspace": {
4488
- "char": "w",
4489
- "description": "Workspace ID (optional if set in profile)",
4490
- "name": "workspace",
4377
+ "swagger": {
4378
+ "description": "Enable or disable swagger documentation",
4379
+ "name": "swagger",
4491
4380
  "required": false,
4492
- "hasDynamicHelp": false,
4493
- "multiple": false,
4494
- "type": "option"
4381
+ "allowNo": true,
4382
+ "type": "boolean"
4495
4383
  }
4496
4384
  },
4497
4385
  "hasDynamicHelp": false,
4498
4386
  "hiddenAliases": [],
4499
- "id": "workspace:pull",
4387
+ "id": "workspace:edit",
4500
4388
  "pluginAlias": "@xano/cli",
4501
4389
  "pluginName": "@xano/cli",
4502
4390
  "pluginType": "core",
@@ -4507,23 +4395,24 @@
4507
4395
  "dist",
4508
4396
  "commands",
4509
4397
  "workspace",
4510
- "pull",
4398
+ "edit",
4511
4399
  "index.js"
4512
4400
  ]
4513
4401
  },
4514
- "workflow_test:run": {
4402
+ "workspace:get": {
4515
4403
  "aliases": [],
4516
4404
  "args": {
4517
- "workflow_test_id": {
4518
- "description": "ID of the workflow test to run",
4519
- "name": "workflow_test_id",
4520
- "required": true
4405
+ "workspace_id": {
4406
+ "description": "Workspace ID to get details for (uses profile workspace if not provided)",
4407
+ "name": "workspace_id",
4408
+ "required": false
4521
4409
  }
4522
4410
  },
4523
- "description": "Run a workflow test",
4411
+ "description": "Get details of a specific workspace from the Xano Metadata API",
4524
4412
  "examples": [
4525
- "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
4526
- "$ xano workflow-test run 1 -o json"
4413
+ "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
4414
+ "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
4415
+ "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
4527
4416
  ],
4528
4417
  "flags": {
4529
4418
  "profile": {
@@ -4555,23 +4444,14 @@
4555
4444
  "multiple": false,
4556
4445
  "options": [
4557
4446
  "summary",
4558
- "json"
4559
- ],
4560
- "type": "option"
4561
- },
4562
- "workspace": {
4563
- "char": "w",
4564
- "description": "Workspace ID (uses profile workspace if not provided)",
4565
- "name": "workspace",
4566
- "required": false,
4567
- "hasDynamicHelp": false,
4568
- "multiple": false,
4447
+ "json"
4448
+ ],
4569
4449
  "type": "option"
4570
4450
  }
4571
4451
  },
4572
4452
  "hasDynamicHelp": false,
4573
4453
  "hiddenAliases": [],
4574
- "id": "workflow_test:run",
4454
+ "id": "workspace:get",
4575
4455
  "pluginAlias": "@xano/cli",
4576
4456
  "pluginName": "@xano/cli",
4577
4457
  "pluginType": "core",
@@ -4581,18 +4461,20 @@
4581
4461
  "relativePath": [
4582
4462
  "dist",
4583
4463
  "commands",
4584
- "workflow_test",
4585
- "run",
4464
+ "workspace",
4465
+ "get",
4586
4466
  "index.js"
4587
4467
  ]
4588
4468
  },
4589
- "workflow_test:run_all": {
4469
+ "workspace:list": {
4590
4470
  "aliases": [],
4591
4471
  "args": {},
4592
- "description": "Run all workflow tests in a workspace",
4472
+ "description": "List all workspaces from the Xano Metadata API",
4593
4473
  "examples": [
4594
- "$ xano workflow-test run-all\nRunning 3 workflow tests...\n\nPASS my-test (1.234s)\nPASS auth-flow (0.567s)\nFAIL data-validation (0.890s)\n Error: assertion failed at step 3\n\nResults: 2 passed, 1 failed (2.691s total)\n",
4595
- "$ xano workflow-test run-all --branch main -o json"
4474
+ "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4475
+ "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4476
+ "$ xano workspace:list --output json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"workspace-1\"\n },\n {\n \"id\": 2,\n \"name\": \"workspace-2\"\n }\n ]\n}\n",
4477
+ "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4596
4478
  ],
4597
4479
  "flags": {
4598
4480
  "profile": {
@@ -4614,15 +4496,6 @@
4614
4496
  "allowNo": false,
4615
4497
  "type": "boolean"
4616
4498
  },
4617
- "branch": {
4618
- "char": "b",
4619
- "description": "Filter by branch name",
4620
- "name": "branch",
4621
- "required": false,
4622
- "hasDynamicHelp": false,
4623
- "multiple": false,
4624
- "type": "option"
4625
- },
4626
4499
  "output": {
4627
4500
  "char": "o",
4628
4501
  "description": "Output format",
@@ -4636,20 +4509,11 @@
4636
4509
  "json"
4637
4510
  ],
4638
4511
  "type": "option"
4639
- },
4640
- "workspace": {
4641
- "char": "w",
4642
- "description": "Workspace ID (uses profile workspace if not provided)",
4643
- "name": "workspace",
4644
- "required": false,
4645
- "hasDynamicHelp": false,
4646
- "multiple": false,
4647
- "type": "option"
4648
4512
  }
4649
4513
  },
4650
4514
  "hasDynamicHelp": false,
4651
4515
  "hiddenAliases": [],
4652
- "id": "workflow_test:run_all",
4516
+ "id": "workspace:list",
4653
4517
  "pluginAlias": "@xano/cli",
4654
4518
  "pluginName": "@xano/cli",
4655
4519
  "pluginType": "core",
@@ -4659,19 +4523,27 @@
4659
4523
  "relativePath": [
4660
4524
  "dist",
4661
4525
  "commands",
4662
- "workflow_test",
4663
- "run_all",
4526
+ "workspace",
4527
+ "list",
4664
4528
  "index.js"
4665
4529
  ]
4666
4530
  },
4667
- "workflow_test:list": {
4531
+ "workspace:pull": {
4668
4532
  "aliases": [],
4669
- "args": {},
4670
- "description": "List all workflow tests in a workspace",
4533
+ "args": {
4534
+ "directory": {
4535
+ "description": "Output directory for pulled documents",
4536
+ "name": "directory",
4537
+ "required": true
4538
+ }
4539
+ },
4540
+ "description": "Pull a workspace multidoc from the Xano Metadata API and split into individual files",
4671
4541
  "examples": [
4672
- "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
4673
- "$ xano workflow-test list -w 5 --output json",
4674
- "$ xano workflow-test list --branch main"
4542
+ "$ xano workspace pull ./my-workspace\nPulled 42 documents to ./my-workspace\n",
4543
+ "$ xano workspace pull ./output -w 40\nPulled 15 documents to ./output\n",
4544
+ "$ xano workspace pull ./backup --profile production --env --records\nPulled 58 documents to ./backup\n",
4545
+ "$ xano workspace pull ./my-workspace --draft\nPulled 42 documents to ./my-workspace\n",
4546
+ "$ xano workspace pull ./my-workspace -b dev\nPulled 42 documents to ./my-workspace\n"
4675
4547
  ],
4676
4548
  "flags": {
4677
4549
  "profile": {
@@ -4695,30 +4567,37 @@
4695
4567
  },
4696
4568
  "branch": {
4697
4569
  "char": "b",
4698
- "description": "Filter by branch name",
4570
+ "description": "Branch name (optional if set in profile, defaults to live)",
4699
4571
  "name": "branch",
4700
4572
  "required": false,
4701
4573
  "hasDynamicHelp": false,
4702
4574
  "multiple": false,
4703
4575
  "type": "option"
4704
4576
  },
4705
- "output": {
4706
- "char": "o",
4707
- "description": "Output format",
4708
- "name": "output",
4577
+ "env": {
4578
+ "description": "Include environment variables",
4579
+ "name": "env",
4709
4580
  "required": false,
4710
- "default": "summary",
4711
- "hasDynamicHelp": false,
4712
- "multiple": false,
4713
- "options": [
4714
- "summary",
4715
- "json"
4716
- ],
4717
- "type": "option"
4581
+ "allowNo": false,
4582
+ "type": "boolean"
4583
+ },
4584
+ "draft": {
4585
+ "description": "Include draft versions",
4586
+ "name": "draft",
4587
+ "required": false,
4588
+ "allowNo": false,
4589
+ "type": "boolean"
4590
+ },
4591
+ "records": {
4592
+ "description": "Include records",
4593
+ "name": "records",
4594
+ "required": false,
4595
+ "allowNo": false,
4596
+ "type": "boolean"
4718
4597
  },
4719
4598
  "workspace": {
4720
4599
  "char": "w",
4721
- "description": "Workspace ID (uses profile workspace if not provided)",
4600
+ "description": "Workspace ID (optional if set in profile)",
4722
4601
  "name": "workspace",
4723
4602
  "required": false,
4724
4603
  "hasDynamicHelp": false,
@@ -4728,7 +4607,7 @@
4728
4607
  },
4729
4608
  "hasDynamicHelp": false,
4730
4609
  "hiddenAliases": [],
4731
- "id": "workflow_test:list",
4610
+ "id": "workspace:pull",
4732
4611
  "pluginAlias": "@xano/cli",
4733
4612
  "pluginName": "@xano/cli",
4734
4613
  "pluginType": "core",
@@ -4738,8 +4617,8 @@
4738
4617
  "relativePath": [
4739
4618
  "dist",
4740
4619
  "commands",
4741
- "workflow_test",
4742
- "list",
4620
+ "workspace",
4621
+ "pull",
4743
4622
  "index.js"
4744
4623
  ]
4745
4624
  },
@@ -5026,20 +4905,28 @@
5026
4905
  "index.js"
5027
4906
  ]
5028
4907
  },
5029
- "tenant:backup:delete": {
4908
+ "workspace:push": {
5030
4909
  "aliases": [],
5031
4910
  "args": {
5032
- "tenant_name": {
5033
- "description": "Tenant name that owns the backup",
5034
- "name": "tenant_name",
4911
+ "directory": {
4912
+ "description": "Directory containing documents to push (as produced by workspace pull)",
4913
+ "name": "directory",
5035
4914
  "required": true
5036
4915
  }
5037
4916
  },
5038
- "description": "Delete a tenant backup permanently. This action cannot be undone.",
4917
+ "description": "Push local documents to a workspace via the Xano Metadata API multidoc endpoint",
5039
4918
  "examples": [
5040
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to delete backup #10? This action cannot be undone. (y/N) y\nDeleted backup #10\n",
5041
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5042
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
4919
+ "$ xano workspace push ./my-workspace\nPushed 42 documents from ./my-workspace\n",
4920
+ "$ xano workspace push ./output -w 40\nPushed 15 documents from ./output\n",
4921
+ "$ xano workspace push ./backup --profile production\nPushed 58 documents from ./backup\n",
4922
+ "$ xano workspace push ./my-workspace -b dev\nPushed 42 documents from ./my-workspace\n",
4923
+ "$ xano workspace push ./my-functions --partial\nPush some files without a workspace block (implies --no-delete)\n",
4924
+ "$ xano workspace push ./my-workspace --no-delete\nPatch files without deleting existing workspace objects\n",
4925
+ "$ xano workspace push ./my-workspace --no-records\nPush schema only, skip importing table records\n",
4926
+ "$ xano workspace push ./my-workspace --no-env\nPush without overwriting environment variables\n",
4927
+ "$ xano workspace push ./my-workspace --truncate\nTruncate all table records before importing\n",
4928
+ "$ xano workspace push ./my-workspace --truncate --no-records\nTruncate all table records without importing new ones\n",
4929
+ "$ xano workspace push ./my-workspace --no-records --no-env\nPush schema only, skip records and environment variables\n"
5043
4930
  ],
5044
4931
  "flags": {
5045
4932
  "profile": {
@@ -5061,22 +4948,128 @@
5061
4948
  "allowNo": false,
5062
4949
  "type": "boolean"
5063
4950
  },
5064
- "backup_id": {
5065
- "description": "Backup ID to delete",
5066
- "name": "backup_id",
5067
- "required": true,
4951
+ "branch": {
4952
+ "char": "b",
4953
+ "description": "Branch name (optional if set in profile, defaults to live)",
4954
+ "name": "branch",
4955
+ "required": false,
5068
4956
  "hasDynamicHelp": false,
5069
4957
  "multiple": false,
5070
4958
  "type": "option"
5071
4959
  },
5072
- "force": {
5073
- "char": "f",
5074
- "description": "Skip confirmation prompt",
5075
- "name": "force",
4960
+ "delete": {
4961
+ "description": "Delete workspace objects not included in the push (default: false)",
4962
+ "name": "delete",
4963
+ "required": false,
4964
+ "allowNo": true,
4965
+ "type": "boolean"
4966
+ },
4967
+ "env": {
4968
+ "description": "Include environment variables in import (default: true, use --no-env to exclude)",
4969
+ "name": "env",
4970
+ "required": false,
4971
+ "allowNo": true,
4972
+ "type": "boolean"
4973
+ },
4974
+ "partial": {
4975
+ "description": "Partial push — workspace block is not required, existing objects are kept (implies --no-delete)",
4976
+ "name": "partial",
4977
+ "required": false,
4978
+ "allowNo": false,
4979
+ "type": "boolean"
4980
+ },
4981
+ "records": {
4982
+ "description": "Include records in import (default: true, use --no-records to exclude)",
4983
+ "name": "records",
4984
+ "required": false,
4985
+ "allowNo": true,
4986
+ "type": "boolean"
4987
+ },
4988
+ "sync-guids": {
4989
+ "description": "Write server-assigned GUIDs back to local files (use --no-sync-guids to skip)",
4990
+ "name": "sync-guids",
4991
+ "required": false,
4992
+ "allowNo": true,
4993
+ "type": "boolean"
4994
+ },
4995
+ "truncate": {
4996
+ "description": "Truncate all table records before importing",
4997
+ "name": "truncate",
4998
+ "required": false,
4999
+ "allowNo": false,
5000
+ "type": "boolean"
5001
+ },
5002
+ "workspace": {
5003
+ "char": "w",
5004
+ "description": "Workspace ID (optional if set in profile)",
5005
+ "name": "workspace",
5006
+ "required": false,
5007
+ "hasDynamicHelp": false,
5008
+ "multiple": false,
5009
+ "type": "option"
5010
+ }
5011
+ },
5012
+ "hasDynamicHelp": false,
5013
+ "hiddenAliases": [],
5014
+ "id": "workspace:push",
5015
+ "pluginAlias": "@xano/cli",
5016
+ "pluginName": "@xano/cli",
5017
+ "pluginType": "core",
5018
+ "strict": true,
5019
+ "enableJsonFlag": false,
5020
+ "isESM": true,
5021
+ "relativePath": [
5022
+ "dist",
5023
+ "commands",
5024
+ "workspace",
5025
+ "push",
5026
+ "index.js"
5027
+ ]
5028
+ },
5029
+ "tenant:backup:create": {
5030
+ "aliases": [],
5031
+ "args": {
5032
+ "tenant_name": {
5033
+ "description": "Tenant name to back up",
5034
+ "name": "tenant_name",
5035
+ "required": true
5036
+ }
5037
+ },
5038
+ "description": "Create a backup for a tenant",
5039
+ "examples": [
5040
+ "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
5041
+ "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
5042
+ ],
5043
+ "flags": {
5044
+ "profile": {
5045
+ "char": "p",
5046
+ "description": "Profile to use (uses default profile if not specified)",
5047
+ "env": "XANO_PROFILE",
5048
+ "name": "profile",
5049
+ "required": false,
5050
+ "hasDynamicHelp": false,
5051
+ "multiple": false,
5052
+ "type": "option"
5053
+ },
5054
+ "verbose": {
5055
+ "char": "v",
5056
+ "description": "Show detailed request/response information",
5057
+ "env": "XANO_VERBOSE",
5058
+ "name": "verbose",
5076
5059
  "required": false,
5077
5060
  "allowNo": false,
5078
5061
  "type": "boolean"
5079
5062
  },
5063
+ "description": {
5064
+ "char": "d",
5065
+ "description": "Backup description",
5066
+ "name": "description",
5067
+ "required": false,
5068
+ "default": "",
5069
+ "hasDynamicHelp": false,
5070
+ "multiple": false,
5071
+ "type": "option"
5072
+ },
5080
5073
  "output": {
5081
5074
  "char": "o",
5082
5075
  "description": "Output format",
@@ -5103,7 +5096,7 @@
5103
5096
  },
5104
5097
  "hasDynamicHelp": false,
5105
5098
  "hiddenAliases": [],
5106
- "id": "tenant:backup:delete",
5099
+ "id": "tenant:backup:create",
5107
5100
  "pluginAlias": "@xano/cli",
5108
5101
  "pluginName": "@xano/cli",
5109
5102
  "pluginType": "core",
@@ -5115,7 +5108,7 @@
5115
5108
  "commands",
5116
5109
  "tenant",
5117
5110
  "backup",
5118
- "delete",
5111
+ "create",
5119
5112
  "index.js"
5120
5113
  ]
5121
5114
  },
@@ -5212,19 +5205,20 @@
5212
5205
  "index.js"
5213
5206
  ]
5214
5207
  },
5215
- "tenant:backup:list": {
5208
+ "tenant:backup:delete": {
5216
5209
  "aliases": [],
5217
5210
  "args": {
5218
5211
  "tenant_name": {
5219
- "description": "Tenant name to list backups for",
5212
+ "description": "Tenant name that owns the backup",
5220
5213
  "name": "tenant_name",
5221
5214
  "required": true
5222
5215
  }
5223
5216
  },
5224
- "description": "List backups for a tenant",
5217
+ "description": "Delete a tenant backup permanently. This action cannot be undone.",
5225
5218
  "examples": [
5226
- "$ xano tenant backup list t1234-abcd-xyz1\nBackups for tenant t1234-abcd-xyz1:\n - #1 - Pre-deploy backup (2024-01-15)\n - #2 - Daily backup (2024-01-16)\n",
5227
- "$ xano tenant backup list t1234-abcd-xyz1 -o json"
5219
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to delete backup #10? This action cannot be undone. (y/N) y\nDeleted backup #10\n",
5220
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5221
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
5228
5222
  ],
5229
5223
  "flags": {
5230
5224
  "profile": {
@@ -5246,6 +5240,22 @@
5246
5240
  "allowNo": false,
5247
5241
  "type": "boolean"
5248
5242
  },
5243
+ "backup_id": {
5244
+ "description": "Backup ID to delete",
5245
+ "name": "backup_id",
5246
+ "required": true,
5247
+ "hasDynamicHelp": false,
5248
+ "multiple": false,
5249
+ "type": "option"
5250
+ },
5251
+ "force": {
5252
+ "char": "f",
5253
+ "description": "Skip confirmation prompt",
5254
+ "name": "force",
5255
+ "required": false,
5256
+ "allowNo": false,
5257
+ "type": "boolean"
5258
+ },
5249
5259
  "output": {
5250
5260
  "char": "o",
5251
5261
  "description": "Output format",
@@ -5260,15 +5270,6 @@
5260
5270
  ],
5261
5271
  "type": "option"
5262
5272
  },
5263
- "page": {
5264
- "description": "Page number for pagination",
5265
- "name": "page",
5266
- "required": false,
5267
- "default": 1,
5268
- "hasDynamicHelp": false,
5269
- "multiple": false,
5270
- "type": "option"
5271
- },
5272
5273
  "workspace": {
5273
5274
  "char": "w",
5274
5275
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -5281,7 +5282,7 @@
5281
5282
  },
5282
5283
  "hasDynamicHelp": false,
5283
5284
  "hiddenAliases": [],
5284
- "id": "tenant:backup:list",
5285
+ "id": "tenant:backup:delete",
5285
5286
  "pluginAlias": "@xano/cli",
5286
5287
  "pluginName": "@xano/cli",
5287
5288
  "pluginType": "core",
@@ -5293,23 +5294,23 @@
5293
5294
  "commands",
5294
5295
  "tenant",
5295
5296
  "backup",
5296
- "list",
5297
+ "delete",
5297
5298
  "index.js"
5298
5299
  ]
5299
5300
  },
5300
- "tenant:backup:restore": {
5301
+ "tenant:backup:list": {
5301
5302
  "aliases": [],
5302
5303
  "args": {
5303
5304
  "tenant_name": {
5304
- "description": "Tenant name to restore",
5305
+ "description": "Tenant name to list backups for",
5305
5306
  "name": "tenant_name",
5306
5307
  "required": true
5307
5308
  }
5308
5309
  },
5309
- "description": "Restore a tenant from a backup. This replaces the current tenant data.",
5310
+ "description": "List backups for a tenant",
5310
5311
  "examples": [
5311
- "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to restore tenant t1234-abcd-xyz1 from backup 10? This will replace current data. (y/N) y\nRestored tenant t1234-abcd-xyz1 from backup #10\n",
5312
- "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
5312
+ "$ xano tenant backup list t1234-abcd-xyz1\nBackups for tenant t1234-abcd-xyz1:\n - #1 - Pre-deploy backup (2024-01-15)\n - #2 - Daily backup (2024-01-16)\n",
5313
+ "$ xano tenant backup list t1234-abcd-xyz1 -o json"
5313
5314
  ],
5314
5315
  "flags": {
5315
5316
  "profile": {
@@ -5331,22 +5332,6 @@
5331
5332
  "allowNo": false,
5332
5333
  "type": "boolean"
5333
5334
  },
5334
- "backup_id": {
5335
- "description": "Backup ID to restore from",
5336
- "name": "backup_id",
5337
- "required": true,
5338
- "hasDynamicHelp": false,
5339
- "multiple": false,
5340
- "type": "option"
5341
- },
5342
- "force": {
5343
- "char": "f",
5344
- "description": "Skip confirmation prompt",
5345
- "name": "force",
5346
- "required": false,
5347
- "allowNo": false,
5348
- "type": "boolean"
5349
- },
5350
5335
  "output": {
5351
5336
  "char": "o",
5352
5337
  "description": "Output format",
@@ -5361,6 +5346,15 @@
5361
5346
  ],
5362
5347
  "type": "option"
5363
5348
  },
5349
+ "page": {
5350
+ "description": "Page number for pagination",
5351
+ "name": "page",
5352
+ "required": false,
5353
+ "default": 1,
5354
+ "hasDynamicHelp": false,
5355
+ "multiple": false,
5356
+ "type": "option"
5357
+ },
5364
5358
  "workspace": {
5365
5359
  "char": "w",
5366
5360
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -5373,7 +5367,7 @@
5373
5367
  },
5374
5368
  "hasDynamicHelp": false,
5375
5369
  "hiddenAliases": [],
5376
- "id": "tenant:backup:restore",
5370
+ "id": "tenant:backup:list",
5377
5371
  "pluginAlias": "@xano/cli",
5378
5372
  "pluginName": "@xano/cli",
5379
5373
  "pluginType": "core",
@@ -5385,23 +5379,23 @@
5385
5379
  "commands",
5386
5380
  "tenant",
5387
5381
  "backup",
5388
- "restore",
5382
+ "list",
5389
5383
  "index.js"
5390
5384
  ]
5391
5385
  },
5392
- "tenant:backup:create": {
5386
+ "tenant:backup:import": {
5393
5387
  "aliases": [],
5394
5388
  "args": {
5395
5389
  "tenant_name": {
5396
- "description": "Tenant name to back up",
5390
+ "description": "Tenant name to import backup into",
5397
5391
  "name": "tenant_name",
5398
5392
  "required": true
5399
5393
  }
5400
5394
  },
5401
- "description": "Create a backup for a tenant",
5395
+ "description": "Import a backup file into a tenant",
5402
5396
  "examples": [
5403
- "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
5404
- "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
5397
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5398
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5405
5399
  ],
5406
5400
  "flags": {
5407
5401
  "profile": {
@@ -5433,6 +5427,15 @@
5433
5427
  "multiple": false,
5434
5428
  "type": "option"
5435
5429
  },
5430
+ "file": {
5431
+ "char": "f",
5432
+ "description": "Path to the backup file (.tar.gz)",
5433
+ "name": "file",
5434
+ "required": true,
5435
+ "hasDynamicHelp": false,
5436
+ "multiple": false,
5437
+ "type": "option"
5438
+ },
5436
5439
  "output": {
5437
5440
  "char": "o",
5438
5441
  "description": "Output format",
@@ -5459,7 +5462,7 @@
5459
5462
  },
5460
5463
  "hasDynamicHelp": false,
5461
5464
  "hiddenAliases": [],
5462
- "id": "tenant:backup:create",
5465
+ "id": "tenant:backup:import",
5463
5466
  "pluginAlias": "@xano/cli",
5464
5467
  "pluginName": "@xano/cli",
5465
5468
  "pluginType": "core",
@@ -5471,7 +5474,7 @@
5471
5474
  "commands",
5472
5475
  "tenant",
5473
5476
  "backup",
5474
- "create",
5477
+ "import",
5475
5478
  "index.js"
5476
5479
  ]
5477
5480
  },
@@ -5597,20 +5600,19 @@
5597
5600
  "index.js"
5598
5601
  ]
5599
5602
  },
5600
- "tenant:cluster:delete": {
5603
+ "tenant:backup:restore": {
5601
5604
  "aliases": [],
5602
5605
  "args": {
5603
- "cluster_id": {
5604
- "description": "Cluster ID to delete",
5605
- "name": "cluster_id",
5606
+ "tenant_name": {
5607
+ "description": "Tenant name to restore",
5608
+ "name": "tenant_name",
5606
5609
  "required": true
5607
5610
  }
5608
5611
  },
5609
- "description": "Delete a tenant cluster. This action cannot be undone.",
5612
+ "description": "Restore a tenant from a backup. This replaces the current tenant data.",
5610
5613
  "examples": [
5611
- "$ xano tenant cluster delete 3\nAre you sure you want to delete tenant cluster 3? This action cannot be undone. (y/N) y\nTenant cluster 3 deleted successfully\n",
5612
- "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5613
- "$ xano tenant cluster delete 3 -f -o json"
5614
+ "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to restore tenant t1234-abcd-xyz1 from backup 10? This will replace current data. (y/N) y\nRestored tenant t1234-abcd-xyz1 from backup #10\n",
5615
+ "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
5614
5616
  ],
5615
5617
  "flags": {
5616
5618
  "profile": {
@@ -5632,6 +5634,14 @@
5632
5634
  "allowNo": false,
5633
5635
  "type": "boolean"
5634
5636
  },
5637
+ "backup_id": {
5638
+ "description": "Backup ID to restore from",
5639
+ "name": "backup_id",
5640
+ "required": true,
5641
+ "hasDynamicHelp": false,
5642
+ "multiple": false,
5643
+ "type": "option"
5644
+ },
5635
5645
  "force": {
5636
5646
  "char": "f",
5637
5647
  "description": "Skip confirmation prompt",
@@ -5653,11 +5663,20 @@
5653
5663
  "json"
5654
5664
  ],
5655
5665
  "type": "option"
5666
+ },
5667
+ "workspace": {
5668
+ "char": "w",
5669
+ "description": "Workspace ID (uses profile workspace if not provided)",
5670
+ "name": "workspace",
5671
+ "required": false,
5672
+ "hasDynamicHelp": false,
5673
+ "multiple": false,
5674
+ "type": "option"
5656
5675
  }
5657
5676
  },
5658
5677
  "hasDynamicHelp": false,
5659
5678
  "hiddenAliases": [],
5660
- "id": "tenant:cluster:delete",
5679
+ "id": "tenant:backup:restore",
5661
5680
  "pluginAlias": "@xano/cli",
5662
5681
  "pluginName": "@xano/cli",
5663
5682
  "pluginType": "core",
@@ -5668,24 +5687,25 @@
5668
5687
  "dist",
5669
5688
  "commands",
5670
5689
  "tenant",
5671
- "cluster",
5672
- "delete",
5690
+ "backup",
5691
+ "restore",
5673
5692
  "index.js"
5674
5693
  ]
5675
5694
  },
5676
- "tenant:cluster:get": {
5695
+ "tenant:cluster:delete": {
5677
5696
  "aliases": [],
5678
5697
  "args": {
5679
5698
  "cluster_id": {
5680
- "description": "Cluster ID to retrieve",
5699
+ "description": "Cluster ID to delete",
5681
5700
  "name": "cluster_id",
5682
5701
  "required": true
5683
5702
  }
5684
5703
  },
5685
- "description": "Get details of a specific tenant cluster",
5704
+ "description": "Delete a tenant cluster. This action cannot be undone.",
5686
5705
  "examples": [
5687
- "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5688
- "$ xano tenant cluster get 1 -o json"
5706
+ "$ xano tenant cluster delete 3\nAre you sure you want to delete tenant cluster 3? This action cannot be undone. (y/N) y\nTenant cluster 3 deleted successfully\n",
5707
+ "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5708
+ "$ xano tenant cluster delete 3 -f -o json"
5689
5709
  ],
5690
5710
  "flags": {
5691
5711
  "profile": {
@@ -5707,6 +5727,14 @@
5707
5727
  "allowNo": false,
5708
5728
  "type": "boolean"
5709
5729
  },
5730
+ "force": {
5731
+ "char": "f",
5732
+ "description": "Skip confirmation prompt",
5733
+ "name": "force",
5734
+ "required": false,
5735
+ "allowNo": false,
5736
+ "type": "boolean"
5737
+ },
5710
5738
  "output": {
5711
5739
  "char": "o",
5712
5740
  "description": "Output format",
@@ -5724,7 +5752,7 @@
5724
5752
  },
5725
5753
  "hasDynamicHelp": false,
5726
5754
  "hiddenAliases": [],
5727
- "id": "tenant:cluster:get",
5755
+ "id": "tenant:cluster:delete",
5728
5756
  "pluginAlias": "@xano/cli",
5729
5757
  "pluginName": "@xano/cli",
5730
5758
  "pluginType": "core",
@@ -5736,23 +5764,23 @@
5736
5764
  "commands",
5737
5765
  "tenant",
5738
5766
  "cluster",
5739
- "get",
5767
+ "delete",
5740
5768
  "index.js"
5741
5769
  ]
5742
5770
  },
5743
- "tenant:backup:import": {
5771
+ "tenant:cluster:edit": {
5744
5772
  "aliases": [],
5745
5773
  "args": {
5746
- "tenant_name": {
5747
- "description": "Tenant name to import backup into",
5748
- "name": "tenant_name",
5774
+ "cluster_id": {
5775
+ "description": "Cluster ID to edit",
5776
+ "name": "cluster_id",
5749
5777
  "required": true
5750
5778
  }
5751
5779
  },
5752
- "description": "Import a backup file into a tenant",
5780
+ "description": "Update an existing tenant cluster",
5753
5781
  "examples": [
5754
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5755
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5782
+ "$ xano tenant cluster edit 1 --name \"us-east-1-updated\" --description \"Updated cluster\" --domain \"us-east.xano.io\" --type standard\nUpdated tenant cluster: us-east-1-updated (standard) - ID: 1\n",
5783
+ "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5756
5784
  ],
5757
5785
  "flags": {
5758
5786
  "profile": {
@@ -5776,18 +5804,25 @@
5776
5804
  },
5777
5805
  "description": {
5778
5806
  "char": "d",
5779
- "description": "Backup description",
5807
+ "description": "Cluster description",
5780
5808
  "name": "description",
5781
- "required": false,
5782
- "default": "",
5809
+ "required": true,
5783
5810
  "hasDynamicHelp": false,
5784
5811
  "multiple": false,
5785
5812
  "type": "option"
5786
5813
  },
5787
- "file": {
5788
- "char": "f",
5789
- "description": "Path to the backup file (.tar.gz)",
5790
- "name": "file",
5814
+ "domain": {
5815
+ "description": "Custom domain for the cluster",
5816
+ "name": "domain",
5817
+ "required": true,
5818
+ "hasDynamicHelp": false,
5819
+ "multiple": false,
5820
+ "type": "option"
5821
+ },
5822
+ "name": {
5823
+ "char": "n",
5824
+ "description": "Cluster name",
5825
+ "name": "name",
5791
5826
  "required": true,
5792
5827
  "hasDynamicHelp": false,
5793
5828
  "multiple": false,
@@ -5807,19 +5842,22 @@
5807
5842
  ],
5808
5843
  "type": "option"
5809
5844
  },
5810
- "workspace": {
5811
- "char": "w",
5812
- "description": "Workspace ID (uses profile workspace if not provided)",
5813
- "name": "workspace",
5814
- "required": false,
5845
+ "type": {
5846
+ "description": "Cluster type",
5847
+ "name": "type",
5848
+ "required": true,
5815
5849
  "hasDynamicHelp": false,
5816
5850
  "multiple": false,
5851
+ "options": [
5852
+ "standard",
5853
+ "run"
5854
+ ],
5817
5855
  "type": "option"
5818
5856
  }
5819
5857
  },
5820
5858
  "hasDynamicHelp": false,
5821
5859
  "hiddenAliases": [],
5822
- "id": "tenant:backup:import",
5860
+ "id": "tenant:cluster:edit",
5823
5861
  "pluginAlias": "@xano/cli",
5824
5862
  "pluginName": "@xano/cli",
5825
5863
  "pluginType": "core",
@@ -5830,70 +5868,44 @@
5830
5868
  "dist",
5831
5869
  "commands",
5832
5870
  "tenant",
5833
- "backup",
5834
- "import",
5871
+ "cluster",
5872
+ "edit",
5835
5873
  "index.js"
5836
5874
  ]
5837
5875
  },
5838
- "tenant:cluster:edit": {
5876
+ "tenant:cluster:get": {
5839
5877
  "aliases": [],
5840
5878
  "args": {
5841
5879
  "cluster_id": {
5842
- "description": "Cluster ID to edit",
5880
+ "description": "Cluster ID to retrieve",
5843
5881
  "name": "cluster_id",
5844
5882
  "required": true
5845
5883
  }
5846
5884
  },
5847
- "description": "Update an existing tenant cluster",
5885
+ "description": "Get details of a specific tenant cluster",
5848
5886
  "examples": [
5849
- "$ xano tenant cluster edit 1 --name \"us-east-1-updated\" --description \"Updated cluster\" --domain \"us-east.xano.io\" --type standard\nUpdated tenant cluster: us-east-1-updated (standard) - ID: 1\n",
5850
- "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5887
+ "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5888
+ "$ xano tenant cluster get 1 -o json"
5851
5889
  ],
5852
5890
  "flags": {
5853
- "profile": {
5854
- "char": "p",
5855
- "description": "Profile to use (uses default profile if not specified)",
5856
- "env": "XANO_PROFILE",
5857
- "name": "profile",
5858
- "required": false,
5859
- "hasDynamicHelp": false,
5860
- "multiple": false,
5861
- "type": "option"
5862
- },
5863
- "verbose": {
5864
- "char": "v",
5865
- "description": "Show detailed request/response information",
5866
- "env": "XANO_VERBOSE",
5867
- "name": "verbose",
5868
- "required": false,
5869
- "allowNo": false,
5870
- "type": "boolean"
5871
- },
5872
- "description": {
5873
- "char": "d",
5874
- "description": "Cluster description",
5875
- "name": "description",
5876
- "required": true,
5877
- "hasDynamicHelp": false,
5878
- "multiple": false,
5879
- "type": "option"
5880
- },
5881
- "domain": {
5882
- "description": "Custom domain for the cluster",
5883
- "name": "domain",
5884
- "required": true,
5891
+ "profile": {
5892
+ "char": "p",
5893
+ "description": "Profile to use (uses default profile if not specified)",
5894
+ "env": "XANO_PROFILE",
5895
+ "name": "profile",
5896
+ "required": false,
5885
5897
  "hasDynamicHelp": false,
5886
5898
  "multiple": false,
5887
5899
  "type": "option"
5888
5900
  },
5889
- "name": {
5890
- "char": "n",
5891
- "description": "Cluster name",
5892
- "name": "name",
5893
- "required": true,
5894
- "hasDynamicHelp": false,
5895
- "multiple": false,
5896
- "type": "option"
5901
+ "verbose": {
5902
+ "char": "v",
5903
+ "description": "Show detailed request/response information",
5904
+ "env": "XANO_VERBOSE",
5905
+ "name": "verbose",
5906
+ "required": false,
5907
+ "allowNo": false,
5908
+ "type": "boolean"
5897
5909
  },
5898
5910
  "output": {
5899
5911
  "char": "o",
@@ -5908,23 +5920,11 @@
5908
5920
  "json"
5909
5921
  ],
5910
5922
  "type": "option"
5911
- },
5912
- "type": {
5913
- "description": "Cluster type",
5914
- "name": "type",
5915
- "required": true,
5916
- "hasDynamicHelp": false,
5917
- "multiple": false,
5918
- "options": [
5919
- "standard",
5920
- "run"
5921
- ],
5922
- "type": "option"
5923
5923
  }
5924
5924
  },
5925
5925
  "hasDynamicHelp": false,
5926
5926
  "hiddenAliases": [],
5927
- "id": "tenant:cluster:edit",
5927
+ "id": "tenant:cluster:get",
5928
5928
  "pluginAlias": "@xano/cli",
5929
5929
  "pluginName": "@xano/cli",
5930
5930
  "pluginType": "core",
@@ -5936,7 +5936,7 @@
5936
5936
  "commands",
5937
5937
  "tenant",
5938
5938
  "cluster",
5939
- "edit",
5939
+ "get",
5940
5940
  "index.js"
5941
5941
  ]
5942
5942
  },
@@ -6095,6 +6095,91 @@
6095
6095
  "index.js"
6096
6096
  ]
6097
6097
  },
6098
+ "tenant:env:get": {
6099
+ "aliases": [],
6100
+ "args": {
6101
+ "tenant_name": {
6102
+ "description": "Tenant name",
6103
+ "name": "tenant_name",
6104
+ "required": true
6105
+ }
6106
+ },
6107
+ "description": "Get a single environment variable for a tenant",
6108
+ "examples": [
6109
+ "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
6110
+ "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6111
+ ],
6112
+ "flags": {
6113
+ "profile": {
6114
+ "char": "p",
6115
+ "description": "Profile to use (uses default profile if not specified)",
6116
+ "env": "XANO_PROFILE",
6117
+ "name": "profile",
6118
+ "required": false,
6119
+ "hasDynamicHelp": false,
6120
+ "multiple": false,
6121
+ "type": "option"
6122
+ },
6123
+ "verbose": {
6124
+ "char": "v",
6125
+ "description": "Show detailed request/response information",
6126
+ "env": "XANO_VERBOSE",
6127
+ "name": "verbose",
6128
+ "required": false,
6129
+ "allowNo": false,
6130
+ "type": "boolean"
6131
+ },
6132
+ "name": {
6133
+ "char": "n",
6134
+ "description": "Environment variable name",
6135
+ "name": "name",
6136
+ "required": true,
6137
+ "hasDynamicHelp": false,
6138
+ "multiple": false,
6139
+ "type": "option"
6140
+ },
6141
+ "output": {
6142
+ "char": "o",
6143
+ "description": "Output format",
6144
+ "name": "output",
6145
+ "required": false,
6146
+ "default": "summary",
6147
+ "hasDynamicHelp": false,
6148
+ "multiple": false,
6149
+ "options": [
6150
+ "summary",
6151
+ "json"
6152
+ ],
6153
+ "type": "option"
6154
+ },
6155
+ "workspace": {
6156
+ "char": "w",
6157
+ "description": "Workspace ID (uses profile workspace if not provided)",
6158
+ "name": "workspace",
6159
+ "required": false,
6160
+ "hasDynamicHelp": false,
6161
+ "multiple": false,
6162
+ "type": "option"
6163
+ }
6164
+ },
6165
+ "hasDynamicHelp": false,
6166
+ "hiddenAliases": [],
6167
+ "id": "tenant:env:get",
6168
+ "pluginAlias": "@xano/cli",
6169
+ "pluginName": "@xano/cli",
6170
+ "pluginType": "core",
6171
+ "strict": true,
6172
+ "enableJsonFlag": false,
6173
+ "isESM": true,
6174
+ "relativePath": [
6175
+ "dist",
6176
+ "commands",
6177
+ "tenant",
6178
+ "env",
6179
+ "get",
6180
+ "index.js"
6181
+ ]
6182
+ },
6098
6183
  "tenant:env:get_all": {
6099
6184
  "aliases": [],
6100
6185
  "args": {
@@ -6189,7 +6274,7 @@
6189
6274
  "index.js"
6190
6275
  ]
6191
6276
  },
6192
- "tenant:env:get": {
6277
+ "tenant:env:set": {
6193
6278
  "aliases": [],
6194
6279
  "args": {
6195
6280
  "tenant_name": {
@@ -6198,10 +6283,10 @@
6198
6283
  "required": true
6199
6284
  }
6200
6285
  },
6201
- "description": "Get a single environment variable for a tenant",
6286
+ "description": "Set (create or update) an environment variable for a tenant",
6202
6287
  "examples": [
6203
- "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
6204
- "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6288
+ "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb\nEnvironment variable 'DATABASE_URL' set for tenant my-tenant\n",
6289
+ "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb -w 5 -o json"
6205
6290
  ],
6206
6291
  "flags": {
6207
6292
  "profile": {
@@ -6246,6 +6331,14 @@
6246
6331
  ],
6247
6332
  "type": "option"
6248
6333
  },
6334
+ "value": {
6335
+ "description": "Environment variable value",
6336
+ "name": "value",
6337
+ "required": true,
6338
+ "hasDynamicHelp": false,
6339
+ "multiple": false,
6340
+ "type": "option"
6341
+ },
6249
6342
  "workspace": {
6250
6343
  "char": "w",
6251
6344
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6258,7 +6351,7 @@
6258
6351
  },
6259
6352
  "hasDynamicHelp": false,
6260
6353
  "hiddenAliases": [],
6261
- "id": "tenant:env:get",
6354
+ "id": "tenant:env:set",
6262
6355
  "pluginAlias": "@xano/cli",
6263
6356
  "pluginName": "@xano/cli",
6264
6357
  "pluginType": "core",
@@ -6270,7 +6363,7 @@
6270
6363
  "commands",
6271
6364
  "tenant",
6272
6365
  "env",
6273
- "get",
6366
+ "set",
6274
6367
  "index.js"
6275
6368
  ]
6276
6369
  },
@@ -6350,7 +6443,7 @@
6350
6443
  "index.js"
6351
6444
  ]
6352
6445
  },
6353
- "tenant:env:set": {
6446
+ "tenant:license:get": {
6354
6447
  "aliases": [],
6355
6448
  "args": {
6356
6449
  "tenant_name": {
@@ -6359,10 +6452,106 @@
6359
6452
  "required": true
6360
6453
  }
6361
6454
  },
6362
- "description": "Set (create or update) an environment variable for a tenant",
6455
+ "description": "Get the license for a tenant",
6363
6456
  "examples": [
6364
- "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb\nEnvironment variable 'DATABASE_URL' set for tenant my-tenant\n",
6365
- "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb -w 5 -o json"
6457
+ "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6458
+ "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6459
+ "$ xano tenant license get my-tenant --view",
6460
+ "$ xano tenant license get my-tenant -o json"
6461
+ ],
6462
+ "flags": {
6463
+ "profile": {
6464
+ "char": "p",
6465
+ "description": "Profile to use (uses default profile if not specified)",
6466
+ "env": "XANO_PROFILE",
6467
+ "name": "profile",
6468
+ "required": false,
6469
+ "hasDynamicHelp": false,
6470
+ "multiple": false,
6471
+ "type": "option"
6472
+ },
6473
+ "verbose": {
6474
+ "char": "v",
6475
+ "description": "Show detailed request/response information",
6476
+ "env": "XANO_VERBOSE",
6477
+ "name": "verbose",
6478
+ "required": false,
6479
+ "allowNo": false,
6480
+ "type": "boolean"
6481
+ },
6482
+ "file": {
6483
+ "char": "f",
6484
+ "description": "Output file path (default: license_<tenant_name>.yaml)",
6485
+ "name": "file",
6486
+ "required": false,
6487
+ "hasDynamicHelp": false,
6488
+ "multiple": false,
6489
+ "type": "option"
6490
+ },
6491
+ "output": {
6492
+ "char": "o",
6493
+ "description": "Output format",
6494
+ "name": "output",
6495
+ "required": false,
6496
+ "default": "summary",
6497
+ "hasDynamicHelp": false,
6498
+ "multiple": false,
6499
+ "options": [
6500
+ "summary",
6501
+ "json"
6502
+ ],
6503
+ "type": "option"
6504
+ },
6505
+ "view": {
6506
+ "description": "Print license to stdout instead of saving to file",
6507
+ "name": "view",
6508
+ "required": false,
6509
+ "allowNo": false,
6510
+ "type": "boolean"
6511
+ },
6512
+ "workspace": {
6513
+ "char": "w",
6514
+ "description": "Workspace ID (uses profile workspace if not provided)",
6515
+ "name": "workspace",
6516
+ "required": false,
6517
+ "hasDynamicHelp": false,
6518
+ "multiple": false,
6519
+ "type": "option"
6520
+ }
6521
+ },
6522
+ "hasDynamicHelp": false,
6523
+ "hiddenAliases": [],
6524
+ "id": "tenant:license:get",
6525
+ "pluginAlias": "@xano/cli",
6526
+ "pluginName": "@xano/cli",
6527
+ "pluginType": "core",
6528
+ "strict": true,
6529
+ "enableJsonFlag": false,
6530
+ "isESM": true,
6531
+ "relativePath": [
6532
+ "dist",
6533
+ "commands",
6534
+ "tenant",
6535
+ "license",
6536
+ "get",
6537
+ "index.js"
6538
+ ]
6539
+ },
6540
+ "tenant:license:set": {
6541
+ "aliases": [],
6542
+ "args": {
6543
+ "tenant_name": {
6544
+ "description": "Tenant name",
6545
+ "name": "tenant_name",
6546
+ "required": true
6547
+ }
6548
+ },
6549
+ "description": "Set/update the license for a tenant",
6550
+ "examples": [
6551
+ "$ xano tenant license set my-tenant\nReads from license_my-tenant.yaml\n",
6552
+ "$ xano tenant license set my-tenant --file ./license.yaml",
6553
+ "$ xano tenant license set my-tenant --value 'key: value'",
6554
+ "$ xano tenant license set my-tenant -o json"
6366
6555
  ],
6367
6556
  "flags": {
6368
6557
  "profile": {
@@ -6384,11 +6573,24 @@
6384
6573
  "allowNo": false,
6385
6574
  "type": "boolean"
6386
6575
  },
6387
- "name": {
6388
- "char": "n",
6389
- "description": "Environment variable name",
6390
- "name": "name",
6391
- "required": true,
6576
+ "clean": {
6577
+ "description": "Remove the source file after successful upload",
6578
+ "exclusive": [
6579
+ "value"
6580
+ ],
6581
+ "name": "clean",
6582
+ "required": false,
6583
+ "allowNo": false,
6584
+ "type": "boolean"
6585
+ },
6586
+ "file": {
6587
+ "char": "f",
6588
+ "description": "Path to license file (default: license_<tenant_name>.yaml)",
6589
+ "exclusive": [
6590
+ "value"
6591
+ ],
6592
+ "name": "file",
6593
+ "required": false,
6392
6594
  "hasDynamicHelp": false,
6393
6595
  "multiple": false,
6394
6596
  "type": "option"
@@ -6408,9 +6610,13 @@
6408
6610
  "type": "option"
6409
6611
  },
6410
6612
  "value": {
6411
- "description": "Environment variable value",
6613
+ "description": "Inline license value",
6614
+ "exclusive": [
6615
+ "file",
6616
+ "clean"
6617
+ ],
6412
6618
  "name": "value",
6413
- "required": true,
6619
+ "required": false,
6414
6620
  "hasDynamicHelp": false,
6415
6621
  "multiple": false,
6416
6622
  "type": "option"
@@ -6427,7 +6633,7 @@
6427
6633
  },
6428
6634
  "hasDynamicHelp": false,
6429
6635
  "hiddenAliases": [],
6430
- "id": "tenant:env:set",
6636
+ "id": "tenant:license:set",
6431
6637
  "pluginAlias": "@xano/cli",
6432
6638
  "pluginName": "@xano/cli",
6433
6639
  "pluginType": "core",
@@ -6438,7 +6644,7 @@
6438
6644
  "dist",
6439
6645
  "commands",
6440
6646
  "tenant",
6441
- "env",
6647
+ "license",
6442
6648
  "set",
6443
6649
  "index.js"
6444
6650
  ]
@@ -6536,21 +6742,21 @@
6536
6742
  "index.js"
6537
6743
  ]
6538
6744
  },
6539
- "tenant:license:get": {
6745
+ "tenant:cluster:license:get": {
6540
6746
  "aliases": [],
6541
6747
  "args": {
6542
- "tenant_name": {
6543
- "description": "Tenant name",
6544
- "name": "tenant_name",
6748
+ "cluster_id": {
6749
+ "description": "Tenant cluster ID",
6750
+ "name": "cluster_id",
6545
6751
  "required": true
6546
6752
  }
6547
6753
  },
6548
- "description": "Get the license for a tenant",
6754
+ "description": "Get the license (kubeconfig) for a tenant cluster",
6549
6755
  "examples": [
6550
- "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6551
- "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6552
- "$ xano tenant license get my-tenant --view",
6553
- "$ xano tenant license get my-tenant -o json"
6756
+ "$ xano tenant cluster license get 1\nLicense saved to kubeconfig-1.yaml\n",
6757
+ "$ xano tenant cluster license get 1 --file ./my-kubeconfig.yaml\nLicense saved to my-kubeconfig.yaml\n",
6758
+ "$ xano tenant cluster license get 1 --view",
6759
+ "$ xano tenant cluster license get 1 -o json"
6554
6760
  ],
6555
6761
  "flags": {
6556
6762
  "profile": {
@@ -6574,7 +6780,7 @@
6574
6780
  },
6575
6781
  "file": {
6576
6782
  "char": "f",
6577
- "description": "Output file path (default: license_<tenant_name>.yaml)",
6783
+ "description": "Output file path (default: kubeconfig_<cluster_id>.yaml)",
6578
6784
  "name": "file",
6579
6785
  "required": false,
6580
6786
  "hasDynamicHelp": false,
@@ -6601,20 +6807,11 @@
6601
6807
  "required": false,
6602
6808
  "allowNo": false,
6603
6809
  "type": "boolean"
6604
- },
6605
- "workspace": {
6606
- "char": "w",
6607
- "description": "Workspace ID (uses profile workspace if not provided)",
6608
- "name": "workspace",
6609
- "required": false,
6610
- "hasDynamicHelp": false,
6611
- "multiple": false,
6612
- "type": "option"
6613
6810
  }
6614
6811
  },
6615
6812
  "hasDynamicHelp": false,
6616
6813
  "hiddenAliases": [],
6617
- "id": "tenant:license:get",
6814
+ "id": "tenant:cluster:license:get",
6618
6815
  "pluginAlias": "@xano/cli",
6619
6816
  "pluginName": "@xano/cli",
6620
6817
  "pluginType": "core",
@@ -6625,6 +6822,7 @@
6625
6822
  "dist",
6626
6823
  "commands",
6627
6824
  "tenant",
6825
+ "cluster",
6628
6826
  "license",
6629
6827
  "get",
6630
6828
  "index.js"
@@ -6724,118 +6922,6 @@
6724
6922
  "index.js"
6725
6923
  ]
6726
6924
  },
6727
- "tenant:license:set": {
6728
- "aliases": [],
6729
- "args": {
6730
- "tenant_name": {
6731
- "description": "Tenant name",
6732
- "name": "tenant_name",
6733
- "required": true
6734
- }
6735
- },
6736
- "description": "Set/update the license for a tenant",
6737
- "examples": [
6738
- "$ xano tenant license set my-tenant\nReads from license_my-tenant.yaml\n",
6739
- "$ xano tenant license set my-tenant --file ./license.yaml",
6740
- "$ xano tenant license set my-tenant --value 'key: value'",
6741
- "$ xano tenant license set my-tenant -o json"
6742
- ],
6743
- "flags": {
6744
- "profile": {
6745
- "char": "p",
6746
- "description": "Profile to use (uses default profile if not specified)",
6747
- "env": "XANO_PROFILE",
6748
- "name": "profile",
6749
- "required": false,
6750
- "hasDynamicHelp": false,
6751
- "multiple": false,
6752
- "type": "option"
6753
- },
6754
- "verbose": {
6755
- "char": "v",
6756
- "description": "Show detailed request/response information",
6757
- "env": "XANO_VERBOSE",
6758
- "name": "verbose",
6759
- "required": false,
6760
- "allowNo": false,
6761
- "type": "boolean"
6762
- },
6763
- "clean": {
6764
- "description": "Remove the source file after successful upload",
6765
- "exclusive": [
6766
- "value"
6767
- ],
6768
- "name": "clean",
6769
- "required": false,
6770
- "allowNo": false,
6771
- "type": "boolean"
6772
- },
6773
- "file": {
6774
- "char": "f",
6775
- "description": "Path to license file (default: license_<tenant_name>.yaml)",
6776
- "exclusive": [
6777
- "value"
6778
- ],
6779
- "name": "file",
6780
- "required": false,
6781
- "hasDynamicHelp": false,
6782
- "multiple": false,
6783
- "type": "option"
6784
- },
6785
- "output": {
6786
- "char": "o",
6787
- "description": "Output format",
6788
- "name": "output",
6789
- "required": false,
6790
- "default": "summary",
6791
- "hasDynamicHelp": false,
6792
- "multiple": false,
6793
- "options": [
6794
- "summary",
6795
- "json"
6796
- ],
6797
- "type": "option"
6798
- },
6799
- "value": {
6800
- "description": "Inline license value",
6801
- "exclusive": [
6802
- "file",
6803
- "clean"
6804
- ],
6805
- "name": "value",
6806
- "required": false,
6807
- "hasDynamicHelp": false,
6808
- "multiple": false,
6809
- "type": "option"
6810
- },
6811
- "workspace": {
6812
- "char": "w",
6813
- "description": "Workspace ID (uses profile workspace if not provided)",
6814
- "name": "workspace",
6815
- "required": false,
6816
- "hasDynamicHelp": false,
6817
- "multiple": false,
6818
- "type": "option"
6819
- }
6820
- },
6821
- "hasDynamicHelp": false,
6822
- "hiddenAliases": [],
6823
- "id": "tenant:license:set",
6824
- "pluginAlias": "@xano/cli",
6825
- "pluginName": "@xano/cli",
6826
- "pluginType": "core",
6827
- "strict": true,
6828
- "enableJsonFlag": false,
6829
- "isESM": true,
6830
- "relativePath": [
6831
- "dist",
6832
- "commands",
6833
- "tenant",
6834
- "license",
6835
- "set",
6836
- "index.js"
6837
- ]
6838
- },
6839
6925
  "tenant:cluster:license:set": {
6840
6926
  "aliases": [],
6841
6927
  "args": {
@@ -6939,93 +7025,7 @@
6939
7025
  "set",
6940
7026
  "index.js"
6941
7027
  ]
6942
- },
6943
- "tenant:cluster:license:get": {
6944
- "aliases": [],
6945
- "args": {
6946
- "cluster_id": {
6947
- "description": "Tenant cluster ID",
6948
- "name": "cluster_id",
6949
- "required": true
6950
- }
6951
- },
6952
- "description": "Get the license (kubeconfig) for a tenant cluster",
6953
- "examples": [
6954
- "$ xano tenant cluster license get 1\nLicense saved to kubeconfig-1.yaml\n",
6955
- "$ xano tenant cluster license get 1 --file ./my-kubeconfig.yaml\nLicense saved to my-kubeconfig.yaml\n",
6956
- "$ xano tenant cluster license get 1 --view",
6957
- "$ xano tenant cluster license get 1 -o json"
6958
- ],
6959
- "flags": {
6960
- "profile": {
6961
- "char": "p",
6962
- "description": "Profile to use (uses default profile if not specified)",
6963
- "env": "XANO_PROFILE",
6964
- "name": "profile",
6965
- "required": false,
6966
- "hasDynamicHelp": false,
6967
- "multiple": false,
6968
- "type": "option"
6969
- },
6970
- "verbose": {
6971
- "char": "v",
6972
- "description": "Show detailed request/response information",
6973
- "env": "XANO_VERBOSE",
6974
- "name": "verbose",
6975
- "required": false,
6976
- "allowNo": false,
6977
- "type": "boolean"
6978
- },
6979
- "file": {
6980
- "char": "f",
6981
- "description": "Output file path (default: kubeconfig_<cluster_id>.yaml)",
6982
- "name": "file",
6983
- "required": false,
6984
- "hasDynamicHelp": false,
6985
- "multiple": false,
6986
- "type": "option"
6987
- },
6988
- "output": {
6989
- "char": "o",
6990
- "description": "Output format",
6991
- "name": "output",
6992
- "required": false,
6993
- "default": "summary",
6994
- "hasDynamicHelp": false,
6995
- "multiple": false,
6996
- "options": [
6997
- "summary",
6998
- "json"
6999
- ],
7000
- "type": "option"
7001
- },
7002
- "view": {
7003
- "description": "Print license to stdout instead of saving to file",
7004
- "name": "view",
7005
- "required": false,
7006
- "allowNo": false,
7007
- "type": "boolean"
7008
- }
7009
- },
7010
- "hasDynamicHelp": false,
7011
- "hiddenAliases": [],
7012
- "id": "tenant:cluster:license:get",
7013
- "pluginAlias": "@xano/cli",
7014
- "pluginName": "@xano/cli",
7015
- "pluginType": "core",
7016
- "strict": true,
7017
- "enableJsonFlag": false,
7018
- "isESM": true,
7019
- "relativePath": [
7020
- "dist",
7021
- "commands",
7022
- "tenant",
7023
- "cluster",
7024
- "license",
7025
- "get",
7026
- "index.js"
7027
- ]
7028
7028
  }
7029
7029
  },
7030
- "version": "0.0.53"
7030
+ "version": "0.0.54"
7031
7031
  }