@xano/cli 0.0.50 → 0.0.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/oclif.manifest.json +1585 -1585
  2. package/package.json +1 -1
@@ -193,20 +193,20 @@
193
193
  "index.js"
194
194
  ]
195
195
  },
196
- "branch:delete": {
196
+ "branch:edit": {
197
197
  "aliases": [],
198
198
  "args": {
199
199
  "branch_label": {
200
- "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
200
+ "description": "Branch label to edit (cannot edit \"v1\" label)",
201
201
  "name": "branch_label",
202
202
  "required": true
203
203
  }
204
204
  },
205
- "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
205
+ "description": "Update an existing branch (cannot update \"v1\" label)",
206
206
  "examples": [
207
- "$ xano branch delete feature-old\nAre you sure you want to delete branch 'feature-old'? This action cannot be undone. (y/N) y\nDeleted branch: feature-old\n",
208
- "$ xano branch delete dev --force\nDeleted branch: dev\n",
209
- "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
207
+ "$ xano branch edit dev --label development\nUpdated branch: development\n",
208
+ "$ xano branch edit feature-auth -l feature-authentication --color \"#ff5733\"\nUpdated branch: feature-authentication\n Color: #ff5733\n",
209
+ "$ xano branch edit staging --description \"Staging environment\" -o json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false\n}\n"
210
210
  ],
211
211
  "flags": {
212
212
  "profile": {
@@ -228,13 +228,32 @@
228
228
  "allowNo": false,
229
229
  "type": "boolean"
230
230
  },
231
- "force": {
232
- "char": "f",
233
- "description": "Skip confirmation prompt",
234
- "name": "force",
231
+ "color": {
232
+ "char": "c",
233
+ "description": "New color hex code for the branch (e.g., \"#ff5733\")",
234
+ "name": "color",
235
235
  "required": false,
236
- "allowNo": false,
237
- "type": "boolean"
236
+ "hasDynamicHelp": false,
237
+ "multiple": false,
238
+ "type": "option"
239
+ },
240
+ "description": {
241
+ "char": "d",
242
+ "description": "New description for the branch",
243
+ "name": "description",
244
+ "required": false,
245
+ "hasDynamicHelp": false,
246
+ "multiple": false,
247
+ "type": "option"
248
+ },
249
+ "label": {
250
+ "char": "l",
251
+ "description": "New label for the branch",
252
+ "name": "label",
253
+ "required": false,
254
+ "hasDynamicHelp": false,
255
+ "multiple": false,
256
+ "type": "option"
238
257
  },
239
258
  "output": {
240
259
  "char": "o",
@@ -262,7 +281,7 @@
262
281
  },
263
282
  "hasDynamicHelp": false,
264
283
  "hiddenAliases": [],
265
- "id": "branch:delete",
284
+ "id": "branch:edit",
266
285
  "pluginAlias": "@xano/cli",
267
286
  "pluginName": "@xano/cli",
268
287
  "pluginType": "core",
@@ -273,7 +292,7 @@
273
292
  "dist",
274
293
  "commands",
275
294
  "branch",
276
- "delete",
295
+ "edit",
277
296
  "index.js"
278
297
  ]
279
298
  },
@@ -353,20 +372,20 @@
353
372
  "index.js"
354
373
  ]
355
374
  },
356
- "branch:edit": {
375
+ "branch:delete": {
357
376
  "aliases": [],
358
377
  "args": {
359
378
  "branch_label": {
360
- "description": "Branch label to edit (cannot edit \"v1\" label)",
379
+ "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
361
380
  "name": "branch_label",
362
381
  "required": true
363
382
  }
364
383
  },
365
- "description": "Update an existing branch (cannot update \"v1\" label)",
384
+ "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
366
385
  "examples": [
367
- "$ xano branch edit dev --label development\nUpdated branch: development\n",
368
- "$ xano branch edit feature-auth -l feature-authentication --color \"#ff5733\"\nUpdated branch: feature-authentication\n Color: #ff5733\n",
369
- "$ xano branch edit staging --description \"Staging environment\" -o json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false\n}\n"
386
+ "$ xano branch delete feature-old\nAre you sure you want to delete branch 'feature-old'? This action cannot be undone. (y/N) y\nDeleted branch: feature-old\n",
387
+ "$ xano branch delete dev --force\nDeleted branch: dev\n",
388
+ "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
370
389
  ],
371
390
  "flags": {
372
391
  "profile": {
@@ -388,32 +407,13 @@
388
407
  "allowNo": false,
389
408
  "type": "boolean"
390
409
  },
391
- "color": {
392
- "char": "c",
393
- "description": "New color hex code for the branch (e.g., \"#ff5733\")",
394
- "name": "color",
395
- "required": false,
396
- "hasDynamicHelp": false,
397
- "multiple": false,
398
- "type": "option"
399
- },
400
- "description": {
401
- "char": "d",
402
- "description": "New description for the branch",
403
- "name": "description",
404
- "required": false,
405
- "hasDynamicHelp": false,
406
- "multiple": false,
407
- "type": "option"
408
- },
409
- "label": {
410
- "char": "l",
411
- "description": "New label for the branch",
412
- "name": "label",
410
+ "force": {
411
+ "char": "f",
412
+ "description": "Skip confirmation prompt",
413
+ "name": "force",
413
414
  "required": false,
414
- "hasDynamicHelp": false,
415
- "multiple": false,
416
- "type": "option"
415
+ "allowNo": false,
416
+ "type": "boolean"
417
417
  },
418
418
  "output": {
419
419
  "char": "o",
@@ -441,7 +441,7 @@
441
441
  },
442
442
  "hasDynamicHelp": false,
443
443
  "hiddenAliases": [],
444
- "id": "branch:edit",
444
+ "id": "branch:delete",
445
445
  "pluginAlias": "@xano/cli",
446
446
  "pluginName": "@xano/cli",
447
447
  "pluginType": "core",
@@ -452,7 +452,7 @@
452
452
  "dist",
453
453
  "commands",
454
454
  "branch",
455
- "edit",
455
+ "delete",
456
456
  "index.js"
457
457
  ]
458
458
  },
@@ -607,25 +607,82 @@
607
607
  "index.js"
608
608
  ]
609
609
  },
610
- "function:edit": {
610
+ "platform:get": {
611
611
  "aliases": [],
612
612
  "args": {
613
- "function_id": {
614
- "description": "Function ID to edit",
615
- "name": "function_id",
616
- "required": false
613
+ "platform_id": {
614
+ "description": "Platform ID to retrieve",
615
+ "name": "platform_id",
616
+ "required": true
617
617
  }
618
618
  },
619
- "description": "Edit a function in a workspace",
619
+ "description": "Get details of a specific platform",
620
620
  "examples": [
621
- "$ xano function:edit 163\n# Fetches the function code and opens it in $EDITOR for editing\nFunction updated successfully!\nID: 163\nName: my_function\n",
622
- "$ xano function:edit\n# Prompts for function, fetches the code and opens it in $EDITOR for editing\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
623
- "$ xano function:edit 163 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
624
- "$ xano function:edit 163 -w 40 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
625
- "$ xano function:edit -f function.xs\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
626
- "$ xano function:edit 163 -f function.xs --edit\n# Opens function.xs in $EDITOR, then updates function with edited content\nFunction updated successfully!\nID: 163\nName: my_function\n",
627
- "$ cat function.xs | xano function:edit 163 --stdin\nFunction updated successfully!\nID: 163\nName: my_function\n",
628
- "$ xano function:edit 163 -f function.xs -o json\n{\n \"id\": 163,\n \"name\": \"my_function\",\n ...\n}\n"
621
+ "$ 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",
622
+ "$ xano platform get 23629 -o json"
623
+ ],
624
+ "flags": {
625
+ "profile": {
626
+ "char": "p",
627
+ "description": "Profile to use (uses default profile if not specified)",
628
+ "env": "XANO_PROFILE",
629
+ "name": "profile",
630
+ "required": false,
631
+ "hasDynamicHelp": false,
632
+ "multiple": false,
633
+ "type": "option"
634
+ },
635
+ "verbose": {
636
+ "char": "v",
637
+ "description": "Show detailed request/response information",
638
+ "env": "XANO_VERBOSE",
639
+ "name": "verbose",
640
+ "required": false,
641
+ "allowNo": false,
642
+ "type": "boolean"
643
+ },
644
+ "output": {
645
+ "char": "o",
646
+ "description": "Output format",
647
+ "name": "output",
648
+ "required": false,
649
+ "default": "summary",
650
+ "hasDynamicHelp": false,
651
+ "multiple": false,
652
+ "options": [
653
+ "summary",
654
+ "json"
655
+ ],
656
+ "type": "option"
657
+ }
658
+ },
659
+ "hasDynamicHelp": false,
660
+ "hiddenAliases": [],
661
+ "id": "platform:get",
662
+ "pluginAlias": "@xano/cli",
663
+ "pluginName": "@xano/cli",
664
+ "pluginType": "core",
665
+ "strict": true,
666
+ "enableJsonFlag": false,
667
+ "isESM": true,
668
+ "relativePath": [
669
+ "dist",
670
+ "commands",
671
+ "platform",
672
+ "get",
673
+ "index.js"
674
+ ]
675
+ },
676
+ "function:create": {
677
+ "aliases": [],
678
+ "args": {},
679
+ "description": "Create a new function in a workspace",
680
+ "examples": [
681
+ "$ xano function:create -w 40 -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
682
+ "$ xano function:create -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
683
+ "$ 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",
684
+ "$ cat function.xs | xano function:create -w 40 --stdin\nFunction created successfully!\nID: 123\nName: my_function\n",
685
+ "$ xano function:create -w 40 -f function.xs -o json\n{\n \"id\": 123,\n \"name\": \"my_function\",\n ...\n}\n"
629
686
  ],
630
687
  "flags": {
631
688
  "profile": {
@@ -649,7 +706,10 @@
649
706
  },
650
707
  "edit": {
651
708
  "char": "e",
652
- "description": "Open file in editor before updating function (requires --file)",
709
+ "dependsOn": [
710
+ "file"
711
+ ],
712
+ "description": "Open file in editor before creating function (requires --file)",
653
713
  "name": "edit",
654
714
  "required": false,
655
715
  "allowNo": false,
@@ -681,13 +741,6 @@
681
741
  ],
682
742
  "type": "option"
683
743
  },
684
- "publish": {
685
- "description": "Publish the function after editing",
686
- "name": "publish",
687
- "required": false,
688
- "allowNo": false,
689
- "type": "boolean"
690
- },
691
744
  "stdin": {
692
745
  "char": "s",
693
746
  "description": "Read XanoScript code from stdin",
@@ -711,7 +764,7 @@
711
764
  },
712
765
  "hasDynamicHelp": false,
713
766
  "hiddenAliases": [],
714
- "id": "function:edit",
767
+ "id": "function:create",
715
768
  "pluginAlias": "@xano/cli",
716
769
  "pluginName": "@xano/cli",
717
770
  "pluginType": "core",
@@ -722,20 +775,29 @@
722
775
  "dist",
723
776
  "commands",
724
777
  "function",
725
- "edit",
778
+ "create",
726
779
  "index.js"
727
780
  ]
728
781
  },
729
- "function:create": {
782
+ "function:edit": {
730
783
  "aliases": [],
731
- "args": {},
732
- "description": "Create a new function in a workspace",
784
+ "args": {
785
+ "function_id": {
786
+ "description": "Function ID to edit",
787
+ "name": "function_id",
788
+ "required": false
789
+ }
790
+ },
791
+ "description": "Edit a function in a workspace",
733
792
  "examples": [
734
- "$ xano function:create -w 40 -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
735
- "$ xano function:create -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
736
- "$ 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",
737
- "$ cat function.xs | xano function:create -w 40 --stdin\nFunction created successfully!\nID: 123\nName: my_function\n",
738
- "$ xano function:create -w 40 -f function.xs -o json\n{\n \"id\": 123,\n \"name\": \"my_function\",\n ...\n}\n"
793
+ "$ xano function:edit 163\n# Fetches the function code and opens it in $EDITOR for editing\nFunction updated successfully!\nID: 163\nName: my_function\n",
794
+ "$ xano function:edit\n# Prompts for function, fetches the code and opens it in $EDITOR for editing\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
795
+ "$ xano function:edit 163 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
796
+ "$ xano function:edit 163 -w 40 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
797
+ "$ xano function:edit -f function.xs\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
798
+ "$ xano function:edit 163 -f function.xs --edit\n# Opens function.xs in $EDITOR, then updates function with edited content\nFunction updated successfully!\nID: 163\nName: my_function\n",
799
+ "$ cat function.xs | xano function:edit 163 --stdin\nFunction updated successfully!\nID: 163\nName: my_function\n",
800
+ "$ xano function:edit 163 -f function.xs -o json\n{\n \"id\": 163,\n \"name\": \"my_function\",\n ...\n}\n"
739
801
  ],
740
802
  "flags": {
741
803
  "profile": {
@@ -759,10 +821,7 @@
759
821
  },
760
822
  "edit": {
761
823
  "char": "e",
762
- "dependsOn": [
763
- "file"
764
- ],
765
- "description": "Open file in editor before creating function (requires --file)",
824
+ "description": "Open file in editor before updating function (requires --file)",
766
825
  "name": "edit",
767
826
  "required": false,
768
827
  "allowNo": false,
@@ -794,6 +853,13 @@
794
853
  ],
795
854
  "type": "option"
796
855
  },
856
+ "publish": {
857
+ "description": "Publish the function after editing",
858
+ "name": "publish",
859
+ "required": false,
860
+ "allowNo": false,
861
+ "type": "boolean"
862
+ },
797
863
  "stdin": {
798
864
  "char": "s",
799
865
  "description": "Read XanoScript code from stdin",
@@ -817,7 +883,7 @@
817
883
  },
818
884
  "hasDynamicHelp": false,
819
885
  "hiddenAliases": [],
820
- "id": "function:create",
886
+ "id": "function:edit",
821
887
  "pluginAlias": "@xano/cli",
822
888
  "pluginName": "@xano/cli",
823
889
  "pluginType": "core",
@@ -828,7 +894,7 @@
828
894
  "dist",
829
895
  "commands",
830
896
  "function",
831
- "create",
897
+ "edit",
832
898
  "index.js"
833
899
  ]
834
900
  },
@@ -926,15 +992,13 @@
926
992
  "index.js"
927
993
  ]
928
994
  },
929
- "function:list": {
995
+ "platform:list": {
930
996
  "aliases": [],
931
997
  "args": {},
932
- "description": "List all functions in a workspace from the Xano Metadata API",
998
+ "description": "List all platforms",
933
999
  "examples": [
934
- "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
935
- "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
936
- "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
937
- "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
1000
+ "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
1001
+ "$ xano platform list --output json"
938
1002
  ],
939
1003
  "flags": {
940
1004
  "profile": {
@@ -956,37 +1020,10 @@
956
1020
  "allowNo": false,
957
1021
  "type": "boolean"
958
1022
  },
959
- "include_draft": {
960
- "description": "Include draft functions",
961
- "name": "include_draft",
962
- "required": false,
963
- "allowNo": false,
964
- "type": "boolean"
965
- },
966
- "include_xanoscript": {
967
- "description": "Include XanoScript in response",
968
- "name": "include_xanoscript",
969
- "required": false,
970
- "allowNo": false,
971
- "type": "boolean"
972
- },
973
- "order": {
974
- "description": "Sort order",
975
- "name": "order",
976
- "required": false,
977
- "default": "desc",
978
- "hasDynamicHelp": false,
979
- "multiple": false,
980
- "options": [
981
- "asc",
982
- "desc"
983
- ],
984
- "type": "option"
985
- },
986
- "output": {
987
- "char": "o",
988
- "description": "Output format",
989
- "name": "output",
1023
+ "output": {
1024
+ "char": "o",
1025
+ "description": "Output format",
1026
+ "name": "output",
990
1027
  "required": false,
991
1028
  "default": "summary",
992
1029
  "hasDynamicHelp": false,
@@ -996,47 +1033,11 @@
996
1033
  "json"
997
1034
  ],
998
1035
  "type": "option"
999
- },
1000
- "page": {
1001
- "description": "Page number for pagination",
1002
- "name": "page",
1003
- "required": false,
1004
- "default": 1,
1005
- "hasDynamicHelp": false,
1006
- "multiple": false,
1007
- "type": "option"
1008
- },
1009
- "per_page": {
1010
- "description": "Number of results per page",
1011
- "name": "per_page",
1012
- "required": false,
1013
- "default": 50,
1014
- "hasDynamicHelp": false,
1015
- "multiple": false,
1016
- "type": "option"
1017
- },
1018
- "sort": {
1019
- "description": "Sort field",
1020
- "name": "sort",
1021
- "required": false,
1022
- "default": "created_at",
1023
- "hasDynamicHelp": false,
1024
- "multiple": false,
1025
- "type": "option"
1026
- },
1027
- "workspace": {
1028
- "char": "w",
1029
- "description": "Workspace ID (optional if set in profile)",
1030
- "name": "workspace",
1031
- "required": false,
1032
- "hasDynamicHelp": false,
1033
- "multiple": false,
1034
- "type": "option"
1035
1036
  }
1036
1037
  },
1037
1038
  "hasDynamicHelp": false,
1038
1039
  "hiddenAliases": [],
1039
- "id": "function:list",
1040
+ "id": "platform:list",
1040
1041
  "pluginAlias": "@xano/cli",
1041
1042
  "pluginName": "@xano/cli",
1042
1043
  "pluginType": "core",
@@ -1046,24 +1047,20 @@
1046
1047
  "relativePath": [
1047
1048
  "dist",
1048
1049
  "commands",
1049
- "function",
1050
+ "platform",
1050
1051
  "list",
1051
1052
  "index.js"
1052
1053
  ]
1053
1054
  },
1054
- "platform:get": {
1055
+ "function:list": {
1055
1056
  "aliases": [],
1056
- "args": {
1057
- "platform_id": {
1058
- "description": "Platform ID to retrieve",
1059
- "name": "platform_id",
1060
- "required": true
1061
- }
1062
- },
1063
- "description": "Get details of a specific platform",
1057
+ "args": {},
1058
+ "description": "List all functions in a workspace from the Xano Metadata API",
1064
1059
  "examples": [
1065
- "$ 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",
1066
- "$ xano platform get 23629 -o json"
1060
+ "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
1061
+ "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
1062
+ "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
1063
+ "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
1067
1064
  ],
1068
1065
  "flags": {
1069
1066
  "profile": {
@@ -1085,6 +1082,33 @@
1085
1082
  "allowNo": false,
1086
1083
  "type": "boolean"
1087
1084
  },
1085
+ "include_draft": {
1086
+ "description": "Include draft functions",
1087
+ "name": "include_draft",
1088
+ "required": false,
1089
+ "allowNo": false,
1090
+ "type": "boolean"
1091
+ },
1092
+ "include_xanoscript": {
1093
+ "description": "Include XanoScript in response",
1094
+ "name": "include_xanoscript",
1095
+ "required": false,
1096
+ "allowNo": false,
1097
+ "type": "boolean"
1098
+ },
1099
+ "order": {
1100
+ "description": "Sort order",
1101
+ "name": "order",
1102
+ "required": false,
1103
+ "default": "desc",
1104
+ "hasDynamicHelp": false,
1105
+ "multiple": false,
1106
+ "options": [
1107
+ "asc",
1108
+ "desc"
1109
+ ],
1110
+ "type": "option"
1111
+ },
1088
1112
  "output": {
1089
1113
  "char": "o",
1090
1114
  "description": "Output format",
@@ -1098,71 +1122,47 @@
1098
1122
  "json"
1099
1123
  ],
1100
1124
  "type": "option"
1101
- }
1102
- },
1103
- "hasDynamicHelp": false,
1104
- "hiddenAliases": [],
1105
- "id": "platform:get",
1106
- "pluginAlias": "@xano/cli",
1107
- "pluginName": "@xano/cli",
1108
- "pluginType": "core",
1109
- "strict": true,
1110
- "enableJsonFlag": false,
1111
- "isESM": true,
1112
- "relativePath": [
1113
- "dist",
1114
- "commands",
1115
- "platform",
1116
- "get",
1117
- "index.js"
1118
- ]
1119
- },
1120
- "platform:list": {
1121
- "aliases": [],
1122
- "args": {},
1123
- "description": "List all platforms",
1124
- "examples": [
1125
- "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
1126
- "$ xano platform list --output json"
1127
- ],
1128
- "flags": {
1129
- "profile": {
1130
- "char": "p",
1131
- "description": "Profile to use (uses default profile if not specified)",
1132
- "env": "XANO_PROFILE",
1133
- "name": "profile",
1125
+ },
1126
+ "page": {
1127
+ "description": "Page number for pagination",
1128
+ "name": "page",
1134
1129
  "required": false,
1130
+ "default": 1,
1135
1131
  "hasDynamicHelp": false,
1136
1132
  "multiple": false,
1137
1133
  "type": "option"
1138
1134
  },
1139
- "verbose": {
1140
- "char": "v",
1141
- "description": "Show detailed request/response information",
1142
- "env": "XANO_VERBOSE",
1143
- "name": "verbose",
1135
+ "per_page": {
1136
+ "description": "Number of results per page",
1137
+ "name": "per_page",
1144
1138
  "required": false,
1145
- "allowNo": false,
1146
- "type": "boolean"
1139
+ "default": 50,
1140
+ "hasDynamicHelp": false,
1141
+ "multiple": false,
1142
+ "type": "option"
1147
1143
  },
1148
- "output": {
1149
- "char": "o",
1150
- "description": "Output format",
1151
- "name": "output",
1144
+ "sort": {
1145
+ "description": "Sort field",
1146
+ "name": "sort",
1147
+ "required": false,
1148
+ "default": "created_at",
1149
+ "hasDynamicHelp": false,
1150
+ "multiple": false,
1151
+ "type": "option"
1152
+ },
1153
+ "workspace": {
1154
+ "char": "w",
1155
+ "description": "Workspace ID (optional if set in profile)",
1156
+ "name": "workspace",
1152
1157
  "required": false,
1153
- "default": "summary",
1154
1158
  "hasDynamicHelp": false,
1155
1159
  "multiple": false,
1156
- "options": [
1157
- "summary",
1158
- "json"
1159
- ],
1160
1160
  "type": "option"
1161
1161
  }
1162
1162
  },
1163
1163
  "hasDynamicHelp": false,
1164
1164
  "hiddenAliases": [],
1165
- "id": "platform:list",
1165
+ "id": "function:list",
1166
1166
  "pluginAlias": "@xano/cli",
1167
1167
  "pluginName": "@xano/cli",
1168
1168
  "pluginType": "core",
@@ -1172,7 +1172,7 @@
1172
1172
  "relativePath": [
1173
1173
  "dist",
1174
1174
  "commands",
1175
- "platform",
1175
+ "function",
1176
1176
  "list",
1177
1177
  "index.js"
1178
1178
  ]
@@ -1420,28 +1420,17 @@
1420
1420
  "index.js"
1421
1421
  ]
1422
1422
  },
1423
- "profile:list": {
1423
+ "profile:get": {
1424
1424
  "aliases": [],
1425
1425
  "args": {},
1426
- "description": "List all available profile configurations",
1426
+ "description": "Get the current default profile name",
1427
1427
  "examples": [
1428
- "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1429
- "$ xano profile:list --details\nAvailable profiles:\n\nProfile: default\n Account Origin: https://account.xano.com\n Instance Origin: https://instance.xano.com\n Access Token: ***...***\n Workspace: my-workspace\n Branch: main\n Project: my-project\n\nProfile: production\n Account Origin: https://account.xano.com\n Instance Origin: https://prod-instance.xano.com\n Access Token: ***...***\n",
1430
- "$ xano profile:list -d\nAvailable profiles:\n\nProfile: default\n Account Origin: https://account.xano.com\n Instance Origin: https://instance.xano.com\n Access Token: ***...***\n Workspace: my-workspace\n Branch: main\n Project: my-project\n"
1428
+ "$ xano profile get\nproduction\n"
1431
1429
  ],
1432
- "flags": {
1433
- "details": {
1434
- "char": "d",
1435
- "description": "Show detailed information for each profile",
1436
- "name": "details",
1437
- "required": false,
1438
- "allowNo": false,
1439
- "type": "boolean"
1440
- }
1441
- },
1430
+ "flags": {},
1442
1431
  "hasDynamicHelp": false,
1443
1432
  "hiddenAliases": [],
1444
- "id": "profile:list",
1433
+ "id": "profile:get",
1445
1434
  "pluginAlias": "@xano/cli",
1446
1435
  "pluginName": "@xano/cli",
1447
1436
  "pluginType": "core",
@@ -1452,21 +1441,32 @@
1452
1441
  "dist",
1453
1442
  "commands",
1454
1443
  "profile",
1455
- "list",
1444
+ "get",
1456
1445
  "index.js"
1457
1446
  ]
1458
1447
  },
1459
- "profile:get": {
1448
+ "profile:list": {
1460
1449
  "aliases": [],
1461
1450
  "args": {},
1462
- "description": "Get the current default profile name",
1451
+ "description": "List all available profile configurations",
1463
1452
  "examples": [
1464
- "$ xano profile get\nproduction\n"
1453
+ "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1454
+ "$ xano profile:list --details\nAvailable profiles:\n\nProfile: default\n Account Origin: https://account.xano.com\n Instance Origin: https://instance.xano.com\n Access Token: ***...***\n Workspace: my-workspace\n Branch: main\n Project: my-project\n\nProfile: production\n Account Origin: https://account.xano.com\n Instance Origin: https://prod-instance.xano.com\n Access Token: ***...***\n",
1455
+ "$ xano profile:list -d\nAvailable profiles:\n\nProfile: default\n Account Origin: https://account.xano.com\n Instance Origin: https://instance.xano.com\n Access Token: ***...***\n Workspace: my-workspace\n Branch: main\n Project: my-project\n"
1465
1456
  ],
1466
- "flags": {},
1457
+ "flags": {
1458
+ "details": {
1459
+ "char": "d",
1460
+ "description": "Show detailed information for each profile",
1461
+ "name": "details",
1462
+ "required": false,
1463
+ "allowNo": false,
1464
+ "type": "boolean"
1465
+ }
1466
+ },
1467
1467
  "hasDynamicHelp": false,
1468
1468
  "hiddenAliases": [],
1469
- "id": "profile:get",
1469
+ "id": "profile:list",
1470
1470
  "pluginAlias": "@xano/cli",
1471
1471
  "pluginName": "@xano/cli",
1472
1472
  "pluginType": "core",
@@ -1477,7 +1477,7 @@
1477
1477
  "dist",
1478
1478
  "commands",
1479
1479
  "profile",
1480
- "get",
1480
+ "list",
1481
1481
  "index.js"
1482
1482
  ]
1483
1483
  },
@@ -1542,23 +1542,18 @@
1542
1542
  "index.js"
1543
1543
  ]
1544
1544
  },
