@xano/cli 0.0.39 → 0.0.41

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.
@@ -480,208 +480,6 @@
480
480
  "index.js"
481
481
  ]
482
482
  },
483
- "platform:get": {
484
- "aliases": [],
485
- "args": {
486
- "platform_id": {
487
- "description": "Platform ID to retrieve",
488
- "name": "platform_id",
489
- "required": true
490
- }
491
- },
492
- "description": "Get details of a specific platform",
493
- "examples": [
494
- "$ 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",
495
- "$ xano platform get 23629 -o json"
496
- ],
497
- "flags": {
498
- "profile": {
499
- "char": "p",
500
- "description": "Profile to use (uses default profile if not specified)",
501
- "env": "XANO_PROFILE",
502
- "name": "profile",
503
- "required": false,
504
- "hasDynamicHelp": false,
505
- "multiple": false,
506
- "type": "option"
507
- },
508
- "verbose": {
509
- "char": "v",
510
- "description": "Show detailed request/response information",
511
- "env": "XANO_VERBOSE",
512
- "name": "verbose",
513
- "required": false,
514
- "allowNo": false,
515
- "type": "boolean"
516
- },
517
- "output": {
518
- "char": "o",
519
- "description": "Output format",
520
- "name": "output",
521
- "required": false,
522
- "default": "summary",
523
- "hasDynamicHelp": false,
524
- "multiple": false,
525
- "options": [
526
- "summary",
527
- "json"
528
- ],
529
- "type": "option"
530
- }
531
- },
532
- "hasDynamicHelp": false,
533
- "hiddenAliases": [],
534
- "id": "platform:get",
535
- "pluginAlias": "@xano/cli",
536
- "pluginName": "@xano/cli",
537
- "pluginType": "core",
538
- "strict": true,
539
- "enableJsonFlag": false,
540
- "isESM": true,
541
- "relativePath": [
542
- "dist",
543
- "commands",
544
- "platform",
545
- "get",
546
- "index.js"
547
- ]
548
- },
549
- "branch:get": {
550
- "aliases": [],
551
- "args": {
552
- "branch_label": {
553
- "description": "Branch label (e.g., \"v1\", \"dev\")",
554
- "name": "branch_label",
555
- "required": true
556
- }
557
- },
558
- "description": "Get details for a specific branch",
559
- "examples": [
560
- "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
561
- "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
562
- "$ xano branch get staging --output json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false,\n \"live\": false\n}\n"
563
- ],
564
- "flags": {
565
- "profile": {
566
- "char": "p",
567
- "description": "Profile to use (uses default profile if not specified)",
568
- "env": "XANO_PROFILE",
569
- "name": "profile",
570
- "required": false,
571
- "hasDynamicHelp": false,
572
- "multiple": false,
573
- "type": "option"
574
- },
575
- "verbose": {
576
- "char": "v",
577
- "description": "Show detailed request/response information",
578
- "env": "XANO_VERBOSE",
579
- "name": "verbose",
580
- "required": false,
581
- "allowNo": false,
582
- "type": "boolean"
583
- },
584
- "output": {
585
- "char": "o",
586
- "description": "Output format",
587
- "name": "output",
588
- "required": false,
589
- "default": "summary",
590
- "hasDynamicHelp": false,
591
- "multiple": false,
592
- "options": [
593
- "summary",
594
- "json"
595
- ],
596
- "type": "option"
597
- },
598
- "workspace": {
599
- "char": "w",
600
- "description": "Workspace ID (uses profile workspace if not provided)",
601
- "name": "workspace",
602
- "required": false,
603
- "hasDynamicHelp": false,
604
- "multiple": false,
605
- "type": "option"
606
- }
607
- },
608
- "hasDynamicHelp": false,
609
- "hiddenAliases": [],
610
- "id": "branch:get",
611
- "pluginAlias": "@xano/cli",
612
- "pluginName": "@xano/cli",
613
- "pluginType": "core",
614
- "strict": true,
615
- "enableJsonFlag": false,
616
- "isESM": true,
617
- "relativePath": [
618
- "dist",
619
- "commands",
620
- "branch",
621
- "get",
622
- "index.js"
623
- ]
624
- },
625
- "platform:list": {
626
- "aliases": [],
627
- "args": {},
628
- "description": "List all platforms",
629
- "examples": [
630
- "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
631
- "$ xano platform list --output json"
632
- ],
633
- "flags": {
634
- "profile": {
635
- "char": "p",
636
- "description": "Profile to use (uses default profile if not specified)",
637
- "env": "XANO_PROFILE",
638
- "name": "profile",
639
- "required": false,
640
- "hasDynamicHelp": false,
641
- "multiple": false,
642
- "type": "option"
643
- },
644
- "verbose": {
645
- "char": "v",
646
- "description": "Show detailed request/response information",
647
- "env": "XANO_VERBOSE",
648
- "name": "verbose",
649
- "required": false,
650
- "allowNo": false,
651
- "type": "boolean"
652
- },
653
- "output": {
654
- "char": "o",
655
- "description": "Output format",
656
- "name": "output",
657
- "required": false,
658
- "default": "summary",
659
- "hasDynamicHelp": false,
660
- "multiple": false,
661
- "options": [
662
- "summary",
663
- "json"
664
- ],
665
- "type": "option"
666
- }
667
- },
668
- "hasDynamicHelp": false,
669
- "hiddenAliases": [],
670
- "id": "platform:list",
671
- "pluginAlias": "@xano/cli",
672
- "pluginName": "@xano/cli",
673
- "pluginType": "core",
674
- "strict": true,
675
- "enableJsonFlag": false,
676
- "isESM": true,
677
- "relativePath": [
678
- "dist",
679
- "commands",
680
- "platform",
681
- "list",
682
- "index.js"
683
- ]
684
- },
685
483
  "function:create": {
686
484
  "aliases": [],
687
485
  "args": {},
@@ -907,15 +705,23 @@
907
705
  "index.js"
908
706
  ]
909
707
  },
