@xano/cli 0.0.43 → 0.0.45

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.
@@ -35,6 +35,50 @@
35
35
  "index.js"
36
36
  ]
37
37
  },
38
+ "update": {
39
+ "aliases": [],
40
+ "args": {},
41
+ "description": "Update the Xano CLI to the latest version",
42
+ "examples": [
43
+ "$ xano update"
44
+ ],
45
+ "flags": {
46
+ "profile": {
47
+ "char": "p",
48
+ "description": "Profile to use (uses default profile if not specified)",
49
+ "env": "XANO_PROFILE",
50
+ "name": "profile",
51
+ "required": false,
52
+ "hasDynamicHelp": false,
53
+ "multiple": false,
54
+ "type": "option"
55
+ },
56
+ "verbose": {
57
+ "char": "v",
58
+ "description": "Show detailed request/response information",
59
+ "env": "XANO_VERBOSE",
60
+ "name": "verbose",
61
+ "required": false,
62
+ "allowNo": false,
63
+ "type": "boolean"
64
+ }
65
+ },
66
+ "hasDynamicHelp": false,
67
+ "hiddenAliases": [],
68
+ "id": "update",
69
+ "pluginAlias": "@xano/cli",
70
+ "pluginName": "@xano/cli",
71
+ "pluginType": "core",
72
+ "strict": true,
73
+ "enableJsonFlag": false,
74
+ "isESM": true,
75
+ "relativePath": [
76
+ "dist",
77
+ "commands",
78
+ "update",
79
+ "index.js"
80
+ ]
81
+ },
38
82
  "branch:create": {
39
83
  "aliases": [],
40
84
  "args": {},
@@ -226,6 +270,73 @@
226
270
  "index.js"
227
271
  ]
228
272
  },
273
+ "branch:list": {
274
+ "aliases": [],
275
+ "args": {
276
+ "workspace_id": {
277
+ "description": "Workspace ID (uses profile workspace if not provided)",
278
+ "name": "workspace_id",
279
+ "required": false
280
+ }
281
+ },
282
+ "description": "List all branches in a workspace",
283
+ "examples": [
284
+ "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
285
+ "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
286
+ "$ 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"
287
+ ],
288
+ "flags": {
289
+ "profile": {
290
+ "char": "p",
291
+ "description": "Profile to use (uses default profile if not specified)",
292
+ "env": "XANO_PROFILE",
293
+ "name": "profile",
294
+ "required": false,
295
+ "hasDynamicHelp": false,
296
+ "multiple": false,
297
+ "type": "option"
298
+ },
299
+ "verbose": {
300
+ "char": "v",
301
+ "description": "Show detailed request/response information",
302
+ "env": "XANO_VERBOSE",
303
+ "name": "verbose",
304
+ "required": false,
305
+ "allowNo": false,
306
+ "type": "boolean"
307
+ },
308
+ "output": {
309
+ "char": "o",
310
+ "description": "Output format",
311
+ "name": "output",
312
+ "required": false,
313
+ "default": "summary",
314
+ "hasDynamicHelp": false,
315
+ "multiple": false,
316
+ "options": [
317
+ "summary",
318
+ "json"
319
+ ],
320
+ "type": "option"
321
+ }
322
+ },
323
+ "hasDynamicHelp": false,
324
+ "hiddenAliases": [],
325
+ "id": "branch:list",
326
+ "pluginAlias": "@xano/cli",
327
+ "pluginName": "@xano/cli",
328
+ "pluginType": "core",
329
+ "strict": true,
330
+ "enableJsonFlag": false,
331
+ "isESM": true,
332
+ "relativePath": [
333
+ "dist",
334
+ "commands",
335
+ "branch",
336
+ "list",
337
+ "index.js"
338
+ ]
339
+ },
229
340
  "branch:get": {
230
341
  "aliases": [],
231
342
  "args": {
@@ -405,20 +516,19 @@
405
516
  "index.js"
406
517
  ]
407
518
  },
408
- "branch:list": {
519
+ "platform:get": {
409
520
  "aliases": [],
410
521
  "args": {
411
- "workspace_id": {
412
- "description": "Workspace ID (uses profile workspace if not provided)",
413
- "name": "workspace_id",
414
- "required": false
522
+ "platform_id": {
523
+ "description": "Platform ID to retrieve",
524
+ "name": "platform_id",
525
+ "required": true
415
526
  }
416
527
  },
417
- "description": "List all branches in a workspace",
528
+ "description": "Get details of a specific platform",
418
529
  "examples": [
419
- "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
420
- "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
421
- "$ 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"
530
+ "$ 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",
531
+ "$ xano platform get 23629 -o json"
422
532
  ],
423
533
  "flags": {
424
534
  "profile": {
@@ -457,7 +567,7 @@
457
567
  },
458
568
  "hasDynamicHelp": false,
459
569
  "hiddenAliases": [],
460
- "id": "branch:list",
570
+ "id": "platform:get",
461
571
  "pluginAlias": "@xano/cli",
462
572
  "pluginName": "@xano/cli",
463
573
  "pluginType": "core",
@@ -467,8 +577,8 @@
467
577
  "relativePath": [
468
578
  "dist",
469
579
  "commands",
470
- "branch",
471
- "list",
580
+ "platform",
581
+ "get",
472
582
  "index.js"
473
583
  ]
474
584
  },
@@ -556,16 +666,13 @@
556
666
  "index.js"
557
667
  ]
558
668
  },
559
- "function:create": {
669
+ "platform:list": {
560
670
  "aliases": [],
561
671
  "args": {},
562
- "description": "Create a new function in a workspace",
672
+ "description": "List all platforms",
563
673
  "examples": [
564
- "$ xano function:create -w 40 -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
565
- "$ xano function:create -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
566
- "$ xano function:create -w 40 -f function.xs --edit\n# Opens function.xs in $EDITOR, then creates function with edited content\nFunction created successfully!\nID: 123\nName: my_function\n",
567
- "$ cat function.xs | xano function:create -w 40 --stdin\nFunction created successfully!\nID: 123\nName: my_function\n",
568
- "$ xano function:create -w 40 -f function.xs -o json\n{\n \"id\": 123,\n \"name\": \"my_function\",\n ...\n}\n"
674
+ "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
675
+ "$ xano platform list --output json"
569
676
  ],
570
677
  "flags": {
571
678
  "profile": {
@@ -587,29 +694,6 @@
587
694
  "allowNo": false,
588
695
  "type": "boolean"
589
696
  },
590
- "edit": {
591
- "char": "e",
592
- "dependsOn": [
593
- "file"
594
- ],
595
- "description": "Open file in editor before creating function (requires --file)",
596
- "name": "edit",
597
- "required": false,
598
- "allowNo": false,
599
- "type": "boolean"
600
- },
601
- "file": {
602
- "char": "f",
603
- "description": "Path to file containing XanoScript code",
604
- "exclusive": [
605
- "stdin"
606
- ],
607
- "name": "file",
608
- "required": false,
609
- "hasDynamicHelp": false,
610
- "multiple": false,
611
- "type": "option"
612
- },
613
697
  "output": {
614
698
  "char": "o",
615
699
  "description": "Output format",
@@ -623,31 +707,11 @@
623
707
  "json"
624
708
  ],
625
709
  "type": "option"
626
- },
627
- "stdin": {
628
- "char": "s",
629
- "description": "Read XanoScript code from stdin",
630
- "exclusive": [
631
- "file"
632
- ],
633
- "name": "stdin",
634
- "required": false,
635
- "allowNo": false,
636
- "type": "boolean"
637
- },
638
- "workspace": {
639
- "char": "w",
640
- "description": "Workspace ID (optional if set in profile)",
641
- "name": "workspace",
642
- "required": false,
643
- "hasDynamicHelp": false,
644
- "multiple": false,
645
- "type": "option"
646
710
  }
647
711
  },
648
712
  "hasDynamicHelp": false,
649
713
  "hiddenAliases": [],
650
- "id": "function:create",
714
+ "id": "platform:list",
651
715
  "pluginAlias": "@xano/cli",
652
716
  "pluginName": "@xano/cli",
653
717
  "pluginType": "core",
@@ -657,8 +721,8 @@
657
721
  "relativePath": [
658
722
  "dist",
659
723
  "commands",
660
- "function",
661
- "create",
724
+ "platform",
725
+ "list",
662
726
  "index.js"
663
727
  ]
664
728
  },
@@ -875,15 +939,16 @@
875
939
  "index.js"
876
940
  ]
877
941
  },
