@xano/cli 0.0.75-beta.2 → 0.0.75-beta.4

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.
@@ -48,7 +48,8 @@
48
48
  "description": "Update the Xano CLI to the latest version",
49
49
  "examples": [
50
50
  "$ xano update",
51
- "$ xano update --check"
51
+ "$ xano update --check",
52
+ "$ xano update --beta"
52
53
  ],
53
54
  "flags": {
54
55
  "profile": {
@@ -70,6 +71,12 @@
70
71
  "allowNo": false,
71
72
  "type": "boolean"
72
73
  },
74
+ "beta": {
75
+ "description": "Update to the latest beta version",
76
+ "name": "beta",
77
+ "allowNo": false,
78
+ "type": "boolean"
79
+ },
73
80
  "check": {
74
81
  "description": "Check for updates without installing",
75
82
  "name": "check",
@@ -387,149 +394,6 @@
387
394
  "index.js"
388
395
  ]
389
396
  },
390
- "branch:get": {
391
- "aliases": [],
392
- "args": {
393
- "branch_label": {
394
- "description": "Branch label (e.g., \"v1\", \"dev\")",
395
- "name": "branch_label",
396
- "required": true
397
- }
398
- },
399
- "description": "Get details for a specific branch",
400
- "examples": [
401
- "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
402
- "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
403
- "$ 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"
404
- ],
405
- "flags": {
406
- "profile": {
407
- "char": "p",
408
- "description": "Profile to use (uses default profile if not specified)",
409
- "env": "XANO_PROFILE",
410
- "name": "profile",
411
- "required": false,
412
- "hasDynamicHelp": false,
413
- "multiple": false,
414
- "type": "option"
415
- },
416
- "verbose": {
417
- "char": "v",
418
- "description": "Show detailed request/response information",
419
- "env": "XANO_VERBOSE",
420
- "name": "verbose",
421
- "required": false,
422
- "allowNo": false,
423
- "type": "boolean"
424
- },
425
- "output": {
426
- "char": "o",
427
- "description": "Output format",
428
- "name": "output",
429
- "required": false,
430
- "default": "summary",
431
- "hasDynamicHelp": false,
432
- "multiple": false,
433
- "options": [
434
- "summary",
435
- "json"
436
- ],
437
- "type": "option"
438
- },
439
- "workspace": {
440
- "char": "w",
441
- "description": "Workspace ID (uses profile workspace if not provided)",
442
- "name": "workspace",
443
- "required": false,
444
- "hasDynamicHelp": false,
445
- "multiple": false,
446
- "type": "option"
447
- }
448
- },
449
- "hasDynamicHelp": false,
450
- "hiddenAliases": [],
451
- "id": "branch:get",
452
- "pluginAlias": "@xano/cli",
453
- "pluginName": "@xano/cli",
454
- "pluginType": "core",
455
- "strict": true,
456
- "enableJsonFlag": false,
457
- "isESM": true,
458
- "relativePath": [
459
- "dist",
460
- "commands",
461
- "branch",
462
- "get",
463
- "index.js"
464
- ]
465
- },
466
- "branch:list": {
467
- "aliases": [],
468
- "args": {
469
- "workspace_id": {
470
- "description": "Workspace ID (uses profile workspace if not provided)",
471
- "name": "workspace_id",
472
- "required": false
473
- }
474
- },
475
- "description": "List all branches in a workspace",
476
- "examples": [
477
- "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
478
- "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
479
- "$ xano branch list --output json\n[\n {\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"label\": \"v1\",\n \"backup\": false,\n \"live\": true\n }\n]\n"
480
- ],
481
- "flags": {
482
- "profile": {
483
- "char": "p",
484
- "description": "Profile to use (uses default profile if not specified)",
485
- "env": "XANO_PROFILE",
486
- "name": "profile",
487
- "required": false,
488
- "hasDynamicHelp": false,
489
- "multiple": false,
490
- "type": "option"
491
- },
492
- "verbose": {
493
- "char": "v",
494
- "description": "Show detailed request/response information",
495
- "env": "XANO_VERBOSE",
496
- "name": "verbose",
497
- "required": false,
498
- "allowNo": false,
499
- "type": "boolean"
500
- },
501
- "output": {
502
- "char": "o",
503
- "description": "Output format",
504
- "name": "output",
505
- "required": false,
506
- "default": "summary",
507
- "hasDynamicHelp": false,
508
- "multiple": false,
509
- "options": [
510
- "summary",
511
- "json"
512
- ],
513
- "type": "option"
514
- }
515
- },
516
- "hasDynamicHelp": false,
517
- "hiddenAliases": [],
518
- "id": "branch:list",
519
- "pluginAlias": "@xano/cli",
520
- "pluginName": "@xano/cli",
521
- "pluginType": "core",
522
- "strict": true,
523
- "enableJsonFlag": false,
524
- "isESM": true,
525
- "relativePath": [
526
- "dist",
527
- "commands",
528
- "branch",
529
- "list",
530
- "index.js"
531
- ]
532
- },
533
397
  "branch:set_live": {
534
398
  "aliases": [],
535
399
  "args": {
@@ -720,6 +584,73 @@
720
584
  "index.js"
721
585
  ]
722
586
  },
587
+ "branch:list": {
588
+ "aliases": [],
589
+ "args": {
590
+ "workspace_id": {
591
+ "description": "Workspace ID (uses profile workspace if not provided)",
592
+ "name": "workspace_id",
593
+ "required": false
594
+ }
595
+ },
596
+ "description": "List all branches in a workspace",
597
+ "examples": [
598
+ "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
599
+ "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
600
+ "$ xano branch list --output json\n[\n {\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"label\": \"v1\",\n \"backup\": false,\n \"live\": true\n }\n]\n"
601
+ ],
602
+ "flags": {
603
+ "profile": {
604
+ "char": "p",
605
+ "description": "Profile to use (uses default profile if not specified)",
606
+ "env": "XANO_PROFILE",
607
+ "name": "profile",
608
+ "required": false,
609
+ "hasDynamicHelp": false,
610
+ "multiple": false,
611
+ "type": "option"
612
+ },
613
+ "verbose": {
614
+ "char": "v",
615
+ "description": "Show detailed request/response information",
616
+ "env": "XANO_VERBOSE",
617
+ "name": "verbose",
618
+ "required": false,
619
+ "allowNo": false,
620
+ "type": "boolean"
621
+ },
622
+ "output": {
623
+ "char": "o",
624
+ "description": "Output format",
625
+ "name": "output",
626
+ "required": false,
627
+ "default": "summary",
628
+ "hasDynamicHelp": false,
629
+ "multiple": false,
630
+ "options": [
631
+ "summary",
632
+ "json"
633
+ ],
634
+ "type": "option"
635
+ }
636
+ },
637
+ "hasDynamicHelp": false,
638
+ "hiddenAliases": [],
639
+ "id": "branch:list",
640
+ "pluginAlias": "@xano/cli",
641
+ "pluginName": "@xano/cli",
642
+ "pluginType": "core",
643
+ "strict": true,
644
+ "enableJsonFlag": false,
645
+ "isESM": true,
646
+ "relativePath": [
647
+ "dist",
648
+ "commands",
649
+ "branch",
650
+ "list",
651
+ "index.js"
652
+ ]
653
+ },
723
654
  "function:edit": {
724
655
  "aliases": [],
725
656
  "args": {
@@ -1058,58 +989,88 @@
1058
989
  "index.js"
1059
990
  ]
1060
991
  },