910
- "function:list": {
708
+ "function:get": {
911
709
  "aliases": [],
912
- "args": {},
913
- "description": "List all functions in a workspace from the Xano Metadata API",
710
+ "args": {
711
+ "function_id": {
712
+ "description": "Function ID",
713
+ "name": "function_id",
714
+ "required": false
715
+ }
716
+ },
717
+ "description": "Get a specific function from a workspace",
914
718
  "examples": [
915
- "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
916
- "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
917
- "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
918
- "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
719
+ "$ xano function:get 145 -w 40\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\nDescription: Sample function\n",
720
+ "$ xano function:get 145 --profile production\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\n",
721
+ "$ xano function:get\nSelect a function:\n ❯ yo (ID: 145) - Sample function\n another-func (ID: 146)\n",
722
+ "$ xano function:get 145 -w 40 --output json\n{\n \"id\": 145,\n \"name\": \"yo\",\n \"description\": \"Sample function\"\n}\n",
723
+ "$ xano function:get 145 -p staging -o json --include_draft\n{\n \"id\": 145,\n \"name\": \"yo\"\n}\n",
724
+ "$ xano function:get 145 -p staging -o xs\nfunction yo {\n input {\n }\n stack {\n }\n response = null\n}\n"
919
725
  ],
920
726
  "flags": {
921
727
  "profile": {
@@ -938,7 +744,7 @@
938
744
  "type": "boolean"
939
745
  },
940
746
  "include_draft": {
941
- "description": "Include draft functions",
747
+ "description": "Include draft version",
942
748
  "name": "include_draft",
943
749
  "required": false,
944
750
  "allowNo": false,
@@ -951,19 +757,6 @@
951
757
  "allowNo": false,
952
758
  "type": "boolean"
953
759
  },
954
- "order": {
955
- "description": "Sort order",
956
- "name": "order",
957
- "required": false,
958
- "default": "desc",
959
- "hasDynamicHelp": false,
960
- "multiple": false,
961
- "options": [
962
- "asc",
963
- "desc"
964
- ],
965
- "type": "option"
966
- },
967
760
  "output": {
968
761
  "char": "o",
969
762
  "description": "Output format",
@@ -974,24 +767,123 @@
974
767
  "multiple": false,
975
768
  "options": [
976
769
  "summary",
977
- "json"
770
+ "json",
771
+ "xs"
978
772
  ],
979
773
  "type": "option"
980
774
  },
981
- "page": {
982
- "description": "Page number for pagination",
983
- "name": "page",
775
+ "workspace": {
776
+ "char": "w",
777
+ "description": "Workspace ID (optional if set in profile)",
778
+ "name": "workspace",
984
779
  "required": false,
985
- "default": 1,
986
780
  "hasDynamicHelp": false,
987
781
  "multiple": false,
988
782
  "type": "option"
989
- },
990
- "per_page": {
991
- "description": "Number of results per page",
992
- "name": "per_page",
993
- "required": false,
994
- "default": 50,
783
+ }
784
+ },
785
+ "hasDynamicHelp": false,
786
+ "hiddenAliases": [],
787
+ "id": "function:get",
788
+ "pluginAlias": "@xano/cli",
789
+ "pluginName": "@xano/cli",
790
+ "pluginType": "core",
791
+ "strict": true,
792
+ "enableJsonFlag": false,
793
+ "isESM": true,
794
+ "relativePath": [
795
+ "dist",
796
+ "commands",
797
+ "function",
798
+ "get",
799
+ "index.js"
800
+ ]
801
+ },
802
+ "function:list": {
803
+ "aliases": [],
804
+ "args": {},
805
+ "description": "List all functions in a workspace from the Xano Metadata API",
806
+ "examples": [
807
+ "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
808
+ "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
809
+ "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
810
+ "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
811
+ ],
812
+ "flags": {
813
+ "profile": {
814
+ "char": "p",
815
+ "description": "Profile to use (uses default profile if not specified)",
816
+ "env": "XANO_PROFILE",
817
+ "name": "profile",
818
+ "required": false,
819
+ "hasDynamicHelp": false,
820
+ "multiple": false,
821
+ "type": "option"
822
+ },
823
+ "verbose": {
824
+ "char": "v",
825
+ "description": "Show detailed request/response information",
826
+ "env": "XANO_VERBOSE",
827
+ "name": "verbose",
828
+ "required": false,
829
+ "allowNo": false,
830
+ "type": "boolean"
831
+ },
832
+ "include_draft": {
833
+ "description": "Include draft functions",
834
+ "name": "include_draft",
835
+ "required": false,
836
+ "allowNo": false,
837
+ "type": "boolean"
838
+ },
839
+ "include_xanoscript": {
840
+ "description": "Include XanoScript in response",
841
+ "name": "include_xanoscript",
842
+ "required": false,
843
+ "allowNo": false,
844
+ "type": "boolean"
845
+ },
846
+ "order": {
847
+ "description": "Sort order",
848
+ "name": "order",
849
+ "required": false,
850
+ "default": "desc",
851
+ "hasDynamicHelp": false,
852
+ "multiple": false,
853
+ "options": [
854
+ "asc",
855
+ "desc"
856
+ ],
857
+ "type": "option"
858
+ },
859
+ "output": {
860
+ "char": "o",
861
+ "description": "Output format",
862
+ "name": "output",
863
+ "required": false,
864
+ "default": "summary",
865
+ "hasDynamicHelp": false,
866
+ "multiple": false,
867
+ "options": [
868
+ "summary",
869
+ "json"
870
+ ],
871
+ "type": "option"
872
+ },
873
+ "page": {
874
+ "description": "Page number for pagination",
875
+ "name": "page",
876
+ "required": false,
877
+ "default": 1,
878
+ "hasDynamicHelp": false,
879
+ "multiple": false,
880
+ "type": "option"
881
+ },
882
+ "per_page": {
883
+ "description": "Number of results per page",
884
+ "name": "per_page",
885
+ "required": false,
886
+ "default": 50,
995
887
  "hasDynamicHelp": false,
996
888
  "multiple": false,
997
889
  "type": "option"
@@ -1032,6 +924,72 @@
1032
924
  "index.js"
1033
925
  ]
1034
926
  },
927
+ "platform:get": {
928
+ "aliases": [],
929
+ "args": {
930
+ "platform_id": {
931
+ "description": "Platform ID to retrieve",
932
+ "name": "platform_id",
933
+ "required": true
934
+ }
935
+ },
936
+ "description": "Get details of a specific platform",
937
+ "examples": [
938
+ "$ 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",
939
+ "$ xano platform get 23629 -o json"
940
+ ],
941
+ "flags": {
942
+ "profile": {
943
+ "char": "p",
944
+ "description": "Profile to use (uses default profile if not specified)",
945
+ "env": "XANO_PROFILE",
946
+ "name": "profile",
947
+ "required": false,
948
+ "hasDynamicHelp": false,
949
+ "multiple": false,
950
+ "type": "option"
951
+ },
952
+ "verbose": {
953
+ "char": "v",
954
+ "description": "Show detailed request/response information",
955
+ "env": "XANO_VERBOSE",
956
+ "name": "verbose",
957
+ "required": false,
958
+ "allowNo": false,
959
+ "type": "boolean"
960
+ },
961
+ "output": {
962
+ "char": "o",
963
+ "description": "Output format",
964
+ "name": "output",
965
+ "required": false,
966
+ "default": "summary",
967
+ "hasDynamicHelp": false,
968
+ "multiple": false,
969
+ "options": [
970
+ "summary",
971
+ "json"
972
+ ],
973
+ "type": "option"
974
+ }
975
+ },
976
+ "hasDynamicHelp": false,
977
+ "hiddenAliases": [],
978
+ "id": "platform:get",
979
+ "pluginAlias": "@xano/cli",
980
+ "pluginName": "@xano/cli",
981
+ "pluginType": "core",
982
+ "strict": true,
983
+ "enableJsonFlag": false,
984
+ "isESM": true,
985
+ "relativePath": [
986
+ "dist",
987
+ "commands",
988
+ "platform",
989
+ "get",
990
+ "index.js"
991
+ ]
992
+ },
1035
993
  "profile:create": {
1036
994
  "aliases": [],
1037
995
  "args": {
@@ -1119,34 +1077,52 @@
1119
1077
  "index.js"
1120
1078
  ]
1121
1079
  },
1122
- "profile:delete": {
1080
+ "platform:list": {
1123
1081
  "aliases": [],
1124
- "args": {
1125
- "name": {
1126
- "description": "Profile name to delete",
1127
- "name": "name",
1128
- "required": true
1129
- }
1130
- },
1131
- "description": "Delete a profile configuration",
1082
+ "args": {},
1083
+ "description": "List all platforms",
1132
1084
  "examples": [
1133
- "$ xano profile:delete old-profile\nAre you sure you want to delete profile 'old-profile'? (y/n): y\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n",
1134
- "$ xano profile:delete old-profile --force\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n",
1135
- "$ xano profile:delete old-profile -f\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n"
1085
+ "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
1086
+ "$ xano platform list --output json"
1136
1087
  ],
1137
1088
  "flags": {
1138
- "force": {
1139
- "char": "f",
1140
- "description": "Skip confirmation prompt",
1141
- "name": "force",
1089
+ "profile": {
1090
+ "char": "p",
1091
+ "description": "Profile to use (uses default profile if not specified)",
1092
+ "env": "XANO_PROFILE",
1093
+ "name": "profile",
1094
+ "required": false,
1095
+ "hasDynamicHelp": false,
1096
+ "multiple": false,
1097
+ "type": "option"
1098
+ },
1099
+ "verbose": {
1100
+ "char": "v",
1101
+ "description": "Show detailed request/response information",
1102
+ "env": "XANO_VERBOSE",
1103
+ "name": "verbose",
1142
1104
  "required": false,
1143
1105
  "allowNo": false,
1144
1106
  "type": "boolean"
1107
+ },
1108
+ "output": {
1109
+ "char": "o",
1110
+ "description": "Output format",
1111
+ "name": "output",
1112
+ "required": false,
1113
+ "default": "summary",
1114
+ "hasDynamicHelp": false,
1115
+ "multiple": false,
1116
+ "options": [
1117
+ "summary",
1118
+ "json"
1119
+ ],
1120
+ "type": "option"
1145
1121
  }
1146
1122
  },
1147
1123
  "hasDynamicHelp": false,
1148
1124
  "hiddenAliases": [],
1149
- "id": "profile:delete",
1125
+ "id": "platform:list",
1150
1126
  "pluginAlias": "@xano/cli",
1151
1127
  "pluginName": "@xano/cli",
1152
1128
  "pluginType": "core",
@@ -1156,27 +1132,25 @@
1156
1132
  "relativePath": [
1157
1133
  "dist",
1158
1134
  "commands",
1159
- "profile",
1160
- "delete",
1135
+ "platform",
1136
+ "list",
1161
1137
  "index.js"
1162
1138
  ]
1163
1139
  },
1164
- "profile:edit": {
1140
+ "branch:get": {
1165
1141
  "aliases": [],
1166
1142
  "args": {
1167
- "name": {
1168
- "description": "Profile name to edit (uses default profile if not specified)",
1169
- "name": "name",
1170
- "required": false
1143
+ "branch_label": {
1144
+ "description": "Branch label (e.g., \"v1\", \"dev\")",
1145
+ "name": "branch_label",
1146
+ "required": true
1171
1147
  }
1172
1148
  },
1173
- "description": "Edit an existing profile configuration",
1149
+ "description": "Get details for a specific branch",
1174
1150
  "examples": [
1175
- "$ xano profile:edit --access_token new_token123\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n",
1176
- "$ xano profile:edit production --access_token new_token123\nProfile 'production' updated successfully at ~/.xano/credentials.yaml\n",
1177
- "$ xano profile:edit staging -i https://new-staging-instance.xano.com -t new_token456\nProfile 'staging' updated successfully at ~/.xano/credentials.yaml\n",
1178
- "$ xano profile:edit -b new-branch\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n",
1179
- "$ xano profile:edit --remove-branch\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n"
1151
+ "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
1152
+ "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
1153
+ "$ xano branch get staging --output json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false,\n \"live\": false\n}\n"
1180
1154
  ],
1181
1155
  "flags": {
1182
1156
  "profile": {
@@ -1198,59 +1172,23 @@
1198
1172
  "allowNo": false,
1199
1173
  "type": "boolean"
1200
1174
  },
1201
- "access_token": {
1202
- "char": "t",
1203
- "description": "Update access token for the Xano Metadata API",
1204
- "name": "access_token",
1205
- "required": false,
1206
- "hasDynamicHelp": false,
1207
- "multiple": false,
1208
- "type": "option"
1209
- },
1210
- "account_origin": {
1211
- "char": "a",
1212
- "description": "Update account origin URL",
1213
- "name": "account_origin",
1214
- "required": false,
1215
- "hasDynamicHelp": false,
1216
- "multiple": false,
1217
- "type": "option"
1218
- },
1219
- "branch": {
1220
- "char": "b",
1221
- "description": "Update branch name",
1222
- "name": "branch",
1223
- "required": false,
1224
- "hasDynamicHelp": false,
1225
- "multiple": false,
1226
- "type": "option"
1227
- },
1228
- "instance_origin": {
1229
- "char": "i",
1230
- "description": "Update instance origin URL",
1231
- "name": "instance_origin",
1175
+ "output": {
1176
+ "char": "o",
1177
+ "description": "Output format",
1178
+ "name": "output",
1232
1179
  "required": false,
1180
+ "default": "summary",
1233
1181
  "hasDynamicHelp": false,
1234
1182
  "multiple": false,
1183
+ "options": [
1184
+ "summary",
1185
+ "json"
1186
+ ],
1235
1187
  "type": "option"
1236
1188
  },
1237
- "remove-branch": {
1238
- "description": "Remove branch from profile",
1239
- "name": "remove-branch",
1240
- "required": false,
1241
- "allowNo": false,
1242
- "type": "boolean"
1243
- },
1244
- "remove-workspace": {
1245
- "description": "Remove workspace from profile",
1246
- "name": "remove-workspace",
1247
- "required": false,
1248
- "allowNo": false,
1249
- "type": "boolean"
1250
- },
1251
1189
  "workspace": {
1252
1190
  "char": "w",
1253
- "description": "Update workspace name",
1191
+ "description": "Workspace ID (uses profile workspace if not provided)",
1254
1192
  "name": "workspace",
1255
1193
  "required": false,
1256
1194
  "hasDynamicHelp": false,
@@ -1260,7 +1198,7 @@
1260
1198
  },
1261
1199
  "hasDynamicHelp": false,
1262
1200
  "hiddenAliases": [],
1263
- "id": "profile:edit",
1201
+ "id": "branch:get",
1264
1202
  "pluginAlias": "@xano/cli",
1265
1203
  "pluginName": "@xano/cli",
1266
1204
  "pluginType": "core",
@@ -1270,23 +1208,39 @@
1270
1208
  "relativePath": [
1271
1209
  "dist",
1272
1210
  "commands",
1273
- "profile",
1274
- "edit",
1211
+ "branch",
1212
+ "get",
1275
1213
  "index.js"
1276
1214
  ]
1277
1215
  },
1278
- "profile:get_default": {
1216
+ "profile:delete": {
1279
1217
  "aliases": [],
1280
- "args": {},
1281
- "description": "Get the current default profile name",
1218
+ "args": {
1219
+ "name": {
1220
+ "description": "Profile name to delete",
1221
+ "name": "name",
1222
+ "required": true
1223
+ }
1224
+ },
1225
+ "description": "Delete a profile configuration",
1282
1226
  "examples": [
1283
- "$ xano profile:get-default\nproduction\n",
1284
- "$ xano profile:get-default\nNo default profile set\n"
1227
+ "$ xano profile:delete old-profile\nAre you sure you want to delete profile 'old-profile'? (y/n): y\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n",
1228
+ "$ xano profile:delete old-profile --force\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n",
1229
+ "$ xano profile:delete old-profile -f\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n"
1285
1230
  ],
1286
- "flags": {},
1231
+ "flags": {
1232
+ "force": {
1233
+ "char": "f",
1234
+ "description": "Skip confirmation prompt",
1235
+ "name": "force",
1236
+ "required": false,
1237
+ "allowNo": false,
1238
+ "type": "boolean"
1239
+ }
1240
+ },
1287
1241
  "hasDynamicHelp": false,
1288
1242
  "hiddenAliases": [],
1289
- "id": "profile:get_default",
1243
+ "id": "profile:delete",
1290
1244
  "pluginAlias": "@xano/cli",
1291
1245
  "pluginName": "@xano/cli",
1292
1246
  "pluginType": "core",
@@ -1297,27 +1251,26 @@
1297
1251
  "dist",
1298
1252
  "commands",
1299
1253
  "profile",
1300
- "get_default",
1254
+ "delete",
1301
1255
  "index.js"
1302
1256
  ]
1303
1257
  },
1304
- "function:get": {
1258
+ "profile:edit": {
1305
1259
  "aliases": [],
1306
1260
  "args": {
1307
- "function_id": {
1308
- "description": "Function ID",
1309
- "name": "function_id",
1261
+ "name": {
1262
+ "description": "Profile name to edit (uses default profile if not specified)",
1263
+ "name": "name",
1310
1264
  "required": false
1311
1265
  }
1312
1266
  },
1313
- "description": "Get a specific function from a workspace",
1267
+ "description": "Edit an existing profile configuration",
1314
1268
  "examples": [
1315
- "$ xano function:get 145 -w 40\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\nDescription: Sample function\n",
1316
- "$ xano function:get 145 --profile production\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\n",
1317
- "$ xano function:get\nSelect a function:\n ❯ yo (ID: 145) - Sample function\n another-func (ID: 146)\n",
1318
- "$ xano function:get 145 -w 40 --output json\n{\n \"id\": 145,\n \"name\": \"yo\",\n \"description\": \"Sample function\"\n}\n",
1319
- "$ xano function:get 145 -p staging -o json --include_draft\n{\n \"id\": 145,\n \"name\": \"yo\"\n}\n",
1320
- "$ xano function:get 145 -p staging -o xs\nfunction yo {\n input {\n }\n stack {\n }\n response = null\n}\n"
1269
+ "$ xano profile:edit --access_token new_token123\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n",
1270
+ "$ xano profile:edit production --access_token new_token123\nProfile 'production' updated successfully at ~/.xano/credentials.yaml\n",
1271
+ "$ xano profile:edit staging -i https://new-staging-instance.xano.com -t new_token456\nProfile 'staging' updated successfully at ~/.xano/credentials.yaml\n",
1272
+ "$ xano profile:edit -b new-branch\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n",
1273
+ "$ xano profile:edit --remove-branch\nProfile 'default' updated successfully at ~/.xano/credentials.yaml\n"
1321
1274
  ],
1322
1275
  "flags": {
1323
1276
  "profile": {
@@ -1330,47 +1283,68 @@
1330
1283
  "multiple": false,
1331
1284
  "type": "option"
1332
1285
  },
1333
- "verbose": {
1334
- "char": "v",
1335
- "description": "Show detailed request/response information",
1336
- "env": "XANO_VERBOSE",
1337
- "name": "verbose",
1286
+ "verbose": {
1287
+ "char": "v",
1288
+ "description": "Show detailed request/response information",
1289
+ "env": "XANO_VERBOSE",
1290
+ "name": "verbose",
1291
+ "required": false,
1292
+ "allowNo": false,
1293
+ "type": "boolean"
1294
+ },
1295
+ "access_token": {
1296
+ "char": "t",
1297
+ "description": "Update access token for the Xano Metadata API",
1298
+ "name": "access_token",
1299
+ "required": false,
1300
+ "hasDynamicHelp": false,
1301
+ "multiple": false,
1302
+ "type": "option"
1303
+ },
1304
+ "account_origin": {
1305
+ "char": "a",
1306
+ "description": "Update account origin URL",
1307
+ "name": "account_origin",
1308
+ "required": false,
1309
+ "hasDynamicHelp": false,
1310
+ "multiple": false,
1311
+ "type": "option"
1312
+ },
1313
+ "branch": {
1314
+ "char": "b",
1315
+ "description": "Update branch name",
1316
+ "name": "branch",
1317
+ "required": false,
1318
+ "hasDynamicHelp": false,
1319
+ "multiple": false,
1320
+ "type": "option"
1321
+ },
1322
+ "instance_origin": {
1323
+ "char": "i",
1324
+ "description": "Update instance origin URL",
1325
+ "name": "instance_origin",
1338
1326
  "required": false,
1339
- "allowNo": false,
1340
- "type": "boolean"
1327
+ "hasDynamicHelp": false,
1328
+ "multiple": false,
1329
+ "type": "option"
1341
1330
  },
1342
- "include_draft": {
1343
- "description": "Include draft version",
1344
- "name": "include_draft",
1331
+ "remove-branch": {
1332
+ "description": "Remove branch from profile",
1333
+ "name": "remove-branch",
1345
1334
  "required": false,
1346
1335
  "allowNo": false,
1347
1336
  "type": "boolean"
1348
1337
  },
1349
- "include_xanoscript": {
1350
- "description": "Include XanoScript in response",
1351
- "name": "include_xanoscript",
1338
+ "remove-workspace": {
1339
+ "description": "Remove workspace from profile",
1340
+ "name": "remove-workspace",
1352
1341
  "required": false,
1353
1342
  "allowNo": false,
1354
1343
  "type": "boolean"
1355
1344
  },
1356
- "output": {
1357
- "char": "o",
1358
- "description": "Output format",
1359
- "name": "output",
1360
- "required": false,
1361
- "default": "summary",
1362
- "hasDynamicHelp": false,
1363
- "multiple": false,
1364
- "options": [
1365
- "summary",
1366
- "json",
1367
- "xs"
1368
- ],
1369
- "type": "option"
1370
- },
1371
1345
  "workspace": {
1372
1346
  "char": "w",
1373
- "description": "Workspace ID (optional if set in profile)",
1347
+ "description": "Update workspace name",
1374
1348
  "name": "workspace",
1375
1349
  "required": false,
1376
1350
  "hasDynamicHelp": false,
@@ -1380,7 +1354,7 @@
1380
1354
  },
1381
1355
  "hasDynamicHelp": false,
1382
1356
  "hiddenAliases": [],
1383
- "id": "function:get",
1357
+ "id": "profile:edit",
1384
1358
  "pluginAlias": "@xano/cli",
1385
1359
  "pluginName": "@xano/cli",
1386
1360
  "pluginType": "core",
@@ -1390,8 +1364,34 @@
1390
1364
  "relativePath": [
1391
1365
  "dist",
1392
1366
  "commands",
1393
- "function",
1394
- "get",
1367
+ "profile",
1368
+ "edit",
1369
+ "index.js"
1370
+ ]
1371
+ },
1372
+ "profile:get_default": {
1373
+ "aliases": [],
1374
+ "args": {},
1375
+ "description": "Get the current default profile name",
1376
+ "examples": [
1377
+ "$ xano profile:get-default\nproduction\n",
1378
+ "$ xano profile:get-default\nNo default profile set\n"
1379
+ ],
1380
+ "flags": {},
1381
+ "hasDynamicHelp": false,
1382
+ "hiddenAliases": [],
1383
+ "id": "profile:get_default",
1384
+ "pluginAlias": "@xano/cli",
1385
+ "pluginName": "@xano/cli",
1386
+ "pluginType": "core",
1387
+ "strict": true,
1388
+ "enableJsonFlag": false,
1389
+ "isESM": true,
1390
+ "relativePath": [
1391
+ "dist",
1392
+ "commands",
1393
+ "profile",
1394
+ "get_default",
1395
1395
  "index.js"
1396
1396
  ]
1397
1397
  },
@@ -1456,42 +1456,6 @@
1456
1456
  "index.js"
1457
1457
  ]
1458
1458
  },
1459
- "profile:list": {
1460
- "aliases": [],
1461
- "args": {},
1462
- "description": "List all available profile configurations",
1463
- "examples": [
1464
- "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1465
- "$ 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",
1466
- "$ 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"
1467
- ],
1468
- "flags": {
1469
- "details": {
1470
- "char": "d",
1471
- "description": "Show detailed information for each profile",
1472
- "name": "details",
1473
- "required": false,
1474
- "allowNo": false,
1475
- "type": "boolean"
1476
- }
1477
- },
1478
- "hasDynamicHelp": false,
1479
- "hiddenAliases": [],
1480
- "id": "profile:list",
1481
- "pluginAlias": "@xano/cli",
1482
- "pluginName": "@xano/cli",
1483
- "pluginType": "core",
1484
- "strict": true,
1485
- "enableJsonFlag": false,
1486
- "isESM": true,
1487
- "relativePath": [
1488
- "dist",
1489
- "commands",
1490
- "profile",
1491
- "list",
1492
- "index.js"
1493
- ]
1494
- },
1495
1459
  "profile:set_default": {
1496
1460
  "aliases": [],
1497
1461
  "args": {
@@ -1569,6 +1533,32 @@
1569
1533
  "index.js"
1570
1534
  ]
1571
1535
  },
1536
+ "profile:token": {
1537
+ "aliases": [],
1538
+ "args": {},
1539
+ "description": "Print the access token for the default profile",
1540
+ "examples": [
1541
+ "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1542
+ "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1543
+ ],
1544
+ "flags": {},
1545
+ "hasDynamicHelp": false,
1546
+ "hiddenAliases": [],
1547
+ "id": "profile:token",
1548
+ "pluginAlias": "@xano/cli",
1549
+ "pluginName": "@xano/cli",
1550
+ "pluginType": "core",
1551
+ "strict": true,
1552
+ "enableJsonFlag": false,
1553
+ "isESM": true,
1554
+ "relativePath": [
1555
+ "dist",
1556
+ "commands",
1557
+ "profile",
1558
+ "token",
1559
+ "index.js"
1560
+ ]
1561
+ },
1572
1562
  "profile:workspace": {
1573
1563
  "aliases": [],
1574
1564
  "args": {},
@@ -1595,6 +1585,42 @@
1595
1585
  "index.js"
1596
1586
  ]
1597
1587
  },
1588
+ "profile:list": {
1589
+ "aliases": [],
1590
+ "args": {},
1591
+ "description": "List all available profile configurations",
1592
+ "examples": [
1593
+ "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1594
+ "$ 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",
1595
+ "$ 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"
1596
+ ],
1597
+ "flags": {
1598
+ "details": {
1599
+ "char": "d",
1600
+ "description": "Show detailed information for each profile",
1601
+ "name": "details",
1602
+ "required": false,
1603
+ "allowNo": false,
1604
+ "type": "boolean"
1605
+ }
1606
+ },
1607
+ "hasDynamicHelp": false,
1608
+ "hiddenAliases": [],
1609
+ "id": "profile:list",
1610
+ "pluginAlias": "@xano/cli",
1611
+ "pluginName": "@xano/cli",
1612
+ "pluginType": "core",
1613
+ "strict": true,
1614
+ "enableJsonFlag": false,
1615
+ "isESM": true,
1616
+ "relativePath": [
1617
+ "dist",
1618
+ "commands",
1619
+ "profile",
1620
+ "list",
1621
+ "index.js"
1622
+ ]
1623
+ },
1598
1624
  "release:create": {
1599
1625
  "aliases": [],
1600
1626
  "args": {},
@@ -1691,7 +1717,91 @@
1691
1717
  },
1692
1718
  "hasDynamicHelp": false,
1693
1719
  "hiddenAliases": [],
1694
- "id": "release:create",
1720
+ "id": "release:create",
1721
+ "pluginAlias": "@xano/cli",
1722
+ "pluginName": "@xano/cli",
1723
+ "pluginType": "core",
1724
+ "strict": true,
1725
+ "enableJsonFlag": false,
1726
+ "isESM": true,
1727
+ "relativePath": [
1728
+ "dist",
1729
+ "commands",
1730
+ "release",
1731
+ "create",
1732
+ "index.js"
1733
+ ]
1734
+ },
1735
+ "release:delete": {
1736
+ "aliases": [],
1737
+ "args": {
1738
+ "release_name": {
1739
+ "description": "Release name to delete",
1740
+ "name": "release_name",
1741
+ "required": true
1742
+ }
1743
+ },
1744
+ "description": "Delete a release permanently. This action cannot be undone.",
1745
+ "examples": [
1746
+ "$ 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",
1747
+ "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1748
+ "$ xano release delete v1.0 -f -o json"
1749
+ ],
1750
+ "flags": {
1751
+ "profile": {
1752
+ "char": "p",
1753
+ "description": "Profile to use (uses default profile if not specified)",
1754
+ "env": "XANO_PROFILE",
1755
+ "name": "profile",
1756
+ "required": false,
1757
+ "hasDynamicHelp": false,
1758
+ "multiple": false,
1759
+ "type": "option"
1760
+ },
1761
+ "verbose": {
1762
+ "char": "v",
1763
+ "description": "Show detailed request/response information",
1764
+ "env": "XANO_VERBOSE",
1765
+ "name": "verbose",
1766
+ "required": false,
1767
+ "allowNo": false,
1768
+ "type": "boolean"
1769
+ },
1770
+ "force": {
1771
+ "char": "f",
1772
+ "description": "Skip confirmation prompt",
1773
+ "name": "force",
1774
+ "required": false,
1775
+ "allowNo": false,
1776
+ "type": "boolean"
1777
+ },
1778
+ "output": {
1779
+ "char": "o",
1780
+ "description": "Output format",
1781
+ "name": "output",
1782
+ "required": false,
1783
+ "default": "summary",
1784
+ "hasDynamicHelp": false,
1785
+ "multiple": false,
1786
+ "options": [
1787
+ "summary",
1788
+ "json"
1789
+ ],
1790
+ "type": "option"
1791
+ },
1792
+ "workspace": {
1793
+ "char": "w",
1794
+ "description": "Workspace ID (uses profile workspace if not provided)",
1795
+ "name": "workspace",
1796
+ "required": false,
1797
+ "hasDynamicHelp": false,
1798
+ "multiple": false,
1799
+ "type": "option"
1800
+ }
1801
+ },
1802
+ "hasDynamicHelp": false,
1803
+ "hiddenAliases": [],
1804
+ "id": "release:delete",
1695
1805
  "pluginAlias": "@xano/cli",
1696
1806
  "pluginName": "@xano/cli",
1697
1807
  "pluginType": "core",
@@ -1702,7 +1812,7 @@
1702
1812
  "dist",
1703
1813
  "commands",
1704
1814
  "release",
1705
- "create",
1815
+ "delete",
1706
1816
  "index.js"
1707
1817
  ]
1708
1818
  },
@@ -1799,18 +1909,70 @@
1799
1909
  "index.js"
1800
1910
  ]
1801
1911
  },
1802
- "profile:token": {
1912
+ "release:import": {
1803
1913
  "aliases": [],
1804
1914
  "args": {},
1805
- "description": "Print the access token for the default profile",
1915
+ "description": "Import a release file into a workspace",
1806
1916
  "examples": [
1807
- "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1808
- "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1917
+ "$ xano release import --file ./my-release.tar.gz\nImported release as #15\n",
1918
+ "$ xano release import --file ./my-release.tar.gz -o json"
1809
1919
  ],
1810
- "flags": {},
1920
+ "flags": {
1921
+ "profile": {
1922
+ "char": "p",
1923
+ "description": "Profile to use (uses default profile if not specified)",
1924
+ "env": "XANO_PROFILE",
1925
+ "name": "profile",
1926
+ "required": false,
1927
+ "hasDynamicHelp": false,
1928
+ "multiple": false,
1929
+ "type": "option"
1930
+ },
1931
+ "verbose": {
1932
+ "char": "v",
1933
+ "description": "Show detailed request/response information",
1934
+ "env": "XANO_VERBOSE",
1935
+ "name": "verbose",
1936
+ "required": false,
1937
+ "allowNo": false,
1938
+ "type": "boolean"
1939
+ },
1940
+ "file": {
1941
+ "char": "f",
1942
+ "description": "Path to the release file (.tar.gz)",
1943
+ "name": "file",
1944
+ "required": true,
1945
+ "hasDynamicHelp": false,
1946
+ "multiple": false,
1947
+ "type": "option"
1948
+ },
1949
+ "output": {
1950
+ "char": "o",
1951
+ "description": "Output format",
1952
+ "name": "output",
1953
+ "required": false,
1954
+ "default": "summary",
1955
+ "hasDynamicHelp": false,
1956
+ "multiple": false,
1957
+ "options": [
1958
+ "summary",
1959
+ "json"
1960
+ ],
1961
+ "type": "option"
1962
+ },
1963
+ "workspace": {
1964
+ "char": "w",
1965
+ "description": "Workspace ID (uses profile workspace if not provided)",
1966
+ "name": "workspace",
1967
+ "required": false,
1968
+ "hasDynamicHelp": false,
1969
+ "multiple": false,
1970
+ "type": "option"
1971
+ }
1972
+ },
1811
1973
  "hasDynamicHelp": false,
1812
1974
  "hiddenAliases": [],
1813
- "id": "profile:token",
1975
+ "id": "release:import",
1814
1976
  "pluginAlias": "@xano/cli",
1815
1977
  "pluginName": "@xano/cli",
1816
1978
  "pluginType": "core",
@@ -1820,25 +1982,18 @@
1820
1982
  "relativePath": [
1821
1983
  "dist",
1822
1984
  "commands",
1823
- "profile",
1824
- "token",
1985
+ "release",
1986
+ "import",
1825
1987
  "index.js"
1826
1988
  ]
1827
1989
  },
1828
- "release:delete": {
1990
+ "release:list": {
1829
1991
  "aliases": [],
1830
- "args": {
1831
- "release_name": {
1832
- "description": "Release name to delete",
1833
- "name": "release_name",
1834
- "required": true
1835
- }
1836
- },
1837
- "description": "Delete a release permanently. This action cannot be undone.",
1992
+ "args": {},
1993
+ "description": "List all releases in a workspace",
1838
1994
  "examples": [
1839
- "$ 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",
1840
- "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1841
- "$ xano release delete v1.0 -f -o json"
1995
+ "$ xano release list\nReleases in workspace 5:\n - v1.0 (ID: 10) - main\n - v1.1-hotfix (ID: 11) - main [hotfix]\n",
1996
+ "$ xano release list -w 5 --output json"
1842
1997
  ],
1843
1998
  "flags": {
1844
1999
  "profile": {
@@ -1860,14 +2015,6 @@
1860
2015
  "allowNo": false,
1861
2016
  "type": "boolean"
1862
2017
  },
1863
- "force": {
1864
- "char": "f",
1865
- "description": "Skip confirmation prompt",
1866
- "name": "force",
1867
- "required": false,
1868
- "allowNo": false,
1869
- "type": "boolean"
1870
- },
1871
2018
  "output": {
1872
2019
  "char": "o",
1873
2020
  "description": "Output format",
@@ -1894,7 +2041,7 @@
1894
2041
  },
1895
2042
  "hasDynamicHelp": false,
1896
2043
  "hiddenAliases": [],
1897
- "id": "release:delete",
2044
+ "id": "release:list",
1898
2045
  "pluginAlias": "@xano/cli",
1899
2046
  "pluginName": "@xano/cli",
1900
2047
  "pluginType": "core",
@@ -1905,7 +2052,7 @@
1905
2052
  "dist",
1906
2053
  "commands",
1907
2054
  "release",
1908
- "delete",
2055
+ "list",
1909
2056
  "index.js"
1910
2057
  ]
1911
2058
  },
@@ -2121,161 +2268,14 @@
2121
2268
  "char": "r",
2122
2269
  "description": "Release name to pull from",
2123
2270
  "name": "release",
2124
- "required": true,
2125
- "hasDynamicHelp": false,
2126
- "multiple": false,
2127
- "type": "option"
2128
- },
2129
- "workspace": {
2130
- "char": "w",
2131
- "description": "Workspace ID (optional if set in profile)",
2132
- "name": "workspace",
2133
- "required": false,
2134
- "hasDynamicHelp": false,
2135
- "multiple": false,
2136
- "type": "option"
2137
- }
2138
- },
2139
- "hasDynamicHelp": false,
2140
- "hiddenAliases": [],
2141
- "id": "release:pull",
2142
- "pluginAlias": "@xano/cli",
2143
- "pluginName": "@xano/cli",
2144
- "pluginType": "core",
2145
- "strict": true,
2146
- "enableJsonFlag": false,
2147
- "isESM": true,
2148
- "relativePath": [
2149
- "dist",
2150
- "commands",
2151
- "release",
2152
- "pull",
2153
- "index.js"
2154
- ]
2155
- },
2156
- "release:import": {
2157
- "aliases": [],
2158
- "args": {},
2159
- "description": "Import a release file into a workspace",
2160
- "examples": [
2161
- "$ xano release import --file ./my-release.tar.gz\nImported release as #15\n",
2162
- "$ xano release import --file ./my-release.tar.gz -o json"
2163
- ],
2164
- "flags": {
2165
- "profile": {
2166
- "char": "p",
2167
- "description": "Profile to use (uses default profile if not specified)",
2168
- "env": "XANO_PROFILE",
2169
- "name": "profile",
2170
- "required": false,
2171
- "hasDynamicHelp": false,
2172
- "multiple": false,
2173
- "type": "option"
2174
- },
2175
- "verbose": {
2176
- "char": "v",
2177
- "description": "Show detailed request/response information",
2178
- "env": "XANO_VERBOSE",
2179
- "name": "verbose",
2180
- "required": false,
2181
- "allowNo": false,
2182
- "type": "boolean"
2183
- },
2184
- "file": {
2185
- "char": "f",
2186
- "description": "Path to the release file (.tar.gz)",
2187
- "name": "file",
2188
- "required": true,
2189
- "hasDynamicHelp": false,
2190
- "multiple": false,
2191
- "type": "option"
2192
- },
2193
- "output": {
2194
- "char": "o",
2195
- "description": "Output format",
2196
- "name": "output",
2197
- "required": false,
2198
- "default": "summary",
2199
- "hasDynamicHelp": false,
2200
- "multiple": false,
2201
- "options": [
2202
- "summary",
2203
- "json"
2204
- ],
2205
- "type": "option"
2206
- },
2207
- "workspace": {
2208
- "char": "w",
2209
- "description": "Workspace ID (uses profile workspace if not provided)",
2210
- "name": "workspace",
2211
- "required": false,
2212
- "hasDynamicHelp": false,
2213
- "multiple": false,
2214
- "type": "option"
2215
- }
2216
- },
2217
- "hasDynamicHelp": false,
2218
- "hiddenAliases": [],
2219
- "id": "release:import",
2220
- "pluginAlias": "@xano/cli",
2221
- "pluginName": "@xano/cli",
2222
- "pluginType": "core",
2223
- "strict": true,
2224
- "enableJsonFlag": false,
2225
- "isESM": true,
2226
- "relativePath": [
2227
- "dist",
2228
- "commands",
2229
- "release",
2230
- "import",
2231
- "index.js"
2232
- ]
2233
- },
2234
- "release:list": {
2235
- "aliases": [],
2236
- "args": {},
2237
- "description": "List all releases in a workspace",
2238
- "examples": [
2239
- "$ xano release list\nReleases in workspace 5:\n - v1.0 (ID: 10) - main\n - v1.1-hotfix (ID: 11) - main [hotfix]\n",
2240
- "$ xano release list -w 5 --output json"
2241
- ],
2242
- "flags": {
2243
- "profile": {
2244
- "char": "p",
2245
- "description": "Profile to use (uses default profile if not specified)",
2246
- "env": "XANO_PROFILE",
2247
- "name": "profile",
2248
- "required": false,
2249
- "hasDynamicHelp": false,
2250
- "multiple": false,
2251
- "type": "option"
2252
- },
2253
- "verbose": {
2254
- "char": "v",
2255
- "description": "Show detailed request/response information",
2256
- "env": "XANO_VERBOSE",
2257
- "name": "verbose",
2258
- "required": false,
2259
- "allowNo": false,
2260
- "type": "boolean"
2261
- },
2262
- "output": {
2263
- "char": "o",
2264
- "description": "Output format",
2265
- "name": "output",
2266
- "required": false,
2267
- "default": "summary",
2268
- "hasDynamicHelp": false,
2269
- "multiple": false,
2270
- "options": [
2271
- "summary",
2272
- "json"
2273
- ],
2271
+ "required": true,
2272
+ "hasDynamicHelp": false,
2273
+ "multiple": false,
2274
2274
  "type": "option"
2275
2275
  },
2276
2276
  "workspace": {
2277
2277
  "char": "w",
2278
- "description": "Workspace ID (uses profile workspace if not provided)",
2278
+ "description": "Workspace ID (optional if set in profile)",
2279
2279
  "name": "workspace",
2280
2280
  "required": false,
2281
2281
  "hasDynamicHelp": false,
@@ -2285,7 +2285,7 @@
2285
2285
  },
2286
2286
  "hasDynamicHelp": false,
2287
2287
  "hiddenAliases": [],
2288
- "id": "release:list",
2288
+ "id": "release:pull",
2289
2289
  "pluginAlias": "@xano/cli",
2290
2290
  "pluginName": "@xano/cli",
2291
2291
  "pluginType": "core",
@@ -2296,7 +2296,7 @@
2296
2296
  "dist",
2297
2297
  "commands",
2298
2298
  "release",
2299
- "list",
2299
+ "pull",
2300
2300
  "index.js"
2301
2301
  ]
2302
2302
  },
@@ -2418,15 +2418,19 @@
2418
2418
  "index.js"
2419
2419
  ]
2420
2420
  },
2421
- "static_host:list": {
2421
+ "tenant:create": {
2422
2422
  "aliases": [],
2423
- "args": {},
2424
- "description": "List all static hosts in a workspace from the Xano Metadata API",
2423
+ "args": {
2424
+ "display": {
2425
+ "description": "Display name for the tenant",
2426
+ "name": "display",
2427
+ "required": true
2428
+ }
2429
+ },
2430
+ "description": "Create a new tenant in a workspace",
2425
2431
  "examples": [
2426
- "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2427
- "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2428
- "$ xano static_host:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"my-static-host\",\n \"domain\": \"example.com\"\n }\n]\n",
2429
- "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
2432
+ "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
2433
+ "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
2430
2434
  ],
2431
2435
  "flags": {
2432
2436
  "profile": {
@@ -2448,113 +2452,54 @@
2448
2452
  "allowNo": false,
2449
2453
  "type": "boolean"
2450
2454
  },
2451
- "output": {
2452
- "char": "o",
2453
- "description": "Output format",
2454
- "name": "output",
2455
- "required": false,
2456
- "default": "summary",
2457
- "hasDynamicHelp": false,
2458
- "multiple": false,
2459
- "options": [
2460
- "summary",
2461
- "json"
2462
- ],
2463
- "type": "option"
2464
- },
2465
- "page": {
2466
- "description": "Page number for pagination",
2467
- "name": "page",
2455
+ "cluster_id": {
2456
+ "description": "Cluster ID to deploy to (required for tier2/tier3)",
2457
+ "name": "cluster_id",
2468
2458
  "required": false,
2469
- "default": 1,
2470
2459
  "hasDynamicHelp": false,
2471
2460
  "multiple": false,
2472
2461
  "type": "option"
2473
2462
  },
2474
- "per_page": {
2475
- "description": "Number of results per page",
2476
- "name": "per_page",
2463
+ "description": {
2464
+ "char": "d",
2465
+ "description": "Tenant description",
2466
+ "name": "description",
2477
2467
  "required": false,
2478
- "default": 50,
2479
2468
  "hasDynamicHelp": false,
2480
2469
  "multiple": false,
2481
2470
  "type": "option"
2482
2471
  },
2483
- "workspace": {
2484
- "char": "w",
2485
- "description": "Workspace ID (optional if set in profile)",
2486
- "name": "workspace",
2487
- "required": false,
2488
- "hasDynamicHelp": false,
2489
- "multiple": false,
2490
- "type": "option"
2491
- }
2492
- },
2493
- "hasDynamicHelp": false,
2494
- "hiddenAliases": [],
2495
- "id": "static_host:list",
2496
- "pluginAlias": "@xano/cli",
2497
- "pluginName": "@xano/cli",
2498
- "pluginType": "core",
2499
- "strict": true,
2500
- "enableJsonFlag": false,
2501
- "isESM": true,
2502
- "relativePath": [
2503
- "dist",
2504
- "commands",
2505
- "static_host",
2506
- "list",
2507
- "index.js"
2508
- ]
2509
- },
2510
- "unit_test:list": {
2511
- "aliases": [],
2512
- "args": {},
2513
- "description": "List all unit tests in a workspace",
2514
- "examples": [
2515
- "$ 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",
2516
- "$ xano unit-test list -w 5 --output json",
2517
- "$ xano unit-test list --obj-type function"
2518
- ],
2519
- "flags": {
2520
- "profile": {
2521
- "char": "p",
2522
- "description": "Profile to use (uses default profile if not specified)",
2523
- "env": "XANO_PROFILE",
2524
- "name": "profile",
2472
+ "domain": {
2473
+ "description": "Custom domain for the tenant",
2474
+ "name": "domain",
2525
2475
  "required": false,
2526
2476
  "hasDynamicHelp": false,
2527
2477
  "multiple": false,
2528
2478
  "type": "option"
2529
2479
  },
2530
- "verbose": {
2531
- "char": "v",
2532
- "description": "Show detailed request/response information",
2533
- "env": "XANO_VERBOSE",
2534
- "name": "verbose",
2535
- "required": false,
2480
+ "ephemeral": {
2481
+ "description": "Mark tenant as ephemeral (allows push operations)",
2482
+ "name": "ephemeral",
2536
2483
  "allowNo": false,
2537
2484
  "type": "boolean"
2538
2485
  },
2539
- "branch": {
2540
- "char": "b",
2541
- "description": "Filter by branch name",
2542
- "name": "branch",
2543
- "required": false,
2544
- "hasDynamicHelp": false,
2545
- "multiple": false,
2546
- "type": "option"
2486
+ "ingress": {
2487
+ "description": "Enable ingress",
2488
+ "name": "ingress",
2489
+ "allowNo": true,
2490
+ "type": "boolean"
2547
2491
  },
2548
- "obj-type": {
2549
- "description": "Filter by object type",
2550
- "name": "obj-type",
2492
+ "license": {
2493
+ "description": "License tier",
2494
+ "name": "license",
2551
2495
  "required": false,
2496
+ "default": "tier1",
2552
2497
  "hasDynamicHelp": false,
2553
2498
  "multiple": false,
2554
2499
  "options": [
2555
- "function",
2556
- "query",
2557
- "middleware"
2500
+ "tier1",
2501
+ "tier2",
2502
+ "tier3"
2558
2503
  ],
2559
2504
  "type": "option"
2560
2505
  },
@@ -2572,6 +2517,20 @@
2572
2517
  ],
2573
2518
  "type": "option"
2574
2519
  },
2520
+ "platform_id": {
2521
+ "description": "Platform ID to use",
2522
+ "name": "platform_id",
2523
+ "required": false,
2524
+ "hasDynamicHelp": false,
2525
+ "multiple": false,
2526
+ "type": "option"
2527
+ },
2528
+ "tasks": {
2529
+ "description": "Enable background tasks",
2530
+ "name": "tasks",
2531
+ "allowNo": true,
2532
+ "type": "boolean"
2533
+ },
2575
2534
  "workspace": {
2576
2535
  "char": "w",
2577
2536
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2584,7 +2543,7 @@
2584
2543
  },
2585
2544
  "hasDynamicHelp": false,
2586
2545
  "hiddenAliases": [],
2587
- "id": "unit_test:list",
2546
+ "id": "tenant:create",
2588
2547
  "pluginAlias": "@xano/cli",
2589
2548
  "pluginName": "@xano/cli",
2590
2549
  "pluginType": "core",
@@ -2594,24 +2553,20 @@
2594
2553
  "relativePath": [
2595
2554
  "dist",
2596
2555
  "commands",
2597
- "unit_test",
2598
- "list",
2556
+ "tenant",
2557
+ "create",
2599
2558
  "index.js"
2600
2559
  ]
2601
2560
  },
2602
- "unit_test:run": {
2561
+ "static_host:list": {
2603
2562
  "aliases": [],
2604
- "args": {
2605
- "unit_test_id": {
2606
- "description": "ID of the unit test to run",
2607
- "name": "unit_test_id",
2608
- "required": true
2609
- }
2610
- },
2611
- "description": "Run a unit test",
2563
+ "args": {},
2564
+ "description": "List all static hosts in a workspace from the Xano Metadata API",
2612
2565
  "examples": [
2613
- "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
2614
- "$ xano unit-test run abc-123 -o json"
2566
+ "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2567
+ "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2568
+ "$ 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",
2569
+ "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
2615
2570
  ],
2616
2571
  "flags": {
2617
2572
  "profile": {
@@ -2647,9 +2602,27 @@
2647
2602
  ],
2648
2603
  "type": "option"
2649
2604
  },
2605
+ "page": {
2606
+ "description": "Page number for pagination",
2607
+ "name": "page",
2608
+ "required": false,
2609
+ "default": 1,
2610
+ "hasDynamicHelp": false,
2611
+ "multiple": false,
2612
+ "type": "option"
2613
+ },
2614
+ "per_page": {
2615
+ "description": "Number of results per page",
2616
+ "name": "per_page",
2617
+ "required": false,
2618
+ "default": 50,
2619
+ "hasDynamicHelp": false,
2620
+ "multiple": false,
2621
+ "type": "option"
2622
+ },
2650
2623
  "workspace": {
2651
2624
  "char": "w",
2652
- "description": "Workspace ID (uses profile workspace if not provided)",
2625
+ "description": "Workspace ID (optional if set in profile)",
2653
2626
  "name": "workspace",
2654
2627
  "required": false,
2655
2628
  "hasDynamicHelp": false,
@@ -2659,7 +2632,7 @@
2659
2632
  },
2660
2633
  "hasDynamicHelp": false,
2661
2634
  "hiddenAliases": [],
2662
- "id": "unit_test:run",
2635
+ "id": "static_host:list",
2663
2636
  "pluginAlias": "@xano/cli",
2664
2637
  "pluginName": "@xano/cli",
2665
2638
  "pluginType": "core",
@@ -2669,18 +2642,25 @@
2669
2642
  "relativePath": [
2670
2643
  "dist",
2671
2644
  "commands",
2672
- "unit_test",
2673
- "run",
2645
+ "static_host",
2646
+ "list",
2674
2647
  "index.js"
2675
2648
  ]
2676
2649
  },
2677
- "unit_test:run_all": {
2650
+ "tenant:delete": {
2678
2651
  "aliases": [],
2679
- "args": {},
2680
- "description": "Run all unit tests in a workspace",
2652
+ "args": {
2653
+ "tenant_name": {
2654
+ "description": "Tenant name to delete",
2655
+ "name": "tenant_name",
2656
+ "required": true
2657
+ }
2658
+ },
2659
+ "description": "Delete a tenant permanently. This destroys all associated infrastructure and cannot be undone.",
2681
2660
  "examples": [
2682
- "$ xano unit-test run-all\nRunning 5 unit tests...\n\nPASS my-test [function: math]\nPASS auth-check [query: /user/login]\nFAIL data-validation [function: validate]\n Error: assertion failed\n\nResults: 2 passed, 1 failed\n",
2683
- "$ xano unit-test run-all --obj-type function -o json"
2661
+ "$ 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",
2662
+ "$ xano tenant delete t1234-abcd-xyz1 --force\nDeleted tenant t1234-abcd-xyz1\n",
2663
+ "$ xano tenant delete t1234-abcd-xyz1 -f -o json"
2684
2664
  ],
2685
2665
  "flags": {
2686
2666
  "profile": {
@@ -2702,27 +2682,13 @@
2702
2682
  "allowNo": false,
2703
2683
  "type": "boolean"
2704
2684
  },
2705
- "branch": {
2706
- "char": "b",
2707
- "description": "Filter by branch name",
2708
- "name": "branch",
2709
- "required": false,
2710
- "hasDynamicHelp": false,
2711
- "multiple": false,
2712
- "type": "option"
2713
- },
2714
- "obj-type": {
2715
- "description": "Filter by object type",
2716
- "name": "obj-type",
2685
+ "force": {
2686
+ "char": "f",
2687
+ "description": "Skip confirmation prompt",
2688
+ "name": "force",
2717
2689
  "required": false,
2718
- "hasDynamicHelp": false,
2719
- "multiple": false,
2720
- "options": [
2721
- "function",
2722
- "query",
2723
- "middleware"
2724
- ],
2725
- "type": "option"
2690
+ "allowNo": false,
2691
+ "type": "boolean"
2726
2692
  },
2727
2693
  "output": {
2728
2694
  "char": "o",
@@ -2750,7 +2716,7 @@
2750
2716
  },
2751
2717
  "hasDynamicHelp": false,
2752
2718
  "hiddenAliases": [],
2753
- "id": "unit_test:run_all",
2719
+ "id": "tenant:delete",
2754
2720
  "pluginAlias": "@xano/cli",
2755
2721
  "pluginName": "@xano/cli",
2756
2722
  "pluginType": "core",
@@ -2760,25 +2726,24 @@
2760
2726
  "relativePath": [
2761
2727
  "dist",
2762
2728
  "commands",
2763
- "unit_test",
2764
- "run_all",
2729
+ "tenant",
2730
+ "delete",
2765
2731
  "index.js"
2766
2732
  ]
2767
2733
  },
2768
- "workflow_test:get": {
2769
- "aliases": [],
2770
- "args": {
2771
- "workflow_test_id": {
2772
- "description": "ID of the workflow test",
2773
- "name": "workflow_test_id",
2734
+ "tenant:deploy_platform": {
2735
+ "aliases": [],
2736
+ "args": {
2737
+ "tenant_name": {
2738
+ "description": "Tenant name to deploy to",
2739
+ "name": "tenant_name",
2774
2740
  "required": true
2775
2741
  }
2776
2742
  },
2777
- "description": "Get a specific workflow test",
2743
+ "description": "Deploy a platform version to a tenant",
2778
2744
  "examples": [
2779
- "$ xano workflow-test get 1\nWorkflow Test: my-test (ID: 1)\n Description: Validates auth endpoints\n Branch: main\n",
2780
- "$ xano workflow-test get 1 -o xs",
2781
- "$ xano workflow-test get 1 -o json"
2745
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
2746
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json"
2782
2747
  ],
2783
2748
  "flags": {
2784
2749
  "profile": {
@@ -2800,13 +2765,6 @@
2800
2765
  "allowNo": false,
2801
2766
  "type": "boolean"
2802
2767
  },
2803
- "include-draft": {
2804
- "description": "Include draft version",
2805
- "name": "include-draft",
2806
- "required": false,
2807
- "allowNo": false,
2808
- "type": "boolean"
2809
- },
2810
2768
  "output": {
2811
2769
  "char": "o",
2812
2770
  "description": "Output format",
@@ -2817,11 +2775,18 @@
2817
2775
  "multiple": false,
2818
2776
  "options": [
2819
2777
  "summary",
2820
- "json",
2821
- "xs"
2778
+ "json"
2822
2779
  ],
2823
2780
  "type": "option"
2824
2781
  },
2782
+ "platform_id": {
2783
+ "description": "Platform ID to deploy",
2784
+ "name": "platform_id",
2785
+ "required": true,
2786
+ "hasDynamicHelp": false,
2787
+ "multiple": false,
2788
+ "type": "option"
2789
+ },
2825
2790
  "workspace": {
2826
2791
  "char": "w",
2827
2792
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2834,7 +2799,7 @@
2834
2799
  },
2835
2800
  "hasDynamicHelp": false,
2836
2801
  "hiddenAliases": [],
2837
- "id": "workflow_test:get",
2802
+ "id": "tenant:deploy_platform",
2838
2803
  "pluginAlias": "@xano/cli",
2839
2804
  "pluginName": "@xano/cli",
2840
2805
  "pluginType": "core",
@@ -2844,24 +2809,24 @@
2844
2809
  "relativePath": [
2845
2810
  "dist",
2846
2811
  "commands",
2847
- "workflow_test",
2848
- "get",
2812
+ "tenant",
2813
+ "deploy_platform",
2849
2814
  "index.js"
2850
2815
  ]
2851
2816
  },
2852
- "workflow_test:delete": {
2817
+ "tenant:deploy_release": {
2853
2818
  "aliases": [],
2854
2819
  "args": {
2855
- "workflow_test_id": {
2856
- "description": "ID of the workflow test to delete",
2857
- "name": "workflow_test_id",
2820
+ "tenant_name": {
2821
+ "description": "Tenant name to deploy to",
2822
+ "name": "tenant_name",
2858
2823
  "required": true
2859
2824
  }
2860
2825
  },
2861
- "description": "Delete a workflow test",
2826
+ "description": "Deploy a release to a tenant",
2862
2827
  "examples": [
2863
- "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
2864
- "$ xano workflow-test delete 1 --force"
2828
+ "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0\nDeployed release \"v1.0\" to tenant: My Tenant (my-tenant)\n",
2829
+ "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0 -o json"
2865
2830
  ],
2866
2831
  "flags": {
2867
2832
  "profile": {
@@ -2883,14 +2848,6 @@
2883
2848
  "allowNo": false,
2884
2849
  "type": "boolean"
2885
2850
  },
2886
- "force": {
2887
- "char": "f",
2888
- "description": "Skip confirmation prompt",
2889
- "name": "force",
2890
- "required": false,
2891
- "allowNo": false,
2892
- "type": "boolean"
2893
- },
2894
2851
  "output": {
2895
2852
  "char": "o",
2896
2853
  "description": "Output format",
@@ -2905,6 +2862,15 @@
2905
2862
  ],
2906
2863
  "type": "option"
2907
2864
  },
2865
+ "release": {
2866
+ "char": "r",
2867
+ "description": "Release name to deploy",
2868
+ "name": "release",
2869
+ "required": true,
2870
+ "hasDynamicHelp": false,
2871
+ "multiple": false,
2872
+ "type": "option"
2873
+ },
2908
2874
  "workspace": {
2909
2875
  "char": "w",
2910
2876
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2917,7 +2883,7 @@
2917
2883
  },
2918
2884
  "hasDynamicHelp": false,
2919
2885
  "hiddenAliases": [],
2920
- "id": "workflow_test:delete",
2886
+ "id": "tenant:deploy_release",
2921
2887
  "pluginAlias": "@xano/cli",
2922
2888
  "pluginName": "@xano/cli",
2923
2889
  "pluginType": "core",
@@ -2927,19 +2893,24 @@
2927
2893
  "relativePath": [
2928
2894
  "dist",
2929
2895
  "commands",
2930
- "workflow_test",
2931
- "delete",
2896
+ "tenant",
2897
+ "deploy_release",
2932
2898
  "index.js"
2933
2899
  ]
2934
2900
  },
2935
- "workflow_test:list": {
2901
+ "tenant:get": {
2936
2902
  "aliases": [],
2937
- "args": {},
2938
- "description": "List all workflow tests in a workspace",
2903
+ "args": {
2904
+ "tenant_name": {
2905
+ "description": "Tenant name to retrieve",
2906
+ "name": "tenant_name",
2907
+ "required": true
2908
+ }
2909
+ },
2910
+ "description": "Get details of a specific tenant",
2939
2911
  "examples": [
2940
- "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
2941
- "$ xano workflow-test list -w 5 --output json",
2942
- "$ xano workflow-test list --branch main"
2912
+ "$ xano tenant get t1234-abcd-xyz1\nTenant: My Tenant (my-tenant)\n State: ok\n License: tier1\n Domain: my-tenant.xano.io\n Cluster: default\n Release: v1.0\n",
2913
+ "$ xano tenant get t1234-abcd-xyz1 -w 5 -o json"
2943
2914
  ],
2944
2915
  "flags": {
2945
2916
  "profile": {
@@ -2961,15 +2932,6 @@
2961
2932
  "allowNo": false,
2962
2933
  "type": "boolean"
2963
2934
  },
2964
- "branch": {
2965
- "char": "b",
2966
- "description": "Filter by branch name",
2967
- "name": "branch",
2968
- "required": false,
2969
- "hasDynamicHelp": false,
2970
- "multiple": false,
2971
- "type": "option"
2972
- },
2973
2935
  "output": {
2974
2936
  "char": "o",
2975
2937
  "description": "Output format",
@@ -2996,7 +2958,7 @@
2996
2958
  },
2997
2959
  "hasDynamicHelp": false,
2998
2960
  "hiddenAliases": [],
2999
- "id": "workflow_test:list",
2961
+ "id": "tenant:get",
3000
2962
  "pluginAlias": "@xano/cli",
3001
2963
  "pluginName": "@xano/cli",
3002
2964
  "pluginType": "core",
@@ -3006,24 +2968,24 @@
3006
2968
  "relativePath": [
3007
2969
  "dist",
3008
2970
  "commands",
3009
- "workflow_test",
3010
- "list",
2971
+ "tenant",
2972
+ "get",
3011
2973
  "index.js"
3012
2974
  ]
3013
2975
  },
3014
- "workflow_test:run": {
2976
+ "tenant:impersonate": {
3015
2977
  "aliases": [],
3016
2978
  "args": {
3017
- "workflow_test_id": {
3018
- "description": "ID of the workflow test to run",
3019
- "name": "workflow_test_id",
2979
+ "tenant_name": {
2980
+ "description": "Tenant name to impersonate",
2981
+ "name": "tenant_name",
3020
2982
  "required": true
3021
2983
  }
3022
2984
  },
3023
- "description": "Run a workflow test",
2985
+ "description": "Impersonate a tenant and open it in the browser",
3024
2986
  "examples": [
3025
- "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
3026
- "$ xano workflow-test run 1 -o json"
2987
+ "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
2988
+ "$ xano tenant impersonate my-tenant -o json"
3027
2989
  ],
3028
2990
  "flags": {
3029
2991
  "profile": {
@@ -3059,6 +3021,14 @@
3059
3021
  ],
3060
3022
  "type": "option"
3061
3023
  },
3024
+ "url-only": {
3025
+ "char": "u",
3026
+ "description": "Print the URL without opening the browser",
3027
+ "name": "url-only",
3028
+ "required": false,
3029
+ "allowNo": false,
3030
+ "type": "boolean"
3031
+ },
3062
3032
  "workspace": {
3063
3033
  "char": "w",
3064
3034
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3071,7 +3041,7 @@
3071
3041
  },
3072
3042
  "hasDynamicHelp": false,
3073
3043
  "hiddenAliases": [],
3074
- "id": "workflow_test:run",
3044
+ "id": "tenant:impersonate",
3075
3045
  "pluginAlias": "@xano/cli",
3076
3046
  "pluginName": "@xano/cli",
3077
3047
  "pluginType": "core",
@@ -3081,18 +3051,26 @@
3081
3051
  "relativePath": [
3082
3052
  "dist",
3083
3053
  "commands",
3084
- "workflow_test",
3085
- "run",
3054
+ "tenant",
3055
+ "impersonate",
3086
3056
  "index.js"
3087
3057
  ]
3088
3058
  },
3089
- "workflow_test:run_all": {
3059
+ "tenant:pull": {
3090
3060
  "aliases": [],
3091
- "args": {},
3092
- "description": "Run all workflow tests in a workspace",
3061
+ "args": {
3062
+ "directory": {
3063
+ "description": "Output directory for pulled documents",
3064
+ "name": "directory",
3065
+ "required": true
3066
+ }
3067
+ },
3068
+ "description": "Pull a tenant multidoc from the Xano Metadata API and split into individual files",
3093
3069
  "examples": [
3094
- "$ 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",
3095
- "$ xano workflow-test run-all --branch main -o json"
3070
+ "$ xano tenant pull ./my-tenant -t my-tenant\nPulled 42 documents from tenant my-tenant to ./my-tenant\n",
3071
+ "$ xano tenant pull ./output -t my-tenant -w 40\nPulled 15 documents from tenant my-tenant to ./output\n",
3072
+ "$ xano tenant pull ./backup -t my-tenant --profile production --env --records\nPulled 58 documents from tenant my-tenant to ./backup\n",
3073
+ "$ xano tenant pull ./my-tenant -t my-tenant --draft\nPulled 42 documents from tenant my-tenant to ./my-tenant\n"
3096
3074
  ],
3097
3075
  "flags": {
3098
3076
  "profile": {
@@ -3114,32 +3092,39 @@
3114
3092
  "allowNo": false,
3115
3093
  "type": "boolean"
3116
3094
  },
3117
- "branch": {
3118
- "char": "b",
3119
- "description": "Filter by branch name",
3120
- "name": "branch",
3095
+ "draft": {
3096
+ "description": "Include draft versions",
3097
+ "name": "draft",
3121
3098
  "required": false,
3122
- "hasDynamicHelp": false,
3123
- "multiple": false,
3124
- "type": "option"
3099
+ "allowNo": false,
3100
+ "type": "boolean"
3125
3101
  },
3126
- "output": {
3127
- "char": "o",
3128
- "description": "Output format",
3129
- "name": "output",
3102
+ "env": {
3103
+ "description": "Include environment variables",
3104
+ "name": "env",
3130
3105
  "required": false,
3131
- "default": "summary",
3106
+ "allowNo": false,
3107
+ "type": "boolean"
3108
+ },
3109
+ "records": {
3110
+ "description": "Include records",
3111
+ "name": "records",
3112
+ "required": false,
3113
+ "allowNo": false,
3114
+ "type": "boolean"
3115
+ },
3116
+ "tenant": {
3117
+ "char": "t",
3118
+ "description": "Tenant name to pull from",
3119
+ "name": "tenant",
3120
+ "required": true,
3132
3121
  "hasDynamicHelp": false,
3133
3122
  "multiple": false,
3134
- "options": [
3135
- "summary",
3136
- "json"
3137
- ],
3138
3123
  "type": "option"
3139
3124
  },
3140
3125
  "workspace": {
3141
3126
  "char": "w",
3142
- "description": "Workspace ID (uses profile workspace if not provided)",
3127
+ "description": "Workspace ID (optional if set in profile)",
3143
3128
  "name": "workspace",
3144
3129
  "required": false,
3145
3130
  "hasDynamicHelp": false,
@@ -3149,7 +3134,7 @@
3149
3134
  },
3150
3135
  "hasDynamicHelp": false,
3151
3136
  "hiddenAliases": [],
3152
- "id": "workflow_test:run_all",
3137
+ "id": "tenant:pull",
3153
3138
  "pluginAlias": "@xano/cli",
3154
3139
  "pluginName": "@xano/cli",
3155
3140
  "pluginType": "core",
@@ -3159,26 +3144,24 @@
3159
3144
  "relativePath": [
3160
3145
  "dist",
3161
3146
  "commands",
3162
- "workflow_test",
3163
- "run_all",
3147
+ "tenant",
3148
+ "pull",
3164
3149
  "index.js"
3165
3150
  ]
3166
3151
  },
3167
- "workspace:edit": {
3152
+ "tenant:edit": {
3168
3153
  "aliases": [],
3169
3154
  "args": {
3170
- "workspace_id": {
3171
- "description": "Workspace ID to edit (uses profile workspace if not provided)",
3172
- "name": "workspace_id",
3173
- "required": false
3155
+ "tenant_name": {
3156
+ "description": "Tenant name to edit",
3157
+ "name": "tenant_name",
3158
+ "required": true
3174
3159
  }
3175
3160
  },
3176
- "description": "Edit an existing workspace via the Xano Metadata API",
3161
+ "description": "Edit an existing tenant",
3177
3162
  "examples": [
3178
- "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
3179
- "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
3180
- "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
3181
- "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
3163
+ "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
3164
+ "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
3182
3165
  ],
3183
3166
  "flags": {
3184
3167
  "profile": {
@@ -3202,22 +3185,36 @@
3202
3185
  },
3203
3186
  "description": {
3204
3187
  "char": "d",
3205
- "description": "New description for the workspace",
3188
+ "description": "New description",
3206
3189
  "name": "description",
3207
3190
  "required": false,
3208
3191
  "hasDynamicHelp": false,
3209
3192
  "multiple": false,
3210
3193
  "type": "option"
3211
3194
  },
3212
- "name": {
3213
- "char": "n",
3214
- "description": "New name for the workspace",
3215
- "name": "name",
3195
+ "display": {
3196
+ "description": "New display name",
3197
+ "name": "display",
3198
+ "required": false,
3199
+ "hasDynamicHelp": false,
3200
+ "multiple": false,
3201
+ "type": "option"
3202
+ },
3203
+ "domain": {
3204
+ "description": "Custom domain",
3205
+ "name": "domain",
3216
3206
  "required": false,
3217
3207
  "hasDynamicHelp": false,
3218
3208
  "multiple": false,
3219
3209
  "type": "option"
3220
3210
  },
3211
+ "ingress": {
3212
+ "description": "Enable/disable ingress",
3213
+ "name": "ingress",
3214
+ "required": false,
3215
+ "allowNo": true,
3216
+ "type": "boolean"
3217
+ },
3221
3218
  "output": {
3222
3219
  "char": "o",
3223
3220
  "description": "Output format",
@@ -3232,24 +3229,41 @@
3232
3229
  ],
3233
3230
  "type": "option"
3234
3231
  },
3235
- "require-token": {
3236
- "description": "Whether to require a token for documentation access",
3237
- "name": "require-token",
3232
+ "proxy": {
3233
+ "description": "Proxy URL",
3234
+ "name": "proxy",
3235
+ "required": false,
3236
+ "hasDynamicHelp": false,
3237
+ "multiple": false,
3238
+ "type": "option"
3239
+ },
3240
+ "rbac": {
3241
+ "description": "Enable/disable RBAC",
3242
+ "name": "rbac",
3243
+ "required": false,
3244
+ "allowNo": true,
3245
+ "type": "boolean"
3246
+ },
3247
+ "tasks": {
3248
+ "description": "Enable/disable background tasks",
3249
+ "name": "tasks",
3238
3250
  "required": false,
3239
3251
  "allowNo": true,
3240
3252
  "type": "boolean"
3241
3253
  },
3242
- "swagger": {
3243
- "description": "Enable or disable swagger documentation",
3244
- "name": "swagger",
3254
+ "workspace": {
3255
+ "char": "w",
3256
+ "description": "Workspace ID (uses profile workspace if not provided)",
3257
+ "name": "workspace",
3245
3258
  "required": false,
3246
- "allowNo": true,
3247
- "type": "boolean"
3259
+ "hasDynamicHelp": false,
3260
+ "multiple": false,
3261
+ "type": "option"
3248
3262
  }
3249
3263
  },
3250
3264
  "hasDynamicHelp": false,
3251
3265
  "hiddenAliases": [],
3252
- "id": "workspace:edit",
3266
+ "id": "tenant:edit",
3253
3267
  "pluginAlias": "@xano/cli",
3254
3268
  "pluginName": "@xano/cli",
3255
3269
  "pluginType": "core",
@@ -3259,25 +3273,18 @@
3259
3273
  "relativePath": [
3260
3274
  "dist",
3261
3275
  "commands",
3262
- "workspace",
3276
+ "tenant",
3263
3277
  "edit",
3264
3278
  "index.js"
3265
3279
  ]
3266
3280
  },
3267
- "workspace:create": {
3281
+ "tenant:list": {
3268
3282
  "aliases": [],
3269
- "args": {
3270
- "name": {
3271
- "description": "Name of the workspace",
3272
- "name": "name",
3273
- "required": true
3274
- }
3275
- },
3276
- "description": "Create a new workspace via the Xano Metadata API",
3283
+ "args": {},
3284
+ "description": "List all tenants in a workspace",
3277
3285
  "examples": [
3278
- "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
3279
- "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
3280
- "$ 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"
3286
+ "$ xano tenant list\nTenants in workspace 5:\n - My Tenant (my-tenant) [ok] - tier1\n - Staging (staging) [ok] - tier1\n",
3287
+ "$ xano tenant list -w 5 --output json"
3281
3288
  ],
3282
3289
  "flags": {
3283
3290
  "profile": {
@@ -3299,15 +3306,6 @@
3299
3306
  "allowNo": false,
3300
3307
  "type": "boolean"
3301
3308
  },
3302
- "description": {
3303
- "char": "d",
3304
- "description": "Description for the workspace",
3305
- "name": "description",
3306
- "required": false,
3307
- "hasDynamicHelp": false,
3308
- "multiple": false,
3309
- "type": "option"
3310
- },
3311
3309
  "output": {
3312
3310
  "char": "o",
3313
3311
  "description": "Output format",
@@ -3321,11 +3319,20 @@
3321
3319
  "json"
3322
3320
  ],
3323
3321
  "type": "option"
3322
+ },
3323
+ "workspace": {
3324
+ "char": "w",
3325
+ "description": "Workspace ID (uses profile workspace if not provided)",
3326
+ "name": "workspace",
3327
+ "required": false,
3328
+ "hasDynamicHelp": false,
3329
+ "multiple": false,
3330
+ "type": "option"
3324
3331
  }
3325
3332
  },
3326
3333
  "hasDynamicHelp": false,
3327
3334
  "hiddenAliases": [],
3328
- "id": "workspace:create",
3335
+ "id": "tenant:list",
3329
3336
  "pluginAlias": "@xano/cli",
3330
3337
  "pluginName": "@xano/cli",
3331
3338
  "pluginType": "core",
@@ -3335,25 +3342,28 @@
3335
3342
  "relativePath": [
3336
3343
  "dist",
3337
3344
  "commands",
3338
- "workspace",
3339
- "create",
3345
+ "tenant",
3346
+ "list",
3340
3347
  "index.js"
3341
3348
  ]
3342
3349
  },
3343
- "workspace:delete": {
3350
+ "tenant:push": {
3344
3351
  "aliases": [],
3345
3352
  "args": {
3346
- "workspace_id": {
3347
- "description": "Workspace ID to delete",
3348
- "name": "workspace_id",
3353
+ "directory": {
3354
+ "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3355
+ "name": "directory",
3349
3356
  "required": true
3350
3357
  }
3351
3358
  },
3352
- "description": "Delete a workspace via the Xano Metadata API. Cannot delete workspaces with active tenants.",
3359
+ "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3353
3360
  "examples": [
3354
- "$ 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",
3355
- "$ xano workspace delete 123 --force\nDeleted workspace 123\n",
3356
- "$ xano workspace delete 123 -f -o json\n{\n \"deleted\": true,\n \"workspace_id\": 123\n}\n"
3361
+ "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
3362
+ "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
3363
+ "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
3364
+ "$ xano tenant push ./my-workspace -t my-tenant --no-records\nPush schema only, skip importing table records\n",
3365
+ "$ xano tenant push ./my-workspace -t my-tenant --no-env\nPush without overwriting environment variables\n",
3366
+ "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
3357
3367
  ],
3358
3368
  "flags": {
3359
3369
  "profile": {
@@ -3375,32 +3385,49 @@
3375
3385
  "allowNo": false,
3376
3386
  "type": "boolean"
3377
3387
  },
3378
- "force": {
3379
- "char": "f",
3380
- "description": "Skip confirmation prompt",
3381
- "name": "force",
3388
+ "env": {
3389
+ "description": "Include environment variables in import (default: true, use --no-env to exclude)",
3390
+ "name": "env",
3391
+ "required": false,
3392
+ "allowNo": true,
3393
+ "type": "boolean"
3394
+ },
3395
+ "records": {
3396
+ "description": "Include records in import (default: true, use --no-records to exclude)",
3397
+ "name": "records",
3398
+ "required": false,
3399
+ "allowNo": true,
3400
+ "type": "boolean"
3401
+ },
3402
+ "tenant": {
3403
+ "char": "t",
3404
+ "description": "Tenant name to push to",
3405
+ "name": "tenant",
3406
+ "required": true,
3407
+ "hasDynamicHelp": false,
3408
+ "multiple": false,
3409
+ "type": "option"
3410
+ },
3411
+ "truncate": {
3412
+ "description": "Truncate all table records before importing",
3413
+ "name": "truncate",
3382
3414
  "required": false,
3383
3415
  "allowNo": false,
3384
3416
  "type": "boolean"
3385
3417
  },
3386
- "output": {
3387
- "char": "o",
3388
- "description": "Output format",
3389
- "name": "output",
3418
+ "workspace": {
3419
+ "char": "w",
3420
+ "description": "Workspace ID (optional if set in profile)",
3421
+ "name": "workspace",
3390
3422
  "required": false,
3391
- "default": "summary",
3392
3423
  "hasDynamicHelp": false,
3393
3424
  "multiple": false,
3394
- "options": [
3395
- "summary",
3396
- "json"
3397
- ],
3398
3425
  "type": "option"
3399
3426
  }
3400
3427
  },
3401
3428
  "hasDynamicHelp": false,
3402
3429
  "hiddenAliases": [],
3403
- "id": "workspace:delete",
3430
+ "id": "tenant:push",
3404
3431
  "pluginAlias": "@xano/cli",
3405
3432
  "pluginName": "@xano/cli",
3406
3433
  "pluginType": "core",
@@ -3410,25 +3437,19 @@
3410
3437
  "relativePath": [
3411
3438
  "dist",
3412
3439
  "commands",
3413
- "workspace",
3414
- "delete",
3440
+ "tenant",
3441
+ "push",
3415
3442
  "index.js"
3416
3443
  ]
3417
3444
  },
3418
- "workspace:get": {
3445
+ "unit_test:list": {
3419
3446
  "aliases": [],
3420
- "args": {
3421
- "workspace_id": {
3422
- "description": "Workspace ID to get details for (uses profile workspace if not provided)",
3423
- "name": "workspace_id",
3424
- "required": false
3425
- }
3426
- },
3427
- "description": "Get details of a specific workspace from the Xano Metadata API",
3447
+ "args": {},
3448
+ "description": "List all unit tests in a workspace",
3428
3449
  "examples": [
3429
- "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
3430
- "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
3431
- "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
3450
+ "$ xano unit-test list\nUnit tests in workspace 5:\n - my-test (ID: abc-123) [function: math]\n - auth-check (ID: def-456) [query: /user/login]\n",
3451
+ "$ xano unit-test list -w 5 --output json",
3452
+ "$ xano unit-test list --obj-type function"
3432
3453
  ],
3433
3454
  "flags": {
3434
3455
  "profile": {
@@ -3450,6 +3471,28 @@
3450
3471
  "allowNo": false,
3451
3472
  "type": "boolean"
3452
3473
  },
3474
+ "branch": {
3475
+ "char": "b",
3476
+ "description": "Filter by branch name",
3477
+ "name": "branch",
3478
+ "required": false,
3479
+ "hasDynamicHelp": false,
3480
+ "multiple": false,
3481
+ "type": "option"
3482
+ },
3483
+ "obj-type": {
3484
+ "description": "Filter by object type",
3485
+ "name": "obj-type",
3486
+ "required": false,
3487
+ "hasDynamicHelp": false,
3488
+ "multiple": false,
3489
+ "options": [
3490
+ "function",
3491
+ "query",
3492
+ "middleware"
3493
+ ],
3494
+ "type": "option"
3495
+ },
3453
3496
  "output": {
3454
3497
  "char": "o",
3455
3498
  "description": "Output format",
@@ -3463,11 +3506,20 @@
3463
3506
  "json"
3464
3507
  ],
3465
3508
  "type": "option"
3509
+ },
3510
+ "workspace": {
3511
+ "char": "w",
3512
+ "description": "Workspace ID (uses profile workspace if not provided)",
3513
+ "name": "workspace",
3514
+ "required": false,
3515
+ "hasDynamicHelp": false,
3516
+ "multiple": false,
3517
+ "type": "option"
3466
3518
  }
3467
3519
  },
3468
3520
  "hasDynamicHelp": false,
3469
3521
  "hiddenAliases": [],
3470
- "id": "workspace:get",
3522
+ "id": "unit_test:list",
3471
3523
  "pluginAlias": "@xano/cli",
3472
3524
  "pluginName": "@xano/cli",
3473
3525
  "pluginType": "core",
@@ -3477,20 +3529,24 @@
3477
3529
  "relativePath": [
3478
3530
  "dist",
3479
3531
  "commands",
3480
- "workspace",
3481
- "get",
3532
+ "unit_test",
3533
+ "list",
3482
3534
  "index.js"
3483
3535
  ]
3484
3536
  },
3485
- "workspace:list": {
3537
+ "unit_test:run": {
3486
3538
  "aliases": [],
3487
- "args": {},
3488
- "description": "List all workspaces from the Xano Metadata API",
3539
+ "args": {
3540
+ "unit_test_id": {
3541
+ "description": "ID of the unit test to run",
3542
+ "name": "unit_test_id",
3543
+ "required": true
3544
+ }
3545
+ },
3546
+ "description": "Run a unit test",
3489
3547
  "examples": [
3490
- "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
3491
- "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
3492
- "$ 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",
3493
- "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
3548
+ "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
3549
+ "$ xano unit-test run abc-123 -o json"
3494
3550
  ],
3495
3551
  "flags": {
3496
3552
  "profile": {
@@ -3525,11 +3581,20 @@
3525
3581
  "json"
3526
3582
  ],
3527
3583
  "type": "option"
3584
+ },
3585
+ "workspace": {
3586
+ "char": "w",
3587
+ "description": "Workspace ID (uses profile workspace if not provided)",
3588
+ "name": "workspace",
3589
+ "required": false,
3590
+ "hasDynamicHelp": false,
3591
+ "multiple": false,
3592
+ "type": "option"
3528
3593
  }
3529
3594
  },
3530
3595
  "hasDynamicHelp": false,
3531
3596
  "hiddenAliases": [],
3532
- "id": "workspace:list",
3597
+ "id": "unit_test:run",
3533
3598
  "pluginAlias": "@xano/cli",
3534
3599
  "pluginName": "@xano/cli",
3535
3600
  "pluginType": "core",
@@ -3539,31 +3604,18 @@
3539
3604
  "relativePath": [
3540
3605
  "dist",
3541
3606
  "commands",
3542
- "workspace",
3543
- "list",
3607
+ "unit_test",
3608
+ "run",
3544
3609
  "index.js"
3545
3610
  ]
3546
3611
  },
3547
- "workspace:push": {
3612
+ "unit_test:run_all": {
3548
3613
  "aliases": [],
3549
- "args": {
3550
- "directory": {
3551
- "description": "Directory containing documents to push (as produced by workspace pull)",
3552
- "name": "directory",
3553
- "required": true
3554
- }
3555
- },
3556
- "description": "Push local documents to a workspace via the Xano Metadata API multidoc endpoint",
3614
+ "args": {},
3615
+ "description": "Run all unit tests in a workspace",
3557
3616
  "examples": [
3558
- "$ xano workspace push ./my-workspace\nPushed 42 documents from ./my-workspace\n",
3559
- "$ xano workspace push ./output -w 40\nPushed 15 documents from ./output\n",
3560
- "$ xano workspace push ./backup --profile production\nPushed 58 documents from ./backup\n",
3561
- "$ xano workspace push ./my-workspace -b dev\nPushed 42 documents from ./my-workspace\n",
3562
- "$ xano workspace push ./my-workspace --no-records\nPush schema only, skip importing table records\n",
3563
- "$ xano workspace push ./my-workspace --no-env\nPush without overwriting environment variables\n",
3564
- "$ xano workspace push ./my-workspace --truncate\nTruncate all table records before importing\n",
3565
- "$ xano workspace push ./my-workspace --truncate --no-records\nTruncate all table records without importing new ones\n",
3566
- "$ xano workspace push ./my-workspace --no-records --no-env\nPush schema only, skip records and environment variables\n"
3617
+ "$ xano unit-test run-all\nRunning 5 unit tests...\n\nPASS my-test [function: math]\nPASS auth-check [query: /user/login]\nFAIL data-validation [function: validate]\n Error: assertion failed\n\nResults: 2 passed, 1 failed\n",
3618
+ "$ xano unit-test run-all --obj-type function -o json"
3567
3619
  ],
3568
3620
  "flags": {
3569
3621
  "profile": {
@@ -3587,37 +3639,43 @@
3587
3639
  },
3588
3640
  "branch": {
3589
3641
  "char": "b",
3590
- "description": "Branch name (optional if set in profile, defaults to live)",
3642
+ "description": "Filter by branch name",
3591
3643
  "name": "branch",
3592
3644
  "required": false,
3593
3645
  "hasDynamicHelp": false,
3594
3646
  "multiple": false,
3595
3647
  "type": "option"
3596
3648
  },
3597
- "env": {
3598
- "description": "Include environment variables in import (default: true, use --no-env to exclude)",
3599
- "name": "env",
3600
- "required": false,
3601
- "allowNo": true,
3602
- "type": "boolean"
3603
- },
3604
- "records": {
3605
- "description": "Include records in import (default: true, use --no-records to exclude)",
3606
- "name": "records",
3607
- "required": false,
3608
- "allowNo": true,
3609
- "type": "boolean"
3610
- },
3611
- "truncate": {
3612
- "description": "Truncate all table records before importing",
3613
- "name": "truncate",
3614
- "required": false,
3615
- "allowNo": false,
3616
- "type": "boolean"
3617
- },
3649
+ "obj-type": {
3650
+ "description": "Filter by object type",
3651
+ "name": "obj-type",
3652
+ "required": false,
3653
+ "hasDynamicHelp": false,
3654
+ "multiple": false,
3655
+ "options": [
3656
+ "function",
3657
+ "query",
3658
+ "middleware"
3659
+ ],
3660
+ "type": "option"
3661
+ },
3662
+ "output": {
3663
+ "char": "o",
3664
+ "description": "Output format",
3665
+ "name": "output",
3666
+ "required": false,
3667
+ "default": "summary",
3668
+ "hasDynamicHelp": false,
3669
+ "multiple": false,
3670
+ "options": [
3671
+ "summary",
3672
+ "json"
3673
+ ],
3674
+ "type": "option"
3675
+ },
3618
3676
  "workspace": {
3619
3677
  "char": "w",
3620
- "description": "Workspace ID (optional if set in profile)",
3678
+ "description": "Workspace ID (uses profile workspace if not provided)",
3621
3679
  "name": "workspace",
3622
3680
  "required": false,
3623
3681
  "hasDynamicHelp": false,
@@ -3627,7 +3685,7 @@
3627
3685
  },
3628
3686
  "hasDynamicHelp": false,
3629
3687
  "hiddenAliases": [],
3630
- "id": "workspace:push",
3688
+ "id": "unit_test:run_all",
3631
3689
  "pluginAlias": "@xano/cli",
3632
3690
  "pluginName": "@xano/cli",
3633
3691
  "pluginType": "core",
@@ -3637,27 +3695,19 @@
3637
3695
  "relativePath": [
3638
3696
  "dist",
3639
3697
  "commands",
3640
- "workspace",
3641
- "push",
3698
+ "unit_test",
3699
+ "run_all",
3642
3700
  "index.js"
3643
3701
  ]
3644
3702
  },
3645
- "workspace:pull": {
3703
+ "workflow_test:list": {
3646
3704
  "aliases": [],
3647
- "args": {
3648
- "directory": {
3649
- "description": "Output directory for pulled documents",
3650
- "name": "directory",
3651
- "required": true
3652
- }
3653
- },
3654
- "description": "Pull a workspace multidoc from the Xano Metadata API and split into individual files",
3705
+ "args": {},
3706
+ "description": "List all workflow tests in a workspace",
3655
3707
  "examples": [
3656
- "$ xano workspace pull ./my-workspace\nPulled 42 documents to ./my-workspace\n",
3657
- "$ xano workspace pull ./output -w 40\nPulled 15 documents to ./output\n",
3658
- "$ xano workspace pull ./backup --profile production --env --records\nPulled 58 documents to ./backup\n",
3659
- "$ xano workspace pull ./my-workspace --draft\nPulled 42 documents to ./my-workspace\n",
3660
- "$ xano workspace pull ./my-workspace -b dev\nPulled 42 documents to ./my-workspace\n"
3708
+ "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
3709
+ "$ xano workflow-test list -w 5 --output json",
3710
+ "$ xano workflow-test list --branch main"
3661
3711
  ],
3662
3712
  "flags": {
3663
3713
  "profile": {
@@ -3681,37 +3731,30 @@
3681
3731
  },
3682
3732
  "branch": {
3683
3733
  "char": "b",
3684
- "description": "Branch name (optional if set in profile, defaults to live)",
3734
+ "description": "Filter by branch name",
3685
3735
  "name": "branch",
3686
3736
  "required": false,
3687
3737
  "hasDynamicHelp": false,
3688
3738
  "multiple": false,
3689
3739
  "type": "option"
3690
3740
  },
3691
- "env": {
3692
- "description": "Include environment variables",
3693
- "name": "env",
3694
- "required": false,
3695
- "allowNo": false,
3696
- "type": "boolean"
3697
- },
3698
- "draft": {
3699
- "description": "Include draft versions",
3700
- "name": "draft",
3701
- "required": false,
3702
- "allowNo": false,
3703
- "type": "boolean"
3704
- },
3705
- "records": {
3706
- "description": "Include records",
3707
- "name": "records",
3741
+ "output": {
3742
+ "char": "o",
3743
+ "description": "Output format",
3744
+ "name": "output",
3708
3745
  "required": false,
3709
- "allowNo": false,
3710
- "type": "boolean"
3746
+ "default": "summary",
3747
+ "hasDynamicHelp": false,
3748
+ "multiple": false,
3749
+ "options": [
3750
+ "summary",
3751
+ "json"
3752
+ ],
3753
+ "type": "option"
3711
3754
  },
3712
3755
  "workspace": {
3713
3756
  "char": "w",
3714
- "description": "Workspace ID (optional if set in profile)",
3757
+ "description": "Workspace ID (uses profile workspace if not provided)",
3715
3758
  "name": "workspace",
3716
3759
  "required": false,
3717
3760
  "hasDynamicHelp": false,
@@ -3721,7 +3764,7 @@
3721
3764
  },
3722
3765
  "hasDynamicHelp": false,
3723
3766
  "hiddenAliases": [],
3724
- "id": "workspace:pull",
3767
+ "id": "workflow_test:list",
3725
3768
  "pluginAlias": "@xano/cli",
3726
3769
  "pluginName": "@xano/cli",
3727
3770
  "pluginType": "core",
@@ -3731,24 +3774,25 @@
3731
3774
  "relativePath": [
3732
3775
  "dist",
3733
3776
  "commands",
3734
- "workspace",
3735
- "pull",
3777
+ "workflow_test",
3778
+ "list",
3736
3779
  "index.js"
3737
3780
  ]
3738
3781
  },
3739
- "tenant:create": {
3782
+ "workflow_test:get": {
3740
3783
  "aliases": [],
3741
3784
  "args": {
3742
- "display": {
3743
- "description": "Display name for the tenant",
3744
- "name": "display",
3785
+ "workflow_test_id": {
3786
+ "description": "ID of the workflow test",
3787
+ "name": "workflow_test_id",
3745
3788
  "required": true
3746
3789
  }
3747
3790
  },
3748
- "description": "Create a new tenant in a workspace",
3791
+ "description": "Get a specific workflow test",
3749
3792
  "examples": [
3750
- "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
3751
- "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
3793
+ "$ xano workflow-test get 1\nWorkflow Test: my-test (ID: 1)\n Description: Validates auth endpoints\n Branch: main\n",
3794
+ "$ xano workflow-test get 1 -o xs",
3795
+ "$ xano workflow-test get 1 -o json"
3752
3796
  ],
3753
3797
  "flags": {
3754
3798
  "profile": {
@@ -3770,57 +3814,13 @@
3770
3814
  "allowNo": false,
3771
3815
  "type": "boolean"
3772
3816
  },
3773
- "cluster_id": {
3774
- "description": "Cluster ID to deploy to (required for tier2/tier3)",
3775
- "name": "cluster_id",
3776
- "required": false,
3777
- "hasDynamicHelp": false,
3778
- "multiple": false,
3779
- "type": "option"
3780
- },
3781
- "description": {
3782
- "char": "d",
3783
- "description": "Tenant description",
3784
- "name": "description",
3785
- "required": false,
3786
- "hasDynamicHelp": false,
3787
- "multiple": false,
3788
- "type": "option"
3789
- },
3790
- "domain": {
3791
- "description": "Custom domain for the tenant",
3792
- "name": "domain",
3817
+ "include-draft": {
3818
+ "description": "Include draft version",
3819
+ "name": "include-draft",
3793
3820
  "required": false,
3794
- "hasDynamicHelp": false,
3795
- "multiple": false,
3796
- "type": "option"
3797
- },
3798
- "ephemeral": {
3799
- "description": "Mark tenant as ephemeral (allows push operations)",
3800
- "name": "ephemeral",
3801
3821
  "allowNo": false,
3802
3822
  "type": "boolean"
3803
3823
  },
3804
- "ingress": {
3805
- "description": "Enable ingress",
3806
- "name": "ingress",
3807
- "allowNo": true,
3808
- "type": "boolean"
3809
- },
3810
- "license": {
3811
- "description": "License tier",
3812
- "name": "license",
3813
- "required": false,
3814
- "default": "tier1",
3815
- "hasDynamicHelp": false,
3816
- "multiple": false,
3817
- "options": [
3818
- "tier1",
3819
- "tier2",
3820
- "tier3"
3821
- ],
3822
- "type": "option"
3823
- },
3824
3824
  "output": {
3825
3825
  "char": "o",
3826
3826
  "description": "Output format",
@@ -3831,24 +3831,11 @@
3831
3831
  "multiple": false,
3832
3832
  "options": [
3833
3833
  "summary",
3834
- "json"
3834
+ "json",
3835
+ "xs"
3835
3836
  ],
3836
3837
  "type": "option"
3837
3838
  },
3838
- "platform_id": {
3839
- "description": "Platform ID to use",
3840
- "name": "platform_id",
3841
- "required": false,
3842
- "hasDynamicHelp": false,
3843
- "multiple": false,
3844
- "type": "option"
3845
- },
3846
- "tasks": {
3847
- "description": "Enable background tasks",
3848
- "name": "tasks",
3849
- "allowNo": true,
3850
- "type": "boolean"
3851
- },
3852
3839
  "workspace": {
3853
3840
  "char": "w",
3854
3841
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3861,7 +3848,7 @@
3861
3848
  },
3862
3849
  "hasDynamicHelp": false,
3863
3850
  "hiddenAliases": [],
3864
- "id": "tenant:create",
3851
+ "id": "workflow_test:get",
3865
3852
  "pluginAlias": "@xano/cli",
3866
3853
  "pluginName": "@xano/cli",
3867
3854
  "pluginType": "core",
@@ -3871,25 +3858,24 @@
3871
3858
  "relativePath": [
3872
3859
  "dist",
3873
3860
  "commands",
3874
- "tenant",
3875
- "create",
3861
+ "workflow_test",
3862
+ "get",
3876
3863
  "index.js"
3877
3864
  ]
3878
3865
  },
3879
- "tenant:delete": {
3866
+ "workflow_test:delete": {
3880
3867
  "aliases": [],
3881
3868
  "args": {
3882
- "tenant_name": {
3883
- "description": "Tenant name to delete",
3884
- "name": "tenant_name",
3869
+ "workflow_test_id": {
3870
+ "description": "ID of the workflow test to delete",
3871
+ "name": "workflow_test_id",
3885
3872
  "required": true
3886
3873
  }
3887
3874
  },
3888
- "description": "Delete a tenant permanently. This destroys all associated infrastructure and cannot be undone.",
3875
+ "description": "Delete a workflow test",
3889
3876
  "examples": [
3890
- "$ 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",
3891
- "$ xano tenant delete t1234-abcd-xyz1 --force\nDeleted tenant t1234-abcd-xyz1\n",
3892
- "$ xano tenant delete t1234-abcd-xyz1 -f -o json"
3877
+ "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
3878
+ "$ xano workflow-test delete 1 --force"
3893
3879
  ],
3894
3880
  "flags": {
3895
3881
  "profile": {
@@ -3945,7 +3931,7 @@
3945
3931
  },
3946
3932
  "hasDynamicHelp": false,
3947
3933
  "hiddenAliases": [],
3948
- "id": "tenant:delete",
3934
+ "id": "workflow_test:delete",
3949
3935
  "pluginAlias": "@xano/cli",
3950
3936
  "pluginName": "@xano/cli",
3951
3937
  "pluginType": "core",
@@ -3955,24 +3941,24 @@
3955
3941
  "relativePath": [
3956
3942
  "dist",
3957
3943
  "commands",
3958
- "tenant",
3944
+ "workflow_test",
3959
3945
  "delete",
3960
3946
  "index.js"
3961
3947
  ]
3962
3948
  },
3963
- "tenant:deploy_platform": {
3949
+ "workflow_test:run": {
3964
3950
  "aliases": [],
3965
3951
  "args": {
3966
- "tenant_name": {
3967
- "description": "Tenant name to deploy to",
3968
- "name": "tenant_name",
3952
+ "workflow_test_id": {
3953
+ "description": "ID of the workflow test to run",
3954
+ "name": "workflow_test_id",
3969
3955
  "required": true
3970
3956
  }
3971
3957
  },
3972
- "description": "Deploy a platform version to a tenant",
3958
+ "description": "Run a workflow test",
3973
3959
  "examples": [
3974
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
3975
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json"
3960
+ "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
3961
+ "$ xano workflow-test run 1 -o json"
3976
3962
  ],
3977
3963
  "flags": {
3978
3964
  "profile": {
@@ -4008,14 +3994,6 @@
4008
3994
  ],
4009
3995
  "type": "option"
4010
3996
  },
4011
- "platform_id": {
4012
- "description": "Platform ID to deploy",
4013
- "name": "platform_id",
4014
- "required": true,
4015
- "hasDynamicHelp": false,
4016
- "multiple": false,
4017
- "type": "option"
4018
- },
4019
3997
  "workspace": {
4020
3998
  "char": "w",
4021
3999
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -4028,7 +4006,7 @@
4028
4006
  },
4029
4007
  "hasDynamicHelp": false,
4030
4008
  "hiddenAliases": [],
4031
- "id": "tenant:deploy_platform",
4009
+ "id": "workflow_test:run",
4032
4010
  "pluginAlias": "@xano/cli",
4033
4011
  "pluginName": "@xano/cli",
4034
4012
  "pluginType": "core",
@@ -4038,24 +4016,18 @@
4038
4016
  "relativePath": [
4039
4017
  "dist",
4040
4018
  "commands",
4041
- "tenant",
4042
- "deploy_platform",
4019
+ "workflow_test",
4020
+ "run",
4043
4021
  "index.js"
4044
4022
  ]
4045
4023
  },
4046
- "tenant:deploy_release": {
4024
+ "workflow_test:run_all": {
4047
4025
  "aliases": [],
4048
- "args": {
4049
- "tenant_name": {
4050
- "description": "Tenant name to deploy to",
4051
- "name": "tenant_name",
4052
- "required": true
4053
- }
4054
- },
4055
- "description": "Deploy a release to a tenant",
4026
+ "args": {},
4027
+ "description": "Run all workflow tests in a workspace",
4056
4028
  "examples": [
4057
- "$ xano tenant deploy_release t1234-abcd-xyz1 --release_id 10\nDeployed release 10 to tenant: My Tenant (my-tenant)\n",
4058
- "$ xano tenant deploy_release t1234-abcd-xyz1 --release_id 10 -o json"
4029
+ "$ 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",
4030
+ "$ xano workflow-test run-all --branch main -o json"
4059
4031
  ],
4060
4032
  "flags": {
4061
4033
  "profile": {
@@ -4074,8 +4046,17 @@
4074
4046
  "env": "XANO_VERBOSE",
4075
4047
  "name": "verbose",
4076
4048
  "required": false,
4077
- "allowNo": false,
4078
- "type": "boolean"
4049
+ "allowNo": false,
4050
+ "type": "boolean"
4051
+ },
4052
+ "branch": {
4053
+ "char": "b",
4054
+ "description": "Filter by branch name",
4055
+ "name": "branch",
4056
+ "required": false,
4057
+ "hasDynamicHelp": false,
4058
+ "multiple": false,
4059
+ "type": "option"
4079
4060
  },
4080
4061
  "output": {
4081
4062
  "char": "o",
@@ -4091,14 +4072,6 @@
4091
4072
  ],
4092
4073
  "type": "option"
4093
4074
  },
4094
- "release_id": {
4095
- "description": "Release ID to deploy",
4096
- "name": "release_id",
4097
- "required": true,
4098
- "hasDynamicHelp": false,
4099
- "multiple": false,
4100
- "type": "option"
4101
- },
4102
4075
  "workspace": {
4103
4076
  "char": "w",
4104
4077
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -4111,7 +4084,7 @@
4111
4084
  },
4112
4085
  "hasDynamicHelp": false,
4113
4086
  "hiddenAliases": [],
4114
- "id": "tenant:deploy_release",
4087
+ "id": "workflow_test:run_all",
4115
4088
  "pluginAlias": "@xano/cli",
4116
4089
  "pluginName": "@xano/cli",
4117
4090
  "pluginType": "core",
@@ -4121,24 +4094,25 @@
4121
4094
  "relativePath": [
4122
4095
  "dist",
4123
4096
  "commands",
4124
- "tenant",
4125
- "deploy_release",
4097
+ "workflow_test",
4098
+ "run_all",
4126
4099
  "index.js"
4127
4100
  ]
4128
4101
  },
4129
- "tenant:get": {
4102
+ "workspace:create": {
4130
4103
  "aliases": [],
4131
4104
  "args": {
4132
- "tenant_name": {
4133
- "description": "Tenant name to retrieve",
4134
- "name": "tenant_name",
4105
+ "name": {
4106
+ "description": "Name of the workspace",
4107
+ "name": "name",
4135
4108
  "required": true
4136
4109
  }
4137
4110
  },
4138
- "description": "Get details of a specific tenant",
4111
+ "description": "Create a new workspace via the Xano Metadata API",
4139
4112
  "examples": [
4140
- "$ xano tenant get t1234-abcd-xyz1\nTenant: My Tenant (my-tenant)\n State: ok\n License: tier1\n Domain: my-tenant.xano.io\n Cluster: default\n Release: v1.0\n",
4141
- "$ xano tenant get t1234-abcd-xyz1 -w 5 -o json"
4113
+ "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
4114
+ "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
4115
+ "$ xano workspace create new-project -d \"New project workspace\" -o json\n{\n \"id\": 789,\n \"name\": \"new-project\",\n \"description\": \"New project workspace\"\n}\n"
4142
4116
  ],
4143
4117
  "flags": {
4144
4118
  "profile": {
@@ -4160,6 +4134,15 @@
4160
4134
  "allowNo": false,
4161
4135
  "type": "boolean"
4162
4136
  },
4137
+ "description": {
4138
+ "char": "d",
4139
+ "description": "Description for the workspace",
4140
+ "name": "description",
4141
+ "required": false,
4142
+ "hasDynamicHelp": false,
4143
+ "multiple": false,
4144
+ "type": "option"
4145
+ },
4163
4146
  "output": {
4164
4147
  "char": "o",
4165
4148
  "description": "Output format",
@@ -4173,20 +4156,11 @@
4173
4156
  "json"
4174
4157
  ],
4175
4158
  "type": "option"
4176
- },
4177
- "workspace": {
4178
- "char": "w",
4179
- "description": "Workspace ID (uses profile workspace if not provided)",
4180
- "name": "workspace",
4181
- "required": false,
4182
- "hasDynamicHelp": false,
4183
- "multiple": false,
4184
- "type": "option"
4185
4159
  }
4186
4160
  },
4187
4161
  "hasDynamicHelp": false,
4188
4162
  "hiddenAliases": [],
4189
- "id": "tenant:get",
4163
+ "id": "workspace:create",
4190
4164
  "pluginAlias": "@xano/cli",
4191
4165
  "pluginName": "@xano/cli",
4192
4166
  "pluginType": "core",
@@ -4196,24 +4170,26 @@
4196
4170
  "relativePath": [
4197
4171
  "dist",
4198
4172
  "commands",
4199
- "tenant",
4200
- "get",
4173
+ "workspace",
4174
+ "create",
4201
4175
  "index.js"
4202
4176
  ]
4203
4177
  },
4204
- "tenant:edit": {
4178
+ "workspace:edit": {
4205
4179
  "aliases": [],
4206
4180
  "args": {
4207
- "tenant_name": {
4208
- "description": "Tenant name to edit",
4209
- "name": "tenant_name",
4210
- "required": true
4181
+ "workspace_id": {
4182
+ "description": "Workspace ID to edit (uses profile workspace if not provided)",
4183
+ "name": "workspace_id",
4184
+ "required": false
4211
4185
  }
4212
4186
  },
4213
- "description": "Edit an existing tenant",
4187
+ "description": "Edit an existing workspace via the Xano Metadata API",
4214
4188
  "examples": [
4215
- "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
4216
- "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
4189
+ "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
4190
+ "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
4191
+ "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
4192
+ "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
4217
4193
  ],
4218
4194
  "flags": {
4219
4195
  "profile": {
@@ -4237,36 +4213,22 @@
4237
4213
  },
4238
4214
  "description": {
4239
4215
  "char": "d",
4240
- "description": "New description",
4216
+ "description": "New description for the workspace",
4241
4217
  "name": "description",
4242
4218
  "required": false,
4243
4219
  "hasDynamicHelp": false,
4244
4220
  "multiple": false,
4245
4221
  "type": "option"
4246
4222
  },
4247
- "display": {
4248
- "description": "New display name",
4249
- "name": "display",
4250
- "required": false,
4251
- "hasDynamicHelp": false,
4252
- "multiple": false,
4253
- "type": "option"
4254
- },
4255
- "domain": {
4256
- "description": "Custom domain",
4257
- "name": "domain",
4223
+ "name": {
4224
+ "char": "n",
4225
+ "description": "New name for the workspace",
4226
+ "name": "name",
4258
4227
  "required": false,
4259
4228
  "hasDynamicHelp": false,
4260
4229
  "multiple": false,
4261
4230
  "type": "option"
4262
4231
  },
4263
- "ingress": {
4264
- "description": "Enable/disable ingress",
4265
- "name": "ingress",
4266
- "required": false,
4267
- "allowNo": true,
4268
- "type": "boolean"
4269
- },
4270
4232
  "output": {
4271
4233
  "char": "o",
4272
4234
  "description": "Output format",
@@ -4281,41 +4243,24 @@
4281
4243
  ],
4282
4244
  "type": "option"
4283
4245
  },
4284
- "proxy": {
4285
- "description": "Proxy URL",
4286
- "name": "proxy",
4287
- "required": false,
4288
- "hasDynamicHelp": false,
4289
- "multiple": false,
4290
- "type": "option"
4291
- },
4292
- "rbac": {
4293
- "description": "Enable/disable RBAC",
4294
- "name": "rbac",
4246
+ "require-token": {
4247
+ "description": "Whether to require a token for documentation access",
4248
+ "name": "require-token",
4295
4249
  "required": false,
4296
4250
  "allowNo": true,
4297
4251
  "type": "boolean"
4298
4252
  },
4299
- "tasks": {
4300
- "description": "Enable/disable background tasks",
4301
- "name": "tasks",
4253
+ "swagger": {
4254
+ "description": "Enable or disable swagger documentation",
4255
+ "name": "swagger",
4302
4256
  "required": false,
4303
4257
  "allowNo": true,
4304
4258
  "type": "boolean"
4305
- },
4306
- "workspace": {
4307
- "char": "w",
4308
- "description": "Workspace ID (uses profile workspace if not provided)",
4309
- "name": "workspace",
4310
- "required": false,
4311
- "hasDynamicHelp": false,
4312
- "multiple": false,
4313
- "type": "option"
4314
4259
  }
4315
4260
  },
4316
4261
  "hasDynamicHelp": false,
4317
4262
  "hiddenAliases": [],
4318
- "id": "tenant:edit",
4263
+ "id": "workspace:edit",
4319
4264
  "pluginAlias": "@xano/cli",
4320
4265
  "pluginName": "@xano/cli",
4321
4266
  "pluginType": "core",
@@ -4325,24 +4270,25 @@
4325
4270
  "relativePath": [
4326
4271
  "dist",
4327
4272
  "commands",
4328
- "tenant",
4273
+ "workspace",
4329
4274
  "edit",
4330
4275
  "index.js"
4331
4276
  ]
4332
4277
  },
4333
- "tenant:impersonate": {
4278
+ "workspace:get": {
4334
4279
  "aliases": [],
4335
4280
  "args": {
4336
- "tenant_name": {
4337
- "description": "Tenant name to impersonate",
4338
- "name": "tenant_name",
4339
- "required": true
4281
+ "workspace_id": {
4282
+ "description": "Workspace ID to get details for (uses profile workspace if not provided)",
4283
+ "name": "workspace_id",
4284
+ "required": false
4340
4285
  }
4341
4286
  },
4342
- "description": "Impersonate a tenant and open it in the browser",
4287
+ "description": "Get details of a specific workspace from the Xano Metadata API",
4343
4288
  "examples": [
4344
- "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
4345
- "$ xano tenant impersonate my-tenant -o json"
4289
+ "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
4290
+ "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
4291
+ "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
4346
4292
  ],
4347
4293
  "flags": {
4348
4294
  "profile": {
@@ -4377,28 +4323,73 @@
4377
4323
  "json"
4378
4324
  ],
4379
4325
  "type": "option"
4326
+ }
4327
+ },
4328
+ "hasDynamicHelp": false,
4329
+ "hiddenAliases": [],
4330
+ "id": "workspace:get",
4331
+ "pluginAlias": "@xano/cli",
4332
+ "pluginName": "@xano/cli",
4333
+ "pluginType": "core",
4334
+ "strict": true,
4335
+ "enableJsonFlag": false,
4336
+ "isESM": true,
4337
+ "relativePath": [
4338
+ "dist",
4339
+ "commands",
4340
+ "workspace",
4341
+ "get",
4342
+ "index.js"
4343
+ ]
4344
+ },
4345
+ "workspace:list": {
4346
+ "aliases": [],
4347
+ "args": {},
4348
+ "description": "List all workspaces from the Xano Metadata API",
4349
+ "examples": [
4350
+ "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4351
+ "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4352
+ "$ 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",
4353
+ "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4354
+ ],
4355
+ "flags": {
4356
+ "profile": {
4357
+ "char": "p",
4358
+ "description": "Profile to use (uses default profile if not specified)",
4359
+ "env": "XANO_PROFILE",
4360
+ "name": "profile",
4361
+ "required": false,
4362
+ "hasDynamicHelp": false,
4363
+ "multiple": false,
4364
+ "type": "option"
4380
4365
  },
4381
- "url-only": {
4382
- "char": "u",
4383
- "description": "Print the URL without opening the browser",
4384
- "name": "url-only",
4366
+ "verbose": {
4367
+ "char": "v",
4368
+ "description": "Show detailed request/response information",
4369
+ "env": "XANO_VERBOSE",
4370
+ "name": "verbose",
4385
4371
  "required": false,
4386
4372
  "allowNo": false,
4387
4373
  "type": "boolean"
4388
4374
  },
4389
- "workspace": {
4390
- "char": "w",
4391
- "description": "Workspace ID (uses profile workspace if not provided)",
4392
- "name": "workspace",
4375
+ "output": {
4376
+ "char": "o",
4377
+ "description": "Output format",
4378
+ "name": "output",
4393
4379
  "required": false,
4380
+ "default": "summary",
4394
4381
  "hasDynamicHelp": false,
4395
4382
  "multiple": false,
4383
+ "options": [
4384
+ "summary",
4385
+ "json"
4386
+ ],
4396
4387
  "type": "option"
4397
4388
  }
4398
4389
  },
4399
4390
  "hasDynamicHelp": false,
4400
4391
  "hiddenAliases": [],
4401
- "id": "tenant:impersonate",
4392
+ "id": "workspace:list",
4402
4393
  "pluginAlias": "@xano/cli",
4403
4394
  "pluginName": "@xano/cli",
4404
4395
  "pluginType": "core",
@@ -4408,18 +4399,27 @@
4408
4399
  "relativePath": [
4409
4400
  "dist",
4410
4401
  "commands",
4411
- "tenant",
4412
- "impersonate",
4402
+ "workspace",
4403
+ "list",
4413
4404
  "index.js"
4414
4405
  ]
4415
4406
  },
4416
- "tenant:list": {
4407
+ "workspace:pull": {
4417
4408
  "aliases": [],
4418
- "args": {},
4419
- "description": "List all tenants in a workspace",
4409
+ "args": {
4410
+ "directory": {
4411
+ "description": "Output directory for pulled documents",
4412
+ "name": "directory",
4413
+ "required": true
4414
+ }
4415
+ },
4416
+ "description": "Pull a workspace multidoc from the Xano Metadata API and split into individual files",
4420
4417
  "examples": [
4421
- "$ xano tenant list\nTenants in workspace 5:\n - My Tenant (my-tenant) [ok] - tier1\n - Staging (staging) [ok] - tier1\n",
4422
- "$ xano tenant list -w 5 --output json"
4418
+ "$ xano workspace pull ./my-workspace\nPulled 42 documents to ./my-workspace\n",
4419
+ "$ xano workspace pull ./output -w 40\nPulled 15 documents to ./output\n",
4420
+ "$ xano workspace pull ./backup --profile production --env --records\nPulled 58 documents to ./backup\n",
4421
+ "$ xano workspace pull ./my-workspace --draft\nPulled 42 documents to ./my-workspace\n",
4422
+ "$ xano workspace pull ./my-workspace -b dev\nPulled 42 documents to ./my-workspace\n"
4423
4423
  ],
4424
4424
  "flags": {
4425
4425
  "profile": {
@@ -4432,32 +4432,48 @@
4432
4432
  "multiple": false,
4433
4433
  "type": "option"
4434
4434
  },
4435
- "verbose": {
4436
- "char": "v",
4437
- "description": "Show detailed request/response information",
4438
- "env": "XANO_VERBOSE",
4439
- "name": "verbose",
4435
+ "verbose": {
4436
+ "char": "v",
4437
+ "description": "Show detailed request/response information",
4438
+ "env": "XANO_VERBOSE",
4439
+ "name": "verbose",
4440
+ "required": false,
4441
+ "allowNo": false,
4442
+ "type": "boolean"
4443
+ },
4444
+ "branch": {
4445
+ "char": "b",
4446
+ "description": "Branch name (optional if set in profile, defaults to live)",
4447
+ "name": "branch",
4448
+ "required": false,
4449
+ "hasDynamicHelp": false,
4450
+ "multiple": false,
4451
+ "type": "option"
4452
+ },
4453
+ "env": {
4454
+ "description": "Include environment variables",
4455
+ "name": "env",
4456
+ "required": false,
4457
+ "allowNo": false,
4458
+ "type": "boolean"
4459
+ },
4460
+ "draft": {
4461
+ "description": "Include draft versions",
4462
+ "name": "draft",
4440
4463
  "required": false,
4441
4464
  "allowNo": false,
4442
4465
  "type": "boolean"
4443
4466
  },
4444
- "output": {
4445
- "char": "o",
4446
- "description": "Output format",
4447
- "name": "output",
4467
+ "records": {
4468
+ "description": "Include records",
4469
+ "name": "records",
4448
4470
  "required": false,
4449
- "default": "summary",
4450
- "hasDynamicHelp": false,
4451
- "multiple": false,
4452
- "options": [
4453
- "summary",
4454
- "json"
4455
- ],
4456
- "type": "option"
4471
+ "allowNo": false,
4472
+ "type": "boolean"
4457
4473
  },
4458
4474
  "workspace": {
4459
4475
  "char": "w",
4460
- "description": "Workspace ID (uses profile workspace if not provided)",
4476
+ "description": "Workspace ID (optional if set in profile)",
4461
4477
  "name": "workspace",
4462
4478
  "required": false,
4463
4479
  "hasDynamicHelp": false,
@@ -4467,7 +4483,7 @@
4467
4483
  },
4468
4484
  "hasDynamicHelp": false,
4469
4485
  "hiddenAliases": [],
4470
- "id": "tenant:list",
4486
+ "id": "workspace:pull",
4471
4487
  "pluginAlias": "@xano/cli",
4472
4488
  "pluginName": "@xano/cli",
4473
4489
  "pluginType": "core",
@@ -4477,26 +4493,25 @@
4477
4493
  "relativePath": [
4478
4494
  "dist",
4479
4495
  "commands",
4480
- "tenant",
4481
- "list",
4496
+ "workspace",
4497
+ "pull",
4482
4498
  "index.js"
4483
4499
  ]
4484
4500
  },
4485
- "tenant:pull": {
4501
+ "workspace:delete": {
4486
4502
  "aliases": [],
4487
4503
  "args": {
4488
- "directory": {
4489
- "description": "Output directory for pulled documents",
4490
- "name": "directory",
4504
+ "workspace_id": {
4505
+ "description": "Workspace ID to delete",
4506
+ "name": "workspace_id",
4491
4507
  "required": true
4492
4508
  }
4493
4509
  },
4494
- "description": "Pull a tenant multidoc from the Xano Metadata API and split into individual files",
4510
+ "description": "Delete a workspace via the Xano Metadata API. Cannot delete workspaces with active tenants.",
4495
4511
  "examples": [
4496
- "$ xano tenant pull ./my-tenant -t my-tenant\nPulled 42 documents from tenant my-tenant to ./my-tenant\n",
4497
- "$ xano tenant pull ./output -t my-tenant -w 40\nPulled 15 documents from tenant my-tenant to ./output\n",
4498
- "$ xano tenant pull ./backup -t my-tenant --profile production --env --records\nPulled 58 documents from tenant my-tenant to ./backup\n",
4499
- "$ xano tenant pull ./my-tenant -t my-tenant --draft\nPulled 42 documents from tenant my-tenant to ./my-tenant\n"
4512
+ "$ 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",
4513
+ "$ xano workspace delete 123 --force\nDeleted workspace 123\n",
4514
+ "$ xano workspace delete 123 -f -o json\n{\n \"deleted\": true,\n \"workspace_id\": 123\n}\n"
4500
4515
  ],
4501
4516
  "flags": {
4502
4517
  "profile": {
@@ -4518,49 +4533,32 @@
4518
4533
  "allowNo": false,
4519
4534
  "type": "boolean"
4520
4535
  },
4521
- "draft": {
4522
- "description": "Include draft versions",
4523
- "name": "draft",
4524
- "required": false,
4525
- "allowNo": false,
4526
- "type": "boolean"
4527
- },
4528
- "env": {
4529
- "description": "Include environment variables",
4530
- "name": "env",
4531
- "required": false,
4532
- "allowNo": false,
4533
- "type": "boolean"
4534
- },
4535
- "records": {
4536
- "description": "Include records",
4537
- "name": "records",
4536
+ "force": {
4537
+ "char": "f",
4538
+ "description": "Skip confirmation prompt",
4539
+ "name": "force",
4538
4540
  "required": false,
4539
4541
  "allowNo": false,
4540
4542
  "type": "boolean"
4541
4543
  },
4542
- "tenant": {
4543
- "char": "t",
4544
- "description": "Tenant name to pull from",
4545
- "name": "tenant",
4546
- "required": true,
4547
- "hasDynamicHelp": false,
4548
- "multiple": false,
4549
- "type": "option"
4550
- },
4551
- "workspace": {
4552
- "char": "w",
4553
- "description": "Workspace ID (optional if set in profile)",
4554
- "name": "workspace",
4544
+ "output": {
4545
+ "char": "o",
4546
+ "description": "Output format",
4547
+ "name": "output",
4555
4548
  "required": false,
4549
+ "default": "summary",
4556
4550
  "hasDynamicHelp": false,
4557
4551
  "multiple": false,
4552
+ "options": [
4553
+ "summary",
4554
+ "json"
4555
+ ],
4558
4556
  "type": "option"
4559
4557
  }
4560
4558
  },
4561
4559
  "hasDynamicHelp": false,
4562
4560
  "hiddenAliases": [],
4563
- "id": "tenant:pull",
4561
+ "id": "workspace:delete",
4564
4562
  "pluginAlias": "@xano/cli",
4565
4563
  "pluginName": "@xano/cli",
4566
4564
  "pluginType": "core",
@@ -4570,28 +4568,31 @@
4570
4568
  "relativePath": [
4571
4569
  "dist",
4572
4570
  "commands",
4573
- "tenant",
4574
- "pull",
4571
+ "workspace",
4572
+ "delete",
4575
4573
  "index.js"
4576
4574
  ]
4577
4575
  },
4578
- "tenant:push": {
4576
+ "workspace:push": {
4579
4577
  "aliases": [],
4580
4578
  "args": {
4581
4579
  "directory": {
4582
- "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
4580
+ "description": "Directory containing documents to push (as produced by workspace pull)",
4583
4581
  "name": "directory",
4584
4582
  "required": true
4585
4583
  }
4586
4584
  },
4587
- "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
4585
+ "description": "Push local documents to a workspace via the Xano Metadata API multidoc endpoint",
4588
4586
  "examples": [
4589
- "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
4590
- "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
4591
- "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
4592
- "$ xano tenant push ./my-workspace -t my-tenant --no-records\nPush schema only, skip importing table records\n",
4593
- "$ xano tenant push ./my-workspace -t my-tenant --no-env\nPush without overwriting environment variables\n",
4594
- "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
4587
+ "$ xano workspace push ./my-workspace\nPushed 42 documents from ./my-workspace\n",
4588
+ "$ xano workspace push ./output -w 40\nPushed 15 documents from ./output\n",
4589
+ "$ xano workspace push ./backup --profile production\nPushed 58 documents from ./backup\n",
4590
+ "$ xano workspace push ./my-workspace -b dev\nPushed 42 documents from ./my-workspace\n",
4591
+ "$ xano workspace push ./my-workspace --no-records\nPush schema only, skip importing table records\n",
4592
+ "$ xano workspace push ./my-workspace --no-env\nPush without overwriting environment variables\n",
4593
+ "$ xano workspace push ./my-workspace --truncate\nTruncate all table records before importing\n",
4594
+ "$ xano workspace push ./my-workspace --truncate --no-records\nTruncate all table records without importing new ones\n",
4595
+ "$ xano workspace push ./my-workspace --no-records --no-env\nPush schema only, skip records and environment variables\n"
4595
4596
  ],
4596
4597
  "flags": {
4597
4598
  "profile": {
@@ -4613,6 +4614,15 @@
4613
4614
  "allowNo": false,
4614
4615
  "type": "boolean"
4615
4616
  },
4617
+ "branch": {
4618
+ "char": "b",
4619
+ "description": "Branch name (optional if set in profile, defaults to live)",
4620
+ "name": "branch",
4621
+ "required": false,
4622
+ "hasDynamicHelp": false,
4623
+ "multiple": false,
4624
+ "type": "option"
4625
+ },
4616
4626
  "env": {
4617
4627
  "description": "Include environment variables in import (default: true, use --no-env to exclude)",
4618
4628
  "name": "env",
@@ -4627,14 +4637,12 @@
4627
4637
  "allowNo": true,
4628
4638
  "type": "boolean"
4629
4639
  },
4630
- "tenant": {
4631
- "char": "t",
4632
- "description": "Tenant name to push to",
4633
- "name": "tenant",
4634
- "required": true,
4635
- "hasDynamicHelp": false,
4636
- "multiple": false,
4637
- "type": "option"
4640
+ "sync-guids": {
4641
+ "description": "Write server-assigned GUIDs back to local files (use --no-sync-guids to skip)",
4642
+ "name": "sync-guids",
4643
+ "required": false,
4644
+ "allowNo": true,
4645
+ "type": "boolean"
4638
4646
  },
4639
4647
  "truncate": {
4640
4648
  "description": "Truncate all table records before importing",
@@ -4655,7 +4663,7 @@
4655
4663
  },
4656
4664
  "hasDynamicHelp": false,
4657
4665
  "hiddenAliases": [],
4658
- "id": "tenant:push",
4666
+ "id": "workspace:push",
4659
4667
  "pluginAlias": "@xano/cli",
4660
4668
  "pluginName": "@xano/cli",
4661
4669
  "pluginType": "core",
@@ -4665,7 +4673,7 @@
4665
4673
  "relativePath": [
4666
4674
  "dist",
4667
4675
  "commands",
4668
- "tenant",
4676
+ "workspace",
4669
4677
  "push",
4670
4678
  "index.js"
4671
4679
  ]
@@ -5039,20 +5047,20 @@
5039
5047
  "index.js"
5040
5048
  ]
5041
5049
  },
5042
- "tenant:backup:delete": {
5050
+ "tenant:backup:export": {
5043
5051
  "aliases": [],
5044
5052
  "args": {
5045
5053
  "tenant_name": {
5046
- "description": "Tenant name that owns the backup",
5054
+ "description": "Tenant name to export backup from",
5047
5055
  "name": "tenant_name",
5048
5056
  "required": true
5049
5057
  }
5050
5058
  },
5051
- "description": "Delete a tenant backup permanently. This action cannot be undone.",
5059
+ "description": "Export (download) a tenant backup to a local file",
5052
5060
  "examples": [
5053
- "$ 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",
5054
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5055
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
5061
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
5062
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
5063
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5056
5064
  ],
5057
5065
  "flags": {
5058
5066
  "profile": {
@@ -5075,20 +5083,115 @@
5075
5083
  "type": "boolean"
5076
5084
  },
5077
5085
  "backup_id": {
5078
- "description": "Backup ID to delete",
5086
+ "description": "Backup ID to export",
5079
5087
  "name": "backup_id",
5080
5088
  "required": true,
5081
5089
  "hasDynamicHelp": false,
5082
5090
  "multiple": false,
5083
5091
  "type": "option"
5084
5092
  },
5085
- "force": {
5093
+ "format": {
5094
+ "char": "o",
5095
+ "description": "Output format",
5096
+ "name": "format",
5097
+ "required": false,
5098
+ "default": "summary",
5099
+ "hasDynamicHelp": false,
5100
+ "multiple": false,
5101
+ "options": [
5102
+ "summary",
5103
+ "json"
5104
+ ],
5105
+ "type": "option"
5106
+ },
5107
+ "output": {
5108
+ "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5109
+ "name": "output",
5110
+ "required": false,
5111
+ "hasDynamicHelp": false,
5112
+ "multiple": false,
5113
+ "type": "option"
5114
+ },
5115
+ "workspace": {
5116
+ "char": "w",
5117
+ "description": "Workspace ID (uses profile workspace if not provided)",
5118
+ "name": "workspace",
5119
+ "required": false,
5120
+ "hasDynamicHelp": false,
5121
+ "multiple": false,
5122
+ "type": "option"
5123
+ }
5124
+ },
5125
+ "hasDynamicHelp": false,
5126
+ "hiddenAliases": [],
5127
+ "id": "tenant:backup:export",
5128
+ "pluginAlias": "@xano/cli",
5129
+ "pluginName": "@xano/cli",
5130
+ "pluginType": "core",
5131
+ "strict": true,
5132
+ "enableJsonFlag": false,
5133
+ "isESM": true,
5134
+ "relativePath": [
5135
+ "dist",
5136
+ "commands",
5137
+ "tenant",
5138
+ "backup",
5139
+ "export",
5140
+ "index.js"
5141
+ ]
5142
+ },
5143
+ "tenant:backup:import": {
5144
+ "aliases": [],
5145
+ "args": {
5146
+ "tenant_name": {
5147
+ "description": "Tenant name to import backup into",
5148
+ "name": "tenant_name",
5149
+ "required": true
5150
+ }
5151
+ },
5152
+ "description": "Import a backup file into a tenant",
5153
+ "examples": [
5154
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5155
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5156
+ ],
5157
+ "flags": {
5158
+ "profile": {
5159
+ "char": "p",
5160
+ "description": "Profile to use (uses default profile if not specified)",
5161
+ "env": "XANO_PROFILE",
5162
+ "name": "profile",
5163
+ "required": false,
5164
+ "hasDynamicHelp": false,
5165
+ "multiple": false,
5166
+ "type": "option"
5167
+ },
5168
+ "verbose": {
5169
+ "char": "v",
5170
+ "description": "Show detailed request/response information",
5171
+ "env": "XANO_VERBOSE",
5172
+ "name": "verbose",
5173
+ "required": false,
5174
+ "allowNo": false,
5175
+ "type": "boolean"
5176
+ },
5177
+ "description": {
5178
+ "char": "d",
5179
+ "description": "Backup description",
5180
+ "name": "description",
5181
+ "required": false,
5182
+ "default": "",
5183
+ "hasDynamicHelp": false,
5184
+ "multiple": false,
5185
+ "type": "option"
5186
+ },
5187
+ "file": {
5086
5188
  "char": "f",
5087
- "description": "Skip confirmation prompt",
5088
- "name": "force",
5089
- "required": false,
5090
- "allowNo": false,
5091
- "type": "boolean"
5189
+ "description": "Path to the backup file (.tar.gz)",
5190
+ "name": "file",
5191
+ "required": true,
5192
+ "hasDynamicHelp": false,
5193
+ "multiple": false,
5194
+ "type": "option"
5092
5195
  },
5093
5196
  "output": {
5094
5197
  "char": "o",
@@ -5116,7 +5219,7 @@
5116
5219
  },
5117
5220
  "hasDynamicHelp": false,
5118
5221
  "hiddenAliases": [],
5119
- "id": "tenant:backup:delete",
5222
+ "id": "tenant:backup:import",
5120
5223
  "pluginAlias": "@xano/cli",
5121
5224
  "pluginName": "@xano/cli",
5122
5225
  "pluginType": "core",
@@ -5128,24 +5231,24 @@
5128
5231
  "commands",
5129
5232
  "tenant",
5130
5233
  "backup",
5131
- "delete",
5234
+ "import",
5132
5235
  "index.js"
5133
5236
  ]
5134
5237
  },
5135
- "tenant:backup:export": {
5238
+ "tenant:backup:delete": {
5136
5239
  "aliases": [],
5137
5240
  "args": {
5138
5241
  "tenant_name": {
5139
- "description": "Tenant name to export backup from",
5242
+ "description": "Tenant name that owns the backup",
5140
5243
  "name": "tenant_name",
5141
5244
  "required": true
5142
5245
  }
5143
5246
  },
5144
- "description": "Export (download) a tenant backup to a local file",
5247
+ "description": "Delete a tenant backup permanently. This action cannot be undone.",
5145
5248
  "examples": [
5146
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
5147
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
5148
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5249
+ "$ 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",
5250
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5251
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
5149
5252
  ],
5150
5253
  "flags": {
5151
5254
  "profile": {
@@ -5168,17 +5271,25 @@
5168
5271
  "type": "boolean"
5169
5272
  },
5170
5273
  "backup_id": {
5171
- "description": "Backup ID to export",
5274
+ "description": "Backup ID to delete",
5172
5275
  "name": "backup_id",
5173
5276
  "required": true,
5174
5277
  "hasDynamicHelp": false,
5175
5278
  "multiple": false,
5176
5279
  "type": "option"
5177
5280
  },
5178
- "format": {
5281
+ "force": {
5282
+ "char": "f",
5283
+ "description": "Skip confirmation prompt",
5284
+ "name": "force",
5285
+ "required": false,
5286
+ "allowNo": false,
5287
+ "type": "boolean"
5288
+ },
5289
+ "output": {
5179
5290
  "char": "o",
5180
5291
  "description": "Output format",
5181
- "name": "format",
5292
+ "name": "output",
5182
5293
  "required": false,
5183
5294
  "default": "summary",
5184
5295
  "hasDynamicHelp": false,
@@ -5189,14 +5300,6 @@
5189
5300
  ],
5190
5301
  "type": "option"
5191
5302
  },
5192
- "output": {
5193
- "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5194
- "name": "output",
5195
- "required": false,
5196
- "hasDynamicHelp": false,
5197
- "multiple": false,
5198
- "type": "option"
5199
- },
5200
5303
  "workspace": {
5201
5304
  "char": "w",
5202
5305
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -5209,7 +5312,7 @@
5209
5312
  },
5210
5313
  "hasDynamicHelp": false,
5211
5314
  "hiddenAliases": [],
5212
- "id": "tenant:backup:export",
5315
+ "id": "tenant:backup:delete",
5213
5316
  "pluginAlias": "@xano/cli",
5214
5317
  "pluginName": "@xano/cli",
5215
5318
  "pluginType": "core",
@@ -5221,7 +5324,7 @@
5221
5324
  "commands",
5222
5325
  "tenant",
5223
5326
  "backup",
5224
- "export",
5327
+ "delete",
5225
5328
  "index.js"
5226
5329
  ]
5227
5330
  },
@@ -5524,20 +5627,19 @@
5524
5627
  "index.js"
5525
5628
  ]
5526
5629
  },
5527
- "tenant:cluster:delete": {
5630
+ "tenant:cluster:edit": {
5528
5631
  "aliases": [],
5529
5632
  "args": {
5530
5633
  "cluster_id": {
5531
- "description": "Cluster ID to delete",
5634
+ "description": "Cluster ID to edit",
5532
5635
  "name": "cluster_id",
5533
5636
  "required": true
5534
5637
  }
5535
5638
  },
5536
- "description": "Delete a tenant cluster. This action cannot be undone.",
5639
+ "description": "Update an existing tenant cluster",
5537
5640
  "examples": [
5538
- "$ 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",
5539
- "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5540
- "$ xano tenant cluster delete 3 -f -o json"
5641
+ "$ xano tenant cluster edit 1 --name \"us-east-1-updated\" --description \"Updated cluster\" --domain \"us-east.xano.io\" --type standard\nUpdated tenant cluster: us-east-1-updated (standard) - ID: 1\n",
5642
+ "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5541
5643
  ],
5542
5644
  "flags": {
5543
5645
  "profile": {
@@ -5559,13 +5661,31 @@
5559
5661
  "allowNo": false,
5560
5662
  "type": "boolean"
5561
5663
  },
5562
- "force": {
5563
- "char": "f",
5564
- "description": "Skip confirmation prompt",
5565
- "name": "force",
5566
- "required": false,
5567
- "allowNo": false,
5568
- "type": "boolean"
5664
+ "description": {
5665
+ "char": "d",
5666
+ "description": "Cluster description",
5667
+ "name": "description",
5668
+ "required": true,
5669
+ "hasDynamicHelp": false,
5670
+ "multiple": false,
5671
+ "type": "option"
5672
+ },
5673
+ "domain": {
5674
+ "description": "Custom domain for the cluster",
5675
+ "name": "domain",
5676
+ "required": true,
5677
+ "hasDynamicHelp": false,
5678
+ "multiple": false,
5679
+ "type": "option"
5680
+ },
5681
+ "name": {
5682
+ "char": "n",
5683
+ "description": "Cluster name",
5684
+ "name": "name",
5685
+ "required": true,
5686
+ "hasDynamicHelp": false,
5687
+ "multiple": false,
5688
+ "type": "option"
5569
5689
  },
5570
5690
  "output": {
5571
5691
  "char": "o",
@@ -5580,11 +5700,23 @@
5580
5700
  "json"
5581
5701
  ],
5582
5702
  "type": "option"
5703
+ },
5704
+ "type": {
5705
+ "description": "Cluster type",
5706
+ "name": "type",
5707
+ "required": true,
5708
+ "hasDynamicHelp": false,
5709
+ "multiple": false,
5710
+ "options": [
5711
+ "standard",
5712
+ "run"
5713
+ ],
5714
+ "type": "option"
5583
5715
  }
5584
5716
  },
5585
5717
  "hasDynamicHelp": false,
5586
5718
  "hiddenAliases": [],
5587
- "id": "tenant:cluster:delete",
5719
+ "id": "tenant:cluster:edit",
5588
5720
  "pluginAlias": "@xano/cli",
5589
5721
  "pluginName": "@xano/cli",
5590
5722
  "pluginType": "core",
@@ -5596,23 +5728,23 @@
5596
5728
  "commands",
5597
5729
  "tenant",
5598
5730
  "cluster",
5599
- "delete",
5731
+ "edit",
5600
5732
  "index.js"
5601
5733
  ]
5602
5734
  },
5603
- "tenant:cluster:edit": {
5735
+ "tenant:cluster:get": {
5604
5736
  "aliases": [],
5605
5737
  "args": {
5606
5738
  "cluster_id": {
5607
- "description": "Cluster ID to edit",
5739
+ "description": "Cluster ID to retrieve",
5608
5740
  "name": "cluster_id",
5609
5741
  "required": true
5610
5742
  }
5611
5743
  },
5612
- "description": "Update an existing tenant cluster",
5744
+ "description": "Get details of a specific tenant cluster",
5613
5745
  "examples": [
5614
- "$ xano tenant cluster edit 1 --name \"us-east-1-updated\" --description \"Updated cluster\" --domain \"us-east.xano.io\" --type standard\nUpdated tenant cluster: us-east-1-updated (standard) - ID: 1\n",
5615
- "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5746
+ "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5747
+ "$ xano tenant cluster get 1 -o json"
5616
5748
  ],
5617
5749
  "flags": {
5618
5750
  "profile": {
@@ -5634,32 +5766,6 @@
5634
5766
  "allowNo": false,
5635
5767
  "type": "boolean"
5636
5768
  },
5637
- "description": {
5638
- "char": "d",
5639
- "description": "Cluster description",
5640
- "name": "description",
5641
- "required": true,
5642
- "hasDynamicHelp": false,
5643
- "multiple": false,
5644
- "type": "option"
5645
- },
5646
- "domain": {
5647
- "description": "Custom domain for the cluster",
5648
- "name": "domain",
5649
- "required": true,
5650
- "hasDynamicHelp": false,
5651
- "multiple": false,
5652
- "type": "option"
5653
- },
5654
- "name": {
5655
- "char": "n",
5656
- "description": "Cluster name",
5657
- "name": "name",
5658
- "required": true,
5659
- "hasDynamicHelp": false,
5660
- "multiple": false,
5661
- "type": "option"
5662
- },
5663
5769
  "output": {
5664
5770
  "char": "o",
5665
5771
  "description": "Output format",
@@ -5673,23 +5779,11 @@
5673
5779
  "json"
5674
5780
  ],
5675
5781
  "type": "option"
5676
- },
5677
- "type": {
5678
- "description": "Cluster type",
5679
- "name": "type",
5680
- "required": true,
5681
- "hasDynamicHelp": false,
5682
- "multiple": false,
5683
- "options": [
5684
- "standard",
5685
- "run"
5686
- ],
5687
- "type": "option"
5688
5782
  }
5689
5783
  },
5690
5784
  "hasDynamicHelp": false,
5691
5785
  "hiddenAliases": [],
5692
- "id": "tenant:cluster:edit",
5786
+ "id": "tenant:cluster:get",
5693
5787
  "pluginAlias": "@xano/cli",
5694
5788
  "pluginName": "@xano/cli",
5695
5789
  "pluginType": "core",
@@ -5701,23 +5795,17 @@
5701
5795
  "commands",
5702
5796
  "tenant",
5703
5797
  "cluster",
5704
- "edit",
5798
+ "get",
5705
5799
  "index.js"
5706
5800
  ]
5707
5801
  },
5708
- "tenant:cluster:get": {
5802
+ "tenant:cluster:list": {
5709
5803
  "aliases": [],
5710
- "args": {
5711
- "cluster_id": {
5712
- "description": "Cluster ID to retrieve",
5713
- "name": "cluster_id",
5714
- "required": true
5715
- }
5716
- },
5717
- "description": "Get details of a specific tenant cluster",
5804
+ "args": {},
5805
+ "description": "List all tenant clusters",
5718
5806
  "examples": [
5719
- "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5720
- "$ xano tenant cluster get 1 -o json"
5807
+ "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
5808
+ "$ xano tenant cluster list --output json"
5721
5809
  ],
5722
5810
  "flags": {
5723
5811
  "profile": {
@@ -5756,7 +5844,7 @@
5756
5844
  },
5757
5845
  "hasDynamicHelp": false,
5758
5846
  "hiddenAliases": [],
5759
- "id": "tenant:cluster:get",
5847
+ "id": "tenant:cluster:list",
5760
5848
  "pluginAlias": "@xano/cli",
5761
5849
  "pluginName": "@xano/cli",
5762
5850
  "pluginType": "core",
@@ -5768,23 +5856,24 @@
5768
5856
  "commands",
5769
5857
  "tenant",
5770
5858
  "cluster",
5771
- "get",
5859
+ "list",
5772
5860
  "index.js"
5773
5861
  ]
5774
5862
  },
5775
- "tenant:backup:import": {
5863
+ "tenant:env:delete": {
5776
5864
  "aliases": [],
5777
5865
  "args": {
5778
5866
  "tenant_name": {
5779
- "description": "Tenant name to import backup into",
5867
+ "description": "Tenant name",
5780
5868
  "name": "tenant_name",
5781
5869
  "required": true
5782
5870
  }
5783
5871
  },
5784
- "description": "Import a backup file into a tenant",
5872
+ "description": "Delete an environment variable from a tenant",
5785
5873
  "examples": [
5786
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5787
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5874
+ "$ 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",
5875
+ "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
5876
+ "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
5788
5877
  ],
5789
5878
  "flags": {
5790
5879
  "profile": {
@@ -5806,20 +5895,18 @@
5806
5895
  "allowNo": false,
5807
5896
  "type": "boolean"
5808
5897
  },
5809
- "description": {
5810
- "char": "d",
5811
- "description": "Backup description",
5812
- "name": "description",
5898
+ "force": {
5899
+ "char": "f",
5900
+ "description": "Skip confirmation prompt",
5901
+ "name": "force",
5813
5902
  "required": false,
5814
- "default": "",
5815
- "hasDynamicHelp": false,
5816
- "multiple": false,
5817
- "type": "option"
5903
+ "allowNo": false,
5904
+ "type": "boolean"
5818
5905
  },
5819
- "file": {
5820
- "char": "f",
5821
- "description": "Path to the backup file (.tar.gz)",
5822
- "name": "file",
5906
+ "name": {
5907
+ "char": "n",
5908
+ "description": "Environment variable name",
5909
+ "name": "name",
5823
5910
  "required": true,
5824
5911
  "hasDynamicHelp": false,
5825
5912
  "multiple": false,
@@ -5851,7 +5938,7 @@
5851
5938
  },
5852
5939
  "hasDynamicHelp": false,
5853
5940
  "hiddenAliases": [],
5854
- "id": "tenant:backup:import",
5941
+ "id": "tenant:env:delete",
5855
5942
  "pluginAlias": "@xano/cli",
5856
5943
  "pluginName": "@xano/cli",
5857
5944
  "pluginType": "core",
@@ -5862,12 +5949,12 @@
5862
5949
  "dist",
5863
5950
  "commands",
5864
5951
  "tenant",
5865
- "backup",
5866
- "import",
5952
+ "env",
5953
+ "delete",
5867
5954
  "index.js"
5868
5955
  ]
5869
5956
  },
5870
- "tenant:env:delete": {
5957
+ "tenant:env:get": {
5871
5958
  "aliases": [],
5872
5959
  "args": {
5873
5960
  "tenant_name": {
@@ -5876,11 +5963,10 @@
5876
5963
  "required": true
5877
5964
  }
5878
5965
  },
5879
- "description": "Delete an environment variable from a tenant",
5966
+ "description": "Get a single environment variable for a tenant",
5880
5967
  "examples": [
5881
- "$ 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",
5882
- "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
5883
- "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
5968
+ "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
5969
+ "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
5884
5970
  ],
5885
5971
  "flags": {
5886
5972
  "profile": {
@@ -5902,14 +5988,6 @@
5902
5988
  "allowNo": false,
5903
5989
  "type": "boolean"
5904
5990
  },
5905
- "force": {
5906
- "char": "f",
5907
- "description": "Skip confirmation prompt",
5908
- "name": "force",
5909
- "required": false,
5910
- "allowNo": false,
5911
- "type": "boolean"
5912
- },
5913
5991
  "name": {
5914
5992
  "char": "n",
5915
5993
  "description": "Environment variable name",
@@ -5945,7 +6023,7 @@
5945
6023
  },
5946
6024
  "hasDynamicHelp": false,
5947
6025
  "hiddenAliases": [],
5948
- "id": "tenant:env:delete",
6026
+ "id": "tenant:env:get",
5949
6027
  "pluginAlias": "@xano/cli",
5950
6028
  "pluginName": "@xano/cli",
5951
6029
  "pluginType": "core",
@@ -5957,17 +6035,25 @@
5957
6035
  "commands",
5958
6036
  "tenant",
5959
6037
  "env",
5960
- "delete",
6038
+ "get",
5961
6039
  "index.js"
5962
6040
  ]
5963
6041
  },
5964
- "tenant:cluster:list": {
6042
+ "tenant:env:get_all": {
5965
6043
  "aliases": [],
5966
- "args": {},
5967
- "description": "List all tenant clusters",
6044
+ "args": {
6045
+ "tenant_name": {
6046
+ "description": "Tenant name",
6047
+ "name": "tenant_name",
6048
+ "required": true
6049
+ }
6050
+ },
6051
+ "description": "Get all environment variables for a tenant and save to a YAML file",
5968
6052
  "examples": [
5969
- "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
5970
- "$ xano tenant cluster list --output json"
6053
+ "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
6054
+ "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
6055
+ "$ xano tenant env get_all my-tenant --view",
6056
+ "$ xano tenant env get_all my-tenant -o json"
5971
6057
  ],
5972
6058
  "flags": {
5973
6059
  "profile": {
@@ -5989,6 +6075,15 @@
5989
6075
  "allowNo": false,
5990
6076
  "type": "boolean"
5991
6077
  },
6078
+ "file": {
6079
+ "char": "f",
6080
+ "description": "Output file path (default: env_<tenant_name>.yaml)",
6081
+ "name": "file",
6082
+ "required": false,
6083
+ "hasDynamicHelp": false,
6084
+ "multiple": false,
6085
+ "type": "option"
6086
+ },
5992
6087
  "output": {
5993
6088
  "char": "o",
5994
6089
  "description": "Output format",
@@ -6002,11 +6097,27 @@
6002
6097
  "json"
6003
6098
  ],
6004
6099
  "type": "option"
6100
+ },
6101
+ "view": {
6102
+ "description": "Print environment variables to stdout instead of saving to file",
6103
+ "name": "view",
6104
+ "required": false,
6105
+ "allowNo": false,
6106
+ "type": "boolean"
6107
+ },
6108
+ "workspace": {
6109
+ "char": "w",
6110
+ "description": "Workspace ID (uses profile workspace if not provided)",
6111
+ "name": "workspace",
6112
+ "required": false,
6113
+ "hasDynamicHelp": false,
6114
+ "multiple": false,
6115
+ "type": "option"
6005
6116
  }
6006
6117
  },
6007
6118
  "hasDynamicHelp": false,
6008
6119
  "hiddenAliases": [],
6009
- "id": "tenant:cluster:list",
6120
+ "id": "tenant:env:get_all",
6010
6121
  "pluginAlias": "@xano/cli",
6011
6122
  "pluginName": "@xano/cli",
6012
6123
  "pluginType": "core",
@@ -6017,24 +6128,25 @@
6017
6128
  "dist",
6018
6129
  "commands",
6019
6130
  "tenant",
6020
- "cluster",
6021
- "list",
6131
+ "env",
6132
+ "get_all",
6022
6133
  "index.js"
6023
6134
  ]
6024
6135
  },
6025
- "tenant:env:list": {
6136
+ "tenant:cluster:delete": {
6026
6137
  "aliases": [],
6027
6138
  "args": {
6028
- "tenant_name": {
6029
- "description": "Tenant name",
6030
- "name": "tenant_name",
6139
+ "cluster_id": {
6140
+ "description": "Cluster ID to delete",
6141
+ "name": "cluster_id",
6031
6142
  "required": true
6032
6143
  }
6033
6144
  },
6034
- "description": "List environment variable keys for a tenant",
6145
+ "description": "Delete a tenant cluster. This action cannot be undone.",
6035
6146
  "examples": [
6036
- "$ xano tenant env list my-tenant\nEnvironment variables for tenant my-tenant:\n - DATABASE_URL\n - API_KEY\n - SECRET_TOKEN\n",
6037
- "$ xano tenant env list my-tenant -w 5 -o json"
6147
+ "$ 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",
6148
+ "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
6149
+ "$ xano tenant cluster delete 3 -f -o json"
6038
6150
  ],
6039
6151
  "flags": {
6040
6152
  "profile": {
@@ -6056,6 +6168,14 @@
6056
6168
  "allowNo": false,
6057
6169
  "type": "boolean"
6058
6170
  },
6171
+ "force": {
6172
+ "char": "f",
6173
+ "description": "Skip confirmation prompt",
6174
+ "name": "force",
6175
+ "required": false,
6176
+ "allowNo": false,
6177
+ "type": "boolean"
6178
+ },
6059
6179
  "output": {
6060
6180
  "char": "o",
6061
6181
  "description": "Output format",
@@ -6069,20 +6189,11 @@
6069
6189
  "json"
6070
6190
  ],
6071
6191
  "type": "option"
6072
- },
6073
- "workspace": {
6074
- "char": "w",
6075
- "description": "Workspace ID (uses profile workspace if not provided)",
6076
- "name": "workspace",
6077
- "required": false,
6078
- "hasDynamicHelp": false,
6079
- "multiple": false,
6080
- "type": "option"
6081
6192
  }
6082
6193
  },
6083
6194
  "hasDynamicHelp": false,
6084
6195
  "hiddenAliases": [],
6085
- "id": "tenant:env:list",
6196
+ "id": "tenant:cluster:delete",
6086
6197
  "pluginAlias": "@xano/cli",
6087
6198
  "pluginName": "@xano/cli",
6088
6199
  "pluginType": "core",
@@ -6093,12 +6204,12 @@
6093
6204
  "dist",
6094
6205
  "commands",
6095
6206
  "tenant",
6096
- "env",
6097
- "list",
6207
+ "cluster",
6208
+ "delete",
6098
6209
  "index.js"
6099
6210
  ]
6100
6211
  },
6101
- "tenant:env:get": {
6212
+ "tenant:env:list": {
6102
6213
  "aliases": [],
6103
6214
  "args": {
6104
6215
  "tenant_name": {
@@ -6107,10 +6218,10 @@
6107
6218
  "required": true
6108
6219
  }
6109
6220
  },
6110
- "description": "Get a single environment variable for a tenant",
6221
+ "description": "List environment variable keys for a tenant",
6111
6222
  "examples": [
6112
- "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
6113
- "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6223
+ "$ xano tenant env list my-tenant\nEnvironment variables for tenant my-tenant:\n - DATABASE_URL\n - API_KEY\n - SECRET_TOKEN\n",
6224
+ "$ xano tenant env list my-tenant -w 5 -o json"
6114
6225
  ],
6115
6226
  "flags": {
6116
6227
  "profile": {
@@ -6132,15 +6243,6 @@
6132
6243
  "allowNo": false,
6133
6244
  "type": "boolean"
6134
6245
  },
6135
- "name": {
6136
- "char": "n",
6137
- "description": "Environment variable name",
6138
- "name": "name",
6139
- "required": true,
6140
- "hasDynamicHelp": false,
6141
- "multiple": false,
6142
- "type": "option"
6143
- },
6144
6246
  "output": {
6145
6247
  "char": "o",
6146
6248
  "description": "Output format",
@@ -6167,7 +6269,7 @@
6167
6269
  },
6168
6270
  "hasDynamicHelp": false,
6169
6271
  "hiddenAliases": [],
6170
- "id": "tenant:env:get",
6272
+ "id": "tenant:env:list",
6171
6273
  "pluginAlias": "@xano/cli",
6172
6274
  "pluginName": "@xano/cli",
6173
6275
  "pluginType": "core",
@@ -6179,11 +6281,11 @@
6179
6281
  "commands",
6180
6282
  "tenant",
6181
6283
  "env",
6182
- "get",
6284
+ "list",
6183
6285
  "index.js"
6184
6286
  ]
6185
6287
  },
6186
- "tenant:env:get_all": {
6288
+ "tenant:env:set_all": {
6187
6289
  "aliases": [],
6188
6290
  "args": {
6189
6291
  "tenant_name": {
@@ -6192,12 +6294,11 @@
6192
6294
  "required": true
6193
6295
  }
6194
6296
  },
6195
- "description": "Get all environment variables for a tenant and save to a YAML file",
6297
+ "description": "Set all environment variables for a tenant from a YAML file (replaces all existing)",
6196
6298
  "examples": [
6197
- "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
6198
- "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
6199
- "$ xano tenant env get_all my-tenant --view",
6200
- "$ xano tenant env get_all my-tenant -o json"
6299
+ "$ xano tenant env set_all my-tenant\nReads from env_my-tenant.yaml\n",
6300
+ "$ xano tenant env set_all my-tenant --file ./my-env.yaml",
6301
+ "$ xano tenant env set_all my-tenant -o json"
6201
6302
  ],
6202
6303
  "flags": {
6203
6304
  "profile": {
@@ -6219,9 +6320,16 @@
6219
6320
  "allowNo": false,
6220
6321
  "type": "boolean"
6221
6322
  },
6323
+ "clean": {
6324
+ "description": "Remove the source file after successful upload",
6325
+ "name": "clean",
6326
+ "required": false,
6327
+ "allowNo": false,
6328
+ "type": "boolean"
6329
+ },
6222
6330
  "file": {
6223
6331
  "char": "f",
6224
- "description": "Output file path (default: env_<tenant_name>.yaml)",
6332
+ "description": "Path to env file (default: env_<tenant_name>.yaml)",
6225
6333
  "name": "file",
6226
6334
  "required": false,
6227
6335
  "hasDynamicHelp": false,
@@ -6242,13 +6350,6 @@
6242
6350
  ],
6243
6351
  "type": "option"
6244
6352
  },
6245
- "view": {
6246
- "description": "Print environment variables to stdout instead of saving to file",
6247
- "name": "view",
6248
- "required": false,
6249
- "allowNo": false,
6250
- "type": "boolean"
6251
- },
6252
6353
  "workspace": {
6253
6354
  "char": "w",
6254
6355
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6261,7 +6362,7 @@
6261
6362
  },
6262
6363
  "hasDynamicHelp": false,
6263
6364
  "hiddenAliases": [],
6264
- "id": "tenant:env:get_all",
6365
+ "id": "tenant:env:set_all",
6265
6366
  "pluginAlias": "@xano/cli",
6266
6367
  "pluginName": "@xano/cli",
6267
6368
  "pluginType": "core",
@@ -6273,7 +6374,7 @@
6273
6374
  "commands",
6274
6375
  "tenant",
6275
6376
  "env",
6276
- "get_all",
6377
+ "set_all",
6277
6378
  "index.js"
6278
6379
  ]
6279
6380
  },
@@ -6370,7 +6471,7 @@
6370
6471
  "index.js"
6371
6472
  ]
6372
6473
  },
6373
- "tenant:env:set_all": {
6474
+ "tenant:license:get": {
6374
6475
  "aliases": [],
6375
6476
  "args": {
6376
6477
  "tenant_name": {
@@ -6379,11 +6480,12 @@
6379
6480
  "required": true
6380
6481
  }
6381
6482
  },
6382
- "description": "Set all environment variables for a tenant from a YAML file (replaces all existing)",
6483
+ "description": "Get the license for a tenant",
6383
6484
  "examples": [
6384
- "$ xano tenant env set_all my-tenant\nReads from env_my-tenant.yaml\n",
6385
- "$ xano tenant env set_all my-tenant --file ./my-env.yaml",
6386
- "$ xano tenant env set_all my-tenant -o json"
6485
+ "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6486
+ "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6487
+ "$ xano tenant license get my-tenant --view",
6488
+ "$ xano tenant license get my-tenant -o json"
6387
6489
  ],
6388
6490
  "flags": {
6389
6491
  "profile": {
@@ -6405,16 +6507,9 @@
6405
6507
  "allowNo": false,
6406
6508
  "type": "boolean"
6407
6509
  },
6408
- "clean": {
6409
- "description": "Remove the source file after successful upload",
6410
- "name": "clean",
6411
- "required": false,
6412
- "allowNo": false,
6413
- "type": "boolean"
6414
- },
6415
6510
  "file": {
6416
6511
  "char": "f",
6417
- "description": "Path to env file (default: env_<tenant_name>.yaml)",
6512
+ "description": "Output file path (default: license_<tenant_name>.yaml)",
6418
6513
  "name": "file",
6419
6514
  "required": false,
6420
6515
  "hasDynamicHelp": false,
@@ -6435,6 +6530,13 @@
6435
6530
  ],
6436
6531
  "type": "option"
6437
6532
  },
6533
+ "view": {
6534
+ "description": "Print license to stdout instead of saving to file",
6535
+ "name": "view",
6536
+ "required": false,
6537
+ "allowNo": false,
6538
+ "type": "boolean"
6539
+ },
6438
6540
  "workspace": {
6439
6541
  "char": "w",
6440
6542
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6447,7 +6549,7 @@
6447
6549
  },
6448
6550
  "hasDynamicHelp": false,
6449
6551
  "hiddenAliases": [],
6450
- "id": "tenant:env:set_all",
6552
+ "id": "tenant:license:get",
6451
6553
  "pluginAlias": "@xano/cli",
6452
6554
  "pluginName": "@xano/cli",
6453
6555
  "pluginType": "core",
@@ -6458,8 +6560,8 @@
6458
6560
  "dist",
6459
6561
  "commands",
6460
6562
  "tenant",
6461
- "env",
6462
- "set_all",
6563
+ "license",
6564
+ "get",
6463
6565
  "index.js"
6464
6566
  ]
6465
6567
  },
@@ -6575,100 +6677,6 @@
6575
6677
  "index.js"
6576
6678
  ]
6577
6679
  },
6578
- "tenant:license:get": {
6579
- "aliases": [],
6580
- "args": {
6581
- "tenant_name": {
6582
- "description": "Tenant name",
6583
- "name": "tenant_name",
6584
- "required": true
6585
- }
6586
- },
6587
- "description": "Get the license for a tenant",
6588
- "examples": [
6589
- "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6590
- "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6591
- "$ xano tenant license get my-tenant --view",
6592
- "$ xano tenant license get my-tenant -o json"
6593
- ],
6594
- "flags": {
6595
- "profile": {
6596
- "char": "p",
6597
- "description": "Profile to use (uses default profile if not specified)",
6598
- "env": "XANO_PROFILE",
6599
- "name": "profile",
6600
- "required": false,
6601
- "hasDynamicHelp": false,
6602
- "multiple": false,
6603
- "type": "option"
6604
- },
6605
- "verbose": {
6606
- "char": "v",
6607
- "description": "Show detailed request/response information",
6608
- "env": "XANO_VERBOSE",
6609
- "name": "verbose",
6610
- "required": false,
6611
- "allowNo": false,
6612
- "type": "boolean"
6613
- },
6614
- "file": {
6615
- "char": "f",
6616
- "description": "Output file path (default: license_<tenant_name>.yaml)",
6617
- "name": "file",
6618
- "required": false,
6619
- "hasDynamicHelp": false,
6620
- "multiple": false,
6621
- "type": "option"
6622
- },
6623
- "output": {
6624
- "char": "o",
6625
- "description": "Output format",
6626
- "name": "output",
6627
- "required": false,
6628
- "default": "summary",
6629
- "hasDynamicHelp": false,
6630
- "multiple": false,
6631
- "options": [
6632
- "summary",
6633
- "json"
6634
- ],
6635
- "type": "option"
6636
- },
6637
- "view": {
6638
- "description": "Print license to stdout instead of saving to file",
6639
- "name": "view",
6640
- "required": false,
6641
- "allowNo": false,
6642
- "type": "boolean"
6643
- },
6644
- "workspace": {
6645
- "char": "w",
6646
- "description": "Workspace ID (uses profile workspace if not provided)",
6647
- "name": "workspace",
6648
- "required": false,
6649
- "hasDynamicHelp": false,
6650
- "multiple": false,
6651
- "type": "option"
6652
- }
6653
- },
6654
- "hasDynamicHelp": false,
6655
- "hiddenAliases": [],
6656
- "id": "tenant:license:get",
6657
- "pluginAlias": "@xano/cli",
6658
- "pluginName": "@xano/cli",
6659
- "pluginType": "core",
6660
- "strict": true,
6661
- "enableJsonFlag": false,
6662
- "isESM": true,
6663
- "relativePath": [
6664
- "dist",
6665
- "commands",
6666
- "tenant",
6667
- "license",
6668
- "get",
6669
- "index.js"
6670
- ]
6671
- },
6672
6680
  "tenant:cluster:license:get": {
6673
6681
  "aliases": [],
6674
6682
  "args": {
@@ -6860,5 +6868,5 @@
6860
6868
  ]
6861
6869
  }
6862
6870
  },
6863
- "version": "0.0.39"
6871
+ "version": "0.0.41"
6864
6872
  }