878
- "function:list": {
942
+ "function:create": {
879
943
  "aliases": [],
880
944
  "args": {},
881
- "description": "List all functions in a workspace from the Xano Metadata API",
945
+ "description": "Create a new function in a workspace",
882
946
  "examples": [
883
- "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
884
- "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
885
- "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
886
- "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
947
+ "$ xano function:create -w 40 -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
948
+ "$ xano function:create -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
949
+ "$ xano function:create -w 40 -f function.xs --edit\n# Opens function.xs in $EDITOR, then creates function with edited content\nFunction created successfully!\nID: 123\nName: my_function\n",
950
+ "$ cat function.xs | xano function:create -w 40 --stdin\nFunction created successfully!\nID: 123\nName: my_function\n",
951
+ "$ xano function:create -w 40 -f function.xs -o json\n{\n \"id\": 123,\n \"name\": \"my_function\",\n ...\n}\n"
887
952
  ],
888
953
  "flags": {
889
954
  "profile": {
@@ -905,31 +970,27 @@
905
970
  "allowNo": false,
906
971
  "type": "boolean"
907
972
  },
908
- "include_draft": {
909
- "description": "Include draft functions",
910
- "name": "include_draft",
911
- "required": false,
912
- "allowNo": false,
913
- "type": "boolean"
914
- },
915
- "include_xanoscript": {
916
- "description": "Include XanoScript in response",
917
- "name": "include_xanoscript",
973
+ "edit": {
974
+ "char": "e",
975
+ "dependsOn": [
976
+ "file"
977
+ ],
978
+ "description": "Open file in editor before creating function (requires --file)",
979
+ "name": "edit",
918
980
  "required": false,
919
981
  "allowNo": false,
920
982
  "type": "boolean"
921
983
  },
922
- "order": {
923
- "description": "Sort order",
924
- "name": "order",
984
+ "file": {
985
+ "char": "f",
986
+ "description": "Path to file containing XanoScript code",
987
+ "exclusive": [
988
+ "stdin"
989
+ ],
990
+ "name": "file",
925
991
  "required": false,
926
- "default": "desc",
927
992
  "hasDynamicHelp": false,
928
993
  "multiple": false,
929
- "options": [
930
- "asc",
931
- "desc"
932
- ],
933
994
  "type": "option"
934
995
  },
935
996
  "output": {
@@ -946,37 +1007,21 @@
946
1007
  ],
947
1008
  "type": "option"
948
1009
  },
949
- "page": {
950
- "description": "Page number for pagination",
951
- "name": "page",
952
- "required": false,
953
- "default": 1,
954
- "hasDynamicHelp": false,
955
- "multiple": false,
956
- "type": "option"
957
- },
958
- "per_page": {
959
- "description": "Number of results per page",
960
- "name": "per_page",
961
- "required": false,
962
- "default": 50,
963
- "hasDynamicHelp": false,
964
- "multiple": false,
965
- "type": "option"
966
- },
967
- "sort": {
968
- "description": "Sort field",
969
- "name": "sort",
970
- "required": false,
971
- "default": "created_at",
972
- "hasDynamicHelp": false,
973
- "multiple": false,
974
- "type": "option"
975
- },
976
- "workspace": {
977
- "char": "w",
978
- "description": "Workspace ID (optional if set in profile)",
979
- "name": "workspace",
1010
+ "stdin": {
1011
+ "char": "s",
1012
+ "description": "Read XanoScript code from stdin",
1013
+ "exclusive": [
1014
+ "file"
1015
+ ],
1016
+ "name": "stdin",
1017
+ "required": false,
1018
+ "allowNo": false,
1019
+ "type": "boolean"
1020
+ },
1021
+ "workspace": {
1022
+ "char": "w",
1023
+ "description": "Workspace ID (optional if set in profile)",
1024
+ "name": "workspace",
980
1025
  "required": false,
981
1026
  "hasDynamicHelp": false,
982
1027
  "multiple": false,
@@ -985,7 +1030,7 @@
985
1030
  },
986
1031
  "hasDynamicHelp": false,
987
1032
  "hiddenAliases": [],
988
- "id": "function:list",
1033
+ "id": "function:create",
989
1034
  "pluginAlias": "@xano/cli",
990
1035
  "pluginName": "@xano/cli",
991
1036
  "pluginType": "core",
@@ -996,23 +1041,19 @@
996
1041
  "dist",
997
1042
  "commands",
998
1043
  "function",
999
- "list",
1044
+ "create",
1000
1045
  "index.js"
1001
1046
  ]
1002
1047
  },
1003
- "platform:get": {
1048
+ "function:list": {
1004
1049
  "aliases": [],
1005
- "args": {
1006
- "platform_id": {
1007
- "description": "Platform ID to retrieve",
1008
- "name": "platform_id",
1009
- "required": true
1010
- }
1011
- },
1012
- "description": "Get details of a specific platform",
1050
+ "args": {},
1051
+ "description": "List all functions in a workspace from the Xano Metadata API",
1013
1052
  "examples": [
1014
- "$ 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",
1015
- "$ xano platform get 23629 -o json"
1053
+ "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
1054
+ "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
1055
+ "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
1056
+ "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
1016
1057
  ],
1017
1058
  "flags": {
1018
1059
  "profile": {
@@ -1034,6 +1075,33 @@
1034
1075
  "allowNo": false,
1035
1076
  "type": "boolean"
1036
1077
  },
1078
+ "include_draft": {
1079
+ "description": "Include draft functions",
1080
+ "name": "include_draft",
1081
+ "required": false,
1082
+ "allowNo": false,
1083
+ "type": "boolean"
1084
+ },
1085
+ "include_xanoscript": {
1086
+ "description": "Include XanoScript in response",
1087
+ "name": "include_xanoscript",
1088
+ "required": false,
1089
+ "allowNo": false,
1090
+ "type": "boolean"
1091
+ },
1092
+ "order": {
1093
+ "description": "Sort order",
1094
+ "name": "order",
1095
+ "required": false,
1096
+ "default": "desc",
1097
+ "hasDynamicHelp": false,
1098
+ "multiple": false,
1099
+ "options": [
1100
+ "asc",
1101
+ "desc"
1102
+ ],
1103
+ "type": "option"
1104
+ },
1037
1105
  "output": {
1038
1106
  "char": "o",
1039
1107
  "description": "Output format",
@@ -1047,11 +1115,47 @@
1047
1115
  "json"
1048
1116
  ],
1049
1117
  "type": "option"
1118
+ },
1119
+ "page": {
1120
+ "description": "Page number for pagination",
1121
+ "name": "page",
1122
+ "required": false,
1123
+ "default": 1,
1124
+ "hasDynamicHelp": false,
1125
+ "multiple": false,
1126
+ "type": "option"
1127
+ },
1128
+ "per_page": {
1129
+ "description": "Number of results per page",
1130
+ "name": "per_page",
1131
+ "required": false,
1132
+ "default": 50,
1133
+ "hasDynamicHelp": false,
1134
+ "multiple": false,
1135
+ "type": "option"
1136
+ },
1137
+ "sort": {
1138
+ "description": "Sort field",
1139
+ "name": "sort",
1140
+ "required": false,
1141
+ "default": "created_at",
1142
+ "hasDynamicHelp": false,
1143
+ "multiple": false,
1144
+ "type": "option"
1145
+ },
1146
+ "workspace": {
1147
+ "char": "w",
1148
+ "description": "Workspace ID (optional if set in profile)",
1149
+ "name": "workspace",
1150
+ "required": false,
1151
+ "hasDynamicHelp": false,
1152
+ "multiple": false,
1153
+ "type": "option"
1050
1154
  }
1051
1155
  },
1052
1156
  "hasDynamicHelp": false,
1053
1157
  "hiddenAliases": [],
1054
- "id": "platform:get",
1158
+ "id": "function:list",
1055
1159
  "pluginAlias": "@xano/cli",
1056
1160
  "pluginName": "@xano/cli",
1057
1161
  "pluginType": "core",
@@ -1061,57 +1165,39 @@
1061
1165
  "relativePath": [
1062
1166
  "dist",
1063
1167
  "commands",
1064
- "platform",
1065
- "get",
1168
+ "function",
1169
+ "list",
1066
1170
  "index.js"
1067
1171
  ]
1068
1172
  },
1069
- "platform:list": {
1173
+ "profile:delete": {
1070
1174
  "aliases": [],
1071
- "args": {},
1072
- "description": "List all platforms",
1175
+ "args": {
1176
+ "name": {
1177
+ "description": "Profile name to delete",
1178
+ "name": "name",
1179
+ "required": true
1180
+ }
1181
+ },
1182
+ "description": "Delete a profile configuration",
1073
1183
  "examples": [
1074
- "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
1075
- "$ xano platform list --output json"
1184
+ "$ xano profile:delete old-profile\nAre you sure you want to delete profile 'old-profile'? (y/n): y\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n",
1185
+ "$ xano profile:delete old-profile --force\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n",
1186
+ "$ xano profile:delete old-profile -f\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n"
1076
1187
  ],
1077
1188
  "flags": {
1078
- "profile": {
1079
- "char": "p",
1080
- "description": "Profile to use (uses default profile if not specified)",
1081
- "env": "XANO_PROFILE",
1082
- "name": "profile",
1083
- "required": false,
1084
- "hasDynamicHelp": false,
1085
- "multiple": false,
1086
- "type": "option"
1087
- },
1088
- "verbose": {
1089
- "char": "v",
1090
- "description": "Show detailed request/response information",
1091
- "env": "XANO_VERBOSE",
1092
- "name": "verbose",
1189
+ "force": {
1190
+ "char": "f",
1191
+ "description": "Skip confirmation prompt",
1192
+ "name": "force",
1093
1193
  "required": false,
1094
1194
  "allowNo": false,
1095
1195
  "type": "boolean"
1096
- },
1097
- "output": {
1098
- "char": "o",
1099
- "description": "Output format",
1100
- "name": "output",
1101
- "required": false,
1102
- "default": "summary",
1103
- "hasDynamicHelp": false,
1104
- "multiple": false,
1105
- "options": [
1106
- "summary",
1107
- "json"
1108
- ],
1109
- "type": "option"
1110
1196
  }
1111
1197
  },
1112
1198
  "hasDynamicHelp": false,
1113
1199
  "hiddenAliases": [],
1114
- "id": "platform:list",
1200
+ "id": "profile:delete",
1115
1201
  "pluginAlias": "@xano/cli",
1116
1202
  "pluginName": "@xano/cli",
1117
1203
  "pluginType": "core",
@@ -1121,8 +1207,8 @@
1121
1207
  "relativePath": [
1122
1208
  "dist",
1123
1209
  "commands",
1124
- "platform",
1125
- "list",
1210
+ "profile",
1211
+ "delete",
1126
1212
  "index.js"
1127
1213
  ]
1128
1214
  },
@@ -1213,48 +1299,6 @@
1213
1299
  "index.js"
1214
1300
  ]
1215
1301
  },
1216
- "profile:delete": {
1217
- "aliases": [],
1218
- "args": {
1219
- "name": {
1220
- "description": "Profile name to delete",
1221
- "name": "name",
1222
- "required": true
1223
- }
1224
- },
1225
- "description": "Delete a profile configuration",
1226
- "examples": [
1227
- "$ xano profile:delete old-profile\nAre you sure you want to delete profile 'old-profile'? (y/n): y\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n",
1228
- "$ xano profile:delete old-profile --force\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n",
1229
- "$ xano profile:delete old-profile -f\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n"
1230
- ],
1231
- "flags": {
1232
- "force": {
1233
- "char": "f",
1234
- "description": "Skip confirmation prompt",
1235
- "name": "force",
1236
- "required": false,
1237
- "allowNo": false,
1238
- "type": "boolean"
1239
- }
1240
- },
1241
- "hasDynamicHelp": false,
1242
- "hiddenAliases": [],
1243
- "id": "profile:delete",
1244
- "pluginAlias": "@xano/cli",
1245
- "pluginName": "@xano/cli",
1246
- "pluginType": "core",
1247
- "strict": true,
1248
- "enableJsonFlag": false,
1249
- "isESM": true,
1250
- "relativePath": [
1251
- "dist",
1252
- "commands",
1253
- "profile",
1254
- "delete",
1255
- "index.js"
1256
- ]
1257
- },
1258
1302
  "profile:edit": {
1259
1303
  "aliases": [],
1260
1304
  "args": {
@@ -1492,24 +1536,37 @@
1492
1536
  "index.js"
1493
1537
  ]
1494
1538
  },
1495
- "profile:set_default": {
1539
+ "profile:wizard": {
1496
1540
  "aliases": [],
1497
- "args": {
1541
+ "args": {},
1542
+ "description": "Create a new profile configuration using an interactive wizard",
1543
+ "examples": [
1544
+ "$ xano profile:wizard\nWelcome to the Xano Profile Wizard!\n? Enter your access token: ***...***\n? Select an instance:\n > Production (https://app.xano.com)\n Staging (https://staging.xano.com)\n? Profile name: production\nProfile 'production' created successfully at ~/.xano/credentials.yaml\n"
1545
+ ],
1546
+ "flags": {
1498
1547
  "name": {
1499
- "description": "Profile name to set as default",
1548
+ "char": "n",
1549
+ "description": "Profile name (skip prompt if provided)",
1500
1550
  "name": "name",
1501
- "required": true
1551
+ "required": false,
1552
+ "hasDynamicHelp": false,
1553
+ "multiple": false,
1554
+ "type": "option"
1555
+ },
1556
+ "origin": {
1557
+ "char": "o",
1558
+ "description": "Xano instance origin URL",
1559
+ "name": "origin",
1560
+ "required": false,
1561
+ "default": "https://app.xano.com",
1562
+ "hasDynamicHelp": false,
1563
+ "multiple": false,
1564
+ "type": "option"
1502
1565
  }
1503
1566
  },
1504
- "description": "Set the default profile",
1505
- "examples": [
1506
- "$ xano profile:set-default production\nDefault profile set to 'production'\n",
1507
- "$ xano profile:set-default staging\nDefault profile set to 'staging'\n"
1508
- ],
1509
- "flags": {},
1510
1567
  "hasDynamicHelp": false,
1511
1568
  "hiddenAliases": [],
1512
- "id": "profile:set_default",
1569
+ "id": "profile:wizard",
1513
1570
  "pluginAlias": "@xano/cli",
1514
1571
  "pluginName": "@xano/cli",
1515
1572
  "pluginType": "core",
@@ -1520,67 +1577,22 @@
1520
1577
  "dist",
1521
1578
  "commands",
1522
1579
  "profile",
1523
- "set_default",
1580
+ "wizard",
1524
1581
  "index.js"
1525
1582
  ]
1526
1583
  },
1527
- "profile:token": {
1584
+ "profile:workspace": {
1528
1585
  "aliases": [],
1529
1586
  "args": {},
1530
- "description": "Print the access token for the default profile",
1587
+ "description": "Print the workspace ID for the default profile",
1531
1588
  "examples": [
1532
- "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1533
- "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1589
+ "$ xano profile:workspace\nabc123-workspace-id\n",
1590
+ "$ xano profile:workspace | pbcopy\n# Copies the workspace ID to clipboard on macOS\n"
1534
1591
  ],
1535
1592
  "flags": {},
1536
1593
  "hasDynamicHelp": false,
1537
1594
  "hiddenAliases": [],
1538
- "id": "profile:token",
1539
- "pluginAlias": "@xano/cli",
1540
- "pluginName": "@xano/cli",
1541
- "pluginType": "core",
1542
- "strict": true,
1543
- "enableJsonFlag": false,
1544
- "isESM": true,
1545
- "relativePath": [
1546
- "dist",
1547
- "commands",
1548
- "profile",
1549
- "token",
1550
- "index.js"
1551
- ]
1552
- },
1553
- "profile:wizard": {
1554
- "aliases": [],
1555
- "args": {},
1556
- "description": "Create a new profile configuration using an interactive wizard",
1557
- "examples": [
1558
- "$ xano profile:wizard\nWelcome to the Xano Profile Wizard!\n? Enter your access token: ***...***\n? Select an instance:\n > Production (https://app.xano.com)\n Staging (https://staging.xano.com)\n? Profile name: production\nProfile 'production' created successfully at ~/.xano/credentials.yaml\n"
1559
- ],
1560
- "flags": {
1561
- "name": {
1562
- "char": "n",
1563
- "description": "Profile name (skip prompt if provided)",
1564
- "name": "name",
1565
- "required": false,
1566
- "hasDynamicHelp": false,
1567
- "multiple": false,
1568
- "type": "option"
1569
- },
1570
- "origin": {
1571
- "char": "o",
1572
- "description": "Xano instance origin URL",
1573
- "name": "origin",
1574
- "required": false,
1575
- "default": "https://app.xano.com",
1576
- "hasDynamicHelp": false,
1577
- "multiple": false,
1578
- "type": "option"
1579
- }
1580
- },
1581
- "hasDynamicHelp": false,
1582
- "hiddenAliases": [],
1583
- "id": "profile:wizard",
1595
+ "id": "profile:workspace",
1584
1596
  "pluginAlias": "@xano/cli",
1585
1597
  "pluginName": "@xano/cli",
1586
1598
  "pluginType": "core",
@@ -1591,22 +1603,22 @@
1591
1603
  "dist",
1592
1604
  "commands",
1593
1605
  "profile",
1594
- "wizard",
1606
+ "workspace",
1595
1607
  "index.js"
1596
1608
  ]
1597
1609
  },
1598
- "profile:workspace": {
1610
+ "profile:token": {
1599
1611
  "aliases": [],
1600
1612
  "args": {},
1601
- "description": "Print the workspace ID for the default profile",
1613
+ "description": "Print the access token for the default profile",
1602
1614
  "examples": [
1603
- "$ xano profile:workspace\nabc123-workspace-id\n",
1604
- "$ xano profile:workspace | pbcopy\n# Copies the workspace ID to clipboard on macOS\n"
1615
+ "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1616
+ "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1605
1617
  ],
1606
1618
  "flags": {},
1607
1619
  "hasDynamicHelp": false,
1608
1620
  "hiddenAliases": [],
1609
- "id": "profile:workspace",
1621
+ "id": "profile:token",
1610
1622
  "pluginAlias": "@xano/cli",
1611
1623
  "pluginName": "@xano/cli",
1612
1624
  "pluginType": "core",
@@ -1617,17 +1629,19 @@
1617
1629
  "dist",
1618
1630
  "commands",
1619
1631
  "profile",
1620
- "workspace",
1632
+ "token",
1621
1633
  "index.js"
1622
1634
  ]
1623
1635
  },
1624
- "release:create": {
1636
+ "static_host:list": {
1625
1637
  "aliases": [],
1626
1638
  "args": {},
1627
- "description": "Create a new release in a workspace",
1639
+ "description": "List all static hosts in a workspace from the Xano Metadata API",
1628
1640
  "examples": [
1629
- "$ xano release create --name \"v1.0\" --branch main\nCreated release: v1.0 - ID: 10\n",
1630
- "$ xano release create --name \"v1.1-hotfix\" --branch main --hotfix --description \"Critical fix\" -o json"
1641
+ "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
1642
+ "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
1643
+ "$ xano static_host:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"my-static-host\",\n \"domain\": \"example.com\"\n }\n]\n",
1644
+ "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
1631
1645
  ],
1632
1646
  "flags": {
1633
1647
  "profile": {
@@ -1649,40 +1663,6 @@
1649
1663
  "allowNo": false,
1650
1664
  "type": "boolean"
1651
1665
  },
1652
- "branch": {
1653
- "char": "b",
1654
- "description": "Branch to create the release from",
1655
- "name": "branch",
1656
- "required": true,
1657
- "hasDynamicHelp": false,
1658
- "multiple": false,
1659
- "type": "option"
1660
- },
1661
- "description": {
1662
- "char": "d",
1663
- "description": "Release description",
1664
- "name": "description",
1665
- "required": false,
1666
- "hasDynamicHelp": false,
1667
- "multiple": false,
1668
- "type": "option"
1669
- },
1670
- "hotfix": {
1671
- "description": "Mark as a hotfix release",
1672
- "name": "hotfix",
1673
- "required": false,
1674
- "allowNo": false,
1675
- "type": "boolean"
1676
- },
1677
- "name": {
1678
- "char": "n",
1679
- "description": "Name for the release",
1680
- "name": "name",
1681
- "required": true,
1682
- "hasDynamicHelp": false,
1683
- "multiple": false,
1684
- "type": "option"
1685
- },
1686
1666
  "output": {
1687
1667
  "char": "o",
1688
1668
  "description": "Output format",
@@ -1697,17 +1677,27 @@
1697
1677
  ],
1698
1678
  "type": "option"
1699
1679
  },
1700
- "table-ids": {
1701
- "description": "Comma-separated table IDs to include",
1702
- "name": "table-ids",
1680
+ "page": {
1681
+ "description": "Page number for pagination",
1682
+ "name": "page",
1683
+ "required": false,
1684
+ "default": 1,
1685
+ "hasDynamicHelp": false,
1686
+ "multiple": false,
1687
+ "type": "option"
1688
+ },
1689
+ "per_page": {
1690
+ "description": "Number of results per page",
1691
+ "name": "per_page",
1703
1692
  "required": false,
1693
+ "default": 50,
1704
1694
  "hasDynamicHelp": false,
1705
1695
  "multiple": false,
1706
1696
  "type": "option"
1707
1697
  },
1708
1698
  "workspace": {
1709
1699
  "char": "w",
1710
- "description": "Workspace ID (uses profile workspace if not provided)",
1700
+ "description": "Workspace ID (optional if set in profile)",
1711
1701
  "name": "workspace",
1712
1702
  "required": false,
1713
1703
  "hasDynamicHelp": false,
@@ -1717,7 +1707,7 @@
1717
1707
  },
1718
1708
  "hasDynamicHelp": false,
1719
1709
  "hiddenAliases": [],
1720
- "id": "release:create",
1710
+ "id": "static_host:list",
1721
1711
  "pluginAlias": "@xano/cli",
1722
1712
  "pluginName": "@xano/cli",
1723
1713
  "pluginType": "core",
@@ -1727,8 +1717,40 @@
1727
1717
  "relativePath": [
1728
1718
  "dist",
1729
1719
  "commands",
1730
- "release",
1731
- "create",
1720
+ "static_host",
1721
+ "list",
1722
+ "index.js"
1723
+ ]
1724
+ },
1725
+ "profile:set_default": {
1726
+ "aliases": [],
1727
+ "args": {
1728
+ "name": {
1729
+ "description": "Profile name to set as default",
1730
+ "name": "name",
1731
+ "required": true
1732
+ }
1733
+ },
1734
+ "description": "Set the default profile",
1735
+ "examples": [
1736
+ "$ xano profile:set-default production\nDefault profile set to 'production'\n",
1737
+ "$ xano profile:set-default staging\nDefault profile set to 'staging'\n"
1738
+ ],
1739
+ "flags": {},
1740
+ "hasDynamicHelp": false,
1741
+ "hiddenAliases": [],
1742
+ "id": "profile:set_default",
1743
+ "pluginAlias": "@xano/cli",
1744
+ "pluginName": "@xano/cli",
1745
+ "pluginType": "core",
1746
+ "strict": true,
1747
+ "enableJsonFlag": false,
1748
+ "isESM": true,
1749
+ "relativePath": [
1750
+ "dist",
1751
+ "commands",
1752
+ "profile",
1753
+ "set_default",
1732
1754
  "index.js"
1733
1755
  ]
1734
1756
  },
@@ -1816,19 +1838,13 @@
1816
1838
  "index.js"
1817
1839
  ]
1818
1840
  },
1819
- "release:edit": {
1841
+ "release:create": {
1820
1842
  "aliases": [],
1821
- "args": {
1822
- "release_name": {
1823
- "description": "Release name to edit",
1824
- "name": "release_name",
1825
- "required": true
1826
- }
1827
- },
1828
- "description": "Edit an existing release",
1843
+ "args": {},
1844
+ "description": "Create a new release in a workspace",
1829
1845
  "examples": [
1830
- "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
1831
- "$ xano release edit v1.0 --description \"New description\" -o json"
1846
+ "$ xano release create --name \"v1.0\" --branch main\nCreated release: v1.0 - ID: 10\n",
1847
+ "$ xano release create --name \"v1.1-hotfix\" --branch main --hotfix --description \"Critical fix\" -o json"
1832
1848
  ],
1833
1849
  "flags": {
1834
1850
  "profile": {
@@ -1850,20 +1866,36 @@
1850
1866
  "allowNo": false,
1851
1867
  "type": "boolean"
1852
1868
  },
1869
+ "branch": {
1870
+ "char": "b",
1871
+ "description": "Branch to create the release from",
1872
+ "name": "branch",
1873
+ "required": true,
1874
+ "hasDynamicHelp": false,
1875
+ "multiple": false,
1876
+ "type": "option"
1877
+ },
1853
1878
  "description": {
1854
1879
  "char": "d",
1855
- "description": "New description",
1880
+ "description": "Release description",
1856
1881
  "name": "description",
1857
1882
  "required": false,
1858
1883
  "hasDynamicHelp": false,
1859
1884
  "multiple": false,
1860
1885
  "type": "option"
1861
1886
  },
1887
+ "hotfix": {
1888
+ "description": "Mark as a hotfix release",
1889
+ "name": "hotfix",
1890
+ "required": false,
1891
+ "allowNo": false,
1892
+ "type": "boolean"
1893
+ },
1862
1894
  "name": {
1863
1895
  "char": "n",
1864
- "description": "New name for the release",
1896
+ "description": "Name for the release",
1865
1897
  "name": "name",
1866
- "required": false,
1898
+ "required": true,
1867
1899
  "hasDynamicHelp": false,
1868
1900
  "multiple": false,
1869
1901
  "type": "option"
@@ -1882,6 +1914,14 @@
1882
1914
  ],
1883
1915
  "type": "option"
1884
1916
  },
1917
+ "table-ids": {
1918
+ "description": "Comma-separated table IDs to include",
1919
+ "name": "table-ids",
1920
+ "required": false,
1921
+ "hasDynamicHelp": false,
1922
+ "multiple": false,
1923
+ "type": "option"
1924
+ },
1885
1925
  "workspace": {
1886
1926
  "char": "w",
1887
1927
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -1894,7 +1934,7 @@
1894
1934
  },
1895
1935
  "hasDynamicHelp": false,
1896
1936
  "hiddenAliases": [],
1897
- "id": "release:edit",
1937
+ "id": "release:create",
1898
1938
  "pluginAlias": "@xano/cli",
1899
1939
  "pluginName": "@xano/cli",
1900
1940
  "pluginType": "core",
@@ -1905,7 +1945,7 @@
1905
1945
  "dist",
1906
1946
  "commands",
1907
1947
  "release",
1908
- "edit",
1948
+ "create",
1909
1949
  "index.js"
1910
1950
  ]
1911
1951
  },
@@ -1993,19 +2033,19 @@
1993
2033
  "index.js"
1994
2034
  ]
1995
2035
  },
1996
- "release:get": {
2036
+ "release:edit": {
1997
2037
  "aliases": [],
1998
2038
  "args": {
1999
2039
  "release_name": {
2000
- "description": "Release name to retrieve",
2040
+ "description": "Release name to edit",
2001
2041
  "name": "release_name",
2002
2042
  "required": true
2003
2043
  }
2004
2044
  },
2005
- "description": "Get details of a specific release",
2045
+ "description": "Edit an existing release",
2006
2046
  "examples": [
2007
- "$ xano release get v1.0\nRelease: v1.0 - ID: 10\n Branch: main\n Description: Initial release\n Hotfix: false\n",
2008
- "$ xano release get v1.0 -w 5 -o json"
2047
+ "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
2048
+ "$ xano release edit v1.0 --description \"New description\" -o json"
2009
2049
  ],
2010
2050
  "flags": {
2011
2051
  "profile": {
@@ -2027,6 +2067,24 @@
2027
2067
  "allowNo": false,
2028
2068
  "type": "boolean"
2029
2069
  },
2070
+ "description": {
2071
+ "char": "d",
2072
+ "description": "New description",
2073
+ "name": "description",
2074
+ "required": false,
2075
+ "hasDynamicHelp": false,
2076
+ "multiple": false,
2077
+ "type": "option"
2078
+ },
2079
+ "name": {
2080
+ "char": "n",
2081
+ "description": "New name for the release",
2082
+ "name": "name",
2083
+ "required": false,
2084
+ "hasDynamicHelp": false,
2085
+ "multiple": false,
2086
+ "type": "option"
2087
+ },
2030
2088
  "output": {
2031
2089
  "char": "o",
2032
2090
  "description": "Output format",
@@ -2053,7 +2111,7 @@
2053
2111
  },
2054
2112
  "hasDynamicHelp": false,
2055
2113
  "hiddenAliases": [],
2056
- "id": "release:get",
2114
+ "id": "release:edit",
2057
2115
  "pluginAlias": "@xano/cli",
2058
2116
  "pluginName": "@xano/cli",
2059
2117
  "pluginType": "core",
@@ -2064,7 +2122,7 @@
2064
2122
  "dist",
2065
2123
  "commands",
2066
2124
  "release",
2067
- "get",
2125
+ "edit",
2068
2126
  "index.js"
2069
2127
  ]
2070
2128
  },
@@ -2215,20 +2273,19 @@
2215
2273
  "index.js"
2216
2274
  ]
2217
2275
  },
2218
- "release:pull": {
2276
+ "release:get": {
2219
2277
  "aliases": [],
2220
2278
  "args": {
2221
- "directory": {
2222
- "description": "Output directory for pulled documents",
2223
- "name": "directory",
2279
+ "release_name": {
2280
+ "description": "Release name to retrieve",
2281
+ "name": "release_name",
2224
2282
  "required": true
2225
2283
  }
2226
2284
  },
2227
- "description": "Pull a release multidoc from the Xano Metadata API and split into individual files",
2285
+ "description": "Get details of a specific release",
2228
2286
  "examples": [
2229
- "$ xano release pull ./my-release -r v1.0\nPulled 42 documents from release 'v1.0' to ./my-release\n",
2230
- "$ xano release pull ./output -r v1.0 -w 40\nPulled 15 documents from release 'v1.0' to ./output\n",
2231
- "$ xano release pull ./backup -r v1.0 --profile production --env --records\nPulled 58 documents from release 'v1.0' to ./backup\n"
2287
+ "$ xano release get v1.0\nRelease: v1.0 - ID: 10\n Branch: main\n Description: Initial release\n Hotfix: false\n",
2288
+ "$ xano release get v1.0 -w 5 -o json"
2232
2289
  ],
2233
2290
  "flags": {
2234
2291
  "profile": {
@@ -2250,32 +2307,23 @@
2250
2307
  "allowNo": false,
2251
2308
  "type": "boolean"
2252
2309
  },
2253
- "env": {
2254
- "description": "Include environment variables",
2255
- "name": "env",
2256
- "required": false,
2257
- "allowNo": false,
2258
- "type": "boolean"
2259
- },
2260
- "records": {
2261
- "description": "Include records",
2262
- "name": "records",
2310
+ "output": {
2311
+ "char": "o",
2312
+ "description": "Output format",
2313
+ "name": "output",
2263
2314
  "required": false,
2264
- "allowNo": false,
2265
- "type": "boolean"
2266
- },
2267
- "release": {
2268
- "char": "r",
2269
- "description": "Release name to pull from",
2270
- "name": "release",
2271
- "required": true,
2315
+ "default": "summary",
2272
2316
  "hasDynamicHelp": false,
2273
2317
  "multiple": false,
2318
+ "options": [
2319
+ "summary",
2320
+ "json"
2321
+ ],
2274
2322
  "type": "option"
2275
2323
  },
2276
2324
  "workspace": {
2277
2325
  "char": "w",
2278
- "description": "Workspace ID (optional if set in profile)",
2326
+ "description": "Workspace ID (uses profile workspace if not provided)",
2279
2327
  "name": "workspace",
2280
2328
  "required": false,
2281
2329
  "hasDynamicHelp": false,
@@ -2285,7 +2333,7 @@
2285
2333
  },
2286
2334
  "hasDynamicHelp": false,
2287
2335
  "hiddenAliases": [],
2288
- "id": "release:pull",
2336
+ "id": "release:get",
2289
2337
  "pluginAlias": "@xano/cli",
2290
2338
  "pluginName": "@xano/cli",
2291
2339
  "pluginType": "core",
@@ -2296,7 +2344,7 @@
2296
2344
  "dist",
2297
2345
  "commands",
2298
2346
  "release",
2299
- "pull",
2347
+ "get",
2300
2348
  "index.js"
2301
2349
  ]
2302
2350
  },
@@ -2384,16 +2432,359 @@
2384
2432
  ],
2385
2433
  "type": "option"
2386
2434
  },
2387
- "records": {
2388
- "description": "Include records (default: true, use --no-records to exclude)",
2389
- "name": "records",
2390
- "required": false,
2391
- "allowNo": true,
2392
- "type": "boolean"
2393
- },
2435
+ "records": {
2436
+ "description": "Include records (default: true, use --no-records to exclude)",
2437
+ "name": "records",
2438
+ "required": false,
2439
+ "allowNo": true,
2440
+ "type": "boolean"
2441
+ },
2442
+ "workspace": {
2443
+ "char": "w",
2444
+ "description": "Workspace ID (optional if set in profile)",
2445
+ "name": "workspace",
2446
+ "required": false,
2447
+ "hasDynamicHelp": false,
2448
+ "multiple": false,
2449
+ "type": "option"
2450
+ }
2451
+ },
2452
+ "hasDynamicHelp": false,
2453
+ "hiddenAliases": [],
2454
+ "id": "release:push",
2455
+ "pluginAlias": "@xano/cli",
2456
+ "pluginName": "@xano/cli",
2457
+ "pluginType": "core",
2458
+ "strict": true,
2459
+ "enableJsonFlag": false,
2460
+ "isESM": true,
2461
+ "relativePath": [
2462
+ "dist",
2463
+ "commands",
2464
+ "release",
2465
+ "push",
2466
+ "index.js"
2467
+ ]
2468
+ },
2469
+ "unit_test:list": {
2470
+ "aliases": [],
2471
+ "args": {},
2472
+ "description": "List all unit tests in a workspace",
2473
+ "examples": [
2474
+ "$ xano unit-test list\nUnit tests in workspace 5:\n - my-test (ID: abc-123) [function: math]\n - auth-check (ID: def-456) [query: /user/login]\n",
2475
+ "$ xano unit-test list -w 5 --output json",
2476
+ "$ xano unit-test list --obj-type function"
2477
+ ],
2478
+ "flags": {
2479
+ "profile": {
2480
+ "char": "p",
2481
+ "description": "Profile to use (uses default profile if not specified)",
2482
+ "env": "XANO_PROFILE",
2483
+ "name": "profile",
2484
+ "required": false,
2485
+ "hasDynamicHelp": false,
2486
+ "multiple": false,
2487
+ "type": "option"
2488
+ },
2489
+ "verbose": {
2490
+ "char": "v",
2491
+ "description": "Show detailed request/response information",
2492
+ "env": "XANO_VERBOSE",
2493
+ "name": "verbose",
2494
+ "required": false,
2495
+ "allowNo": false,
2496
+ "type": "boolean"
2497
+ },
2498
+ "branch": {
2499
+ "char": "b",
2500
+ "description": "Filter by branch name",
2501
+ "name": "branch",
2502
+ "required": false,
2503
+ "hasDynamicHelp": false,
2504
+ "multiple": false,
2505
+ "type": "option"
2506
+ },
2507
+ "obj-type": {
2508
+ "description": "Filter by object type",
2509
+ "name": "obj-type",
2510
+ "required": false,
2511
+ "hasDynamicHelp": false,
2512
+ "multiple": false,
2513
+ "options": [
2514
+ "function",
2515
+ "query",
2516
+ "middleware"
2517
+ ],
2518
+ "type": "option"
2519
+ },
2520
+ "output": {
2521
+ "char": "o",
2522
+ "description": "Output format",
2523
+ "name": "output",
2524
+ "required": false,
2525
+ "default": "summary",
2526
+ "hasDynamicHelp": false,
2527
+ "multiple": false,
2528
+ "options": [
2529
+ "summary",
2530
+ "json"
2531
+ ],
2532
+ "type": "option"
2533
+ },
2534
+ "workspace": {
2535
+ "char": "w",
2536
+ "description": "Workspace ID (uses profile workspace if not provided)",
2537
+ "name": "workspace",
2538
+ "required": false,
2539
+ "hasDynamicHelp": false,
2540
+ "multiple": false,
2541
+ "type": "option"
2542
+ }
2543
+ },
2544
+ "hasDynamicHelp": false,
2545
+ "hiddenAliases": [],
2546
+ "id": "unit_test:list",
2547
+ "pluginAlias": "@xano/cli",
2548
+ "pluginName": "@xano/cli",
2549
+ "pluginType": "core",
2550
+ "strict": true,
2551
+ "enableJsonFlag": false,
2552
+ "isESM": true,
2553
+ "relativePath": [
2554
+ "dist",
2555
+ "commands",
2556
+ "unit_test",
2557
+ "list",
2558
+ "index.js"
2559
+ ]
2560
+ },
2561
+ "unit_test:run_all": {
2562
+ "aliases": [],
2563
+ "args": {},
2564
+ "description": "Run all unit tests in a workspace",
2565
+ "examples": [
2566
+ "$ xano unit-test run-all\nRunning 5 unit tests...\n\nPASS my-test [function: math]\nPASS auth-check [query: /user/login]\nFAIL data-validation [function: validate]\n Error: assertion failed\n\nResults: 2 passed, 1 failed\n",
2567
+ "$ xano unit-test run-all --obj-type function -o json"
2568
+ ],
2569
+ "flags": {
2570
+ "profile": {
2571
+ "char": "p",
2572
+ "description": "Profile to use (uses default profile if not specified)",
2573
+ "env": "XANO_PROFILE",
2574
+ "name": "profile",
2575
+ "required": false,
2576
+ "hasDynamicHelp": false,
2577
+ "multiple": false,
2578
+ "type": "option"
2579
+ },
2580
+ "verbose": {
2581
+ "char": "v",
2582
+ "description": "Show detailed request/response information",
2583
+ "env": "XANO_VERBOSE",
2584
+ "name": "verbose",
2585
+ "required": false,
2586
+ "allowNo": false,
2587
+ "type": "boolean"
2588
+ },
2589
+ "branch": {
2590
+ "char": "b",
2591
+ "description": "Filter by branch name",
2592
+ "name": "branch",
2593
+ "required": false,
2594
+ "hasDynamicHelp": false,
2595
+ "multiple": false,
2596
+ "type": "option"
2597
+ },
2598
+ "obj-type": {
2599
+ "description": "Filter by object type",
2600
+ "name": "obj-type",
2601
+ "required": false,
2602
+ "hasDynamicHelp": false,
2603
+ "multiple": false,
2604
+ "options": [
2605
+ "function",
2606
+ "query",
2607
+ "middleware"
2608
+ ],
2609
+ "type": "option"
2610
+ },
2611
+ "output": {
2612
+ "char": "o",
2613
+ "description": "Output format",
2614
+ "name": "output",
2615
+ "required": false,
2616
+ "default": "summary",
2617
+ "hasDynamicHelp": false,
2618
+ "multiple": false,
2619
+ "options": [
2620
+ "summary",
2621
+ "json"
2622
+ ],
2623
+ "type": "option"
2624
+ },
2625
+ "workspace": {
2626
+ "char": "w",
2627
+ "description": "Workspace ID (uses profile workspace if not provided)",
2628
+ "name": "workspace",
2629
+ "required": false,
2630
+ "hasDynamicHelp": false,
2631
+ "multiple": false,
2632
+ "type": "option"
2633
+ }
2634
+ },
2635
+ "hasDynamicHelp": false,
2636
+ "hiddenAliases": [],
2637
+ "id": "unit_test:run_all",
2638
+ "pluginAlias": "@xano/cli",
2639
+ "pluginName": "@xano/cli",
2640
+ "pluginType": "core",
2641
+ "strict": true,
2642
+ "enableJsonFlag": false,
2643
+ "isESM": true,
2644
+ "relativePath": [
2645
+ "dist",
2646
+ "commands",
2647
+ "unit_test",
2648
+ "run_all",
2649
+ "index.js"
2650
+ ]
2651
+ },
2652
+ "release:pull": {
2653
+ "aliases": [],
2654
+ "args": {
2655
+ "directory": {
2656
+ "description": "Output directory for pulled documents",
2657
+ "name": "directory",
2658
+ "required": true
2659
+ }
2660
+ },
2661
+ "description": "Pull a release multidoc from the Xano Metadata API and split into individual files",
2662
+ "examples": [
2663
+ "$ xano release pull ./my-release -r v1.0\nPulled 42 documents from release 'v1.0' to ./my-release\n",
2664
+ "$ xano release pull ./output -r v1.0 -w 40\nPulled 15 documents from release 'v1.0' to ./output\n",
2665
+ "$ xano release pull ./backup -r v1.0 --profile production --env --records\nPulled 58 documents from release 'v1.0' to ./backup\n"
2666
+ ],
2667
+ "flags": {
2668
+ "profile": {
2669
+ "char": "p",
2670
+ "description": "Profile to use (uses default profile if not specified)",
2671
+ "env": "XANO_PROFILE",
2672
+ "name": "profile",
2673
+ "required": false,
2674
+ "hasDynamicHelp": false,
2675
+ "multiple": false,
2676
+ "type": "option"
2677
+ },
2678
+ "verbose": {
2679
+ "char": "v",
2680
+ "description": "Show detailed request/response information",
2681
+ "env": "XANO_VERBOSE",
2682
+ "name": "verbose",
2683
+ "required": false,
2684
+ "allowNo": false,
2685
+ "type": "boolean"
2686
+ },
2687
+ "env": {
2688
+ "description": "Include environment variables",
2689
+ "name": "env",
2690
+ "required": false,
2691
+ "allowNo": false,
2692
+ "type": "boolean"
2693
+ },
2694
+ "records": {
2695
+ "description": "Include records",
2696
+ "name": "records",
2697
+ "required": false,
2698
+ "allowNo": false,
2699
+ "type": "boolean"
2700
+ },
2701
+ "release": {
2702
+ "char": "r",
2703
+ "description": "Release name to pull from",
2704
+ "name": "release",
2705
+ "required": true,
2706
+ "hasDynamicHelp": false,
2707
+ "multiple": false,
2708
+ "type": "option"
2709
+ },
2710
+ "workspace": {
2711
+ "char": "w",
2712
+ "description": "Workspace ID (optional if set in profile)",
2713
+ "name": "workspace",
2714
+ "required": false,
2715
+ "hasDynamicHelp": false,
2716
+ "multiple": false,
2717
+ "type": "option"
2718
+ }
2719
+ },
2720
+ "hasDynamicHelp": false,
2721
+ "hiddenAliases": [],
2722
+ "id": "release:pull",
2723
+ "pluginAlias": "@xano/cli",
2724
+ "pluginName": "@xano/cli",
2725
+ "pluginType": "core",
2726
+ "strict": true,
2727
+ "enableJsonFlag": false,
2728
+ "isESM": true,
2729
+ "relativePath": [
2730
+ "dist",
2731
+ "commands",
2732
+ "release",
2733
+ "pull",
2734
+ "index.js"
2735
+ ]
2736
+ },
2737
+ "unit_test:run": {
2738
+ "aliases": [],
2739
+ "args": {
2740
+ "unit_test_id": {
2741
+ "description": "ID of the unit test to run",
2742
+ "name": "unit_test_id",
2743
+ "required": true
2744
+ }
2745
+ },
2746
+ "description": "Run a unit test",
2747
+ "examples": [
2748
+ "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
2749
+ "$ xano unit-test run abc-123 -o json"
2750
+ ],
2751
+ "flags": {
2752
+ "profile": {
2753
+ "char": "p",
2754
+ "description": "Profile to use (uses default profile if not specified)",
2755
+ "env": "XANO_PROFILE",
2756
+ "name": "profile",
2757
+ "required": false,
2758
+ "hasDynamicHelp": false,
2759
+ "multiple": false,
2760
+ "type": "option"
2761
+ },
2762
+ "verbose": {
2763
+ "char": "v",
2764
+ "description": "Show detailed request/response information",
2765
+ "env": "XANO_VERBOSE",
2766
+ "name": "verbose",
2767
+ "required": false,
2768
+ "allowNo": false,
2769
+ "type": "boolean"
2770
+ },
2771
+ "output": {
2772
+ "char": "o",
2773
+ "description": "Output format",
2774
+ "name": "output",
2775
+ "required": false,
2776
+ "default": "summary",
2777
+ "hasDynamicHelp": false,
2778
+ "multiple": false,
2779
+ "options": [
2780
+ "summary",
2781
+ "json"
2782
+ ],
2783
+ "type": "option"
2784
+ },
2394
2785
  "workspace": {
2395
2786
  "char": "w",
2396
- "description": "Workspace ID (optional if set in profile)",
2787
+ "description": "Workspace ID (uses profile workspace if not provided)",
2397
2788
  "name": "workspace",
2398
2789
  "required": false,
2399
2790
  "hasDynamicHelp": false,
@@ -2403,7 +2794,7 @@
2403
2794
  },
2404
2795
  "hasDynamicHelp": false,
2405
2796
  "hiddenAliases": [],
2406
- "id": "release:push",
2797
+ "id": "unit_test:run",
2407
2798
  "pluginAlias": "@xano/cli",
2408
2799
  "pluginName": "@xano/cli",
2409
2800
  "pluginType": "core",
@@ -2413,20 +2804,24 @@
2413
2804
  "relativePath": [
2414
2805
  "dist",
2415
2806
  "commands",
2416
- "release",
2417
- "push",
2807
+ "unit_test",
2808
+ "run",
2418
2809
  "index.js"
2419
2810
  ]
2420
2811
  },
2421
- "static_host:list": {
2812
+ "tenant:deploy_platform": {
2422
2813
  "aliases": [],
2423
- "args": {},
2424
- "description": "List all static hosts in a workspace from the Xano Metadata API",
2814
+ "args": {
2815
+ "tenant_name": {
2816
+ "description": "Tenant name to deploy to",
2817
+ "name": "tenant_name",
2818
+ "required": true
2819
+ }
2820
+ },
2821
+ "description": "Deploy a platform version to a tenant",
2425
2822
  "examples": [
2426
- "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2427
- "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2428
- "$ xano static_host:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"my-static-host\",\n \"domain\": \"example.com\"\n }\n]\n",
2429
- "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
2823
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
2824
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json"
2430
2825
  ],
2431
2826
  "flags": {
2432
2827
  "profile": {
@@ -2462,27 +2857,17 @@
2462
2857
  ],
2463
2858
  "type": "option"
2464
2859
  },
2465
- "page": {
2466
- "description": "Page number for pagination",
2467
- "name": "page",
2468
- "required": false,
2469
- "default": 1,
2470
- "hasDynamicHelp": false,
2471
- "multiple": false,
2472
- "type": "option"
2473
- },
2474
- "per_page": {
2475
- "description": "Number of results per page",
2476
- "name": "per_page",
2477
- "required": false,
2478
- "default": 50,
2860
+ "platform_id": {
2861
+ "description": "Platform ID to deploy",
2862
+ "name": "platform_id",
2863
+ "required": true,
2479
2864
  "hasDynamicHelp": false,
2480
2865
  "multiple": false,
2481
2866
  "type": "option"
2482
2867
  },
2483
2868
  "workspace": {
2484
2869
  "char": "w",
2485
- "description": "Workspace ID (optional if set in profile)",
2870
+ "description": "Workspace ID (uses profile workspace if not provided)",
2486
2871
  "name": "workspace",
2487
2872
  "required": false,
2488
2873
  "hasDynamicHelp": false,
@@ -2492,7 +2877,7 @@
2492
2877
  },
2493
2878
  "hasDynamicHelp": false,
2494
2879
  "hiddenAliases": [],
2495
- "id": "static_host:list",
2880
+ "id": "tenant:deploy_platform",
2496
2881
  "pluginAlias": "@xano/cli",
2497
2882
  "pluginName": "@xano/cli",
2498
2883
  "pluginType": "core",
@@ -2502,8 +2887,8 @@
2502
2887
  "relativePath": [
2503
2888
  "dist",
2504
2889
  "commands",
2505
- "static_host",
2506
- "list",
2890
+ "tenant",
2891
+ "deploy_platform",
2507
2892
  "index.js"
2508
2893
  ]
2509
2894
  },
@@ -2731,19 +3116,19 @@
2731
3116
  "index.js"
2732
3117
  ]
2733
3118
  },
2734
- "tenant:deploy_platform": {
3119
+ "tenant:edit": {
2735
3120
  "aliases": [],
2736
3121
  "args": {
2737
3122
  "tenant_name": {
2738
- "description": "Tenant name to deploy to",
3123
+ "description": "Tenant name to edit",
2739
3124
  "name": "tenant_name",
2740
3125
  "required": true
2741
3126
  }
2742
3127
  },
2743
- "description": "Deploy a platform version to a tenant",
3128
+ "description": "Edit an existing tenant",
2744
3129
  "examples": [
2745
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
2746
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json"
3130
+ "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
3131
+ "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
2747
3132
  ],
2748
3133
  "flags": {
2749
3134
  "profile": {
@@ -2765,87 +3150,36 @@
2765
3150
  "allowNo": false,
2766
3151
  "type": "boolean"
2767
3152
  },
2768
- "output": {
2769
- "char": "o",
2770
- "description": "Output format",
2771
- "name": "output",
3153
+ "description": {
3154
+ "char": "d",
3155
+ "description": "New description",
3156
+ "name": "description",
2772
3157
  "required": false,
2773
- "default": "summary",
2774
- "hasDynamicHelp": false,
2775
- "multiple": false,
2776
- "options": [
2777
- "summary",
2778
- "json"
2779
- ],
2780
- "type": "option"
2781
- },
2782
- "platform_id": {
2783
- "description": "Platform ID to deploy",
2784
- "name": "platform_id",
2785
- "required": true,
2786
3158
  "hasDynamicHelp": false,
2787
3159
  "multiple": false,
2788
3160
  "type": "option"
2789
3161
  },
2790
- "workspace": {
2791
- "char": "w",
2792
- "description": "Workspace ID (uses profile workspace if not provided)",
2793
- "name": "workspace",
3162
+ "display": {
3163
+ "description": "New display name",
3164
+ "name": "display",
2794
3165
  "required": false,
2795
3166
  "hasDynamicHelp": false,
2796
3167
  "multiple": false,
2797
3168
  "type": "option"
2798
- }
2799
- },
2800
- "hasDynamicHelp": false,
2801
- "hiddenAliases": [],
2802
- "id": "tenant:deploy_platform",
2803
- "pluginAlias": "@xano/cli",
2804
- "pluginName": "@xano/cli",
2805
- "pluginType": "core",
2806
- "strict": true,
2807
- "enableJsonFlag": false,
2808
- "isESM": true,
2809
- "relativePath": [
2810
- "dist",
2811
- "commands",
2812
- "tenant",
2813
- "deploy_platform",
2814
- "index.js"
2815
- ]
2816
- },
2817
- "tenant:deploy_release": {
2818
- "aliases": [],
2819
- "args": {
2820
- "tenant_name": {
2821
- "description": "Tenant name to deploy to",
2822
- "name": "tenant_name",
2823
- "required": true
2824
- }
2825
- },
2826
- "description": "Deploy a release to a tenant",
2827
- "examples": [
2828
- "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0\nDeployed release \"v1.0\" to tenant: My Tenant (my-tenant)\n",
2829
- "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0 -o json"
2830
- ],
2831
- "flags": {
2832
- "profile": {
2833
- "char": "p",
2834
- "description": "Profile to use (uses default profile if not specified)",
2835
- "env": "XANO_PROFILE",
2836
- "name": "profile",
3169
+ },
3170
+ "domain": {
3171
+ "description": "Custom domain",
3172
+ "name": "domain",
2837
3173
  "required": false,
2838
3174
  "hasDynamicHelp": false,
2839
3175
  "multiple": false,
2840
3176
  "type": "option"
2841
3177
  },
2842
- "verbose": {
2843
- "char": "v",
2844
- "description": "Show detailed request/response information",
2845
- "env": "XANO_VERBOSE",
2846
- "name": "verbose",
3178
+ "ingress": {
3179
+ "description": "Enable/disable ingress",
3180
+ "name": "ingress",
2847
3181
  "required": false,
2848
- "allowNo": false,
3182
+ "allowNo": true,
2849
3183
  "type": "boolean"
2850
3184
  },
2851
3185
  "output": {
@@ -2862,15 +3196,28 @@
2862
3196
  ],
2863
3197
  "type": "option"
2864
3198
  },
2865
- "release": {
2866
- "char": "r",
2867
- "description": "Release name to deploy",
2868
- "name": "release",
2869
- "required": true,
3199
+ "proxy": {
3200
+ "description": "Proxy URL",
3201
+ "name": "proxy",
3202
+ "required": false,
2870
3203
  "hasDynamicHelp": false,
2871
3204
  "multiple": false,
2872
3205
  "type": "option"
2873
3206
  },
3207
+ "rbac": {
3208
+ "description": "Enable/disable RBAC",
3209
+ "name": "rbac",
3210
+ "required": false,
3211
+ "allowNo": true,
3212
+ "type": "boolean"
3213
+ },
3214
+ "tasks": {
3215
+ "description": "Enable/disable background tasks",
3216
+ "name": "tasks",
3217
+ "required": false,
3218
+ "allowNo": true,
3219
+ "type": "boolean"
3220
+ },
2874
3221
  "workspace": {
2875
3222
  "char": "w",
2876
3223
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2883,7 +3230,7 @@
2883
3230
  },
2884
3231
  "hasDynamicHelp": false,
2885
3232
  "hiddenAliases": [],
2886
- "id": "tenant:deploy_release",
3233
+ "id": "tenant:edit",
2887
3234
  "pluginAlias": "@xano/cli",
2888
3235
  "pluginName": "@xano/cli",
2889
3236
  "pluginType": "core",
@@ -2894,23 +3241,23 @@
2894
3241
  "dist",
2895
3242
  "commands",
2896
3243
  "tenant",
2897
- "deploy_release",
3244
+ "edit",
2898
3245
  "index.js"
2899
3246
  ]
2900
3247
  },
2901
- "tenant:edit": {
3248
+ "tenant:deploy_release": {
2902
3249
  "aliases": [],
2903
3250
  "args": {
2904
3251
  "tenant_name": {
2905
- "description": "Tenant name to edit",
3252
+ "description": "Tenant name to deploy to",
2906
3253
  "name": "tenant_name",
2907
3254
  "required": true
2908
3255
  }
2909
3256
  },
2910
- "description": "Edit an existing tenant",
3257
+ "description": "Deploy a release to a tenant",
2911
3258
  "examples": [
2912
- "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
2913
- "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
3259
+ "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0\nDeployed release \"v1.0\" to tenant: My Tenant (my-tenant)\n",
3260
+ "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0 -o json"
2914
3261
  ],
2915
3262
  "flags": {
2916
3263
  "profile": {
@@ -2932,38 +3279,6 @@
2932
3279
  "allowNo": false,
2933
3280
  "type": "boolean"
2934
3281
  },
2935
- "description": {
2936
- "char": "d",
2937
- "description": "New description",
2938
- "name": "description",
2939
- "required": false,
2940
- "hasDynamicHelp": false,
2941
- "multiple": false,
2942
- "type": "option"
2943
- },
2944
- "display": {
2945
- "description": "New display name",
2946
- "name": "display",
2947
- "required": false,
2948
- "hasDynamicHelp": false,
2949
- "multiple": false,
2950
- "type": "option"
2951
- },
2952
- "domain": {
2953
- "description": "Custom domain",
2954
- "name": "domain",
2955
- "required": false,
2956
- "hasDynamicHelp": false,
2957
- "multiple": false,
2958
- "type": "option"
2959
- },
2960
- "ingress": {
2961
- "description": "Enable/disable ingress",
2962
- "name": "ingress",
2963
- "required": false,
2964
- "allowNo": true,
2965
- "type": "boolean"
2966
- },
2967
3282
  "output": {
2968
3283
  "char": "o",
2969
3284
  "description": "Output format",
@@ -2973,32 +3288,19 @@
2973
3288
  "hasDynamicHelp": false,
2974
3289
  "multiple": false,
2975
3290
  "options": [
2976
- "summary",
2977
- "json"
2978
- ],
2979
- "type": "option"
2980
- },
2981
- "proxy": {
2982
- "description": "Proxy URL",
2983
- "name": "proxy",
2984
- "required": false,
2985
- "hasDynamicHelp": false,
2986
- "multiple": false,
2987
- "type": "option"
2988
- },
2989
- "rbac": {
2990
- "description": "Enable/disable RBAC",
2991
- "name": "rbac",
2992
- "required": false,
2993
- "allowNo": true,
2994
- "type": "boolean"
2995
- },
2996
- "tasks": {
2997
- "description": "Enable/disable background tasks",
2998
- "name": "tasks",
2999
- "required": false,
3000
- "allowNo": true,
3001
- "type": "boolean"
3291
+ "summary",
3292
+ "json"
3293
+ ],
3294
+ "type": "option"
3295
+ },
3296
+ "release": {
3297
+ "char": "r",
3298
+ "description": "Release name to deploy",
3299
+ "name": "release",
3300
+ "required": true,
3301
+ "hasDynamicHelp": false,
3302
+ "multiple": false,
3303
+ "type": "option"
3002
3304
  },
3003
3305
  "workspace": {
3004
3306
  "char": "w",
@@ -3012,7 +3314,7 @@
3012
3314
  },
3013
3315
  "hasDynamicHelp": false,
3014
3316
  "hiddenAliases": [],
3015
- "id": "tenant:edit",
3317
+ "id": "tenant:deploy_release",
3016
3318
  "pluginAlias": "@xano/cli",
3017
3319
  "pluginName": "@xano/cli",
3018
3320
  "pluginType": "core",
@@ -3023,7 +3325,7 @@
3023
3325
  "dist",
3024
3326
  "commands",
3025
3327
  "tenant",
3026
- "edit",
3328
+ "deploy_release",
3027
3329
  "index.js"
3028
3330
  ]
3029
3331
  },
@@ -3442,111 +3744,20 @@
3442
3744
  "index.js"
3443
3745
  ]
3444
3746
  },
3445
- "unit_test:list": {
3446
- "aliases": [],
3447
- "args": {},
3448
- "description": "List all unit tests in a workspace",
3449
- "examples": [
3450
- "$ xano unit-test list\nUnit tests in workspace 5:\n - my-test (ID: abc-123) [function: math]\n - auth-check (ID: def-456) [query: /user/login]\n",
3451
- "$ xano unit-test list -w 5 --output json",
3452
- "$ xano unit-test list --obj-type function"
3453
- ],
3454
- "flags": {
3455
- "profile": {
3456
- "char": "p",
3457
- "description": "Profile to use (uses default profile if not specified)",
3458
- "env": "XANO_PROFILE",
3459
- "name": "profile",
3460
- "required": false,
3461
- "hasDynamicHelp": false,
3462
- "multiple": false,
3463
- "type": "option"
3464
- },
3465
- "verbose": {
3466
- "char": "v",
3467
- "description": "Show detailed request/response information",
3468
- "env": "XANO_VERBOSE",
3469
- "name": "verbose",
3470
- "required": false,
3471
- "allowNo": false,
3472
- "type": "boolean"
3473
- },
3474
- "branch": {
3475
- "char": "b",
3476
- "description": "Filter by branch name",
3477
- "name": "branch",
3478
- "required": false,
3479
- "hasDynamicHelp": false,
3480
- "multiple": false,
3481
- "type": "option"
3482
- },
3483
- "obj-type": {
3484
- "description": "Filter by object type",
3485
- "name": "obj-type",
3486
- "required": false,
3487
- "hasDynamicHelp": false,
3488
- "multiple": false,
3489
- "options": [
3490
- "function",
3491
- "query",
3492
- "middleware"
3493
- ],
3494
- "type": "option"
3495
- },
3496
- "output": {
3497
- "char": "o",
3498
- "description": "Output format",
3499
- "name": "output",
3500
- "required": false,
3501
- "default": "summary",
3502
- "hasDynamicHelp": false,
3503
- "multiple": false,
3504
- "options": [
3505
- "summary",
3506
- "json"
3507
- ],
3508
- "type": "option"
3509
- },
3510
- "workspace": {
3511
- "char": "w",
3512
- "description": "Workspace ID (uses profile workspace if not provided)",
3513
- "name": "workspace",
3514
- "required": false,
3515
- "hasDynamicHelp": false,
3516
- "multiple": false,
3517
- "type": "option"
3518
- }
3519
- },
3520
- "hasDynamicHelp": false,
3521
- "hiddenAliases": [],
3522
- "id": "unit_test:list",
3523
- "pluginAlias": "@xano/cli",
3524
- "pluginName": "@xano/cli",
3525
- "pluginType": "core",
3526
- "strict": true,
3527
- "enableJsonFlag": false,
3528
- "isESM": true,
3529
- "relativePath": [
3530
- "dist",
3531
- "commands",
3532
- "unit_test",
3533
- "list",
3534
- "index.js"
3535
- ]
3536
- },
3537
- "unit_test:run": {
3747
+ "workflow_test:get": {
3538
3748
  "aliases": [],
3539
3749
  "args": {
3540
- "unit_test_id": {
3541
- "description": "ID of the unit test to run",
3542
- "name": "unit_test_id",
3750
+ "workflow_test_id": {
3751
+ "description": "ID of the workflow test",
3752
+ "name": "workflow_test_id",
3543
3753
  "required": true
3544
3754
  }
3545
3755
  },
3546
- "description": "Run a unit test",
3756
+ "description": "Get a specific workflow test",
3547
3757
  "examples": [
3548
- "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
3549
- "$ xano unit-test run abc-123 -o json"
3758
+ "$ xano workflow-test get 1\nWorkflow Test: my-test (ID: 1)\n Description: Validates auth endpoints\n Branch: main\n",
3759
+ "$ xano workflow-test get 1 -o xs",
3760
+ "$ xano workflow-test get 1 -o json"
3550
3761
  ],
3551
3762
  "flags": {
3552
3763
  "profile": {
@@ -3568,97 +3779,13 @@
3568
3779
  "allowNo": false,
3569
3780
  "type": "boolean"
3570
3781
  },
3571
- "output": {
3572
- "char": "o",
3573
- "description": "Output format",
3574
- "name": "output",
3575
- "required": false,
3576
- "default": "summary",
3577
- "hasDynamicHelp": false,
3578
- "multiple": false,
3579
- "options": [
3580
- "summary",
3581
- "json"
3582
- ],
3583
- "type": "option"
3584
- },
3585
- "workspace": {
3586
- "char": "w",
3587
- "description": "Workspace ID (uses profile workspace if not provided)",
3588
- "name": "workspace",
3589
- "required": false,
3590
- "hasDynamicHelp": false,
3591
- "multiple": false,
3592
- "type": "option"
3593
- }
3594
- },
3595
- "hasDynamicHelp": false,
3596
- "hiddenAliases": [],
3597
- "id": "unit_test:run",
3598
- "pluginAlias": "@xano/cli",
3599
- "pluginName": "@xano/cli",
3600
- "pluginType": "core",
3601
- "strict": true,
3602
- "enableJsonFlag": false,
3603
- "isESM": true,
3604
- "relativePath": [
3605
- "dist",
3606
- "commands",
3607
- "unit_test",
3608
- "run",
3609
- "index.js"
3610
- ]
3611
- },
3612
- "unit_test:run_all": {
3613
- "aliases": [],
3614
- "args": {},
3615
- "description": "Run all unit tests in a workspace",
3616
- "examples": [
3617
- "$ xano unit-test run-all\nRunning 5 unit tests...\n\nPASS my-test [function: math]\nPASS auth-check [query: /user/login]\nFAIL data-validation [function: validate]\n Error: assertion failed\n\nResults: 2 passed, 1 failed\n",
3618
- "$ xano unit-test run-all --obj-type function -o json"
3619
- ],
3620
- "flags": {
3621
- "profile": {
3622
- "char": "p",
3623
- "description": "Profile to use (uses default profile if not specified)",
3624
- "env": "XANO_PROFILE",
3625
- "name": "profile",
3626
- "required": false,
3627
- "hasDynamicHelp": false,
3628
- "multiple": false,
3629
- "type": "option"
3630
- },
3631
- "verbose": {
3632
- "char": "v",
3633
- "description": "Show detailed request/response information",
3634
- "env": "XANO_VERBOSE",
3635
- "name": "verbose",
3782
+ "include-draft": {
3783
+ "description": "Include draft version",
3784
+ "name": "include-draft",
3636
3785
  "required": false,
3637
3786
  "allowNo": false,
3638
3787
  "type": "boolean"
3639
3788
  },
3640
- "branch": {
3641
- "char": "b",
3642
- "description": "Filter by branch name",
3643
- "name": "branch",
3644
- "required": false,
3645
- "hasDynamicHelp": false,
3646
- "multiple": false,
3647
- "type": "option"
3648
- },
3649
- "obj-type": {
3650
- "description": "Filter by object type",
3651
- "name": "obj-type",
3652
- "required": false,
3653
- "hasDynamicHelp": false,
3654
- "multiple": false,
3655
- "options": [
3656
- "function",
3657
- "query",
3658
- "middleware"
3659
- ],
3660
- "type": "option"
3661
- },
3662
3789
  "output": {
3663
3790
  "char": "o",
3664
3791
  "description": "Output format",
@@ -3669,7 +3796,8 @@
3669
3796
  "multiple": false,
3670
3797
  "options": [
3671
3798
  "summary",
3672
- "json"
3799
+ "json",
3800
+ "xs"
3673
3801
  ],
3674
3802
  "type": "option"
3675
3803
  },
@@ -3685,7 +3813,7 @@
3685
3813
  },
3686
3814
  "hasDynamicHelp": false,
3687
3815
  "hiddenAliases": [],
3688
- "id": "unit_test:run_all",
3816
+ "id": "workflow_test:get",
3689
3817
  "pluginAlias": "@xano/cli",
3690
3818
  "pluginName": "@xano/cli",
3691
3819
  "pluginType": "core",
@@ -3695,8 +3823,8 @@
3695
3823
  "relativePath": [
3696
3824
  "dist",
3697
3825
  "commands",
3698
- "unit_test",
3699
- "run_all",
3826
+ "workflow_test",
3827
+ "get",
3700
3828
  "index.js"
3701
3829
  ]
3702
3830
  },
@@ -3783,20 +3911,14 @@
3783
3911
  "index.js"
3784
3912
  ]
3785
3913
  },
3786
- "workflow_test:get": {
3914
+ "workflow_test:list": {
3787
3915
  "aliases": [],
3788
- "args": {
3789
- "workflow_test_id": {
3790
- "description": "ID of the workflow test",
3791
- "name": "workflow_test_id",
3792
- "required": true
3793
- }
3794
- },
3795
- "description": "Get a specific workflow test",
3916
+ "args": {},
3917
+ "description": "List all workflow tests in a workspace",
3796
3918
  "examples": [
3797
- "$ xano workflow-test get 1\nWorkflow Test: my-test (ID: 1)\n Description: Validates auth endpoints\n Branch: main\n",
3798
- "$ xano workflow-test get 1 -o xs",
3799
- "$ xano workflow-test get 1 -o json"
3919
+ "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
3920
+ "$ xano workflow-test list -w 5 --output json",
3921
+ "$ xano workflow-test list --branch main"
3800
3922
  ],
3801
3923
  "flags": {
3802
3924
  "profile": {
@@ -3818,12 +3940,14 @@
3818
3940
  "allowNo": false,
3819
3941
  "type": "boolean"
3820
3942
  },
3821
- "include-draft": {
3822
- "description": "Include draft version",
3823
- "name": "include-draft",
3943
+ "branch": {
3944
+ "char": "b",
3945
+ "description": "Filter by branch name",
3946
+ "name": "branch",
3824
3947
  "required": false,
3825
- "allowNo": false,
3826
- "type": "boolean"
3948
+ "hasDynamicHelp": false,
3949
+ "multiple": false,
3950
+ "type": "option"
3827
3951
  },
3828
3952
  "output": {
3829
3953
  "char": "o",
@@ -3835,8 +3959,7 @@
3835
3959
  "multiple": false,
3836
3960
  "options": [
3837
3961
  "summary",
3838
- "json",
3839
- "xs"
3962
+ "json"
3840
3963
  ],
3841
3964
  "type": "option"
3842
3965
  },
@@ -3852,7 +3975,7 @@
3852
3975
  },
3853
3976
  "hasDynamicHelp": false,
3854
3977
  "hiddenAliases": [],
3855
- "id": "workflow_test:get",
3978
+ "id": "workflow_test:list",
3856
3979
  "pluginAlias": "@xano/cli",
3857
3980
  "pluginName": "@xano/cli",
3858
3981
  "pluginType": "core",
@@ -3863,18 +3986,24 @@
3863
3986
  "dist",
3864
3987
  "commands",
3865
3988
  "workflow_test",
3866
- "get",
3989
+ "list",
3867
3990
  "index.js"
3868
3991
  ]
3869
3992
  },
3870
- "workflow_test:list": {
3993
+ "workspace:create": {
3871
3994
  "aliases": [],
3872
- "args": {},
3873
- "description": "List all workflow tests in a workspace",
3995
+ "args": {
3996
+ "name": {
3997
+ "description": "Name of the workspace",
3998
+ "name": "name",
3999
+ "required": true
4000
+ }
4001
+ },
4002
+ "description": "Create a new workspace via the Xano Metadata API",
3874
4003
  "examples": [
3875
- "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
3876
- "$ xano workflow-test list -w 5 --output json",
3877
- "$ xano workflow-test list --branch main"
4004
+ "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
4005
+ "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
4006
+ "$ 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"
3878
4007
  ],
3879
4008
  "flags": {
3880
4009
  "profile": {
@@ -3896,10 +4025,10 @@
3896
4025
  "allowNo": false,
3897
4026
  "type": "boolean"
3898
4027
  },
3899
- "branch": {
3900
- "char": "b",
3901
- "description": "Filter by branch name",
3902
- "name": "branch",
4028
+ "description": {
4029
+ "char": "d",
4030
+ "description": "Description for the workspace",
4031
+ "name": "description",
3903
4032
  "required": false,
3904
4033
  "hasDynamicHelp": false,
3905
4034
  "multiple": false,
@@ -3918,20 +4047,11 @@
3918
4047
  "json"
3919
4048
  ],
3920
4049
  "type": "option"
3921
- },
3922
- "workspace": {
3923
- "char": "w",
3924
- "description": "Workspace ID (uses profile workspace if not provided)",
3925
- "name": "workspace",
3926
- "required": false,
3927
- "hasDynamicHelp": false,
3928
- "multiple": false,
3929
- "type": "option"
3930
4050
  }
3931
4051
  },
3932
4052
  "hasDynamicHelp": false,
3933
4053
  "hiddenAliases": [],
3934
- "id": "workflow_test:list",
4054
+ "id": "workspace:create",
3935
4055
  "pluginAlias": "@xano/cli",
3936
4056
  "pluginName": "@xano/cli",
3937
4057
  "pluginType": "core",
@@ -3941,8 +4061,8 @@
3941
4061
  "relativePath": [
3942
4062
  "dist",
3943
4063
  "commands",
3944
- "workflow_test",
3945
- "list",
4064
+ "workspace",
4065
+ "create",
3946
4066
  "index.js"
3947
4067
  ]
3948
4068
  },
@@ -4099,20 +4219,21 @@
4099
4219
  "index.js"
4100
4220
  ]
4101
4221
  },
4102
- "workspace:create": {
4222
+ "workspace:edit": {
4103
4223
  "aliases": [],
4104
4224
  "args": {
4105
- "name": {
4106
- "description": "Name of the workspace",
4107
- "name": "name",
4108
- "required": true
4225
+ "workspace_id": {
4226
+ "description": "Workspace ID to edit (uses profile workspace if not provided)",
4227
+ "name": "workspace_id",
4228
+ "required": false
4109
4229
  }
4110
4230
  },
4111
- "description": "Create a new workspace via the Xano Metadata API",
4231
+ "description": "Edit an existing workspace via the Xano Metadata API",
4112
4232
  "examples": [
4113
- "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
4114
- "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
4115
- "$ 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"
4233
+ "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
4234
+ "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
4235
+ "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
4236
+ "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
4116
4237
  ],
4117
4238
  "flags": {
4118
4239
  "profile": {
@@ -4136,13 +4257,22 @@
4136
4257
  },
4137
4258
  "description": {
4138
4259
  "char": "d",
4139
- "description": "Description for the workspace",
4260
+ "description": "New description for the workspace",
4140
4261
  "name": "description",
4141
4262
  "required": false,
4142
4263
  "hasDynamicHelp": false,
4143
4264
  "multiple": false,
4144
4265
  "type": "option"
4145
4266
  },
4267
+ "name": {
4268
+ "char": "n",
4269
+ "description": "New name for the workspace",
4270
+ "name": "name",
4271
+ "required": false,
4272
+ "hasDynamicHelp": false,
4273
+ "multiple": false,
4274
+ "type": "option"
4275
+ },
4146
4276
  "output": {
4147
4277
  "char": "o",
4148
4278
  "description": "Output format",
@@ -4156,11 +4286,25 @@
4156
4286
  "json"
4157
4287
  ],
4158
4288
  "type": "option"
4289
+ },
4290
+ "require-token": {
4291
+ "description": "Whether to require a token for documentation access",
4292
+ "name": "require-token",
4293
+ "required": false,
4294
+ "allowNo": true,
4295
+ "type": "boolean"
4296
+ },
4297
+ "swagger": {
4298
+ "description": "Enable or disable swagger documentation",
4299
+ "name": "swagger",
4300
+ "required": false,
4301
+ "allowNo": true,
4302
+ "type": "boolean"
4159
4303
  }
4160
4304
  },
4161
4305
  "hasDynamicHelp": false,
4162
4306
  "hiddenAliases": [],
4163
- "id": "workspace:create",
4307
+ "id": "workspace:edit",
4164
4308
  "pluginAlias": "@xano/cli",
4165
4309
  "pluginName": "@xano/cli",
4166
4310
  "pluginType": "core",
@@ -4171,7 +4315,7 @@
4171
4315
  "dist",
4172
4316
  "commands",
4173
4317
  "workspace",
4174
- "create",
4318
+ "edit",
4175
4319
  "index.js"
4176
4320
  ]
4177
4321
  },
@@ -4317,106 +4461,6 @@
4317
4461
  "index.js"
4318
4462
  ]
4319
4463
  },
4320
- "workspace:edit": {
4321
- "aliases": [],
4322
- "args": {
4323
- "workspace_id": {
4324
- "description": "Workspace ID to edit (uses profile workspace if not provided)",
4325
- "name": "workspace_id",
4326
- "required": false
4327
- }
4328
- },
4329
- "description": "Edit an existing workspace via the Xano Metadata API",
4330
- "examples": [
4331
- "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
4332
- "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
4333
- "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
4334
- "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
4335
- ],
4336
- "flags": {
4337
- "profile": {
4338
- "char": "p",
4339
- "description": "Profile to use (uses default profile if not specified)",
4340
- "env": "XANO_PROFILE",
4341
- "name": "profile",
4342
- "required": false,
4343
- "hasDynamicHelp": false,
4344
- "multiple": false,
4345
- "type": "option"
4346
- },
4347
- "verbose": {
4348
- "char": "v",
4349
- "description": "Show detailed request/response information",
4350
- "env": "XANO_VERBOSE",
4351
- "name": "verbose",
4352
- "required": false,
4353
- "allowNo": false,
4354
- "type": "boolean"
4355
- },
4356
- "description": {
4357
- "char": "d",
4358
- "description": "New description for the workspace",
4359
- "name": "description",
4360
- "required": false,
4361
- "hasDynamicHelp": false,
4362
- "multiple": false,
4363
- "type": "option"
4364
- },
4365
- "name": {
4366
- "char": "n",
4367
- "description": "New name for the workspace",
4368
- "name": "name",
4369
- "required": false,
4370
- "hasDynamicHelp": false,
4371
- "multiple": false,
4372
- "type": "option"
4373
- },
4374
- "output": {
4375
- "char": "o",
4376
- "description": "Output format",
4377
- "name": "output",
4378
- "required": false,
4379
- "default": "summary",
4380
- "hasDynamicHelp": false,
4381
- "multiple": false,
4382
- "options": [
4383
- "summary",
4384
- "json"
4385
- ],
4386
- "type": "option"
4387
- },
4388
- "require-token": {
4389
- "description": "Whether to require a token for documentation access",
4390
- "name": "require-token",
4391
- "required": false,
4392
- "allowNo": true,
4393
- "type": "boolean"
4394
- },
4395
- "swagger": {
4396
- "description": "Enable or disable swagger documentation",
4397
- "name": "swagger",
4398
- "required": false,
4399
- "allowNo": true,
4400
- "type": "boolean"
4401
- }
4402
- },
4403
- "hasDynamicHelp": false,
4404
- "hiddenAliases": [],
4405
- "id": "workspace:edit",
4406
- "pluginAlias": "@xano/cli",
4407
- "pluginName": "@xano/cli",
4408
- "pluginType": "core",
4409
- "strict": true,
4410
- "enableJsonFlag": false,
4411
- "isESM": true,
4412
- "relativePath": [
4413
- "dist",
4414
- "commands",
4415
- "workspace",
4416
- "edit",
4417
- "index.js"
4418
- ]
4419
- },
4420
4464
  "workspace:list": {
4421
4465
  "aliases": [],
4422
4466
  "args": {},
@@ -4798,26 +4842,21 @@
4798
4842
  "index.js"
4799
4843
  ]
4800
4844
  },
4801
- "static_host:build:get": {
4845
+ "static_host:build:list": {
4802
4846
  "aliases": [],
4803
4847
  "args": {
4804
- "build_id": {
4805
- "description": "Build ID",
4806
- "name": "build_id",
4807
- "required": true
4808
- },
4809
4848
  "static_host": {
4810
4849
  "description": "Static Host name",
4811
4850
  "name": "static_host",
4812
4851
  "required": true
4813
4852
  }
4814
4853
  },
4815
- "description": "Get details of a specific build for a static host",
4854
+ "description": "List all builds for a static host",
4816
4855
  "examples": [
4817
- "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
4818
- "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
4819
- "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
4820
- "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
4856
+ "$ xano static_host:build:list default -w 40\nAvailable builds:\n - v1.0.0 (ID: 1) - Status: completed\n - v1.0.1 (ID: 2) - Status: pending\n",
4857
+ "$ xano static_host:build:list myhost --profile production\nAvailable builds:\n - production (ID: 1) - Status: completed\n - staging (ID: 2) - Status: completed\n",
4858
+ "$ xano static_host:build:list default -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n }\n]\n",
4859
+ "$ xano static_host:build:list default -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"v1.0.2\"\n }\n]\n"
4821
4860
  ],
4822
4861
  "flags": {
4823
4862
  "profile": {
@@ -4853,6 +4892,24 @@
4853
4892
  ],
4854
4893
  "type": "option"
4855
4894
  },
4895
+ "page": {
4896
+ "description": "Page number for pagination",
4897
+ "name": "page",
4898
+ "required": false,
4899
+ "default": 1,
4900
+ "hasDynamicHelp": false,
4901
+ "multiple": false,
4902
+ "type": "option"
4903
+ },
4904
+ "per_page": {
4905
+ "description": "Number of results per page",
4906
+ "name": "per_page",
4907
+ "required": false,
4908
+ "default": 50,
4909
+ "hasDynamicHelp": false,
4910
+ "multiple": false,
4911
+ "type": "option"
4912
+ },
4856
4913
  "workspace": {
4857
4914
  "char": "w",
4858
4915
  "description": "Workspace ID (optional if set in profile)",
@@ -4865,7 +4922,7 @@
4865
4922
  },
4866
4923
  "hasDynamicHelp": false,
4867
4924
  "hiddenAliases": [],
4868
- "id": "static_host:build:get",
4925
+ "id": "static_host:build:list",
4869
4926
  "pluginAlias": "@xano/cli",
4870
4927
  "pluginName": "@xano/cli",
4871
4928
  "pluginType": "core",
@@ -4877,25 +4934,23 @@
4877
4934
  "commands",
4878
4935
  "static_host",
4879
4936
  "build",
4880
- "get",
4937
+ "list",
4881
4938
  "index.js"
4882
4939
  ]
4883
4940
  },
4884
- "static_host:build:list": {
4941
+ "tenant:backup:create": {
4885
4942
  "aliases": [],
4886
4943
  "args": {
4887
- "static_host": {
4888
- "description": "Static Host name",
4889
- "name": "static_host",
4944
+ "tenant_name": {
4945
+ "description": "Tenant name to back up",
4946
+ "name": "tenant_name",
4890
4947
  "required": true
4891
4948
  }
4892
4949
  },
4893
- "description": "List all builds for a static host",
4950
+ "description": "Create a backup for a tenant",
4894
4951
  "examples": [
4895
- "$ xano static_host:build:list default -w 40\nAvailable builds:\n - v1.0.0 (ID: 1) - Status: completed\n - v1.0.1 (ID: 2) - Status: pending\n",
4896
- "$ xano static_host:build:list myhost --profile production\nAvailable builds:\n - production (ID: 1) - Status: completed\n - staging (ID: 2) - Status: completed\n",
4897
- "$ xano static_host:build:list default -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n }\n]\n",
4898
- "$ xano static_host:build:list default -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"v1.0.2\"\n }\n]\n"
4952
+ "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
4953
+ "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
4899
4954
  ],
4900
4955
  "flags": {
4901
4956
  "profile": {
@@ -4917,6 +4972,16 @@
4917
4972
  "allowNo": false,
4918
4973
  "type": "boolean"
4919
4974
  },
4975
+ "description": {
4976
+ "char": "d",
4977
+ "description": "Backup description",
4978
+ "name": "description",
4979
+ "required": false,
4980
+ "default": "",
4981
+ "hasDynamicHelp": false,
4982
+ "multiple": false,
4983
+ "type": "option"
4984
+ },
4920
4985
  "output": {
4921
4986
  "char": "o",
4922
4987
  "description": "Output format",
@@ -4931,27 +4996,9 @@
4931
4996
  ],
4932
4997
  "type": "option"
4933
4998
  },
4934
- "page": {
4935
- "description": "Page number for pagination",
4936
- "name": "page",
4937
- "required": false,
4938
- "default": 1,
4939
- "hasDynamicHelp": false,
4940
- "multiple": false,
4941
- "type": "option"
4942
- },
4943
- "per_page": {
4944
- "description": "Number of results per page",
4945
- "name": "per_page",
4946
- "required": false,
4947
- "default": 50,
4948
- "hasDynamicHelp": false,
4949
- "multiple": false,
4950
- "type": "option"
4951
- },
4952
4999
  "workspace": {
4953
5000
  "char": "w",
4954
- "description": "Workspace ID (optional if set in profile)",
5001
+ "description": "Workspace ID (uses profile workspace if not provided)",
4955
5002
  "name": "workspace",
4956
5003
  "required": false,
4957
5004
  "hasDynamicHelp": false,
@@ -4961,7 +5008,7 @@
4961
5008
  },
4962
5009
  "hasDynamicHelp": false,
4963
5010
  "hiddenAliases": [],
4964
- "id": "static_host:build:list",
5011
+ "id": "tenant:backup:create",
4965
5012
  "pluginAlias": "@xano/cli",
4966
5013
  "pluginName": "@xano/cli",
4967
5014
  "pluginType": "core",
@@ -4971,9 +5018,9 @@
4971
5018
  "relativePath": [
4972
5019
  "dist",
4973
5020
  "commands",
4974
- "static_host",
4975
- "build",
4976
- "list",
5021
+ "tenant",
5022
+ "backup",
5023
+ "create",
4977
5024
  "index.js"
4978
5025
  ]
4979
5026
  },
@@ -5070,19 +5117,20 @@
5070
5117
  "index.js"
5071
5118
  ]
5072
5119
  },
5073
- "tenant:backup:create": {
5120
+ "tenant:backup:export": {
5074
5121
  "aliases": [],
5075
5122
  "args": {
5076
5123
  "tenant_name": {
5077
- "description": "Tenant name to back up",
5124
+ "description": "Tenant name to export backup from",
5078
5125
  "name": "tenant_name",
5079
5126
  "required": true
5080
5127
  }
5081
5128
  },
5082
- "description": "Create a backup for a tenant",
5129
+ "description": "Export (download) a tenant backup to a local file",
5083
5130
  "examples": [
5084
- "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
5085
- "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
5131
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
5132
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
5133
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5086
5134
  ],
5087
5135
  "flags": {
5088
5136
  "profile": {
@@ -5104,20 +5152,18 @@
5104
5152
  "allowNo": false,
5105
5153
  "type": "boolean"
5106
5154
  },
5107
- "description": {
5108
- "char": "d",
5109
- "description": "Backup description",
5110
- "name": "description",
5111
- "required": false,
5112
- "default": "",
5155
+ "backup_id": {
5156
+ "description": "Backup ID to export",
5157
+ "name": "backup_id",
5158
+ "required": true,
5113
5159
  "hasDynamicHelp": false,
5114
5160
  "multiple": false,
5115
5161
  "type": "option"
5116
5162
  },
5117
- "output": {
5163
+ "format": {
5118
5164
  "char": "o",
5119
5165
  "description": "Output format",
5120
- "name": "output",
5166
+ "name": "format",
5121
5167
  "required": false,
5122
5168
  "default": "summary",
5123
5169
  "hasDynamicHelp": false,
@@ -5128,6 +5174,14 @@
5128
5174
  ],
5129
5175
  "type": "option"
5130
5176
  },
5177
+ "output": {
5178
+ "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5179
+ "name": "output",
5180
+ "required": false,
5181
+ "hasDynamicHelp": false,
5182
+ "multiple": false,
5183
+ "type": "option"
5184
+ },
5131
5185
  "workspace": {
5132
5186
  "char": "w",
5133
5187
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -5140,7 +5194,7 @@
5140
5194
  },
5141
5195
  "hasDynamicHelp": false,
5142
5196
  "hiddenAliases": [],
5143
- "id": "tenant:backup:create",
5197
+ "id": "tenant:backup:export",
5144
5198
  "pluginAlias": "@xano/cli",
5145
5199
  "pluginName": "@xano/cli",
5146
5200
  "pluginType": "core",
@@ -5152,24 +5206,23 @@
5152
5206
  "commands",
5153
5207
  "tenant",
5154
5208
  "backup",
5155
- "create",
5209
+ "export",
5156
5210
  "index.js"
5157
5211
  ]
5158
5212
  },
5159
- "tenant:backup:export": {
5213
+ "tenant:backup:import": {
5160
5214
  "aliases": [],
5161
5215
  "args": {
5162
5216
  "tenant_name": {
5163
- "description": "Tenant name to export backup from",
5217
+ "description": "Tenant name to import backup into",
5164
5218
  "name": "tenant_name",
5165
5219
  "required": true
5166
5220
  }
5167
5221
  },
5168
- "description": "Export (download) a tenant backup to a local file",
5222
+ "description": "Import a backup file into a tenant",
5169
5223
  "examples": [
5170
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
5171
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
5172
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5224
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5225
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5173
5226
  ],
5174
5227
  "flags": {
5175
5228
  "profile": {
@@ -5191,18 +5244,29 @@
5191
5244
  "allowNo": false,
5192
5245
  "type": "boolean"
5193
5246
  },
5194
- "backup_id": {
5195
- "description": "Backup ID to export",
5196
- "name": "backup_id",
5247
+ "description": {
5248
+ "char": "d",
5249
+ "description": "Backup description",
5250
+ "name": "description",
5251
+ "required": false,
5252
+ "default": "",
5253
+ "hasDynamicHelp": false,
5254
+ "multiple": false,
5255
+ "type": "option"
5256
+ },
5257
+ "file": {
5258
+ "char": "f",
5259
+ "description": "Path to the backup file (.tar.gz)",
5260
+ "name": "file",
5197
5261
  "required": true,
5198
5262
  "hasDynamicHelp": false,
5199
5263
  "multiple": false,
5200
5264
  "type": "option"
5201
5265
  },
5202
- "format": {
5266
+ "output": {
5203
5267
  "char": "o",
5204
5268
  "description": "Output format",
5205
- "name": "format",
5269
+ "name": "output",
5206
5270
  "required": false,
5207
5271
  "default": "summary",
5208
5272
  "hasDynamicHelp": false,
@@ -5213,14 +5277,6 @@
5213
5277
  ],
5214
5278
  "type": "option"
5215
5279
  },
5216
- "output": {
5217
- "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5218
- "name": "output",
5219
- "required": false,
5220
- "hasDynamicHelp": false,
5221
- "multiple": false,
5222
- "type": "option"
5223
- },
5224
5280
  "workspace": {
5225
5281
  "char": "w",
5226
5282
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -5233,7 +5289,7 @@
5233
5289
  },
5234
5290
  "hasDynamicHelp": false,
5235
5291
  "hiddenAliases": [],
5236
- "id": "tenant:backup:export",
5292
+ "id": "tenant:backup:import",
5237
5293
  "pluginAlias": "@xano/cli",
5238
5294
  "pluginName": "@xano/cli",
5239
5295
  "pluginType": "core",
@@ -5245,7 +5301,7 @@
5245
5301
  "commands",
5246
5302
  "tenant",
5247
5303
  "backup",
5248
- "export",
5304
+ "import",
5249
5305
  "index.js"
5250
5306
  ]
5251
5307
  },
@@ -5334,19 +5390,19 @@
5334
5390
  "index.js"
5335
5391
  ]
5336
5392
  },
5337
- "tenant:backup:import": {
5393
+ "tenant:backup:restore": {
5338
5394
  "aliases": [],
5339
5395
  "args": {
5340
5396
  "tenant_name": {
5341
- "description": "Tenant name to import backup into",
5397
+ "description": "Tenant name to restore",
5342
5398
  "name": "tenant_name",
5343
5399
  "required": true
5344
5400
  }
5345
5401
  },
5346
- "description": "Import a backup file into a tenant",
5402
+ "description": "Restore a tenant from a backup. This replaces the current tenant data.",
5347
5403
  "examples": [
5348
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5349
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5404
+ "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to restore tenant t1234-abcd-xyz1 from backup 10? This will replace current data. (y/N) y\nRestored tenant t1234-abcd-xyz1 from backup #10\n",
5405
+ "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
5350
5406
  ],
5351
5407
  "flags": {
5352
5408
  "profile": {
@@ -5368,24 +5424,21 @@
5368
5424
  "allowNo": false,
5369
5425
  "type": "boolean"
5370
5426
  },
5371
- "description": {
5372
- "char": "d",
5373
- "description": "Backup description",
5374
- "name": "description",
5375
- "required": false,
5376
- "default": "",
5427
+ "backup_id": {
5428
+ "description": "Backup ID to restore from",
5429
+ "name": "backup_id",
5430
+ "required": true,
5377
5431
  "hasDynamicHelp": false,
5378
5432
  "multiple": false,
5379
5433
  "type": "option"
5380
5434
  },
5381
- "file": {
5435
+ "force": {
5382
5436
  "char": "f",
5383
- "description": "Path to the backup file (.tar.gz)",
5384
- "name": "file",
5385
- "required": true,
5386
- "hasDynamicHelp": false,
5387
- "multiple": false,
5388
- "type": "option"
5437
+ "description": "Skip confirmation prompt",
5438
+ "name": "force",
5439
+ "required": false,
5440
+ "allowNo": false,
5441
+ "type": "boolean"
5389
5442
  },
5390
5443
  "output": {
5391
5444
  "char": "o",
@@ -5413,7 +5466,7 @@
5413
5466
  },
5414
5467
  "hasDynamicHelp": false,
5415
5468
  "hiddenAliases": [],
5416
- "id": "tenant:backup:import",
5469
+ "id": "tenant:backup:restore",
5417
5470
  "pluginAlias": "@xano/cli",
5418
5471
  "pluginName": "@xano/cli",
5419
5472
  "pluginType": "core",
@@ -5425,23 +5478,30 @@
5425
5478
  "commands",
5426
5479
  "tenant",
5427
5480
  "backup",
5428
- "import",
5481
+ "restore",
5429
5482
  "index.js"
5430
5483
  ]
5431
5484
  },
5432
- "tenant:backup:restore": {
5485
+ "static_host:build:get": {
5433
5486
  "aliases": [],
5434
5487
  "args": {
5435
- "tenant_name": {
5436
- "description": "Tenant name to restore",
5437
- "name": "tenant_name",
5488
+ "build_id": {
5489
+ "description": "Build ID",
5490
+ "name": "build_id",
5491
+ "required": true
5492
+ },
5493
+ "static_host": {
5494
+ "description": "Static Host name",
5495
+ "name": "static_host",
5438
5496
  "required": true
5439
5497
  }
5440
5498
  },
5441
- "description": "Restore a tenant from a backup. This replaces the current tenant data.",
5499
+ "description": "Get details of a specific build for a static host",
5442
5500
  "examples": [
5443
- "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to restore tenant t1234-abcd-xyz1 from backup 10? This will replace current data. (y/N) y\nRestored tenant t1234-abcd-xyz1 from backup #10\n",
5444
- "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
5501
+ "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
5502
+ "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
5503
+ "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
5504
+ "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
5445
5505
  ],
5446
5506
  "flags": {
5447
5507
  "profile": {
@@ -5463,13 +5523,82 @@
5463
5523
  "allowNo": false,
5464
5524
  "type": "boolean"
5465
5525
  },
5466
- "backup_id": {
5467
- "description": "Backup ID to restore from",
5468
- "name": "backup_id",
5469
- "required": true,
5526
+ "output": {
5527
+ "char": "o",
5528
+ "description": "Output format",
5529
+ "name": "output",
5530
+ "required": false,
5531
+ "default": "summary",
5532
+ "hasDynamicHelp": false,
5533
+ "multiple": false,
5534
+ "options": [
5535
+ "summary",
5536
+ "json"
5537
+ ],
5538
+ "type": "option"
5539
+ },
5540
+ "workspace": {
5541
+ "char": "w",
5542
+ "description": "Workspace ID (optional if set in profile)",
5543
+ "name": "workspace",
5544
+ "required": false,
5470
5545
  "hasDynamicHelp": false,
5471
5546
  "multiple": false,
5472
5547
  "type": "option"
5548
+ }
5549
+ },
5550
+ "hasDynamicHelp": false,
5551
+ "hiddenAliases": [],
5552
+ "id": "static_host:build:get",
5553
+ "pluginAlias": "@xano/cli",
5554
+ "pluginName": "@xano/cli",
5555
+ "pluginType": "core",
5556
+ "strict": true,
5557
+ "enableJsonFlag": false,
5558
+ "isESM": true,
5559
+ "relativePath": [
5560
+ "dist",
5561
+ "commands",
5562
+ "static_host",
5563
+ "build",
5564
+ "get",
5565
+ "index.js"
5566
+ ]
5567
+ },
5568
+ "tenant:cluster:delete": {
5569
+ "aliases": [],
5570
+ "args": {
5571
+ "cluster_id": {
5572
+ "description": "Cluster ID to delete",
5573
+ "name": "cluster_id",
5574
+ "required": true
5575
+ }
5576
+ },
5577
+ "description": "Delete a tenant cluster. This action cannot be undone.",
5578
+ "examples": [
5579
+ "$ xano tenant cluster delete 3\nAre you sure you want to delete tenant cluster 3? This action cannot be undone. (y/N) y\nTenant cluster 3 deleted successfully\n",
5580
+ "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5581
+ "$ xano tenant cluster delete 3 -f -o json"
5582
+ ],
5583
+ "flags": {
5584
+ "profile": {
5585
+ "char": "p",
5586
+ "description": "Profile to use (uses default profile if not specified)",
5587
+ "env": "XANO_PROFILE",
5588
+ "name": "profile",
5589
+ "required": false,
5590
+ "hasDynamicHelp": false,
5591
+ "multiple": false,
5592
+ "type": "option"
5593
+ },
5594
+ "verbose": {
5595
+ "char": "v",
5596
+ "description": "Show detailed request/response information",
5597
+ "env": "XANO_VERBOSE",
5598
+ "name": "verbose",
5599
+ "required": false,
5600
+ "allowNo": false,
5601
+ "type": "boolean"
5473
5602
  },
5474
5603
  "force": {
5475
5604
  "char": "f",
@@ -5490,22 +5619,13 @@
5490
5619
  "options": [
5491
5620
  "summary",
5492
5621
  "json"
5493
- ],
5494
- "type": "option"
5495
- },
5496
- "workspace": {
5497
- "char": "w",
5498
- "description": "Workspace ID (uses profile workspace if not provided)",
5499
- "name": "workspace",
5500
- "required": false,
5501
- "hasDynamicHelp": false,
5502
- "multiple": false,
5622
+ ],
5503
5623
  "type": "option"
5504
5624
  }
5505
5625
  },
5506
5626
  "hasDynamicHelp": false,
5507
5627
  "hiddenAliases": [],
5508
- "id": "tenant:backup:restore",
5628
+ "id": "tenant:cluster:delete",
5509
5629
  "pluginAlias": "@xano/cli",
5510
5630
  "pluginName": "@xano/cli",
5511
5631
  "pluginType": "core",
@@ -5516,18 +5636,24 @@
5516
5636
  "dist",
5517
5637
  "commands",
5518
5638
  "tenant",
5519
- "backup",
5520
- "restore",
5639
+ "cluster",
5640
+ "delete",
5521
5641
  "index.js"
5522
5642
  ]
5523
5643
  },
5524
- "tenant:cluster:create": {
5644
+ "tenant:cluster:edit": {
5525
5645
  "aliases": [],
5526
- "args": {},
5527
- "description": "Create a new tenant cluster",
5646
+ "args": {
5647
+ "cluster_id": {
5648
+ "description": "Cluster ID to edit",
5649
+ "name": "cluster_id",
5650
+ "required": true
5651
+ }
5652
+ },
5653
+ "description": "Update an existing tenant cluster",
5528
5654
  "examples": [
5529
- "$ xano tenant cluster create --name \"us-east-1\" --credentials_file ./kubeconfig.yaml\nCreated tenant cluster: us-east-1 (standard) - ID: 3\n",
5530
- "$ xano tenant cluster create --name \"eu-west-1\" --credentials \"...\" --type run --description \"EU run cluster\" -o json"
5655
+ "$ 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",
5656
+ "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5531
5657
  ],
5532
5658
  "flags": {
5533
5659
  "profile": {
@@ -5549,33 +5675,11 @@
5549
5675
  "allowNo": false,
5550
5676
  "type": "boolean"
5551
5677
  },
5552
- "credentials": {
5553
- "description": "Kubeconfig credentials (raw text)",
5554
- "exclusive": [
5555
- "credentials_file"
5556
- ],
5557
- "name": "credentials",
5558
- "required": false,
5559
- "hasDynamicHelp": false,
5560
- "multiple": false,
5561
- "type": "option"
5562
- },
5563
- "credentials_file": {
5564
- "description": "Path to kubeconfig credentials file",
5565
- "exclusive": [
5566
- "credentials"
5567
- ],
5568
- "name": "credentials_file",
5569
- "required": false,
5570
- "hasDynamicHelp": false,
5571
- "multiple": false,
5572
- "type": "option"
5573
- },
5574
5678
  "description": {
5575
5679
  "char": "d",
5576
5680
  "description": "Cluster description",
5577
5681
  "name": "description",
5578
- "required": false,
5682
+ "required": true,
5579
5683
  "hasDynamicHelp": false,
5580
5684
  "multiple": false,
5581
5685
  "type": "option"
@@ -5583,7 +5687,7 @@
5583
5687
  "domain": {
5584
5688
  "description": "Custom domain for the cluster",
5585
5689
  "name": "domain",
5586
- "required": false,
5690
+ "required": true,
5587
5691
  "hasDynamicHelp": false,
5588
5692
  "multiple": false,
5589
5693
  "type": "option"
@@ -5614,8 +5718,7 @@
5614
5718
  "type": {
5615
5719
  "description": "Cluster type",
5616
5720
  "name": "type",
5617
- "required": false,
5618
- "default": "standard",
5721
+ "required": true,
5619
5722
  "hasDynamicHelp": false,
5620
5723
  "multiple": false,
5621
5724
  "options": [
@@ -5627,7 +5730,7 @@
5627
5730
  },
5628
5731
  "hasDynamicHelp": false,
5629
5732
  "hiddenAliases": [],
5630
- "id": "tenant:cluster:create",
5733
+ "id": "tenant:cluster:edit",
5631
5734
  "pluginAlias": "@xano/cli",
5632
5735
  "pluginName": "@xano/cli",
5633
5736
  "pluginType": "core",
@@ -5639,7 +5742,7 @@
5639
5742
  "commands",
5640
5743
  "tenant",
5641
5744
  "cluster",
5642
- "create",
5745
+ "edit",
5643
5746
  "index.js"
5644
5747
  ]
5645
5748
  },
@@ -5710,19 +5813,13 @@
5710
5813
  "index.js"
5711
5814
  ]
5712
5815
  },
5713
- "tenant:cluster:edit": {
5816
+ "tenant:cluster:list": {
5714
5817
  "aliases": [],
5715
- "args": {
5716
- "cluster_id": {
5717
- "description": "Cluster ID to edit",
5718
- "name": "cluster_id",
5719
- "required": true
5720
- }
5721
- },
5722
- "description": "Update an existing tenant cluster",
5818
+ "args": {},
5819
+ "description": "List all tenant clusters",
5723
5820
  "examples": [
5724
- "$ 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",
5725
- "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5821
+ "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
5822
+ "$ xano tenant cluster list --output json"
5726
5823
  ],
5727
5824
  "flags": {
5728
5825
  "profile": {
@@ -5744,32 +5841,6 @@
5744
5841
  "allowNo": false,
5745
5842
  "type": "boolean"
5746
5843
  },
5747
- "description": {
5748
- "char": "d",
5749
- "description": "Cluster description",
5750
- "name": "description",
5751
- "required": true,
5752
- "hasDynamicHelp": false,
5753
- "multiple": false,
5754
- "type": "option"
5755
- },
5756
- "domain": {
5757
- "description": "Custom domain for the cluster",
5758
- "name": "domain",
5759
- "required": true,
5760
- "hasDynamicHelp": false,
5761
- "multiple": false,
5762
- "type": "option"
5763
- },
5764
- "name": {
5765
- "char": "n",
5766
- "description": "Cluster name",
5767
- "name": "name",
5768
- "required": true,
5769
- "hasDynamicHelp": false,
5770
- "multiple": false,
5771
- "type": "option"
5772
- },
5773
5844
  "output": {
5774
5845
  "char": "o",
5775
5846
  "description": "Output format",
@@ -5783,23 +5854,11 @@
5783
5854
  "json"
5784
5855
  ],
5785
5856
  "type": "option"
5786
- },
5787
- "type": {
5788
- "description": "Cluster type",
5789
- "name": "type",
5790
- "required": true,
5791
- "hasDynamicHelp": false,
5792
- "multiple": false,
5793
- "options": [
5794
- "standard",
5795
- "run"
5796
- ],
5797
- "type": "option"
5798
5857
  }
5799
5858
  },
5800
5859
  "hasDynamicHelp": false,
5801
5860
  "hiddenAliases": [],
5802
- "id": "tenant:cluster:edit",
5861
+ "id": "tenant:cluster:list",
5803
5862
  "pluginAlias": "@xano/cli",
5804
5863
  "pluginName": "@xano/cli",
5805
5864
  "pluginType": "core",
@@ -5811,24 +5870,25 @@
5811
5870
  "commands",
5812
5871
  "tenant",
5813
5872
  "cluster",
5814
- "edit",
5873
+ "list",
5815
5874
  "index.js"
5816
5875
  ]
5817
5876
  },
5818
- "tenant:cluster:delete": {
5877
+ "tenant:license:get": {
5819
5878
  "aliases": [],
5820
5879
  "args": {
5821
- "cluster_id": {
5822
- "description": "Cluster ID to delete",
5823
- "name": "cluster_id",
5880
+ "tenant_name": {
5881
+ "description": "Tenant name",
5882
+ "name": "tenant_name",
5824
5883
  "required": true
5825
5884
  }
5826
5885
  },
5827
- "description": "Delete a tenant cluster. This action cannot be undone.",
5886
+ "description": "Get the license for a tenant",
5828
5887
  "examples": [
5829
- "$ xano tenant cluster delete 3\nAre you sure you want to delete tenant cluster 3? This action cannot be undone. (y/N) y\nTenant cluster 3 deleted successfully\n",
5830
- "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5831
- "$ xano tenant cluster delete 3 -f -o json"
5888
+ "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
5889
+ "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
5890
+ "$ xano tenant license get my-tenant --view",
5891
+ "$ xano tenant license get my-tenant -o json"
5832
5892
  ],
5833
5893
  "flags": {
5834
5894
  "profile": {
@@ -5850,13 +5910,14 @@
5850
5910
  "allowNo": false,
5851
5911
  "type": "boolean"
5852
5912
  },
5853
- "force": {
5913
+ "file": {
5854
5914
  "char": "f",
5855
- "description": "Skip confirmation prompt",
5856
- "name": "force",
5915
+ "description": "Output file path (default: license_<tenant_name>.yaml)",
5916
+ "name": "file",
5857
5917
  "required": false,
5858
- "allowNo": false,
5859
- "type": "boolean"
5918
+ "hasDynamicHelp": false,
5919
+ "multiple": false,
5920
+ "type": "option"
5860
5921
  },
5861
5922
  "output": {
5862
5923
  "char": "o",
@@ -5871,11 +5932,27 @@
5871
5932
  "json"
5872
5933
  ],
5873
5934
  "type": "option"
5935
+ },
5936
+ "view": {
5937
+ "description": "Print license to stdout instead of saving to file",
5938
+ "name": "view",
5939
+ "required": false,
5940
+ "allowNo": false,
5941
+ "type": "boolean"
5942
+ },
5943
+ "workspace": {
5944
+ "char": "w",
5945
+ "description": "Workspace ID (uses profile workspace if not provided)",
5946
+ "name": "workspace",
5947
+ "required": false,
5948
+ "hasDynamicHelp": false,
5949
+ "multiple": false,
5950
+ "type": "option"
5874
5951
  }
5875
5952
  },
5876
5953
  "hasDynamicHelp": false,
5877
5954
  "hiddenAliases": [],
5878
- "id": "tenant:cluster:delete",
5955
+ "id": "tenant:license:get",
5879
5956
  "pluginAlias": "@xano/cli",
5880
5957
  "pluginName": "@xano/cli",
5881
5958
  "pluginType": "core",
@@ -5886,12 +5963,12 @@
5886
5963
  "dist",
5887
5964
  "commands",
5888
5965
  "tenant",
5889
- "cluster",
5890
- "delete",
5966
+ "license",
5967
+ "get",
5891
5968
  "index.js"
5892
5969
  ]
5893
5970
  },
5894
- "tenant:env:get": {
5971
+ "tenant:license:set": {
5895
5972
  "aliases": [],
5896
5973
  "args": {
5897
5974
  "tenant_name": {
@@ -5900,10 +5977,12 @@
5900
5977
  "required": true
5901
5978
  }
5902
5979
  },
5903
- "description": "Get a single environment variable for a tenant",
5980
+ "description": "Set/update the license for a tenant",
5904
5981
  "examples": [
5905
- "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
5906
- "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
5982
+ "$ xano tenant license set my-tenant\nReads from license_my-tenant.yaml\n",
5983
+ "$ xano tenant license set my-tenant --file ./license.yaml",
5984
+ "$ xano tenant license set my-tenant --value 'key: value'",
5985
+ "$ xano tenant license set my-tenant -o json"
5907
5986
  ],
5908
5987
  "flags": {
5909
5988
  "profile": {
@@ -5925,11 +6004,24 @@
5925
6004
  "allowNo": false,
5926
6005
  "type": "boolean"
5927
6006
  },
5928
- "name": {
5929
- "char": "n",
5930
- "description": "Environment variable name",
5931
- "name": "name",
5932
- "required": true,
6007
+ "clean": {
6008
+ "description": "Remove the source file after successful upload",
6009
+ "exclusive": [
6010
+ "value"
6011
+ ],
6012
+ "name": "clean",
6013
+ "required": false,
6014
+ "allowNo": false,
6015
+ "type": "boolean"
6016
+ },
6017
+ "file": {
6018
+ "char": "f",
6019
+ "description": "Path to license file (default: license_<tenant_name>.yaml)",
6020
+ "exclusive": [
6021
+ "value"
6022
+ ],
6023
+ "name": "file",
6024
+ "required": false,
5933
6025
  "hasDynamicHelp": false,
5934
6026
  "multiple": false,
5935
6027
  "type": "option"
@@ -5948,6 +6040,18 @@
5948
6040
  ],
5949
6041
  "type": "option"
5950
6042
  },
6043
+ "value": {
6044
+ "description": "Inline license value",
6045
+ "exclusive": [
6046
+ "file",
6047
+ "clean"
6048
+ ],
6049
+ "name": "value",
6050
+ "required": false,
6051
+ "hasDynamicHelp": false,
6052
+ "multiple": false,
6053
+ "type": "option"
6054
+ },
5951
6055
  "workspace": {
5952
6056
  "char": "w",
5953
6057
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -5960,7 +6064,7 @@
5960
6064
  },
5961
6065
  "hasDynamicHelp": false,
5962
6066
  "hiddenAliases": [],
5963
- "id": "tenant:env:get",
6067
+ "id": "tenant:license:set",
5964
6068
  "pluginAlias": "@xano/cli",
5965
6069
  "pluginName": "@xano/cli",
5966
6070
  "pluginType": "core",
@@ -5971,12 +6075,12 @@
5971
6075
  "dist",
5972
6076
  "commands",
5973
6077
  "tenant",
5974
- "env",
5975
- "get",
6078
+ "license",
6079
+ "set",
5976
6080
  "index.js"
5977
6081
  ]
5978
6082
  },
5979
- "tenant:env:get_all": {
6083
+ "tenant:env:delete": {
5980
6084
  "aliases": [],
5981
6085
  "args": {
5982
6086
  "tenant_name": {
@@ -5985,12 +6089,11 @@
5985
6089
  "required": true
5986
6090
  }
5987
6091
  },
5988
- "description": "Get all environment variables for a tenant and save to a YAML file",
6092
+ "description": "Delete an environment variable from a tenant",
5989
6093
  "examples": [
5990
- "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
5991
- "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
5992
- "$ xano tenant env get_all my-tenant --view",
5993
- "$ xano tenant env get_all my-tenant -o json"
6094
+ "$ 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",
6095
+ "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
6096
+ "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
5994
6097
  ],
5995
6098
  "flags": {
5996
6099
  "profile": {
@@ -6012,11 +6115,19 @@
6012
6115
  "allowNo": false,
6013
6116
  "type": "boolean"
6014
6117
  },
6015
- "file": {
6118
+ "force": {
6016
6119
  "char": "f",
6017
- "description": "Output file path (default: env_<tenant_name>.yaml)",
6018
- "name": "file",
6120
+ "description": "Skip confirmation prompt",
6121
+ "name": "force",
6019
6122
  "required": false,
6123
+ "allowNo": false,
6124
+ "type": "boolean"
6125
+ },
6126
+ "name": {
6127
+ "char": "n",
6128
+ "description": "Environment variable name",
6129
+ "name": "name",
6130
+ "required": true,
6020
6131
  "hasDynamicHelp": false,
6021
6132
  "multiple": false,
6022
6133
  "type": "option"
@@ -6035,13 +6146,6 @@
6035
6146
  ],
6036
6147
  "type": "option"
6037
6148
  },
6038
- "view": {
6039
- "description": "Print environment variables to stdout instead of saving to file",
6040
- "name": "view",
6041
- "required": false,
6042
- "allowNo": false,
6043
- "type": "boolean"
6044
- },
6045
6149
  "workspace": {
6046
6150
  "char": "w",
6047
6151
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6054,7 +6158,7 @@
6054
6158
  },
6055
6159
  "hasDynamicHelp": false,
6056
6160
  "hiddenAliases": [],
6057
- "id": "tenant:env:get_all",
6161
+ "id": "tenant:env:delete",
6058
6162
  "pluginAlias": "@xano/cli",
6059
6163
  "pluginName": "@xano/cli",
6060
6164
  "pluginType": "core",
@@ -6066,17 +6170,23 @@
6066
6170
  "commands",
6067
6171
  "tenant",
6068
6172
  "env",
6069
- "get_all",
6173
+ "delete",
6070
6174
  "index.js"
6071
6175
  ]
6072
6176
  },
6073
- "tenant:cluster:list": {
6074
- "aliases": [],
6075
- "args": {},
6076
- "description": "List all tenant clusters",
6177
+ "tenant:env:get": {
6178
+ "aliases": [],
6179
+ "args": {
6180
+ "tenant_name": {
6181
+ "description": "Tenant name",
6182
+ "name": "tenant_name",
6183
+ "required": true
6184
+ }
6185
+ },
6186
+ "description": "Get a single environment variable for a tenant",
6077
6187
  "examples": [
6078
- "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
6079
- "$ xano tenant cluster list --output json"
6188
+ "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
6189
+ "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6080
6190
  ],
6081
6191
  "flags": {
6082
6192
  "profile": {
@@ -6098,6 +6208,15 @@
6098
6208
  "allowNo": false,
6099
6209
  "type": "boolean"
6100
6210
  },
6211
+ "name": {
6212
+ "char": "n",
6213
+ "description": "Environment variable name",
6214
+ "name": "name",
6215
+ "required": true,
6216
+ "hasDynamicHelp": false,
6217
+ "multiple": false,
6218
+ "type": "option"
6219
+ },
6101
6220
  "output": {
6102
6221
  "char": "o",
6103
6222
  "description": "Output format",
@@ -6111,11 +6230,20 @@
6111
6230
  "json"
6112
6231
  ],
6113
6232
  "type": "option"
6233
+ },
6234
+ "workspace": {
6235
+ "char": "w",
6236
+ "description": "Workspace ID (uses profile workspace if not provided)",
6237
+ "name": "workspace",
6238
+ "required": false,
6239
+ "hasDynamicHelp": false,
6240
+ "multiple": false,
6241
+ "type": "option"
6114
6242
  }
6115
6243
  },
6116
6244
  "hasDynamicHelp": false,
6117
6245
  "hiddenAliases": [],
6118
- "id": "tenant:cluster:list",
6246
+ "id": "tenant:env:get",
6119
6247
  "pluginAlias": "@xano/cli",
6120
6248
  "pluginName": "@xano/cli",
6121
6249
  "pluginType": "core",
@@ -6126,12 +6254,12 @@
6126
6254
  "dist",
6127
6255
  "commands",
6128
6256
  "tenant",
6129
- "cluster",
6130
- "list",
6257
+ "env",
6258
+ "get",
6131
6259
  "index.js"
6132
6260
  ]
6133
6261
  },
6134
- "tenant:env:delete": {
6262
+ "tenant:env:get_all": {
6135
6263
  "aliases": [],
6136
6264
  "args": {
6137
6265
  "tenant_name": {
@@ -6140,11 +6268,12 @@
6140
6268
  "required": true
6141
6269
  }
6142
6270
  },
6143
- "description": "Delete an environment variable from a tenant",
6271
+ "description": "Get all environment variables for a tenant and save to a YAML file",
6144
6272
  "examples": [
6145
- "$ 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",
6146
- "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
6147
- "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
6273
+ "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
6274
+ "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
6275
+ "$ xano tenant env get_all my-tenant --view",
6276
+ "$ xano tenant env get_all my-tenant -o json"
6148
6277
  ],
6149
6278
  "flags": {
6150
6279
  "profile": {
@@ -6166,19 +6295,11 @@
6166
6295
  "allowNo": false,
6167
6296
  "type": "boolean"
6168
6297
  },
6169
- "force": {
6298
+ "file": {
6170
6299
  "char": "f",
6171
- "description": "Skip confirmation prompt",
6172
- "name": "force",
6300
+ "description": "Output file path (default: env_<tenant_name>.yaml)",
6301
+ "name": "file",
6173
6302
  "required": false,
6174
- "allowNo": false,
6175
- "type": "boolean"
6176
- },
6177
- "name": {
6178
- "char": "n",
6179
- "description": "Environment variable name",
6180
- "name": "name",
6181
- "required": true,
6182
6303
  "hasDynamicHelp": false,
6183
6304
  "multiple": false,
6184
6305
  "type": "option"
@@ -6197,6 +6318,13 @@
6197
6318
  ],
6198
6319
  "type": "option"
6199
6320
  },
6321
+ "view": {
6322
+ "description": "Print environment variables to stdout instead of saving to file",
6323
+ "name": "view",
6324
+ "required": false,
6325
+ "allowNo": false,
6326
+ "type": "boolean"
6327
+ },
6200
6328
  "workspace": {
6201
6329
  "char": "w",
6202
6330
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6209,7 +6337,7 @@
6209
6337
  },
6210
6338
  "hasDynamicHelp": false,
6211
6339
  "hiddenAliases": [],
6212
- "id": "tenant:env:delete",
6340
+ "id": "tenant:env:get_all",
6213
6341
  "pluginAlias": "@xano/cli",
6214
6342
  "pluginName": "@xano/cli",
6215
6343
  "pluginType": "core",
@@ -6221,7 +6349,7 @@
6221
6349
  "commands",
6222
6350
  "tenant",
6223
6351
  "env",
6224
- "delete",
6352
+ "get_all",
6225
6353
  "index.js"
6226
6354
  ]
6227
6355
  },
@@ -6301,19 +6429,13 @@
6301
6429
  "index.js"
6302
6430
  ]
6303
6431
  },
6304
- "tenant:env:set": {
6432
+ "tenant:cluster:create": {
6305
6433
  "aliases": [],
6306
- "args": {
6307
- "tenant_name": {
6308
- "description": "Tenant name",
6309
- "name": "tenant_name",
6310
- "required": true
6311
- }
6312
- },
6313
- "description": "Set (create or update) an environment variable for a tenant",
6434
+ "args": {},
6435
+ "description": "Create a new tenant cluster",
6314
6436
  "examples": [
6315
- "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb\nEnvironment variable 'DATABASE_URL' set for tenant my-tenant\n",
6316
- "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb -w 5 -o json"
6437
+ "$ xano tenant cluster create --name \"us-east-1\" --credentials_file ./kubeconfig.yaml\nCreated tenant cluster: us-east-1 (standard) - ID: 3\n",
6438
+ "$ xano tenant cluster create --name \"eu-west-1\" --credentials \"...\" --type run --description \"EU run cluster\" -o json"
6317
6439
  ],
6318
6440
  "flags": {
6319
6441
  "profile": {
@@ -6335,9 +6457,48 @@
6335
6457
  "allowNo": false,
6336
6458
  "type": "boolean"
6337
6459
  },
6460
+ "credentials": {
6461
+ "description": "Kubeconfig credentials (raw text)",
6462
+ "exclusive": [
6463
+ "credentials_file"
6464
+ ],
6465
+ "name": "credentials",
6466
+ "required": false,
6467
+ "hasDynamicHelp": false,
6468
+ "multiple": false,
6469
+ "type": "option"
6470
+ },
6471
+ "credentials_file": {
6472
+ "description": "Path to kubeconfig credentials file",
6473
+ "exclusive": [
6474
+ "credentials"
6475
+ ],
6476
+ "name": "credentials_file",
6477
+ "required": false,
6478
+ "hasDynamicHelp": false,
6479
+ "multiple": false,
6480
+ "type": "option"
6481
+ },
6482
+ "description": {
6483
+ "char": "d",
6484
+ "description": "Cluster description",
6485
+ "name": "description",
6486
+ "required": false,
6487
+ "hasDynamicHelp": false,
6488
+ "multiple": false,
6489
+ "type": "option"
6490
+ },
6491
+ "domain": {
6492
+ "description": "Custom domain for the cluster",
6493
+ "name": "domain",
6494
+ "required": false,
6495
+ "hasDynamicHelp": false,
6496
+ "multiple": false,
6497
+ "type": "option"
6498
+ },
6338
6499
  "name": {
6339
6500
  "char": "n",
6340
- "description": "Environment variable name",
6501
+ "description": "Cluster name",
6341
6502
  "name": "name",
6342
6503
  "required": true,
6343
6504
  "hasDynamicHelp": false,
@@ -6358,27 +6519,23 @@
6358
6519
  ],
6359
6520
  "type": "option"
6360
6521
  },
6361
- "value": {
6362
- "description": "Environment variable value",
6363
- "name": "value",
6364
- "required": true,
6365
- "hasDynamicHelp": false,
6366
- "multiple": false,
6367
- "type": "option"
6368
- },
6369
- "workspace": {
6370
- "char": "w",
6371
- "description": "Workspace ID (uses profile workspace if not provided)",
6372
- "name": "workspace",
6522
+ "type": {
6523
+ "description": "Cluster type",
6524
+ "name": "type",
6373
6525
  "required": false,
6526
+ "default": "standard",
6374
6527
  "hasDynamicHelp": false,
6375
6528
  "multiple": false,
6529
+ "options": [
6530
+ "standard",
6531
+ "run"
6532
+ ],
6376
6533
  "type": "option"
6377
6534
  }
6378
6535
  },
6379
6536
  "hasDynamicHelp": false,
6380
6537
  "hiddenAliases": [],
6381
- "id": "tenant:env:set",
6538
+ "id": "tenant:cluster:create",
6382
6539
  "pluginAlias": "@xano/cli",
6383
6540
  "pluginName": "@xano/cli",
6384
6541
  "pluginType": "core",
@@ -6389,8 +6546,8 @@
6389
6546
  "dist",
6390
6547
  "commands",
6391
6548
  "tenant",
6392
- "env",
6393
- "set",
6549
+ "cluster",
6550
+ "create",
6394
6551
  "index.js"
6395
6552
  ]
6396
6553
  },
@@ -6487,7 +6644,7 @@
6487
6644
  "index.js"
6488
6645
  ]
6489
6646
  },
6490
- "tenant:license:get": {
6647
+ "tenant:env:set": {
6491
6648
  "aliases": [],
6492
6649
  "args": {
6493
6650
  "tenant_name": {
@@ -6496,12 +6653,10 @@
6496
6653
  "required": true
6497
6654
  }
6498
6655
  },
6499
- "description": "Get the license for a tenant",
6656
+ "description": "Set (create or update) an environment variable for a tenant",
6500
6657
  "examples": [
6501
- "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6502
- "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6503
- "$ xano tenant license get my-tenant --view",
6504
- "$ xano tenant license get my-tenant -o json"
6658
+ "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb\nEnvironment variable 'DATABASE_URL' set for tenant my-tenant\n",
6659
+ "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb -w 5 -o json"
6505
6660
  ],
6506
6661
  "flags": {
6507
6662
  "profile": {
@@ -6523,11 +6678,11 @@
6523
6678
  "allowNo": false,
6524
6679
  "type": "boolean"
6525
6680
  },
6526
- "file": {
6527
- "char": "f",
6528
- "description": "Output file path (default: license_<tenant_name>.yaml)",
6529
- "name": "file",
6530
- "required": false,
6681
+ "name": {
6682
+ "char": "n",
6683
+ "description": "Environment variable name",
6684
+ "name": "name",
6685
+ "required": true,
6531
6686
  "hasDynamicHelp": false,
6532
6687
  "multiple": false,
6533
6688
  "type": "option"
@@ -6546,12 +6701,13 @@
6546
6701
  ],
6547
6702
  "type": "option"
6548
6703
  },
6549
- "view": {
6550
- "description": "Print license to stdout instead of saving to file",
6551
- "name": "view",
6552
- "required": false,
6553
- "allowNo": false,
6554
- "type": "boolean"
6704
+ "value": {
6705
+ "description": "Environment variable value",
6706
+ "name": "value",
6707
+ "required": true,
6708
+ "hasDynamicHelp": false,
6709
+ "multiple": false,
6710
+ "type": "option"
6555
6711
  },
6556
6712
  "workspace": {
6557
6713
  "char": "w",
@@ -6565,7 +6721,7 @@
6565
6721
  },
6566
6722
  "hasDynamicHelp": false,
6567
6723
  "hiddenAliases": [],
6568
- "id": "tenant:license:get",
6724
+ "id": "tenant:env:set",
6569
6725
  "pluginAlias": "@xano/cli",
6570
6726
  "pluginName": "@xano/cli",
6571
6727
  "pluginType": "core",
@@ -6576,26 +6732,29 @@
6576
6732
  "dist",
6577
6733
  "commands",
6578
6734
  "tenant",
6579
- "license",
6580
- "get",
6735
+ "env",
6736
+ "set",
6581
6737
  "index.js"
6582
6738
  ]
6583
6739
  },
6584
- "tenant:license:set": {
6740
+ "workspace:git:pull": {
6585
6741
  "aliases": [],
6586
6742
  "args": {
6587
- "tenant_name": {
6588
- "description": "Tenant name",
6589
- "name": "tenant_name",
6743
+ "directory": {
6744
+ "description": "Output directory for imported files",
6745
+ "name": "directory",
6590
6746
  "required": true
6591
6747
  }
6592
6748
  },
6593
- "description": "Set/update the license for a tenant",
6749
+ "description": "Pull XanoScript files from a git repository into a local directory",
6594
6750
  "examples": [
6595
- "$ xano tenant license set my-tenant\nReads from license_my-tenant.yaml\n",
6596
- "$ xano tenant license set my-tenant --file ./license.yaml",
6597
- "$ xano tenant license set my-tenant --value 'key: value'",
6598
- "$ xano tenant license set my-tenant -o json"
6751
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo",
6752
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo/tree/main/path/to/dir",
6753
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo/blob/main/path/to/file.xs",
6754
+ "$ xano workspace git pull ./output -r git@github.com:owner/repo.git",
6755
+ "$ xano workspace git pull ./output -r https://github.com/owner/private-repo -t ghp_xxx",
6756
+ "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo/-/tree/master/path",
6757
+ "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo -b main"
6599
6758
  ],
6600
6759
  "flags": {
6601
6760
  "profile": {
@@ -6617,58 +6776,37 @@
6617
6776
  "allowNo": false,
6618
6777
  "type": "boolean"
6619
6778
  },
6620
- "clean": {
6621
- "description": "Remove the source file after successful upload",
6622
- "exclusive": [
6623
- "value"
6624
- ],
6625
- "name": "clean",
6626
- "required": false,
6627
- "allowNo": false,
6628
- "type": "boolean"
6629
- },
6630
- "file": {
6631
- "char": "f",
6632
- "description": "Path to license file (default: license_<tenant_name>.yaml)",
6633
- "exclusive": [
6634
- "value"
6635
- ],
6636
- "name": "file",
6779
+ "branch": {
6780
+ "char": "b",
6781
+ "description": "Branch, tag, or ref to fetch (defaults to repository default branch)",
6782
+ "name": "branch",
6637
6783
  "required": false,
6638
6784
  "hasDynamicHelp": false,
6639
6785
  "multiple": false,
6640
6786
  "type": "option"
6641
6787
  },
6642
- "output": {
6643
- "char": "o",
6644
- "description": "Output format",
6645
- "name": "output",
6788
+ "path": {
6789
+ "description": "Subdirectory within the repo to import from",
6790
+ "name": "path",
6646
6791
  "required": false,
6647
- "default": "summary",
6648
6792
  "hasDynamicHelp": false,
6649
6793
  "multiple": false,
6650
- "options": [
6651
- "summary",
6652
- "json"
6653
- ],
6654
6794
  "type": "option"
6655
6795
  },
6656
- "value": {
6657
- "description": "Inline license value",
6658
- "exclusive": [
6659
- "file",
6660
- "clean"
6661
- ],
6662
- "name": "value",
6663
- "required": false,
6796
+ "repo": {
6797
+ "char": "r",
6798
+ "description": "Git repository URL (GitHub HTTPS, SSH, or any git URL)",
6799
+ "name": "repo",
6800
+ "required": true,
6664
6801
  "hasDynamicHelp": false,
6665
6802
  "multiple": false,
6666
6803
  "type": "option"
6667
6804
  },
6668
- "workspace": {
6669
- "char": "w",
6670
- "description": "Workspace ID (uses profile workspace if not provided)",
6671
- "name": "workspace",
6805
+ "token": {
6806
+ "char": "t",
6807
+ "description": "Personal access token for private repos (falls back to GITHUB_TOKEN env var)",
6808
+ "env": "GITHUB_TOKEN",
6809
+ "name": "token",
6672
6810
  "required": false,
6673
6811
  "hasDynamicHelp": false,
6674
6812
  "multiple": false,
@@ -6677,7 +6815,7 @@
6677
6815
  },
6678
6816
  "hasDynamicHelp": false,
6679
6817
  "hiddenAliases": [],
6680
- "id": "tenant:license:set",
6818
+ "id": "workspace:git:pull",
6681
6819
  "pluginAlias": "@xano/cli",
6682
6820
  "pluginName": "@xano/cli",
6683
6821
  "pluginType": "core",
@@ -6687,9 +6825,9 @@
6687
6825
  "relativePath": [
6688
6826
  "dist",
6689
6827
  "commands",
6690
- "tenant",
6691
- "license",
6692
- "set",
6828
+ "workspace",
6829
+ "git",
6830
+ "pull",
6693
6831
  "index.js"
6694
6832
  ]
6695
6833
  },
@@ -6884,5 +7022,5 @@
6884
7022
  ]
6885
7023
  }
6886
7024
  },
6887
- "version": "0.0.43"
7025
+ "version": "0.0.45"
6888
7026
  }