1061
- "platform:get": {
992
+ "profile:create": {
1062
993
  "aliases": [],
1063
994
  "args": {
1064
- "platform_id": {
1065
- "description": "Platform ID to retrieve",
1066
- "name": "platform_id",
995
+ "name": {
996
+ "description": "Profile name",
997
+ "name": "name",
1067
998
  "required": true
1068
999
  }
1069
1000
  },
1070
- "description": "Get details of a specific platform",
1001
+ "description": "Create a new profile configuration",
1071
1002
  "examples": [
1072
- "$ xano platform get 23629\nPlatform ID: 23629\n Created: 2025-11-28\n Helm: 0.1.356\n Images:\n backend 0.0.2985\n frontend 0.1.3427\n database 0.1.6\n node 0.1.192\n deno 0.0.212\n redis 0.1.34\n realtime 0.1.149\n standalone 0.0.2456\n playwright 0.0.992\n static 0.0.10\n static-build 0.0.4\n backend-encoded 0.0.1396\n",
1073
- "$ xano platform get 23629 -o json"
1003
+ "$ xano profile:create production --account_origin https://account.xano.com --instance_origin https://instance.xano.com --access_token token123\nProfile 'production' created successfully at ~/.xano/credentials.yaml\n",
1004
+ "$ xano profile:create staging -a https://staging-account.xano.com -i https://staging-instance.xano.com -t token456\nProfile 'staging' created successfully at ~/.xano/credentials.yaml\n",
1005
+ "$ xano profile:create dev -i https://dev-instance.xano.com -t token789 -w my-workspace -b feature-branch\nProfile 'dev' created successfully at ~/.xano/credentials.yaml\n",
1006
+ "$ xano profile:create production --account_origin https://account.xano.com --instance_origin https://instance.xano.com --access_token token123 --default\nProfile 'production' created successfully at ~/.xano/credentials.yaml\nDefault profile set to 'production'\n",
1007
+ "$ xano profile:create selfhosted -i https://self-signed.example.com -t token123 --insecure\nProfile 'selfhosted' created successfully at ~/.xano/credentials.yaml\n"
1074
1008
  ],
1075
1009
  "flags": {
1076
- "profile": {
1077
- "char": "p",
1078
- "description": "Profile to use (uses default profile if not specified)",
1079
- "env": "XANO_PROFILE",
1080
- "name": "profile",
1081
- "required": false,
1010
+ "access_token": {
1011
+ "char": "t",
1012
+ "description": "Access token for the Xano Metadata API",
1013
+ "name": "access_token",
1014
+ "required": true,
1082
1015
  "hasDynamicHelp": false,
1083
1016
  "multiple": false,
1084
1017
  "type": "option"
1085
1018
  },
1086
- "verbose": {
1087
- "char": "v",
1088
- "description": "Show detailed request/response information",
1089
- "env": "XANO_VERBOSE",
1090
- "name": "verbose",
1019
+ "account_origin": {
1020
+ "char": "a",
1021
+ "description": "Account origin URL. Optional for self hosted installs.",
1022
+ "name": "account_origin",
1091
1023
  "required": false,
1092
- "allowNo": false,
1093
- "type": "boolean"
1024
+ "hasDynamicHelp": false,
1025
+ "multiple": false,
1026
+ "type": "option"
1094
1027
  },
1095
- "output": {
1096
- "char": "o",
1097
- "description": "Output format",
1098
- "name": "output",
1028
+ "branch": {
1029
+ "char": "b",
1030
+ "description": "Branch name",
1031
+ "name": "branch",
1032
+ "required": false,
1033
+ "hasDynamicHelp": false,
1034
+ "multiple": false,
1035
+ "type": "option"
1036
+ },
1037
+ "default": {
1038
+ "description": "Set this profile as the default",
1039
+ "name": "default",
1040
+ "required": false,
1041
+ "allowNo": false,
1042
+ "type": "boolean"
1043
+ },
1044
+ "insecure": {
1045
+ "char": "k",
1046
+ "description": "Skip TLS certificate verification (for self-signed certificates)",
1047
+ "name": "insecure",
1048
+ "required": false,
1049
+ "allowNo": false,
1050
+ "type": "boolean"
1051
+ },
1052
+ "instance_origin": {
1053
+ "char": "i",
1054
+ "description": "Instance origin URL",
1055
+ "name": "instance_origin",
1056
+ "required": true,
1057
+ "hasDynamicHelp": false,
1058
+ "multiple": false,
1059
+ "type": "option"
1060
+ },
1061
+ "workspace": {
1062
+ "char": "w",
1063
+ "description": "Workspace name",
1064
+ "name": "workspace",
1099
1065
  "required": false,
1100
- "default": "summary",
1101
1066
  "hasDynamicHelp": false,
1102
1067
  "multiple": false,
1103
- "options": [
1104
- "summary",
1105
- "json"
1106
- ],
1107
1068
  "type": "option"
1108
1069
  }
1109
1070
  },
1110
1071
  "hasDynamicHelp": false,
1111
1072
  "hiddenAliases": [],
1112
- "id": "platform:get",
1073
+ "id": "profile:create",
1113
1074
  "pluginAlias": "@xano/cli",
1114
1075
  "pluginName": "@xano/cli",
1115
1076
  "pluginType": "core",
@@ -1119,8 +1080,8 @@
1119
1080
  "relativePath": [
1120
1081
  "dist",
1121
1082
  "commands",
1122
- "platform",
1123
- "get",
1083
+ "profile",
1084
+ "create",
1124
1085
  "index.js"
1125
1086
  ]
1126
1087
  },
@@ -1184,88 +1145,58 @@
1184
1145
  "index.js"
1185
1146
  ]
1186
1147
  },
1187
- "profile:create": {
1148
+ "platform:get": {
1188
1149
  "aliases": [],
1189
1150
  "args": {
1190
- "name": {
1191
- "description": "Profile name",
1192
- "name": "name",
1151
+ "platform_id": {
1152
+ "description": "Platform ID to retrieve",
1153
+ "name": "platform_id",
1193
1154
  "required": true
1194
1155
  }
1195
1156
  },
1196
- "description": "Create a new profile configuration",
1157
+ "description": "Get details of a specific platform",
1197
1158
  "examples": [
1198
- "$ xano profile:create production --account_origin https://account.xano.com --instance_origin https://instance.xano.com --access_token token123\nProfile 'production' created successfully at ~/.xano/credentials.yaml\n",
1199
- "$ xano profile:create staging -a https://staging-account.xano.com -i https://staging-instance.xano.com -t token456\nProfile 'staging' created successfully at ~/.xano/credentials.yaml\n",
1200
- "$ xano profile:create dev -i https://dev-instance.xano.com -t token789 -w my-workspace -b feature-branch\nProfile 'dev' created successfully at ~/.xano/credentials.yaml\n",
1201
- "$ xano profile:create production --account_origin https://account.xano.com --instance_origin https://instance.xano.com --access_token token123 --default\nProfile 'production' created successfully at ~/.xano/credentials.yaml\nDefault profile set to 'production'\n",
1202
- "$ xano profile:create selfhosted -i https://self-signed.example.com -t token123 --insecure\nProfile 'selfhosted' created successfully at ~/.xano/credentials.yaml\n"
1159
+ "$ xano platform get 23629\nPlatform ID: 23629\n Created: 2025-11-28\n Helm: 0.1.356\n Images:\n backend 0.0.2985\n frontend 0.1.3427\n database 0.1.6\n node 0.1.192\n deno 0.0.212\n redis 0.1.34\n realtime 0.1.149\n standalone 0.0.2456\n playwright 0.0.992\n static 0.0.10\n static-build 0.0.4\n backend-encoded 0.0.1396\n",
1160
+ "$ xano platform get 23629 -o json"
1203
1161
  ],
1204
1162
  "flags": {
1205
- "access_token": {
1206
- "char": "t",
1207
- "description": "Access token for the Xano Metadata API",
1208
- "name": "access_token",
1209
- "required": true,
1210
- "hasDynamicHelp": false,
1211
- "multiple": false,
1212
- "type": "option"
1213
- },
1214
- "account_origin": {
1215
- "char": "a",
1216
- "description": "Account origin URL. Optional for self hosted installs.",
1217
- "name": "account_origin",
1218
- "required": false,
1219
- "hasDynamicHelp": false,
1220
- "multiple": false,
1221
- "type": "option"
1222
- },
1223
- "branch": {
1224
- "char": "b",
1225
- "description": "Branch name",
1226
- "name": "branch",
1163
+ "profile": {
1164
+ "char": "p",
1165
+ "description": "Profile to use (uses default profile if not specified)",
1166
+ "env": "XANO_PROFILE",
1167
+ "name": "profile",
1227
1168
  "required": false,
1228
1169
  "hasDynamicHelp": false,
1229
1170
  "multiple": false,
1230
1171
  "type": "option"
1231
1172
  },
1232
- "default": {
1233
- "description": "Set this profile as the default",
1234
- "name": "default",
1235
- "required": false,
1236
- "allowNo": false,
1237
- "type": "boolean"
1238
- },
1239
- "insecure": {
1240
- "char": "k",
1241
- "description": "Skip TLS certificate verification (for self-signed certificates)",
1242
- "name": "insecure",
1173
+ "verbose": {
1174
+ "char": "v",
1175
+ "description": "Show detailed request/response information",
1176
+ "env": "XANO_VERBOSE",
1177
+ "name": "verbose",
1243
1178
  "required": false,
1244
1179
  "allowNo": false,
1245
1180
  "type": "boolean"
1246
1181
  },
1247
- "instance_origin": {
1248
- "char": "i",
1249
- "description": "Instance origin URL",
1250
- "name": "instance_origin",
1251
- "required": true,
1252
- "hasDynamicHelp": false,
1253
- "multiple": false,
1254
- "type": "option"
1255
- },
1256
- "workspace": {
1257
- "char": "w",
1258
- "description": "Workspace name",
1259
- "name": "workspace",
1182
+ "output": {
1183
+ "char": "o",
1184
+ "description": "Output format",
1185
+ "name": "output",
1260
1186
  "required": false,
1187
+ "default": "summary",
1261
1188
  "hasDynamicHelp": false,
1262
1189
  "multiple": false,
1190
+ "options": [
1191
+ "summary",
1192
+ "json"
1193
+ ],
1263
1194
  "type": "option"
1264
1195
  }
1265
1196
  },
1266
1197
  "hasDynamicHelp": false,
1267
1198
  "hiddenAliases": [],
1268
- "id": "profile:create",
1199
+ "id": "platform:get",
1269
1200
  "pluginAlias": "@xano/cli",
1270
1201
  "pluginName": "@xano/cli",
1271
1202
  "pluginType": "core",
@@ -1275,8 +1206,8 @@
1275
1206
  "relativePath": [
1276
1207
  "dist",
1277
1208
  "commands",
1278
- "profile",
1279
- "create",
1209
+ "platform",
1210
+ "get",
1280
1211
  "index.js"
1281
1212
  ]
1282
1213
  },
@@ -1322,136 +1253,6 @@
1322
1253
  "index.js"
1323
1254
  ]
1324
1255
  },
1325
- "profile:edit": {
1326
- "aliases": [],
1327
- "args": {
1328
- "name": {
1329
- "description": "Profile name to edit (uses default profile if not specified)",
1330
- "name": "name",
1331
- "required": false
1332
- }
1333
- },
1334
- "description": "Edit an existing profile configuration",
1335
- "examples": [
1336
- "$ xano profile:edit --access_token new_token123\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n",
1337
- "$ xano profile:edit production --access_token new_token123\nProfile 'production' updated successfully at ~/.xano/credentials.yaml\n",
1338
- "$ xano profile:edit staging -i https://new-staging-instance.xano.com -t new_token456\nProfile 'staging' updated successfully at ~/.xano/credentials.yaml\n",
1339
- "$ xano profile:edit -b new-branch\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n",
1340
- "$ xano profile:edit --remove-branch\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n",
1341
- "$ xano profile:edit --insecure\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n",
1342
- "$ xano profile:edit --remove-insecure\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n"
1343
- ],
1344
- "flags": {
1345
- "profile": {
1346
- "char": "p",
1347
- "description": "Profile to use (uses default profile if not specified)",
1348
- "env": "XANO_PROFILE",
1349
- "name": "profile",
1350
- "required": false,
1351
- "hasDynamicHelp": false,
1352
- "multiple": false,
1353
- "type": "option"
1354
- },
1355
- "verbose": {
1356
- "char": "v",
1357
- "description": "Show detailed request/response information",
1358
- "env": "XANO_VERBOSE",
1359
- "name": "verbose",
1360
- "required": false,
1361
- "allowNo": false,
1362
- "type": "boolean"
1363
- },
1364
- "access_token": {
1365
- "char": "t",
1366
- "description": "Update access token for the Xano Metadata API",
1367
- "name": "access_token",
1368
- "required": false,
1369
- "hasDynamicHelp": false,
1370
- "multiple": false,
1371
- "type": "option"
1372
- },
1373
- "account_origin": {
1374
- "char": "a",
1375
- "description": "Update account origin URL",
1376
- "name": "account_origin",
1377
- "required": false,
1378
- "hasDynamicHelp": false,
1379
- "multiple": false,
1380
- "type": "option"
1381
- },
1382
- "branch": {
1383
- "char": "b",
1384
- "description": "Update branch name",
1385
- "name": "branch",
1386
- "required": false,
1387
- "hasDynamicHelp": false,
1388
- "multiple": false,
1389
- "type": "option"
1390
- },
1391
- "insecure": {
1392
- "description": "Enable insecure mode (skip TLS certificate verification)",
1393
- "name": "insecure",
1394
- "required": false,
1395
- "allowNo": false,
1396
- "type": "boolean"
1397
- },
1398
- "instance_origin": {
1399
- "char": "i",
1400
- "description": "Update instance origin URL",
1401
- "name": "instance_origin",
1402
- "required": false,
1403
- "hasDynamicHelp": false,
1404
- "multiple": false,
1405
- "type": "option"
1406
- },
1407
- "remove-branch": {
1408
- "description": "Remove branch from profile",
1409
- "name": "remove-branch",
1410
- "required": false,
1411
- "allowNo": false,
1412
- "type": "boolean"
1413
- },
1414
- "remove-insecure": {
1415
- "description": "Remove insecure mode from profile",
1416
- "name": "remove-insecure",
1417
- "required": false,
1418
- "allowNo": false,
1419
- "type": "boolean"
1420
- },
1421
- "remove-workspace": {
1422
- "description": "Remove workspace from profile",
1423
- "name": "remove-workspace",
1424
- "required": false,
1425
- "allowNo": false,
1426
- "type": "boolean"
1427
- },
1428
- "workspace": {
1429
- "char": "w",
1430
- "description": "Update workspace name",
1431
- "name": "workspace",
1432
- "required": false,
1433
- "hasDynamicHelp": false,
1434
- "multiple": false,
1435
- "type": "option"
1436
- }
1437
- },
1438
- "hasDynamicHelp": false,
1439
- "hiddenAliases": [],
1440
- "id": "profile:edit",
1441
- "pluginAlias": "@xano/cli",
1442
- "pluginName": "@xano/cli",
1443
- "pluginType": "core",
1444
- "strict": true,
1445
- "enableJsonFlag": false,
1446
- "isESM": true,
1447
- "relativePath": [
1448
- "dist",
1449
- "commands",
1450
- "profile",
1451
- "edit",
1452
- "index.js"
1453
- ]
1454
- },
1455
1256
  "profile:get": {
1456
1257
  "aliases": [],
1457
1258
  "args": {},
@@ -1605,6 +1406,212 @@
1605
1406
  "index.js"
1606
1407
  ]
1607
1408
  },
1409
+ "branch:get": {
1410
+ "aliases": [],
1411
+ "args": {
1412
+ "branch_label": {
1413
+ "description": "Branch label (e.g., \"v1\", \"dev\")",
1414
+ "name": "branch_label",
1415
+ "required": true
1416
+ }
1417
+ },
1418
+ "description": "Get details for a specific branch",
1419
+ "examples": [
1420
+ "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
1421
+ "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
1422
+ "$ 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"
1423
+ ],
1424
+ "flags": {
1425
+ "profile": {
1426
+ "char": "p",
1427
+ "description": "Profile to use (uses default profile if not specified)",
1428
+ "env": "XANO_PROFILE",
1429
+ "name": "profile",
1430
+ "required": false,
1431
+ "hasDynamicHelp": false,
1432
+ "multiple": false,
1433
+ "type": "option"
1434
+ },
1435
+ "verbose": {
1436
+ "char": "v",
1437
+ "description": "Show detailed request/response information",
1438
+ "env": "XANO_VERBOSE",
1439
+ "name": "verbose",
1440
+ "required": false,
1441
+ "allowNo": false,
1442
+ "type": "boolean"
1443
+ },
1444
+ "output": {
1445
+ "char": "o",
1446
+ "description": "Output format",
1447
+ "name": "output",
1448
+ "required": false,
1449
+ "default": "summary",
1450
+ "hasDynamicHelp": false,
1451
+ "multiple": false,
1452
+ "options": [
1453
+ "summary",
1454
+ "json"
1455
+ ],
1456
+ "type": "option"
1457
+ },
1458
+ "workspace": {
1459
+ "char": "w",
1460
+ "description": "Workspace ID (uses profile workspace if not provided)",
1461
+ "name": "workspace",
1462
+ "required": false,
1463
+ "hasDynamicHelp": false,
1464
+ "multiple": false,
1465
+ "type": "option"
1466
+ }
1467
+ },
1468
+ "hasDynamicHelp": false,
1469
+ "hiddenAliases": [],
1470
+ "id": "branch:get",
1471
+ "pluginAlias": "@xano/cli",
1472
+ "pluginName": "@xano/cli",
1473
+ "pluginType": "core",
1474
+ "strict": true,
1475
+ "enableJsonFlag": false,
1476
+ "isESM": true,
1477
+ "relativePath": [
1478
+ "dist",
1479
+ "commands",
1480
+ "branch",
1481
+ "get",
1482
+ "index.js"
1483
+ ]
1484
+ },
1485
+ "profile:edit": {
1486
+ "aliases": [],
1487
+ "args": {
1488
+ "name": {
1489
+ "description": "Profile name to edit (uses default profile if not specified)",
1490
+ "name": "name",
1491
+ "required": false
1492
+ }
1493
+ },
1494
+ "description": "Edit an existing profile configuration",
1495
+ "examples": [
1496
+ "$ xano profile:edit --access_token new_token123\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n",
1497
+ "$ xano profile:edit production --access_token new_token123\nProfile 'production' updated successfully at ~/.xano/credentials.yaml\n",
1498
+ "$ xano profile:edit staging -i https://new-staging-instance.xano.com -t new_token456\nProfile 'staging' updated successfully at ~/.xano/credentials.yaml\n",
1499
+ "$ xano profile:edit -b new-branch\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n",
1500
+ "$ xano profile:edit --remove-branch\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n",
1501
+ "$ xano profile:edit --insecure\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n",
1502
+ "$ xano profile:edit --remove-insecure\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n"
1503
+ ],
1504
+ "flags": {
1505
+ "profile": {
1506
+ "char": "p",
1507
+ "description": "Profile to use (uses default profile if not specified)",
1508
+ "env": "XANO_PROFILE",
1509
+ "name": "profile",
1510
+ "required": false,
1511
+ "hasDynamicHelp": false,
1512
+ "multiple": false,
1513
+ "type": "option"
1514
+ },
1515
+ "verbose": {
1516
+ "char": "v",
1517
+ "description": "Show detailed request/response information",
1518
+ "env": "XANO_VERBOSE",
1519
+ "name": "verbose",
1520
+ "required": false,
1521
+ "allowNo": false,
1522
+ "type": "boolean"
1523
+ },
1524
+ "access_token": {
1525
+ "char": "t",
1526
+ "description": "Update access token for the Xano Metadata API",
1527
+ "name": "access_token",
1528
+ "required": false,
1529
+ "hasDynamicHelp": false,
1530
+ "multiple": false,
1531
+ "type": "option"
1532
+ },
1533
+ "account_origin": {
1534
+ "char": "a",
1535
+ "description": "Update account origin URL",
1536
+ "name": "account_origin",
1537
+ "required": false,
1538
+ "hasDynamicHelp": false,
1539
+ "multiple": false,
1540
+ "type": "option"
1541
+ },
1542
+ "branch": {
1543
+ "char": "b",
1544
+ "description": "Update branch name",
1545
+ "name": "branch",
1546
+ "required": false,
1547
+ "hasDynamicHelp": false,
1548
+ "multiple": false,
1549
+ "type": "option"
1550
+ },
1551
+ "insecure": {
1552
+ "description": "Enable insecure mode (skip TLS certificate verification)",
1553
+ "name": "insecure",
1554
+ "required": false,
1555
+ "allowNo": false,
1556
+ "type": "boolean"
1557
+ },
1558
+ "instance_origin": {
1559
+ "char": "i",
1560
+ "description": "Update instance origin URL",
1561
+ "name": "instance_origin",
1562
+ "required": false,
1563
+ "hasDynamicHelp": false,
1564
+ "multiple": false,
1565
+ "type": "option"
1566
+ },
1567
+ "remove-branch": {
1568
+ "description": "Remove branch from profile",
1569
+ "name": "remove-branch",
1570
+ "required": false,
1571
+ "allowNo": false,
1572
+ "type": "boolean"
1573
+ },
1574
+ "remove-insecure": {
1575
+ "description": "Remove insecure mode from profile",
1576
+ "name": "remove-insecure",
1577
+ "required": false,
1578
+ "allowNo": false,
1579
+ "type": "boolean"
1580
+ },
1581
+ "remove-workspace": {
1582
+ "description": "Remove workspace from profile",
1583
+ "name": "remove-workspace",
1584
+ "required": false,
1585
+ "allowNo": false,
1586
+ "type": "boolean"
1587
+ },
1588
+ "workspace": {
1589
+ "char": "w",
1590
+ "description": "Update workspace name",
1591
+ "name": "workspace",
1592
+ "required": false,
1593
+ "hasDynamicHelp": false,
1594
+ "multiple": false,
1595
+ "type": "option"
1596
+ }
1597
+ },
1598
+ "hasDynamicHelp": false,
1599
+ "hiddenAliases": [],
1600
+ "id": "profile:edit",
1601
+ "pluginAlias": "@xano/cli",
1602
+ "pluginName": "@xano/cli",
1603
+ "pluginType": "core",
1604
+ "strict": true,
1605
+ "enableJsonFlag": false,
1606
+ "isESM": true,
1607
+ "relativePath": [
1608
+ "dist",
1609
+ "commands",
1610
+ "profile",
1611
+ "edit",
1612
+ "index.js"
1613
+ ]
1614
+ },
1608
1615
  "profile:token": {
1609
1616
  "aliases": [],
1610
1617
  "args": {},
@@ -1665,37 +1672,11 @@
1665
1672
  "hasDynamicHelp": false,
1666
1673
  "multiple": false,
1667
1674
  "type": "option"
1668
- }
1669
- },
1670
- "hasDynamicHelp": false,
1671
- "hiddenAliases": [],
1672
- "id": "profile:wizard",
1673
- "pluginAlias": "@xano/cli",
1674
- "pluginName": "@xano/cli",
1675
- "pluginType": "core",
1676
- "strict": true,
1677
- "enableJsonFlag": false,
1678
- "isESM": true,
1679
- "relativePath": [
1680
- "dist",
1681
- "commands",
1682
- "profile",
1683
- "wizard",
1684
- "index.js"
1685
- ]
1686
- },
1687
- "profile:workspace": {
1688
- "aliases": [],
1689
- "args": {},
1690
- "description": "Print the workspace ID for the default profile",
1691
- "examples": [
1692
- "$ xano profile:workspace\nabc123-workspace-id\n",
1693
- "$ xano profile:workspace | pbcopy\n# Copies the workspace ID to clipboard on macOS\n"
1694
- ],
1695
- "flags": {},
1675
+ }
1676
+ },
1696
1677
  "hasDynamicHelp": false,
1697
1678
  "hiddenAliases": [],
1698
- "id": "profile:workspace",
1679
+ "id": "profile:wizard",
1699
1680
  "pluginAlias": "@xano/cli",
1700
1681
  "pluginName": "@xano/cli",
1701
1682
  "pluginType": "core",
@@ -1706,107 +1687,22 @@
1706
1687
  "dist",
1707
1688
  "commands",
1708
1689
  "profile",
1709
- "workspace",
1690
+ "wizard",
1710
1691
  "index.js"
1711
1692
  ]
1712
1693
  },
1713
- "release:create": {
1694
+ "profile:workspace": {
1714
1695
  "aliases": [],
1715
1696
  "args": {},
1716
- "description": "Create a new release in a workspace",
1697
+ "description": "Print the workspace ID for the default profile",
1717
1698
  "examples": [
1718
- "$ xano release create --name \"v1.0\" --branch main\nCreated release: v1.0 - ID: 10\n",
1719
- "$ xano release create --name \"v1.1-hotfix\" --branch main --hotfix --description \"Critical fix\" -o json"
1699
+ "$ xano profile:workspace\nabc123-workspace-id\n",
1700
+ "$ xano profile:workspace | pbcopy\n# Copies the workspace ID to clipboard on macOS\n"
1720
1701
  ],
1721
- "flags": {
1722
- "profile": {
1723
- "char": "p",
1724
- "description": "Profile to use (uses default profile if not specified)",
1725
- "env": "XANO_PROFILE",
1726
- "name": "profile",
1727
- "required": false,
1728
- "hasDynamicHelp": false,
1729
- "multiple": false,
1730
- "type": "option"
1731
- },
1732
- "verbose": {
1733
- "char": "v",
1734
- "description": "Show detailed request/response information",
1735
- "env": "XANO_VERBOSE",
1736
- "name": "verbose",
1737
- "required": false,
1738
- "allowNo": false,
1739
- "type": "boolean"
1740
- },
1741
- "branch": {
1742
- "char": "b",
1743
- "description": "Branch to create the release from",
1744
- "name": "branch",
1745
- "required": true,
1746
- "hasDynamicHelp": false,
1747
- "multiple": false,
1748
- "type": "option"
1749
- },
1750
- "description": {
1751
- "char": "d",
1752
- "description": "Release description",
1753
- "name": "description",
1754
- "required": false,
1755
- "hasDynamicHelp": false,
1756
- "multiple": false,
1757
- "type": "option"
1758
- },
1759
- "hotfix": {
1760
- "description": "Mark as a hotfix release",
1761
- "name": "hotfix",
1762
- "required": false,
1763
- "allowNo": false,
1764
- "type": "boolean"
1765
- },
1766
- "name": {
1767
- "char": "n",
1768
- "description": "Name for the release",
1769
- "name": "name",
1770
- "required": true,
1771
- "hasDynamicHelp": false,
1772
- "multiple": false,
1773
- "type": "option"
1774
- },
1775
- "output": {
1776
- "char": "o",
1777
- "description": "Output format",
1778
- "name": "output",
1779
- "required": false,
1780
- "default": "summary",
1781
- "hasDynamicHelp": false,
1782
- "multiple": false,
1783
- "options": [
1784
- "summary",
1785
- "json"
1786
- ],
1787
- "type": "option"
1788
- },
1789
- "table-ids": {
1790
- "description": "Comma-separated table IDs to include",
1791
- "name": "table-ids",
1792
- "required": false,
1793
- "hasDynamicHelp": false,
1794
- "multiple": false,
1795
- "type": "option"
1796
- },
1797
- "workspace": {
1798
- "char": "w",
1799
- "description": "Workspace ID (uses profile workspace if not provided)",
1800
- "name": "workspace",
1801
- "required": false,
1802
- "hasDynamicHelp": false,
1803
- "multiple": false,
1804
- "type": "option"
1805
- }
1806
- },
1702
+ "flags": {},
1807
1703
  "hasDynamicHelp": false,
1808
1704
  "hiddenAliases": [],
1809
- "id": "release:create",
1705
+ "id": "profile:workspace",
1810
1706
  "pluginAlias": "@xano/cli",
1811
1707
  "pluginName": "@xano/cli",
1812
1708
  "pluginType": "core",
@@ -1816,8 +1712,8 @@
1816
1712
  "relativePath": [
1817
1713
  "dist",
1818
1714
  "commands",
1819
- "release",
1820
- "create",
1715
+ "profile",
1716
+ "workspace",
1821
1717
  "index.js"
1822
1718
  ]
1823
1719
  },
@@ -1998,90 +1894,6 @@
1998
1894
  "index.js"
1999
1895
  ]
2000
1896
  },