1545
- "profile:set": {
1545
+ "profile:token": {
1546
1546
  "aliases": [],
1547
- "args": {
1548
- "name": {
1549
- "description": "Profile name to set as default",
1550
- "name": "name",
1551
- "required": true
1552
- }
1553
- },
1554
- "description": "Set the default profile",
1547
+ "args": {},
1548
+ "description": "Print the access token for the default profile",
1555
1549
  "examples": [
1556
- "$ xano profile set production\nDefault profile set to 'production'\n"
1550
+ "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1551
+ "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1557
1552
  ],
1558
1553
  "flags": {},
1559
1554
  "hasDynamicHelp": false,
1560
1555
  "hiddenAliases": [],
1561
- "id": "profile:set",
1556
+ "id": "profile:token",
1562
1557
  "pluginAlias": "@xano/cli",
1563
1558
  "pluginName": "@xano/cli",
1564
1559
  "pluginType": "core",
@@ -1569,13 +1564,44 @@
1569
1564
  "dist",
1570
1565
  "commands",
1571
1566
  "profile",
1572
- "set",
1567
+ "token",
1573
1568
  "index.js"
1574
1569
  ]
1575
1570
  },
1576
- "profile:wizard": {
1571
+ "profile:set": {
1577
1572
  "aliases": [],
1578
- "args": {},
1573
+ "args": {
1574
+ "name": {
1575
+ "description": "Profile name to set as default",
1576
+ "name": "name",
1577
+ "required": true
1578
+ }
1579
+ },
1580
+ "description": "Set the default profile",
1581
+ "examples": [
1582
+ "$ xano profile set production\nDefault profile set to 'production'\n"
1583
+ ],
1584
+ "flags": {},
1585
+ "hasDynamicHelp": false,
1586
+ "hiddenAliases": [],
1587
+ "id": "profile:set",
1588
+ "pluginAlias": "@xano/cli",
1589
+ "pluginName": "@xano/cli",
1590
+ "pluginType": "core",
1591
+ "strict": true,
1592
+ "enableJsonFlag": false,
1593
+ "isESM": true,
1594
+ "relativePath": [
1595
+ "dist",
1596
+ "commands",
1597
+ "profile",
1598
+ "set",
1599
+ "index.js"
1600
+ ]
1601
+ },
1602
+ "profile:wizard": {
1603
+ "aliases": [],
1604
+ "args": {},
1579
1605
  "description": "Create a new profile configuration using an interactive wizard",
1580
1606
  "examples": [
1581
1607
  "$ 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"
@@ -1618,18 +1644,76 @@
1618
1644
  "index.js"
1619
1645
  ]
1620
1646
  },
1621
- "profile:token": {
1647
+ "release:delete": {
1622
1648
  "aliases": [],
1623
- "args": {},
1624
- "description": "Print the access token for the default profile",
1649
+ "args": {
1650
+ "release_name": {
1651
+ "description": "Release name to delete",
1652
+ "name": "release_name",
1653
+ "required": true
1654
+ }
1655
+ },
1656
+ "description": "Delete a release permanently. This action cannot be undone.",
1625
1657
  "examples": [
1626
- "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1627
- "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1658
+ "$ xano release delete v1.0\nAre you sure you want to delete release 'v1.0'? This action cannot be undone. (y/N) y\nDeleted release 'v1.0'\n",
1659
+ "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1660
+ "$ xano release delete v1.0 -f -o json"
1628
1661
  ],
1629
- "flags": {},
1662
+ "flags": {
1663
+ "profile": {
1664
+ "char": "p",
1665
+ "description": "Profile to use (uses default profile if not specified)",
1666
+ "env": "XANO_PROFILE",
1667
+ "name": "profile",
1668
+ "required": false,
1669
+ "hasDynamicHelp": false,
1670
+ "multiple": false,
1671
+ "type": "option"
1672
+ },
1673
+ "verbose": {
1674
+ "char": "v",
1675
+ "description": "Show detailed request/response information",
1676
+ "env": "XANO_VERBOSE",
1677
+ "name": "verbose",
1678
+ "required": false,
1679
+ "allowNo": false,
1680
+ "type": "boolean"
1681
+ },
1682
+ "force": {
1683
+ "char": "f",
1684
+ "description": "Skip confirmation prompt",
1685
+ "name": "force",
1686
+ "required": false,
1687
+ "allowNo": false,
1688
+ "type": "boolean"
1689
+ },
1690
+ "output": {
1691
+ "char": "o",
1692
+ "description": "Output format",
1693
+ "name": "output",
1694
+ "required": false,
1695
+ "default": "summary",
1696
+ "hasDynamicHelp": false,
1697
+ "multiple": false,
1698
+ "options": [
1699
+ "summary",
1700
+ "json"
1701
+ ],
1702
+ "type": "option"
1703
+ },
1704
+ "workspace": {
1705
+ "char": "w",
1706
+ "description": "Workspace ID (uses profile workspace if not provided)",
1707
+ "name": "workspace",
1708
+ "required": false,
1709
+ "hasDynamicHelp": false,
1710
+ "multiple": false,
1711
+ "type": "option"
1712
+ }
1713
+ },
1630
1714
  "hasDynamicHelp": false,
1631
1715
  "hiddenAliases": [],
1632
- "id": "profile:token",
1716
+ "id": "release:delete",
1633
1717
  "pluginAlias": "@xano/cli",
1634
1718
  "pluginName": "@xano/cli",
1635
1719
  "pluginType": "core",
@@ -1639,8 +1723,8 @@
1639
1723
  "relativePath": [
1640
1724
  "dist",
1641
1725
  "commands",
1642
- "profile",
1643
- "token",
1726
+ "release",
1727
+ "delete",
1644
1728
  "index.js"
1645
1729
  ]
1646
1730
  },
@@ -1781,19 +1865,20 @@
1781
1865
  "index.js"
1782
1866
  ]
1783
1867
  },