2001
- "release:export": {
2002
- "aliases": [],
2003
- "args": {
2004
- "release_name": {
2005
- "description": "Release name to export",
2006
- "name": "release_name",
2007
- "required": true
2008
- }
2009
- },
2010
- "description": "Export (download) a release to a local file",
2011
- "examples": [
2012
- "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
2013
- "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
2014
- "$ xano release export v1.0 -o json"
2015
- ],
2016
- "flags": {
2017
- "profile": {
2018
- "char": "p",
2019
- "description": "Profile to use (uses default profile if not specified)",
2020
- "env": "XANO_PROFILE",
2021
- "name": "profile",
2022
- "required": false,
2023
- "hasDynamicHelp": false,
2024
- "multiple": false,
2025
- "type": "option"
2026
- },
2027
- "verbose": {
2028
- "char": "v",
2029
- "description": "Show detailed request/response information",
2030
- "env": "XANO_VERBOSE",
2031
- "name": "verbose",
2032
- "required": false,
2033
- "allowNo": false,
2034
- "type": "boolean"
2035
- },
2036
- "format": {
2037
- "char": "o",
2038
- "description": "Output format",
2039
- "name": "format",
2040
- "required": false,
2041
- "default": "summary",
2042
- "hasDynamicHelp": false,
2043
- "multiple": false,
2044
- "options": [
2045
- "summary",
2046
- "json"
2047
- ],
2048
- "type": "option"
2049
- },
2050
- "output": {
2051
- "description": "Output file path (defaults to ./release-{name}.tar.gz)",
2052
- "name": "output",
2053
- "required": false,
2054
- "hasDynamicHelp": false,
2055
- "multiple": false,
2056
- "type": "option"
2057
- },
2058
- "workspace": {
2059
- "char": "w",
2060
- "description": "Workspace ID (uses profile workspace if not provided)",
2061
- "name": "workspace",
2062
- "required": false,
2063
- "hasDynamicHelp": false,
2064
- "multiple": false,
2065
- "type": "option"
2066
- }
2067
- },
2068
- "hasDynamicHelp": false,
2069
- "hiddenAliases": [],
2070
- "id": "release:export",
2071
- "pluginAlias": "@xano/cli",
2072
- "pluginName": "@xano/cli",
2073
- "pluginType": "core",
2074
- "strict": true,
2075
- "enableJsonFlag": false,
2076
- "isESM": true,
2077
- "relativePath": [
2078
- "dist",
2079
- "commands",
2080
- "release",
2081
- "export",
2082
- "index.js"
2083
- ]
2084
- },
2085
1897
  "release:get": {
2086
1898
  "aliases": [],
2087
1899
  "args": {
@@ -2596,19 +2408,13 @@
2596
2408
  "index.js"
2597
2409
  ]
2598
2410
  },
2599
- "tenant:create": {
2411
+ "release:create": {
2600
2412
  "aliases": [],
2601
- "args": {
2602
- "display": {
2603
- "description": "Display name for the tenant",
2604
- "name": "display",
2605
- "required": true
2606
- }
2607
- },
2608
- "description": "Create a new tenant in a workspace",
2413
+ "args": {},
2414
+ "description": "Create a new release in a workspace",
2609
2415
  "examples": [
2610
- "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
2611
- "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
2416
+ "$ xano release create --name \"v1.0\" --branch main\nCreated release: v1.0 - ID: 10\n",
2417
+ "$ xano release create --name \"v1.1-hotfix\" --branch main --hotfix --description \"Critical fix\" -o json"
2612
2418
  ],
2613
2419
  "flags": {
2614
2420
  "profile": {
@@ -2630,55 +2436,38 @@
2630
2436
  "allowNo": false,
2631
2437
  "type": "boolean"
2632
2438
  },
2633
- "cluster_id": {
2634
- "description": "Cluster ID to deploy to (required for tier2/tier3)",
2635
- "name": "cluster_id",
2636
- "required": false,
2439
+ "branch": {
2440
+ "char": "b",
2441
+ "description": "Branch to create the release from",
2442
+ "name": "branch",
2443
+ "required": true,
2637
2444
  "hasDynamicHelp": false,
2638
2445
  "multiple": false,
2639
2446
  "type": "option"
2640
2447
  },
2641
2448
  "description": {
2642
2449
  "char": "d",
2643
- "description": "Tenant description",
2450
+ "description": "Release description",
2644
2451
  "name": "description",
2645
2452
  "required": false,
2646
2453
  "hasDynamicHelp": false,
2647
2454
  "multiple": false,
2648
2455
  "type": "option"
2649
2456
  },
2650
- "domain": {
2651
- "description": "Custom domain for the tenant",
2652
- "name": "domain",
2457
+ "hotfix": {
2458
+ "description": "Mark as a hotfix release",
2459
+ "name": "hotfix",
2653
2460
  "required": false,
2654
- "hasDynamicHelp": false,
2655
- "multiple": false,
2656
- "type": "option"
2657
- },
2658
- "ephemeral": {
2659
- "description": "Mark tenant as ephemeral (allows push operations)",
2660
- "name": "ephemeral",
2661
2461
  "allowNo": false,
2662
2462
  "type": "boolean"
2663
2463
  },
2664
- "ingress": {
2665
- "description": "Enable ingress",
2666
- "name": "ingress",
2667
- "allowNo": true,
2668
- "type": "boolean"
2669
- },
2670
- "license": {
2671
- "description": "License tier",
2672
- "name": "license",
2673
- "required": false,
2674
- "default": "tier1",
2464
+ "name": {
2465
+ "char": "n",
2466
+ "description": "Name for the release",
2467
+ "name": "name",
2468
+ "required": true,
2675
2469
  "hasDynamicHelp": false,
2676
2470
  "multiple": false,
2677
- "options": [
2678
- "tier1",
2679
- "tier2",
2680
- "tier3"
2681
- ],
2682
2471
  "type": "option"
2683
2472
  },
2684
2473
  "output": {
@@ -2694,21 +2483,15 @@
2694
2483
  "json"
2695
2484
  ],
2696
2485
  "type": "option"
2697
- },
2698
- "platform_id": {
2699
- "description": "Platform ID to use",
2700
- "name": "platform_id",
2486
+ },
2487
+ "table-ids": {
2488
+ "description": "Comma-separated table IDs to include",
2489
+ "name": "table-ids",
2701
2490
  "required": false,
2702
2491
  "hasDynamicHelp": false,
2703
2492
  "multiple": false,
2704
2493
  "type": "option"
2705
2494
  },
2706
- "tasks": {
2707
- "description": "Enable background tasks",
2708
- "name": "tasks",
2709
- "allowNo": true,
2710
- "type": "boolean"
2711
- },
2712
2495
  "workspace": {
2713
2496
  "char": "w",
2714
2497
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2721,7 +2504,7 @@
2721
2504
  },
2722
2505
  "hasDynamicHelp": false,
2723
2506
  "hiddenAliases": [],
2724
- "id": "tenant:create",
2507
+ "id": "release:create",
2725
2508
  "pluginAlias": "@xano/cli",
2726
2509
  "pluginName": "@xano/cli",
2727
2510
  "pluginType": "core",
@@ -2731,7 +2514,7 @@
2731
2514
  "relativePath": [
2732
2515
  "dist",
2733
2516
  "commands",
2734
- "tenant",
2517
+ "release",
2735
2518
  "create",
2736
2519
  "index.js"
2737
2520
  ]
@@ -3274,13 +3057,20 @@
3274
3057
  "index.js"
3275
3058
  ]
3276
3059
  },
3277
- "tenant:list": {
3060
+ "release:export": {
3278
3061
  "aliases": [],
3279
- "args": {},
3280
- "description": "List all tenants in a workspace",
3062
+ "args": {
3063
+ "release_name": {
3064
+ "description": "Release name to export",
3065
+ "name": "release_name",
3066
+ "required": true
3067
+ }
3068
+ },
3069
+ "description": "Export (download) a release to a local file",
3281
3070
  "examples": [
3282
- "$ xano tenant list\nTenants in workspace 5:\n - My Tenant (my-tenant) [ok] - tier1\n - Staging (staging) [ok] - tier1\n",
3283
- "$ xano tenant list -w 5 --output json"
3071
+ "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
3072
+ "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
3073
+ "$ xano release export v1.0 -o json"
3284
3074
  ],
3285
3075
  "flags": {
3286
3076
  "profile": {
@@ -3302,10 +3092,10 @@
3302
3092
  "allowNo": false,
3303
3093
  "type": "boolean"
3304
3094
  },
3305
- "output": {
3095
+ "format": {
3306
3096
  "char": "o",
3307
3097
  "description": "Output format",
3308
- "name": "output",
3098
+ "name": "format",
3309
3099
  "required": false,
3310
3100
  "default": "summary",
3311
3101
  "hasDynamicHelp": false,
@@ -3316,6 +3106,14 @@
3316
3106
  ],
3317
3107
  "type": "option"
3318
3108
  },
3109
+ "output": {
3110
+ "description": "Output file path (defaults to ./release-{name}.tar.gz)",
3111
+ "name": "output",
3112
+ "required": false,
3113
+ "hasDynamicHelp": false,
3114
+ "multiple": false,
3115
+ "type": "option"
3116
+ },
3319
3117
  "workspace": {
3320
3118
  "char": "w",
3321
3119
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3328,7 +3126,7 @@
3328
3126
  },
3329
3127
  "hasDynamicHelp": false,
3330
3128
  "hiddenAliases": [],
3331
- "id": "tenant:list",
3129
+ "id": "release:export",
3332
3130
  "pluginAlias": "@xano/cli",
3333
3131
  "pluginName": "@xano/cli",
3334
3132
  "pluginType": "core",
@@ -3338,26 +3136,18 @@
3338
3136
  "relativePath": [
3339
3137
  "dist",
3340
3138
  "commands",
3341
- "tenant",
3342
- "list",
3139
+ "release",
3140
+ "export",
3343
3141
  "index.js"
3344
3142
  ]
3345
3143
  },
3346
- "tenant:pull": {
3144
+ "tenant:list": {
3347
3145
  "aliases": [],
3348
- "args": {
3349
- "directory": {
3350
- "description": "Output directory for pulled documents",
3351
- "name": "directory",
3352
- "required": true
3353
- }
3354
- },
3355
- "description": "Pull a tenant multidoc from the Xano Metadata API and split into individual files",
3146
+ "args": {},
3147
+ "description": "List all tenants in a workspace",
3356
3148
  "examples": [
3357
- "$ xano tenant pull ./my-tenant -t my-tenant\nPulled 42 documents from tenant my-tenant to ./my-tenant\n",
3358
- "$ xano tenant pull ./output -t my-tenant -w 40\nPulled 15 documents from tenant my-tenant to ./output\n",
3359
- "$ xano tenant pull ./backup -t my-tenant --profile production --env --records\nPulled 58 documents from tenant my-tenant to ./backup\n",
3360
- "$ xano tenant pull ./my-tenant -t my-tenant --draft\nPulled 42 documents from tenant my-tenant to ./my-tenant\n"
3149
+ "$ xano tenant list\nTenants in workspace 5:\n - My Tenant (my-tenant) [ok] - tier1\n - Staging (staging) [ok] - tier1\n",
3150
+ "$ xano tenant list -w 5 --output json"
3361
3151
  ],
3362
3152
  "flags": {
3363
3153
  "profile": {
@@ -3379,39 +3169,23 @@
3379
3169
  "allowNo": false,
3380
3170
  "type": "boolean"
3381
3171
  },
3382
- "draft": {
3383
- "description": "Include draft versions",
3384
- "name": "draft",
3385
- "required": false,
3386
- "allowNo": false,
3387
- "type": "boolean"
3388
- },
3389
- "env": {
3390
- "description": "Include environment variables",
3391
- "name": "env",
3392
- "required": false,
3393
- "allowNo": false,
3394
- "type": "boolean"
3395
- },
3396
- "records": {
3397
- "description": "Include records",
3398
- "name": "records",
3172
+ "output": {
3173
+ "char": "o",
3174
+ "description": "Output format",
3175
+ "name": "output",
3399
3176
  "required": false,
3400
- "allowNo": false,
3401
- "type": "boolean"
3402
- },
3403
- "tenant": {
3404
- "char": "t",
3405
- "description": "Tenant name to pull from",
3406
- "name": "tenant",
3407
- "required": true,
3177
+ "default": "summary",
3408
3178
  "hasDynamicHelp": false,
3409
3179
  "multiple": false,
3180
+ "options": [
3181
+ "summary",
3182
+ "json"
3183
+ ],
3410
3184
  "type": "option"
3411
3185
  },
3412
3186
  "workspace": {
3413
3187
  "char": "w",
3414
- "description": "Workspace ID (optional if set in profile)",
3188
+ "description": "Workspace ID (uses profile workspace if not provided)",
3415
3189
  "name": "workspace",
3416
3190
  "required": false,
3417
3191
  "hasDynamicHelp": false,
@@ -3421,7 +3195,7 @@
3421
3195
  },
3422
3196
  "hasDynamicHelp": false,
3423
3197
  "hiddenAliases": [],
3424
- "id": "tenant:pull",
3198
+ "id": "tenant:list",
3425
3199
  "pluginAlias": "@xano/cli",
3426
3200
  "pluginName": "@xano/cli",
3427
3201
  "pluginType": "core",
@@ -3432,7 +3206,7 @@
3432
3206
  "dist",
3433
3207
  "commands",
3434
3208
  "tenant",
3435
- "pull",
3209
+ "list",
3436
3210
  "index.js"
3437
3211
  ]
3438
3212
  },
@@ -3705,6 +3479,99 @@
3705
3479
  "index.js"
3706
3480
  ]
3707
3481
  },
3482
+ "tenant:pull": {
3483
+ "aliases": [],
3484
+ "args": {
3485
+ "directory": {
3486
+ "description": "Output directory for pulled documents",
3487
+ "name": "directory",
3488
+ "required": true
3489
+ }
3490
+ },
3491
+ "description": "Pull a tenant multidoc from the Xano Metadata API and split into individual files",
3492
+ "examples": [
3493
+ "$ xano tenant pull ./my-tenant -t my-tenant\nPulled 42 documents from tenant my-tenant to ./my-tenant\n",
3494
+ "$ xano tenant pull ./output -t my-tenant -w 40\nPulled 15 documents from tenant my-tenant to ./output\n",
3495
+ "$ xano tenant pull ./backup -t my-tenant --profile production --env --records\nPulled 58 documents from tenant my-tenant to ./backup\n",
3496
+ "$ xano tenant pull ./my-tenant -t my-tenant --draft\nPulled 42 documents from tenant my-tenant to ./my-tenant\n"
3497
+ ],
3498
+ "flags": {
3499
+ "profile": {
3500
+ "char": "p",
3501
+ "description": "Profile to use (uses default profile if not specified)",
3502
+ "env": "XANO_PROFILE",
3503
+ "name": "profile",
3504
+ "required": false,
3505
+ "hasDynamicHelp": false,
3506
+ "multiple": false,
3507
+ "type": "option"
3508
+ },
3509
+ "verbose": {
3510
+ "char": "v",
3511
+ "description": "Show detailed request/response information",
3512
+ "env": "XANO_VERBOSE",
3513
+ "name": "verbose",
3514
+ "required": false,
3515
+ "allowNo": false,
3516
+ "type": "boolean"
3517
+ },
3518
+ "draft": {
3519
+ "description": "Include draft versions",
3520
+ "name": "draft",
3521
+ "required": false,
3522
+ "allowNo": false,
3523
+ "type": "boolean"
3524
+ },
3525
+ "env": {
3526
+ "description": "Include environment variables",
3527
+ "name": "env",
3528
+ "required": false,
3529
+ "allowNo": false,
3530
+ "type": "boolean"
3531
+ },
3532
+ "records": {
3533
+ "description": "Include records",
3534
+ "name": "records",
3535
+ "required": false,
3536
+ "allowNo": false,
3537
+ "type": "boolean"
3538
+ },
3539
+ "tenant": {
3540
+ "char": "t",
3541
+ "description": "Tenant name to pull from",
3542
+ "name": "tenant",
3543
+ "required": true,
3544
+ "hasDynamicHelp": false,
3545
+ "multiple": false,
3546
+ "type": "option"
3547
+ },
3548
+ "workspace": {
3549
+ "char": "w",
3550
+ "description": "Workspace ID (optional if set in profile)",
3551
+ "name": "workspace",
3552
+ "required": false,
3553
+ "hasDynamicHelp": false,
3554
+ "multiple": false,
3555
+ "type": "option"
3556
+ }
3557
+ },
3558
+ "hasDynamicHelp": false,
3559
+ "hiddenAliases": [],
3560
+ "id": "tenant:pull",
3561
+ "pluginAlias": "@xano/cli",
3562
+ "pluginName": "@xano/cli",
3563
+ "pluginType": "core",
3564
+ "strict": true,
3565
+ "enableJsonFlag": false,
3566
+ "isESM": true,
3567
+ "relativePath": [
3568
+ "dist",
3569
+ "commands",
3570
+ "tenant",
3571
+ "pull",
3572
+ "index.js"
3573
+ ]
3574
+ },
3708
3575
  "unit_test:run_all": {
3709
3576
  "aliases": [],
3710
3577
  "args": {},
@@ -3796,20 +3663,19 @@
3796
3663
  "index.js"
3797
3664
  ]
3798
3665
  },
3799
- "workspace:create": {
3666
+ "tenant:create": {
3800
3667
  "aliases": [],
3801
3668
  "args": {
3802
- "name": {
3803
- "description": "Name of the workspace",
3804
- "name": "name",
3669
+ "display": {
3670
+ "description": "Display name for the tenant",
3671
+ "name": "display",
3805
3672
  "required": true
3806
3673
  }
3807
3674
  },
3808
- "description": "Create a new workspace via the Xano Metadata API",
3675
+ "description": "Create a new tenant in a workspace",
3809
3676
  "examples": [
3810
- "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
3811
- "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
3812
- "$ 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"
3677
+ "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
3678
+ "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
3813
3679
  ],
3814
3680
  "flags": {
3815
3681
  "profile": {
@@ -3831,15 +3697,57 @@
3831
3697
  "allowNo": false,
3832
3698
  "type": "boolean"
3833
3699
  },
3700
+ "cluster_id": {
3701
+ "description": "Cluster ID to deploy to (required for tier2/tier3)",
3702
+ "name": "cluster_id",
3703
+ "required": false,
3704
+ "hasDynamicHelp": false,
3705
+ "multiple": false,
3706
+ "type": "option"
3707
+ },
3834
3708
  "description": {
3835
3709
  "char": "d",
3836
- "description": "Description for the workspace",
3710
+ "description": "Tenant description",
3837
3711
  "name": "description",
3838
3712
  "required": false,
3839
3713
  "hasDynamicHelp": false,
3840
3714
  "multiple": false,
3841
3715
  "type": "option"
3842
3716
  },
3717
+ "domain": {
3718
+ "description": "Custom domain for the tenant",
3719
+ "name": "domain",
3720
+ "required": false,
3721
+ "hasDynamicHelp": false,
3722
+ "multiple": false,
3723
+ "type": "option"
3724
+ },
3725
+ "ephemeral": {
3726
+ "description": "Mark tenant as ephemeral (allows push operations)",
3727
+ "name": "ephemeral",
3728
+ "allowNo": false,
3729
+ "type": "boolean"
3730
+ },
3731
+ "ingress": {
3732
+ "description": "Enable ingress",
3733
+ "name": "ingress",
3734
+ "allowNo": true,
3735
+ "type": "boolean"
3736
+ },
3737
+ "license": {
3738
+ "description": "License tier",
3739
+ "name": "license",
3740
+ "required": false,
3741
+ "default": "tier1",
3742
+ "hasDynamicHelp": false,
3743
+ "multiple": false,
3744
+ "options": [
3745
+ "tier1",
3746
+ "tier2",
3747
+ "tier3"
3748
+ ],
3749
+ "type": "option"
3750
+ },
3843
3751
  "output": {
3844
3752
  "char": "o",
3845
3753
  "description": "Output format",
@@ -3853,11 +3761,34 @@
3853
3761
  "json"
3854
3762
  ],
3855
3763
  "type": "option"
3764
+ },
3765
+ "platform_id": {
3766
+ "description": "Platform ID to use",
3767
+ "name": "platform_id",
3768
+ "required": false,
3769
+ "hasDynamicHelp": false,
3770
+ "multiple": false,
3771
+ "type": "option"
3772
+ },
3773
+ "tasks": {
3774
+ "description": "Enable background tasks",
3775
+ "name": "tasks",
3776
+ "allowNo": true,
3777
+ "type": "boolean"
3778
+ },
3779
+ "workspace": {
3780
+ "char": "w",
3781
+ "description": "Workspace ID (uses profile workspace if not provided)",
3782
+ "name": "workspace",
3783
+ "required": false,
3784
+ "hasDynamicHelp": false,
3785
+ "multiple": false,
3786
+ "type": "option"
3856
3787
  }
3857
3788
  },
3858
3789
  "hasDynamicHelp": false,
3859
3790
  "hiddenAliases": [],
3860
- "id": "workspace:create",
3791
+ "id": "tenant:create",
3861
3792
  "pluginAlias": "@xano/cli",
3862
3793
  "pluginName": "@xano/cli",
3863
3794
  "pluginType": "core",
@@ -3867,25 +3798,19 @@
3867
3798
  "relativePath": [
3868
3799
  "dist",
3869
3800
  "commands",
3870
- "workspace",
3801
+ "tenant",
3871
3802
  "create",
3872
3803
  "index.js"
3873
3804
  ]
3874
3805
  },
3875
- "workspace:delete": {
3806
+ "workflow_test:list": {
3876
3807
  "aliases": [],
3877
- "args": {
3878
- "workspace_id": {
3879
- "description": "Workspace ID to delete",
3880
- "name": "workspace_id",
3881
- "required": true
3882
- }
3883
- },
3884
- "description": "Delete a workspace via the Xano Metadata API. Cannot delete workspaces with active tenants.",
3808
+ "args": {},
3809
+ "description": "List all workflow tests in a workspace",
3885
3810
  "examples": [
3886
- "$ 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",
3887
- "$ xano workspace delete 123 --force\nDeleted workspace 123\n",
3888
- "$ xano workspace delete 123 -f -o json\n{\n \"deleted\": true,\n \"workspace_id\": 123\n}\n"
3811
+ "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
3812
+ "$ xano workflow-test list -w 5 --output json",
3813
+ "$ xano workflow-test list --branch main"
3889
3814
  ],
3890
3815
  "flags": {
3891
3816
  "profile": {
@@ -3907,13 +3832,14 @@
3907
3832
  "allowNo": false,
3908
3833
  "type": "boolean"
3909
3834
  },
3910
- "force": {
3911
- "char": "f",
3912
- "description": "Skip confirmation prompt",
3913
- "name": "force",
3835
+ "branch": {
3836
+ "char": "b",
3837
+ "description": "Filter by branch name",
3838
+ "name": "branch",
3914
3839
  "required": false,
3915
- "allowNo": false,
3916
- "type": "boolean"
3840
+ "hasDynamicHelp": false,
3841
+ "multiple": false,
3842
+ "type": "option"
3917
3843
  },
3918
3844
  "output": {
3919
3845
  "char": "o",
@@ -3928,11 +3854,20 @@
3928
3854
  "json"
3929
3855
  ],
3930
3856
  "type": "option"
3857
+ },
3858
+ "workspace": {
3859
+ "char": "w",
3860
+ "description": "Workspace ID (uses profile workspace if not provided)",
3861
+ "name": "workspace",
3862
+ "required": false,
3863
+ "hasDynamicHelp": false,
3864
+ "multiple": false,
3865
+ "type": "option"
3931
3866
  }
3932
3867
  },
3933
3868
  "hasDynamicHelp": false,
3934
3869
  "hiddenAliases": [],
3935
- "id": "workspace:delete",
3870
+ "id": "workflow_test:list",
3936
3871
  "pluginAlias": "@xano/cli",
3937
3872
  "pluginName": "@xano/cli",
3938
3873
  "pluginType": "core",
@@ -3942,26 +3877,24 @@
3942
3877
  "relativePath": [
3943
3878
  "dist",
3944
3879
  "commands",
3945
- "workspace",
3946
- "delete",
3880
+ "workflow_test",
3881
+ "list",
3947
3882
  "index.js"
3948
3883
  ]
3949
3884
  },
3950
- "workspace:edit": {
3885
+ "workflow_test:run": {
3951
3886
  "aliases": [],
3952
3887
  "args": {
3953
- "workspace_id": {
3954
- "description": "Workspace ID to edit (uses profile workspace if not provided)",
3955
- "name": "workspace_id",
3956
- "required": false
3888
+ "workflow_test_id": {
3889
+ "description": "ID of the workflow test to run",
3890
+ "name": "workflow_test_id",
3891
+ "required": true
3957
3892
  }
3958
3893
  },
3959
- "description": "Edit an existing workspace via the Xano Metadata API",
3894
+ "description": "Run a workflow test",
3960
3895
  "examples": [
3961
- "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
3962
- "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
3963
- "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
3964
- "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
3896
+ "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
3897
+ "$ xano workflow-test run 1 -o json"
3965
3898
  ],
3966
3899
  "flags": {
3967
3900
  "profile": {
@@ -3983,24 +3916,6 @@
3983
3916
  "allowNo": false,
3984
3917
  "type": "boolean"
3985
3918
  },
3986
- "description": {
3987
- "char": "d",
3988
- "description": "New description for the workspace",
3989
- "name": "description",
3990
- "required": false,
3991
- "hasDynamicHelp": false,
3992
- "multiple": false,
3993
- "type": "option"
3994
- },
3995
- "name": {
3996
- "char": "n",
3997
- "description": "New name for the workspace",
3998
- "name": "name",
3999
- "required": false,
4000
- "hasDynamicHelp": false,
4001
- "multiple": false,
4002
- "type": "option"
4003
- },
4004
3919
  "output": {
4005
3920
  "char": "o",
4006
3921
  "description": "Output format",
@@ -4015,24 +3930,19 @@
4015
3930
  ],
4016
3931
  "type": "option"
4017
3932
  },
4018
- "require-token": {
4019
- "description": "Whether to require a token for documentation access",
4020
- "name": "require-token",
4021
- "required": false,
4022
- "allowNo": true,
4023
- "type": "boolean"
4024
- },
4025
- "swagger": {
4026
- "description": "Enable or disable swagger documentation",
4027
- "name": "swagger",
3933
+ "workspace": {
3934
+ "char": "w",
3935
+ "description": "Workspace ID (uses profile workspace if not provided)",
3936
+ "name": "workspace",
4028
3937
  "required": false,
4029
- "allowNo": true,
4030
- "type": "boolean"
3938
+ "hasDynamicHelp": false,
3939
+ "multiple": false,
3940
+ "type": "option"
4031
3941
  }
4032
3942
  },
4033
3943
  "hasDynamicHelp": false,
4034
3944
  "hiddenAliases": [],
4035
- "id": "workspace:edit",
3945
+ "id": "workflow_test:run",
4036
3946
  "pluginAlias": "@xano/cli",
4037
3947
  "pluginName": "@xano/cli",
4038
3948
  "pluginType": "core",
@@ -4042,25 +3952,18 @@
4042
3952
  "relativePath": [
4043
3953
  "dist",
4044
3954
  "commands",
4045
- "workspace",
4046
- "edit",
3955
+ "workflow_test",
3956
+ "run",
4047
3957
  "index.js"
4048
3958
  ]
4049
3959
  },
4050
- "workspace:get": {
3960
+ "workflow_test:run_all": {
4051
3961
  "aliases": [],
4052
- "args": {
4053
- "workspace_id": {
4054
- "description": "Workspace ID to get details for (uses profile workspace if not provided)",
4055
- "name": "workspace_id",
4056
- "required": false
4057
- }
4058
- },
4059
- "description": "Get details of a specific workspace from the Xano Metadata API",
3962
+ "args": {},
3963
+ "description": "Run all workflow tests in a workspace",
4060
3964
  "examples": [
4061
- "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
4062
- "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
4063
- "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
3965
+ "$ 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",
3966
+ "$ xano workflow-test run-all --branch main -o json"
4064
3967
  ],
4065
3968
  "flags": {
4066
3969
  "profile": {
@@ -4082,6 +3985,15 @@
4082
3985
  "allowNo": false,
4083
3986
  "type": "boolean"
4084
3987
  },
3988
+ "branch": {
3989
+ "char": "b",
3990
+ "description": "Filter by branch name",
3991
+ "name": "branch",
3992
+ "required": false,
3993
+ "hasDynamicHelp": false,
3994
+ "multiple": false,
3995
+ "type": "option"
3996
+ },
4085
3997
  "output": {
4086
3998
  "char": "o",
4087
3999
  "description": "Output format",
@@ -4095,11 +4007,20 @@
4095
4007
  "json"
4096
4008
  ],
4097
4009
  "type": "option"
4010
+ },
4011
+ "workspace": {
4012
+ "char": "w",
4013
+ "description": "Workspace ID (uses profile workspace if not provided)",
4014
+ "name": "workspace",
4015
+ "required": false,
4016
+ "hasDynamicHelp": false,
4017
+ "multiple": false,
4018
+ "type": "option"
4098
4019
  }
4099
4020
  },
4100
4021
  "hasDynamicHelp": false,
4101
4022
  "hiddenAliases": [],
4102
- "id": "workspace:get",
4023
+ "id": "workflow_test:run_all",
4103
4024
  "pluginAlias": "@xano/cli",
4104
4025
  "pluginName": "@xano/cli",
4105
4026
  "pluginType": "core",
@@ -4109,20 +4030,25 @@
4109
4030
  "relativePath": [
4110
4031
  "dist",
4111
4032
  "commands",
4112
- "workspace",
4113
- "get",
4033
+ "workflow_test",
4034
+ "run_all",
4114
4035
  "index.js"
4115
4036
  ]
4116
4037
  },
4117
- "workspace:list": {
4038
+ "workspace:create": {
4118
4039
  "aliases": [],
4119
- "args": {},
4120
- "description": "List all workspaces from the Xano Metadata API",
4040
+ "args": {
4041
+ "name": {
4042
+ "description": "Name of the workspace",
4043
+ "name": "name",
4044
+ "required": true
4045
+ }
4046
+ },
4047
+ "description": "Create a new workspace via the Xano Metadata API",
4121
4048
  "examples": [
4122
- "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4123
- "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4124
- "$ 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",
4125
- "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4049
+ "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
4050
+ "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
4051
+ "$ 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"
4126
4052
  ],
4127
4053
  "flags": {
4128
4054
  "profile": {
@@ -4144,6 +4070,15 @@
4144
4070
  "allowNo": false,
4145
4071
  "type": "boolean"
4146
4072
  },
4073
+ "description": {
4074
+ "char": "d",
4075
+ "description": "Description for the workspace",
4076
+ "name": "description",
4077
+ "required": false,
4078
+ "hasDynamicHelp": false,
4079
+ "multiple": false,
4080
+ "type": "option"
4081
+ },
4147
4082
  "output": {
4148
4083
  "char": "o",
4149
4084
  "description": "Output format",
@@ -4161,7 +4096,7 @@
4161
4096
  },
4162
4097
  "hasDynamicHelp": false,
4163
4098
  "hiddenAliases": [],
4164
- "id": "workspace:list",
4099
+ "id": "workspace:create",
4165
4100
  "pluginAlias": "@xano/cli",
4166
4101
  "pluginName": "@xano/cli",
4167
4102
  "pluginType": "core",
@@ -4172,26 +4107,24 @@
4172
4107
  "dist",
4173
4108
  "commands",
4174
4109
  "workspace",
4175
- "list",
4110
+ "create",
4176
4111
  "index.js"
4177
4112
  ]
4178
4113
  },
4179
- "workspace:pull": {
4114
+ "workspace:delete": {
4180
4115
  "aliases": [],
4181
4116
  "args": {
4182
- "directory": {
4183
- "description": "Output directory for pulled documents",
4184
- "name": "directory",
4117
+ "workspace_id": {
4118
+ "description": "Workspace ID to delete",
4119
+ "name": "workspace_id",
4185
4120
  "required": true
4186
4121
  }
4187
4122
  },
4188
- "description": "Pull a workspace multidoc from the Xano Metadata API and split into individual files",
4123
+ "description": "Delete a workspace via the Xano Metadata API. Cannot delete workspaces with active tenants.",
4189
4124
  "examples": [
4190
- "$ xano workspace pull ./my-workspace\nPulled 42 documents to ./my-workspace\n",
4191
- "$ xano workspace pull ./output -w 40\nPulled 15 documents to ./output\n",
4192
- "$ xano workspace pull ./backup --profile production --env --records\nPulled 58 documents to ./backup\n",
4193
- "$ xano workspace pull ./my-workspace --draft\nPulled 42 documents to ./my-workspace\n",
4194
- "$ xano workspace pull ./my-workspace -b dev\nPulled 42 documents to ./my-workspace\n"
4125
+ "$ 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",
4126
+ "$ xano workspace delete 123 --force\nDeleted workspace 123\n",
4127
+ "$ xano workspace delete 123 -f -o json\n{\n \"deleted\": true,\n \"workspace_id\": 123\n}\n"
4195
4128
  ],
4196
4129
  "flags": {
4197
4130
  "profile": {
@@ -4204,58 +4137,41 @@
4204
4137
  "multiple": false,
4205
4138
  "type": "option"
4206
4139
  },
4207
- "verbose": {
4208
- "char": "v",
4209
- "description": "Show detailed request/response information",
4210
- "env": "XANO_VERBOSE",
4211
- "name": "verbose",
4212
- "required": false,
4213
- "allowNo": false,
4214
- "type": "boolean"
4215
- },
4216
- "branch": {
4217
- "char": "b",
4218
- "description": "Branch name (optional if set in profile, defaults to live)",
4219
- "name": "branch",
4220
- "required": false,
4221
- "hasDynamicHelp": false,
4222
- "multiple": false,
4223
- "type": "option"
4224
- },
4225
- "env": {
4226
- "description": "Include environment variables",
4227
- "name": "env",
4228
- "required": false,
4229
- "allowNo": false,
4230
- "type": "boolean"
4231
- },
4232
- "draft": {
4233
- "description": "Include draft versions",
4234
- "name": "draft",
4140
+ "verbose": {
4141
+ "char": "v",
4142
+ "description": "Show detailed request/response information",
4143
+ "env": "XANO_VERBOSE",
4144
+ "name": "verbose",
4235
4145
  "required": false,
4236
4146
  "allowNo": false,
4237
4147
  "type": "boolean"
4238
4148
  },
4239
- "records": {
4240
- "description": "Include records",
4241
- "name": "records",
4149
+ "force": {
4150
+ "char": "f",
4151
+ "description": "Skip confirmation prompt",
4152
+ "name": "force",
4242
4153
  "required": false,
4243
4154
  "allowNo": false,
4244
4155
  "type": "boolean"
4245
4156
  },
4246
- "workspace": {
4247
- "char": "w",
4248
- "description": "Workspace ID (optional if set in profile)",
4249
- "name": "workspace",
4157
+ "output": {
4158
+ "char": "o",
4159
+ "description": "Output format",
4160
+ "name": "output",
4250
4161
  "required": false,
4162
+ "default": "summary",
4251
4163
  "hasDynamicHelp": false,
4252
4164
  "multiple": false,
4165
+ "options": [
4166
+ "summary",
4167
+ "json"
4168
+ ],
4253
4169
  "type": "option"
4254
4170
  }
4255
4171
  },
4256
4172
  "hasDynamicHelp": false,
4257
4173
  "hiddenAliases": [],
4258
- "id": "workspace:pull",
4174
+ "id": "workspace:delete",
4259
4175
  "pluginAlias": "@xano/cli",
4260
4176
  "pluginName": "@xano/cli",
4261
4177
  "pluginType": "core",
@@ -4266,31 +4182,25 @@
4266
4182
  "dist",
4267
4183
  "commands",
4268
4184
  "workspace",
4269
- "pull",
4185
+ "delete",
4270
4186
  "index.js"
4271
4187
  ]
4272
4188
  },
4273
- "workspace:push": {
4189
+ "workspace:edit": {
4274
4190
  "aliases": [],
4275
4191
  "args": {
4276
- "directory": {
4277
- "description": "Directory containing documents to push (as produced by workspace pull)",
4278
- "name": "directory",
4279
- "required": true
4192
+ "workspace_id": {
4193
+ "description": "Workspace ID to edit (uses profile workspace if not provided)",
4194
+ "name": "workspace_id",
4195
+ "required": false
4280
4196
  }
4281
4197
  },
4282
- "description": "Push local documents to a workspace. Shows a preview of changes before pushing unless --yes is specified.",
4198
+ "description": "Edit an existing workspace via the Xano Metadata API",
4283
4199
  "examples": [
4284
- "$ xano workspace push ./my-workspace\nShows preview of changes, requires confirmation\n",
4285
- "$ xano workspace push ./my-workspace --force\nSkip preview and push immediately (for CI/CD)\n",
4286
- "$ xano workspace push ./my-workspace --delete\nShows preview including deletions, requires confirmation\n",
4287
- "$ xano workspace push ./output -w 40\nPushed 15 documents from ./output\n",
4288
- "$ xano workspace push ./backup --profile production\nPushed 58 documents from ./backup\n",
4289
- "$ xano workspace push ./my-workspace -b dev\nPushed 42 documents from ./my-workspace\n",
4290
- "$ xano workspace push ./my-functions --partial\nPush some files without a workspace block (implies --no-delete)\n",
4291
- "$ xano workspace push ./my-workspace --no-records\nPush schema only, skip importing table records\n",
4292
- "$ xano workspace push ./my-workspace --no-env\nPush without overwriting environment variables\n",
4293
- "$ xano workspace push ./my-workspace --truncate\nTruncate all table records before importing\n"
4200
+ "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
4201
+ "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
4202
+ "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
4203
+ "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
4294
4204
  ],
4295
4205
  "flags": {
4296
4206
  "profile": {
@@ -4312,84 +4222,56 @@
4312
4222
  "allowNo": false,
4313
4223
  "type": "boolean"
4314
4224
  },
4315
- "branch": {
4316
- "char": "b",
4317
- "description": "Branch name (optional if set in profile, defaults to live)",
4318
- "name": "branch",
4225
+ "description": {
4226
+ "char": "d",
4227
+ "description": "New description for the workspace",
4228
+ "name": "description",
4319
4229
  "required": false,
4320
4230
  "hasDynamicHelp": false,
4321
4231
  "multiple": false,
4322
4232
  "type": "option"
4323
4233
  },
4324
- "delete": {
4325
- "description": "Delete workspace objects not included in the push",
4326
- "name": "delete",
4327
- "required": false,
4328
- "allowNo": false,
4329
- "type": "boolean"
4330
- },
4331
- "env": {
4332
- "description": "Include environment variables in import",
4333
- "name": "env",
4334
- "required": false,
4335
- "allowNo": false,
4336
- "type": "boolean"
4337
- },
4338
- "partial": {
4339
- "description": "Partial push — workspace block is not required, existing objects are kept (implies --no-delete)",
4340
- "name": "partial",
4234
+ "name": {
4235
+ "char": "n",
4236
+ "description": "New name for the workspace",
4237
+ "name": "name",
4341
4238
  "required": false,
4342
- "allowNo": false,
4343
- "type": "boolean"
4239
+ "hasDynamicHelp": false,
4240
+ "multiple": false,
4241
+ "type": "option"
4344
4242
  },
4345
- "records": {
4346
- "description": "Include records in import",
4347
- "name": "records",
4243
+ "output": {
4244
+ "char": "o",
4245
+ "description": "Output format",
4246
+ "name": "output",
4348
4247
  "required": false,
4349
- "allowNo": false,
4350
- "type": "boolean"
4248
+ "default": "summary",
4249
+ "hasDynamicHelp": false,
4250
+ "multiple": false,
4251
+ "options": [
4252
+ "summary",
4253
+ "json"
4254
+ ],
4255
+ "type": "option"
4351
4256
  },
4352
- "sync-guids": {
4353
- "description": "Write server-assigned GUIDs back to local files (use --no-sync-guids to skip)",
4354
- "name": "sync-guids",
4257
+ "require-token": {
4258
+ "description": "Whether to require a token for documentation access",
4259
+ "name": "require-token",
4355
4260
  "required": false,
4356
4261
  "allowNo": true,
4357
4262
  "type": "boolean"
4358
4263
  },
4359
- "transaction": {
4360
- "description": "Wrap import in a database transaction (use --no-transaction for debugging purposes)",
4361
- "name": "transaction",
4264
+ "swagger": {
4265
+ "description": "Enable or disable swagger documentation",
4266
+ "name": "swagger",
4362
4267
  "required": false,
4363
4268
  "allowNo": true,
4364
4269
  "type": "boolean"
4365
- },
4366
- "truncate": {
4367
- "description": "Truncate all table records before importing",
4368
- "name": "truncate",
4369
- "required": false,
4370
- "allowNo": false,
4371
- "type": "boolean"
4372
- },
4373
- "workspace": {
4374
- "char": "w",
4375
- "description": "Workspace ID (optional if set in profile)",
4376
- "name": "workspace",
4377
- "required": false,
4378
- "hasDynamicHelp": false,
4379
- "multiple": false,
4380
- "type": "option"
4381
- },
4382
- "force": {
4383
- "description": "Skip preview and confirmation prompt (for CI/CD pipelines)",
4384
- "name": "force",
4385
- "required": false,
4386
- "allowNo": false,
4387
- "type": "boolean"
4388
4270
  }
4389
4271
  },
4390
4272
  "hasDynamicHelp": false,
4391
4273
  "hiddenAliases": [],
4392
- "id": "workspace:push",
4274
+ "id": "workspace:edit",
4393
4275
  "pluginAlias": "@xano/cli",
4394
4276
  "pluginName": "@xano/cli",
4395
4277
  "pluginType": "core",
@@ -4400,23 +4282,24 @@
4400
4282
  "dist",
4401
4283
  "commands",
4402
4284
  "workspace",
4403
- "push",
4285
+ "edit",
4404
4286
  "index.js"
4405
4287
  ]
4406
4288
  },
4407
- "workflow_test:delete": {
4289
+ "workflow_test:get": {
4408
4290
  "aliases": [],
4409
4291
  "args": {
4410
4292
  "workflow_test_id": {
4411
- "description": "ID of the workflow test to delete",
4293
+ "description": "ID of the workflow test",
4412
4294
  "name": "workflow_test_id",
4413
4295
  "required": true
4414
4296
  }
4415
4297
  },
4416
- "description": "Delete a workflow test",
4298
+ "description": "Get a specific workflow test",
4417
4299
  "examples": [
4418
- "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
4419
- "$ xano workflow-test delete 1 --force"
4300
+ "$ xano workflow-test get 1\nWorkflow Test: my-test (ID: 1)\n Description: Validates auth endpoints\n Branch: main\n",
4301
+ "$ xano workflow-test get 1 -o xs",
4302
+ "$ xano workflow-test get 1 -o json"
4420
4303
  ],
4421
4304
  "flags": {
4422
4305
  "profile": {
@@ -4438,10 +4321,9 @@
4438
4321
  "allowNo": false,
4439
4322
  "type": "boolean"
4440
4323
  },
4441
- "force": {
4442
- "char": "f",
4443
- "description": "Skip confirmation prompt",
4444
- "name": "force",
4324
+ "include-draft": {
4325
+ "description": "Include draft version",
4326
+ "name": "include-draft",
4445
4327
  "required": false,
4446
4328
  "allowNo": false,
4447
4329
  "type": "boolean"
@@ -4456,7 +4338,8 @@
4456
4338
  "multiple": false,
4457
4339
  "options": [
4458
4340
  "summary",
4459
- "json"
4341
+ "json",
4342
+ "xs"
4460
4343
  ],
4461
4344
  "type": "option"
4462
4345
  },
@@ -4472,7 +4355,7 @@
4472
4355
  },
4473
4356
  "hasDynamicHelp": false,
4474
4357
  "hiddenAliases": [],
4475
- "id": "workflow_test:delete",
4358
+ "id": "workflow_test:get",
4476
4359
  "pluginAlias": "@xano/cli",
4477
4360
  "pluginName": "@xano/cli",
4478
4361
  "pluginType": "core",
@@ -4483,24 +4366,24 @@
4483
4366
  "dist",
4484
4367
  "commands",
4485
4368
  "workflow_test",
4486
- "delete",
4369
+ "get",
4487
4370
  "index.js"
4488
4371
  ]
4489
4372
  },
4490
- "workflow_test:get": {
4373
+ "workspace:get": {
4491
4374
  "aliases": [],
4492
4375
  "args": {
4493
- "workflow_test_id": {
4494
- "description": "ID of the workflow test",
4495
- "name": "workflow_test_id",
4496
- "required": true
4376
+ "workspace_id": {
4377
+ "description": "Workspace ID to get details for (uses profile workspace if not provided)",
4378
+ "name": "workspace_id",
4379
+ "required": false
4497
4380
  }
4498
4381
  },
4499
- "description": "Get a specific workflow test",
4382
+ "description": "Get details of a specific workspace from the Xano Metadata API",
4500
4383
  "examples": [
4501
- "$ xano workflow-test get 1\nWorkflow Test: my-test (ID: 1)\n Description: Validates auth endpoints\n Branch: main\n",
4502
- "$ xano workflow-test get 1 -o xs",
4503
- "$ xano workflow-test get 1 -o json"
4384
+ "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
4385
+ "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
4386
+ "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
4504
4387
  ],
4505
4388
  "flags": {
4506
4389
  "profile": {
@@ -4522,13 +4405,6 @@
4522
4405
  "allowNo": false,
4523
4406
  "type": "boolean"
4524
4407
  },
4525
- "include-draft": {
4526
- "description": "Include draft version",
4527
- "name": "include-draft",
4528
- "required": false,
4529
- "allowNo": false,
4530
- "type": "boolean"
4531
- },
4532
4408
  "output": {
4533
4409
  "char": "o",
4534
4410
  "description": "Output format",
@@ -4539,24 +4415,14 @@
4539
4415
  "multiple": false,
4540
4416
  "options": [
4541
4417
  "summary",
4542
- "json",
4543
- "xs"
4418
+ "json"
4544
4419
  ],
4545
4420
  "type": "option"
4546
- },
4547
- "workspace": {
4548
- "char": "w",
4549
- "description": "Workspace ID (uses profile workspace if not provided)",
4550
- "name": "workspace",
4551
- "required": false,
4552
- "hasDynamicHelp": false,
4553
- "multiple": false,
4554
- "type": "option"
4555
4421
  }
4556
4422
  },
4557
4423
  "hasDynamicHelp": false,
4558
4424
  "hiddenAliases": [],
4559
- "id": "workflow_test:get",
4425
+ "id": "workspace:get",
4560
4426
  "pluginAlias": "@xano/cli",
4561
4427
  "pluginName": "@xano/cli",
4562
4428
  "pluginType": "core",
@@ -4566,19 +4432,24 @@
4566
4432
  "relativePath": [
4567
4433
  "dist",
4568
4434
  "commands",
4569
- "workflow_test",
4435
+ "workspace",
4570
4436
  "get",
4571
4437
  "index.js"
4572
4438
  ]
4573
4439
  },
4574
- "workflow_test:list": {
4440
+ "workflow_test:delete": {
4575
4441
  "aliases": [],
4576
- "args": {},
4577
- "description": "List all workflow tests in a workspace",
4442
+ "args": {
4443
+ "workflow_test_id": {
4444
+ "description": "ID of the workflow test to delete",
4445
+ "name": "workflow_test_id",
4446
+ "required": true
4447
+ }
4448
+ },
4449
+ "description": "Delete a workflow test",
4578
4450
  "examples": [
4579
- "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
4580
- "$ xano workflow-test list -w 5 --output json",
4581
- "$ xano workflow-test list --branch main"
4451
+ "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
4452
+ "$ xano workflow-test delete 1 --force"
4582
4453
  ],
4583
4454
  "flags": {
4584
4455
  "profile": {
@@ -4600,14 +4471,13 @@
4600
4471
  "allowNo": false,
4601
4472
  "type": "boolean"
4602
4473
  },
4603
- "branch": {
4604
- "char": "b",
4605
- "description": "Filter by branch name",
4606
- "name": "branch",
4474
+ "force": {
4475
+ "char": "f",
4476
+ "description": "Skip confirmation prompt",
4477
+ "name": "force",
4607
4478
  "required": false,
4608
- "hasDynamicHelp": false,
4609
- "multiple": false,
4610
- "type": "option"
4479
+ "allowNo": false,
4480
+ "type": "boolean"
4611
4481
  },
4612
4482
  "output": {
4613
4483
  "char": "o",
@@ -4635,7 +4505,7 @@
4635
4505
  },
4636
4506
  "hasDynamicHelp": false,
4637
4507
  "hiddenAliases": [],
4638
- "id": "workflow_test:list",
4508
+ "id": "workflow_test:delete",
4639
4509
  "pluginAlias": "@xano/cli",
4640
4510
  "pluginName": "@xano/cli",
4641
4511
  "pluginType": "core",
@@ -4646,23 +4516,19 @@
4646
4516
  "dist",
4647
4517
  "commands",
4648
4518
  "workflow_test",
4649
- "list",
4519
+ "delete",
4650
4520
  "index.js"
4651
4521
  ]
4652
- },
4653
- "workflow_test:run": {
4654
- "aliases": [],
4655
- "args": {
4656
- "workflow_test_id": {
4657
- "description": "ID of the workflow test to run",
4658
- "name": "workflow_test_id",
4659
- "required": true
4660
- }
4661
- },
4662
- "description": "Run a workflow test",
4522
+ },
4523
+ "workspace:list": {
4524
+ "aliases": [],
4525
+ "args": {},
4526
+ "description": "List all workspaces from the Xano Metadata API",
4663
4527
  "examples": [
4664
- "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
4665
- "$ xano workflow-test run 1 -o json"
4528
+ "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4529
+ "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4530
+ "$ 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",
4531
+ "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4666
4532
  ],
4667
4533
  "flags": {
4668
4534
  "profile": {
@@ -4697,20 +4563,11 @@
4697
4563
  "json"
4698
4564
  ],
4699
4565
  "type": "option"
4700
- },
4701
- "workspace": {
4702
- "char": "w",
4703
- "description": "Workspace ID (uses profile workspace if not provided)",
4704
- "name": "workspace",
4705
- "required": false,
4706
- "hasDynamicHelp": false,
4707
- "multiple": false,
4708
- "type": "option"
4709
4566
  }
4710
4567
  },
4711
4568
  "hasDynamicHelp": false,
4712
4569
  "hiddenAliases": [],
4713
- "id": "workflow_test:run",
4570
+ "id": "workspace:list",
4714
4571
  "pluginAlias": "@xano/cli",
4715
4572
  "pluginName": "@xano/cli",
4716
4573
  "pluginType": "core",
@@ -4720,18 +4577,27 @@
4720
4577
  "relativePath": [
4721
4578
  "dist",
4722
4579
  "commands",
4723
- "workflow_test",
4724
- "run",
4580
+ "workspace",
4581
+ "list",
4725
4582
  "index.js"
4726
4583
  ]
4727
4584
  },
4728
- "workflow_test:run_all": {
4585
+ "workspace:pull": {
4729
4586
  "aliases": [],
4730
- "args": {},
4731
- "description": "Run all workflow tests in a workspace",
4587
+ "args": {
4588
+ "directory": {
4589
+ "description": "Output directory for pulled documents",
4590
+ "name": "directory",
4591
+ "required": true
4592
+ }
4593
+ },
4594
+ "description": "Pull a workspace multidoc from the Xano Metadata API and split into individual files",
4732
4595
  "examples": [
4733
- "$ 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",
4734
- "$ xano workflow-test run-all --branch main -o json"
4596
+ "$ xano workspace pull ./my-workspace\nPulled 42 documents to ./my-workspace\n",
4597
+ "$ xano workspace pull ./output -w 40\nPulled 15 documents to ./output\n",
4598
+ "$ xano workspace pull ./backup --profile production --env --records\nPulled 58 documents to ./backup\n",
4599
+ "$ xano workspace pull ./my-workspace --draft\nPulled 42 documents to ./my-workspace\n",
4600
+ "$ xano workspace pull ./my-workspace -b dev\nPulled 42 documents to ./my-workspace\n"
4735
4601
  ],
4736
4602
  "flags": {
4737
4603
  "profile": {
@@ -4755,30 +4621,37 @@
4755
4621
  },
4756
4622
  "branch": {
4757
4623
  "char": "b",
4758
- "description": "Filter by branch name",
4624
+ "description": "Branch name (optional if set in profile, defaults to live)",
4759
4625
  "name": "branch",
4760
4626
  "required": false,
4761
4627
  "hasDynamicHelp": false,
4762
4628
  "multiple": false,
4763
4629
  "type": "option"
4764
4630
  },
4765
- "output": {
4766
- "char": "o",
4767
- "description": "Output format",
4768
- "name": "output",
4631
+ "env": {
4632
+ "description": "Include environment variables",
4633
+ "name": "env",
4769
4634
  "required": false,
4770
- "default": "summary",
4771
- "hasDynamicHelp": false,
4772
- "multiple": false,
4773
- "options": [
4774
- "summary",
4775
- "json"
4776
- ],
4777
- "type": "option"
4635
+ "allowNo": false,
4636
+ "type": "boolean"
4637
+ },
4638
+ "draft": {
4639
+ "description": "Include draft versions",
4640
+ "name": "draft",
4641
+ "required": false,
4642
+ "allowNo": false,
4643
+ "type": "boolean"
4644
+ },
4645
+ "records": {
4646
+ "description": "Include records",
4647
+ "name": "records",
4648
+ "required": false,
4649
+ "allowNo": false,
4650
+ "type": "boolean"
4778
4651
  },
4779
4652
  "workspace": {
4780
4653
  "char": "w",
4781
- "description": "Workspace ID (uses profile workspace if not provided)",
4654
+ "description": "Workspace ID (optional if set in profile)",
4782
4655
  "name": "workspace",
4783
4656
  "required": false,
4784
4657
  "hasDynamicHelp": false,
@@ -4788,7 +4661,7 @@
4788
4661
  },
4789
4662
  "hasDynamicHelp": false,
4790
4663
  "hiddenAliases": [],
4791
- "id": "workflow_test:run_all",
4664
+ "id": "workspace:pull",
4792
4665
  "pluginAlias": "@xano/cli",
4793
4666
  "pluginName": "@xano/cli",
4794
4667
  "pluginType": "core",
@@ -4798,8 +4671,8 @@
4798
4671
  "relativePath": [
4799
4672
  "dist",
4800
4673
  "commands",
4801
- "workflow_test",
4802
- "run_all",
4674
+ "workspace",
4675
+ "pull",
4803
4676
  "index.js"
4804
4677
  ]
4805
4678
  },
@@ -4850,20 +4723,26 @@
4850
4723
  "index.js"
4851
4724
  ]
4852
4725
  },
4853
- "static_host:build:create": {
4726
+ "static_host:build:get": {
4854
4727
  "aliases": [],
4855
4728
  "args": {
4729
+ "build_id": {
4730
+ "description": "Build ID",
4731
+ "name": "build_id",
4732
+ "required": true
4733
+ },
4856
4734
  "static_host": {
4857
4735
  "description": "Static Host name",
4858
4736
  "name": "static_host",
4859
4737
  "required": true
4860
4738
  }
4861
4739
  },
4862
- "description": "Create a new build for a static host",
4740
+ "description": "Get details of a specific build for a static host",
4863
4741
  "examples": [
4864
- "$ xano static_host:build:create default -f ./build.zip -n \"v1.0.0\"\nBuild created successfully!\nID: 123\nName: v1.0.0\nStatus: pending\n",
4865
- "$ xano static_host:build:create default -w 40 -f ./dist.zip -n \"production\" -d \"Production build\"\nBuild created successfully!\nID: 124\nName: production\nDescription: Production build\n",
4866
- "$ xano static_host:build:create myhost -f ./app.zip -n \"release-1.2\" -o json\n{\n \"id\": 125,\n \"name\": \"release-1.2\",\n \"status\": \"pending\"\n}\n"
4742
+ "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
4743
+ "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
4744
+ "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
4745
+ "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
4867
4746
  ],
4868
4747
  "flags": {
4869
4748
  "profile": {
@@ -4885,33 +4764,6 @@
4885
4764
  "allowNo": false,
4886
4765
  "type": "boolean"
4887
4766
  },
4888
- "description": {
4889
- "char": "d",
4890
- "description": "Build description",
4891
- "name": "description",
4892
- "required": false,
4893
- "hasDynamicHelp": false,
4894
- "multiple": false,
4895
- "type": "option"
4896
- },
4897
- "file": {
4898
- "char": "f",
4899
- "description": "Path to zip file to upload",
4900
- "name": "file",
4901
- "required": true,
4902
- "hasDynamicHelp": false,
4903
- "multiple": false,
4904
- "type": "option"
4905
- },
4906
- "name": {
4907
- "char": "n",
4908
- "description": "Build name",
4909
- "name": "name",
4910
- "required": true,
4911
- "hasDynamicHelp": false,
4912
- "multiple": false,
4913
- "type": "option"
4914
- },
4915
4767
  "output": {
4916
4768
  "char": "o",
4917
4769
  "description": "Output format",
@@ -4938,7 +4790,7 @@
4938
4790
  },
4939
4791
  "hasDynamicHelp": false,
4940
4792
  "hiddenAliases": [],
4941
- "id": "static_host:build:create",
4793
+ "id": "static_host:build:get",
4942
4794
  "pluginAlias": "@xano/cli",
4943
4795
  "pluginName": "@xano/cli",
4944
4796
  "pluginType": "core",
@@ -4950,7 +4802,7 @@
4950
4802
  "commands",
4951
4803
  "static_host",
4952
4804
  "build",
4953
- "create",
4805
+ "get",
4954
4806
  "index.js"
4955
4807
  ]
4956
4808
  },
@@ -5004,23 +4856,151 @@
5004
4856
  ],
5005
4857
  "type": "option"
5006
4858
  },
5007
- "page": {
5008
- "description": "Page number for pagination",
5009
- "name": "page",
4859
+ "page": {
4860
+ "description": "Page number for pagination",
4861
+ "name": "page",
4862
+ "required": false,
4863
+ "default": 1,
4864
+ "hasDynamicHelp": false,
4865
+ "multiple": false,
4866
+ "type": "option"
4867
+ },
4868
+ "per_page": {
4869
+ "description": "Number of results per page",
4870
+ "name": "per_page",
4871
+ "required": false,
4872
+ "default": 50,
4873
+ "hasDynamicHelp": false,
4874
+ "multiple": false,
4875
+ "type": "option"
4876
+ },
4877
+ "workspace": {
4878
+ "char": "w",
4879
+ "description": "Workspace ID (optional if set in profile)",
4880
+ "name": "workspace",
4881
+ "required": false,
4882
+ "hasDynamicHelp": false,
4883
+ "multiple": false,
4884
+ "type": "option"
4885
+ }
4886
+ },
4887
+ "hasDynamicHelp": false,
4888
+ "hiddenAliases": [],
4889
+ "id": "static_host:build:list",
4890
+ "pluginAlias": "@xano/cli",
4891
+ "pluginName": "@xano/cli",
4892
+ "pluginType": "core",
4893
+ "strict": true,
4894
+ "enableJsonFlag": false,
4895
+ "isESM": true,
4896
+ "relativePath": [
4897
+ "dist",
4898
+ "commands",
4899
+ "static_host",
4900
+ "build",
4901
+ "list",
4902
+ "index.js"
4903
+ ]
4904
+ },
4905
+ "workspace:push": {
4906
+ "aliases": [],
4907
+ "args": {
4908
+ "directory": {
4909
+ "description": "Directory containing documents to push (as produced by workspace pull)",
4910
+ "name": "directory",
4911
+ "required": true
4912
+ }
4913
+ },
4914
+ "description": "Push local documents to a workspace. Shows a preview of changes before pushing unless --yes is specified.",
4915
+ "examples": [
4916
+ "$ xano workspace push ./my-workspace\nShows preview of changes, requires confirmation\n",
4917
+ "$ xano workspace push ./my-workspace --force\nSkip preview and push immediately (for CI/CD)\n",
4918
+ "$ xano workspace push ./my-workspace --delete\nShows preview including deletions, requires confirmation\n",
4919
+ "$ xano workspace push ./output -w 40\nPushed 15 documents from ./output\n",
4920
+ "$ xano workspace push ./backup --profile production\nPushed 58 documents from ./backup\n",
4921
+ "$ xano workspace push ./my-workspace -b dev\nPushed 42 documents from ./my-workspace\n",
4922
+ "$ xano workspace push ./my-functions --partial\nPush some files without a workspace block (implies --no-delete)\n",
4923
+ "$ xano workspace push ./my-workspace --no-records\nPush schema only, skip importing table records\n",
4924
+ "$ xano workspace push ./my-workspace --no-env\nPush without overwriting environment variables\n",
4925
+ "$ xano workspace push ./my-workspace --truncate\nTruncate all table records before importing\n"
4926
+ ],
4927
+ "flags": {
4928
+ "profile": {
4929
+ "char": "p",
4930
+ "description": "Profile to use (uses default profile if not specified)",
4931
+ "env": "XANO_PROFILE",
4932
+ "name": "profile",
4933
+ "required": false,
4934
+ "hasDynamicHelp": false,
4935
+ "multiple": false,
4936
+ "type": "option"
4937
+ },
4938
+ "verbose": {
4939
+ "char": "v",
4940
+ "description": "Show detailed request/response information",
4941
+ "env": "XANO_VERBOSE",
4942
+ "name": "verbose",
4943
+ "required": false,
4944
+ "allowNo": false,
4945
+ "type": "boolean"
4946
+ },
4947
+ "branch": {
4948
+ "char": "b",
4949
+ "description": "Branch name (optional if set in profile, defaults to live)",
4950
+ "name": "branch",
4951
+ "required": false,
4952
+ "hasDynamicHelp": false,
4953
+ "multiple": false,
4954
+ "type": "option"
4955
+ },
4956
+ "delete": {
4957
+ "description": "Delete workspace objects not included in the push",
4958
+ "name": "delete",
4959
+ "required": false,
4960
+ "allowNo": false,
4961
+ "type": "boolean"
4962
+ },
4963
+ "env": {
4964
+ "description": "Include environment variables in import",
4965
+ "name": "env",
4966
+ "required": false,
4967
+ "allowNo": false,
4968
+ "type": "boolean"
4969
+ },
4970
+ "partial": {
4971
+ "description": "Partial push — workspace block is not required, existing objects are kept (implies --no-delete)",
4972
+ "name": "partial",
4973
+ "required": false,
4974
+ "allowNo": false,
4975
+ "type": "boolean"
4976
+ },
4977
+ "records": {
4978
+ "description": "Include records in import",
4979
+ "name": "records",
4980
+ "required": false,
4981
+ "allowNo": false,
4982
+ "type": "boolean"
4983
+ },
4984
+ "sync-guids": {
4985
+ "description": "Write server-assigned GUIDs back to local files (use --no-sync-guids to skip)",
4986
+ "name": "sync-guids",
5010
4987
  "required": false,
5011
- "default": 1,
5012
- "hasDynamicHelp": false,
5013
- "multiple": false,
5014
- "type": "option"
4988
+ "allowNo": true,
4989
+ "type": "boolean"
5015
4990
  },
5016
- "per_page": {
5017
- "description": "Number of results per page",
5018
- "name": "per_page",
4991
+ "transaction": {
4992
+ "description": "Wrap import in a database transaction (use --no-transaction for debugging purposes)",
4993
+ "name": "transaction",
5019
4994
  "required": false,
5020
- "default": 50,
5021
- "hasDynamicHelp": false,
5022
- "multiple": false,
5023
- "type": "option"
4995
+ "allowNo": true,
4996
+ "type": "boolean"
4997
+ },
4998
+ "truncate": {
4999
+ "description": "Truncate all table records before importing",
5000
+ "name": "truncate",
5001
+ "required": false,
5002
+ "allowNo": false,
5003
+ "type": "boolean"
5024
5004
  },
5025
5005
  "workspace": {
5026
5006
  "char": "w",
@@ -5030,11 +5010,18 @@
5030
5010
  "hasDynamicHelp": false,
5031
5011
  "multiple": false,
5032
5012
  "type": "option"
5013
+ },
5014
+ "force": {
5015
+ "description": "Skip preview and confirmation prompt (for CI/CD pipelines)",
5016
+ "name": "force",
5017
+ "required": false,
5018
+ "allowNo": false,
5019
+ "type": "boolean"
5033
5020
  }
5034
5021
  },
5035
5022
  "hasDynamicHelp": false,
5036
5023
  "hiddenAliases": [],
5037
- "id": "static_host:build:list",
5024
+ "id": "workspace:push",
5038
5025
  "pluginAlias": "@xano/cli",
5039
5026
  "pluginName": "@xano/cli",
5040
5027
  "pluginType": "core",
@@ -5044,32 +5031,25 @@
5044
5031
  "relativePath": [
5045
5032
  "dist",
5046
5033
  "commands",
5047
- "static_host",
5048
- "build",
5049
- "list",
5034
+ "workspace",
5035
+ "push",
5050
5036
  "index.js"
5051
5037
  ]
5052
5038
  },
5053
- "static_host:build:get": {
5039
+ "static_host:build:create": {
5054
5040
  "aliases": [],
5055
5041
  "args": {
5056
- "build_id": {
5057
- "description": "Build ID",
5058
- "name": "build_id",
5059
- "required": true
5060
- },
5061
5042
  "static_host": {
5062
5043
  "description": "Static Host name",
5063
5044
  "name": "static_host",
5064
5045
  "required": true
5065
5046
  }
5066
5047
  },
5067
- "description": "Get details of a specific build for a static host",
5048
+ "description": "Create a new build for a static host",
5068
5049
  "examples": [
5069
- "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
5070
- "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
5071
- "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
5072
- "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
5050
+ "$ xano static_host:build:create default -f ./build.zip -n \"v1.0.0\"\nBuild created successfully!\nID: 123\nName: v1.0.0\nStatus: pending\n",
5051
+ "$ xano static_host:build:create default -w 40 -f ./dist.zip -n \"production\" -d \"Production build\"\nBuild created successfully!\nID: 124\nName: production\nDescription: Production build\n",
5052
+ "$ xano static_host:build:create myhost -f ./app.zip -n \"release-1.2\" -o json\n{\n \"id\": 125,\n \"name\": \"release-1.2\",\n \"status\": \"pending\"\n}\n"
5073
5053
  ],
5074
5054
  "flags": {
5075
5055
  "profile": {
@@ -5091,6 +5071,33 @@
5091
5071
  "allowNo": false,
5092
5072
  "type": "boolean"
5093
5073
  },
5074
+ "description": {
5075
+ "char": "d",
5076
+ "description": "Build description",
5077
+ "name": "description",
5078
+ "required": false,
5079
+ "hasDynamicHelp": false,
5080
+ "multiple": false,
5081
+ "type": "option"
5082
+ },
5083
+ "file": {
5084
+ "char": "f",
5085
+ "description": "Path to zip file to upload",
5086
+ "name": "file",
5087
+ "required": true,
5088
+ "hasDynamicHelp": false,
5089
+ "multiple": false,
5090
+ "type": "option"
5091
+ },
5092
+ "name": {
5093
+ "char": "n",
5094
+ "description": "Build name",
5095
+ "name": "name",
5096
+ "required": true,
5097
+ "hasDynamicHelp": false,
5098
+ "multiple": false,
5099
+ "type": "option"
5100
+ },
5094
5101
  "output": {
5095
5102
  "char": "o",
5096
5103
  "description": "Output format",
@@ -5117,7 +5124,7 @@
5117
5124
  },
5118
5125
  "hasDynamicHelp": false,
5119
5126
  "hiddenAliases": [],
5120
- "id": "static_host:build:get",
5127
+ "id": "static_host:build:create",
5121
5128
  "pluginAlias": "@xano/cli",
5122
5129
  "pluginName": "@xano/cli",
5123
5130
  "pluginType": "core",
@@ -5129,23 +5136,24 @@
5129
5136
  "commands",
5130
5137
  "static_host",
5131
5138
  "build",
5132
- "get",
5139
+ "create",
5133
5140
  "index.js"
5134
5141
  ]
5135
5142
  },
5136
- "tenant:backup:create": {
5143
+ "tenant:backup:delete": {
5137
5144
  "aliases": [],
5138
5145
  "args": {
5139
5146
  "tenant_name": {
5140
- "description": "Tenant name to back up",
5147
+ "description": "Tenant name that owns the backup",
5141
5148
  "name": "tenant_name",
5142
5149
  "required": true
5143
5150
  }
5144
5151
  },
5145
- "description": "Create a backup for a tenant",
5152
+ "description": "Delete a tenant backup permanently. This action cannot be undone.",
5146
5153
  "examples": [
5147
- "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
5148
- "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
5154
+ "$ 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",
5155
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5156
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
5149
5157
  ],
5150
5158
  "flags": {
5151
5159
  "profile": {
@@ -5167,16 +5175,22 @@
5167
5175
  "allowNo": false,
5168
5176
  "type": "boolean"
5169
5177
  },
5170
- "description": {
5171
- "char": "d",
5172
- "description": "Backup description",
5173
- "name": "description",
5174
- "required": false,
5175
- "default": "",
5178
+ "backup_id": {
5179
+ "description": "Backup ID to delete",
5180
+ "name": "backup_id",
5181
+ "required": true,
5176
5182
  "hasDynamicHelp": false,
5177
5183
  "multiple": false,
5178
5184
  "type": "option"
5179
5185
  },
5186
+ "force": {
5187
+ "char": "f",
5188
+ "description": "Skip confirmation prompt",
5189
+ "name": "force",
5190
+ "required": false,
5191
+ "allowNo": false,
5192
+ "type": "boolean"
5193
+ },
5180
5194
  "output": {
5181
5195
  "char": "o",
5182
5196
  "description": "Output format",
@@ -5203,7 +5217,7 @@
5203
5217
  },
5204
5218
  "hasDynamicHelp": false,
5205
5219
  "hiddenAliases": [],
5206
- "id": "tenant:backup:create",
5220
+ "id": "tenant:backup:delete",
5207
5221
  "pluginAlias": "@xano/cli",
5208
5222
  "pluginName": "@xano/cli",
5209
5223
  "pluginType": "core",
@@ -5215,24 +5229,23 @@
5215
5229
  "commands",
5216
5230
  "tenant",
5217
5231
  "backup",
5218
- "create",
5232
+ "delete",
5219
5233
  "index.js"
5220
5234
  ]
5221
5235
  },
5222
- "tenant:backup:delete": {
5236
+ "tenant:backup:create": {
5223
5237
  "aliases": [],
5224
5238
  "args": {
5225
5239
  "tenant_name": {
5226
- "description": "Tenant name that owns the backup",
5240
+ "description": "Tenant name to back up",
5227
5241
  "name": "tenant_name",
5228
5242
  "required": true
5229
5243
  }
5230
5244
  },
5231
- "description": "Delete a tenant backup permanently. This action cannot be undone.",
5245
+ "description": "Create a backup for a tenant",
5232
5246
  "examples": [
5233
- "$ 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",
5234
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5235
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
5247
+ "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
5248
+ "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
5236
5249
  ],
5237
5250
  "flags": {
5238
5251
  "profile": {
@@ -5254,22 +5267,16 @@
5254
5267
  "allowNo": false,
5255
5268
  "type": "boolean"
5256
5269
  },
5257
- "backup_id": {
5258
- "description": "Backup ID to delete",
5259
- "name": "backup_id",
5260
- "required": true,
5270
+ "description": {
5271
+ "char": "d",
5272
+ "description": "Backup description",
5273
+ "name": "description",
5274
+ "required": false,
5275
+ "default": "",
5261
5276
  "hasDynamicHelp": false,
5262
5277
  "multiple": false,
5263
5278
  "type": "option"
5264
5279
  },
5265
- "force": {
5266
- "char": "f",
5267
- "description": "Skip confirmation prompt",
5268
- "name": "force",
5269
- "required": false,
5270
- "allowNo": false,
5271
- "type": "boolean"
5272
- },
5273
5280
  "output": {
5274
5281
  "char": "o",
5275
5282
  "description": "Output format",
@@ -5296,7 +5303,7 @@
5296
5303
  },
5297
5304
  "hasDynamicHelp": false,
5298
5305
  "hiddenAliases": [],
5299
- "id": "tenant:backup:delete",
5306
+ "id": "tenant:backup:create",
5300
5307
  "pluginAlias": "@xano/cli",
5301
5308
  "pluginName": "@xano/cli",
5302
5309
  "pluginType": "core",
@@ -5308,7 +5315,7 @@
5308
5315
  "commands",
5309
5316
  "tenant",
5310
5317
  "backup",
5311
- "delete",
5318
+ "create",
5312
5319
  "index.js"
5313
5320
  ]
5314
5321
  },
@@ -5682,108 +5689,13 @@
5682
5689
  "options": [
5683
5690
  "standard",
5684
5691
  "run"
5685
- ],
5686
- "type": "option"
5687
- }
5688
- },
5689
- "hasDynamicHelp": false,
5690
- "hiddenAliases": [],
5691
- "id": "tenant:cluster:create",
5692
- "pluginAlias": "@xano/cli",
5693
- "pluginName": "@xano/cli",
5694
- "pluginType": "core",
5695
- "strict": true,
5696
- "enableJsonFlag": false,
5697
- "isESM": true,
5698
- "relativePath": [
5699
- "dist",
5700
- "commands",
5701
- "tenant",
5702
- "cluster",
5703
- "create",
5704
- "index.js"
5705
- ]
5706
- },
5707
- "tenant:backup:import": {
5708
- "aliases": [],
5709
- "args": {
5710
- "tenant_name": {
5711
- "description": "Tenant name to import backup into",
5712
- "name": "tenant_name",
5713
- "required": true
5714
- }
5715
- },
5716
- "description": "Import a backup file into a tenant",
5717
- "examples": [
5718
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5719
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5720
- ],
5721
- "flags": {
5722
- "profile": {
5723
- "char": "p",
5724
- "description": "Profile to use (uses default profile if not specified)",
5725
- "env": "XANO_PROFILE",
5726
- "name": "profile",
5727
- "required": false,
5728
- "hasDynamicHelp": false,
5729
- "multiple": false,
5730
- "type": "option"
5731
- },
5732
- "verbose": {
5733
- "char": "v",
5734
- "description": "Show detailed request/response information",
5735
- "env": "XANO_VERBOSE",
5736
- "name": "verbose",
5737
- "required": false,
5738
- "allowNo": false,
5739
- "type": "boolean"
5740
- },
5741
- "description": {
5742
- "char": "d",
5743
- "description": "Backup description",
5744
- "name": "description",
5745
- "required": false,
5746
- "default": "",
5747
- "hasDynamicHelp": false,
5748
- "multiple": false,
5749
- "type": "option"
5750
- },
5751
- "file": {
5752
- "char": "f",
5753
- "description": "Path to the backup file (.tar.gz)",
5754
- "name": "file",
5755
- "required": true,
5756
- "hasDynamicHelp": false,
5757
- "multiple": false,
5758
- "type": "option"
5759
- },
5760
- "output": {
5761
- "char": "o",
5762
- "description": "Output format",
5763
- "name": "output",
5764
- "required": false,
5765
- "default": "summary",
5766
- "hasDynamicHelp": false,
5767
- "multiple": false,
5768
- "options": [
5769
- "summary",
5770
- "json"
5771
- ],
5772
- "type": "option"
5773
- },
5774
- "workspace": {
5775
- "char": "w",
5776
- "description": "Workspace ID (uses profile workspace if not provided)",
5777
- "name": "workspace",
5778
- "required": false,
5779
- "hasDynamicHelp": false,
5780
- "multiple": false,
5692
+ ],
5781
5693
  "type": "option"
5782
5694
  }
5783
5695
  },
5784
5696
  "hasDynamicHelp": false,
5785
5697
  "hiddenAliases": [],
5786
- "id": "tenant:backup:import",
5698
+ "id": "tenant:cluster:create",
5787
5699
  "pluginAlias": "@xano/cli",
5788
5700
  "pluginName": "@xano/cli",
5789
5701
  "pluginType": "core",
@@ -5794,8 +5706,8 @@
5794
5706
  "dist",
5795
5707
  "commands",
5796
5708
  "tenant",
5797
- "backup",
5798
- "import",
5709
+ "cluster",
5710
+ "create",
5799
5711
  "index.js"
5800
5712
  ]
5801
5713
  },
@@ -5875,19 +5787,19 @@
5875
5787
  "index.js"
5876
5788
  ]
5877
5789
  },
5878
- "tenant:cluster:edit": {
5790
+ "tenant:backup:import": {
5879
5791
  "aliases": [],
5880
5792
  "args": {
5881
- "cluster_id": {
5882
- "description": "Cluster ID to edit",
5883
- "name": "cluster_id",
5793
+ "tenant_name": {
5794
+ "description": "Tenant name to import backup into",
5795
+ "name": "tenant_name",
5884
5796
  "required": true
5885
5797
  }
5886
5798
  },
5887
- "description": "Update an existing tenant cluster",
5799
+ "description": "Import a backup file into a tenant",
5888
5800
  "examples": [
5889
- "$ 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",
5890
- "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5801
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5802
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5891
5803
  ],
5892
5804
  "flags": {
5893
5805
  "profile": {
@@ -5911,25 +5823,18 @@
5911
5823
  },
5912
5824
  "description": {
5913
5825
  "char": "d",
5914
- "description": "Cluster description",
5826
+ "description": "Backup description",
5915
5827
  "name": "description",
5916
- "required": true,
5917
- "hasDynamicHelp": false,
5918
- "multiple": false,
5919
- "type": "option"
5920
- },
5921
- "domain": {
5922
- "description": "Custom domain for the cluster",
5923
- "name": "domain",
5924
- "required": true,
5828
+ "required": false,
5829
+ "default": "",
5925
5830
  "hasDynamicHelp": false,
5926
5831
  "multiple": false,
5927
5832
  "type": "option"
5928
5833
  },
5929
- "name": {
5930
- "char": "n",
5931
- "description": "Cluster name",
5932
- "name": "name",
5834
+ "file": {
5835
+ "char": "f",
5836
+ "description": "Path to the backup file (.tar.gz)",
5837
+ "name": "file",
5933
5838
  "required": true,
5934
5839
  "hasDynamicHelp": false,
5935
5840
  "multiple": false,
@@ -5949,22 +5854,19 @@
5949
5854
  ],
5950
5855
  "type": "option"
5951
5856
  },
5952
- "type": {
5953
- "description": "Cluster type",
5954
- "name": "type",
5955
- "required": true,
5857
+ "workspace": {
5858
+ "char": "w",
5859
+ "description": "Workspace ID (uses profile workspace if not provided)",
5860
+ "name": "workspace",
5861
+ "required": false,
5956
5862
  "hasDynamicHelp": false,
5957
5863
  "multiple": false,
5958
- "options": [
5959
- "standard",
5960
- "run"
5961
- ],
5962
5864
  "type": "option"
5963
5865
  }
5964
5866
  },
5965
5867
  "hasDynamicHelp": false,
5966
5868
  "hiddenAliases": [],
5967
- "id": "tenant:cluster:edit",
5869
+ "id": "tenant:backup:import",
5968
5870
  "pluginAlias": "@xano/cli",
5969
5871
  "pluginName": "@xano/cli",
5970
5872
  "pluginType": "core",
@@ -5975,24 +5877,18 @@
5975
5877
  "dist",
5976
5878
  "commands",
5977
5879
  "tenant",
5978
- "cluster",
5979
- "edit",
5880
+ "backup",
5881
+ "import",
5980
5882
  "index.js"
5981
5883
  ]
5982
5884
  },
5983
- "tenant:cluster:get": {
5885
+ "tenant:cluster:list": {
5984
5886
  "aliases": [],
5985
- "args": {
5986
- "cluster_id": {
5987
- "description": "Cluster ID to retrieve",
5988
- "name": "cluster_id",
5989
- "required": true
5990
- }
5991
- },
5992
- "description": "Get details of a specific tenant cluster",
5887
+ "args": {},
5888
+ "description": "List all tenant clusters",
5993
5889
  "examples": [
5994
- "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5995
- "$ xano tenant cluster get 1 -o json"
5890
+ "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
5891
+ "$ xano tenant cluster list --output json"
5996
5892
  ],
5997
5893
  "flags": {
5998
5894
  "profile": {
@@ -6031,7 +5927,7 @@
6031
5927
  },
6032
5928
  "hasDynamicHelp": false,
6033
5929
  "hiddenAliases": [],
6034
- "id": "tenant:cluster:get",
5930
+ "id": "tenant:cluster:list",
6035
5931
  "pluginAlias": "@xano/cli",
6036
5932
  "pluginName": "@xano/cli",
6037
5933
  "pluginType": "core",
@@ -6043,17 +5939,23 @@
6043
5939
  "commands",
6044
5940
  "tenant",
6045
5941
  "cluster",
6046
- "get",
5942
+ "list",
6047
5943
  "index.js"
6048
5944
  ]
6049
5945
  },
6050
- "tenant:cluster:list": {
5946
+ "tenant:cluster:edit": {
6051
5947
  "aliases": [],
6052
- "args": {},
6053
- "description": "List all tenant clusters",
5948
+ "args": {
5949
+ "cluster_id": {
5950
+ "description": "Cluster ID to edit",
5951
+ "name": "cluster_id",
5952
+ "required": true
5953
+ }
5954
+ },
5955
+ "description": "Update an existing tenant cluster",
6054
5956
  "examples": [
6055
- "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
6056
- "$ xano tenant cluster list --output json"
5957
+ "$ 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",
5958
+ "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
6057
5959
  ],
6058
5960
  "flags": {
6059
5961
  "profile": {
@@ -6075,6 +5977,32 @@
6075
5977
  "allowNo": false,
6076
5978
  "type": "boolean"
6077
5979
  },
5980
+ "description": {
5981
+ "char": "d",
5982
+ "description": "Cluster description",
5983
+ "name": "description",
5984
+ "required": true,
5985
+ "hasDynamicHelp": false,
5986
+ "multiple": false,
5987
+ "type": "option"
5988
+ },
5989
+ "domain": {
5990
+ "description": "Custom domain for the cluster",
5991
+ "name": "domain",
5992
+ "required": true,
5993
+ "hasDynamicHelp": false,
5994
+ "multiple": false,
5995
+ "type": "option"
5996
+ },
5997
+ "name": {
5998
+ "char": "n",
5999
+ "description": "Cluster name",
6000
+ "name": "name",
6001
+ "required": true,
6002
+ "hasDynamicHelp": false,
6003
+ "multiple": false,
6004
+ "type": "option"
6005
+ },
6078
6006
  "output": {
6079
6007
  "char": "o",
6080
6008
  "description": "Output format",
@@ -6088,11 +6016,23 @@
6088
6016
  "json"
6089
6017
  ],
6090
6018
  "type": "option"
6019
+ },
6020
+ "type": {
6021
+ "description": "Cluster type",
6022
+ "name": "type",
6023
+ "required": true,
6024
+ "hasDynamicHelp": false,
6025
+ "multiple": false,
6026
+ "options": [
6027
+ "standard",
6028
+ "run"
6029
+ ],
6030
+ "type": "option"
6091
6031
  }
6092
6032
  },
6093
6033
  "hasDynamicHelp": false,
6094
6034
  "hiddenAliases": [],
6095
- "id": "tenant:cluster:list",
6035
+ "id": "tenant:cluster:edit",
6096
6036
  "pluginAlias": "@xano/cli",
6097
6037
  "pluginName": "@xano/cli",
6098
6038
  "pluginType": "core",
@@ -6104,11 +6044,11 @@
6104
6044
  "commands",
6105
6045
  "tenant",
6106
6046
  "cluster",
6107
- "list",
6047
+ "edit",
6108
6048
  "index.js"
6109
6049
  ]
6110
6050
  },
6111
- "tenant:env:get": {
6051
+ "tenant:env:delete": {
6112
6052
  "aliases": [],
6113
6053
  "args": {
6114
6054
  "tenant_name": {
@@ -6117,10 +6057,11 @@
6117
6057
  "required": true
6118
6058
  }
6119
6059
  },
6120
- "description": "Get a single environment variable for a tenant",
6060
+ "description": "Delete an environment variable from a tenant",
6121
6061
  "examples": [
6122
- "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
6123
- "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6062
+ "$ xano tenant env delete my-tenant --name DATABASE_URL\nAre you sure you want to delete environment variable 'DATABASE_URL' from tenant my-tenant? (y/N) y\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
6063
+ "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
6064
+ "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
6124
6065
  ],
6125
6066
  "flags": {
6126
6067
  "profile": {
@@ -6142,6 +6083,14 @@
6142
6083
  "allowNo": false,
6143
6084
  "type": "boolean"
6144
6085
  },
6086
+ "force": {
6087
+ "char": "f",
6088
+ "description": "Skip confirmation prompt",
6089
+ "name": "force",
6090
+ "required": false,
6091
+ "allowNo": false,
6092
+ "type": "boolean"
6093
+ },
6145
6094
  "name": {
6146
6095
  "char": "n",
6147
6096
  "description": "Environment variable name",
@@ -6177,7 +6126,7 @@
6177
6126
  },
6178
6127
  "hasDynamicHelp": false,
6179
6128
  "hiddenAliases": [],
6180
- "id": "tenant:env:get",
6129
+ "id": "tenant:env:delete",
6181
6130
  "pluginAlias": "@xano/cli",
6182
6131
  "pluginName": "@xano/cli",
6183
6132
  "pluginType": "core",
@@ -6189,11 +6138,11 @@
6189
6138
  "commands",
6190
6139
  "tenant",
6191
6140
  "env",
6192
- "get",
6141
+ "delete",
6193
6142
  "index.js"
6194
6143
  ]
6195
6144
  },
6196
- "tenant:env:list": {
6145
+ "tenant:env:get": {
6197
6146
  "aliases": [],
6198
6147
  "args": {
6199
6148
  "tenant_name": {
@@ -6202,10 +6151,10 @@
6202
6151
  "required": true
6203
6152
  }
6204
6153
  },
6205
- "description": "List environment variable keys for a tenant",
6154
+ "description": "Get a single environment variable for a tenant",
6206
6155
  "examples": [
6207
- "$ xano tenant env list my-tenant\nEnvironment variables for tenant my-tenant:\n - DATABASE_URL\n - API_KEY\n - SECRET_TOKEN\n",
6208
- "$ xano tenant env list my-tenant -w 5 -o json"
6156
+ "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
6157
+ "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6209
6158
  ],
6210
6159
  "flags": {
6211
6160
  "profile": {
@@ -6227,6 +6176,15 @@
6227
6176
  "allowNo": false,
6228
6177
  "type": "boolean"
6229
6178
  },
6179
+ "name": {
6180
+ "char": "n",
6181
+ "description": "Environment variable name",
6182
+ "name": "name",
6183
+ "required": true,
6184
+ "hasDynamicHelp": false,
6185
+ "multiple": false,
6186
+ "type": "option"
6187
+ },
6230
6188
  "output": {
6231
6189
  "char": "o",
6232
6190
  "description": "Output format",
@@ -6253,7 +6211,7 @@
6253
6211
  },
6254
6212
  "hasDynamicHelp": false,
6255
6213
  "hiddenAliases": [],
6256
- "id": "tenant:env:list",
6214
+ "id": "tenant:env:get",
6257
6215
  "pluginAlias": "@xano/cli",
6258
6216
  "pluginName": "@xano/cli",
6259
6217
  "pluginType": "core",
@@ -6265,11 +6223,11 @@
6265
6223
  "commands",
6266
6224
  "tenant",
6267
6225
  "env",
6268
- "list",
6226
+ "get",
6269
6227
  "index.js"
6270
6228
  ]
6271
6229
  },
6272
- "tenant:env:get_all": {
6230
+ "tenant:env:set": {
6273
6231
  "aliases": [],
6274
6232
  "args": {
6275
6233
  "tenant_name": {
@@ -6278,12 +6236,10 @@
6278
6236
  "required": true
6279
6237
  }
6280
6238
  },
6281
- "description": "Get all environment variables for a tenant and save to a YAML file",
6239
+ "description": "Set (create or update) an environment variable for a tenant",
6282
6240
  "examples": [
6283
- "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
6284
- "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
6285
- "$ xano tenant env get_all my-tenant --view",
6286
- "$ xano tenant env get_all my-tenant -o json"
6241
+ "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb\nEnvironment variable 'DATABASE_URL' set for tenant my-tenant\n",
6242
+ "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb -w 5 -o json"
6287
6243
  ],
6288
6244
  "flags": {
6289
6245
  "profile": {
@@ -6305,11 +6261,11 @@
6305
6261
  "allowNo": false,
6306
6262
  "type": "boolean"
6307
6263
  },
6308
- "file": {
6309
- "char": "f",
6310
- "description": "Output file path (default: env_<tenant_name>.yaml)",
6311
- "name": "file",
6312
- "required": false,
6264
+ "name": {
6265
+ "char": "n",
6266
+ "description": "Environment variable name",
6267
+ "name": "name",
6268
+ "required": true,
6313
6269
  "hasDynamicHelp": false,
6314
6270
  "multiple": false,
6315
6271
  "type": "option"
@@ -6328,12 +6284,13 @@
6328
6284
  ],
6329
6285
  "type": "option"
6330
6286
  },
6331
- "view": {
6332
- "description": "Print environment variables to stdout instead of saving to file",
6333
- "name": "view",
6334
- "required": false,
6335
- "allowNo": false,
6336
- "type": "boolean"
6287
+ "value": {
6288
+ "description": "Environment variable value",
6289
+ "name": "value",
6290
+ "required": true,
6291
+ "hasDynamicHelp": false,
6292
+ "multiple": false,
6293
+ "type": "option"
6337
6294
  },
6338
6295
  "workspace": {
6339
6296
  "char": "w",
@@ -6347,7 +6304,7 @@
6347
6304
  },
6348
6305
  "hasDynamicHelp": false,
6349
6306
  "hiddenAliases": [],
6350
- "id": "tenant:env:get_all",
6307
+ "id": "tenant:env:set",
6351
6308
  "pluginAlias": "@xano/cli",
6352
6309
  "pluginName": "@xano/cli",
6353
6310
  "pluginType": "core",
@@ -6359,11 +6316,11 @@
6359
6316
  "commands",
6360
6317
  "tenant",
6361
6318
  "env",
6362
- "get_all",
6319
+ "set",
6363
6320
  "index.js"
6364
6321
  ]
6365
6322
  },
6366
- "tenant:env:set": {
6323
+ "tenant:env:list": {
6367
6324
  "aliases": [],
6368
6325
  "args": {
6369
6326
  "tenant_name": {
@@ -6372,10 +6329,10 @@
6372
6329
  "required": true
6373
6330
  }
6374
6331
  },
6375
- "description": "Set (create or update) an environment variable for a tenant",
6332
+ "description": "List environment variable keys for a tenant",
6376
6333
  "examples": [
6377
- "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb\nEnvironment variable 'DATABASE_URL' set for tenant my-tenant\n",
6378
- "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb -w 5 -o json"
6334
+ "$ xano tenant env list my-tenant\nEnvironment variables for tenant my-tenant:\n - DATABASE_URL\n - API_KEY\n - SECRET_TOKEN\n",
6335
+ "$ xano tenant env list my-tenant -w 5 -o json"
6379
6336
  ],
6380
6337
  "flags": {
6381
6338
  "profile": {
@@ -6397,15 +6354,6 @@
6397
6354
  "allowNo": false,
6398
6355
  "type": "boolean"
6399
6356
  },
6400
- "name": {
6401
- "char": "n",
6402
- "description": "Environment variable name",
6403
- "name": "name",
6404
- "required": true,
6405
- "hasDynamicHelp": false,
6406
- "multiple": false,
6407
- "type": "option"
6408
- },
6409
6357
  "output": {
6410
6358
  "char": "o",
6411
6359
  "description": "Output format",
@@ -6420,14 +6368,6 @@
6420
6368
  ],
6421
6369
  "type": "option"
6422
6370
  },
6423
- "value": {
6424
- "description": "Environment variable value",
6425
- "name": "value",
6426
- "required": true,
6427
- "hasDynamicHelp": false,
6428
- "multiple": false,
6429
- "type": "option"
6430
- },
6431
6371
  "workspace": {
6432
6372
  "char": "w",
6433
6373
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6440,7 +6380,7 @@
6440
6380
  },
6441
6381
  "hasDynamicHelp": false,
6442
6382
  "hiddenAliases": [],
6443
- "id": "tenant:env:set",
6383
+ "id": "tenant:env:list",
6444
6384
  "pluginAlias": "@xano/cli",
6445
6385
  "pluginName": "@xano/cli",
6446
6386
  "pluginType": "core",
@@ -6452,24 +6392,23 @@
6452
6392
  "commands",
6453
6393
  "tenant",
6454
6394
  "env",
6455
- "set",
6395
+ "list",
6456
6396
  "index.js"
6457
6397
  ]
6458
6398
  },
6459
- "tenant:env:set_all": {
6399
+ "tenant:cluster:get": {
6460
6400
  "aliases": [],
6461
6401
  "args": {
6462
- "tenant_name": {
6463
- "description": "Tenant name",
6464
- "name": "tenant_name",
6402
+ "cluster_id": {
6403
+ "description": "Cluster ID to retrieve",
6404
+ "name": "cluster_id",
6465
6405
  "required": true
6466
6406
  }
6467
6407
  },
6468
- "description": "Set all environment variables for a tenant from a YAML file (replaces all existing)",
6408
+ "description": "Get details of a specific tenant cluster",
6469
6409
  "examples": [
6470
- "$ xano tenant env set_all my-tenant\nReads from env_my-tenant.yaml\n",
6471
- "$ xano tenant env set_all my-tenant --file ./my-env.yaml",
6472
- "$ xano tenant env set_all my-tenant -o json"
6410
+ "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
6411
+ "$ xano tenant cluster get 1 -o json"
6473
6412
  ],
6474
6413
  "flags": {
6475
6414
  "profile": {
@@ -6491,22 +6430,6 @@
6491
6430
  "allowNo": false,
6492
6431
  "type": "boolean"
6493
6432
  },
6494
- "clean": {
6495
- "description": "Remove the source file after successful upload",
6496
- "name": "clean",
6497
- "required": false,
6498
- "allowNo": false,
6499
- "type": "boolean"
6500
- },
6501
- "file": {
6502
- "char": "f",
6503
- "description": "Path to env file (default: env_<tenant_name>.yaml)",
6504
- "name": "file",
6505
- "required": false,
6506
- "hasDynamicHelp": false,
6507
- "multiple": false,
6508
- "type": "option"
6509
- },
6510
6433
  "output": {
6511
6434
  "char": "o",
6512
6435
  "description": "Output format",
@@ -6520,20 +6443,11 @@
6520
6443
  "json"
6521
6444
  ],
6522
6445
  "type": "option"
6523
- },
6524
- "workspace": {
6525
- "char": "w",
6526
- "description": "Workspace ID (uses profile workspace if not provided)",
6527
- "name": "workspace",
6528
- "required": false,
6529
- "hasDynamicHelp": false,
6530
- "multiple": false,
6531
- "type": "option"
6532
6446
  }
6533
6447
  },
6534
6448
  "hasDynamicHelp": false,
6535
6449
  "hiddenAliases": [],
6536
- "id": "tenant:env:set_all",
6450
+ "id": "tenant:cluster:get",
6537
6451
  "pluginAlias": "@xano/cli",
6538
6452
  "pluginName": "@xano/cli",
6539
6453
  "pluginType": "core",
@@ -6544,12 +6458,12 @@
6544
6458
  "dist",
6545
6459
  "commands",
6546
6460
  "tenant",
6547
- "env",
6548
- "set_all",
6461
+ "cluster",
6462
+ "get",
6549
6463
  "index.js"
6550
6464
  ]
6551
6465
  },
6552
- "tenant:license:get": {
6466
+ "tenant:env:get_all": {
6553
6467
  "aliases": [],
6554
6468
  "args": {
6555
6469
  "tenant_name": {
@@ -6558,12 +6472,12 @@
6558
6472
  "required": true
6559
6473
  }
6560
6474
  },
6561
- "description": "Get the license for a tenant",
6475
+ "description": "Get all environment variables for a tenant and save to a YAML file",
6562
6476
  "examples": [
6563
- "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6564
- "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6565
- "$ xano tenant license get my-tenant --view",
6566
- "$ xano tenant license get my-tenant -o json"
6477
+ "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
6478
+ "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
6479
+ "$ xano tenant env get_all my-tenant --view",
6480
+ "$ xano tenant env get_all my-tenant -o json"
6567
6481
  ],
6568
6482
  "flags": {
6569
6483
  "profile": {
@@ -6587,7 +6501,7 @@
6587
6501
  },
6588
6502
  "file": {
6589
6503
  "char": "f",
6590
- "description": "Output file path (default: license_<tenant_name>.yaml)",
6504
+ "description": "Output file path (default: env_<tenant_name>.yaml)",
6591
6505
  "name": "file",
6592
6506
  "required": false,
6593
6507
  "hasDynamicHelp": false,
@@ -6609,7 +6523,7 @@
6609
6523
  "type": "option"
6610
6524
  },
6611
6525
  "view": {
6612
- "description": "Print license to stdout instead of saving to file",
6526
+ "description": "Print environment variables to stdout instead of saving to file",
6613
6527
  "name": "view",
6614
6528
  "required": false,
6615
6529
  "allowNo": false,
@@ -6627,7 +6541,7 @@
6627
6541
  },
6628
6542
  "hasDynamicHelp": false,
6629
6543
  "hiddenAliases": [],
6630
- "id": "tenant:license:get",
6544
+ "id": "tenant:env:get_all",
6631
6545
  "pluginAlias": "@xano/cli",
6632
6546
  "pluginName": "@xano/cli",
6633
6547
  "pluginType": "core",
@@ -6638,8 +6552,8 @@
6638
6552
  "dist",
6639
6553
  "commands",
6640
6554
  "tenant",
6641
- "license",
6642
- "get",
6555
+ "env",
6556
+ "get_all",
6643
6557
  "index.js"
6644
6558
  ]
6645
6559
  },
@@ -6755,7 +6669,7 @@
6755
6669
  "index.js"
6756
6670
  ]
6757
6671
  },
6758
- "tenant:env:delete": {
6672
+ "tenant:env:set_all": {
6759
6673
  "aliases": [],
6760
6674
  "args": {
6761
6675
  "tenant_name": {
@@ -6764,11 +6678,11 @@
6764
6678
  "required": true
6765
6679
  }
6766
6680
  },
6767
- "description": "Delete an environment variable from a tenant",
6681
+ "description": "Set all environment variables for a tenant from a YAML file (replaces all existing)",
6768
6682
  "examples": [
6769
- "$ xano tenant env delete my-tenant --name DATABASE_URL\nAre you sure you want to delete environment variable 'DATABASE_URL' from tenant my-tenant? (y/N) y\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
6770
- "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
6771
- "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
6683
+ "$ xano tenant env set_all my-tenant\nReads from env_my-tenant.yaml\n",
6684
+ "$ xano tenant env set_all my-tenant --file ./my-env.yaml",
6685
+ "$ xano tenant env set_all my-tenant -o json"
6772
6686
  ],
6773
6687
  "flags": {
6774
6688
  "profile": {
@@ -6790,19 +6704,18 @@
6790
6704
  "allowNo": false,
6791
6705
  "type": "boolean"
6792
6706
  },
6793
- "force": {
6794
- "char": "f",
6795
- "description": "Skip confirmation prompt",
6796
- "name": "force",
6707
+ "clean": {
6708
+ "description": "Remove the source file after successful upload",
6709
+ "name": "clean",
6797
6710
  "required": false,
6798
6711
  "allowNo": false,
6799
6712
  "type": "boolean"
6800
6713
  },
6801
- "name": {
6802
- "char": "n",
6803
- "description": "Environment variable name",
6804
- "name": "name",
6805
- "required": true,
6714
+ "file": {
6715
+ "char": "f",
6716
+ "description": "Path to env file (default: env_<tenant_name>.yaml)",
6717
+ "name": "file",
6718
+ "required": false,
6806
6719
  "hasDynamicHelp": false,
6807
6720
  "multiple": false,
6808
6721
  "type": "option"
@@ -6833,7 +6746,7 @@
6833
6746
  },
6834
6747
  "hasDynamicHelp": false,
6835
6748
  "hiddenAliases": [],
6836
- "id": "tenant:env:delete",
6749
+ "id": "tenant:env:set_all",
6837
6750
  "pluginAlias": "@xano/cli",
6838
6751
  "pluginName": "@xano/cli",
6839
6752
  "pluginType": "core",
@@ -6845,28 +6758,25 @@
6845
6758
  "commands",
6846
6759
  "tenant",
6847
6760
  "env",
6848
- "delete",
6761
+ "set_all",
6849
6762
  "index.js"
6850
6763
  ]
6851
6764
  },
6852
- "workspace:git:pull": {
6765
+ "tenant:license:get": {
6853
6766
  "aliases": [],
6854
6767
  "args": {
6855
- "directory": {
6856
- "description": "Output directory for imported files",
6857
- "name": "directory",
6768
+ "tenant_name": {
6769
+ "description": "Tenant name",
6770
+ "name": "tenant_name",
6858
6771
  "required": true
6859
6772
  }
6860
6773
  },
6861
- "description": "Pull XanoScript files from a git repository into a local directory",
6774
+ "description": "Get the license for a tenant",
6862
6775
  "examples": [
6863
- "$ xano workspace git pull ./output -r https://github.com/owner/repo",
6864
- "$ xano workspace git pull ./output -r https://github.com/owner/repo/tree/main/path/to/dir",
6865
- "$ xano workspace git pull ./output -r https://github.com/owner/repo/blob/main/path/to/file.xs",
6866
- "$ xano workspace git pull ./output -r git@github.com:owner/repo.git",
6867
- "$ xano workspace git pull ./output -r https://github.com/owner/private-repo -t ghp_xxx",
6868
- "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo/-/tree/master/path",
6869
- "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo -b main"
6776
+ "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6777
+ "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6778
+ "$ xano tenant license get my-tenant --view",
6779
+ "$ xano tenant license get my-tenant -o json"
6870
6780
  ],
6871
6781
  "flags": {
6872
6782
  "profile": {
@@ -6888,37 +6798,40 @@
6888
6798
  "allowNo": false,
6889
6799
  "type": "boolean"
6890
6800
  },
6891
- "branch": {
6892
- "char": "b",
6893
- "description": "Branch, tag, or ref to fetch (defaults to repository default branch)",
6894
- "name": "branch",
6801
+ "file": {
6802
+ "char": "f",
6803
+ "description": "Output file path (default: license_<tenant_name>.yaml)",
6804
+ "name": "file",
6895
6805
  "required": false,
6896
6806
  "hasDynamicHelp": false,
6897
6807
  "multiple": false,
6898
6808
  "type": "option"
6899
6809
  },
6900
- "path": {
6901
- "description": "Subdirectory within the repo to import from",
6902
- "name": "path",
6810
+ "output": {
6811
+ "char": "o",
6812
+ "description": "Output format",
6813
+ "name": "output",
6903
6814
  "required": false,
6815
+ "default": "summary",
6904
6816
  "hasDynamicHelp": false,
6905
6817
  "multiple": false,
6818
+ "options": [
6819
+ "summary",
6820
+ "json"
6821
+ ],
6906
6822
  "type": "option"
6907
6823
  },
6908
- "repo": {
6909
- "char": "r",
6910
- "description": "Git repository URL (GitHub HTTPS, SSH, or any git URL)",
6911
- "name": "repo",
6912
- "required": true,
6913
- "hasDynamicHelp": false,
6914
- "multiple": false,
6915
- "type": "option"
6824
+ "view": {
6825
+ "description": "Print license to stdout instead of saving to file",
6826
+ "name": "view",
6827
+ "required": false,
6828
+ "allowNo": false,
6829
+ "type": "boolean"
6916
6830
  },
6917
- "token": {
6918
- "char": "t",
6919
- "description": "Personal access token for private repos (falls back to GITHUB_TOKEN env var)",
6920
- "env": "GITHUB_TOKEN",
6921
- "name": "token",
6831
+ "workspace": {
6832
+ "char": "w",
6833
+ "description": "Workspace ID (uses profile workspace if not provided)",
6834
+ "name": "workspace",
6922
6835
  "required": false,
6923
6836
  "hasDynamicHelp": false,
6924
6837
  "multiple": false,
@@ -6927,7 +6840,7 @@
6927
6840
  },
6928
6841
  "hasDynamicHelp": false,
6929
6842
  "hiddenAliases": [],
6930
- "id": "workspace:git:pull",
6843
+ "id": "tenant:license:get",
6931
6844
  "pluginAlias": "@xano/cli",
6932
6845
  "pluginName": "@xano/cli",
6933
6846
  "pluginType": "core",
@@ -6937,9 +6850,9 @@
6937
6850
  "relativePath": [
6938
6851
  "dist",
6939
6852
  "commands",
6940
- "workspace",
6941
- "git",
6942
- "pull",
6853
+ "tenant",
6854
+ "license",
6855
+ "get",
6943
6856
  "index.js"
6944
6857
  ]
6945
6858
  },
@@ -7132,7 +7045,101 @@
7132
7045
  "set",
7133
7046
  "index.js"
7134
7047
  ]
7048
+ },
7049
+ "workspace:git:pull": {
7050
+ "aliases": [],
7051
+ "args": {
7052
+ "directory": {
7053
+ "description": "Output directory for imported files",
7054
+ "name": "directory",
7055
+ "required": true
7056
+ }
7057
+ },
7058
+ "description": "Pull XanoScript files from a git repository into a local directory",
7059
+ "examples": [
7060
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo",
7061
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo/tree/main/path/to/dir",
7062
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo/blob/main/path/to/file.xs",
7063
+ "$ xano workspace git pull ./output -r git@github.com:owner/repo.git",
7064
+ "$ xano workspace git pull ./output -r https://github.com/owner/private-repo -t ghp_xxx",
7065
+ "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo/-/tree/master/path",
7066
+ "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo -b main"
7067
+ ],
7068
+ "flags": {
7069
+ "profile": {
7070
+ "char": "p",
7071
+ "description": "Profile to use (uses default profile if not specified)",
7072
+ "env": "XANO_PROFILE",
7073
+ "name": "profile",
7074
+ "required": false,
7075
+ "hasDynamicHelp": false,
7076
+ "multiple": false,
7077
+ "type": "option"
7078
+ },
7079
+ "verbose": {
7080
+ "char": "v",
7081
+ "description": "Show detailed request/response information",
7082
+ "env": "XANO_VERBOSE",
7083
+ "name": "verbose",
7084
+ "required": false,
7085
+ "allowNo": false,
7086
+ "type": "boolean"
7087
+ },
7088
+ "branch": {
7089
+ "char": "b",
7090
+ "description": "Branch, tag, or ref to fetch (defaults to repository default branch)",
7091
+ "name": "branch",
7092
+ "required": false,
7093
+ "hasDynamicHelp": false,
7094
+ "multiple": false,
7095
+ "type": "option"
7096
+ },
7097
+ "path": {
7098
+ "description": "Subdirectory within the repo to import from",
7099
+ "name": "path",
7100
+ "required": false,
7101
+ "hasDynamicHelp": false,
7102
+ "multiple": false,
7103
+ "type": "option"
7104
+ },
7105
+ "repo": {
7106
+ "char": "r",
7107
+ "description": "Git repository URL (GitHub HTTPS, SSH, or any git URL)",
7108
+ "name": "repo",
7109
+ "required": true,
7110
+ "hasDynamicHelp": false,
7111
+ "multiple": false,
7112
+ "type": "option"
7113
+ },
7114
+ "token": {
7115
+ "char": "t",
7116
+ "description": "Personal access token for private repos (falls back to GITHUB_TOKEN env var)",
7117
+ "env": "GITHUB_TOKEN",
7118
+ "name": "token",
7119
+ "required": false,
7120
+ "hasDynamicHelp": false,
7121
+ "multiple": false,
7122
+ "type": "option"
7123
+ }
7124
+ },
7125
+ "hasDynamicHelp": false,
7126
+ "hiddenAliases": [],
7127
+ "id": "workspace:git:pull",
7128
+ "pluginAlias": "@xano/cli",
7129
+ "pluginName": "@xano/cli",
7130
+ "pluginType": "core",
7131
+ "strict": true,
7132
+ "enableJsonFlag": false,
7133
+ "isESM": true,
7134
+ "relativePath": [
7135
+ "dist",
7136
+ "commands",
7137
+ "workspace",
7138
+ "git",
7139
+ "pull",
7140
+ "index.js"
7141
+ ]
7135
7142
  }
7136
7143
  },
7137
- "version": "0.0.75-beta.2"
7144
+ "version": "0.0.75-beta.4"
7138
7145
  }