1784
- "release:edit": {
1868
+ "release:export": {
1785
1869
  "aliases": [],
1786
1870
  "args": {
1787
1871
  "release_name": {
1788
- "description": "Release name to edit",
1872
+ "description": "Release name to export",
1789
1873
  "name": "release_name",
1790
1874
  "required": true
1791
1875
  }
1792
1876
  },
1793
- "description": "Edit an existing release",
1877
+ "description": "Export (download) a release to a local file",
1794
1878
  "examples": [
1795
- "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
1796
- "$ xano release edit v1.0 --description \"New description\" -o json"
1879
+ "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
1880
+ "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
1881
+ "$ xano release export v1.0 -o json"
1797
1882
  ],
1798
1883
  "flags": {
1799
1884
  "profile": {
@@ -1815,28 +1900,10 @@
1815
1900
  "allowNo": false,
1816
1901
  "type": "boolean"
1817
1902
  },
1818
- "description": {
1819
- "char": "d",
1820
- "description": "New description",
1821
- "name": "description",
1822
- "required": false,
1823
- "hasDynamicHelp": false,
1824
- "multiple": false,
1825
- "type": "option"
1826
- },
1827
- "name": {
1828
- "char": "n",
1829
- "description": "New name for the release",
1830
- "name": "name",
1831
- "required": false,
1832
- "hasDynamicHelp": false,
1833
- "multiple": false,
1834
- "type": "option"
1835
- },
1836
- "output": {
1903
+ "format": {
1837
1904
  "char": "o",
1838
1905
  "description": "Output format",
1839
- "name": "output",
1906
+ "name": "format",
1840
1907
  "required": false,
1841
1908
  "default": "summary",
1842
1909
  "hasDynamicHelp": false,
@@ -1847,6 +1914,14 @@
1847
1914
  ],
1848
1915
  "type": "option"
1849
1916
  },
1917
+ "output": {
1918
+ "description": "Output file path (defaults to ./release-{name}.tar.gz)",
1919
+ "name": "output",
1920
+ "required": false,
1921
+ "hasDynamicHelp": false,
1922
+ "multiple": false,
1923
+ "type": "option"
1924
+ },
1850
1925
  "workspace": {
1851
1926
  "char": "w",
1852
1927
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -1859,7 +1934,7 @@
1859
1934
  },
1860
1935
  "hasDynamicHelp": false,
1861
1936
  "hiddenAliases": [],
1862
- "id": "release:edit",
1937
+ "id": "release:export",
1863
1938
  "pluginAlias": "@xano/cli",
1864
1939
  "pluginName": "@xano/cli",
1865
1940
  "pluginType": "core",
@@ -1870,24 +1945,23 @@
1870
1945
  "dist",
1871
1946
  "commands",
1872
1947
  "release",
1873
- "edit",
1948
+ "export",
1874
1949
  "index.js"
1875
1950
  ]
1876
1951
  },
1877
- "release:delete": {
1952
+ "release:edit": {
1878
1953
  "aliases": [],
1879
1954
  "args": {
1880
1955
  "release_name": {
1881
- "description": "Release name to delete",
1956
+ "description": "Release name to edit",
1882
1957
  "name": "release_name",
1883
1958
  "required": true
1884
1959
  }
1885
1960
  },
1886
- "description": "Delete a release permanently. This action cannot be undone.",
1961
+ "description": "Edit an existing release",
1887
1962
  "examples": [
1888
- "$ xano release delete v1.0\nAre you sure you want to delete release 'v1.0'? This action cannot be undone. (y/N) y\nDeleted release 'v1.0'\n",
1889
- "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1890
- "$ xano release delete v1.0 -f -o json"
1963
+ "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
1964
+ "$ xano release edit v1.0 --description \"New description\" -o json"
1891
1965
  ],
1892
1966
  "flags": {
1893
1967
  "profile": {
@@ -1909,13 +1983,23 @@
1909
1983
  "allowNo": false,
1910
1984
  "type": "boolean"
1911
1985
  },
1912
- "force": {
1913
- "char": "f",
1914
- "description": "Skip confirmation prompt",
1915
- "name": "force",
1986
+ "description": {
1987
+ "char": "d",
1988
+ "description": "New description",
1989
+ "name": "description",
1916
1990
  "required": false,
1917
- "allowNo": false,
1918
- "type": "boolean"
1991
+ "hasDynamicHelp": false,
1992
+ "multiple": false,
1993
+ "type": "option"
1994
+ },
1995
+ "name": {
1996
+ "char": "n",
1997
+ "description": "New name for the release",
1998
+ "name": "name",
1999
+ "required": false,
2000
+ "hasDynamicHelp": false,
2001
+ "multiple": false,
2002
+ "type": "option"
1919
2003
  },
1920
2004
  "output": {
1921
2005
  "char": "o",
@@ -1943,7 +2027,7 @@
1943
2027
  },
1944
2028
  "hasDynamicHelp": false,
1945
2029
  "hiddenAliases": [],
1946
- "id": "release:delete",
2030
+ "id": "release:edit",
1947
2031
  "pluginAlias": "@xano/cli",
1948
2032
  "pluginName": "@xano/cli",
1949
2033
  "pluginType": "core",
@@ -1954,24 +2038,17 @@
1954
2038
  "dist",
1955
2039
  "commands",
1956
2040
  "release",
1957
- "delete",
2041
+ "edit",
1958
2042
  "index.js"
1959
2043
  ]
1960
2044
  },
1961
- "release:export": {
2045
+ "release:import": {
1962
2046
  "aliases": [],
1963
- "args": {
1964
- "release_name": {
1965
- "description": "Release name to export",
1966
- "name": "release_name",
1967
- "required": true
1968
- }
1969
- },
1970
- "description": "Export (download) a release to a local file",
2047
+ "args": {},
2048
+ "description": "Import a release file into a workspace",
1971
2049
  "examples": [
1972
- "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
1973
- "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
1974
- "$ xano release export v1.0 -o json"
2050
+ "$ xano release import --file ./my-release.tar.gz\nImported release as #15\n",
2051
+ "$ xano release import --file ./my-release.tar.gz -o json"
1975
2052
  ],
1976
2053
  "flags": {
1977
2054
  "profile": {
@@ -1993,10 +2070,19 @@
1993
2070
  "allowNo": false,
1994
2071
  "type": "boolean"
1995
2072
  },
1996
- "format": {
2073
+ "file": {
2074
+ "char": "f",
2075
+ "description": "Path to the release file (.tar.gz)",
2076
+ "name": "file",
2077
+ "required": true,
2078
+ "hasDynamicHelp": false,
2079
+ "multiple": false,
2080
+ "type": "option"
2081
+ },
2082
+ "output": {
1997
2083
  "char": "o",
1998
2084
  "description": "Output format",
1999
- "name": "format",
2085
+ "name": "output",
2000
2086
  "required": false,
2001
2087
  "default": "summary",
2002
2088
  "hasDynamicHelp": false,
@@ -2007,14 +2093,6 @@
2007
2093
  ],
2008
2094
  "type": "option"
2009
2095
  },
2010
- "output": {
2011
- "description": "Output file path (defaults to ./release-{name}.tar.gz)",
2012
- "name": "output",
2013
- "required": false,
2014
- "hasDynamicHelp": false,
2015
- "multiple": false,
2016
- "type": "option"
2017
- },
2018
2096
  "workspace": {
2019
2097
  "char": "w",
2020
2098
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2027,7 +2105,7 @@
2027
2105
  },
2028
2106
  "hasDynamicHelp": false,
2029
2107
  "hiddenAliases": [],
2030
- "id": "release:export",
2108
+ "id": "release:import",
2031
2109
  "pluginAlias": "@xano/cli",
2032
2110
  "pluginName": "@xano/cli",
2033
2111
  "pluginType": "core",
@@ -2038,102 +2116,24 @@
2038
2116
  "dist",
2039
2117
  "commands",
2040
2118
  "release",
2041
- "export",
2119
+ "import",
2042
2120
  "index.js"
2043
2121
  ]
2044
2122
  },
2045
- "release:import": {
2123
+ "release:pull": {
2046
2124
  "aliases": [],
2047
- "args": {},
2048
- "description": "Import a release file into a workspace",
2125
+ "args": {
2126
+ "directory": {
2127
+ "description": "Output directory for pulled documents",
2128
+ "name": "directory",
2129
+ "required": true
2130
+ }
2131
+ },
2132
+ "description": "Pull a release multidoc from the Xano Metadata API and split into individual files",
2049
2133
  "examples": [
2050
- "$ xano release import --file ./my-release.tar.gz\nImported release as #15\n",
2051
- "$ xano release import --file ./my-release.tar.gz -o json"
2052
- ],
2053
- "flags": {
2054
- "profile": {
2055
- "char": "p",
2056
- "description": "Profile to use (uses default profile if not specified)",
2057
- "env": "XANO_PROFILE",
2058
- "name": "profile",
2059
- "required": false,
2060
- "hasDynamicHelp": false,
2061
- "multiple": false,
2062
- "type": "option"
2063
- },
2064
- "verbose": {
2065
- "char": "v",
2066
- "description": "Show detailed request/response information",
2067
- "env": "XANO_VERBOSE",
2068
- "name": "verbose",
2069
- "required": false,
2070
- "allowNo": false,
2071
- "type": "boolean"
2072
- },
2073
- "file": {
2074
- "char": "f",
2075
- "description": "Path to the release file (.tar.gz)",
2076
- "name": "file",
2077
- "required": true,
2078
- "hasDynamicHelp": false,
2079
- "multiple": false,
2080
- "type": "option"
2081
- },
2082
- "output": {
2083
- "char": "o",
2084
- "description": "Output format",
2085
- "name": "output",
2086
- "required": false,
2087
- "default": "summary",
2088
- "hasDynamicHelp": false,
2089
- "multiple": false,
2090
- "options": [
2091
- "summary",
2092
- "json"
2093
- ],
2094
- "type": "option"
2095
- },
2096
- "workspace": {
2097
- "char": "w",
2098
- "description": "Workspace ID (uses profile workspace if not provided)",
2099
- "name": "workspace",
2100
- "required": false,
2101
- "hasDynamicHelp": false,
2102
- "multiple": false,
2103
- "type": "option"
2104
- }
2105
- },
2106
- "hasDynamicHelp": false,
2107
- "hiddenAliases": [],
2108
- "id": "release:import",
2109
- "pluginAlias": "@xano/cli",
2110
- "pluginName": "@xano/cli",
2111
- "pluginType": "core",
2112
- "strict": true,
2113
- "enableJsonFlag": false,
2114
- "isESM": true,
2115
- "relativePath": [
2116
- "dist",
2117
- "commands",
2118
- "release",
2119
- "import",
2120
- "index.js"
2121
- ]
2122
- },
2123
- "release:pull": {
2124
- "aliases": [],
2125
- "args": {
2126
- "directory": {
2127
- "description": "Output directory for pulled documents",
2128
- "name": "directory",
2129
- "required": true
2130
- }
2131
- },
2132
- "description": "Pull a release multidoc from the Xano Metadata API and split into individual files",
2133
- "examples": [
2134
- "$ xano release pull ./my-release -r v1.0\nPulled 42 documents from release 'v1.0' to ./my-release\n",
2135
- "$ xano release pull ./output -r v1.0 -w 40\nPulled 15 documents from release 'v1.0' to ./output\n",
2136
- "$ xano release pull ./backup -r v1.0 --profile production --env --records\nPulled 58 documents from release 'v1.0' to ./backup\n"
2134
+ "$ xano release pull ./my-release -r v1.0\nPulled 42 documents from release 'v1.0' to ./my-release\n",
2135
+ "$ xano release pull ./output -r v1.0 -w 40\nPulled 15 documents from release 'v1.0' to ./output\n",
2136
+ "$ xano release pull ./backup -r v1.0 --profile production --env --records\nPulled 58 documents from release 'v1.0' to ./backup\n"
2137
2137
  ],
2138
2138
  "flags": {
2139
2139
  "profile": {
@@ -2205,13 +2205,19 @@
2205
2205
  "index.js"
2206
2206
  ]
2207
2207
  },
2208
- "release:list": {
2208
+ "release:get": {
2209
2209
  "aliases": [],
2210
- "args": {},
2211
- "description": "List all releases in a workspace",
2210
+ "args": {
2211
+ "release_name": {
2212
+ "description": "Release name to retrieve",
2213
+ "name": "release_name",
2214
+ "required": true
2215
+ }
2216
+ },
2217
+ "description": "Get details of a specific release",
2212
2218
  "examples": [
2213
- "$ xano release list\nReleases in workspace 5:\n - v1.0 (ID: 10) - main\n - v1.1-hotfix (ID: 11) - main [hotfix]\n",
2214
- "$ xano release list -w 5 --output json"
2219
+ "$ xano release get v1.0\nRelease: v1.0 - ID: 10\n Branch: main\n Description: Initial release\n Hotfix: false\n",
2220
+ "$ xano release get v1.0 -w 5 -o json"
2215
2221
  ],
2216
2222
  "flags": {
2217
2223
  "profile": {
@@ -2259,7 +2265,7 @@
2259
2265
  },
2260
2266
  "hasDynamicHelp": false,
2261
2267
  "hiddenAliases": [],
2262
- "id": "release:list",
2268
+ "id": "release:get",
2263
2269
  "pluginAlias": "@xano/cli",
2264
2270
  "pluginName": "@xano/cli",
2265
2271
  "pluginType": "core",
@@ -2270,23 +2276,17 @@
2270
2276
  "dist",
2271
2277
  "commands",
2272
2278
  "release",
2273
- "list",
2279
+ "get",
2274
2280
  "index.js"
2275
2281
  ]
2276
2282
  },
2277
- "release:get": {
2283
+ "release:list": {
2278
2284
  "aliases": [],
2279
- "args": {
2280
- "release_name": {
2281
- "description": "Release name to retrieve",
2282
- "name": "release_name",
2283
- "required": true
2284
- }
2285
- },
2286
- "description": "Get details of a specific release",
2285
+ "args": {},
2286
+ "description": "List all releases in a workspace",
2287
2287
  "examples": [
2288
- "$ xano release get v1.0\nRelease: v1.0 - ID: 10\n Branch: main\n Description: Initial release\n Hotfix: false\n",
2289
- "$ xano release get v1.0 -w 5 -o json"
2288
+ "$ xano release list\nReleases in workspace 5:\n - v1.0 (ID: 10) - main\n - v1.1-hotfix (ID: 11) - main [hotfix]\n",
2289
+ "$ xano release list -w 5 --output json"
2290
2290
  ],
2291
2291
  "flags": {
2292
2292
  "profile": {
@@ -2334,7 +2334,7 @@
2334
2334
  },
2335
2335
  "hasDynamicHelp": false,
2336
2336
  "hiddenAliases": [],
2337
- "id": "release:get",
2337
+ "id": "release:list",
2338
2338
  "pluginAlias": "@xano/cli",
2339
2339
  "pluginName": "@xano/cli",
2340
2340
  "pluginType": "core",
@@ -2345,7 +2345,7 @@
2345
2345
  "dist",
2346
2346
  "commands",
2347
2347
  "release",
2348
- "get",
2348
+ "list",
2349
2349
  "index.js"
2350
2350
  ]
2351
2351
  },
@@ -2467,20 +2467,15 @@
2467
2467
  "index.js"
2468
2468
  ]
2469
2469
  },
2470
- "tenant:delete": {
2470
+ "static_host:list": {
2471
2471
  "aliases": [],
2472
- "args": {
2473
- "tenant_name": {
2474
- "description": "Tenant name to delete",
2475
- "name": "tenant_name",
2476
- "required": true
2477
- }
2478
- },
2479
- "description": "Delete a tenant permanently. This destroys all associated infrastructure and cannot be undone.",
2472
+ "args": {},
2473
+ "description": "List all static hosts in a workspace from the Xano Metadata API",
2480
2474
  "examples": [
2481
- "$ xano tenant delete t1234-abcd-xyz1\nAre you sure you want to delete tenant t1234-abcd-xyz1? This action cannot be undone. (y/N) y\nDeleted tenant t1234-abcd-xyz1\n",
2482
- "$ xano tenant delete t1234-abcd-xyz1 --force\nDeleted tenant t1234-abcd-xyz1\n",
2483
- "$ xano tenant delete t1234-abcd-xyz1 -f -o json"
2475
+ "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2476
+ "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2477
+ "$ 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",
2478
+ "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
2484
2479
  ],
2485
2480
  "flags": {
2486
2481
  "profile": {
@@ -2502,14 +2497,6 @@
2502
2497
  "allowNo": false,
2503
2498
  "type": "boolean"
2504
2499
  },
2505
- "force": {
2506
- "char": "f",
2507
- "description": "Skip confirmation prompt",
2508
- "name": "force",
2509
- "required": false,
2510
- "allowNo": false,
2511
- "type": "boolean"
2512
- },
2513
2500
  "output": {
2514
2501
  "char": "o",
2515
2502
  "description": "Output format",
@@ -2524,9 +2511,27 @@
2524
2511
  ],
2525
2512
  "type": "option"
2526
2513
  },
2514
+ "page": {
2515
+ "description": "Page number for pagination",
2516
+ "name": "page",
2517
+ "required": false,
2518
+ "default": 1,
2519
+ "hasDynamicHelp": false,
2520
+ "multiple": false,
2521
+ "type": "option"
2522
+ },
2523
+ "per_page": {
2524
+ "description": "Number of results per page",
2525
+ "name": "per_page",
2526
+ "required": false,
2527
+ "default": 50,
2528
+ "hasDynamicHelp": false,
2529
+ "multiple": false,
2530
+ "type": "option"
2531
+ },
2527
2532
  "workspace": {
2528
2533
  "char": "w",
2529
- "description": "Workspace ID (uses profile workspace if not provided)",
2534
+ "description": "Workspace ID (optional if set in profile)",
2530
2535
  "name": "workspace",
2531
2536
  "required": false,
2532
2537
  "hasDynamicHelp": false,
@@ -2536,7 +2541,7 @@
2536
2541
  },
2537
2542
  "hasDynamicHelp": false,
2538
2543
  "hiddenAliases": [],
2539
- "id": "tenant:delete",
2544
+ "id": "static_host:list",
2540
2545
  "pluginAlias": "@xano/cli",
2541
2546
  "pluginName": "@xano/cli",
2542
2547
  "pluginType": "core",
@@ -2546,8 +2551,8 @@
2546
2551
  "relativePath": [
2547
2552
  "dist",
2548
2553
  "commands",
2549
- "tenant",
2550
- "delete",
2554
+ "static_host",
2555
+ "list",
2551
2556
  "index.js"
2552
2557
  ]
2553
2558
  },
@@ -2774,19 +2779,20 @@
2774
2779
  "index.js"
2775
2780
  ]
2776
2781
  },
2777
- "tenant:edit": {
2782
+ "tenant:delete": {
2778
2783
  "aliases": [],
2779
2784
  "args": {
2780
2785
  "tenant_name": {
2781
- "description": "Tenant name to edit",
2786
+ "description": "Tenant name to delete",
2782
2787
  "name": "tenant_name",
2783
2788
  "required": true
2784
2789
  }
2785
2790
  },
2786
- "description": "Edit an existing tenant",
2791
+ "description": "Delete a tenant permanently. This destroys all associated infrastructure and cannot be undone.",
2787
2792
  "examples": [
2788
- "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
2789
- "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
2793
+ "$ xano tenant delete t1234-abcd-xyz1\nAre you sure you want to delete tenant t1234-abcd-xyz1? This action cannot be undone. (y/N) y\nDeleted tenant t1234-abcd-xyz1\n",
2794
+ "$ xano tenant delete t1234-abcd-xyz1 --force\nDeleted tenant t1234-abcd-xyz1\n",
2795
+ "$ xano tenant delete t1234-abcd-xyz1 -f -o json"
2790
2796
  ],
2791
2797
  "flags": {
2792
2798
  "profile": {
@@ -2808,36 +2814,12 @@
2808
2814
  "allowNo": false,
2809
2815
  "type": "boolean"
2810
2816
  },
2811
- "description": {
2812
- "char": "d",
2813
- "description": "New description",
2814
- "name": "description",
2815
- "required": false,
2816
- "hasDynamicHelp": false,
2817
- "multiple": false,
2818
- "type": "option"
2819
- },
2820
- "display": {
2821
- "description": "New display name",
2822
- "name": "display",
2823
- "required": false,
2824
- "hasDynamicHelp": false,
2825
- "multiple": false,
2826
- "type": "option"
2827
- },
2828
- "domain": {
2829
- "description": "Custom domain",
2830
- "name": "domain",
2831
- "required": false,
2832
- "hasDynamicHelp": false,
2833
- "multiple": false,
2834
- "type": "option"
2835
- },
2836
- "ingress": {
2837
- "description": "Enable/disable ingress",
2838
- "name": "ingress",
2817
+ "force": {
2818
+ "char": "f",
2819
+ "description": "Skip confirmation prompt",
2820
+ "name": "force",
2839
2821
  "required": false,
2840
- "allowNo": true,
2822
+ "allowNo": false,
2841
2823
  "type": "boolean"
2842
2824
  },
2843
2825
  "output": {
@@ -2854,28 +2836,6 @@
2854
2836
  ],
2855
2837
  "type": "option"
2856
2838
  },
2857
- "proxy": {
2858
- "description": "Proxy URL",
2859
- "name": "proxy",
2860
- "required": false,
2861
- "hasDynamicHelp": false,
2862
- "multiple": false,
2863
- "type": "option"
2864
- },
2865
- "rbac": {
2866
- "description": "Enable/disable RBAC",
2867
- "name": "rbac",
2868
- "required": false,
2869
- "allowNo": true,
2870
- "type": "boolean"
2871
- },
2872
- "tasks": {
2873
- "description": "Enable/disable background tasks",
2874
- "name": "tasks",
2875
- "required": false,
2876
- "allowNo": true,
2877
- "type": "boolean"
2878
- },
2879
2839
  "workspace": {
2880
2840
  "char": "w",
2881
2841
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2888,7 +2848,7 @@
2888
2848
  },
2889
2849
  "hasDynamicHelp": false,
2890
2850
  "hiddenAliases": [],
2891
- "id": "tenant:edit",
2851
+ "id": "tenant:delete",
2892
2852
  "pluginAlias": "@xano/cli",
2893
2853
  "pluginName": "@xano/cli",
2894
2854
  "pluginType": "core",
@@ -2899,7 +2859,7 @@
2899
2859
  "dist",
2900
2860
  "commands",
2901
2861
  "tenant",
2902
- "edit",
2862
+ "delete",
2903
2863
  "index.js"
2904
2864
  ]
2905
2865
  },
@@ -3062,13 +3022,19 @@
3062
3022
  "index.js"
3063
3023
  ]
3064
3024
  },
3065
- "tenant:list": {
3025
+ "tenant:edit": {
3066
3026
  "aliases": [],
3067
- "args": {},
3068
- "description": "List all tenants in a workspace",
3027
+ "args": {
3028
+ "tenant_name": {
3029
+ "description": "Tenant name to edit",
3030
+ "name": "tenant_name",
3031
+ "required": true
3032
+ }
3033
+ },
3034
+ "description": "Edit an existing tenant",
3069
3035
  "examples": [
3070
- "$ xano tenant list\nTenants in workspace 5:\n - My Tenant (my-tenant) [ok] - tier1\n - Staging (staging) [ok] - tier1\n",
3071
- "$ xano tenant list -w 5 --output json"
3036
+ "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
3037
+ "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
3072
3038
  ],
3073
3039
  "flags": {
3074
3040
  "profile": {
@@ -3090,6 +3056,38 @@
3090
3056
  "allowNo": false,
3091
3057
  "type": "boolean"
3092
3058
  },
3059
+ "description": {
3060
+ "char": "d",
3061
+ "description": "New description",
3062
+ "name": "description",
3063
+ "required": false,
3064
+ "hasDynamicHelp": false,
3065
+ "multiple": false,
3066
+ "type": "option"
3067
+ },
3068
+ "display": {
3069
+ "description": "New display name",
3070
+ "name": "display",
3071
+ "required": false,
3072
+ "hasDynamicHelp": false,
3073
+ "multiple": false,
3074
+ "type": "option"
3075
+ },
3076
+ "domain": {
3077
+ "description": "Custom domain",
3078
+ "name": "domain",
3079
+ "required": false,
3080
+ "hasDynamicHelp": false,
3081
+ "multiple": false,
3082
+ "type": "option"
3083
+ },
3084
+ "ingress": {
3085
+ "description": "Enable/disable ingress",
3086
+ "name": "ingress",
3087
+ "required": false,
3088
+ "allowNo": true,
3089
+ "type": "boolean"
3090
+ },
3093
3091
  "output": {
3094
3092
  "char": "o",
3095
3093
  "description": "Output format",
@@ -3104,6 +3102,28 @@
3104
3102
  ],
3105
3103
  "type": "option"
3106
3104
  },
3105
+ "proxy": {
3106
+ "description": "Proxy URL",
3107
+ "name": "proxy",
3108
+ "required": false,
3109
+ "hasDynamicHelp": false,
3110
+ "multiple": false,
3111
+ "type": "option"
3112
+ },
3113
+ "rbac": {
3114
+ "description": "Enable/disable RBAC",
3115
+ "name": "rbac",
3116
+ "required": false,
3117
+ "allowNo": true,
3118
+ "type": "boolean"
3119
+ },
3120
+ "tasks": {
3121
+ "description": "Enable/disable background tasks",
3122
+ "name": "tasks",
3123
+ "required": false,
3124
+ "allowNo": true,
3125
+ "type": "boolean"
3126
+ },
3107
3127
  "workspace": {
3108
3128
  "char": "w",
3109
3129
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3116,7 +3136,7 @@
3116
3136
  },
3117
3137
  "hasDynamicHelp": false,
3118
3138
  "hiddenAliases": [],
3119
- "id": "tenant:list",
3139
+ "id": "tenant:edit",
3120
3140
  "pluginAlias": "@xano/cli",
3121
3141
  "pluginName": "@xano/cli",
3122
3142
  "pluginType": "core",
@@ -3127,7 +3147,7 @@
3127
3147
  "dist",
3128
3148
  "commands",
3129
3149
  "tenant",
3130
- "list",
3150
+ "edit",
3131
3151
  "index.js"
3132
3152
  ]
3133
3153
  },
@@ -3307,23 +3327,13 @@
3307
3327
  "index.js"
3308
3328
  ]
3309
3329
  },
3310
- "tenant:push": {
3330
+ "tenant:list": {
3311
3331
  "aliases": [],
3312
- "args": {
3313
- "directory": {
3314
- "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3315
- "name": "directory",
3316
- "required": true
3317
- }
3318
- },
3319
- "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3332
+ "args": {},
3333
+ "description": "List all tenants in a workspace",
3320
3334
  "examples": [
3321
- "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
3322
- "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
3323
- "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
3324
- "$ xano tenant push ./my-workspace -t my-tenant --no-records\nPush schema only, skip importing table records\n",
3325
- "$ xano tenant push ./my-workspace -t my-tenant --no-env\nPush without overwriting environment variables\n",
3326
- "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
3335
+ "$ xano tenant list\nTenants in workspace 5:\n - My Tenant (my-tenant) [ok] - tier1\n - Staging (staging) [ok] - tier1\n",
3336
+ "$ xano tenant list -w 5 --output json"
3327
3337
  ],
3328
3338
  "flags": {
3329
3339
  "profile": {
@@ -3345,39 +3355,23 @@
3345
3355
  "allowNo": false,
3346
3356
  "type": "boolean"
3347
3357
  },
3348
- "env": {
3349
- "description": "Include environment variables in import (default: true, use --no-env to exclude)",
3350
- "name": "env",
3351
- "required": false,
3352
- "allowNo": true,
3353
- "type": "boolean"
3354
- },
3355
- "records": {
3356
- "description": "Include records in import (default: true, use --no-records to exclude)",
3357
- "name": "records",
3358
+ "output": {
3359
+ "char": "o",
3360
+ "description": "Output format",
3361
+ "name": "output",
3358
3362
  "required": false,
3359
- "allowNo": true,
3360
- "type": "boolean"
3361
- },
3362
- "tenant": {
3363
- "char": "t",
3364
- "description": "Tenant name to push to",
3365
- "name": "tenant",
3366
- "required": true,
3363
+ "default": "summary",
3367
3364
  "hasDynamicHelp": false,
3368
3365
  "multiple": false,
3366
+ "options": [
3367
+ "summary",
3368
+ "json"
3369
+ ],
3369
3370
  "type": "option"
3370
3371
  },
3371
- "truncate": {
3372
- "description": "Truncate all table records before importing",
3373
- "name": "truncate",
3374
- "required": false,
3375
- "allowNo": false,
3376
- "type": "boolean"
3377
- },
3378
3372
  "workspace": {
3379
3373
  "char": "w",
3380
- "description": "Workspace ID (optional if set in profile)",
3374
+ "description": "Workspace ID (uses profile workspace if not provided)",
3381
3375
  "name": "workspace",
3382
3376
  "required": false,
3383
3377
  "hasDynamicHelp": false,
@@ -3387,7 +3381,7 @@
3387
3381
  },
3388
3382
  "hasDynamicHelp": false,
3389
3383
  "hiddenAliases": [],
3390
- "id": "tenant:push",
3384
+ "id": "tenant:list",
3391
3385
  "pluginAlias": "@xano/cli",
3392
3386
  "pluginName": "@xano/cli",
3393
3387
  "pluginType": "core",
@@ -3398,19 +3392,18 @@
3398
3392
  "dist",
3399
3393
  "commands",
3400
3394
  "tenant",
3401
- "push",
3395
+ "list",
3402
3396
  "index.js"
3403
3397
  ]
3404
3398
  },
3405
- "static_host:list": {
3399
+ "unit_test:list": {
3406
3400
  "aliases": [],
3407
3401
  "args": {},
3408
- "description": "List all static hosts in a workspace from the Xano Metadata API",
3402
+ "description": "List all unit tests in a workspace",
3409
3403
  "examples": [
3410
- "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
3411
- "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
3412
- "$ 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",
3413
- "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
3404
+ "$ 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",
3405
+ "$ xano unit-test list -w 5 --output json",
3406
+ "$ xano unit-test list --obj-type function"
3414
3407
  ],
3415
3408
  "flags": {
3416
3409
  "profile": {
@@ -3432,6 +3425,28 @@
3432
3425
  "allowNo": false,
3433
3426
  "type": "boolean"
3434
3427
  },
3428
+ "branch": {
3429
+ "char": "b",
3430
+ "description": "Filter by branch name",
3431
+ "name": "branch",
3432
+ "required": false,
3433
+ "hasDynamicHelp": false,
3434
+ "multiple": false,
3435
+ "type": "option"
3436
+ },
3437
+ "obj-type": {
3438
+ "description": "Filter by object type",
3439
+ "name": "obj-type",
3440
+ "required": false,
3441
+ "hasDynamicHelp": false,
3442
+ "multiple": false,
3443
+ "options": [
3444
+ "function",
3445
+ "query",
3446
+ "middleware"
3447
+ ],
3448
+ "type": "option"
3449
+ },
3435
3450
  "output": {
3436
3451
  "char": "o",
3437
3452
  "description": "Output format",
@@ -3446,24 +3461,101 @@
3446
3461
  ],
3447
3462
  "type": "option"
3448
3463
  },
3449
- "page": {
3450
- "description": "Page number for pagination",
3451
- "name": "page",
3464
+ "workspace": {
3465
+ "char": "w",
3466
+ "description": "Workspace ID (uses profile workspace if not provided)",
3467
+ "name": "workspace",
3468
+ "required": false,
3469
+ "hasDynamicHelp": false,
3470
+ "multiple": false,
3471
+ "type": "option"
3472
+ }
3473
+ },
3474
+ "hasDynamicHelp": false,
3475
+ "hiddenAliases": [],
3476
+ "id": "unit_test:list",
3477
+ "pluginAlias": "@xano/cli",
3478
+ "pluginName": "@xano/cli",
3479
+ "pluginType": "core",
3480
+ "strict": true,
3481
+ "enableJsonFlag": false,
3482
+ "isESM": true,
3483
+ "relativePath": [
3484
+ "dist",
3485
+ "commands",
3486
+ "unit_test",
3487
+ "list",
3488
+ "index.js"
3489
+ ]
3490
+ },
3491
+ "tenant:push": {
3492
+ "aliases": [],
3493
+ "args": {
3494
+ "directory": {
3495
+ "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3496
+ "name": "directory",
3497
+ "required": true
3498
+ }
3499
+ },
3500
+ "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3501
+ "examples": [
3502
+ "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
3503
+ "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
3504
+ "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
3505
+ "$ xano tenant push ./my-workspace -t my-tenant --no-records\nPush schema only, skip importing table records\n",
3506
+ "$ xano tenant push ./my-workspace -t my-tenant --no-env\nPush without overwriting environment variables\n",
3507
+ "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
3508
+ ],
3509
+ "flags": {
3510
+ "profile": {
3511
+ "char": "p",
3512
+ "description": "Profile to use (uses default profile if not specified)",
3513
+ "env": "XANO_PROFILE",
3514
+ "name": "profile",
3452
3515
  "required": false,
3453
- "default": 1,
3454
3516
  "hasDynamicHelp": false,
3455
3517
  "multiple": false,
3456
3518
  "type": "option"
3457
3519
  },
3458
- "per_page": {
3459
- "description": "Number of results per page",
3460
- "name": "per_page",
3520
+ "verbose": {
3521
+ "char": "v",
3522
+ "description": "Show detailed request/response information",
3523
+ "env": "XANO_VERBOSE",
3524
+ "name": "verbose",
3461
3525
  "required": false,
3462
- "default": 50,
3526
+ "allowNo": false,
3527
+ "type": "boolean"
3528
+ },
3529
+ "env": {
3530
+ "description": "Include environment variables in import (default: true, use --no-env to exclude)",
3531
+ "name": "env",
3532
+ "required": false,
3533
+ "allowNo": true,
3534
+ "type": "boolean"
3535
+ },
3536
+ "records": {
3537
+ "description": "Include records in import (default: true, use --no-records to exclude)",
3538
+ "name": "records",
3539
+ "required": false,
3540
+ "allowNo": true,
3541
+ "type": "boolean"
3542
+ },
3543
+ "tenant": {
3544
+ "char": "t",
3545
+ "description": "Tenant name to push to",
3546
+ "name": "tenant",
3547
+ "required": true,
3463
3548
  "hasDynamicHelp": false,
3464
3549
  "multiple": false,
3465
3550
  "type": "option"
3466
3551
  },
3552
+ "truncate": {
3553
+ "description": "Truncate all table records before importing",
3554
+ "name": "truncate",
3555
+ "required": false,
3556
+ "allowNo": false,
3557
+ "type": "boolean"
3558
+ },
3467
3559
  "workspace": {
3468
3560
  "char": "w",
3469
3561
  "description": "Workspace ID (optional if set in profile)",
@@ -3476,7 +3568,7 @@
3476
3568
  },
3477
3569
  "hasDynamicHelp": false,
3478
3570
  "hiddenAliases": [],
3479
- "id": "static_host:list",
3571
+ "id": "tenant:push",
3480
3572
  "pluginAlias": "@xano/cli",
3481
3573
  "pluginName": "@xano/cli",
3482
3574
  "pluginType": "core",
@@ -3486,8 +3578,8 @@
3486
3578
  "relativePath": [
3487
3579
  "dist",
3488
3580
  "commands",
3489
- "static_host",
3490
- "list",
3581
+ "tenant",
3582
+ "push",
3491
3583
  "index.js"
3492
3584
  ]
3493
3585
  },
@@ -3566,20 +3658,19 @@
3566
3658
  "index.js"
3567
3659
  ]
3568
3660
  },
3569
- "workspace:create": {
3661
+ "workflow_test:delete": {
3570
3662
  "aliases": [],
3571
3663
  "args": {
3572
- "name": {
3573
- "description": "Name of the workspace",
3574
- "name": "name",
3664
+ "workflow_test_id": {
3665
+ "description": "ID of the workflow test to delete",
3666
+ "name": "workflow_test_id",
3575
3667
  "required": true
3576
3668
  }
3577
3669
  },
3578
- "description": "Create a new workspace via the Xano Metadata API",
3670
+ "description": "Delete a workflow test",
3579
3671
  "examples": [
3580
- "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
3581
- "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
3582
- "$ 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"
3672
+ "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
3673
+ "$ xano workflow-test delete 1 --force"
3583
3674
  ],
3584
3675
  "flags": {
3585
3676
  "profile": {
@@ -3601,14 +3692,13 @@
3601
3692
  "allowNo": false,
3602
3693
  "type": "boolean"
3603
3694
  },
3604
- "description": {
3605
- "char": "d",
3606
- "description": "Description for the workspace",
3607
- "name": "description",
3695
+ "force": {
3696
+ "char": "f",
3697
+ "description": "Skip confirmation prompt",
3698
+ "name": "force",
3608
3699
  "required": false,
3609
- "hasDynamicHelp": false,
3610
- "multiple": false,
3611
- "type": "option"
3700
+ "allowNo": false,
3701
+ "type": "boolean"
3612
3702
  },
3613
3703
  "output": {
3614
3704
  "char": "o",
@@ -3623,11 +3713,20 @@
3623
3713
  "json"
3624
3714
  ],
3625
3715
  "type": "option"
3716
+ },
3717
+ "workspace": {
3718
+ "char": "w",
3719
+ "description": "Workspace ID (uses profile workspace if not provided)",
3720
+ "name": "workspace",
3721
+ "required": false,
3722
+ "hasDynamicHelp": false,
3723
+ "multiple": false,
3724
+ "type": "option"
3626
3725
  }
3627
3726
  },
3628
3727
  "hasDynamicHelp": false,
3629
3728
  "hiddenAliases": [],
3630
- "id": "workspace:create",
3729
+ "id": "workflow_test:delete",
3631
3730
  "pluginAlias": "@xano/cli",
3632
3731
  "pluginName": "@xano/cli",
3633
3732
  "pluginType": "core",
@@ -3637,19 +3736,25 @@
3637
3736
  "relativePath": [
3638
3737
  "dist",
3639
3738
  "commands",
3640
- "workspace",
3641
- "create",
3739
+ "workflow_test",
3740
+ "delete",
3642
3741
  "index.js"
3643
3742
  ]
3644
3743
  },
3645
- "unit_test:list": {
3744
+ "workflow_test:get": {
3646
3745
  "aliases": [],
3647
- "args": {},
3648
- "description": "List all unit tests in a workspace",
3746
+ "args": {
3747
+ "workflow_test_id": {
3748
+ "description": "ID of the workflow test",
3749
+ "name": "workflow_test_id",
3750
+ "required": true
3751
+ }
3752
+ },
3753
+ "description": "Get a specific workflow test",
3649
3754
  "examples": [
3650
- "$ 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",
3651
- "$ xano unit-test list -w 5 --output json",
3652
- "$ xano unit-test list --obj-type function"
3755
+ "$ xano workflow-test get 1\nWorkflow Test: my-test (ID: 1)\n Description: Validates auth endpoints\n Branch: main\n",
3756
+ "$ xano workflow-test get 1 -o xs",
3757
+ "$ xano workflow-test get 1 -o json"
3653
3758
  ],
3654
3759
  "flags": {
3655
3760
  "profile": {
@@ -3671,27 +3776,12 @@
3671
3776
  "allowNo": false,
3672
3777
  "type": "boolean"
3673
3778
  },
3674
- "branch": {
3675
- "char": "b",
3676
- "description": "Filter by branch name",
3677
- "name": "branch",
3678
- "required": false,
3679
- "hasDynamicHelp": false,
3680
- "multiple": false,
3681
- "type": "option"
3682
- },
3683
- "obj-type": {
3684
- "description": "Filter by object type",
3685
- "name": "obj-type",
3779
+ "include-draft": {
3780
+ "description": "Include draft version",
3781
+ "name": "include-draft",
3686
3782
  "required": false,
3687
- "hasDynamicHelp": false,
3688
- "multiple": false,
3689
- "options": [
3690
- "function",
3691
- "query",
3692
- "middleware"
3693
- ],
3694
- "type": "option"
3783
+ "allowNo": false,
3784
+ "type": "boolean"
3695
3785
  },
3696
3786
  "output": {
3697
3787
  "char": "o",
@@ -3703,7 +3793,8 @@
3703
3793
  "multiple": false,
3704
3794
  "options": [
3705
3795
  "summary",
3706
- "json"
3796
+ "json",
3797
+ "xs"
3707
3798
  ],
3708
3799
  "type": "option"
3709
3800
  },
@@ -3719,7 +3810,7 @@
3719
3810
  },
3720
3811
  "hasDynamicHelp": false,
3721
3812
  "hiddenAliases": [],
3722
- "id": "unit_test:list",
3813
+ "id": "workflow_test:get",
3723
3814
  "pluginAlias": "@xano/cli",
3724
3815
  "pluginName": "@xano/cli",
3725
3816
  "pluginType": "core",
@@ -3729,8 +3820,8 @@
3729
3820
  "relativePath": [
3730
3821
  "dist",
3731
3822
  "commands",
3732
- "unit_test",
3733
- "list",
3823
+ "workflow_test",
3824
+ "get",
3734
3825
  "index.js"
3735
3826
  ]
3736
3827
  },
@@ -3825,21 +3916,19 @@
3825
3916
  "index.js"
3826
3917
  ]
3827
3918
  },
3828
- "workspace:edit": {
3919
+ "workflow_test:run": {
3829
3920
  "aliases": [],
3830
3921
  "args": {
3831
- "workspace_id": {
3832
- "description": "Workspace ID to edit (uses profile workspace if not provided)",
3833
- "name": "workspace_id",
3834
- "required": false
3922
+ "workflow_test_id": {
3923
+ "description": "ID of the workflow test to run",
3924
+ "name": "workflow_test_id",
3925
+ "required": true
3835
3926
  }
3836
3927
  },
3837
- "description": "Edit an existing workspace via the Xano Metadata API",
3928
+ "description": "Run a workflow test",
3838
3929
  "examples": [
3839
- "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
3840
- "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
3841
- "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
3842
- "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
3930
+ "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
3931
+ "$ xano workflow-test run 1 -o json"
3843
3932
  ],
3844
3933
  "flags": {
3845
3934
  "profile": {
@@ -3861,24 +3950,6 @@
3861
3950
  "allowNo": false,
3862
3951
  "type": "boolean"
3863
3952
  },
3864
- "description": {
3865
- "char": "d",
3866
- "description": "New description for the workspace",
3867
- "name": "description",
3868
- "required": false,
3869
- "hasDynamicHelp": false,
3870
- "multiple": false,
3871
- "type": "option"
3872
- },
3873
- "name": {
3874
- "char": "n",
3875
- "description": "New name for the workspace",
3876
- "name": "name",
3877
- "required": false,
3878
- "hasDynamicHelp": false,
3879
- "multiple": false,
3880
- "type": "option"
3881
- },
3882
3953
  "output": {
3883
3954
  "char": "o",
3884
3955
  "description": "Output format",
@@ -3893,24 +3964,19 @@
3893
3964
  ],
3894
3965
  "type": "option"
3895
3966
  },
3896
- "require-token": {
3897
- "description": "Whether to require a token for documentation access",
3898
- "name": "require-token",
3899
- "required": false,
3900
- "allowNo": true,
3901
- "type": "boolean"
3902
- },
3903
- "swagger": {
3904
- "description": "Enable or disable swagger documentation",
3905
- "name": "swagger",
3967
+ "workspace": {
3968
+ "char": "w",
3969
+ "description": "Workspace ID (uses profile workspace if not provided)",
3970
+ "name": "workspace",
3906
3971
  "required": false,
3907
- "allowNo": true,
3908
- "type": "boolean"
3972
+ "hasDynamicHelp": false,
3973
+ "multiple": false,
3974
+ "type": "option"
3909
3975
  }
3910
3976
  },
3911
3977
  "hasDynamicHelp": false,
3912
3978
  "hiddenAliases": [],
3913
- "id": "workspace:edit",
3979
+ "id": "workflow_test:run",
3914
3980
  "pluginAlias": "@xano/cli",
3915
3981
  "pluginName": "@xano/cli",
3916
3982
  "pluginType": "core",
@@ -3920,25 +3986,18 @@
3920
3986
  "relativePath": [
3921
3987
  "dist",
3922
3988
  "commands",
3923
- "workspace",
3924
- "edit",
3989
+ "workflow_test",
3990
+ "run",
3925
3991
  "index.js"
3926
3992
  ]
3927
3993
  },
3928
- "workspace:get": {
3994
+ "workflow_test:run_all": {
3929
3995
  "aliases": [],
3930
- "args": {
3931
- "workspace_id": {
3932
- "description": "Workspace ID to get details for (uses profile workspace if not provided)",
3933
- "name": "workspace_id",
3934
- "required": false
3935
- }
3936
- },
3937
- "description": "Get details of a specific workspace from the Xano Metadata API",
3996
+ "args": {},
3997
+ "description": "Run all workflow tests in a workspace",
3938
3998
  "examples": [
3939
- "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
3940
- "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
3941
- "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
3999
+ "$ xano workflow-test run-all\nRunning 3 workflow tests...\n\nPASS my-test (1.234s)\nPASS auth-flow (0.567s)\nFAIL data-validation (0.890s)\n Error: assertion failed at step 3\n\nResults: 2 passed, 1 failed (2.691s total)\n",
4000
+ "$ xano workflow-test run-all --branch main -o json"
3942
4001
  ],
3943
4002
  "flags": {
3944
4003
  "profile": {
@@ -3960,6 +4019,15 @@
3960
4019
  "allowNo": false,
3961
4020
  "type": "boolean"
3962
4021
  },
4022
+ "branch": {
4023
+ "char": "b",
4024
+ "description": "Filter by branch name",
4025
+ "name": "branch",
4026
+ "required": false,
4027
+ "hasDynamicHelp": false,
4028
+ "multiple": false,
4029
+ "type": "option"
4030
+ },
3963
4031
  "output": {
3964
4032
  "char": "o",
3965
4033
  "description": "Output format",
@@ -3973,11 +4041,20 @@
3973
4041
  "json"
3974
4042
  ],
3975
4043
  "type": "option"
4044
+ },
4045
+ "workspace": {
4046
+ "char": "w",
4047
+ "description": "Workspace ID (uses profile workspace if not provided)",
4048
+ "name": "workspace",
4049
+ "required": false,
4050
+ "hasDynamicHelp": false,
4051
+ "multiple": false,
4052
+ "type": "option"
3976
4053
  }
3977
4054
  },
3978
4055
  "hasDynamicHelp": false,
3979
4056
  "hiddenAliases": [],
3980
- "id": "workspace:get",
4057
+ "id": "workflow_test:run_all",
3981
4058
  "pluginAlias": "@xano/cli",
3982
4059
  "pluginName": "@xano/cli",
3983
4060
  "pluginType": "core",
@@ -3987,25 +4064,19 @@
3987
4064
  "relativePath": [
3988
4065
  "dist",
3989
4066
  "commands",
3990
- "workspace",
3991
- "get",
4067
+ "workflow_test",
4068
+ "run_all",
3992
4069
  "index.js"
3993
4070
  ]
3994
4071
  },
3995
- "workspace:delete": {
4072
+ "workflow_test:list": {
3996
4073
  "aliases": [],
3997
- "args": {
3998
- "workspace_id": {
3999
- "description": "Workspace ID to delete",
4000
- "name": "workspace_id",
4001
- "required": true
4002
- }
4003
- },
4004
- "description": "Delete a workspace via the Xano Metadata API. Cannot delete workspaces with active tenants.",
4074
+ "args": {},
4075
+ "description": "List all workflow tests in a workspace",
4005
4076
  "examples": [
4006
- "$ xano workspace delete 123\nAre you sure you want to delete workspace 123? This action cannot be undone. (y/N) y\nDeleted workspace 123\n",
4007
- "$ xano workspace delete 123 --force\nDeleted workspace 123\n",
4008
- "$ xano workspace delete 123 -f -o json\n{\n \"deleted\": true,\n \"workspace_id\": 123\n}\n"
4077
+ "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
4078
+ "$ xano workflow-test list -w 5 --output json",
4079
+ "$ xano workflow-test list --branch main"
4009
4080
  ],
4010
4081
  "flags": {
4011
4082
  "profile": {
@@ -4027,13 +4098,14 @@
4027
4098
  "allowNo": false,
4028
4099
  "type": "boolean"
4029
4100
  },
4030
- "force": {
4031
- "char": "f",
4032
- "description": "Skip confirmation prompt",
4033
- "name": "force",
4101
+ "branch": {
4102
+ "char": "b",
4103
+ "description": "Filter by branch name",
4104
+ "name": "branch",
4034
4105
  "required": false,
4035
- "allowNo": false,
4036
- "type": "boolean"
4106
+ "hasDynamicHelp": false,
4107
+ "multiple": false,
4108
+ "type": "option"
4037
4109
  },
4038
4110
  "output": {
4039
4111
  "char": "o",
@@ -4048,11 +4120,20 @@
4048
4120
  "json"
4049
4121
  ],
4050
4122
  "type": "option"
4123
+ },
4124
+ "workspace": {
4125
+ "char": "w",
4126
+ "description": "Workspace ID (uses profile workspace if not provided)",
4127
+ "name": "workspace",
4128
+ "required": false,
4129
+ "hasDynamicHelp": false,
4130
+ "multiple": false,
4131
+ "type": "option"
4051
4132
  }
4052
4133
  },
4053
4134
  "hasDynamicHelp": false,
4054
4135
  "hiddenAliases": [],
4055
- "id": "workspace:delete",
4136
+ "id": "workflow_test:list",
4056
4137
  "pluginAlias": "@xano/cli",
4057
4138
  "pluginName": "@xano/cli",
4058
4139
  "pluginType": "core",
@@ -4062,24 +4143,25 @@
4062
4143
  "relativePath": [
4063
4144
  "dist",
4064
4145
  "commands",
4065
- "workspace",
4066
- "delete",
4146
+ "workflow_test",
4147
+ "list",
4067
4148
  "index.js"
4068
4149
  ]
4069
4150
  },
4070
- "workflow_test:delete": {
4151
+ "workspace:create": {
4071
4152
  "aliases": [],
4072
4153
  "args": {
4073
- "workflow_test_id": {
4074
- "description": "ID of the workflow test to delete",
4075
- "name": "workflow_test_id",
4154
+ "name": {
4155
+ "description": "Name of the workspace",
4156
+ "name": "name",
4076
4157
  "required": true
4077
4158
  }
4078
4159
  },
4079
- "description": "Delete a workflow test",
4160
+ "description": "Create a new workspace via the Xano Metadata API",
4080
4161
  "examples": [
4081
- "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
4082
- "$ xano workflow-test delete 1 --force"
4162
+ "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
4163
+ "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
4164
+ "$ xano workspace create new-project -d \"New project workspace\" -o json\n{\n \"id\": 789,\n \"name\": \"new-project\",\n \"description\": \"New project workspace\"\n}\n"
4083
4165
  ],
4084
4166
  "flags": {
4085
4167
  "profile": {
@@ -4101,13 +4183,14 @@
4101
4183
  "allowNo": false,
4102
4184
  "type": "boolean"
4103
4185
  },
4104
- "force": {
4105
- "char": "f",
4106
- "description": "Skip confirmation prompt",
4107
- "name": "force",
4186
+ "description": {
4187
+ "char": "d",
4188
+ "description": "Description for the workspace",
4189
+ "name": "description",
4108
4190
  "required": false,
4109
- "allowNo": false,
4110
- "type": "boolean"
4191
+ "hasDynamicHelp": false,
4192
+ "multiple": false,
4193
+ "type": "option"
4111
4194
  },
4112
4195
  "output": {
4113
4196
  "char": "o",
@@ -4122,20 +4205,11 @@
4122
4205
  "json"
4123
4206
  ],
4124
4207
  "type": "option"
4125
- },
4126
- "workspace": {
4127
- "char": "w",
4128
- "description": "Workspace ID (uses profile workspace if not provided)",
4129
- "name": "workspace",
4130
- "required": false,
4131
- "hasDynamicHelp": false,
4132
- "multiple": false,
4133
- "type": "option"
4134
4208
  }
4135
4209
  },
4136
4210
  "hasDynamicHelp": false,
4137
4211
  "hiddenAliases": [],
4138
- "id": "workflow_test:delete",
4212
+ "id": "workspace:create",
4139
4213
  "pluginAlias": "@xano/cli",
4140
4214
  "pluginName": "@xano/cli",
4141
4215
  "pluginType": "core",
@@ -4145,25 +4219,26 @@
4145
4219
  "relativePath": [
4146
4220
  "dist",
4147
4221
  "commands",
4148
- "workflow_test",
4149
- "delete",
4222
+ "workspace",
4223
+ "create",
4150
4224
  "index.js"
4151
4225
  ]
4152
4226
  },
4153
- "workflow_test:get": {
4227
+ "workspace:edit": {
4154
4228
  "aliases": [],
4155
4229
  "args": {
4156
- "workflow_test_id": {
4157
- "description": "ID of the workflow test",
4158
- "name": "workflow_test_id",
4159
- "required": true
4230
+ "workspace_id": {
4231
+ "description": "Workspace ID to edit (uses profile workspace if not provided)",
4232
+ "name": "workspace_id",
4233
+ "required": false
4160
4234
  }
4161
4235
  },
4162
- "description": "Get a specific workflow test",
4236
+ "description": "Edit an existing workspace via the Xano Metadata API",
4163
4237
  "examples": [
4164
- "$ xano workflow-test get 1\nWorkflow Test: my-test (ID: 1)\n Description: Validates auth endpoints\n Branch: main\n",
4165
- "$ xano workflow-test get 1 -o xs",
4166
- "$ xano workflow-test get 1 -o json"
4238
+ "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
4239
+ "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
4240
+ "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
4241
+ "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
4167
4242
  ],
4168
4243
  "flags": {
4169
4244
  "profile": {
@@ -4185,12 +4260,23 @@
4185
4260
  "allowNo": false,
4186
4261
  "type": "boolean"
4187
4262
  },
4188
- "include-draft": {
4189
- "description": "Include draft version",
4190
- "name": "include-draft",
4263
+ "description": {
4264
+ "char": "d",
4265
+ "description": "New description for the workspace",
4266
+ "name": "description",
4191
4267
  "required": false,
4192
- "allowNo": false,
4193
- "type": "boolean"
4268
+ "hasDynamicHelp": false,
4269
+ "multiple": false,
4270
+ "type": "option"
4271
+ },
4272
+ "name": {
4273
+ "char": "n",
4274
+ "description": "New name for the workspace",
4275
+ "name": "name",
4276
+ "required": false,
4277
+ "hasDynamicHelp": false,
4278
+ "multiple": false,
4279
+ "type": "option"
4194
4280
  },
4195
4281
  "output": {
4196
4282
  "char": "o",
@@ -4202,24 +4288,28 @@
4202
4288
  "multiple": false,
4203
4289
  "options": [
4204
4290
  "summary",
4205
- "json",
4206
- "xs"
4291
+ "json"
4207
4292
  ],
4208
4293
  "type": "option"
4209
4294
  },
4210
- "workspace": {
4211
- "char": "w",
4212
- "description": "Workspace ID (uses profile workspace if not provided)",
4213
- "name": "workspace",
4295
+ "require-token": {
4296
+ "description": "Whether to require a token for documentation access",
4297
+ "name": "require-token",
4214
4298
  "required": false,
4215
- "hasDynamicHelp": false,
4216
- "multiple": false,
4217
- "type": "option"
4299
+ "allowNo": true,
4300
+ "type": "boolean"
4301
+ },
4302
+ "swagger": {
4303
+ "description": "Enable or disable swagger documentation",
4304
+ "name": "swagger",
4305
+ "required": false,
4306
+ "allowNo": true,
4307
+ "type": "boolean"
4218
4308
  }
4219
4309
  },
4220
4310
  "hasDynamicHelp": false,
4221
4311
  "hiddenAliases": [],
4222
- "id": "workflow_test:get",
4312
+ "id": "workspace:edit",
4223
4313
  "pluginAlias": "@xano/cli",
4224
4314
  "pluginName": "@xano/cli",
4225
4315
  "pluginType": "core",
@@ -4229,19 +4319,25 @@
4229
4319
  "relativePath": [
4230
4320
  "dist",
4231
4321
  "commands",
4232
- "workflow_test",
4233
- "get",
4322
+ "workspace",
4323
+ "edit",
4234
4324
  "index.js"
4235
4325
  ]
4236
4326
  },
4237
- "workflow_test:list": {
4327
+ "workspace:get": {
4238
4328
  "aliases": [],
4239
- "args": {},
4240
- "description": "List all workflow tests in a workspace",
4329
+ "args": {
4330
+ "workspace_id": {
4331
+ "description": "Workspace ID to get details for (uses profile workspace if not provided)",
4332
+ "name": "workspace_id",
4333
+ "required": false
4334
+ }
4335
+ },
4336
+ "description": "Get details of a specific workspace from the Xano Metadata API",
4241
4337
  "examples": [
4242
- "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
4243
- "$ xano workflow-test list -w 5 --output json",
4244
- "$ xano workflow-test list --branch main"
4338
+ "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
4339
+ "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
4340
+ "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
4245
4341
  ],
4246
4342
  "flags": {
4247
4343
  "profile": {
@@ -4263,15 +4359,6 @@
4263
4359
  "allowNo": false,
4264
4360
  "type": "boolean"
4265
4361
  },
4266
- "branch": {
4267
- "char": "b",
4268
- "description": "Filter by branch name",
4269
- "name": "branch",
4270
- "required": false,
4271
- "hasDynamicHelp": false,
4272
- "multiple": false,
4273
- "type": "option"
4274
- },
4275
4362
  "output": {
4276
4363
  "char": "o",
4277
4364
  "description": "Output format",
@@ -4285,20 +4372,11 @@
4285
4372
  "json"
4286
4373
  ],
4287
4374
  "type": "option"
4288
- },
4289
- "workspace": {
4290
- "char": "w",
4291
- "description": "Workspace ID (uses profile workspace if not provided)",
4292
- "name": "workspace",
4293
- "required": false,
4294
- "hasDynamicHelp": false,
4295
- "multiple": false,
4296
- "type": "option"
4297
4375
  }
4298
4376
  },
4299
4377
  "hasDynamicHelp": false,
4300
4378
  "hiddenAliases": [],
4301
- "id": "workflow_test:list",
4379
+ "id": "workspace:get",
4302
4380
  "pluginAlias": "@xano/cli",
4303
4381
  "pluginName": "@xano/cli",
4304
4382
  "pluginType": "core",
@@ -4308,20 +4386,25 @@
4308
4386
  "relativePath": [
4309
4387
  "dist",
4310
4388
  "commands",
4311
- "workflow_test",
4312
- "list",
4389
+ "workspace",
4390
+ "get",
4313
4391
  "index.js"
4314
4392
  ]
4315
4393
  },
4316
- "workspace:list": {
4394
+ "workspace:delete": {
4317
4395
  "aliases": [],
4318
- "args": {},
4319
- "description": "List all workspaces from the Xano Metadata API",
4396
+ "args": {
4397
+ "workspace_id": {
4398
+ "description": "Workspace ID to delete",
4399
+ "name": "workspace_id",
4400
+ "required": true
4401
+ }
4402
+ },
4403
+ "description": "Delete a workspace via the Xano Metadata API. Cannot delete workspaces with active tenants.",
4320
4404
  "examples": [
4321
- "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4322
- "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4323
- "$ xano workspace:list --output json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"workspace-1\"\n },\n {\n \"id\": 2,\n \"name\": \"workspace-2\"\n }\n ]\n}\n",
4324
- "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4405
+ "$ xano workspace delete 123\nAre you sure you want to delete workspace 123? This action cannot be undone. (y/N) y\nDeleted workspace 123\n",
4406
+ "$ xano workspace delete 123 --force\nDeleted workspace 123\n",
4407
+ "$ xano workspace delete 123 -f -o json\n{\n \"deleted\": true,\n \"workspace_id\": 123\n}\n"
4325
4408
  ],
4326
4409
  "flags": {
4327
4410
  "profile": {
@@ -4343,6 +4426,14 @@
4343
4426
  "allowNo": false,
4344
4427
  "type": "boolean"
4345
4428
  },
4429
+ "force": {
4430
+ "char": "f",
4431
+ "description": "Skip confirmation prompt",
4432
+ "name": "force",
4433
+ "required": false,
4434
+ "allowNo": false,
4435
+ "type": "boolean"
4436
+ },
4346
4437
  "output": {
4347
4438
  "char": "o",
4348
4439
  "description": "Output format",
@@ -4360,7 +4451,7 @@
4360
4451
  },
4361
4452
  "hasDynamicHelp": false,
4362
4453
  "hiddenAliases": [],
4363
- "id": "workspace:list",
4454
+ "id": "workspace:delete",
4364
4455
  "pluginAlias": "@xano/cli",
4365
4456
  "pluginName": "@xano/cli",
4366
4457
  "pluginType": "core",
@@ -4371,26 +4462,23 @@
4371
4462
  "dist",
4372
4463
  "commands",
4373
4464
  "workspace",
4374
- "list",
4465
+ "delete",
4375
4466
  "index.js"
4376
4467
  ]
4377
4468
  },
4378
- "workspace:pull": {
4469
+ "tenant:backup:create": {
4379
4470
  "aliases": [],
4380
4471
  "args": {
4381
- "directory": {
4382
- "description": "Output directory for pulled documents",
4383
- "name": "directory",
4472
+ "tenant_name": {
4473
+ "description": "Tenant name to back up",
4474
+ "name": "tenant_name",
4384
4475
  "required": true
4385
4476
  }
4386
4477
  },
4387
- "description": "Pull a workspace multidoc from the Xano Metadata API and split into individual files",
4478
+ "description": "Create a backup for a tenant",
4388
4479
  "examples": [
4389
- "$ xano workspace pull ./my-workspace\nPulled 42 documents to ./my-workspace\n",
4390
- "$ xano workspace pull ./output -w 40\nPulled 15 documents to ./output\n",
4391
- "$ xano workspace pull ./backup --profile production --env --records\nPulled 58 documents to ./backup\n",
4392
- "$ xano workspace pull ./my-workspace --draft\nPulled 42 documents to ./my-workspace\n",
4393
- "$ xano workspace pull ./my-workspace -b dev\nPulled 42 documents to ./my-workspace\n"
4480
+ "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
4481
+ "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
4394
4482
  ],
4395
4483
  "flags": {
4396
4484
  "profile": {
@@ -4412,39 +4500,33 @@
4412
4500
  "allowNo": false,
4413
4501
  "type": "boolean"
4414
4502
  },
4415
- "branch": {
4416
- "char": "b",
4417
- "description": "Branch name (optional if set in profile, defaults to live)",
4418
- "name": "branch",
4503
+ "description": {
4504
+ "char": "d",
4505
+ "description": "Backup description",
4506
+ "name": "description",
4419
4507
  "required": false,
4508
+ "default": "",
4420
4509
  "hasDynamicHelp": false,
4421
4510
  "multiple": false,
4422
4511
  "type": "option"
4423
4512
  },
4424
- "env": {
4425
- "description": "Include environment variables",
4426
- "name": "env",
4427
- "required": false,
4428
- "allowNo": false,
4429
- "type": "boolean"
4430
- },
4431
- "draft": {
4432
- "description": "Include draft versions",
4433
- "name": "draft",
4434
- "required": false,
4435
- "allowNo": false,
4436
- "type": "boolean"
4437
- },
4438
- "records": {
4439
- "description": "Include records",
4440
- "name": "records",
4513
+ "output": {
4514
+ "char": "o",
4515
+ "description": "Output format",
4516
+ "name": "output",
4441
4517
  "required": false,
4442
- "allowNo": false,
4443
- "type": "boolean"
4518
+ "default": "summary",
4519
+ "hasDynamicHelp": false,
4520
+ "multiple": false,
4521
+ "options": [
4522
+ "summary",
4523
+ "json"
4524
+ ],
4525
+ "type": "option"
4444
4526
  },
4445
4527
  "workspace": {
4446
4528
  "char": "w",
4447
- "description": "Workspace ID (optional if set in profile)",
4529
+ "description": "Workspace ID (uses profile workspace if not provided)",
4448
4530
  "name": "workspace",
4449
4531
  "required": false,
4450
4532
  "hasDynamicHelp": false,
@@ -4454,7 +4536,7 @@
4454
4536
  },
4455
4537
  "hasDynamicHelp": false,
4456
4538
  "hiddenAliases": [],
4457
- "id": "workspace:pull",
4539
+ "id": "tenant:backup:create",
4458
4540
  "pluginAlias": "@xano/cli",
4459
4541
  "pluginName": "@xano/cli",
4460
4542
  "pluginType": "core",
@@ -4464,35 +4546,28 @@
4464
4546
  "relativePath": [
4465
4547
  "dist",
4466
4548
  "commands",
4467
- "workspace",
4468
- "pull",
4549
+ "tenant",
4550
+ "backup",
4551
+ "create",
4469
4552
  "index.js"
4470
4553
  ]
4471
4554
  },
4472
- "workspace:push": {
4555
+ "tenant:backup:delete": {
4473
4556
  "aliases": [],
4474
4557
  "args": {
4475
- "directory": {
4476
- "description": "Directory containing documents to push (as produced by workspace pull)",
4477
- "name": "directory",
4558
+ "tenant_name": {
4559
+ "description": "Tenant name that owns the backup",
4560
+ "name": "tenant_name",
4478
4561
  "required": true
4479
4562
  }
4480
4563
  },
4481
- "description": "Push local documents to a workspace via the Xano Metadata API multidoc endpoint",
4564
+ "description": "Delete a tenant backup permanently. This action cannot be undone.",
4482
4565
  "examples": [
4483
- "$ xano workspace push ./my-workspace\nPushed 42 documents from ./my-workspace\n",
4484
- "$ xano workspace push ./output -w 40\nPushed 15 documents from ./output\n",
4485
- "$ xano workspace push ./backup --profile production\nPushed 58 documents from ./backup\n",
4486
- "$ xano workspace push ./my-workspace -b dev\nPushed 42 documents from ./my-workspace\n",
4487
- "$ xano workspace push ./my-functions --partial\nPush some files without a workspace block (implies --no-delete)\n",
4488
- "$ xano workspace push ./my-workspace --no-delete\nPatch files without deleting existing workspace objects\n",
4489
- "$ xano workspace push ./my-workspace --no-records\nPush schema only, skip importing table records\n",
4490
- "$ xano workspace push ./my-workspace --no-env\nPush without overwriting environment variables\n",
4491
- "$ xano workspace push ./my-workspace --truncate\nTruncate all table records before importing\n",
4492
- "$ xano workspace push ./my-workspace --truncate --no-records\nTruncate all table records without importing new ones\n",
4493
- "$ xano workspace push ./my-workspace --no-records --no-env\nPush schema only, skip records and environment variables\n"
4494
- ],
4495
- "flags": {
4566
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to delete backup #10? This action cannot be undone. (y/N) y\nDeleted backup #10\n",
4567
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
4568
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
4569
+ ],
4570
+ "flags": {
4496
4571
  "profile": {
4497
4572
  "char": "p",
4498
4573
  "description": "Profile to use (uses default profile if not specified)",
@@ -4512,60 +4587,39 @@
4512
4587
  "allowNo": false,
4513
4588
  "type": "boolean"
4514
4589
  },
4515
- "branch": {
4516
- "char": "b",
4517
- "description": "Branch name (optional if set in profile, defaults to live)",
4518
- "name": "branch",
4519
- "required": false,
4590
+ "backup_id": {
4591
+ "description": "Backup ID to delete",
4592
+ "name": "backup_id",
4593
+ "required": true,
4520
4594
  "hasDynamicHelp": false,
4521
4595
  "multiple": false,
4522
4596
  "type": "option"
4523
4597
  },
4524
- "delete": {
4525
- "description": "Delete workspace objects not included in the push (default: false)",
4526
- "name": "delete",
4527
- "required": false,
4528
- "allowNo": true,
4529
- "type": "boolean"
4530
- },
4531
- "env": {
4532
- "description": "Include environment variables in import (default: true, use --no-env to exclude)",
4533
- "name": "env",
4534
- "required": false,
4535
- "allowNo": true,
4536
- "type": "boolean"
4537
- },
4538
- "partial": {
4539
- "description": "Partial push — workspace block is not required, existing objects are kept (implies --no-delete)",
4540
- "name": "partial",
4598
+ "force": {
4599
+ "char": "f",
4600
+ "description": "Skip confirmation prompt",
4601
+ "name": "force",
4541
4602
  "required": false,
4542
4603
  "allowNo": false,
4543
4604
  "type": "boolean"
4544
4605
  },
4545
- "records": {
4546
- "description": "Include records in import (default: true, use --no-records to exclude)",
4547
- "name": "records",
4548
- "required": false,
4549
- "allowNo": true,
4550
- "type": "boolean"
4551
- },
4552
- "sync-guids": {
4553
- "description": "Write server-assigned GUIDs back to local files (use --no-sync-guids to skip)",
4554
- "name": "sync-guids",
4555
- "required": false,
4556
- "allowNo": true,
4557
- "type": "boolean"
4558
- },
4559
- "truncate": {
4560
- "description": "Truncate all table records before importing",
4561
- "name": "truncate",
4606
+ "output": {
4607
+ "char": "o",
4608
+ "description": "Output format",
4609
+ "name": "output",
4562
4610
  "required": false,
4563
- "allowNo": false,
4564
- "type": "boolean"
4611
+ "default": "summary",
4612
+ "hasDynamicHelp": false,
4613
+ "multiple": false,
4614
+ "options": [
4615
+ "summary",
4616
+ "json"
4617
+ ],
4618
+ "type": "option"
4565
4619
  },
4566
4620
  "workspace": {
4567
4621
  "char": "w",
4568
- "description": "Workspace ID (optional if set in profile)",
4622
+ "description": "Workspace ID (uses profile workspace if not provided)",
4569
4623
  "name": "workspace",
4570
4624
  "required": false,
4571
4625
  "hasDynamicHelp": false,
@@ -4575,7 +4629,7 @@
4575
4629
  },
4576
4630
  "hasDynamicHelp": false,
4577
4631
  "hiddenAliases": [],
4578
- "id": "workspace:push",
4632
+ "id": "tenant:backup:delete",
4579
4633
  "pluginAlias": "@xano/cli",
4580
4634
  "pluginName": "@xano/cli",
4581
4635
  "pluginType": "core",
@@ -4585,24 +4639,26 @@
4585
4639
  "relativePath": [
4586
4640
  "dist",
4587
4641
  "commands",
4588
- "workspace",
4589
- "push",
4642
+ "tenant",
4643
+ "backup",
4644
+ "delete",
4590
4645
  "index.js"
4591
4646
  ]
4592
4647
  },
4593
- "workflow_test:run": {
4648
+ "tenant:backup:export": {
4594
4649
  "aliases": [],
4595
4650
  "args": {
4596
- "workflow_test_id": {
4597
- "description": "ID of the workflow test to run",
4598
- "name": "workflow_test_id",
4651
+ "tenant_name": {
4652
+ "description": "Tenant name to export backup from",
4653
+ "name": "tenant_name",
4599
4654
  "required": true
4600
4655
  }
4601
4656
  },
4602
- "description": "Run a workflow test",
4657
+ "description": "Export (download) a tenant backup to a local file",
4603
4658
  "examples": [
4604
- "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
4605
- "$ xano workflow-test run 1 -o json"
4659
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
4660
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
4661
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
4606
4662
  ],
4607
4663
  "flags": {
4608
4664
  "profile": {
@@ -4624,10 +4680,18 @@
4624
4680
  "allowNo": false,
4625
4681
  "type": "boolean"
4626
4682
  },
4627
- "output": {
4683
+ "backup_id": {
4684
+ "description": "Backup ID to export",
4685
+ "name": "backup_id",
4686
+ "required": true,
4687
+ "hasDynamicHelp": false,
4688
+ "multiple": false,
4689
+ "type": "option"
4690
+ },
4691
+ "format": {
4628
4692
  "char": "o",
4629
4693
  "description": "Output format",
4630
- "name": "output",
4694
+ "name": "format",
4631
4695
  "required": false,
4632
4696
  "default": "summary",
4633
4697
  "hasDynamicHelp": false,
@@ -4638,6 +4702,14 @@
4638
4702
  ],
4639
4703
  "type": "option"
4640
4704
  },
4705
+ "output": {
4706
+ "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
4707
+ "name": "output",
4708
+ "required": false,
4709
+ "hasDynamicHelp": false,
4710
+ "multiple": false,
4711
+ "type": "option"
4712
+ },
4641
4713
  "workspace": {
4642
4714
  "char": "w",
4643
4715
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -4650,7 +4722,7 @@
4650
4722
  },
4651
4723
  "hasDynamicHelp": false,
4652
4724
  "hiddenAliases": [],
4653
- "id": "workflow_test:run",
4725
+ "id": "tenant:backup:export",
4654
4726
  "pluginAlias": "@xano/cli",
4655
4727
  "pluginName": "@xano/cli",
4656
4728
  "pluginType": "core",
@@ -4660,24 +4732,21 @@
4660
4732
  "relativePath": [
4661
4733
  "dist",
4662
4734
  "commands",
4663
- "workflow_test",
4664
- "run",
4735
+ "tenant",
4736
+ "backup",
4737
+ "export",
4665
4738
  "index.js"
4666
4739
  ]
4667
4740
  },
4668
- "tenant:backup:create": {
4741
+ "workspace:list": {
4669
4742
  "aliases": [],
4670
- "args": {
4671
- "tenant_name": {
4672
- "description": "Tenant name to back up",
4673
- "name": "tenant_name",
4674
- "required": true
4675
- }
4676
- },
4677
- "description": "Create a backup for a tenant",
4743
+ "args": {},
4744
+ "description": "List all workspaces from the Xano Metadata API",
4678
4745
  "examples": [
4679
- "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
4680
- "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
4746
+ "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4747
+ "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4748
+ "$ xano workspace:list --output json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"workspace-1\"\n },\n {\n \"id\": 2,\n \"name\": \"workspace-2\"\n }\n ]\n}\n",
4749
+ "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4681
4750
  ],
4682
4751
  "flags": {
4683
4752
  "profile": {
@@ -4699,16 +4768,6 @@
4699
4768
  "allowNo": false,
4700
4769
  "type": "boolean"
4701
4770
  },
4702
- "description": {
4703
- "char": "d",
4704
- "description": "Backup description",
4705
- "name": "description",
4706
- "required": false,
4707
- "default": "",
4708
- "hasDynamicHelp": false,
4709
- "multiple": false,
4710
- "type": "option"
4711
- },
4712
4771
  "output": {
4713
4772
  "char": "o",
4714
4773
  "description": "Output format",
@@ -4722,20 +4781,11 @@
4722
4781
  "json"
4723
4782
  ],
4724
4783
  "type": "option"
4725
- },
4726
- "workspace": {
4727
- "char": "w",
4728
- "description": "Workspace ID (uses profile workspace if not provided)",
4729
- "name": "workspace",
4730
- "required": false,
4731
- "hasDynamicHelp": false,
4732
- "multiple": false,
4733
- "type": "option"
4734
4784
  }
4735
4785
  },
4736
4786
  "hasDynamicHelp": false,
4737
4787
  "hiddenAliases": [],
4738
- "id": "tenant:backup:create",
4788
+ "id": "workspace:list",
4739
4789
  "pluginAlias": "@xano/cli",
4740
4790
  "pluginName": "@xano/cli",
4741
4791
  "pluginType": "core",
@@ -4745,19 +4795,27 @@
4745
4795
  "relativePath": [
4746
4796
  "dist",
4747
4797
  "commands",
4748
- "tenant",
4749
- "backup",
4750
- "create",
4798
+ "workspace",
4799
+ "list",
4751
4800
  "index.js"
4752
4801
  ]
4753
4802
  },
4754
- "workflow_test:run_all": {
4803
+ "workspace:pull": {
4755
4804
  "aliases": [],
4756
- "args": {},
4757
- "description": "Run all workflow tests in a workspace",
4805
+ "args": {
4806
+ "directory": {
4807
+ "description": "Output directory for pulled documents",
4808
+ "name": "directory",
4809
+ "required": true
4810
+ }
4811
+ },
4812
+ "description": "Pull a workspace multidoc from the Xano Metadata API and split into individual files",
4758
4813
  "examples": [
4759
- "$ xano workflow-test run-all\nRunning 3 workflow tests...\n\nPASS my-test (1.234s)\nPASS auth-flow (0.567s)\nFAIL data-validation (0.890s)\n Error: assertion failed at step 3\n\nResults: 2 passed, 1 failed (2.691s total)\n",
4760
- "$ xano workflow-test run-all --branch main -o json"
4814
+ "$ xano workspace pull ./my-workspace\nPulled 42 documents to ./my-workspace\n",
4815
+ "$ xano workspace pull ./output -w 40\nPulled 15 documents to ./output\n",
4816
+ "$ xano workspace pull ./backup --profile production --env --records\nPulled 58 documents to ./backup\n",
4817
+ "$ xano workspace pull ./my-workspace --draft\nPulled 42 documents to ./my-workspace\n",
4818
+ "$ xano workspace pull ./my-workspace -b dev\nPulled 42 documents to ./my-workspace\n"
4761
4819
  ],
4762
4820
  "flags": {
4763
4821
  "profile": {
@@ -4781,30 +4839,37 @@
4781
4839
  },
4782
4840
  "branch": {
4783
4841
  "char": "b",
4784
- "description": "Filter by branch name",
4842
+ "description": "Branch name (optional if set in profile, defaults to live)",
4785
4843
  "name": "branch",
4786
4844
  "required": false,
4787
4845
  "hasDynamicHelp": false,
4788
4846
  "multiple": false,
4789
4847
  "type": "option"
4790
4848
  },
4791
- "output": {
4792
- "char": "o",
4793
- "description": "Output format",
4794
- "name": "output",
4849
+ "env": {
4850
+ "description": "Include environment variables",
4851
+ "name": "env",
4795
4852
  "required": false,
4796
- "default": "summary",
4797
- "hasDynamicHelp": false,
4798
- "multiple": false,
4799
- "options": [
4800
- "summary",
4801
- "json"
4802
- ],
4803
- "type": "option"
4853
+ "allowNo": false,
4854
+ "type": "boolean"
4855
+ },
4856
+ "draft": {
4857
+ "description": "Include draft versions",
4858
+ "name": "draft",
4859
+ "required": false,
4860
+ "allowNo": false,
4861
+ "type": "boolean"
4862
+ },
4863
+ "records": {
4864
+ "description": "Include records",
4865
+ "name": "records",
4866
+ "required": false,
4867
+ "allowNo": false,
4868
+ "type": "boolean"
4804
4869
  },
4805
4870
  "workspace": {
4806
4871
  "char": "w",
4807
- "description": "Workspace ID (uses profile workspace if not provided)",
4872
+ "description": "Workspace ID (optional if set in profile)",
4808
4873
  "name": "workspace",
4809
4874
  "required": false,
4810
4875
  "hasDynamicHelp": false,
@@ -4814,7 +4879,7 @@
4814
4879
  },
4815
4880
  "hasDynamicHelp": false,
4816
4881
  "hiddenAliases": [],
4817
- "id": "workflow_test:run_all",
4882
+ "id": "workspace:pull",
4818
4883
  "pluginAlias": "@xano/cli",
4819
4884
  "pluginName": "@xano/cli",
4820
4885
  "pluginType": "core",
@@ -4824,25 +4889,33 @@
4824
4889
  "relativePath": [
4825
4890
  "dist",
4826
4891
  "commands",
4827
- "workflow_test",
4828
- "run_all",
4892
+ "workspace",
4893
+ "pull",
4829
4894
  "index.js"
4830
4895
  ]
4831
4896
  },
4832
- "tenant:backup:delete": {
4897
+ "workspace:push": {
4833
4898
  "aliases": [],
4834
4899
  "args": {
4835
- "tenant_name": {
4836
- "description": "Tenant name that owns the backup",
4837
- "name": "tenant_name",
4900
+ "directory": {
4901
+ "description": "Directory containing documents to push (as produced by workspace pull)",
4902
+ "name": "directory",
4838
4903
  "required": true
4839
4904
  }
4840
4905
  },
4841
- "description": "Delete a tenant backup permanently. This action cannot be undone.",
4906
+ "description": "Push local documents to a workspace via the Xano Metadata API multidoc endpoint",
4842
4907
  "examples": [
4843
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to delete backup #10? This action cannot be undone. (y/N) y\nDeleted backup #10\n",
4844
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
4845
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
4908
+ "$ xano workspace push ./my-workspace\nPushed 42 documents from ./my-workspace\n",
4909
+ "$ xano workspace push ./output -w 40\nPushed 15 documents from ./output\n",
4910
+ "$ xano workspace push ./backup --profile production\nPushed 58 documents from ./backup\n",
4911
+ "$ xano workspace push ./my-workspace -b dev\nPushed 42 documents from ./my-workspace\n",
4912
+ "$ xano workspace push ./my-functions --partial\nPush some files without a workspace block (implies --no-delete)\n",
4913
+ "$ xano workspace push ./my-workspace --no-delete\nPatch files without deleting existing workspace objects\n",
4914
+ "$ xano workspace push ./my-workspace --no-records\nPush schema only, skip importing table records\n",
4915
+ "$ xano workspace push ./my-workspace --no-env\nPush without overwriting environment variables\n",
4916
+ "$ xano workspace push ./my-workspace --truncate\nTruncate all table records before importing\n",
4917
+ "$ xano workspace push ./my-workspace --truncate --no-records\nTruncate all table records without importing new ones\n",
4918
+ "$ xano workspace push ./my-workspace --no-records --no-env\nPush schema only, skip records and environment variables\n"
4846
4919
  ],
4847
4920
  "flags": {
4848
4921
  "profile": {
@@ -4864,18 +4937,114 @@
4864
4937
  "allowNo": false,
4865
4938
  "type": "boolean"
4866
4939
  },
4867
- "backup_id": {
4868
- "description": "Backup ID to delete",
4869
- "name": "backup_id",
4870
- "required": true,
4940
+ "branch": {
4941
+ "char": "b",
4942
+ "description": "Branch name (optional if set in profile, defaults to live)",
4943
+ "name": "branch",
4944
+ "required": false,
4871
4945
  "hasDynamicHelp": false,
4872
4946
  "multiple": false,
4873
4947
  "type": "option"
4874
4948
  },
4875
- "force": {
4876
- "char": "f",
4877
- "description": "Skip confirmation prompt",
4878
- "name": "force",
4949
+ "delete": {
4950
+ "description": "Delete workspace objects not included in the push (default: false)",
4951
+ "name": "delete",
4952
+ "required": false,
4953
+ "allowNo": true,
4954
+ "type": "boolean"
4955
+ },
4956
+ "env": {
4957
+ "description": "Include environment variables in import (default: true, use --no-env to exclude)",
4958
+ "name": "env",
4959
+ "required": false,
4960
+ "allowNo": true,
4961
+ "type": "boolean"
4962
+ },
4963
+ "partial": {
4964
+ "description": "Partial push — workspace block is not required, existing objects are kept (implies --no-delete)",
4965
+ "name": "partial",
4966
+ "required": false,
4967
+ "allowNo": false,
4968
+ "type": "boolean"
4969
+ },
4970
+ "records": {
4971
+ "description": "Include records in import (default: true, use --no-records to exclude)",
4972
+ "name": "records",
4973
+ "required": false,
4974
+ "allowNo": true,
4975
+ "type": "boolean"
4976
+ },
4977
+ "sync-guids": {
4978
+ "description": "Write server-assigned GUIDs back to local files (use --no-sync-guids to skip)",
4979
+ "name": "sync-guids",
4980
+ "required": false,
4981
+ "allowNo": true,
4982
+ "type": "boolean"
4983
+ },
4984
+ "truncate": {
4985
+ "description": "Truncate all table records before importing",
4986
+ "name": "truncate",
4987
+ "required": false,
4988
+ "allowNo": false,
4989
+ "type": "boolean"
4990
+ },
4991
+ "workspace": {
4992
+ "char": "w",
4993
+ "description": "Workspace ID (optional if set in profile)",
4994
+ "name": "workspace",
4995
+ "required": false,
4996
+ "hasDynamicHelp": false,
4997
+ "multiple": false,
4998
+ "type": "option"
4999
+ }
5000
+ },
5001
+ "hasDynamicHelp": false,
5002
+ "hiddenAliases": [],
5003
+ "id": "workspace:push",
5004
+ "pluginAlias": "@xano/cli",
5005
+ "pluginName": "@xano/cli",
5006
+ "pluginType": "core",
5007
+ "strict": true,
5008
+ "enableJsonFlag": false,
5009
+ "isESM": true,
5010
+ "relativePath": [
5011
+ "dist",
5012
+ "commands",
5013
+ "workspace",
5014
+ "push",
5015
+ "index.js"
5016
+ ]
5017
+ },
5018
+ "tenant:backup:list": {
5019
+ "aliases": [],
5020
+ "args": {
5021
+ "tenant_name": {
5022
+ "description": "Tenant name to list backups for",
5023
+ "name": "tenant_name",
5024
+ "required": true
5025
+ }
5026
+ },
5027
+ "description": "List backups for a tenant",
5028
+ "examples": [
5029
+ "$ xano tenant backup list t1234-abcd-xyz1\nBackups for tenant t1234-abcd-xyz1:\n - #1 - Pre-deploy backup (2024-01-15)\n - #2 - Daily backup (2024-01-16)\n",
5030
+ "$ xano tenant backup list t1234-abcd-xyz1 -o json"
5031
+ ],
5032
+ "flags": {
5033
+ "profile": {
5034
+ "char": "p",
5035
+ "description": "Profile to use (uses default profile if not specified)",
5036
+ "env": "XANO_PROFILE",
5037
+ "name": "profile",
5038
+ "required": false,
5039
+ "hasDynamicHelp": false,
5040
+ "multiple": false,
5041
+ "type": "option"
5042
+ },
5043
+ "verbose": {
5044
+ "char": "v",
5045
+ "description": "Show detailed request/response information",
5046
+ "env": "XANO_VERBOSE",
5047
+ "name": "verbose",
4879
5048
  "required": false,
4880
5049
  "allowNo": false,
4881
5050
  "type": "boolean"
@@ -4894,6 +5063,15 @@
4894
5063
  ],
4895
5064
  "type": "option"
4896
5065
  },
5066
+ "page": {
5067
+ "description": "Page number for pagination",
5068
+ "name": "page",
5069
+ "required": false,
5070
+ "default": 1,
5071
+ "hasDynamicHelp": false,
5072
+ "multiple": false,
5073
+ "type": "option"
5074
+ },
4897
5075
  "workspace": {
4898
5076
  "char": "w",
4899
5077
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -4906,7 +5084,7 @@
4906
5084
  },
4907
5085
  "hasDynamicHelp": false,
4908
5086
  "hiddenAliases": [],
4909
- "id": "tenant:backup:delete",
5087
+ "id": "tenant:backup:list",
4910
5088
  "pluginAlias": "@xano/cli",
4911
5089
  "pluginName": "@xano/cli",
4912
5090
  "pluginType": "core",
@@ -4918,24 +5096,23 @@
4918
5096
  "commands",
4919
5097
  "tenant",
4920
5098
  "backup",
4921
- "delete",
5099
+ "list",
4922
5100
  "index.js"
4923
5101
  ]
4924
5102
  },
4925
- "tenant:backup:export": {
5103
+ "tenant:backup:restore": {
4926
5104
  "aliases": [],
4927
5105
  "args": {
4928
5106
  "tenant_name": {
4929
- "description": "Tenant name to export backup from",
5107
+ "description": "Tenant name to restore",
4930
5108
  "name": "tenant_name",
4931
5109
  "required": true
4932
5110
  }
4933
5111
  },
4934
- "description": "Export (download) a tenant backup to a local file",
5112
+ "description": "Restore a tenant from a backup. This replaces the current tenant data.",
4935
5113
  "examples": [
4936
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
4937
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
4938
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5114
+ "$ 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",
5115
+ "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
4939
5116
  ],
4940
5117
  "flags": {
4941
5118
  "profile": {
@@ -4958,17 +5135,25 @@
4958
5135
  "type": "boolean"
4959
5136
  },
4960
5137
  "backup_id": {
4961
- "description": "Backup ID to export",
5138
+ "description": "Backup ID to restore from",
4962
5139
  "name": "backup_id",
4963
5140
  "required": true,
4964
5141
  "hasDynamicHelp": false,
4965
5142
  "multiple": false,
4966
5143
  "type": "option"
4967
5144
  },
4968
- "format": {
5145
+ "force": {
5146
+ "char": "f",
5147
+ "description": "Skip confirmation prompt",
5148
+ "name": "force",
5149
+ "required": false,
5150
+ "allowNo": false,
5151
+ "type": "boolean"
5152
+ },
5153
+ "output": {
4969
5154
  "char": "o",
4970
5155
  "description": "Output format",
4971
- "name": "format",
5156
+ "name": "output",
4972
5157
  "required": false,
4973
5158
  "default": "summary",
4974
5159
  "hasDynamicHelp": false,
@@ -4979,14 +5164,6 @@
4979
5164
  ],
4980
5165
  "type": "option"
4981
5166
  },
4982
- "output": {
4983
- "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
4984
- "name": "output",
4985
- "required": false,
4986
- "hasDynamicHelp": false,
4987
- "multiple": false,
4988
- "type": "option"
4989
- },
4990
5167
  "workspace": {
4991
5168
  "char": "w",
4992
5169
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -4999,7 +5176,7 @@
4999
5176
  },
5000
5177
  "hasDynamicHelp": false,
5001
5178
  "hiddenAliases": [],
5002
- "id": "tenant:backup:export",
5179
+ "id": "tenant:backup:restore",
5003
5180
  "pluginAlias": "@xano/cli",
5004
5181
  "pluginName": "@xano/cli",
5005
5182
  "pluginType": "core",
@@ -5011,23 +5188,24 @@
5011
5188
  "commands",
5012
5189
  "tenant",
5013
5190
  "backup",
5014
- "export",
5191
+ "restore",
5015
5192
  "index.js"
5016
5193
  ]
5017
5194
  },
5018
- "tenant:backup:restore": {
5195
+ "static_host:build:create": {
5019
5196
  "aliases": [],
5020
5197
  "args": {
5021
- "tenant_name": {
5022
- "description": "Tenant name to restore",
5023
- "name": "tenant_name",
5198
+ "static_host": {
5199
+ "description": "Static Host name",
5200
+ "name": "static_host",
5024
5201
  "required": true
5025
5202
  }
5026
5203
  },
5027
- "description": "Restore a tenant from a backup. This replaces the current tenant data.",
5204
+ "description": "Create a new build for a static host",
5028
5205
  "examples": [
5029
- "$ 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",
5030
- "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
5206
+ "$ xano static_host:build:create default -f ./build.zip -n \"v1.0.0\"\nBuild created successfully!\nID: 123\nName: v1.0.0\nStatus: pending\n",
5207
+ "$ xano static_host:build:create default -w 40 -f ./dist.zip -n \"production\" -d \"Production build\"\nBuild created successfully!\nID: 124\nName: production\nDescription: Production build\n",
5208
+ "$ xano static_host:build:create myhost -f ./app.zip -n \"release-1.2\" -o json\n{\n \"id\": 125,\n \"name\": \"release-1.2\",\n \"status\": \"pending\"\n}\n"
5031
5209
  ],
5032
5210
  "flags": {
5033
5211
  "profile": {
@@ -5049,21 +5227,32 @@
5049
5227
  "allowNo": false,
5050
5228
  "type": "boolean"
5051
5229
  },
5052
- "backup_id": {
5053
- "description": "Backup ID to restore from",
5054
- "name": "backup_id",
5055
- "required": true,
5230
+ "description": {
5231
+ "char": "d",
5232
+ "description": "Build description",
5233
+ "name": "description",
5234
+ "required": false,
5056
5235
  "hasDynamicHelp": false,
5057
5236
  "multiple": false,
5058
5237
  "type": "option"
5059
5238
  },
5060
- "force": {
5239
+ "file": {
5061
5240
  "char": "f",
5062
- "description": "Skip confirmation prompt",
5063
- "name": "force",
5064
- "required": false,
5065
- "allowNo": false,
5066
- "type": "boolean"
5241
+ "description": "Path to zip file to upload",
5242
+ "name": "file",
5243
+ "required": true,
5244
+ "hasDynamicHelp": false,
5245
+ "multiple": false,
5246
+ "type": "option"
5247
+ },
5248
+ "name": {
5249
+ "char": "n",
5250
+ "description": "Build name",
5251
+ "name": "name",
5252
+ "required": true,
5253
+ "hasDynamicHelp": false,
5254
+ "multiple": false,
5255
+ "type": "option"
5067
5256
  },
5068
5257
  "output": {
5069
5258
  "char": "o",
@@ -5081,7 +5270,7 @@
5081
5270
  },
5082
5271
  "workspace": {
5083
5272
  "char": "w",
5084
- "description": "Workspace ID (uses profile workspace if not provided)",
5273
+ "description": "Workspace ID (optional if set in profile)",
5085
5274
  "name": "workspace",
5086
5275
  "required": false,
5087
5276
  "hasDynamicHelp": false,
@@ -5091,7 +5280,7 @@
5091
5280
  },
5092
5281
  "hasDynamicHelp": false,
5093
5282
  "hiddenAliases": [],
5094
- "id": "tenant:backup:restore",
5283
+ "id": "static_host:build:create",
5095
5284
  "pluginAlias": "@xano/cli",
5096
5285
  "pluginName": "@xano/cli",
5097
5286
  "pluginType": "core",
@@ -5101,25 +5290,32 @@
5101
5290
  "relativePath": [
5102
5291
  "dist",
5103
5292
  "commands",
5104
- "tenant",
5105
- "backup",
5106
- "restore",
5293
+ "static_host",
5294
+ "build",
5295
+ "create",
5107
5296
  "index.js"
5108
5297
  ]
5109
5298
  },
5110
- "tenant:backup:list": {
5299
+ "static_host:build:get": {
5111
5300
  "aliases": [],
5112
5301
  "args": {
5113
- "tenant_name": {
5114
- "description": "Tenant name to list backups for",
5115
- "name": "tenant_name",
5302
+ "build_id": {
5303
+ "description": "Build ID",
5304
+ "name": "build_id",
5305
+ "required": true
5306
+ },
5307
+ "static_host": {
5308
+ "description": "Static Host name",
5309
+ "name": "static_host",
5116
5310
  "required": true
5117
5311
  }
5118
5312
  },
5119
- "description": "List backups for a tenant",
5313
+ "description": "Get details of a specific build for a static host",
5120
5314
  "examples": [
5121
- "$ xano tenant backup list t1234-abcd-xyz1\nBackups for tenant t1234-abcd-xyz1:\n - #1 - Pre-deploy backup (2024-01-15)\n - #2 - Daily backup (2024-01-16)\n",
5122
- "$ xano tenant backup list t1234-abcd-xyz1 -o json"
5315
+ "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
5316
+ "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
5317
+ "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
5318
+ "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
5123
5319
  ],
5124
5320
  "flags": {
5125
5321
  "profile": {
@@ -5155,18 +5351,9 @@
5155
5351
  ],
5156
5352
  "type": "option"
5157
5353
  },
5158
- "page": {
5159
- "description": "Page number for pagination",
5160
- "name": "page",
5161
- "required": false,
5162
- "default": 1,
5163
- "hasDynamicHelp": false,
5164
- "multiple": false,
5165
- "type": "option"
5166
- },
5167
5354
  "workspace": {
5168
5355
  "char": "w",
5169
- "description": "Workspace ID (uses profile workspace if not provided)",
5356
+ "description": "Workspace ID (optional if set in profile)",
5170
5357
  "name": "workspace",
5171
5358
  "required": false,
5172
5359
  "hasDynamicHelp": false,
@@ -5176,7 +5363,7 @@
5176
5363
  },
5177
5364
  "hasDynamicHelp": false,
5178
5365
  "hiddenAliases": [],
5179
- "id": "tenant:backup:list",
5366
+ "id": "static_host:build:get",
5180
5367
  "pluginAlias": "@xano/cli",
5181
5368
  "pluginName": "@xano/cli",
5182
5369
  "pluginType": "core",
@@ -5186,9 +5373,9 @@
5186
5373
  "relativePath": [
5187
5374
  "dist",
5188
5375
  "commands",
5189
- "tenant",
5190
- "backup",
5191
- "list",
5376
+ "static_host",
5377
+ "build",
5378
+ "get",
5192
5379
  "index.js"
5193
5380
  ]
5194
5381
  },
@@ -5314,115 +5501,21 @@
5314
5501
  "index.js"
5315
5502
  ]
5316
5503
  },
5317
- "tenant:backup:import": {
5318
- "aliases": [],
5319
- "args": {
5320
- "tenant_name": {
5321
- "description": "Tenant name to import backup into",
5322
- "name": "tenant_name",
5323
- "required": true
5324
- }
5325
- },
5326
- "description": "Import a backup file into a tenant",
5327
- "examples": [
5328
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5329
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5330
- ],
5331
- "flags": {
5332
- "profile": {
5333
- "char": "p",
5334
- "description": "Profile to use (uses default profile if not specified)",
5335
- "env": "XANO_PROFILE",
5336
- "name": "profile",
5337
- "required": false,
5338
- "hasDynamicHelp": false,
5339
- "multiple": false,
5340
- "type": "option"
5341
- },
5342
- "verbose": {
5343
- "char": "v",
5344
- "description": "Show detailed request/response information",
5345
- "env": "XANO_VERBOSE",
5346
- "name": "verbose",
5347
- "required": false,
5348
- "allowNo": false,
5349
- "type": "boolean"
5350
- },
5351
- "description": {
5352
- "char": "d",
5353
- "description": "Backup description",
5354
- "name": "description",
5355
- "required": false,
5356
- "default": "",
5357
- "hasDynamicHelp": false,
5358
- "multiple": false,
5359
- "type": "option"
5360
- },
5361
- "file": {
5362
- "char": "f",
5363
- "description": "Path to the backup file (.tar.gz)",
5364
- "name": "file",
5365
- "required": true,
5366
- "hasDynamicHelp": false,
5367
- "multiple": false,
5368
- "type": "option"
5369
- },
5370
- "output": {
5371
- "char": "o",
5372
- "description": "Output format",
5373
- "name": "output",
5374
- "required": false,
5375
- "default": "summary",
5376
- "hasDynamicHelp": false,
5377
- "multiple": false,
5378
- "options": [
5379
- "summary",
5380
- "json"
5381
- ],
5382
- "type": "option"
5383
- },
5384
- "workspace": {
5385
- "char": "w",
5386
- "description": "Workspace ID (uses profile workspace if not provided)",
5387
- "name": "workspace",
5388
- "required": false,
5389
- "hasDynamicHelp": false,
5390
- "multiple": false,
5391
- "type": "option"
5392
- }
5393
- },
5394
- "hasDynamicHelp": false,
5395
- "hiddenAliases": [],
5396
- "id": "tenant:backup:import",
5397
- "pluginAlias": "@xano/cli",
5398
- "pluginName": "@xano/cli",
5399
- "pluginType": "core",
5400
- "strict": true,
5401
- "enableJsonFlag": false,
5402
- "isESM": true,
5403
- "relativePath": [
5404
- "dist",
5405
- "commands",
5406
- "tenant",
5407
- "backup",
5408
- "import",
5409
- "index.js"
5410
- ]
5411
- },
5412
- "tenant:cluster:delete": {
5504
+ "static_host:build:list": {
5413
5505
  "aliases": [],
5414
5506
  "args": {
5415
- "cluster_id": {
5416
- "description": "Cluster ID to delete",
5417
- "name": "cluster_id",
5507
+ "static_host": {
5508
+ "description": "Static Host name",
5509
+ "name": "static_host",
5418
5510
  "required": true
5419
5511
  }
5420
5512
  },
5421
- "description": "Delete a tenant cluster. This action cannot be undone.",
5513
+ "description": "List all builds for a static host",
5422
5514
  "examples": [
5423
- "$ 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",
5424
- "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5425
- "$ xano tenant cluster delete 3 -f -o json"
5515
+ "$ 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",
5516
+ "$ xano static_host:build:list myhost --profile production\nAvailable builds:\n - production (ID: 1) - Status: completed\n - staging (ID: 2) - Status: completed\n",
5517
+ "$ 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",
5518
+ "$ 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"
5426
5519
  ],
5427
5520
  "flags": {
5428
5521
  "profile": {
@@ -5444,14 +5537,6 @@
5444
5537
  "allowNo": false,
5445
5538
  "type": "boolean"
5446
5539
  },
5447
- "force": {
5448
- "char": "f",
5449
- "description": "Skip confirmation prompt",
5450
- "name": "force",
5451
- "required": false,
5452
- "allowNo": false,
5453
- "type": "boolean"
5454
- },
5455
5540
  "output": {
5456
5541
  "char": "o",
5457
5542
  "description": "Output format",
@@ -5465,11 +5550,38 @@
5465
5550
  "json"
5466
5551
  ],
5467
5552
  "type": "option"
5553
+ },
5554
+ "page": {
5555
+ "description": "Page number for pagination",
5556
+ "name": "page",
5557
+ "required": false,
5558
+ "default": 1,
5559
+ "hasDynamicHelp": false,
5560
+ "multiple": false,
5561
+ "type": "option"
5562
+ },
5563
+ "per_page": {
5564
+ "description": "Number of results per page",
5565
+ "name": "per_page",
5566
+ "required": false,
5567
+ "default": 50,
5568
+ "hasDynamicHelp": false,
5569
+ "multiple": false,
5570
+ "type": "option"
5571
+ },
5572
+ "workspace": {
5573
+ "char": "w",
5574
+ "description": "Workspace ID (optional if set in profile)",
5575
+ "name": "workspace",
5576
+ "required": false,
5577
+ "hasDynamicHelp": false,
5578
+ "multiple": false,
5579
+ "type": "option"
5468
5580
  }
5469
5581
  },
5470
5582
  "hasDynamicHelp": false,
5471
5583
  "hiddenAliases": [],
5472
- "id": "tenant:cluster:delete",
5584
+ "id": "static_host:build:list",
5473
5585
  "pluginAlias": "@xano/cli",
5474
5586
  "pluginName": "@xano/cli",
5475
5587
  "pluginType": "core",
@@ -5479,19 +5591,25 @@
5479
5591
  "relativePath": [
5480
5592
  "dist",
5481
5593
  "commands",
5482
- "tenant",
5483
- "cluster",
5484
- "delete",
5594
+ "static_host",
5595
+ "build",
5596
+ "list",
5485
5597
  "index.js"
5486
5598
  ]
5487
5599
  },
5488
- "tenant:cluster:list": {
5600
+ "tenant:backup:import": {
5489
5601
  "aliases": [],
5490
- "args": {},
5491
- "description": "List all tenant clusters",
5602
+ "args": {
5603
+ "tenant_name": {
5604
+ "description": "Tenant name to import backup into",
5605
+ "name": "tenant_name",
5606
+ "required": true
5607
+ }
5608
+ },
5609
+ "description": "Import a backup file into a tenant",
5492
5610
  "examples": [
5493
- "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
5494
- "$ xano tenant cluster list --output json"
5611
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5612
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5495
5613
  ],
5496
5614
  "flags": {
5497
5615
  "profile": {
@@ -5513,6 +5631,25 @@
5513
5631
  "allowNo": false,
5514
5632
  "type": "boolean"
5515
5633
  },
5634
+ "description": {
5635
+ "char": "d",
5636
+ "description": "Backup description",
5637
+ "name": "description",
5638
+ "required": false,
5639
+ "default": "",
5640
+ "hasDynamicHelp": false,
5641
+ "multiple": false,
5642
+ "type": "option"
5643
+ },
5644
+ "file": {
5645
+ "char": "f",
5646
+ "description": "Path to the backup file (.tar.gz)",
5647
+ "name": "file",
5648
+ "required": true,
5649
+ "hasDynamicHelp": false,
5650
+ "multiple": false,
5651
+ "type": "option"
5652
+ },
5516
5653
  "output": {
5517
5654
  "char": "o",
5518
5655
  "description": "Output format",
@@ -5526,11 +5663,20 @@
5526
5663
  "json"
5527
5664
  ],
5528
5665
  "type": "option"
5666
+ },
5667
+ "workspace": {
5668
+ "char": "w",
5669
+ "description": "Workspace ID (uses profile workspace if not provided)",
5670
+ "name": "workspace",
5671
+ "required": false,
5672
+ "hasDynamicHelp": false,
5673
+ "multiple": false,
5674
+ "type": "option"
5529
5675
  }
5530
5676
  },
5531
5677
  "hasDynamicHelp": false,
5532
5678
  "hiddenAliases": [],
5533
- "id": "tenant:cluster:list",
5679
+ "id": "tenant:backup:import",
5534
5680
  "pluginAlias": "@xano/cli",
5535
5681
  "pluginName": "@xano/cli",
5536
5682
  "pluginType": "core",
@@ -5541,8 +5687,8 @@
5541
5687
  "dist",
5542
5688
  "commands",
5543
5689
  "tenant",
5544
- "cluster",
5545
- "list",
5690
+ "backup",
5691
+ "import",
5546
5692
  "index.js"
5547
5693
  ]
5548
5694
  },
@@ -5718,20 +5864,20 @@
5718
5864
  "index.js"
5719
5865
  ]
5720
5866
  },
5721
- "tenant:env:delete": {
5867
+ "tenant:cluster:delete": {
5722
5868
  "aliases": [],
5723
5869
  "args": {
5724
- "tenant_name": {
5725
- "description": "Tenant name",
5726
- "name": "tenant_name",
5870
+ "cluster_id": {
5871
+ "description": "Cluster ID to delete",
5872
+ "name": "cluster_id",
5727
5873
  "required": true
5728
5874
  }
5729
5875
  },
5730
- "description": "Delete an environment variable from a tenant",
5876
+ "description": "Delete a tenant cluster. This action cannot be undone.",
5731
5877
  "examples": [
5732
- "$ 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",
5733
- "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
5734
- "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
5878
+ "$ 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",
5879
+ "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5880
+ "$ xano tenant cluster delete 3 -f -o json"
5735
5881
  ],
5736
5882
  "flags": {
5737
5883
  "profile": {
@@ -5761,15 +5907,6 @@
5761
5907
  "allowNo": false,
5762
5908
  "type": "boolean"
5763
5909
  },
5764
- "name": {
5765
- "char": "n",
5766
- "description": "Environment variable name",
5767
- "name": "name",
5768
- "required": true,
5769
- "hasDynamicHelp": false,
5770
- "multiple": false,
5771
- "type": "option"
5772
- },
5773
5910
  "output": {
5774
5911
  "char": "o",
5775
5912
  "description": "Output format",
@@ -5783,20 +5920,11 @@
5783
5920
  "json"
5784
5921
  ],
5785
5922
  "type": "option"
5786
- },
5787
- "workspace": {
5788
- "char": "w",
5789
- "description": "Workspace ID (uses profile workspace if not provided)",
5790
- "name": "workspace",
5791
- "required": false,
5792
- "hasDynamicHelp": false,
5793
- "multiple": false,
5794
- "type": "option"
5795
5923
  }
5796
5924
  },
5797
5925
  "hasDynamicHelp": false,
5798
5926
  "hiddenAliases": [],
5799
- "id": "tenant:env:delete",
5927
+ "id": "tenant:cluster:delete",
5800
5928
  "pluginAlias": "@xano/cli",
5801
5929
  "pluginName": "@xano/cli",
5802
5930
  "pluginType": "core",
@@ -5807,12 +5935,12 @@
5807
5935
  "dist",
5808
5936
  "commands",
5809
5937
  "tenant",
5810
- "env",
5938
+ "cluster",
5811
5939
  "delete",
5812
5940
  "index.js"
5813
5941
  ]
5814
5942
  },
5815
- "tenant:env:get_all": {
5943
+ "tenant:env:delete": {
5816
5944
  "aliases": [],
5817
5945
  "args": {
5818
5946
  "tenant_name": {
@@ -5821,12 +5949,11 @@
5821
5949
  "required": true
5822
5950
  }
5823
5951
  },
5824
- "description": "Get all environment variables for a tenant and save to a YAML file",
5952
+ "description": "Delete an environment variable from a tenant",
5825
5953
  "examples": [
5826
- "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
5827
- "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
5828
- "$ xano tenant env get_all my-tenant --view",
5829
- "$ xano tenant env get_all my-tenant -o json"
5954
+ "$ 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",
5955
+ "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
5956
+ "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
5830
5957
  ],
5831
5958
  "flags": {
5832
5959
  "profile": {
@@ -5848,98 +5975,23 @@
5848
5975
  "allowNo": false,
5849
5976
  "type": "boolean"
5850
5977
  },
5851
- "file": {
5978
+ "force": {
5852
5979
  "char": "f",
5853
- "description": "Output file path (default: env_<tenant_name>.yaml)",
5854
- "name": "file",
5855
- "required": false,
5856
- "hasDynamicHelp": false,
5857
- "multiple": false,
5858
- "type": "option"
5859
- },
5860
- "output": {
5861
- "char": "o",
5862
- "description": "Output format",
5863
- "name": "output",
5864
- "required": false,
5865
- "default": "summary",
5866
- "hasDynamicHelp": false,
5867
- "multiple": false,
5868
- "options": [
5869
- "summary",
5870
- "json"
5871
- ],
5872
- "type": "option"
5873
- },
5874
- "view": {
5875
- "description": "Print environment variables to stdout instead of saving to file",
5876
- "name": "view",
5980
+ "description": "Skip confirmation prompt",
5981
+ "name": "force",
5877
5982
  "required": false,
5878
5983
  "allowNo": false,
5879
5984
  "type": "boolean"
5880
5985
  },
5881
- "workspace": {
5882
- "char": "w",
5883
- "description": "Workspace ID (uses profile workspace if not provided)",
5884
- "name": "workspace",
5885
- "required": false,
5886
- "hasDynamicHelp": false,
5887
- "multiple": false,
5888
- "type": "option"
5889
- }
5890
- },
5891
- "hasDynamicHelp": false,
5892
- "hiddenAliases": [],
5893
- "id": "tenant:env:get_all",
5894
- "pluginAlias": "@xano/cli",
5895
- "pluginName": "@xano/cli",
5896
- "pluginType": "core",
5897
- "strict": true,
5898
- "enableJsonFlag": false,
5899
- "isESM": true,
5900
- "relativePath": [
5901
- "dist",
5902
- "commands",
5903
- "tenant",
5904
- "env",
5905
- "get_all",
5906
- "index.js"
5907
- ]
5908
- },
5909
- "tenant:env:list": {
5910
- "aliases": [],
5911
- "args": {
5912
- "tenant_name": {
5913
- "description": "Tenant name",
5914
- "name": "tenant_name",
5915
- "required": true
5916
- }
5917
- },
5918
- "description": "List environment variable keys for a tenant",
5919
- "examples": [
5920
- "$ xano tenant env list my-tenant\nEnvironment variables for tenant my-tenant:\n - DATABASE_URL\n - API_KEY\n - SECRET_TOKEN\n",
5921
- "$ xano tenant env list my-tenant -w 5 -o json"
5922
- ],
5923
- "flags": {
5924
- "profile": {
5925
- "char": "p",
5926
- "description": "Profile to use (uses default profile if not specified)",
5927
- "env": "XANO_PROFILE",
5928
- "name": "profile",
5929
- "required": false,
5986
+ "name": {
5987
+ "char": "n",
5988
+ "description": "Environment variable name",
5989
+ "name": "name",
5990
+ "required": true,
5930
5991
  "hasDynamicHelp": false,
5931
5992
  "multiple": false,
5932
5993
  "type": "option"
5933
5994
  },
5934
- "verbose": {
5935
- "char": "v",
5936
- "description": "Show detailed request/response information",
5937
- "env": "XANO_VERBOSE",
5938
- "name": "verbose",
5939
- "required": false,
5940
- "allowNo": false,
5941
- "type": "boolean"
5942
- },
5943
5995
  "output": {
5944
5996
  "char": "o",
5945
5997
  "description": "Output format",
@@ -5966,7 +6018,7 @@
5966
6018
  },
5967
6019
  "hasDynamicHelp": false,
5968
6020
  "hiddenAliases": [],
5969
- "id": "tenant:env:list",
6021
+ "id": "tenant:env:delete",
5970
6022
  "pluginAlias": "@xano/cli",
5971
6023
  "pluginName": "@xano/cli",
5972
6024
  "pluginType": "core",
@@ -5978,23 +6030,17 @@
5978
6030
  "commands",
5979
6031
  "tenant",
5980
6032
  "env",
5981
- "list",
5982
- "index.js"
5983
- ]
5984
- },
5985
- "tenant:env:get": {
5986
- "aliases": [],
5987
- "args": {
5988
- "tenant_name": {
5989
- "description": "Tenant name",
5990
- "name": "tenant_name",
5991
- "required": true
5992
- }
5993
- },
5994
- "description": "Get a single environment variable for a tenant",
6033
+ "delete",
6034
+ "index.js"
6035
+ ]
6036
+ },
6037
+ "tenant:cluster:list": {
6038
+ "aliases": [],
6039
+ "args": {},
6040
+ "description": "List all tenant clusters",
5995
6041
  "examples": [
5996
- "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
5997
- "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6042
+ "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
6043
+ "$ xano tenant cluster list --output json"
5998
6044
  ],
5999
6045
  "flags": {
6000
6046
  "profile": {
@@ -6016,15 +6062,6 @@
6016
6062
  "allowNo": false,
6017
6063
  "type": "boolean"
6018
6064
  },
6019
- "name": {
6020
- "char": "n",
6021
- "description": "Environment variable name",
6022
- "name": "name",
6023
- "required": true,
6024
- "hasDynamicHelp": false,
6025
- "multiple": false,
6026
- "type": "option"
6027
- },
6028
6065
  "output": {
6029
6066
  "char": "o",
6030
6067
  "description": "Output format",
@@ -6038,20 +6075,11 @@
6038
6075
  "json"
6039
6076
  ],
6040
6077
  "type": "option"
6041
- },
6042
- "workspace": {
6043
- "char": "w",
6044
- "description": "Workspace ID (uses profile workspace if not provided)",
6045
- "name": "workspace",
6046
- "required": false,
6047
- "hasDynamicHelp": false,
6048
- "multiple": false,
6049
- "type": "option"
6050
6078
  }
6051
6079
  },
6052
6080
  "hasDynamicHelp": false,
6053
6081
  "hiddenAliases": [],
6054
- "id": "tenant:env:get",
6082
+ "id": "tenant:cluster:list",
6055
6083
  "pluginAlias": "@xano/cli",
6056
6084
  "pluginName": "@xano/cli",
6057
6085
  "pluginType": "core",
@@ -6062,8 +6090,8 @@
6062
6090
  "dist",
6063
6091
  "commands",
6064
6092
  "tenant",
6065
- "env",
6066
- "get",
6093
+ "cluster",
6094
+ "list",
6067
6095
  "index.js"
6068
6096
  ]
6069
6097
  },
@@ -6160,7 +6188,7 @@
6160
6188
  "index.js"
6161
6189
  ]
6162
6190
  },
6163
- "tenant:env:set_all": {
6191
+ "tenant:env:list": {
6164
6192
  "aliases": [],
6165
6193
  "args": {
6166
6194
  "tenant_name": {
@@ -6169,11 +6197,10 @@
6169
6197
  "required": true
6170
6198
  }
6171
6199
  },
6172
- "description": "Set all environment variables for a tenant from a YAML file (replaces all existing)",
6200
+ "description": "List environment variable keys for a tenant",
6173
6201
  "examples": [
6174
- "$ xano tenant env set_all my-tenant\nReads from env_my-tenant.yaml\n",
6175
- "$ xano tenant env set_all my-tenant --file ./my-env.yaml",
6176
- "$ xano tenant env set_all my-tenant -o json"
6202
+ "$ xano tenant env list my-tenant\nEnvironment variables for tenant my-tenant:\n - DATABASE_URL\n - API_KEY\n - SECRET_TOKEN\n",
6203
+ "$ xano tenant env list my-tenant -w 5 -o json"
6177
6204
  ],
6178
6205
  "flags": {
6179
6206
  "profile": {
@@ -6195,22 +6222,6 @@
6195
6222
  "allowNo": false,
6196
6223
  "type": "boolean"
6197
6224
  },
6198
- "clean": {
6199
- "description": "Remove the source file after successful upload",
6200
- "name": "clean",
6201
- "required": false,
6202
- "allowNo": false,
6203
- "type": "boolean"
6204
- },
6205
- "file": {
6206
- "char": "f",
6207
- "description": "Path to env file (default: env_<tenant_name>.yaml)",
6208
- "name": "file",
6209
- "required": false,
6210
- "hasDynamicHelp": false,
6211
- "multiple": false,
6212
- "type": "option"
6213
- },
6214
6225
  "output": {
6215
6226
  "char": "o",
6216
6227
  "description": "Output format",
@@ -6237,7 +6248,7 @@
6237
6248
  },
6238
6249
  "hasDynamicHelp": false,
6239
6250
  "hiddenAliases": [],
6240
- "id": "tenant:env:set_all",
6251
+ "id": "tenant:env:list",
6241
6252
  "pluginAlias": "@xano/cli",
6242
6253
  "pluginName": "@xano/cli",
6243
6254
  "pluginType": "core",
@@ -6249,11 +6260,11 @@
6249
6260
  "commands",
6250
6261
  "tenant",
6251
6262
  "env",
6252
- "set_all",
6263
+ "list",
6253
6264
  "index.js"
6254
6265
  ]
6255
6266
  },
6256
- "tenant:license:set": {
6267
+ "tenant:env:get_all": {
6257
6268
  "aliases": [],
6258
6269
  "args": {
6259
6270
  "tenant_name": {
@@ -6262,12 +6273,12 @@
6262
6273
  "required": true
6263
6274
  }
6264
6275
  },
6265
- "description": "Set/update the license for a tenant",
6276
+ "description": "Get all environment variables for a tenant and save to a YAML file",
6266
6277
  "examples": [
6267
- "$ xano tenant license set my-tenant\nReads from license_my-tenant.yaml\n",
6268
- "$ xano tenant license set my-tenant --file ./license.yaml",
6269
- "$ xano tenant license set my-tenant --value 'key: value'",
6270
- "$ xano tenant license set my-tenant -o json"
6278
+ "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
6279
+ "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
6280
+ "$ xano tenant env get_all my-tenant --view",
6281
+ "$ xano tenant env get_all my-tenant -o json"
6271
6282
  ],
6272
6283
  "flags": {
6273
6284
  "profile": {
@@ -6289,22 +6300,9 @@
6289
6300
  "allowNo": false,
6290
6301
  "type": "boolean"
6291
6302
  },
6292
- "clean": {
6293
- "description": "Remove the source file after successful upload",
6294
- "exclusive": [
6295
- "value"
6296
- ],
6297
- "name": "clean",
6298
- "required": false,
6299
- "allowNo": false,
6300
- "type": "boolean"
6301
- },
6302
6303
  "file": {
6303
6304
  "char": "f",
6304
- "description": "Path to license file (default: license_<tenant_name>.yaml)",
6305
- "exclusive": [
6306
- "value"
6307
- ],
6305
+ "description": "Output file path (default: env_<tenant_name>.yaml)",
6308
6306
  "name": "file",
6309
6307
  "required": false,
6310
6308
  "hasDynamicHelp": false,
@@ -6325,17 +6323,12 @@
6325
6323
  ],
6326
6324
  "type": "option"
6327
6325
  },
6328
- "value": {
6329
- "description": "Inline license value",
6330
- "exclusive": [
6331
- "file",
6332
- "clean"
6333
- ],
6334
- "name": "value",
6326
+ "view": {
6327
+ "description": "Print environment variables to stdout instead of saving to file",
6328
+ "name": "view",
6335
6329
  "required": false,
6336
- "hasDynamicHelp": false,
6337
- "multiple": false,
6338
- "type": "option"
6330
+ "allowNo": false,
6331
+ "type": "boolean"
6339
6332
  },
6340
6333
  "workspace": {
6341
6334
  "char": "w",
@@ -6349,7 +6342,7 @@
6349
6342
  },
6350
6343
  "hasDynamicHelp": false,
6351
6344
  "hiddenAliases": [],
6352
- "id": "tenant:license:set",
6345
+ "id": "tenant:env:get_all",
6353
6346
  "pluginAlias": "@xano/cli",
6354
6347
  "pluginName": "@xano/cli",
6355
6348
  "pluginType": "core",
@@ -6360,25 +6353,24 @@
6360
6353
  "dist",
6361
6354
  "commands",
6362
6355
  "tenant",
6363
- "license",
6364
- "set",
6356
+ "env",
6357
+ "get_all",
6365
6358
  "index.js"
6366
6359
  ]
6367
6360
  },
6368
- "static_host:build:create": {
6361
+ "tenant:env:get": {
6369
6362
  "aliases": [],
6370
6363
  "args": {
6371
- "static_host": {
6372
- "description": "Static Host name",
6373
- "name": "static_host",
6364
+ "tenant_name": {
6365
+ "description": "Tenant name",
6366
+ "name": "tenant_name",
6374
6367
  "required": true
6375
6368
  }
6376
6369
  },
6377
- "description": "Create a new build for a static host",
6370
+ "description": "Get a single environment variable for a tenant",
6378
6371
  "examples": [
6379
- "$ xano static_host:build:create default -f ./build.zip -n \"v1.0.0\"\nBuild created successfully!\nID: 123\nName: v1.0.0\nStatus: pending\n",
6380
- "$ xano static_host:build:create default -w 40 -f ./dist.zip -n \"production\" -d \"Production build\"\nBuild created successfully!\nID: 124\nName: production\nDescription: Production build\n",
6381
- "$ xano static_host:build:create myhost -f ./app.zip -n \"release-1.2\" -o json\n{\n \"id\": 125,\n \"name\": \"release-1.2\",\n \"status\": \"pending\"\n}\n"
6372
+ "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
6373
+ "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6382
6374
  ],
6383
6375
  "flags": {
6384
6376
  "profile": {
@@ -6400,27 +6392,9 @@
6400
6392
  "allowNo": false,
6401
6393
  "type": "boolean"
6402
6394
  },
6403
- "description": {
6404
- "char": "d",
6405
- "description": "Build description",
6406
- "name": "description",
6407
- "required": false,
6408
- "hasDynamicHelp": false,
6409
- "multiple": false,
6410
- "type": "option"
6411
- },
6412
- "file": {
6413
- "char": "f",
6414
- "description": "Path to zip file to upload",
6415
- "name": "file",
6416
- "required": true,
6417
- "hasDynamicHelp": false,
6418
- "multiple": false,
6419
- "type": "option"
6420
- },
6421
6395
  "name": {
6422
6396
  "char": "n",
6423
- "description": "Build name",
6397
+ "description": "Environment variable name",
6424
6398
  "name": "name",
6425
6399
  "required": true,
6426
6400
  "hasDynamicHelp": false,
@@ -6443,7 +6417,7 @@
6443
6417
  },
6444
6418
  "workspace": {
6445
6419
  "char": "w",
6446
- "description": "Workspace ID (optional if set in profile)",
6420
+ "description": "Workspace ID (uses profile workspace if not provided)",
6447
6421
  "name": "workspace",
6448
6422
  "required": false,
6449
6423
  "hasDynamicHelp": false,
@@ -6453,7 +6427,7 @@
6453
6427
  },
6454
6428
  "hasDynamicHelp": false,
6455
6429
  "hiddenAliases": [],
6456
- "id": "static_host:build:create",
6430
+ "id": "tenant:env:get",
6457
6431
  "pluginAlias": "@xano/cli",
6458
6432
  "pluginName": "@xano/cli",
6459
6433
  "pluginType": "core",
@@ -6463,13 +6437,13 @@
6463
6437
  "relativePath": [
6464
6438
  "dist",
6465
6439
  "commands",
6466
- "static_host",
6467
- "build",
6468
- "create",
6440
+ "tenant",
6441
+ "env",
6442
+ "get",
6469
6443
  "index.js"
6470
6444
  ]
6471
6445
  },
6472
- "tenant:license:get": {
6446
+ "tenant:env:set_all": {
6473
6447
  "aliases": [],
6474
6448
  "args": {
6475
6449
  "tenant_name": {
@@ -6478,12 +6452,11 @@
6478
6452
  "required": true
6479
6453
  }
6480
6454
  },
6481
- "description": "Get the license for a tenant",
6455
+ "description": "Set all environment variables for a tenant from a YAML file (replaces all existing)",
6482
6456
  "examples": [
6483
- "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6484
- "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6485
- "$ xano tenant license get my-tenant --view",
6486
- "$ xano tenant license get my-tenant -o json"
6457
+ "$ xano tenant env set_all my-tenant\nReads from env_my-tenant.yaml\n",
6458
+ "$ xano tenant env set_all my-tenant --file ./my-env.yaml",
6459
+ "$ xano tenant env set_all my-tenant -o json"
6487
6460
  ],
6488
6461
  "flags": {
6489
6462
  "profile": {
@@ -6505,105 +6478,22 @@
6505
6478
  "allowNo": false,
6506
6479
  "type": "boolean"
6507
6480
  },
6508
- "file": {
6509
- "char": "f",
6510
- "description": "Output file path (default: license_<tenant_name>.yaml)",
6511
- "name": "file",
6512
- "required": false,
6513
- "hasDynamicHelp": false,
6514
- "multiple": false,
6515
- "type": "option"
6516
- },
6517
- "output": {
6518
- "char": "o",
6519
- "description": "Output format",
6520
- "name": "output",
6521
- "required": false,
6522
- "default": "summary",
6523
- "hasDynamicHelp": false,
6524
- "multiple": false,
6525
- "options": [
6526
- "summary",
6527
- "json"
6528
- ],
6529
- "type": "option"
6530
- },
6531
- "view": {
6532
- "description": "Print license to stdout instead of saving to file",
6533
- "name": "view",
6481
+ "clean": {
6482
+ "description": "Remove the source file after successful upload",
6483
+ "name": "clean",
6534
6484
  "required": false,
6535
6485
  "allowNo": false,
6536
6486
  "type": "boolean"
6537
6487
  },
6538
- "workspace": {
6539
- "char": "w",
6540
- "description": "Workspace ID (uses profile workspace if not provided)",
6541
- "name": "workspace",
6542
- "required": false,
6543
- "hasDynamicHelp": false,
6544
- "multiple": false,
6545
- "type": "option"
6546
- }
6547
- },
6548
- "hasDynamicHelp": false,
6549
- "hiddenAliases": [],
6550
- "id": "tenant:license:get",
6551
- "pluginAlias": "@xano/cli",
6552
- "pluginName": "@xano/cli",
6553
- "pluginType": "core",
6554
- "strict": true,
6555
- "enableJsonFlag": false,
6556
- "isESM": true,
6557
- "relativePath": [
6558
- "dist",
6559
- "commands",
6560
- "tenant",
6561
- "license",
6562
- "get",
6563
- "index.js"
6564
- ]
6565
- },
6566
- "static_host:build:get": {
6567
- "aliases": [],
6568
- "args": {
6569
- "build_id": {
6570
- "description": "Build ID",
6571
- "name": "build_id",
6572
- "required": true
6573
- },
6574
- "static_host": {
6575
- "description": "Static Host name",
6576
- "name": "static_host",
6577
- "required": true
6578
- }
6579
- },
6580
- "description": "Get details of a specific build for a static host",
6581
- "examples": [
6582
- "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
6583
- "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
6584
- "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
6585
- "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
6586
- ],
6587
- "flags": {
6588
- "profile": {
6589
- "char": "p",
6590
- "description": "Profile to use (uses default profile if not specified)",
6591
- "env": "XANO_PROFILE",
6592
- "name": "profile",
6488
+ "file": {
6489
+ "char": "f",
6490
+ "description": "Path to env file (default: env_<tenant_name>.yaml)",
6491
+ "name": "file",
6593
6492
  "required": false,
6594
6493
  "hasDynamicHelp": false,
6595
6494
  "multiple": false,
6596
6495
  "type": "option"
6597
6496
  },
6598
- "verbose": {
6599
- "char": "v",
6600
- "description": "Show detailed request/response information",
6601
- "env": "XANO_VERBOSE",
6602
- "name": "verbose",
6603
- "required": false,
6604
- "allowNo": false,
6605
- "type": "boolean"
6606
- },
6607
6497
  "output": {
6608
6498
  "char": "o",
6609
6499
  "description": "Output format",
@@ -6620,7 +6510,7 @@
6620
6510
  },
6621
6511
  "workspace": {
6622
6512
  "char": "w",
6623
- "description": "Workspace ID (optional if set in profile)",
6513
+ "description": "Workspace ID (uses profile workspace if not provided)",
6624
6514
  "name": "workspace",
6625
6515
  "required": false,
6626
6516
  "hasDynamicHelp": false,
@@ -6630,7 +6520,7 @@
6630
6520
  },
6631
6521
  "hasDynamicHelp": false,
6632
6522
  "hiddenAliases": [],
6633
- "id": "static_host:build:get",
6523
+ "id": "tenant:env:set_all",
6634
6524
  "pluginAlias": "@xano/cli",
6635
6525
  "pluginName": "@xano/cli",
6636
6526
  "pluginType": "core",
@@ -6640,27 +6530,27 @@
6640
6530
  "relativePath": [
6641
6531
  "dist",
6642
6532
  "commands",
6643
- "static_host",
6644
- "build",
6645
- "get",
6533
+ "tenant",
6534
+ "env",
6535
+ "set_all",
6646
6536
  "index.js"
6647
6537
  ]
6648
6538
  },
6649
- "static_host:build:list": {
6539
+ "tenant:license:get": {
6650
6540
  "aliases": [],
6651
6541
  "args": {
6652
- "static_host": {
6653
- "description": "Static Host name",
6654
- "name": "static_host",
6542
+ "tenant_name": {
6543
+ "description": "Tenant name",
6544
+ "name": "tenant_name",
6655
6545
  "required": true
6656
6546
  }
6657
6547
  },
6658
- "description": "List all builds for a static host",
6548
+ "description": "Get the license for a tenant",
6659
6549
  "examples": [
6660
- "$ 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",
6661
- "$ xano static_host:build:list myhost --profile production\nAvailable builds:\n - production (ID: 1) - Status: completed\n - staging (ID: 2) - Status: completed\n",
6662
- "$ 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",
6663
- "$ 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"
6550
+ "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6551
+ "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6552
+ "$ xano tenant license get my-tenant --view",
6553
+ "$ xano tenant license get my-tenant -o json"
6664
6554
  ],
6665
6555
  "flags": {
6666
6556
  "profile": {
@@ -6682,6 +6572,15 @@
6682
6572
  "allowNo": false,
6683
6573
  "type": "boolean"
6684
6574
  },
6575
+ "file": {
6576
+ "char": "f",
6577
+ "description": "Output file path (default: license_<tenant_name>.yaml)",
6578
+ "name": "file",
6579
+ "required": false,
6580
+ "hasDynamicHelp": false,
6581
+ "multiple": false,
6582
+ "type": "option"
6583
+ },
6685
6584
  "output": {
6686
6585
  "char": "o",
6687
6586
  "description": "Output format",
@@ -6696,27 +6595,16 @@
6696
6595
  ],
6697
6596
  "type": "option"
6698
6597
  },
6699
- "page": {
6700
- "description": "Page number for pagination",
6701
- "name": "page",
6702
- "required": false,
6703
- "default": 1,
6704
- "hasDynamicHelp": false,
6705
- "multiple": false,
6706
- "type": "option"
6707
- },
6708
- "per_page": {
6709
- "description": "Number of results per page",
6710
- "name": "per_page",
6598
+ "view": {
6599
+ "description": "Print license to stdout instead of saving to file",
6600
+ "name": "view",
6711
6601
  "required": false,
6712
- "default": 50,
6713
- "hasDynamicHelp": false,
6714
- "multiple": false,
6715
- "type": "option"
6602
+ "allowNo": false,
6603
+ "type": "boolean"
6716
6604
  },
6717
6605
  "workspace": {
6718
6606
  "char": "w",
6719
- "description": "Workspace ID (optional if set in profile)",
6607
+ "description": "Workspace ID (uses profile workspace if not provided)",
6720
6608
  "name": "workspace",
6721
6609
  "required": false,
6722
6610
  "hasDynamicHelp": false,
@@ -6726,7 +6614,7 @@
6726
6614
  },
6727
6615
  "hasDynamicHelp": false,
6728
6616
  "hiddenAliases": [],
6729
- "id": "static_host:build:list",
6617
+ "id": "tenant:license:get",
6730
6618
  "pluginAlias": "@xano/cli",
6731
6619
  "pluginName": "@xano/cli",
6732
6620
  "pluginType": "core",
@@ -6736,30 +6624,27 @@
6736
6624
  "relativePath": [
6737
6625
  "dist",
6738
6626
  "commands",
6739
- "static_host",
6740
- "build",
6741
- "list",
6627
+ "tenant",
6628
+ "license",
6629
+ "get",
6742
6630
  "index.js"
6743
6631
  ]
6744
6632
  },
6745
- "workspace:git:pull": {
6633
+ "tenant:license:set": {
6746
6634
  "aliases": [],
6747
6635
  "args": {
6748
- "directory": {
6749
- "description": "Output directory for imported files",
6750
- "name": "directory",
6636
+ "tenant_name": {
6637
+ "description": "Tenant name",
6638
+ "name": "tenant_name",
6751
6639
  "required": true
6752
6640
  }
6753
6641
  },
6754
- "description": "Pull XanoScript files from a git repository into a local directory",
6642
+ "description": "Set/update the license for a tenant",
6755
6643
  "examples": [
6756
- "$ xano workspace git pull ./output -r https://github.com/owner/repo",
6757
- "$ xano workspace git pull ./output -r https://github.com/owner/repo/tree/main/path/to/dir",
6758
- "$ xano workspace git pull ./output -r https://github.com/owner/repo/blob/main/path/to/file.xs",
6759
- "$ xano workspace git pull ./output -r git@github.com:owner/repo.git",
6760
- "$ xano workspace git pull ./output -r https://github.com/owner/private-repo -t ghp_xxx",
6761
- "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo/-/tree/master/path",
6762
- "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo -b main"
6644
+ "$ xano tenant license set my-tenant\nReads from license_my-tenant.yaml\n",
6645
+ "$ xano tenant license set my-tenant --file ./license.yaml",
6646
+ "$ xano tenant license set my-tenant --value 'key: value'",
6647
+ "$ xano tenant license set my-tenant -o json"
6763
6648
  ],
6764
6649
  "flags": {
6765
6650
  "profile": {
@@ -6781,37 +6666,58 @@
6781
6666
  "allowNo": false,
6782
6667
  "type": "boolean"
6783
6668
  },
6784
- "branch": {
6785
- "char": "b",
6786
- "description": "Branch, tag, or ref to fetch (defaults to repository default branch)",
6787
- "name": "branch",
6669
+ "clean": {
6670
+ "description": "Remove the source file after successful upload",
6671
+ "exclusive": [
6672
+ "value"
6673
+ ],
6674
+ "name": "clean",
6675
+ "required": false,
6676
+ "allowNo": false,
6677
+ "type": "boolean"
6678
+ },
6679
+ "file": {
6680
+ "char": "f",
6681
+ "description": "Path to license file (default: license_<tenant_name>.yaml)",
6682
+ "exclusive": [
6683
+ "value"
6684
+ ],
6685
+ "name": "file",
6788
6686
  "required": false,
6789
6687
  "hasDynamicHelp": false,
6790
6688
  "multiple": false,
6791
6689
  "type": "option"
6792
6690
  },
6793
- "path": {
6794
- "description": "Subdirectory within the repo to import from",
6795
- "name": "path",
6691
+ "output": {
6692
+ "char": "o",
6693
+ "description": "Output format",
6694
+ "name": "output",
6796
6695
  "required": false,
6696
+ "default": "summary",
6797
6697
  "hasDynamicHelp": false,
6798
6698
  "multiple": false,
6699
+ "options": [
6700
+ "summary",
6701
+ "json"
6702
+ ],
6799
6703
  "type": "option"
6800
6704
  },
6801
- "repo": {
6802
- "char": "r",
6803
- "description": "Git repository URL (GitHub HTTPS, SSH, or any git URL)",
6804
- "name": "repo",
6805
- "required": true,
6705
+ "value": {
6706
+ "description": "Inline license value",
6707
+ "exclusive": [
6708
+ "file",
6709
+ "clean"
6710
+ ],
6711
+ "name": "value",
6712
+ "required": false,
6806
6713
  "hasDynamicHelp": false,
6807
6714
  "multiple": false,
6808
6715
  "type": "option"
6809
6716
  },
6810
- "token": {
6811
- "char": "t",
6812
- "description": "Personal access token for private repos (falls back to GITHUB_TOKEN env var)",
6813
- "env": "GITHUB_TOKEN",
6814
- "name": "token",
6717
+ "workspace": {
6718
+ "char": "w",
6719
+ "description": "Workspace ID (uses profile workspace if not provided)",
6720
+ "name": "workspace",
6815
6721
  "required": false,
6816
6722
  "hasDynamicHelp": false,
6817
6723
  "multiple": false,
@@ -6820,7 +6726,7 @@
6820
6726
  },
6821
6727
  "hasDynamicHelp": false,
6822
6728
  "hiddenAliases": [],
6823
- "id": "workspace:git:pull",
6729
+ "id": "tenant:license:set",
6824
6730
  "pluginAlias": "@xano/cli",
6825
6731
  "pluginName": "@xano/cli",
6826
6732
  "pluginType": "core",
@@ -6830,9 +6736,9 @@
6830
6736
  "relativePath": [
6831
6737
  "dist",
6832
6738
  "commands",
6833
- "workspace",
6834
- "git",
6835
- "pull",
6739
+ "tenant",
6740
+ "license",
6741
+ "set",
6836
6742
  "index.js"
6837
6743
  ]
6838
6744
  },
@@ -7025,7 +6931,101 @@
7025
6931
  "set",
7026
6932
  "index.js"
7027
6933
  ]
6934
+ },
6935
+ "workspace:git:pull": {
6936
+ "aliases": [],
6937
+ "args": {
6938
+ "directory": {
6939
+ "description": "Output directory for imported files",
6940
+ "name": "directory",
6941
+ "required": true
6942
+ }
6943
+ },
6944
+ "description": "Pull XanoScript files from a git repository into a local directory",
6945
+ "examples": [
6946
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo",
6947
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo/tree/main/path/to/dir",
6948
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo/blob/main/path/to/file.xs",
6949
+ "$ xano workspace git pull ./output -r git@github.com:owner/repo.git",
6950
+ "$ xano workspace git pull ./output -r https://github.com/owner/private-repo -t ghp_xxx",
6951
+ "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo/-/tree/master/path",
6952
+ "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo -b main"
6953
+ ],
6954
+ "flags": {
6955
+ "profile": {
6956
+ "char": "p",
6957
+ "description": "Profile to use (uses default profile if not specified)",
6958
+ "env": "XANO_PROFILE",
6959
+ "name": "profile",
6960
+ "required": false,
6961
+ "hasDynamicHelp": false,
6962
+ "multiple": false,
6963
+ "type": "option"
6964
+ },
6965
+ "verbose": {
6966
+ "char": "v",
6967
+ "description": "Show detailed request/response information",
6968
+ "env": "XANO_VERBOSE",
6969
+ "name": "verbose",
6970
+ "required": false,
6971
+ "allowNo": false,
6972
+ "type": "boolean"
6973
+ },
6974
+ "branch": {
6975
+ "char": "b",
6976
+ "description": "Branch, tag, or ref to fetch (defaults to repository default branch)",
6977
+ "name": "branch",
6978
+ "required": false,
6979
+ "hasDynamicHelp": false,
6980
+ "multiple": false,
6981
+ "type": "option"
6982
+ },
6983
+ "path": {
6984
+ "description": "Subdirectory within the repo to import from",
6985
+ "name": "path",
6986
+ "required": false,
6987
+ "hasDynamicHelp": false,
6988
+ "multiple": false,
6989
+ "type": "option"
6990
+ },
6991
+ "repo": {
6992
+ "char": "r",
6993
+ "description": "Git repository URL (GitHub HTTPS, SSH, or any git URL)",
6994
+ "name": "repo",
6995
+ "required": true,
6996
+ "hasDynamicHelp": false,
6997
+ "multiple": false,
6998
+ "type": "option"
6999
+ },
7000
+ "token": {
7001
+ "char": "t",
7002
+ "description": "Personal access token for private repos (falls back to GITHUB_TOKEN env var)",
7003
+ "env": "GITHUB_TOKEN",
7004
+ "name": "token",
7005
+ "required": false,
7006
+ "hasDynamicHelp": false,
7007
+ "multiple": false,
7008
+ "type": "option"
7009
+ }
7010
+ },
7011
+ "hasDynamicHelp": false,
7012
+ "hiddenAliases": [],
7013
+ "id": "workspace:git:pull",
7014
+ "pluginAlias": "@xano/cli",
7015
+ "pluginName": "@xano/cli",
7016
+ "pluginType": "core",
7017
+ "strict": true,
7018
+ "enableJsonFlag": false,
7019
+ "isESM": true,
7020
+ "relativePath": [
7021
+ "dist",
7022
+ "commands",
7023
+ "workspace",
7024
+ "git",
7025
+ "pull",
7026
+ "index.js"
7027
+ ]
7028
7028
  }
7029
7029
  },
7030
- "version": "0.0.50"
7030
+ "version": "0.0.52"
7031
7031
  }