@xano/cli 0.0.60 → 0.0.62

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.
@@ -193,20 +193,20 @@
193
193
  "index.js"
194
194
  ]
195
195
  },
196
- "branch:delete": {
196
+ "branch:edit": {
197
197
  "aliases": [],
198
198
  "args": {
199
199
  "branch_label": {
200
- "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
200
+ "description": "Branch label to edit (cannot edit \"v1\" label)",
201
201
  "name": "branch_label",
202
202
  "required": true
203
203
  }
204
204
  },
205
- "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
205
+ "description": "Update an existing branch (cannot update \"v1\" label)",
206
206
  "examples": [
207
- "$ xano branch delete feature-old\nAre you sure you want to delete branch 'feature-old'? This action cannot be undone. (y/N) y\nDeleted branch: feature-old\n",
208
- "$ xano branch delete dev --force\nDeleted branch: dev\n",
209
- "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
207
+ "$ xano branch edit dev --label development\nUpdated branch: development\n",
208
+ "$ xano branch edit feature-auth -l feature-authentication --color \"#ff5733\"\nUpdated branch: feature-authentication\n Color: #ff5733\n",
209
+ "$ xano branch edit staging --description \"Staging environment\" -o json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false\n}\n"
210
210
  ],
211
211
  "flags": {
212
212
  "profile": {
@@ -228,13 +228,32 @@
228
228
  "allowNo": false,
229
229
  "type": "boolean"
230
230
  },
231
- "force": {
232
- "char": "f",
233
- "description": "Skip confirmation prompt",
234
- "name": "force",
231
+ "color": {
232
+ "char": "c",
233
+ "description": "New color hex code for the branch (e.g., \"#ff5733\")",
234
+ "name": "color",
235
235
  "required": false,
236
- "allowNo": false,
237
- "type": "boolean"
236
+ "hasDynamicHelp": false,
237
+ "multiple": false,
238
+ "type": "option"
239
+ },
240
+ "description": {
241
+ "char": "d",
242
+ "description": "New description for the branch",
243
+ "name": "description",
244
+ "required": false,
245
+ "hasDynamicHelp": false,
246
+ "multiple": false,
247
+ "type": "option"
248
+ },
249
+ "label": {
250
+ "char": "l",
251
+ "description": "New label for the branch",
252
+ "name": "label",
253
+ "required": false,
254
+ "hasDynamicHelp": false,
255
+ "multiple": false,
256
+ "type": "option"
238
257
  },
239
258
  "output": {
240
259
  "char": "o",
@@ -262,7 +281,7 @@
262
281
  },
263
282
  "hasDynamicHelp": false,
264
283
  "hiddenAliases": [],
265
- "id": "branch:delete",
284
+ "id": "branch:edit",
266
285
  "pluginAlias": "@xano/cli",
267
286
  "pluginName": "@xano/cli",
268
287
  "pluginType": "core",
@@ -273,24 +292,24 @@
273
292
  "dist",
274
293
  "commands",
275
294
  "branch",
276
- "delete",
295
+ "edit",
277
296
  "index.js"
278
297
  ]
279
298
  },
280
- "branch:edit": {
299
+ "branch:list": {
281
300
  "aliases": [],
282
301
  "args": {
283
- "branch_label": {
284
- "description": "Branch label to edit (cannot edit \"v1\" label)",
285
- "name": "branch_label",
286
- "required": true
302
+ "workspace_id": {
303
+ "description": "Workspace ID (uses profile workspace if not provided)",
304
+ "name": "workspace_id",
305
+ "required": false
287
306
  }
288
307
  },
289
- "description": "Update an existing branch (cannot update \"v1\" label)",
308
+ "description": "List all branches in a workspace",
290
309
  "examples": [
291
- "$ xano branch edit dev --label development\nUpdated branch: development\n",
292
- "$ xano branch edit feature-auth -l feature-authentication --color \"#ff5733\"\nUpdated branch: feature-authentication\n Color: #ff5733\n",
293
- "$ xano branch edit staging --description \"Staging environment\" -o json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false\n}\n"
310
+ "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
311
+ "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
312
+ "$ xano branch list --output json\n[\n {\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"label\": \"v1\",\n \"backup\": false,\n \"live\": true\n }\n]\n"
294
313
  ],
295
314
  "flags": {
296
315
  "profile": {
@@ -312,33 +331,6 @@
312
331
  "allowNo": false,
313
332
  "type": "boolean"
314
333
  },
315
- "color": {
316
- "char": "c",
317
- "description": "New color hex code for the branch (e.g., \"#ff5733\")",
318
- "name": "color",
319
- "required": false,
320
- "hasDynamicHelp": false,
321
- "multiple": false,
322
- "type": "option"
323
- },
324
- "description": {
325
- "char": "d",
326
- "description": "New description for the branch",
327
- "name": "description",
328
- "required": false,
329
- "hasDynamicHelp": false,
330
- "multiple": false,
331
- "type": "option"
332
- },
333
- "label": {
334
- "char": "l",
335
- "description": "New label for the branch",
336
- "name": "label",
337
- "required": false,
338
- "hasDynamicHelp": false,
339
- "multiple": false,
340
- "type": "option"
341
- },
342
334
  "output": {
343
335
  "char": "o",
344
336
  "description": "Output format",
@@ -352,20 +344,11 @@
352
344
  "json"
353
345
  ],
354
346
  "type": "option"
355
- },
356
- "workspace": {
357
- "char": "w",
358
- "description": "Workspace ID (uses profile workspace if not provided)",
359
- "name": "workspace",
360
- "required": false,
361
- "hasDynamicHelp": false,
362
- "multiple": false,
363
- "type": "option"
364
347
  }
365
348
  },
366
349
  "hasDynamicHelp": false,
367
350
  "hiddenAliases": [],
368
- "id": "branch:edit",
351
+ "id": "branch:list",
369
352
  "pluginAlias": "@xano/cli",
370
353
  "pluginName": "@xano/cli",
371
354
  "pluginType": "core",
@@ -376,7 +359,7 @@
376
359
  "dist",
377
360
  "commands",
378
361
  "branch",
379
- "edit",
362
+ "list",
380
363
  "index.js"
381
364
  ]
382
365
  },
@@ -456,20 +439,20 @@
456
439
  "index.js"
457
440
  ]
458
441
  },
459
- "branch:list": {
442
+ "branch:delete": {
460
443
  "aliases": [],
461
444
  "args": {
462
- "workspace_id": {
463
- "description": "Workspace ID (uses profile workspace if not provided)",
464
- "name": "workspace_id",
465
- "required": false
445
+ "branch_label": {
446
+ "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
447
+ "name": "branch_label",
448
+ "required": true
466
449
  }
467
450
  },
468
- "description": "List all branches in a workspace",
451
+ "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
469
452
  "examples": [
470
- "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
471
- "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
472
- "$ xano branch list --output json\n[\n {\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"label\": \"v1\",\n \"backup\": false,\n \"live\": true\n }\n]\n"
453
+ "$ xano branch delete feature-old\nAre you sure you want to delete branch 'feature-old'? This action cannot be undone. (y/N) y\nDeleted branch: feature-old\n",
454
+ "$ xano branch delete dev --force\nDeleted branch: dev\n",
455
+ "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
473
456
  ],
474
457
  "flags": {
475
458
  "profile": {
@@ -491,6 +474,14 @@
491
474
  "allowNo": false,
492
475
  "type": "boolean"
493
476
  },
477
+ "force": {
478
+ "char": "f",
479
+ "description": "Skip confirmation prompt",
480
+ "name": "force",
481
+ "required": false,
482
+ "allowNo": false,
483
+ "type": "boolean"
484
+ },
494
485
  "output": {
495
486
  "char": "o",
496
487
  "description": "Output format",
@@ -504,11 +495,20 @@
504
495
  "json"
505
496
  ],
506
497
  "type": "option"
498
+ },
499
+ "workspace": {
500
+ "char": "w",
501
+ "description": "Workspace ID (uses profile workspace if not provided)",
502
+ "name": "workspace",
503
+ "required": false,
504
+ "hasDynamicHelp": false,
505
+ "multiple": false,
506
+ "type": "option"
507
507
  }
508
508
  },
509
509
  "hasDynamicHelp": false,
510
510
  "hiddenAliases": [],
511
- "id": "branch:list",
511
+ "id": "branch:delete",
512
512
  "pluginAlias": "@xano/cli",
513
513
  "pluginName": "@xano/cli",
514
514
  "pluginType": "core",
@@ -519,7 +519,7 @@
519
519
  "dist",
520
520
  "commands",
521
521
  "branch",
522
- "list",
522
+ "delete",
523
523
  "index.js"
524
524
  ]
525
525
  },
@@ -607,16 +607,19 @@
607
607
  "index.js"
608
608
  ]
609
609
  },
610
- "function:create": {
610
+ "platform:get": {
611
611
  "aliases": [],
612
- "args": {},
613
- "description": "Create a new function in a workspace",
612
+ "args": {
613
+ "platform_id": {
614
+ "description": "Platform ID to retrieve",
615
+ "name": "platform_id",
616
+ "required": true
617
+ }
618
+ },
619
+ "description": "Get details of a specific platform",
614
620
  "examples": [
615
- "$ xano function:create -w 40 -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
616
- "$ xano function:create -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
617
- "$ xano function:create -w 40 -f function.xs --edit\n# Opens function.xs in $EDITOR, then creates function with edited content\nFunction created successfully!\nID: 123\nName: my_function\n",
618
- "$ cat function.xs | xano function:create -w 40 --stdin\nFunction created successfully!\nID: 123\nName: my_function\n",
619
- "$ xano function:create -w 40 -f function.xs -o json\n{\n \"id\": 123,\n \"name\": \"my_function\",\n ...\n}\n"
621
+ "$ xano platform get 23629\nPlatform ID: 23629\n Created: 2025-11-28\n Helm: 0.1.356\n Images:\n backend 0.0.2985\n frontend 0.1.3427\n database 0.1.6\n node 0.1.192\n deno 0.0.212\n redis 0.1.34\n realtime 0.1.149\n standalone 0.0.2456\n playwright 0.0.992\n static 0.0.10\n static-build 0.0.4\n backend-encoded 0.0.1396\n",
622
+ "$ xano platform get 23629 -o json"
620
623
  ],
621
624
  "flags": {
622
625
  "profile": {
@@ -638,29 +641,6 @@
638
641
  "allowNo": false,
639
642
  "type": "boolean"
640
643
  },
641
- "edit": {
642
- "char": "e",
643
- "dependsOn": [
644
- "file"
645
- ],
646
- "description": "Open file in editor before creating function (requires --file)",
647
- "name": "edit",
648
- "required": false,
649
- "allowNo": false,
650
- "type": "boolean"
651
- },
652
- "file": {
653
- "char": "f",
654
- "description": "Path to file containing XanoScript code",
655
- "exclusive": [
656
- "stdin"
657
- ],
658
- "name": "file",
659
- "required": false,
660
- "hasDynamicHelp": false,
661
- "multiple": false,
662
- "type": "option"
663
- },
664
644
  "output": {
665
645
  "char": "o",
666
646
  "description": "Output format",
@@ -674,31 +654,11 @@
674
654
  "json"
675
655
  ],
676
656
  "type": "option"
677
- },
678
- "stdin": {
679
- "char": "s",
680
- "description": "Read XanoScript code from stdin",
681
- "exclusive": [
682
- "file"
683
- ],
684
- "name": "stdin",
685
- "required": false,
686
- "allowNo": false,
687
- "type": "boolean"
688
- },
689
- "workspace": {
690
- "char": "w",
691
- "description": "Workspace ID (optional if set in profile)",
692
- "name": "workspace",
693
- "required": false,
694
- "hasDynamicHelp": false,
695
- "multiple": false,
696
- "type": "option"
697
657
  }
698
658
  },
699
659
  "hasDynamicHelp": false,
700
660
  "hiddenAliases": [],
701
- "id": "function:create",
661
+ "id": "platform:get",
702
662
  "pluginAlias": "@xano/cli",
703
663
  "pluginName": "@xano/cli",
704
664
  "pluginType": "core",
@@ -708,30 +668,18 @@
708
668
  "relativePath": [
709
669
  "dist",
710
670
  "commands",
711
- "function",
712
- "create",
671
+ "platform",
672
+ "get",
713
673
  "index.js"
714
674
  ]
715
675
  },
716
- "function:edit": {
676
+ "platform:list": {
717
677
  "aliases": [],
718
- "args": {
719
- "function_id": {
720
- "description": "Function ID to edit",
721
- "name": "function_id",
722
- "required": false
723
- }
724
- },
725
- "description": "Edit a function in a workspace",
678
+ "args": {},
679
+ "description": "List all platforms",
726
680
  "examples": [
727
- "$ xano function:edit 163\n# Fetches the function code and opens it in $EDITOR for editing\nFunction updated successfully!\nID: 163\nName: my_function\n",
728
- "$ xano function:edit\n# Prompts for function, fetches the code and opens it in $EDITOR for editing\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
729
- "$ xano function:edit 163 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
730
- "$ xano function:edit 163 -w 40 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
731
- "$ xano function:edit -f function.xs\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
732
- "$ xano function:edit 163 -f function.xs --edit\n# Opens function.xs in $EDITOR, then updates function with edited content\nFunction updated successfully!\nID: 163\nName: my_function\n",
733
- "$ cat function.xs | xano function:edit 163 --stdin\nFunction updated successfully!\nID: 163\nName: my_function\n",
734
- "$ xano function:edit 163 -f function.xs -o json\n{\n \"id\": 163,\n \"name\": \"my_function\",\n ...\n}\n"
681
+ "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
682
+ "$ xano platform list --output json"
735
683
  ],
736
684
  "flags": {
737
685
  "profile": {
@@ -753,26 +701,6 @@
753
701
  "allowNo": false,
754
702
  "type": "boolean"
755
703
  },
756
- "edit": {
757
- "char": "e",
758
- "description": "Open file in editor before updating function (requires --file)",
759
- "name": "edit",
760
- "required": false,
761
- "allowNo": false,
762
- "type": "boolean"
763
- },
764
- "file": {
765
- "char": "f",
766
- "description": "Path to file containing XanoScript code",
767
- "exclusive": [
768
- "stdin"
769
- ],
770
- "name": "file",
771
- "required": false,
772
- "hasDynamicHelp": false,
773
- "multiple": false,
774
- "type": "option"
775
- },
776
704
  "output": {
777
705
  "char": "o",
778
706
  "description": "Output format",
@@ -786,8 +714,206 @@
786
714
  "json"
787
715
  ],
788
716
  "type": "option"
789
- },
790
- "publish": {
717
+ }
718
+ },
719
+ "hasDynamicHelp": false,
720
+ "hiddenAliases": [],
721
+ "id": "platform:list",
722
+ "pluginAlias": "@xano/cli",
723
+ "pluginName": "@xano/cli",
724
+ "pluginType": "core",
725
+ "strict": true,
726
+ "enableJsonFlag": false,
727
+ "isESM": true,
728
+ "relativePath": [
729
+ "dist",
730
+ "commands",
731
+ "platform",
732
+ "list",
733
+ "index.js"
734
+ ]
735
+ },
736
+ "function:create": {
737
+ "aliases": [],
738
+ "args": {},
739
+ "description": "Create a new function in a workspace",
740
+ "examples": [
741
+ "$ xano function:create -w 40 -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
742
+ "$ xano function:create -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
743
+ "$ xano function:create -w 40 -f function.xs --edit\n# Opens function.xs in $EDITOR, then creates function with edited content\nFunction created successfully!\nID: 123\nName: my_function\n",
744
+ "$ cat function.xs | xano function:create -w 40 --stdin\nFunction created successfully!\nID: 123\nName: my_function\n",
745
+ "$ xano function:create -w 40 -f function.xs -o json\n{\n \"id\": 123,\n \"name\": \"my_function\",\n ...\n}\n"
746
+ ],
747
+ "flags": {
748
+ "profile": {
749
+ "char": "p",
750
+ "description": "Profile to use (uses default profile if not specified)",
751
+ "env": "XANO_PROFILE",
752
+ "name": "profile",
753
+ "required": false,
754
+ "hasDynamicHelp": false,
755
+ "multiple": false,
756
+ "type": "option"
757
+ },
758
+ "verbose": {
759
+ "char": "v",
760
+ "description": "Show detailed request/response information",
761
+ "env": "XANO_VERBOSE",
762
+ "name": "verbose",
763
+ "required": false,
764
+ "allowNo": false,
765
+ "type": "boolean"
766
+ },
767
+ "edit": {
768
+ "char": "e",
769
+ "dependsOn": [
770
+ "file"
771
+ ],
772
+ "description": "Open file in editor before creating function (requires --file)",
773
+ "name": "edit",
774
+ "required": false,
775
+ "allowNo": false,
776
+ "type": "boolean"
777
+ },
778
+ "file": {
779
+ "char": "f",
780
+ "description": "Path to file containing XanoScript code",
781
+ "exclusive": [
782
+ "stdin"
783
+ ],
784
+ "name": "file",
785
+ "required": false,
786
+ "hasDynamicHelp": false,
787
+ "multiple": false,
788
+ "type": "option"
789
+ },
790
+ "output": {
791
+ "char": "o",
792
+ "description": "Output format",
793
+ "name": "output",
794
+ "required": false,
795
+ "default": "summary",
796
+ "hasDynamicHelp": false,
797
+ "multiple": false,
798
+ "options": [
799
+ "summary",
800
+ "json"
801
+ ],
802
+ "type": "option"
803
+ },
804
+ "stdin": {
805
+ "char": "s",
806
+ "description": "Read XanoScript code from stdin",
807
+ "exclusive": [
808
+ "file"
809
+ ],
810
+ "name": "stdin",
811
+ "required": false,
812
+ "allowNo": false,
813
+ "type": "boolean"
814
+ },
815
+ "workspace": {
816
+ "char": "w",
817
+ "description": "Workspace ID (optional if set in profile)",
818
+ "name": "workspace",
819
+ "required": false,
820
+ "hasDynamicHelp": false,
821
+ "multiple": false,
822
+ "type": "option"
823
+ }
824
+ },
825
+ "hasDynamicHelp": false,
826
+ "hiddenAliases": [],
827
+ "id": "function:create",
828
+ "pluginAlias": "@xano/cli",
829
+ "pluginName": "@xano/cli",
830
+ "pluginType": "core",
831
+ "strict": true,
832
+ "enableJsonFlag": false,
833
+ "isESM": true,
834
+ "relativePath": [
835
+ "dist",
836
+ "commands",
837
+ "function",
838
+ "create",
839
+ "index.js"
840
+ ]
841
+ },
842
+ "function:edit": {
843
+ "aliases": [],
844
+ "args": {
845
+ "function_id": {
846
+ "description": "Function ID to edit",
847
+ "name": "function_id",
848
+ "required": false
849
+ }
850
+ },
851
+ "description": "Edit a function in a workspace",
852
+ "examples": [
853
+ "$ xano function:edit 163\n# Fetches the function code and opens it in $EDITOR for editing\nFunction updated successfully!\nID: 163\nName: my_function\n",
854
+ "$ xano function:edit\n# Prompts for function, fetches the code and opens it in $EDITOR for editing\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
855
+ "$ xano function:edit 163 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
856
+ "$ xano function:edit 163 -w 40 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
857
+ "$ xano function:edit -f function.xs\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
858
+ "$ xano function:edit 163 -f function.xs --edit\n# Opens function.xs in $EDITOR, then updates function with edited content\nFunction updated successfully!\nID: 163\nName: my_function\n",
859
+ "$ cat function.xs | xano function:edit 163 --stdin\nFunction updated successfully!\nID: 163\nName: my_function\n",
860
+ "$ xano function:edit 163 -f function.xs -o json\n{\n \"id\": 163,\n \"name\": \"my_function\",\n ...\n}\n"
861
+ ],
862
+ "flags": {
863
+ "profile": {
864
+ "char": "p",
865
+ "description": "Profile to use (uses default profile if not specified)",
866
+ "env": "XANO_PROFILE",
867
+ "name": "profile",
868
+ "required": false,
869
+ "hasDynamicHelp": false,
870
+ "multiple": false,
871
+ "type": "option"
872
+ },
873
+ "verbose": {
874
+ "char": "v",
875
+ "description": "Show detailed request/response information",
876
+ "env": "XANO_VERBOSE",
877
+ "name": "verbose",
878
+ "required": false,
879
+ "allowNo": false,
880
+ "type": "boolean"
881
+ },
882
+ "edit": {
883
+ "char": "e",
884
+ "description": "Open file in editor before updating function (requires --file)",
885
+ "name": "edit",
886
+ "required": false,
887
+ "allowNo": false,
888
+ "type": "boolean"
889
+ },
890
+ "file": {
891
+ "char": "f",
892
+ "description": "Path to file containing XanoScript code",
893
+ "exclusive": [
894
+ "stdin"
895
+ ],
896
+ "name": "file",
897
+ "required": false,
898
+ "hasDynamicHelp": false,
899
+ "multiple": false,
900
+ "type": "option"
901
+ },
902
+ "output": {
903
+ "char": "o",
904
+ "description": "Output format",
905
+ "name": "output",
906
+ "required": false,
907
+ "default": "summary",
908
+ "hasDynamicHelp": false,
909
+ "multiple": false,
910
+ "options": [
911
+ "summary",
912
+ "json"
913
+ ],
914
+ "type": "option"
915
+ },
916
+ "publish": {
791
917
  "description": "Publish the function after editing",
792
918
  "name": "publish",
793
919
  "required": false,
@@ -1051,171 +1177,45 @@
1051
1177
  "index.js"
1052
1178
  ]
1053
1179
  },
1054
- "platform:get": {
1180
+ "profile:create": {
1055
1181
  "aliases": [],
1056
1182
  "args": {
1057
- "platform_id": {
1058
- "description": "Platform ID to retrieve",
1059
- "name": "platform_id",
1183
+ "name": {
1184
+ "description": "Profile name",
1185
+ "name": "name",
1060
1186
  "required": true
1061
1187
  }
1062
1188
  },
1063
- "description": "Get details of a specific platform",
1189
+ "description": "Create a new profile configuration",
1064
1190
  "examples": [
1065
- "$ xano platform get 23629\nPlatform ID: 23629\n Created: 2025-11-28\n Helm: 0.1.356\n Images:\n backend 0.0.2985\n frontend 0.1.3427\n database 0.1.6\n node 0.1.192\n deno 0.0.212\n redis 0.1.34\n realtime 0.1.149\n standalone 0.0.2456\n playwright 0.0.992\n static 0.0.10\n static-build 0.0.4\n backend-encoded 0.0.1396\n",
1066
- "$ xano platform get 23629 -o json"
1191
+ "$ xano profile:create production --account_origin https://account.xano.com --instance_origin https://instance.xano.com --access_token token123\nProfile 'production' created successfully at ~/.xano/credentials.yaml\n",
1192
+ "$ xano profile:create staging -a https://staging-account.xano.com -i https://staging-instance.xano.com -t token456\nProfile 'staging' created successfully at ~/.xano/credentials.yaml\n",
1193
+ "$ xano profile:create dev -i https://dev-instance.xano.com -t token789 -w my-workspace -b feature-branch\nProfile 'dev' created successfully at ~/.xano/credentials.yaml\n",
1194
+ "$ xano profile:create production --account_origin https://account.xano.com --instance_origin https://instance.xano.com --access_token token123 --default\nProfile 'production' created successfully at ~/.xano/credentials.yaml\nDefault profile set to 'production'\n"
1067
1195
  ],
1068
1196
  "flags": {
1069
- "profile": {
1070
- "char": "p",
1071
- "description": "Profile to use (uses default profile if not specified)",
1072
- "env": "XANO_PROFILE",
1073
- "name": "profile",
1074
- "required": false,
1197
+ "access_token": {
1198
+ "char": "t",
1199
+ "description": "Access token for the Xano Metadata API",
1200
+ "name": "access_token",
1201
+ "required": true,
1075
1202
  "hasDynamicHelp": false,
1076
1203
  "multiple": false,
1077
1204
  "type": "option"
1078
1205
  },
1079
- "verbose": {
1080
- "char": "v",
1081
- "description": "Show detailed request/response information",
1082
- "env": "XANO_VERBOSE",
1083
- "name": "verbose",
1206
+ "account_origin": {
1207
+ "char": "a",
1208
+ "description": "Account origin URL. Optional for self hosted installs.",
1209
+ "name": "account_origin",
1084
1210
  "required": false,
1085
- "allowNo": false,
1086
- "type": "boolean"
1211
+ "hasDynamicHelp": false,
1212
+ "multiple": false,
1213
+ "type": "option"
1087
1214
  },
1088
- "output": {
1089
- "char": "o",
1090
- "description": "Output format",
1091
- "name": "output",
1092
- "required": false,
1093
- "default": "summary",
1094
- "hasDynamicHelp": false,
1095
- "multiple": false,
1096
- "options": [
1097
- "summary",
1098
- "json"
1099
- ],
1100
- "type": "option"
1101
- }
1102
- },
1103
- "hasDynamicHelp": false,
1104
- "hiddenAliases": [],
1105
- "id": "platform:get",
1106
- "pluginAlias": "@xano/cli",
1107
- "pluginName": "@xano/cli",
1108
- "pluginType": "core",
1109
- "strict": true,
1110
- "enableJsonFlag": false,
1111
- "isESM": true,
1112
- "relativePath": [
1113
- "dist",
1114
- "commands",
1115
- "platform",
1116
- "get",
1117
- "index.js"
1118
- ]
1119
- },
1120
- "platform:list": {
1121
- "aliases": [],
1122
- "args": {},
1123
- "description": "List all platforms",
1124
- "examples": [
1125
- "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
1126
- "$ xano platform list --output json"
1127
- ],
1128
- "flags": {
1129
- "profile": {
1130
- "char": "p",
1131
- "description": "Profile to use (uses default profile if not specified)",
1132
- "env": "XANO_PROFILE",
1133
- "name": "profile",
1134
- "required": false,
1135
- "hasDynamicHelp": false,
1136
- "multiple": false,
1137
- "type": "option"
1138
- },
1139
- "verbose": {
1140
- "char": "v",
1141
- "description": "Show detailed request/response information",
1142
- "env": "XANO_VERBOSE",
1143
- "name": "verbose",
1144
- "required": false,
1145
- "allowNo": false,
1146
- "type": "boolean"
1147
- },
1148
- "output": {
1149
- "char": "o",
1150
- "description": "Output format",
1151
- "name": "output",
1152
- "required": false,
1153
- "default": "summary",
1154
- "hasDynamicHelp": false,
1155
- "multiple": false,
1156
- "options": [
1157
- "summary",
1158
- "json"
1159
- ],
1160
- "type": "option"
1161
- }
1162
- },
1163
- "hasDynamicHelp": false,
1164
- "hiddenAliases": [],
1165
- "id": "platform:list",
1166
- "pluginAlias": "@xano/cli",
1167
- "pluginName": "@xano/cli",
1168
- "pluginType": "core",
1169
- "strict": true,
1170
- "enableJsonFlag": false,
1171
- "isESM": true,
1172
- "relativePath": [
1173
- "dist",
1174
- "commands",
1175
- "platform",
1176
- "list",
1177
- "index.js"
1178
- ]
1179
- },
1180
- "profile:create": {
1181
- "aliases": [],
1182
- "args": {
1183
- "name": {
1184
- "description": "Profile name",
1185
- "name": "name",
1186
- "required": true
1187
- }
1188
- },
1189
- "description": "Create a new profile configuration",
1190
- "examples": [
1191
- "$ xano profile:create production --account_origin https://account.xano.com --instance_origin https://instance.xano.com --access_token token123\nProfile 'production' created successfully at ~/.xano/credentials.yaml\n",
1192
- "$ xano profile:create staging -a https://staging-account.xano.com -i https://staging-instance.xano.com -t token456\nProfile 'staging' created successfully at ~/.xano/credentials.yaml\n",
1193
- "$ xano profile:create dev -i https://dev-instance.xano.com -t token789 -w my-workspace -b feature-branch\nProfile 'dev' created successfully at ~/.xano/credentials.yaml\n",
1194
- "$ xano profile:create production --account_origin https://account.xano.com --instance_origin https://instance.xano.com --access_token token123 --default\nProfile 'production' created successfully at ~/.xano/credentials.yaml\nDefault profile set to 'production'\n"
1195
- ],
1196
- "flags": {
1197
- "access_token": {
1198
- "char": "t",
1199
- "description": "Access token for the Xano Metadata API",
1200
- "name": "access_token",
1201
- "required": true,
1202
- "hasDynamicHelp": false,
1203
- "multiple": false,
1204
- "type": "option"
1205
- },
1206
- "account_origin": {
1207
- "char": "a",
1208
- "description": "Account origin URL. Optional for self hosted installs.",
1209
- "name": "account_origin",
1210
- "required": false,
1211
- "hasDynamicHelp": false,
1212
- "multiple": false,
1213
- "type": "option"
1214
- },
1215
- "branch": {
1216
- "char": "b",
1217
- "description": "Branch name",
1218
- "name": "branch",
1215
+ "branch": {
1216
+ "char": "b",
1217
+ "description": "Branch name",
1218
+ "name": "branch",
1219
1219
  "required": false,
1220
1220
  "hasDynamicHelp": false,
1221
1221
  "multiple": false,
@@ -1420,17 +1420,28 @@
1420
1420
  "index.js"
1421
1421
  ]
1422
1422
  },
1423
- "profile:get": {
1423
+ "profile:list": {
1424
1424
  "aliases": [],
1425
1425
  "args": {},
1426
- "description": "Get the current default profile name",
1426
+ "description": "List all available profile configurations",
1427
1427
  "examples": [
1428
- "$ xano profile get\nproduction\n"
1428
+ "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1429
+ "$ xano profile:list --details\nAvailable profiles:\n\nProfile: default\n Account Origin: https://account.xano.com\n Instance Origin: https://instance.xano.com\n Access Token: ***...***\n Workspace: my-workspace\n Branch: main\n Project: my-project\n\nProfile: production\n Account Origin: https://account.xano.com\n Instance Origin: https://prod-instance.xano.com\n Access Token: ***...***\n",
1430
+ "$ xano profile:list -d\nAvailable profiles:\n\nProfile: default\n Account Origin: https://account.xano.com\n Instance Origin: https://instance.xano.com\n Access Token: ***...***\n Workspace: my-workspace\n Branch: main\n Project: my-project\n"
1429
1431
  ],
1430
- "flags": {},
1432
+ "flags": {
1433
+ "details": {
1434
+ "char": "d",
1435
+ "description": "Show detailed information for each profile",
1436
+ "name": "details",
1437
+ "required": false,
1438
+ "allowNo": false,
1439
+ "type": "boolean"
1440
+ }
1441
+ },
1431
1442
  "hasDynamicHelp": false,
1432
1443
  "hiddenAliases": [],
1433
- "id": "profile:get",
1444
+ "id": "profile:list",
1434
1445
  "pluginAlias": "@xano/cli",
1435
1446
  "pluginName": "@xano/cli",
1436
1447
  "pluginType": "core",
@@ -1441,32 +1452,21 @@
1441
1452
  "dist",
1442
1453
  "commands",
1443
1454
  "profile",
1444
- "get",
1455
+ "list",
1445
1456
  "index.js"
1446
1457
  ]
1447
1458
  },
1448
- "profile:list": {
1459
+ "profile:get": {
1449
1460
  "aliases": [],
1450
1461
  "args": {},
1451
- "description": "List all available profile configurations",
1462
+ "description": "Get the current default profile name",
1452
1463
  "examples": [
1453
- "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1454
- "$ xano profile:list --details\nAvailable profiles:\n\nProfile: default\n Account Origin: https://account.xano.com\n Instance Origin: https://instance.xano.com\n Access Token: ***...***\n Workspace: my-workspace\n Branch: main\n Project: my-project\n\nProfile: production\n Account Origin: https://account.xano.com\n Instance Origin: https://prod-instance.xano.com\n Access Token: ***...***\n",
1455
- "$ xano profile:list -d\nAvailable profiles:\n\nProfile: default\n Account Origin: https://account.xano.com\n Instance Origin: https://instance.xano.com\n Access Token: ***...***\n Workspace: my-workspace\n Branch: main\n Project: my-project\n"
1464
+ "$ xano profile get\nproduction\n"
1456
1465
  ],
1457
- "flags": {
1458
- "details": {
1459
- "char": "d",
1460
- "description": "Show detailed information for each profile",
1461
- "name": "details",
1462
- "required": false,
1463
- "allowNo": false,
1464
- "type": "boolean"
1465
- }
1466
- },
1466
+ "flags": {},
1467
1467
  "hasDynamicHelp": false,
1468
1468
  "hiddenAliases": [],
1469
- "id": "profile:list",
1469
+ "id": "profile:get",
1470
1470
  "pluginAlias": "@xano/cli",
1471
1471
  "pluginName": "@xano/cli",
1472
1472
  "pluginType": "core",
@@ -1477,7 +1477,7 @@
1477
1477
  "dist",
1478
1478
  "commands",
1479
1479
  "profile",
1480
- "list",
1480
+ "get",
1481
1481
  "index.js"
1482
1482
  ]
1483
1483
  },
@@ -1599,6 +1599,51 @@
1599
1599
  "index.js"
1600
1600
  ]
1601
1601
  },
1602
+ "profile:wizard": {
1603
+ "aliases": [],
1604
+ "args": {},
1605
+ "description": "Create a new profile configuration using an interactive wizard",
1606
+ "examples": [
1607
+ "$ xano profile:wizard\nWelcome to the Xano Profile Wizard!\n? Enter your access token: ***...***\n? Select an instance:\n > Production (https://app.xano.com)\n Staging (https://staging.xano.com)\n? Profile name: production\nProfile 'production' created successfully at ~/.xano/credentials.yaml\n"
1608
+ ],
1609
+ "flags": {
1610
+ "name": {
1611
+ "char": "n",
1612
+ "description": "Profile name (skip prompt if provided)",
1613
+ "name": "name",
1614
+ "required": false,
1615
+ "hasDynamicHelp": false,
1616
+ "multiple": false,
1617
+ "type": "option"
1618
+ },
1619
+ "origin": {
1620
+ "char": "o",
1621
+ "description": "Xano instance origin URL",
1622
+ "name": "origin",
1623
+ "required": false,
1624
+ "default": "https://app.xano.com",
1625
+ "hasDynamicHelp": false,
1626
+ "multiple": false,
1627
+ "type": "option"
1628
+ }
1629
+ },
1630
+ "hasDynamicHelp": false,
1631
+ "hiddenAliases": [],
1632
+ "id": "profile:wizard",
1633
+ "pluginAlias": "@xano/cli",
1634
+ "pluginName": "@xano/cli",
1635
+ "pluginType": "core",
1636
+ "strict": true,
1637
+ "enableJsonFlag": false,
1638
+ "isESM": true,
1639
+ "relativePath": [
1640
+ "dist",
1641
+ "commands",
1642
+ "profile",
1643
+ "wizard",
1644
+ "index.js"
1645
+ ]
1646
+ },
1602
1647
  "profile:workspace": {
1603
1648
  "aliases": [],
1604
1649
  "args": {},
@@ -1625,13 +1670,15 @@
1625
1670
  "index.js"
1626
1671
  ]
1627
1672
  },
1628
- "release:create": {
1673
+ "static_host:list": {
1629
1674
  "aliases": [],
1630
1675
  "args": {},
1631
- "description": "Create a new release in a workspace",
1676
+ "description": "List all static hosts in a workspace from the Xano Metadata API",
1632
1677
  "examples": [
1633
- "$ xano release create --name \"v1.0\" --branch main\nCreated release: v1.0 - ID: 10\n",
1634
- "$ xano release create --name \"v1.1-hotfix\" --branch main --hotfix --description \"Critical fix\" -o json"
1678
+ "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
1679
+ "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
1680
+ "$ 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",
1681
+ "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
1635
1682
  ],
1636
1683
  "flags": {
1637
1684
  "profile": {
@@ -1653,40 +1700,6 @@
1653
1700
  "allowNo": false,
1654
1701
  "type": "boolean"
1655
1702
  },
1656
- "branch": {
1657
- "char": "b",
1658
- "description": "Branch to create the release from",
1659
- "name": "branch",
1660
- "required": true,
1661
- "hasDynamicHelp": false,
1662
- "multiple": false,
1663
- "type": "option"
1664
- },
1665
- "description": {
1666
- "char": "d",
1667
- "description": "Release description",
1668
- "name": "description",
1669
- "required": false,
1670
- "hasDynamicHelp": false,
1671
- "multiple": false,
1672
- "type": "option"
1673
- },
1674
- "hotfix": {
1675
- "description": "Mark as a hotfix release",
1676
- "name": "hotfix",
1677
- "required": false,
1678
- "allowNo": false,
1679
- "type": "boolean"
1680
- },
1681
- "name": {
1682
- "char": "n",
1683
- "description": "Name for the release",
1684
- "name": "name",
1685
- "required": true,
1686
- "hasDynamicHelp": false,
1687
- "multiple": false,
1688
- "type": "option"
1689
- },
1690
1703
  "output": {
1691
1704
  "char": "o",
1692
1705
  "description": "Output format",
@@ -1701,17 +1714,27 @@
1701
1714
  ],
1702
1715
  "type": "option"
1703
1716
  },
1704
- "table-ids": {
1705
- "description": "Comma-separated table IDs to include",
1706
- "name": "table-ids",
1717
+ "page": {
1718
+ "description": "Page number for pagination",
1719
+ "name": "page",
1720
+ "required": false,
1721
+ "default": 1,
1722
+ "hasDynamicHelp": false,
1723
+ "multiple": false,
1724
+ "type": "option"
1725
+ },
1726
+ "per_page": {
1727
+ "description": "Number of results per page",
1728
+ "name": "per_page",
1707
1729
  "required": false,
1730
+ "default": 50,
1708
1731
  "hasDynamicHelp": false,
1709
1732
  "multiple": false,
1710
1733
  "type": "option"
1711
1734
  },
1712
1735
  "workspace": {
1713
1736
  "char": "w",
1714
- "description": "Workspace ID (uses profile workspace if not provided)",
1737
+ "description": "Workspace ID (optional if set in profile)",
1715
1738
  "name": "workspace",
1716
1739
  "required": false,
1717
1740
  "hasDynamicHelp": false,
@@ -1721,7 +1744,7 @@
1721
1744
  },
1722
1745
  "hasDynamicHelp": false,
1723
1746
  "hiddenAliases": [],
1724
- "id": "release:create",
1747
+ "id": "static_host:list",
1725
1748
  "pluginAlias": "@xano/cli",
1726
1749
  "pluginName": "@xano/cli",
1727
1750
  "pluginType": "core",
@@ -1731,25 +1754,25 @@
1731
1754
  "relativePath": [
1732
1755
  "dist",
1733
1756
  "commands",
1734
- "release",
1735
- "create",
1757
+ "static_host",
1758
+ "list",
1736
1759
  "index.js"
1737
1760
  ]
1738
1761
  },
1739
- "release:delete": {
1762
+ "tenant:delete": {
1740
1763
  "aliases": [],
1741
1764
  "args": {
1742
- "release_name": {
1743
- "description": "Release name to delete",
1744
- "name": "release_name",
1765
+ "tenant_name": {
1766
+ "description": "Tenant name to delete",
1767
+ "name": "tenant_name",
1745
1768
  "required": true
1746
1769
  }
1747
1770
  },
1748
- "description": "Delete a release permanently. This action cannot be undone.",
1771
+ "description": "Delete a tenant permanently. This destroys all associated infrastructure and cannot be undone.",
1749
1772
  "examples": [
1750
- "$ 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",
1751
- "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1752
- "$ xano release delete v1.0 -f -o json"
1773
+ "$ 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",
1774
+ "$ xano tenant delete t1234-abcd-xyz1 --force\nDeleted tenant t1234-abcd-xyz1\n",
1775
+ "$ xano tenant delete t1234-abcd-xyz1 -f -o json"
1753
1776
  ],
1754
1777
  "flags": {
1755
1778
  "profile": {
@@ -1805,7 +1828,7 @@
1805
1828
  },
1806
1829
  "hasDynamicHelp": false,
1807
1830
  "hiddenAliases": [],
1808
- "id": "release:delete",
1831
+ "id": "tenant:delete",
1809
1832
  "pluginAlias": "@xano/cli",
1810
1833
  "pluginName": "@xano/cli",
1811
1834
  "pluginType": "core",
@@ -1815,24 +1838,24 @@
1815
1838
  "relativePath": [
1816
1839
  "dist",
1817
1840
  "commands",
1818
- "release",
1841
+ "tenant",
1819
1842
  "delete",
1820
1843
  "index.js"
1821
1844
  ]
1822
1845
  },
1823
- "release:edit": {
1846
+ "tenant:deploy_platform": {
1824
1847
  "aliases": [],
1825
1848
  "args": {
1826
- "release_name": {
1827
- "description": "Release name to edit",
1828
- "name": "release_name",
1849
+ "tenant_name": {
1850
+ "description": "Tenant name to deploy to",
1851
+ "name": "tenant_name",
1829
1852
  "required": true
1830
1853
  }
1831
1854
  },
1832
- "description": "Edit an existing release",
1855
+ "description": "Deploy a platform version to a tenant",
1833
1856
  "examples": [
1834
- "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
1835
- "$ xano release edit v1.0 --description \"New description\" -o json"
1857
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
1858
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json"
1836
1859
  ],
1837
1860
  "flags": {
1838
1861
  "profile": {
@@ -1854,24 +1877,6 @@
1854
1877
  "allowNo": false,
1855
1878
  "type": "boolean"
1856
1879
  },
1857
- "description": {
1858
- "char": "d",
1859
- "description": "New description",
1860
- "name": "description",
1861
- "required": false,
1862
- "hasDynamicHelp": false,
1863
- "multiple": false,
1864
- "type": "option"
1865
- },
1866
- "name": {
1867
- "char": "n",
1868
- "description": "New name for the release",
1869
- "name": "name",
1870
- "required": false,
1871
- "hasDynamicHelp": false,
1872
- "multiple": false,
1873
- "type": "option"
1874
- },
1875
1880
  "output": {
1876
1881
  "char": "o",
1877
1882
  "description": "Output format",
@@ -1886,6 +1891,14 @@
1886
1891
  ],
1887
1892
  "type": "option"
1888
1893
  },
1894
+ "platform_id": {
1895
+ "description": "Platform ID to deploy",
1896
+ "name": "platform_id",
1897
+ "required": true,
1898
+ "hasDynamicHelp": false,
1899
+ "multiple": false,
1900
+ "type": "option"
1901
+ },
1889
1902
  "workspace": {
1890
1903
  "char": "w",
1891
1904
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -1898,7 +1911,7 @@
1898
1911
  },
1899
1912
  "hasDynamicHelp": false,
1900
1913
  "hiddenAliases": [],
1901
- "id": "release:edit",
1914
+ "id": "tenant:deploy_platform",
1902
1915
  "pluginAlias": "@xano/cli",
1903
1916
  "pluginName": "@xano/cli",
1904
1917
  "pluginType": "core",
@@ -1908,25 +1921,24 @@
1908
1921
  "relativePath": [
1909
1922
  "dist",
1910
1923
  "commands",
1911
- "release",
1912
- "edit",
1924
+ "tenant",
1925
+ "deploy_platform",
1913
1926
  "index.js"
1914
1927
  ]
1915
1928
  },
1916
- "release:export": {
1929
+ "tenant:create": {
1917
1930
  "aliases": [],
1918
1931
  "args": {
1919
- "release_name": {
1920
- "description": "Release name to export",
1921
- "name": "release_name",
1932
+ "display": {
1933
+ "description": "Display name for the tenant",
1934
+ "name": "display",
1922
1935
  "required": true
1923
1936
  }
1924
1937
  },
1925
- "description": "Export (download) a release to a local file",
1938
+ "description": "Create a new tenant in a workspace",
1926
1939
  "examples": [
1927
- "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
1928
- "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
1929
- "$ xano release export v1.0 -o json"
1940
+ "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
1941
+ "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
1930
1942
  ],
1931
1943
  "flags": {
1932
1944
  "profile": {
@@ -1948,10 +1960,61 @@
1948
1960
  "allowNo": false,
1949
1961
  "type": "boolean"
1950
1962
  },
1951
- "format": {
1963
+ "cluster_id": {
1964
+ "description": "Cluster ID to deploy to (required for tier2/tier3)",
1965
+ "name": "cluster_id",
1966
+ "required": false,
1967
+ "hasDynamicHelp": false,
1968
+ "multiple": false,
1969
+ "type": "option"
1970
+ },
1971
+ "description": {
1972
+ "char": "d",
1973
+ "description": "Tenant description",
1974
+ "name": "description",
1975
+ "required": false,
1976
+ "hasDynamicHelp": false,
1977
+ "multiple": false,
1978
+ "type": "option"
1979
+ },
1980
+ "domain": {
1981
+ "description": "Custom domain for the tenant",
1982
+ "name": "domain",
1983
+ "required": false,
1984
+ "hasDynamicHelp": false,
1985
+ "multiple": false,
1986
+ "type": "option"
1987
+ },
1988
+ "ephemeral": {
1989
+ "description": "Mark tenant as ephemeral (allows push operations)",
1990
+ "name": "ephemeral",
1991
+ "allowNo": false,
1992
+ "type": "boolean"
1993
+ },
1994
+ "ingress": {
1995
+ "description": "Enable ingress",
1996
+ "name": "ingress",
1997
+ "allowNo": true,
1998
+ "type": "boolean"
1999
+ },
2000
+ "license": {
2001
+ "description": "License tier",
2002
+ "name": "license",
2003
+ "required": false,
2004
+ "default": "tier1",
2005
+ "hasDynamicHelp": false,
2006
+ "multiple": false,
2007
+ "options": [
2008
+ "tier1",
2009
+ "tier2",
2010
+ "tier3"
2011
+ ],
2012
+ "type": "option"
2013
+ },
2014
+ "output": {
1952
2015
  "char": "o",
1953
2016
  "description": "Output format",
1954
- "name": "format",
2017
+ "name": "output",
1955
2018
  "required": false,
1956
2019
  "default": "summary",
1957
2020
  "hasDynamicHelp": false,
@@ -1962,14 +2025,20 @@
1962
2025
  ],
1963
2026
  "type": "option"
1964
2027
  },
1965
- "output": {
1966
- "description": "Output file path (defaults to ./release-{name}.tar.gz)",
1967
- "name": "output",
2028
+ "platform_id": {
2029
+ "description": "Platform ID to use",
2030
+ "name": "platform_id",
1968
2031
  "required": false,
1969
2032
  "hasDynamicHelp": false,
1970
2033
  "multiple": false,
1971
2034
  "type": "option"
1972
2035
  },
2036
+ "tasks": {
2037
+ "description": "Enable background tasks",
2038
+ "name": "tasks",
2039
+ "allowNo": true,
2040
+ "type": "boolean"
2041
+ },
1973
2042
  "workspace": {
1974
2043
  "char": "w",
1975
2044
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -1982,7 +2051,7 @@
1982
2051
  },
1983
2052
  "hasDynamicHelp": false,
1984
2053
  "hiddenAliases": [],
1985
- "id": "release:export",
2054
+ "id": "tenant:create",
1986
2055
  "pluginAlias": "@xano/cli",
1987
2056
  "pluginName": "@xano/cli",
1988
2057
  "pluginType": "core",
@@ -1992,24 +2061,24 @@
1992
2061
  "relativePath": [
1993
2062
  "dist",
1994
2063
  "commands",
1995
- "release",
1996
- "export",
2064
+ "tenant",
2065
+ "create",
1997
2066
  "index.js"
1998
2067
  ]
1999
2068
  },
2000
- "release:get": {
2069
+ "tenant:deploy_release": {
2001
2070
  "aliases": [],
2002
2071
  "args": {
2003
- "release_name": {
2004
- "description": "Release name to retrieve",
2005
- "name": "release_name",
2072
+ "tenant_name": {
2073
+ "description": "Tenant name to deploy to",
2074
+ "name": "tenant_name",
2006
2075
  "required": true
2007
2076
  }
2008
2077
  },
2009
- "description": "Get details of a specific release",
2078
+ "description": "Deploy a release to a tenant",
2010
2079
  "examples": [
2011
- "$ xano release get v1.0\nRelease: v1.0 - ID: 10\n Branch: main\n Description: Initial release\n Hotfix: false\n",
2012
- "$ xano release get v1.0 -w 5 -o json"
2080
+ "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0\nDeployed release \"v1.0\" to tenant: My Tenant (my-tenant)\n",
2081
+ "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0 -o json"
2013
2082
  ],
2014
2083
  "flags": {
2015
2084
  "profile": {
@@ -2045,6 +2114,15 @@
2045
2114
  ],
2046
2115
  "type": "option"
2047
2116
  },
2117
+ "release": {
2118
+ "char": "r",
2119
+ "description": "Release name to deploy",
2120
+ "name": "release",
2121
+ "required": true,
2122
+ "hasDynamicHelp": false,
2123
+ "multiple": false,
2124
+ "type": "option"
2125
+ },
2048
2126
  "workspace": {
2049
2127
  "char": "w",
2050
2128
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2057,7 +2135,7 @@
2057
2135
  },
2058
2136
  "hasDynamicHelp": false,
2059
2137
  "hiddenAliases": [],
2060
- "id": "release:get",
2138
+ "id": "tenant:deploy_release",
2061
2139
  "pluginAlias": "@xano/cli",
2062
2140
  "pluginName": "@xano/cli",
2063
2141
  "pluginType": "core",
@@ -2067,93 +2145,77 @@
2067
2145
  "relativePath": [
2068
2146
  "dist",
2069
2147
  "commands",
2070
- "release",
2071
- "get",
2148
+ "tenant",
2149
+ "deploy_release",
2072
2150
  "index.js"
2073
2151
  ]
2074
2152
  },
2075
- "profile:wizard": {
2153
+ "tenant:edit": {
2076
2154
  "aliases": [],
2077
- "args": {},
2078
- "description": "Create a new profile configuration using an interactive wizard",
2155
+ "args": {
2156
+ "tenant_name": {
2157
+ "description": "Tenant name to edit",
2158
+ "name": "tenant_name",
2159
+ "required": true
2160
+ }
2161
+ },
2162
+ "description": "Edit an existing tenant",
2079
2163
  "examples": [
2080
- "$ xano profile:wizard\nWelcome to the Xano Profile Wizard!\n? Enter your access token: ***...***\n? Select an instance:\n > Production (https://app.xano.com)\n Staging (https://staging.xano.com)\n? Profile name: production\nProfile 'production' created successfully at ~/.xano/credentials.yaml\n"
2164
+ "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
2165
+ "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
2081
2166
  ],
2082
2167
  "flags": {
2083
- "name": {
2084
- "char": "n",
2085
- "description": "Profile name (skip prompt if provided)",
2086
- "name": "name",
2168
+ "profile": {
2169
+ "char": "p",
2170
+ "description": "Profile to use (uses default profile if not specified)",
2171
+ "env": "XANO_PROFILE",
2172
+ "name": "profile",
2087
2173
  "required": false,
2088
2174
  "hasDynamicHelp": false,
2089
2175
  "multiple": false,
2090
2176
  "type": "option"
2091
2177
  },
2092
- "origin": {
2093
- "char": "o",
2094
- "description": "Xano instance origin URL",
2095
- "name": "origin",
2178
+ "verbose": {
2179
+ "char": "v",
2180
+ "description": "Show detailed request/response information",
2181
+ "env": "XANO_VERBOSE",
2182
+ "name": "verbose",
2183
+ "required": false,
2184
+ "allowNo": false,
2185
+ "type": "boolean"
2186
+ },
2187
+ "description": {
2188
+ "char": "d",
2189
+ "description": "New description",
2190
+ "name": "description",
2096
2191
  "required": false,
2097
- "default": "https://app.xano.com",
2098
2192
  "hasDynamicHelp": false,
2099
2193
  "multiple": false,
2100
2194
  "type": "option"
2101
- }
2102
- },
2103
- "hasDynamicHelp": false,
2104
- "hiddenAliases": [],
2105
- "id": "profile:wizard",
2106
- "pluginAlias": "@xano/cli",
2107
- "pluginName": "@xano/cli",
2108
- "pluginType": "core",
2109
- "strict": true,
2110
- "enableJsonFlag": false,
2111
- "isESM": true,
2112
- "relativePath": [
2113
- "dist",
2114
- "commands",
2115
- "profile",
2116
- "wizard",
2117
- "index.js"
2118
- ]
2119
- },
2120
- "release:import": {
2121
- "aliases": [],
2122
- "args": {},
2123
- "description": "Import a release file into a workspace",
2124
- "examples": [
2125
- "$ xano release import --file ./my-release.tar.gz\nImported release as #15\n",
2126
- "$ xano release import --file ./my-release.tar.gz -o json"
2127
- ],
2128
- "flags": {
2129
- "profile": {
2130
- "char": "p",
2131
- "description": "Profile to use (uses default profile if not specified)",
2132
- "env": "XANO_PROFILE",
2133
- "name": "profile",
2195
+ },
2196
+ "display": {
2197
+ "description": "New display name",
2198
+ "name": "display",
2134
2199
  "required": false,
2135
2200
  "hasDynamicHelp": false,
2136
2201
  "multiple": false,
2137
2202
  "type": "option"
2138
2203
  },
2139
- "verbose": {
2140
- "char": "v",
2141
- "description": "Show detailed request/response information",
2142
- "env": "XANO_VERBOSE",
2143
- "name": "verbose",
2204
+ "domain": {
2205
+ "description": "Custom domain",
2206
+ "name": "domain",
2144
2207
  "required": false,
2145
- "allowNo": false,
2146
- "type": "boolean"
2147
- },
2148
- "file": {
2149
- "char": "f",
2150
- "description": "Path to the release file (.tar.gz)",
2151
- "name": "file",
2152
- "required": true,
2153
2208
  "hasDynamicHelp": false,
2154
2209
  "multiple": false,
2155
2210
  "type": "option"
2156
2211
  },
2212
+ "ingress": {
2213
+ "description": "Enable/disable ingress",
2214
+ "name": "ingress",
2215
+ "required": false,
2216
+ "allowNo": true,
2217
+ "type": "boolean"
2218
+ },
2157
2219
  "output": {
2158
2220
  "char": "o",
2159
2221
  "description": "Output format",
@@ -2168,6 +2230,28 @@
2168
2230
  ],
2169
2231
  "type": "option"
2170
2232
  },
2233
+ "proxy": {
2234
+ "description": "Proxy URL",
2235
+ "name": "proxy",
2236
+ "required": false,
2237
+ "hasDynamicHelp": false,
2238
+ "multiple": false,
2239
+ "type": "option"
2240
+ },
2241
+ "rbac": {
2242
+ "description": "Enable/disable RBAC",
2243
+ "name": "rbac",
2244
+ "required": false,
2245
+ "allowNo": true,
2246
+ "type": "boolean"
2247
+ },
2248
+ "tasks": {
2249
+ "description": "Enable/disable background tasks",
2250
+ "name": "tasks",
2251
+ "required": false,
2252
+ "allowNo": true,
2253
+ "type": "boolean"
2254
+ },
2171
2255
  "workspace": {
2172
2256
  "char": "w",
2173
2257
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2180,7 +2264,7 @@
2180
2264
  },
2181
2265
  "hasDynamicHelp": false,
2182
2266
  "hiddenAliases": [],
2183
- "id": "release:import",
2267
+ "id": "tenant:edit",
2184
2268
  "pluginAlias": "@xano/cli",
2185
2269
  "pluginName": "@xano/cli",
2186
2270
  "pluginType": "core",
@@ -2190,18 +2274,24 @@
2190
2274
  "relativePath": [
2191
2275
  "dist",
2192
2276
  "commands",
2193
- "release",
2194
- "import",
2277
+ "tenant",
2278
+ "edit",
2195
2279
  "index.js"
2196
2280
  ]
2197
2281
  },
2198
- "release:list": {
2282
+ "tenant:get": {
2199
2283
  "aliases": [],
2200
- "args": {},
2201
- "description": "List all releases in a workspace",
2284
+ "args": {
2285
+ "tenant_name": {
2286
+ "description": "Tenant name to retrieve",
2287
+ "name": "tenant_name",
2288
+ "required": true
2289
+ }
2290
+ },
2291
+ "description": "Get details of a specific tenant",
2202
2292
  "examples": [
2203
- "$ xano release list\nReleases in workspace 5:\n - v1.0 (ID: 10) - main\n - v1.1-hotfix (ID: 11) - main [hotfix]\n",
2204
- "$ xano release list -w 5 --output json"
2293
+ "$ 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",
2294
+ "$ xano tenant get t1234-abcd-xyz1 -w 5 -o json"
2205
2295
  ],
2206
2296
  "flags": {
2207
2297
  "profile": {
@@ -2249,7 +2339,7 @@
2249
2339
  },
2250
2340
  "hasDynamicHelp": false,
2251
2341
  "hiddenAliases": [],
2252
- "id": "release:list",
2342
+ "id": "tenant:get",
2253
2343
  "pluginAlias": "@xano/cli",
2254
2344
  "pluginName": "@xano/cli",
2255
2345
  "pluginType": "core",
@@ -2259,25 +2349,18 @@
2259
2349
  "relativePath": [
2260
2350
  "dist",
2261
2351
  "commands",
2262
- "release",
2263
- "list",
2352
+ "tenant",
2353
+ "get",
2264
2354
  "index.js"
2265
2355
  ]
2266
2356
  },
2267
- "release:pull": {
2357
+ "tenant:list": {
2268
2358
  "aliases": [],
2269
- "args": {
2270
- "directory": {
2271
- "description": "Output directory for pulled documents",
2272
- "name": "directory",
2273
- "required": true
2274
- }
2275
- },
2276
- "description": "Pull a release multidoc from the Xano Metadata API and split into individual files",
2359
+ "args": {},
2360
+ "description": "List all tenants in a workspace",
2277
2361
  "examples": [
2278
- "$ xano release pull ./my-release -r v1.0\nPulled 42 documents from release 'v1.0' to ./my-release\n",
2279
- "$ xano release pull ./output -r v1.0 -w 40\nPulled 15 documents from release 'v1.0' to ./output\n",
2280
- "$ xano release pull ./backup -r v1.0 --profile production --env --records\nPulled 58 documents from release 'v1.0' to ./backup\n"
2362
+ "$ xano tenant list\nTenants in workspace 5:\n - My Tenant (my-tenant) [ok] - tier1\n - Staging (staging) [ok] - tier1\n",
2363
+ "$ xano tenant list -w 5 --output json"
2281
2364
  ],
2282
2365
  "flags": {
2283
2366
  "profile": {
@@ -2299,32 +2382,23 @@
2299
2382
  "allowNo": false,
2300
2383
  "type": "boolean"
2301
2384
  },
2302
- "env": {
2303
- "description": "Include environment variables",
2304
- "name": "env",
2305
- "required": false,
2306
- "allowNo": false,
2307
- "type": "boolean"
2308
- },
2309
- "records": {
2310
- "description": "Include records",
2311
- "name": "records",
2385
+ "output": {
2386
+ "char": "o",
2387
+ "description": "Output format",
2388
+ "name": "output",
2312
2389
  "required": false,
2313
- "allowNo": false,
2314
- "type": "boolean"
2315
- },
2316
- "release": {
2317
- "char": "r",
2318
- "description": "Release name to pull from",
2319
- "name": "release",
2320
- "required": true,
2390
+ "default": "summary",
2321
2391
  "hasDynamicHelp": false,
2322
2392
  "multiple": false,
2393
+ "options": [
2394
+ "summary",
2395
+ "json"
2396
+ ],
2323
2397
  "type": "option"
2324
2398
  },
2325
2399
  "workspace": {
2326
2400
  "char": "w",
2327
- "description": "Workspace ID (optional if set in profile)",
2401
+ "description": "Workspace ID (uses profile workspace if not provided)",
2328
2402
  "name": "workspace",
2329
2403
  "required": false,
2330
2404
  "hasDynamicHelp": false,
@@ -2334,7 +2408,7 @@
2334
2408
  },
2335
2409
  "hasDynamicHelp": false,
2336
2410
  "hiddenAliases": [],
2337
- "id": "release:pull",
2411
+ "id": "tenant:list",
2338
2412
  "pluginAlias": "@xano/cli",
2339
2413
  "pluginName": "@xano/cli",
2340
2414
  "pluginType": "core",
@@ -2344,27 +2418,24 @@
2344
2418
  "relativePath": [
2345
2419
  "dist",
2346
2420
  "commands",
2347
- "release",
2348
- "pull",
2421
+ "tenant",
2422
+ "list",
2349
2423
  "index.js"
2350
2424
  ]
2351
2425
  },
2352
- "release:push": {
2426
+ "tenant:impersonate": {
2353
2427
  "aliases": [],
2354
2428
  "args": {
2355
- "directory": {
2356
- "description": "Directory containing .xs documents to create the release from",
2357
- "name": "directory",
2429
+ "tenant_name": {
2430
+ "description": "Tenant name to impersonate",
2431
+ "name": "tenant_name",
2358
2432
  "required": true
2359
2433
  }
2360
2434
  },
2361
- "description": "Create a new release from local XanoScript files via the multidoc endpoint",
2435
+ "description": "Impersonate a tenant and open it in the browser",
2362
2436
  "examples": [
2363
- "$ xano release push ./my-release -n \"v1.0\"\nCreated release: v1.0 - ID: 10\n",
2364
- "$ xano release push ./output -n \"v2.0\" -w 40 -d \"Major update\"\nCreated release: v2.0 - ID: 15\n",
2365
- "$ xano release push ./backup -n \"v1.1-hotfix\" --hotfix --profile production\nCreated release: v1.1-hotfix - ID: 20\n",
2366
- "$ xano release push ./my-release -n \"v1.0\" --no-records --no-env\nCreate release from schema only, skip records and environment variables\n",
2367
- "$ xano release push ./my-release -n \"v1.0\" -o json\nOutput release details as JSON\n"
2437
+ "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
2438
+ "$ xano tenant impersonate my-tenant -o json"
2368
2439
  ],
2369
2440
  "flags": {
2370
2441
  "profile": {
@@ -2386,39 +2457,6 @@
2386
2457
  "allowNo": false,
2387
2458
  "type": "boolean"
2388
2459
  },
2389
- "description": {
2390
- "char": "d",
2391
- "description": "Release description",
2392
- "name": "description",
2393
- "required": false,
2394
- "default": "",
2395
- "hasDynamicHelp": false,
2396
- "multiple": false,
2397
- "type": "option"
2398
- },
2399
- "env": {
2400
- "description": "Include environment variables (default: true, use --no-env to exclude)",
2401
- "name": "env",
2402
- "required": false,
2403
- "allowNo": true,
2404
- "type": "boolean"
2405
- },
2406
- "hotfix": {
2407
- "description": "Mark as a hotfix release",
2408
- "name": "hotfix",
2409
- "required": false,
2410
- "allowNo": false,
2411
- "type": "boolean"
2412
- },
2413
- "name": {
2414
- "char": "n",
2415
- "description": "Name for the release",
2416
- "name": "name",
2417
- "required": true,
2418
- "hasDynamicHelp": false,
2419
- "multiple": false,
2420
- "type": "option"
2421
- },
2422
2460
  "output": {
2423
2461
  "char": "o",
2424
2462
  "description": "Output format",
@@ -2433,16 +2471,17 @@
2433
2471
  ],
2434
2472
  "type": "option"
2435
2473
  },
2436
- "records": {
2437
- "description": "Include records (default: true, use --no-records to exclude)",
2438
- "name": "records",
2474
+ "url-only": {
2475
+ "char": "u",
2476
+ "description": "Print the URL without opening the browser",
2477
+ "name": "url-only",
2439
2478
  "required": false,
2440
- "allowNo": true,
2479
+ "allowNo": false,
2441
2480
  "type": "boolean"
2442
2481
  },
2443
2482
  "workspace": {
2444
2483
  "char": "w",
2445
- "description": "Workspace ID (optional if set in profile)",
2484
+ "description": "Workspace ID (uses profile workspace if not provided)",
2446
2485
  "name": "workspace",
2447
2486
  "required": false,
2448
2487
  "hasDynamicHelp": false,
@@ -2452,7 +2491,7 @@
2452
2491
  },
2453
2492
  "hasDynamicHelp": false,
2454
2493
  "hiddenAliases": [],
2455
- "id": "release:push",
2494
+ "id": "tenant:impersonate",
2456
2495
  "pluginAlias": "@xano/cli",
2457
2496
  "pluginName": "@xano/cli",
2458
2497
  "pluginType": "core",
@@ -2462,20 +2501,19 @@
2462
2501
  "relativePath": [
2463
2502
  "dist",
2464
2503
  "commands",
2465
- "release",
2466
- "push",
2504
+ "tenant",
2505
+ "impersonate",
2467
2506
  "index.js"
2468
2507
  ]
2469
2508
  },
2470
- "static_host:list": {
2509
+ "unit_test:list": {
2471
2510
  "aliases": [],
2472
2511
  "args": {},
2473
- "description": "List all static hosts in a workspace from the Xano Metadata API",
2512
+ "description": "List all unit tests in a workspace",
2474
2513
  "examples": [
2475
- "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2476
- "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2477
- "$ xano static_host:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"my-static-host\",\n \"domain\": \"example.com\"\n }\n]\n",
2478
- "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
2514
+ "$ 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",
2515
+ "$ xano unit-test list -w 5 --output json",
2516
+ "$ xano unit-test list --obj-type function"
2479
2517
  ],
2480
2518
  "flags": {
2481
2519
  "profile": {
@@ -2497,6 +2535,28 @@
2497
2535
  "allowNo": false,
2498
2536
  "type": "boolean"
2499
2537
  },
2538
+ "branch": {
2539
+ "char": "b",
2540
+ "description": "Filter by branch name",
2541
+ "name": "branch",
2542
+ "required": false,
2543
+ "hasDynamicHelp": false,
2544
+ "multiple": false,
2545
+ "type": "option"
2546
+ },
2547
+ "obj-type": {
2548
+ "description": "Filter by object type",
2549
+ "name": "obj-type",
2550
+ "required": false,
2551
+ "hasDynamicHelp": false,
2552
+ "multiple": false,
2553
+ "options": [
2554
+ "function",
2555
+ "query",
2556
+ "middleware"
2557
+ ],
2558
+ "type": "option"
2559
+ },
2500
2560
  "output": {
2501
2561
  "char": "o",
2502
2562
  "description": "Output format",
@@ -2511,27 +2571,9 @@
2511
2571
  ],
2512
2572
  "type": "option"
2513
2573
  },
2514
- "page": {
2515
- "description": "Page number for pagination",
2516
- "name": "page",
2517
- "required": false,
2518
- "default": 1,
2519
- "hasDynamicHelp": false,
2520
- "multiple": false,
2521
- "type": "option"
2522
- },
2523
- "per_page": {
2524
- "description": "Number of results per page",
2525
- "name": "per_page",
2526
- "required": false,
2527
- "default": 50,
2528
- "hasDynamicHelp": false,
2529
- "multiple": false,
2530
- "type": "option"
2531
- },
2532
2574
  "workspace": {
2533
2575
  "char": "w",
2534
- "description": "Workspace ID (optional if set in profile)",
2576
+ "description": "Workspace ID (uses profile workspace if not provided)",
2535
2577
  "name": "workspace",
2536
2578
  "required": false,
2537
2579
  "hasDynamicHelp": false,
@@ -2541,7 +2583,7 @@
2541
2583
  },
2542
2584
  "hasDynamicHelp": false,
2543
2585
  "hiddenAliases": [],
2544
- "id": "static_host:list",
2586
+ "id": "unit_test:list",
2545
2587
  "pluginAlias": "@xano/cli",
2546
2588
  "pluginName": "@xano/cli",
2547
2589
  "pluginType": "core",
@@ -2551,24 +2593,26 @@
2551
2593
  "relativePath": [
2552
2594
  "dist",
2553
2595
  "commands",
2554
- "static_host",
2596
+ "unit_test",
2555
2597
  "list",
2556
2598
  "index.js"
2557
2599
  ]
2558
2600
  },
2559
- "tenant:create": {
2601
+ "tenant:pull": {
2560
2602
  "aliases": [],
2561
2603
  "args": {
2562
- "display": {
2563
- "description": "Display name for the tenant",
2564
- "name": "display",
2604
+ "directory": {
2605
+ "description": "Output directory for pulled documents",
2606
+ "name": "directory",
2565
2607
  "required": true
2566
2608
  }
2567
2609
  },
2568
- "description": "Create a new tenant in a workspace",
2610
+ "description": "Pull a tenant multidoc from the Xano Metadata API and split into individual files",
2569
2611
  "examples": [
2570
- "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
2571
- "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
2612
+ "$ xano tenant pull ./my-tenant -t my-tenant\nPulled 42 documents from tenant my-tenant to ./my-tenant\n",
2613
+ "$ xano tenant pull ./output -t my-tenant -w 40\nPulled 15 documents from tenant my-tenant to ./output\n",
2614
+ "$ xano tenant pull ./backup -t my-tenant --profile production --env --records\nPulled 58 documents from tenant my-tenant to ./backup\n",
2615
+ "$ xano tenant pull ./my-tenant -t my-tenant --draft\nPulled 42 documents from tenant my-tenant to ./my-tenant\n"
2572
2616
  ],
2573
2617
  "flags": {
2574
2618
  "profile": {
@@ -2590,88 +2634,134 @@
2590
2634
  "allowNo": false,
2591
2635
  "type": "boolean"
2592
2636
  },
2593
- "cluster_id": {
2594
- "description": "Cluster ID to deploy to (required for tier2/tier3)",
2595
- "name": "cluster_id",
2637
+ "draft": {
2638
+ "description": "Include draft versions",
2639
+ "name": "draft",
2640
+ "required": false,
2641
+ "allowNo": false,
2642
+ "type": "boolean"
2643
+ },
2644
+ "env": {
2645
+ "description": "Include environment variables",
2646
+ "name": "env",
2647
+ "required": false,
2648
+ "allowNo": false,
2649
+ "type": "boolean"
2650
+ },
2651
+ "records": {
2652
+ "description": "Include records",
2653
+ "name": "records",
2596
2654
  "required": false,
2655
+ "allowNo": false,
2656
+ "type": "boolean"
2657
+ },
2658
+ "tenant": {
2659
+ "char": "t",
2660
+ "description": "Tenant name to pull from",
2661
+ "name": "tenant",
2662
+ "required": true,
2597
2663
  "hasDynamicHelp": false,
2598
2664
  "multiple": false,
2599
2665
  "type": "option"
2600
2666
  },
2601
- "description": {
2602
- "char": "d",
2603
- "description": "Tenant description",
2604
- "name": "description",
2667
+ "workspace": {
2668
+ "char": "w",
2669
+ "description": "Workspace ID (optional if set in profile)",
2670
+ "name": "workspace",
2605
2671
  "required": false,
2606
2672
  "hasDynamicHelp": false,
2607
2673
  "multiple": false,
2608
2674
  "type": "option"
2609
- },
2610
- "domain": {
2611
- "description": "Custom domain for the tenant",
2612
- "name": "domain",
2675
+ }
2676
+ },
2677
+ "hasDynamicHelp": false,
2678
+ "hiddenAliases": [],
2679
+ "id": "tenant:pull",
2680
+ "pluginAlias": "@xano/cli",
2681
+ "pluginName": "@xano/cli",
2682
+ "pluginType": "core",
2683
+ "strict": true,
2684
+ "enableJsonFlag": false,
2685
+ "isESM": true,
2686
+ "relativePath": [
2687
+ "dist",
2688
+ "commands",
2689
+ "tenant",
2690
+ "pull",
2691
+ "index.js"
2692
+ ]
2693
+ },
2694
+ "tenant:push": {
2695
+ "aliases": [],
2696
+ "args": {
2697
+ "directory": {
2698
+ "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
2699
+ "name": "directory",
2700
+ "required": true
2701
+ }
2702
+ },
2703
+ "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
2704
+ "examples": [
2705
+ "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
2706
+ "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
2707
+ "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
2708
+ "$ xano tenant push ./my-workspace -t my-tenant --no-records\nPush schema only, skip importing table records\n",
2709
+ "$ xano tenant push ./my-workspace -t my-tenant --no-env\nPush without overwriting environment variables\n",
2710
+ "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
2711
+ ],
2712
+ "flags": {
2713
+ "profile": {
2714
+ "char": "p",
2715
+ "description": "Profile to use (uses default profile if not specified)",
2716
+ "env": "XANO_PROFILE",
2717
+ "name": "profile",
2613
2718
  "required": false,
2614
2719
  "hasDynamicHelp": false,
2615
2720
  "multiple": false,
2616
2721
  "type": "option"
2617
2722
  },
2618
- "ephemeral": {
2619
- "description": "Mark tenant as ephemeral (allows push operations)",
2620
- "name": "ephemeral",
2723
+ "verbose": {
2724
+ "char": "v",
2725
+ "description": "Show detailed request/response information",
2726
+ "env": "XANO_VERBOSE",
2727
+ "name": "verbose",
2728
+ "required": false,
2621
2729
  "allowNo": false,
2622
2730
  "type": "boolean"
2623
2731
  },
2624
- "ingress": {
2625
- "description": "Enable ingress",
2626
- "name": "ingress",
2732
+ "env": {
2733
+ "description": "Include environment variables in import (default: true, use --no-env to exclude)",
2734
+ "name": "env",
2735
+ "required": false,
2627
2736
  "allowNo": true,
2628
2737
  "type": "boolean"
2629
2738
  },
2630
- "license": {
2631
- "description": "License tier",
2632
- "name": "license",
2739
+ "records": {
2740
+ "description": "Include records in import (default: true, use --no-records to exclude)",
2741
+ "name": "records",
2633
2742
  "required": false,
2634
- "default": "tier1",
2635
- "hasDynamicHelp": false,
2636
- "multiple": false,
2637
- "options": [
2638
- "tier1",
2639
- "tier2",
2640
- "tier3"
2641
- ],
2642
- "type": "option"
2743
+ "allowNo": true,
2744
+ "type": "boolean"
2643
2745
  },
2644
- "output": {
2645
- "char": "o",
2646
- "description": "Output format",
2647
- "name": "output",
2648
- "required": false,
2649
- "default": "summary",
2746
+ "tenant": {
2747
+ "char": "t",
2748
+ "description": "Tenant name to push to",
2749
+ "name": "tenant",
2750
+ "required": true,
2650
2751
  "hasDynamicHelp": false,
2651
2752
  "multiple": false,
2652
- "options": [
2653
- "summary",
2654
- "json"
2655
- ],
2656
2753
  "type": "option"
2657
2754
  },
2658
- "platform_id": {
2659
- "description": "Platform ID to use",
2660
- "name": "platform_id",
2755
+ "truncate": {
2756
+ "description": "Truncate all table records before importing",
2757
+ "name": "truncate",
2661
2758
  "required": false,
2662
- "hasDynamicHelp": false,
2663
- "multiple": false,
2664
- "type": "option"
2665
- },
2666
- "tasks": {
2667
- "description": "Enable background tasks",
2668
- "name": "tasks",
2669
- "allowNo": true,
2759
+ "allowNo": false,
2670
2760
  "type": "boolean"
2671
2761
  },
2672
2762
  "workspace": {
2673
2763
  "char": "w",
2674
- "description": "Workspace ID (uses profile workspace if not provided)",
2764
+ "description": "Workspace ID (optional if set in profile)",
2675
2765
  "name": "workspace",
2676
2766
  "required": false,
2677
2767
  "hasDynamicHelp": false,
@@ -2681,7 +2771,7 @@
2681
2771
  },
2682
2772
  "hasDynamicHelp": false,
2683
2773
  "hiddenAliases": [],
2684
- "id": "tenant:create",
2774
+ "id": "tenant:push",
2685
2775
  "pluginAlias": "@xano/cli",
2686
2776
  "pluginName": "@xano/cli",
2687
2777
  "pluginType": "core",
@@ -2692,24 +2782,17 @@
2692
2782
  "dist",
2693
2783
  "commands",
2694
2784
  "tenant",
2695
- "create",
2785
+ "push",
2696
2786
  "index.js"
2697
2787
  ]
2698
2788
  },
2699
- "tenant:delete": {
2789
+ "unit_test:run_all": {
2700
2790
  "aliases": [],
2701
- "args": {
2702
- "tenant_name": {
2703
- "description": "Tenant name to delete",
2704
- "name": "tenant_name",
2705
- "required": true
2706
- }
2707
- },
2708
- "description": "Delete a tenant permanently. This destroys all associated infrastructure and cannot be undone.",
2791
+ "args": {},
2792
+ "description": "Run all unit tests in a workspace",
2709
2793
  "examples": [
2710
- "$ 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",
2711
- "$ xano tenant delete t1234-abcd-xyz1 --force\nDeleted tenant t1234-abcd-xyz1\n",
2712
- "$ xano tenant delete t1234-abcd-xyz1 -f -o json"
2794
+ "$ 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",
2795
+ "$ xano unit-test run-all --obj-type function -o json"
2713
2796
  ],
2714
2797
  "flags": {
2715
2798
  "profile": {
@@ -2731,13 +2814,27 @@
2731
2814
  "allowNo": false,
2732
2815
  "type": "boolean"
2733
2816
  },
2734
- "force": {
2735
- "char": "f",
2736
- "description": "Skip confirmation prompt",
2737
- "name": "force",
2817
+ "branch": {
2818
+ "char": "b",
2819
+ "description": "Filter by branch name",
2820
+ "name": "branch",
2738
2821
  "required": false,
2739
- "allowNo": false,
2740
- "type": "boolean"
2822
+ "hasDynamicHelp": false,
2823
+ "multiple": false,
2824
+ "type": "option"
2825
+ },
2826
+ "obj-type": {
2827
+ "description": "Filter by object type",
2828
+ "name": "obj-type",
2829
+ "required": false,
2830
+ "hasDynamicHelp": false,
2831
+ "multiple": false,
2832
+ "options": [
2833
+ "function",
2834
+ "query",
2835
+ "middleware"
2836
+ ],
2837
+ "type": "option"
2741
2838
  },
2742
2839
  "output": {
2743
2840
  "char": "o",
@@ -2765,7 +2862,7 @@
2765
2862
  },
2766
2863
  "hasDynamicHelp": false,
2767
2864
  "hiddenAliases": [],
2768
- "id": "tenant:delete",
2865
+ "id": "unit_test:run_all",
2769
2866
  "pluginAlias": "@xano/cli",
2770
2867
  "pluginName": "@xano/cli",
2771
2868
  "pluginType": "core",
@@ -2775,24 +2872,18 @@
2775
2872
  "relativePath": [
2776
2873
  "dist",
2777
2874
  "commands",
2778
- "tenant",
2779
- "delete",
2875
+ "unit_test",
2876
+ "run_all",
2780
2877
  "index.js"
2781
2878
  ]
2782
2879
  },
2783
- "tenant:deploy_platform": {
2880
+ "release:create": {
2784
2881
  "aliases": [],
2785
- "args": {
2786
- "tenant_name": {
2787
- "description": "Tenant name to deploy to",
2788
- "name": "tenant_name",
2789
- "required": true
2790
- }
2791
- },
2792
- "description": "Deploy a platform version to a tenant",
2882
+ "args": {},
2883
+ "description": "Create a new release in a workspace",
2793
2884
  "examples": [
2794
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
2795
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json"
2885
+ "$ xano release create --name \"v1.0\" --branch main\nCreated release: v1.0 - ID: 10\n",
2886
+ "$ xano release create --name \"v1.1-hotfix\" --branch main --hotfix --description \"Critical fix\" -o json"
2796
2887
  ],
2797
2888
  "flags": {
2798
2889
  "profile": {
@@ -2814,6 +2905,40 @@
2814
2905
  "allowNo": false,
2815
2906
  "type": "boolean"
2816
2907
  },
2908
+ "branch": {
2909
+ "char": "b",
2910
+ "description": "Branch to create the release from",
2911
+ "name": "branch",
2912
+ "required": true,
2913
+ "hasDynamicHelp": false,
2914
+ "multiple": false,
2915
+ "type": "option"
2916
+ },
2917
+ "description": {
2918
+ "char": "d",
2919
+ "description": "Release description",
2920
+ "name": "description",
2921
+ "required": false,
2922
+ "hasDynamicHelp": false,
2923
+ "multiple": false,
2924
+ "type": "option"
2925
+ },
2926
+ "hotfix": {
2927
+ "description": "Mark as a hotfix release",
2928
+ "name": "hotfix",
2929
+ "required": false,
2930
+ "allowNo": false,
2931
+ "type": "boolean"
2932
+ },
2933
+ "name": {
2934
+ "char": "n",
2935
+ "description": "Name for the release",
2936
+ "name": "name",
2937
+ "required": true,
2938
+ "hasDynamicHelp": false,
2939
+ "multiple": false,
2940
+ "type": "option"
2941
+ },
2817
2942
  "output": {
2818
2943
  "char": "o",
2819
2944
  "description": "Output format",
@@ -2828,10 +2953,10 @@
2828
2953
  ],
2829
2954
  "type": "option"
2830
2955
  },
2831
- "platform_id": {
2832
- "description": "Platform ID to deploy",
2833
- "name": "platform_id",
2834
- "required": true,
2956
+ "table-ids": {
2957
+ "description": "Comma-separated table IDs to include",
2958
+ "name": "table-ids",
2959
+ "required": false,
2835
2960
  "hasDynamicHelp": false,
2836
2961
  "multiple": false,
2837
2962
  "type": "option"
@@ -2848,7 +2973,7 @@
2848
2973
  },
2849
2974
  "hasDynamicHelp": false,
2850
2975
  "hiddenAliases": [],
2851
- "id": "tenant:deploy_platform",
2976
+ "id": "release:create",
2852
2977
  "pluginAlias": "@xano/cli",
2853
2978
  "pluginName": "@xano/cli",
2854
2979
  "pluginType": "core",
@@ -2858,24 +2983,24 @@
2858
2983
  "relativePath": [
2859
2984
  "dist",
2860
2985
  "commands",
2861
- "tenant",
2862
- "deploy_platform",
2986
+ "release",
2987
+ "create",
2863
2988
  "index.js"
2864
2989
  ]
2865
2990
  },
2866
- "tenant:deploy_release": {
2991
+ "unit_test:run": {
2867
2992
  "aliases": [],
2868
2993
  "args": {
2869
- "tenant_name": {
2870
- "description": "Tenant name to deploy to",
2871
- "name": "tenant_name",
2994
+ "unit_test_id": {
2995
+ "description": "ID of the unit test to run",
2996
+ "name": "unit_test_id",
2872
2997
  "required": true
2873
2998
  }
2874
2999
  },
2875
- "description": "Deploy a release to a tenant",
3000
+ "description": "Run a unit test",
2876
3001
  "examples": [
2877
- "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0\nDeployed release \"v1.0\" to tenant: My Tenant (my-tenant)\n",
2878
- "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0 -o json"
3002
+ "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
3003
+ "$ xano unit-test run abc-123 -o json"
2879
3004
  ],
2880
3005
  "flags": {
2881
3006
  "profile": {
@@ -2911,15 +3036,6 @@
2911
3036
  ],
2912
3037
  "type": "option"
2913
3038
  },
2914
- "release": {
2915
- "char": "r",
2916
- "description": "Release name to deploy",
2917
- "name": "release",
2918
- "required": true,
2919
- "hasDynamicHelp": false,
2920
- "multiple": false,
2921
- "type": "option"
2922
- },
2923
3039
  "workspace": {
2924
3040
  "char": "w",
2925
3041
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2932,7 +3048,7 @@
2932
3048
  },
2933
3049
  "hasDynamicHelp": false,
2934
3050
  "hiddenAliases": [],
2935
- "id": "tenant:deploy_release",
3051
+ "id": "unit_test:run",
2936
3052
  "pluginAlias": "@xano/cli",
2937
3053
  "pluginName": "@xano/cli",
2938
3054
  "pluginType": "core",
@@ -2942,24 +3058,25 @@
2942
3058
  "relativePath": [
2943
3059
  "dist",
2944
3060
  "commands",
2945
- "tenant",
2946
- "deploy_release",
3061
+ "unit_test",
3062
+ "run",
2947
3063
  "index.js"
2948
3064
  ]
2949
3065
  },
2950
- "tenant:get": {
3066
+ "release:delete": {
2951
3067
  "aliases": [],
2952
3068
  "args": {
2953
- "tenant_name": {
2954
- "description": "Tenant name to retrieve",
2955
- "name": "tenant_name",
3069
+ "release_name": {
3070
+ "description": "Release name to delete",
3071
+ "name": "release_name",
2956
3072
  "required": true
2957
3073
  }
2958
3074
  },
2959
- "description": "Get details of a specific tenant",
3075
+ "description": "Delete a release permanently. This action cannot be undone.",
2960
3076
  "examples": [
2961
- "$ xano tenant get t1234-abcd-xyz1\nTenant: My Tenant (my-tenant)\n State: ok\n License: tier1\n Domain: my-tenant.xano.io\n Cluster: default\n Release: v1.0\n",
2962
- "$ xano tenant get t1234-abcd-xyz1 -w 5 -o json"
3077
+ "$ 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",
3078
+ "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
3079
+ "$ xano release delete v1.0 -f -o json"
2963
3080
  ],
2964
3081
  "flags": {
2965
3082
  "profile": {
@@ -2981,6 +3098,14 @@
2981
3098
  "allowNo": false,
2982
3099
  "type": "boolean"
2983
3100
  },
3101
+ "force": {
3102
+ "char": "f",
3103
+ "description": "Skip confirmation prompt",
3104
+ "name": "force",
3105
+ "required": false,
3106
+ "allowNo": false,
3107
+ "type": "boolean"
3108
+ },
2984
3109
  "output": {
2985
3110
  "char": "o",
2986
3111
  "description": "Output format",
@@ -3007,7 +3132,7 @@
3007
3132
  },
3008
3133
  "hasDynamicHelp": false,
3009
3134
  "hiddenAliases": [],
3010
- "id": "tenant:get",
3135
+ "id": "release:delete",
3011
3136
  "pluginAlias": "@xano/cli",
3012
3137
  "pluginName": "@xano/cli",
3013
3138
  "pluginType": "core",
@@ -3017,24 +3142,24 @@
3017
3142
  "relativePath": [
3018
3143
  "dist",
3019
3144
  "commands",
3020
- "tenant",
3021
- "get",
3145
+ "release",
3146
+ "delete",
3022
3147
  "index.js"
3023
3148
  ]
3024
3149
  },
3025
- "tenant:edit": {
3150
+ "release:edit": {
3026
3151
  "aliases": [],
3027
3152
  "args": {
3028
- "tenant_name": {
3029
- "description": "Tenant name to edit",
3030
- "name": "tenant_name",
3153
+ "release_name": {
3154
+ "description": "Release name to edit",
3155
+ "name": "release_name",
3031
3156
  "required": true
3032
3157
  }
3033
3158
  },
3034
- "description": "Edit an existing tenant",
3159
+ "description": "Edit an existing release",
3035
3160
  "examples": [
3036
- "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
3037
- "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
3161
+ "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
3162
+ "$ xano release edit v1.0 --description \"New description\" -o json"
3038
3163
  ],
3039
3164
  "flags": {
3040
3165
  "profile": {
@@ -3065,29 +3190,15 @@
3065
3190
  "multiple": false,
3066
3191
  "type": "option"
3067
3192
  },
3068
- "display": {
3069
- "description": "New display name",
3070
- "name": "display",
3071
- "required": false,
3072
- "hasDynamicHelp": false,
3073
- "multiple": false,
3074
- "type": "option"
3075
- },
3076
- "domain": {
3077
- "description": "Custom domain",
3078
- "name": "domain",
3193
+ "name": {
3194
+ "char": "n",
3195
+ "description": "New name for the release",
3196
+ "name": "name",
3079
3197
  "required": false,
3080
3198
  "hasDynamicHelp": false,
3081
3199
  "multiple": false,
3082
3200
  "type": "option"
3083
3201
  },
3084
- "ingress": {
3085
- "description": "Enable/disable ingress",
3086
- "name": "ingress",
3087
- "required": false,
3088
- "allowNo": true,
3089
- "type": "boolean"
3090
- },
3091
3202
  "output": {
3092
3203
  "char": "o",
3093
3204
  "description": "Output format",
@@ -3102,28 +3213,6 @@
3102
3213
  ],
3103
3214
  "type": "option"
3104
3215
  },
3105
- "proxy": {
3106
- "description": "Proxy URL",
3107
- "name": "proxy",
3108
- "required": false,
3109
- "hasDynamicHelp": false,
3110
- "multiple": false,
3111
- "type": "option"
3112
- },
3113
- "rbac": {
3114
- "description": "Enable/disable RBAC",
3115
- "name": "rbac",
3116
- "required": false,
3117
- "allowNo": true,
3118
- "type": "boolean"
3119
- },
3120
- "tasks": {
3121
- "description": "Enable/disable background tasks",
3122
- "name": "tasks",
3123
- "required": false,
3124
- "allowNo": true,
3125
- "type": "boolean"
3126
- },
3127
3216
  "workspace": {
3128
3217
  "char": "w",
3129
3218
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3136,7 +3225,7 @@
3136
3225
  },
3137
3226
  "hasDynamicHelp": false,
3138
3227
  "hiddenAliases": [],
3139
- "id": "tenant:edit",
3228
+ "id": "release:edit",
3140
3229
  "pluginAlias": "@xano/cli",
3141
3230
  "pluginName": "@xano/cli",
3142
3231
  "pluginType": "core",
@@ -3146,24 +3235,25 @@
3146
3235
  "relativePath": [
3147
3236
  "dist",
3148
3237
  "commands",
3149
- "tenant",
3238
+ "release",
3150
3239
  "edit",
3151
3240
  "index.js"
3152
3241
  ]
3153
3242
  },
3154
- "tenant:impersonate": {
3243
+ "release:export": {
3155
3244
  "aliases": [],
3156
3245
  "args": {
3157
- "tenant_name": {
3158
- "description": "Tenant name to impersonate",
3159
- "name": "tenant_name",
3246
+ "release_name": {
3247
+ "description": "Release name to export",
3248
+ "name": "release_name",
3160
3249
  "required": true
3161
3250
  }
3162
3251
  },
3163
- "description": "Impersonate a tenant and open it in the browser",
3252
+ "description": "Export (download) a release to a local file",
3164
3253
  "examples": [
3165
- "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
3166
- "$ xano tenant impersonate my-tenant -o json"
3254
+ "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
3255
+ "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
3256
+ "$ xano release export v1.0 -o json"
3167
3257
  ],
3168
3258
  "flags": {
3169
3259
  "profile": {
@@ -3185,10 +3275,10 @@
3185
3275
  "allowNo": false,
3186
3276
  "type": "boolean"
3187
3277
  },
3188
- "output": {
3278
+ "format": {
3189
3279
  "char": "o",
3190
3280
  "description": "Output format",
3191
- "name": "output",
3281
+ "name": "format",
3192
3282
  "required": false,
3193
3283
  "default": "summary",
3194
3284
  "hasDynamicHelp": false,
@@ -3199,13 +3289,13 @@
3199
3289
  ],
3200
3290
  "type": "option"
3201
3291
  },
3202
- "url-only": {
3203
- "char": "u",
3204
- "description": "Print the URL without opening the browser",
3205
- "name": "url-only",
3292
+ "output": {
3293
+ "description": "Output file path (defaults to ./release-{name}.tar.gz)",
3294
+ "name": "output",
3206
3295
  "required": false,
3207
- "allowNo": false,
3208
- "type": "boolean"
3296
+ "hasDynamicHelp": false,
3297
+ "multiple": false,
3298
+ "type": "option"
3209
3299
  },
3210
3300
  "workspace": {
3211
3301
  "char": "w",
@@ -3219,7 +3309,7 @@
3219
3309
  },
3220
3310
  "hasDynamicHelp": false,
3221
3311
  "hiddenAliases": [],
3222
- "id": "tenant:impersonate",
3312
+ "id": "release:export",
3223
3313
  "pluginAlias": "@xano/cli",
3224
3314
  "pluginName": "@xano/cli",
3225
3315
  "pluginType": "core",
@@ -3229,18 +3319,18 @@
3229
3319
  "relativePath": [
3230
3320
  "dist",
3231
3321
  "commands",
3232
- "tenant",
3233
- "impersonate",
3322
+ "release",
3323
+ "export",
3234
3324
  "index.js"
3235
3325
  ]
3236
3326
  },
3237
- "tenant:list": {
3327
+ "release:list": {
3238
3328
  "aliases": [],
3239
3329
  "args": {},
3240
- "description": "List all tenants in a workspace",
3330
+ "description": "List all releases in a workspace",
3241
3331
  "examples": [
3242
- "$ xano tenant list\nTenants in workspace 5:\n - My Tenant (my-tenant) [ok] - tier1\n - Staging (staging) [ok] - tier1\n",
3243
- "$ xano tenant list -w 5 --output json"
3332
+ "$ xano release list\nReleases in workspace 5:\n - v1.0 (ID: 10) - main\n - v1.1-hotfix (ID: 11) - main [hotfix]\n",
3333
+ "$ xano release list -w 5 --output json"
3244
3334
  ],
3245
3335
  "flags": {
3246
3336
  "profile": {
@@ -3288,7 +3378,7 @@
3288
3378
  },
3289
3379
  "hasDynamicHelp": false,
3290
3380
  "hiddenAliases": [],
3291
- "id": "tenant:list",
3381
+ "id": "release:list",
3292
3382
  "pluginAlias": "@xano/cli",
3293
3383
  "pluginName": "@xano/cli",
3294
3384
  "pluginType": "core",
@@ -3298,12 +3388,12 @@
3298
3388
  "relativePath": [
3299
3389
  "dist",
3300
3390
  "commands",
3301
- "tenant",
3391
+ "release",
3302
3392
  "list",
3303
3393
  "index.js"
3304
3394
  ]
3305
3395
  },
3306
- "tenant:pull": {
3396
+ "release:pull": {
3307
3397
  "aliases": [],
3308
3398
  "args": {
3309
3399
  "directory": {
@@ -3312,12 +3402,11 @@
3312
3402
  "required": true
3313
3403
  }
3314
3404
  },
3315
- "description": "Pull a tenant multidoc from the Xano Metadata API and split into individual files",
3405
+ "description": "Pull a release multidoc from the Xano Metadata API and split into individual files",
3316
3406
  "examples": [
3317
- "$ xano tenant pull ./my-tenant -t my-tenant\nPulled 42 documents from tenant my-tenant to ./my-tenant\n",
3318
- "$ xano tenant pull ./output -t my-tenant -w 40\nPulled 15 documents from tenant my-tenant to ./output\n",
3319
- "$ xano tenant pull ./backup -t my-tenant --profile production --env --records\nPulled 58 documents from tenant my-tenant to ./backup\n",
3320
- "$ xano tenant pull ./my-tenant -t my-tenant --draft\nPulled 42 documents from tenant my-tenant to ./my-tenant\n"
3407
+ "$ xano release pull ./my-release -r v1.0\nPulled 42 documents from release 'v1.0' to ./my-release\n",
3408
+ "$ xano release pull ./output -r v1.0 -w 40\nPulled 15 documents from release 'v1.0' to ./output\n",
3409
+ "$ xano release pull ./backup -r v1.0 --profile production --env --records\nPulled 58 documents from release 'v1.0' to ./backup\n"
3321
3410
  ],
3322
3411
  "flags": {
3323
3412
  "profile": {
@@ -3339,13 +3428,6 @@
3339
3428
  "allowNo": false,
3340
3429
  "type": "boolean"
3341
3430
  },
3342
- "draft": {
3343
- "description": "Include draft versions",
3344
- "name": "draft",
3345
- "required": false,
3346
- "allowNo": false,
3347
- "type": "boolean"
3348
- },
3349
3431
  "env": {
3350
3432
  "description": "Include environment variables",
3351
3433
  "name": "env",
@@ -3360,10 +3442,10 @@
3360
3442
  "allowNo": false,
3361
3443
  "type": "boolean"
3362
3444
  },
3363
- "tenant": {
3364
- "char": "t",
3365
- "description": "Tenant name to pull from",
3366
- "name": "tenant",
3445
+ "release": {
3446
+ "char": "r",
3447
+ "description": "Release name to pull from",
3448
+ "name": "release",
3367
3449
  "required": true,
3368
3450
  "hasDynamicHelp": false,
3369
3451
  "multiple": false,
@@ -3381,7 +3463,7 @@
3381
3463
  },
3382
3464
  "hasDynamicHelp": false,
3383
3465
  "hiddenAliases": [],
3384
- "id": "tenant:pull",
3466
+ "id": "release:pull",
3385
3467
  "pluginAlias": "@xano/cli",
3386
3468
  "pluginName": "@xano/cli",
3387
3469
  "pluginType": "core",
@@ -3391,114 +3473,18 @@
3391
3473
  "relativePath": [
3392
3474
  "dist",
3393
3475
  "commands",
3394
- "tenant",
3476
+ "release",
3395
3477
  "pull",
3396
3478
  "index.js"
3397
3479
  ]
3398
3480
  },
3399
- "tenant:push": {
3400
- "aliases": [],
3401
- "args": {
3402
- "directory": {
3403
- "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3404
- "name": "directory",
3405
- "required": true
3406
- }
3407
- },
3408
- "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3409
- "examples": [
3410
- "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
3411
- "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
3412
- "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
3413
- "$ xano tenant push ./my-workspace -t my-tenant --no-records\nPush schema only, skip importing table records\n",
3414
- "$ xano tenant push ./my-workspace -t my-tenant --no-env\nPush without overwriting environment variables\n",
3415
- "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
3416
- ],
3417
- "flags": {
3418
- "profile": {
3419
- "char": "p",
3420
- "description": "Profile to use (uses default profile if not specified)",
3421
- "env": "XANO_PROFILE",
3422
- "name": "profile",
3423
- "required": false,
3424
- "hasDynamicHelp": false,
3425
- "multiple": false,
3426
- "type": "option"
3427
- },
3428
- "verbose": {
3429
- "char": "v",
3430
- "description": "Show detailed request/response information",
3431
- "env": "XANO_VERBOSE",
3432
- "name": "verbose",
3433
- "required": false,
3434
- "allowNo": false,
3435
- "type": "boolean"
3436
- },
3437
- "env": {
3438
- "description": "Include environment variables in import (default: true, use --no-env to exclude)",
3439
- "name": "env",
3440
- "required": false,
3441
- "allowNo": true,
3442
- "type": "boolean"
3443
- },
3444
- "records": {
3445
- "description": "Include records in import (default: true, use --no-records to exclude)",
3446
- "name": "records",
3447
- "required": false,
3448
- "allowNo": true,
3449
- "type": "boolean"
3450
- },
3451
- "tenant": {
3452
- "char": "t",
3453
- "description": "Tenant name to push to",
3454
- "name": "tenant",
3455
- "required": true,
3456
- "hasDynamicHelp": false,
3457
- "multiple": false,
3458
- "type": "option"
3459
- },
3460
- "truncate": {
3461
- "description": "Truncate all table records before importing",
3462
- "name": "truncate",
3463
- "required": false,
3464
- "allowNo": false,
3465
- "type": "boolean"
3466
- },
3467
- "workspace": {
3468
- "char": "w",
3469
- "description": "Workspace ID (optional if set in profile)",
3470
- "name": "workspace",
3471
- "required": false,
3472
- "hasDynamicHelp": false,
3473
- "multiple": false,
3474
- "type": "option"
3475
- }
3476
- },
3477
- "hasDynamicHelp": false,
3478
- "hiddenAliases": [],
3479
- "id": "tenant:push",
3480
- "pluginAlias": "@xano/cli",
3481
- "pluginName": "@xano/cli",
3482
- "pluginType": "core",
3483
- "strict": true,
3484
- "enableJsonFlag": false,
3485
- "isESM": true,
3486
- "relativePath": [
3487
- "dist",
3488
- "commands",
3489
- "tenant",
3490
- "push",
3491
- "index.js"
3492
- ]
3493
- },
3494
- "unit_test:list": {
3481
+ "release:import": {
3495
3482
  "aliases": [],
3496
3483
  "args": {},
3497
- "description": "List all unit tests in a workspace",
3484
+ "description": "Import a release file into a workspace",
3498
3485
  "examples": [
3499
- "$ xano unit-test list\nUnit tests in workspace 5:\n - my-test (ID: abc-123) [function: math]\n - auth-check (ID: def-456) [query: /user/login]\n",
3500
- "$ xano unit-test list -w 5 --output json",
3501
- "$ xano unit-test list --obj-type function"
3486
+ "$ xano release import --file ./my-release.tar.gz\nImported release as #15\n",
3487
+ "$ xano release import --file ./my-release.tar.gz -o json"
3502
3488
  ],
3503
3489
  "flags": {
3504
3490
  "profile": {
@@ -3520,26 +3506,13 @@
3520
3506
  "allowNo": false,
3521
3507
  "type": "boolean"
3522
3508
  },
3523
- "branch": {
3524
- "char": "b",
3525
- "description": "Filter by branch name",
3526
- "name": "branch",
3527
- "required": false,
3528
- "hasDynamicHelp": false,
3529
- "multiple": false,
3530
- "type": "option"
3531
- },
3532
- "obj-type": {
3533
- "description": "Filter by object type",
3534
- "name": "obj-type",
3535
- "required": false,
3509
+ "file": {
3510
+ "char": "f",
3511
+ "description": "Path to the release file (.tar.gz)",
3512
+ "name": "file",
3513
+ "required": true,
3536
3514
  "hasDynamicHelp": false,
3537
3515
  "multiple": false,
3538
- "options": [
3539
- "function",
3540
- "query",
3541
- "middleware"
3542
- ],
3543
3516
  "type": "option"
3544
3517
  },
3545
3518
  "output": {
@@ -3568,7 +3541,7 @@
3568
3541
  },
3569
3542
  "hasDynamicHelp": false,
3570
3543
  "hiddenAliases": [],
3571
- "id": "unit_test:list",
3544
+ "id": "release:import",
3572
3545
  "pluginAlias": "@xano/cli",
3573
3546
  "pluginName": "@xano/cli",
3574
3547
  "pluginType": "core",
@@ -3578,24 +3551,24 @@
3578
3551
  "relativePath": [
3579
3552
  "dist",
3580
3553
  "commands",
3581
- "unit_test",
3582
- "list",
3554
+ "release",
3555
+ "import",
3583
3556
  "index.js"
3584
3557
  ]
3585
3558
  },
3586
- "unit_test:run": {
3559
+ "release:get": {
3587
3560
  "aliases": [],
3588
3561
  "args": {
3589
- "unit_test_id": {
3590
- "description": "ID of the unit test to run",
3591
- "name": "unit_test_id",
3562
+ "release_name": {
3563
+ "description": "Release name to retrieve",
3564
+ "name": "release_name",
3592
3565
  "required": true
3593
3566
  }
3594
3567
  },
3595
- "description": "Run a unit test",
3568
+ "description": "Get details of a specific release",
3596
3569
  "examples": [
3597
- "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
3598
- "$ xano unit-test run abc-123 -o json"
3570
+ "$ xano release get v1.0\nRelease: v1.0 - ID: 10\n Branch: main\n Description: Initial release\n Hotfix: false\n",
3571
+ "$ xano release get v1.0 -w 5 -o json"
3599
3572
  ],
3600
3573
  "flags": {
3601
3574
  "profile": {
@@ -3643,7 +3616,7 @@
3643
3616
  },
3644
3617
  "hasDynamicHelp": false,
3645
3618
  "hiddenAliases": [],
3646
- "id": "unit_test:run",
3619
+ "id": "release:get",
3647
3620
  "pluginAlias": "@xano/cli",
3648
3621
  "pluginName": "@xano/cli",
3649
3622
  "pluginType": "core",
@@ -3653,18 +3626,27 @@
3653
3626
  "relativePath": [
3654
3627
  "dist",
3655
3628
  "commands",
3656
- "unit_test",
3657
- "run",
3629
+ "release",
3630
+ "get",
3658
3631
  "index.js"
3659
3632
  ]
3660
3633
  },
3661
- "unit_test:run_all": {
3634
+ "release:push": {
3662
3635
  "aliases": [],
3663
- "args": {},
3664
- "description": "Run all unit tests in a workspace",
3636
+ "args": {
3637
+ "directory": {
3638
+ "description": "Directory containing .xs documents to create the release from",
3639
+ "name": "directory",
3640
+ "required": true
3641
+ }
3642
+ },
3643
+ "description": "Create a new release from local XanoScript files via the multidoc endpoint",
3665
3644
  "examples": [
3666
- "$ 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",
3667
- "$ xano unit-test run-all --obj-type function -o json"
3645
+ "$ xano release push ./my-release -n \"v1.0\"\nCreated release: v1.0 - ID: 10\n",
3646
+ "$ xano release push ./output -n \"v2.0\" -w 40 -d \"Major update\"\nCreated release: v2.0 - ID: 15\n",
3647
+ "$ xano release push ./backup -n \"v1.1-hotfix\" --hotfix --profile production\nCreated release: v1.1-hotfix - ID: 20\n",
3648
+ "$ xano release push ./my-release -n \"v1.0\" --no-records --no-env\nCreate release from schema only, skip records and environment variables\n",
3649
+ "$ xano release push ./my-release -n \"v1.0\" -o json\nOutput release details as JSON\n"
3668
3650
  ],
3669
3651
  "flags": {
3670
3652
  "profile": {
@@ -3686,26 +3668,37 @@
3686
3668
  "allowNo": false,
3687
3669
  "type": "boolean"
3688
3670
  },
3689
- "branch": {
3690
- "char": "b",
3691
- "description": "Filter by branch name",
3692
- "name": "branch",
3671
+ "description": {
3672
+ "char": "d",
3673
+ "description": "Release description",
3674
+ "name": "description",
3693
3675
  "required": false,
3676
+ "default": "",
3694
3677
  "hasDynamicHelp": false,
3695
3678
  "multiple": false,
3696
3679
  "type": "option"
3697
3680
  },
3698
- "obj-type": {
3699
- "description": "Filter by object type",
3700
- "name": "obj-type",
3681
+ "env": {
3682
+ "description": "Include environment variables (default: true, use --no-env to exclude)",
3683
+ "name": "env",
3684
+ "required": false,
3685
+ "allowNo": true,
3686
+ "type": "boolean"
3687
+ },
3688
+ "hotfix": {
3689
+ "description": "Mark as a hotfix release",
3690
+ "name": "hotfix",
3701
3691
  "required": false,
3692
+ "allowNo": false,
3693
+ "type": "boolean"
3694
+ },
3695
+ "name": {
3696
+ "char": "n",
3697
+ "description": "Name for the release",
3698
+ "name": "name",
3699
+ "required": true,
3702
3700
  "hasDynamicHelp": false,
3703
3701
  "multiple": false,
3704
- "options": [
3705
- "function",
3706
- "query",
3707
- "middleware"
3708
- ],
3709
3702
  "type": "option"
3710
3703
  },
3711
3704
  "output": {
@@ -3722,9 +3715,16 @@
3722
3715
  ],
3723
3716
  "type": "option"
3724
3717
  },
3718
+ "records": {
3719
+ "description": "Include records (default: true, use --no-records to exclude)",
3720
+ "name": "records",
3721
+ "required": false,
3722
+ "allowNo": true,
3723
+ "type": "boolean"
3724
+ },
3725
3725
  "workspace": {
3726
3726
  "char": "w",
3727
- "description": "Workspace ID (uses profile workspace if not provided)",
3727
+ "description": "Workspace ID (optional if set in profile)",
3728
3728
  "name": "workspace",
3729
3729
  "required": false,
3730
3730
  "hasDynamicHelp": false,
@@ -3734,7 +3734,7 @@
3734
3734
  },
3735
3735
  "hasDynamicHelp": false,
3736
3736
  "hiddenAliases": [],
3737
- "id": "unit_test:run_all",
3737
+ "id": "release:push",
3738
3738
  "pluginAlias": "@xano/cli",
3739
3739
  "pluginName": "@xano/cli",
3740
3740
  "pluginType": "core",
@@ -3744,8 +3744,8 @@
3744
3744
  "relativePath": [
3745
3745
  "dist",
3746
3746
  "commands",
3747
- "unit_test",
3748
- "run_all",
3747
+ "release",
3748
+ "push",
3749
3749
  "index.js"
3750
3750
  ]
3751
3751
  },
@@ -3995,19 +3995,13 @@
3995
3995
  "index.js"
3996
3996
  ]
3997
3997
  },
3998
- "workflow_test:run": {
3998
+ "workflow_test:run_all": {
3999
3999
  "aliases": [],
4000
- "args": {
4001
- "workflow_test_id": {
4002
- "description": "ID of the workflow test to run",
4003
- "name": "workflow_test_id",
4004
- "required": true
4005
- }
4006
- },
4007
- "description": "Run a workflow test",
4000
+ "args": {},
4001
+ "description": "Run all workflow tests in a workspace",
4008
4002
  "examples": [
4009
- "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
4010
- "$ xano workflow-test run 1 -o json"
4003
+ "$ 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",
4004
+ "$ xano workflow-test run-all --branch main -o json"
4011
4005
  ],
4012
4006
  "flags": {
4013
4007
  "profile": {
@@ -4029,6 +4023,15 @@
4029
4023
  "allowNo": false,
4030
4024
  "type": "boolean"
4031
4025
  },
4026
+ "branch": {
4027
+ "char": "b",
4028
+ "description": "Filter by branch name",
4029
+ "name": "branch",
4030
+ "required": false,
4031
+ "hasDynamicHelp": false,
4032
+ "multiple": false,
4033
+ "type": "option"
4034
+ },
4032
4035
  "output": {
4033
4036
  "char": "o",
4034
4037
  "description": "Output format",
@@ -4055,7 +4058,7 @@
4055
4058
  },
4056
4059
  "hasDynamicHelp": false,
4057
4060
  "hiddenAliases": [],
4058
- "id": "workflow_test:run",
4061
+ "id": "workflow_test:run_all",
4059
4062
  "pluginAlias": "@xano/cli",
4060
4063
  "pluginName": "@xano/cli",
4061
4064
  "pluginType": "core",
@@ -4066,17 +4069,24 @@
4066
4069
  "dist",
4067
4070
  "commands",
4068
4071
  "workflow_test",
4069
- "run",
4072
+ "run_all",
4070
4073
  "index.js"
4071
4074
  ]
4072
4075
  },
4073
- "workflow_test:run_all": {
4076
+ "workspace:create": {
4074
4077
  "aliases": [],
4075
- "args": {},
4076
- "description": "Run all workflow tests in a workspace",
4078
+ "args": {
4079
+ "name": {
4080
+ "description": "Name of the workspace",
4081
+ "name": "name",
4082
+ "required": true
4083
+ }
4084
+ },
4085
+ "description": "Create a new workspace via the Xano Metadata API",
4077
4086
  "examples": [
4078
- "$ xano workflow-test run-all\nRunning 3 workflow tests...\n\nPASS my-test (1.234s)\nPASS auth-flow (0.567s)\nFAIL data-validation (0.890s)\n Error: assertion failed at step 3\n\nResults: 2 passed, 1 failed (2.691s total)\n",
4079
- "$ xano workflow-test run-all --branch main -o json"
4087
+ "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
4088
+ "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
4089
+ "$ 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"
4080
4090
  ],
4081
4091
  "flags": {
4082
4092
  "profile": {
@@ -4098,15 +4108,81 @@
4098
4108
  "allowNo": false,
4099
4109
  "type": "boolean"
4100
4110
  },
4101
- "branch": {
4102
- "char": "b",
4103
- "description": "Filter by branch name",
4104
- "name": "branch",
4111
+ "description": {
4112
+ "char": "d",
4113
+ "description": "Description for the workspace",
4114
+ "name": "description",
4115
+ "required": false,
4116
+ "hasDynamicHelp": false,
4117
+ "multiple": false,
4118
+ "type": "option"
4119
+ },
4120
+ "output": {
4121
+ "char": "o",
4122
+ "description": "Output format",
4123
+ "name": "output",
4124
+ "required": false,
4125
+ "default": "summary",
4126
+ "hasDynamicHelp": false,
4127
+ "multiple": false,
4128
+ "options": [
4129
+ "summary",
4130
+ "json"
4131
+ ],
4132
+ "type": "option"
4133
+ }
4134
+ },
4135
+ "hasDynamicHelp": false,
4136
+ "hiddenAliases": [],
4137
+ "id": "workspace:create",
4138
+ "pluginAlias": "@xano/cli",
4139
+ "pluginName": "@xano/cli",
4140
+ "pluginType": "core",
4141
+ "strict": true,
4142
+ "enableJsonFlag": false,
4143
+ "isESM": true,
4144
+ "relativePath": [
4145
+ "dist",
4146
+ "commands",
4147
+ "workspace",
4148
+ "create",
4149
+ "index.js"
4150
+ ]
4151
+ },
4152
+ "workflow_test:run": {
4153
+ "aliases": [],
4154
+ "args": {
4155
+ "workflow_test_id": {
4156
+ "description": "ID of the workflow test to run",
4157
+ "name": "workflow_test_id",
4158
+ "required": true
4159
+ }
4160
+ },
4161
+ "description": "Run a workflow test",
4162
+ "examples": [
4163
+ "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
4164
+ "$ xano workflow-test run 1 -o json"
4165
+ ],
4166
+ "flags": {
4167
+ "profile": {
4168
+ "char": "p",
4169
+ "description": "Profile to use (uses default profile if not specified)",
4170
+ "env": "XANO_PROFILE",
4171
+ "name": "profile",
4105
4172
  "required": false,
4106
4173
  "hasDynamicHelp": false,
4107
4174
  "multiple": false,
4108
4175
  "type": "option"
4109
4176
  },
4177
+ "verbose": {
4178
+ "char": "v",
4179
+ "description": "Show detailed request/response information",
4180
+ "env": "XANO_VERBOSE",
4181
+ "name": "verbose",
4182
+ "required": false,
4183
+ "allowNo": false,
4184
+ "type": "boolean"
4185
+ },
4110
4186
  "output": {
4111
4187
  "char": "o",
4112
4188
  "description": "Output format",
@@ -4133,7 +4209,7 @@
4133
4209
  },
4134
4210
  "hasDynamicHelp": false,
4135
4211
  "hiddenAliases": [],
4136
- "id": "workflow_test:run_all",
4212
+ "id": "workflow_test:run",
4137
4213
  "pluginAlias": "@xano/cli",
4138
4214
  "pluginName": "@xano/cli",
4139
4215
  "pluginType": "core",
@@ -4144,24 +4220,24 @@
4144
4220
  "dist",
4145
4221
  "commands",
4146
4222
  "workflow_test",
4147
- "run_all",
4223
+ "run",
4148
4224
  "index.js"
4149
4225
  ]
4150
4226
  },
4151
- "workspace:create": {
4227
+ "workspace:get": {
4152
4228
  "aliases": [],
4153
4229
  "args": {
4154
- "name": {
4155
- "description": "Name of the workspace",
4156
- "name": "name",
4157
- "required": true
4230
+ "workspace_id": {
4231
+ "description": "Workspace ID to get details for (uses profile workspace if not provided)",
4232
+ "name": "workspace_id",
4233
+ "required": false
4158
4234
  }
4159
4235
  },
4160
- "description": "Create a new workspace via the Xano Metadata API",
4236
+ "description": "Get details of a specific workspace from the Xano Metadata API",
4161
4237
  "examples": [
4162
- "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
4163
- "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
4164
- "$ xano workspace create new-project -d \"New project workspace\" -o json\n{\n \"id\": 789,\n \"name\": \"new-project\",\n \"description\": \"New project workspace\"\n}\n"
4238
+ "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
4239
+ "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
4240
+ "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
4165
4241
  ],
4166
4242
  "flags": {
4167
4243
  "profile": {
@@ -4183,15 +4259,6 @@
4183
4259
  "allowNo": false,
4184
4260
  "type": "boolean"
4185
4261
  },
4186
- "description": {
4187
- "char": "d",
4188
- "description": "Description for the workspace",
4189
- "name": "description",
4190
- "required": false,
4191
- "hasDynamicHelp": false,
4192
- "multiple": false,
4193
- "type": "option"
4194
- },
4195
4262
  "output": {
4196
4263
  "char": "o",
4197
4264
  "description": "Output format",
@@ -4209,7 +4276,7 @@
4209
4276
  },
4210
4277
  "hasDynamicHelp": false,
4211
4278
  "hiddenAliases": [],
4212
- "id": "workspace:create",
4279
+ "id": "workspace:get",
4213
4280
  "pluginAlias": "@xano/cli",
4214
4281
  "pluginName": "@xano/cli",
4215
4282
  "pluginType": "core",
@@ -4220,7 +4287,7 @@
4220
4287
  "dist",
4221
4288
  "commands",
4222
4289
  "workspace",
4223
- "create",
4290
+ "get",
4224
4291
  "index.js"
4225
4292
  ]
4226
4293
  },
@@ -4399,20 +4466,20 @@
4399
4466
  "index.js"
4400
4467
  ]
4401
4468
  },
4402
- "workspace:get": {
4469
+ "static_host:build:create": {
4403
4470
  "aliases": [],
4404
4471
  "args": {
4405
- "workspace_id": {
4406
- "description": "Workspace ID to get details for (uses profile workspace if not provided)",
4407
- "name": "workspace_id",
4408
- "required": false
4472
+ "static_host": {
4473
+ "description": "Static Host name",
4474
+ "name": "static_host",
4475
+ "required": true
4409
4476
  }
4410
4477
  },
4411
- "description": "Get details of a specific workspace from the Xano Metadata API",
4478
+ "description": "Create a new build for a static host",
4412
4479
  "examples": [
4413
- "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
4414
- "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
4415
- "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
4480
+ "$ xano static_host:build:create default -f ./build.zip -n \"v1.0.0\"\nBuild created successfully!\nID: 123\nName: v1.0.0\nStatus: pending\n",
4481
+ "$ xano static_host:build:create default -w 40 -f ./dist.zip -n \"production\" -d \"Production build\"\nBuild created successfully!\nID: 124\nName: production\nDescription: Production build\n",
4482
+ "$ xano static_host:build:create myhost -f ./app.zip -n \"release-1.2\" -o json\n{\n \"id\": 125,\n \"name\": \"release-1.2\",\n \"status\": \"pending\"\n}\n"
4416
4483
  ],
4417
4484
  "flags": {
4418
4485
  "profile": {
@@ -4434,6 +4501,33 @@
4434
4501
  "allowNo": false,
4435
4502
  "type": "boolean"
4436
4503
  },
4504
+ "description": {
4505
+ "char": "d",
4506
+ "description": "Build description",
4507
+ "name": "description",
4508
+ "required": false,
4509
+ "hasDynamicHelp": false,
4510
+ "multiple": false,
4511
+ "type": "option"
4512
+ },
4513
+ "file": {
4514
+ "char": "f",
4515
+ "description": "Path to zip file to upload",
4516
+ "name": "file",
4517
+ "required": true,
4518
+ "hasDynamicHelp": false,
4519
+ "multiple": false,
4520
+ "type": "option"
4521
+ },
4522
+ "name": {
4523
+ "char": "n",
4524
+ "description": "Build name",
4525
+ "name": "name",
4526
+ "required": true,
4527
+ "hasDynamicHelp": false,
4528
+ "multiple": false,
4529
+ "type": "option"
4530
+ },
4437
4531
  "output": {
4438
4532
  "char": "o",
4439
4533
  "description": "Output format",
@@ -4447,11 +4541,83 @@
4447
4541
  "json"
4448
4542
  ],
4449
4543
  "type": "option"
4544
+ },
4545
+ "workspace": {
4546
+ "char": "w",
4547
+ "description": "Workspace ID (optional if set in profile)",
4548
+ "name": "workspace",
4549
+ "required": false,
4550
+ "hasDynamicHelp": false,
4551
+ "multiple": false,
4552
+ "type": "option"
4450
4553
  }
4451
4554
  },
4452
4555
  "hasDynamicHelp": false,
4453
4556
  "hiddenAliases": [],
4454
- "id": "workspace:get",
4557
+ "id": "static_host:build:create",
4558
+ "pluginAlias": "@xano/cli",
4559
+ "pluginName": "@xano/cli",
4560
+ "pluginType": "core",
4561
+ "strict": true,
4562
+ "enableJsonFlag": false,
4563
+ "isESM": true,
4564
+ "relativePath": [
4565
+ "dist",
4566
+ "commands",
4567
+ "static_host",
4568
+ "build",
4569
+ "create",
4570
+ "index.js"
4571
+ ]
4572
+ },
4573
+ "workspace:list": {
4574
+ "aliases": [],
4575
+ "args": {},
4576
+ "description": "List all workspaces from the Xano Metadata API",
4577
+ "examples": [
4578
+ "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4579
+ "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4580
+ "$ 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",
4581
+ "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4582
+ ],
4583
+ "flags": {
4584
+ "profile": {
4585
+ "char": "p",
4586
+ "description": "Profile to use (uses default profile if not specified)",
4587
+ "env": "XANO_PROFILE",
4588
+ "name": "profile",
4589
+ "required": false,
4590
+ "hasDynamicHelp": false,
4591
+ "multiple": false,
4592
+ "type": "option"
4593
+ },
4594
+ "verbose": {
4595
+ "char": "v",
4596
+ "description": "Show detailed request/response information",
4597
+ "env": "XANO_VERBOSE",
4598
+ "name": "verbose",
4599
+ "required": false,
4600
+ "allowNo": false,
4601
+ "type": "boolean"
4602
+ },
4603
+ "output": {
4604
+ "char": "o",
4605
+ "description": "Output format",
4606
+ "name": "output",
4607
+ "required": false,
4608
+ "default": "summary",
4609
+ "hasDynamicHelp": false,
4610
+ "multiple": false,
4611
+ "options": [
4612
+ "summary",
4613
+ "json"
4614
+ ],
4615
+ "type": "option"
4616
+ }
4617
+ },
4618
+ "hasDynamicHelp": false,
4619
+ "hiddenAliases": [],
4620
+ "id": "workspace:list",
4455
4621
  "pluginAlias": "@xano/cli",
4456
4622
  "pluginName": "@xano/cli",
4457
4623
  "pluginType": "core",
@@ -4462,32 +4628,26 @@
4462
4628
  "dist",
4463
4629
  "commands",
4464
4630
  "workspace",
4465
- "get",
4631
+ "list",
4466
4632
  "index.js"
4467
4633
  ]
4468
4634
  },
4469
- "workspace:push": {
4635
+ "workspace:pull": {
4470
4636
  "aliases": [],
4471
4637
  "args": {
4472
4638
  "directory": {
4473
- "description": "Directory containing documents to push (as produced by workspace pull)",
4639
+ "description": "Output directory for pulled documents",
4474
4640
  "name": "directory",
4475
4641
  "required": true
4476
4642
  }
4477
4643
  },
4478
- "description": "Push local documents to a workspace via the Xano Metadata API multidoc endpoint",
4644
+ "description": "Pull a workspace multidoc from the Xano Metadata API and split into individual files",
4479
4645
  "examples": [
4480
- "$ xano workspace push ./my-workspace\nPushed 42 documents from ./my-workspace\n",
4481
- "$ xano workspace push ./output -w 40\nPushed 15 documents from ./output\n",
4482
- "$ xano workspace push ./backup --profile production\nPushed 58 documents from ./backup\n",
4483
- "$ xano workspace push ./my-workspace -b dev\nPushed 42 documents from ./my-workspace\n",
4484
- "$ xano workspace push ./my-functions --partial\nPush some files without a workspace block (implies --no-delete)\n",
4485
- "$ xano workspace push ./my-workspace --no-delete\nPatch files without deleting existing workspace objects\n",
4486
- "$ xano workspace push ./my-workspace --no-records\nPush schema only, skip importing table records\n",
4487
- "$ xano workspace push ./my-workspace --no-env\nPush without overwriting environment variables\n",
4488
- "$ xano workspace push ./my-workspace --truncate\nTruncate all table records before importing\n",
4489
- "$ xano workspace push ./my-workspace --truncate --no-records\nTruncate all table records without importing new ones\n",
4490
- "$ xano workspace push ./my-workspace --no-records --no-env\nPush schema only, skip records and environment variables\n"
4646
+ "$ xano workspace pull ./my-workspace\nPulled 42 documents to ./my-workspace\n",
4647
+ "$ xano workspace pull ./output -w 40\nPulled 15 documents to ./output\n",
4648
+ "$ xano workspace pull ./backup --profile production --env --records\nPulled 58 documents to ./backup\n",
4649
+ "$ xano workspace pull ./my-workspace --draft\nPulled 42 documents to ./my-workspace\n",
4650
+ "$ xano workspace pull ./my-workspace -b dev\nPulled 42 documents to ./my-workspace\n"
4491
4651
  ],
4492
4652
  "flags": {
4493
4653
  "profile": {
@@ -4518,45 +4678,24 @@
4518
4678
  "multiple": false,
4519
4679
  "type": "option"
4520
4680
  },
4521
- "delete": {
4522
- "description": "Delete workspace objects not included in the push (default: false)",
4523
- "name": "delete",
4524
- "required": false,
4525
- "allowNo": true,
4526
- "type": "boolean"
4527
- },
4528
4681
  "env": {
4529
- "description": "Include environment variables in import (default: true, use --no-env to exclude)",
4682
+ "description": "Include environment variables",
4530
4683
  "name": "env",
4531
4684
  "required": false,
4532
- "allowNo": true,
4685
+ "allowNo": false,
4533
4686
  "type": "boolean"
4534
4687
  },
4535
- "partial": {
4536
- "description": "Partial push — workspace block is not required, existing objects are kept (implies --no-delete)",
4537
- "name": "partial",
4688
+ "draft": {
4689
+ "description": "Include draft versions",
4690
+ "name": "draft",
4538
4691
  "required": false,
4539
4692
  "allowNo": false,
4540
4693
  "type": "boolean"
4541
4694
  },
4542
4695
  "records": {
4543
- "description": "Include records in import (default: true, use --no-records to exclude)",
4696
+ "description": "Include records",
4544
4697
  "name": "records",
4545
4698
  "required": false,
4546
- "allowNo": true,
4547
- "type": "boolean"
4548
- },
4549
- "sync-guids": {
4550
- "description": "Write server-assigned GUIDs back to local files (use --no-sync-guids to skip)",
4551
- "name": "sync-guids",
4552
- "required": false,
4553
- "allowNo": true,
4554
- "type": "boolean"
4555
- },
4556
- "truncate": {
4557
- "description": "Truncate all table records before importing",
4558
- "name": "truncate",
4559
- "required": false,
4560
4699
  "allowNo": false,
4561
4700
  "type": "boolean"
4562
4701
  },
@@ -4572,7 +4711,7 @@
4572
4711
  },
4573
4712
  "hasDynamicHelp": false,
4574
4713
  "hiddenAliases": [],
4575
- "id": "workspace:push",
4714
+ "id": "workspace:pull",
4576
4715
  "pluginAlias": "@xano/cli",
4577
4716
  "pluginName": "@xano/cli",
4578
4717
  "pluginType": "core",
@@ -4583,26 +4722,32 @@
4583
4722
  "dist",
4584
4723
  "commands",
4585
4724
  "workspace",
4586
- "push",
4725
+ "pull",
4587
4726
  "index.js"
4588
4727
  ]
4589
4728
  },
4590
- "workspace:pull": {
4729
+ "workspace:push": {
4591
4730
  "aliases": [],
4592
4731
  "args": {
4593
4732
  "directory": {
4594
- "description": "Output directory for pulled documents",
4733
+ "description": "Directory containing documents to push (as produced by workspace pull)",
4595
4734
  "name": "directory",
4596
4735
  "required": true
4597
4736
  }
4598
4737
  },
4599
- "description": "Pull a workspace multidoc from the Xano Metadata API and split into individual files",
4738
+ "description": "Push local documents to a workspace via the Xano Metadata API multidoc endpoint",
4600
4739
  "examples": [
4601
- "$ xano workspace pull ./my-workspace\nPulled 42 documents to ./my-workspace\n",
4602
- "$ xano workspace pull ./output -w 40\nPulled 15 documents to ./output\n",
4603
- "$ xano workspace pull ./backup --profile production --env --records\nPulled 58 documents to ./backup\n",
4604
- "$ xano workspace pull ./my-workspace --draft\nPulled 42 documents to ./my-workspace\n",
4605
- "$ xano workspace pull ./my-workspace -b dev\nPulled 42 documents to ./my-workspace\n"
4740
+ "$ xano workspace push ./my-workspace\nPushed 42 documents from ./my-workspace\n",
4741
+ "$ xano workspace push ./output -w 40\nPushed 15 documents from ./output\n",
4742
+ "$ xano workspace push ./backup --profile production\nPushed 58 documents from ./backup\n",
4743
+ "$ xano workspace push ./my-workspace -b dev\nPushed 42 documents from ./my-workspace\n",
4744
+ "$ xano workspace push ./my-functions --partial\nPush some files without a workspace block (implies --no-delete)\n",
4745
+ "$ xano workspace push ./my-workspace --no-delete\nPatch files without deleting existing workspace objects\n",
4746
+ "$ xano workspace push ./my-workspace --no-records\nPush schema only, skip importing table records\n",
4747
+ "$ xano workspace push ./my-workspace --no-env\nPush without overwriting environment variables\n",
4748
+ "$ xano workspace push ./my-workspace --truncate\nTruncate all table records before importing\n",
4749
+ "$ xano workspace push ./my-workspace --truncate --no-records\nTruncate all table records without importing new ones\n",
4750
+ "$ xano workspace push ./my-workspace --no-records --no-env\nPush schema only, skip records and environment variables\n"
4606
4751
  ],
4607
4752
  "flags": {
4608
4753
  "profile": {
@@ -4633,24 +4778,45 @@
4633
4778
  "multiple": false,
4634
4779
  "type": "option"
4635
4780
  },
4781
+ "delete": {
4782
+ "description": "Delete workspace objects not included in the push (default: false)",
4783
+ "name": "delete",
4784
+ "required": false,
4785
+ "allowNo": true,
4786
+ "type": "boolean"
4787
+ },
4636
4788
  "env": {
4637
- "description": "Include environment variables",
4789
+ "description": "Include environment variables in import (default: true, use --no-env to exclude)",
4638
4790
  "name": "env",
4639
4791
  "required": false,
4640
- "allowNo": false,
4792
+ "allowNo": true,
4641
4793
  "type": "boolean"
4642
4794
  },
4643
- "draft": {
4644
- "description": "Include draft versions",
4645
- "name": "draft",
4795
+ "partial": {
4796
+ "description": "Partial push — workspace block is not required, existing objects are kept (implies --no-delete)",
4797
+ "name": "partial",
4646
4798
  "required": false,
4647
4799
  "allowNo": false,
4648
4800
  "type": "boolean"
4649
4801
  },
4650
4802
  "records": {
4651
- "description": "Include records",
4803
+ "description": "Include records in import (default: true, use --no-records to exclude)",
4652
4804
  "name": "records",
4653
4805
  "required": false,
4806
+ "allowNo": true,
4807
+ "type": "boolean"
4808
+ },
4809
+ "sync-guids": {
4810
+ "description": "Write server-assigned GUIDs back to local files (use --no-sync-guids to skip)",
4811
+ "name": "sync-guids",
4812
+ "required": false,
4813
+ "allowNo": true,
4814
+ "type": "boolean"
4815
+ },
4816
+ "truncate": {
4817
+ "description": "Truncate all table records before importing",
4818
+ "name": "truncate",
4819
+ "required": false,
4654
4820
  "allowNo": false,
4655
4821
  "type": "boolean"
4656
4822
  },
@@ -4666,7 +4832,7 @@
4666
4832
  },
4667
4833
  "hasDynamicHelp": false,
4668
4834
  "hiddenAliases": [],
4669
- "id": "workspace:pull",
4835
+ "id": "workspace:push",
4670
4836
  "pluginAlias": "@xano/cli",
4671
4837
  "pluginName": "@xano/cli",
4672
4838
  "pluginType": "core",
@@ -4677,24 +4843,30 @@
4677
4843
  "dist",
4678
4844
  "commands",
4679
4845
  "workspace",
4680
- "pull",
4846
+ "push",
4681
4847
  "index.js"
4682
4848
  ]
4683
4849
  },
4684
- "static_host:build:create": {
4850
+ "static_host:build:get": {
4685
4851
  "aliases": [],
4686
4852
  "args": {
4853
+ "build_id": {
4854
+ "description": "Build ID",
4855
+ "name": "build_id",
4856
+ "required": true
4857
+ },
4687
4858
  "static_host": {
4688
4859
  "description": "Static Host name",
4689
4860
  "name": "static_host",
4690
4861
  "required": true
4691
4862
  }
4692
4863
  },
4693
- "description": "Create a new build for a static host",
4864
+ "description": "Get details of a specific build for a static host",
4694
4865
  "examples": [
4695
- "$ xano static_host:build:create default -f ./build.zip -n \"v1.0.0\"\nBuild created successfully!\nID: 123\nName: v1.0.0\nStatus: pending\n",
4696
- "$ xano static_host:build:create default -w 40 -f ./dist.zip -n \"production\" -d \"Production build\"\nBuild created successfully!\nID: 124\nName: production\nDescription: Production build\n",
4697
- "$ xano static_host:build:create myhost -f ./app.zip -n \"release-1.2\" -o json\n{\n \"id\": 125,\n \"name\": \"release-1.2\",\n \"status\": \"pending\"\n}\n"
4866
+ "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
4867
+ "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
4868
+ "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
4869
+ "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
4698
4870
  ],
4699
4871
  "flags": {
4700
4872
  "profile": {
@@ -4716,33 +4888,6 @@
4716
4888
  "allowNo": false,
4717
4889
  "type": "boolean"
4718
4890
  },
4719
- "description": {
4720
- "char": "d",
4721
- "description": "Build description",
4722
- "name": "description",
4723
- "required": false,
4724
- "hasDynamicHelp": false,
4725
- "multiple": false,
4726
- "type": "option"
4727
- },
4728
- "file": {
4729
- "char": "f",
4730
- "description": "Path to zip file to upload",
4731
- "name": "file",
4732
- "required": true,
4733
- "hasDynamicHelp": false,
4734
- "multiple": false,
4735
- "type": "option"
4736
- },
4737
- "name": {
4738
- "char": "n",
4739
- "description": "Build name",
4740
- "name": "name",
4741
- "required": true,
4742
- "hasDynamicHelp": false,
4743
- "multiple": false,
4744
- "type": "option"
4745
- },
4746
4891
  "output": {
4747
4892
  "char": "o",
4748
4893
  "description": "Output format",
@@ -4769,7 +4914,7 @@
4769
4914
  },
4770
4915
  "hasDynamicHelp": false,
4771
4916
  "hiddenAliases": [],
4772
- "id": "static_host:build:create",
4917
+ "id": "static_host:build:get",
4773
4918
  "pluginAlias": "@xano/cli",
4774
4919
  "pluginName": "@xano/cli",
4775
4920
  "pluginType": "core",
@@ -4781,19 +4926,23 @@
4781
4926
  "commands",
4782
4927
  "static_host",
4783
4928
  "build",
4784
- "create",
4929
+ "get",
4785
4930
  "index.js"
4786
4931
  ]
4787
4932
  },
4788
- "workspace:list": {
4933
+ "tenant:backup:create": {
4789
4934
  "aliases": [],
4790
- "args": {},
4791
- "description": "List all workspaces from the Xano Metadata API",
4935
+ "args": {
4936
+ "tenant_name": {
4937
+ "description": "Tenant name to back up",
4938
+ "name": "tenant_name",
4939
+ "required": true
4940
+ }
4941
+ },
4942
+ "description": "Create a backup for a tenant",
4792
4943
  "examples": [
4793
- "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4794
- "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4795
- "$ 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",
4796
- "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4944
+ "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
4945
+ "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
4797
4946
  ],
4798
4947
  "flags": {
4799
4948
  "profile": {
@@ -4815,6 +4964,16 @@
4815
4964
  "allowNo": false,
4816
4965
  "type": "boolean"
4817
4966
  },
4967
+ "description": {
4968
+ "char": "d",
4969
+ "description": "Backup description",
4970
+ "name": "description",
4971
+ "required": false,
4972
+ "default": "",
4973
+ "hasDynamicHelp": false,
4974
+ "multiple": false,
4975
+ "type": "option"
4976
+ },
4818
4977
  "output": {
4819
4978
  "char": "o",
4820
4979
  "description": "Output format",
@@ -4828,11 +4987,20 @@
4828
4987
  "json"
4829
4988
  ],
4830
4989
  "type": "option"
4990
+ },
4991
+ "workspace": {
4992
+ "char": "w",
4993
+ "description": "Workspace ID (uses profile workspace if not provided)",
4994
+ "name": "workspace",
4995
+ "required": false,
4996
+ "hasDynamicHelp": false,
4997
+ "multiple": false,
4998
+ "type": "option"
4831
4999
  }
4832
5000
  },
4833
5001
  "hasDynamicHelp": false,
4834
5002
  "hiddenAliases": [],
4835
- "id": "workspace:list",
5003
+ "id": "tenant:backup:create",
4836
5004
  "pluginAlias": "@xano/cli",
4837
5005
  "pluginName": "@xano/cli",
4838
5006
  "pluginType": "core",
@@ -4842,31 +5010,26 @@
4842
5010
  "relativePath": [
4843
5011
  "dist",
4844
5012
  "commands",
4845
- "workspace",
4846
- "list",
5013
+ "tenant",
5014
+ "backup",
5015
+ "create",
4847
5016
  "index.js"
4848
5017
  ]
4849
5018
  },
4850
- "static_host:build:get": {
5019
+ "tenant:backup:delete": {
4851
5020
  "aliases": [],
4852
5021
  "args": {
4853
- "build_id": {
4854
- "description": "Build ID",
4855
- "name": "build_id",
4856
- "required": true
4857
- },
4858
- "static_host": {
4859
- "description": "Static Host name",
4860
- "name": "static_host",
5022
+ "tenant_name": {
5023
+ "description": "Tenant name that owns the backup",
5024
+ "name": "tenant_name",
4861
5025
  "required": true
4862
5026
  }
4863
5027
  },
4864
- "description": "Get details of a specific build for a static host",
5028
+ "description": "Delete a tenant backup permanently. This action cannot be undone.",
4865
5029
  "examples": [
4866
- "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
4867
- "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
4868
- "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
4869
- "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
5030
+ "$ 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",
5031
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5032
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
4870
5033
  ],
4871
5034
  "flags": {
4872
5035
  "profile": {
@@ -4888,6 +5051,22 @@
4888
5051
  "allowNo": false,
4889
5052
  "type": "boolean"
4890
5053
  },
5054
+ "backup_id": {
5055
+ "description": "Backup ID to delete",
5056
+ "name": "backup_id",
5057
+ "required": true,
5058
+ "hasDynamicHelp": false,
5059
+ "multiple": false,
5060
+ "type": "option"
5061
+ },
5062
+ "force": {
5063
+ "char": "f",
5064
+ "description": "Skip confirmation prompt",
5065
+ "name": "force",
5066
+ "required": false,
5067
+ "allowNo": false,
5068
+ "type": "boolean"
5069
+ },
4891
5070
  "output": {
4892
5071
  "char": "o",
4893
5072
  "description": "Output format",
@@ -4904,7 +5083,7 @@
4904
5083
  },
4905
5084
  "workspace": {
4906
5085
  "char": "w",
4907
- "description": "Workspace ID (optional if set in profile)",
5086
+ "description": "Workspace ID (uses profile workspace if not provided)",
4908
5087
  "name": "workspace",
4909
5088
  "required": false,
4910
5089
  "hasDynamicHelp": false,
@@ -4914,7 +5093,7 @@
4914
5093
  },
4915
5094
  "hasDynamicHelp": false,
4916
5095
  "hiddenAliases": [],
4917
- "id": "static_host:build:get",
5096
+ "id": "tenant:backup:delete",
4918
5097
  "pluginAlias": "@xano/cli",
4919
5098
  "pluginName": "@xano/cli",
4920
5099
  "pluginType": "core",
@@ -4924,9 +5103,9 @@
4924
5103
  "relativePath": [
4925
5104
  "dist",
4926
5105
  "commands",
4927
- "static_host",
4928
- "build",
4929
- "get",
5106
+ "tenant",
5107
+ "backup",
5108
+ "delete",
4930
5109
  "index.js"
4931
5110
  ]
4932
5111
  },
@@ -5026,20 +5205,20 @@
5026
5205
  "index.js"
5027
5206
  ]
5028
5207
  },
5029
- "tenant:backup:delete": {
5208
+ "tenant:backup:export": {
5030
5209
  "aliases": [],
5031
5210
  "args": {
5032
5211
  "tenant_name": {
5033
- "description": "Tenant name that owns the backup",
5212
+ "description": "Tenant name to export backup from",
5034
5213
  "name": "tenant_name",
5035
5214
  "required": true
5036
5215
  }
5037
5216
  },
5038
- "description": "Delete a tenant backup permanently. This action cannot be undone.",
5217
+ "description": "Export (download) a tenant backup to a local file",
5039
5218
  "examples": [
5040
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to delete backup #10? This action cannot be undone. (y/N) y\nDeleted backup #10\n",
5041
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5042
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
5219
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
5220
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
5221
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5043
5222
  ],
5044
5223
  "flags": {
5045
5224
  "profile": {
@@ -5062,25 +5241,17 @@
5062
5241
  "type": "boolean"
5063
5242
  },
5064
5243
  "backup_id": {
5065
- "description": "Backup ID to delete",
5244
+ "description": "Backup ID to export",
5066
5245
  "name": "backup_id",
5067
5246
  "required": true,
5068
5247
  "hasDynamicHelp": false,
5069
5248
  "multiple": false,
5070
5249
  "type": "option"
5071
5250
  },
5072
- "force": {
5073
- "char": "f",
5074
- "description": "Skip confirmation prompt",
5075
- "name": "force",
5076
- "required": false,
5077
- "allowNo": false,
5078
- "type": "boolean"
5079
- },
5080
- "output": {
5251
+ "format": {
5081
5252
  "char": "o",
5082
5253
  "description": "Output format",
5083
- "name": "output",
5254
+ "name": "format",
5084
5255
  "required": false,
5085
5256
  "default": "summary",
5086
5257
  "hasDynamicHelp": false,
@@ -5091,90 +5262,12 @@
5091
5262
  ],
5092
5263
  "type": "option"
5093
5264
  },
5094
- "workspace": {
5095
- "char": "w",
5096
- "description": "Workspace ID (uses profile workspace if not provided)",
5097
- "name": "workspace",
5098
- "required": false,
5099
- "hasDynamicHelp": false,
5100
- "multiple": false,
5101
- "type": "option"
5102
- }
5103
- },
5104
- "hasDynamicHelp": false,
5105
- "hiddenAliases": [],
5106
- "id": "tenant:backup:delete",
5107
- "pluginAlias": "@xano/cli",
5108
- "pluginName": "@xano/cli",
5109
- "pluginType": "core",
5110
- "strict": true,
5111
- "enableJsonFlag": false,
5112
- "isESM": true,
5113
- "relativePath": [
5114
- "dist",
5115
- "commands",
5116
- "tenant",
5117
- "backup",
5118
- "delete",
5119
- "index.js"
5120
- ]
5121
- },
5122
- "tenant:backup:create": {
5123
- "aliases": [],
5124
- "args": {
5125
- "tenant_name": {
5126
- "description": "Tenant name to back up",
5127
- "name": "tenant_name",
5128
- "required": true
5129
- }
5130
- },
5131
- "description": "Create a backup for a tenant",
5132
- "examples": [
5133
- "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
5134
- "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
5135
- ],
5136
- "flags": {
5137
- "profile": {
5138
- "char": "p",
5139
- "description": "Profile to use (uses default profile if not specified)",
5140
- "env": "XANO_PROFILE",
5141
- "name": "profile",
5142
- "required": false,
5143
- "hasDynamicHelp": false,
5144
- "multiple": false,
5145
- "type": "option"
5146
- },
5147
- "verbose": {
5148
- "char": "v",
5149
- "description": "Show detailed request/response information",
5150
- "env": "XANO_VERBOSE",
5151
- "name": "verbose",
5152
- "required": false,
5153
- "allowNo": false,
5154
- "type": "boolean"
5155
- },
5156
- "description": {
5157
- "char": "d",
5158
- "description": "Backup description",
5159
- "name": "description",
5160
- "required": false,
5161
- "default": "",
5162
- "hasDynamicHelp": false,
5163
- "multiple": false,
5164
- "type": "option"
5165
- },
5166
5265
  "output": {
5167
- "char": "o",
5168
- "description": "Output format",
5266
+ "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5169
5267
  "name": "output",
5170
5268
  "required": false,
5171
- "default": "summary",
5172
5269
  "hasDynamicHelp": false,
5173
5270
  "multiple": false,
5174
- "options": [
5175
- "summary",
5176
- "json"
5177
- ],
5178
5271
  "type": "option"
5179
5272
  },
5180
5273
  "workspace": {
@@ -5189,7 +5282,7 @@
5189
5282
  },
5190
5283
  "hasDynamicHelp": false,
5191
5284
  "hiddenAliases": [],
5192
- "id": "tenant:backup:create",
5285
+ "id": "tenant:backup:export",
5193
5286
  "pluginAlias": "@xano/cli",
5194
5287
  "pluginName": "@xano/cli",
5195
5288
  "pluginType": "core",
@@ -5201,24 +5294,23 @@
5201
5294
  "commands",
5202
5295
  "tenant",
5203
5296
  "backup",
5204
- "create",
5297
+ "export",
5205
5298
  "index.js"
5206
5299
  ]
5207
5300
  },
5208
- "tenant:backup:export": {
5301
+ "tenant:backup:list": {
5209
5302
  "aliases": [],
5210
5303
  "args": {
5211
5304
  "tenant_name": {
5212
- "description": "Tenant name to export backup from",
5305
+ "description": "Tenant name to list backups for",
5213
5306
  "name": "tenant_name",
5214
5307
  "required": true
5215
5308
  }
5216
5309
  },
5217
- "description": "Export (download) a tenant backup to a local file",
5310
+ "description": "List backups for a tenant",
5218
5311
  "examples": [
5219
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
5220
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
5221
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5312
+ "$ xano tenant backup list t1234-abcd-xyz1\nBackups for tenant t1234-abcd-xyz1:\n - #1 - Pre-deploy backup (2024-01-15)\n - #2 - Daily backup (2024-01-16)\n",
5313
+ "$ xano tenant backup list t1234-abcd-xyz1 -o json"
5222
5314
  ],
5223
5315
  "flags": {
5224
5316
  "profile": {
@@ -5240,18 +5332,10 @@
5240
5332
  "allowNo": false,
5241
5333
  "type": "boolean"
5242
5334
  },
5243
- "backup_id": {
5244
- "description": "Backup ID to export",
5245
- "name": "backup_id",
5246
- "required": true,
5247
- "hasDynamicHelp": false,
5248
- "multiple": false,
5249
- "type": "option"
5250
- },
5251
- "format": {
5335
+ "output": {
5252
5336
  "char": "o",
5253
5337
  "description": "Output format",
5254
- "name": "format",
5338
+ "name": "output",
5255
5339
  "required": false,
5256
5340
  "default": "summary",
5257
5341
  "hasDynamicHelp": false,
@@ -5262,10 +5346,11 @@
5262
5346
  ],
5263
5347
  "type": "option"
5264
5348
  },
5265
- "output": {
5266
- "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5267
- "name": "output",
5349
+ "page": {
5350
+ "description": "Page number for pagination",
5351
+ "name": "page",
5268
5352
  "required": false,
5353
+ "default": 1,
5269
5354
  "hasDynamicHelp": false,
5270
5355
  "multiple": false,
5271
5356
  "type": "option"
@@ -5282,7 +5367,7 @@
5282
5367
  },
5283
5368
  "hasDynamicHelp": false,
5284
5369
  "hiddenAliases": [],
5285
- "id": "tenant:backup:export",
5370
+ "id": "tenant:backup:list",
5286
5371
  "pluginAlias": "@xano/cli",
5287
5372
  "pluginName": "@xano/cli",
5288
5373
  "pluginType": "core",
@@ -5294,7 +5379,7 @@
5294
5379
  "commands",
5295
5380
  "tenant",
5296
5381
  "backup",
5297
- "export",
5382
+ "list",
5298
5383
  "index.js"
5299
5384
  ]
5300
5385
  },
@@ -5420,19 +5505,19 @@
5420
5505
  "index.js"
5421
5506
  ]
5422
5507
  },
5423
- "tenant:backup:list": {
5508
+ "tenant:backup:restore": {
5424
5509
  "aliases": [],
5425
5510
  "args": {
5426
5511
  "tenant_name": {
5427
- "description": "Tenant name to list backups for",
5512
+ "description": "Tenant name to restore",
5428
5513
  "name": "tenant_name",
5429
5514
  "required": true
5430
5515
  }
5431
5516
  },
5432
- "description": "List backups for a tenant",
5517
+ "description": "Restore a tenant from a backup. This replaces the current tenant data.",
5433
5518
  "examples": [
5434
- "$ xano tenant backup list t1234-abcd-xyz1\nBackups for tenant t1234-abcd-xyz1:\n - #1 - Pre-deploy backup (2024-01-15)\n - #2 - Daily backup (2024-01-16)\n",
5435
- "$ xano tenant backup list t1234-abcd-xyz1 -o json"
5519
+ "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to restore tenant t1234-abcd-xyz1 from backup 10? This will replace current data. (y/N) y\nRestored tenant t1234-abcd-xyz1 from backup #10\n",
5520
+ "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
5436
5521
  ],
5437
5522
  "flags": {
5438
5523
  "profile": {
@@ -5454,6 +5539,22 @@
5454
5539
  "allowNo": false,
5455
5540
  "type": "boolean"
5456
5541
  },
5542
+ "backup_id": {
5543
+ "description": "Backup ID to restore from",
5544
+ "name": "backup_id",
5545
+ "required": true,
5546
+ "hasDynamicHelp": false,
5547
+ "multiple": false,
5548
+ "type": "option"
5549
+ },
5550
+ "force": {
5551
+ "char": "f",
5552
+ "description": "Skip confirmation prompt",
5553
+ "name": "force",
5554
+ "required": false,
5555
+ "allowNo": false,
5556
+ "type": "boolean"
5557
+ },
5457
5558
  "output": {
5458
5559
  "char": "o",
5459
5560
  "description": "Output format",
@@ -5468,15 +5569,6 @@
5468
5569
  ],
5469
5570
  "type": "option"
5470
5571
  },
5471
- "page": {
5472
- "description": "Page number for pagination",
5473
- "name": "page",
5474
- "required": false,
5475
- "default": 1,
5476
- "hasDynamicHelp": false,
5477
- "multiple": false,
5478
- "type": "option"
5479
- },
5480
5572
  "workspace": {
5481
5573
  "char": "w",
5482
5574
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -5489,7 +5581,7 @@
5489
5581
  },
5490
5582
  "hasDynamicHelp": false,
5491
5583
  "hiddenAliases": [],
5492
- "id": "tenant:backup:list",
5584
+ "id": "tenant:backup:restore",
5493
5585
  "pluginAlias": "@xano/cli",
5494
5586
  "pluginName": "@xano/cli",
5495
5587
  "pluginType": "core",
@@ -5501,7 +5593,7 @@
5501
5593
  "commands",
5502
5594
  "tenant",
5503
5595
  "backup",
5504
- "list",
5596
+ "restore",
5505
5597
  "index.js"
5506
5598
  ]
5507
5599
  },
@@ -5600,20 +5692,19 @@
5600
5692
  "index.js"
5601
5693
  ]
5602
5694
  },
5603
- "tenant:cluster:delete": {
5695
+ "tenant:cluster:get": {
5604
5696
  "aliases": [],
5605
5697
  "args": {
5606
5698
  "cluster_id": {
5607
- "description": "Cluster ID to delete",
5699
+ "description": "Cluster ID to retrieve",
5608
5700
  "name": "cluster_id",
5609
5701
  "required": true
5610
5702
  }
5611
5703
  },
5612
- "description": "Delete a tenant cluster. This action cannot be undone.",
5704
+ "description": "Get details of a specific tenant cluster",
5613
5705
  "examples": [
5614
- "$ 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",
5615
- "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5616
- "$ xano tenant cluster delete 3 -f -o json"
5706
+ "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5707
+ "$ xano tenant cluster get 1 -o json"
5617
5708
  ],
5618
5709
  "flags": {
5619
5710
  "profile": {
@@ -5635,14 +5726,6 @@
5635
5726
  "allowNo": false,
5636
5727
  "type": "boolean"
5637
5728
  },
5638
- "force": {
5639
- "char": "f",
5640
- "description": "Skip confirmation prompt",
5641
- "name": "force",
5642
- "required": false,
5643
- "allowNo": false,
5644
- "type": "boolean"
5645
- },
5646
5729
  "output": {
5647
5730
  "char": "o",
5648
5731
  "description": "Output format",
@@ -5660,7 +5743,7 @@
5660
5743
  },
5661
5744
  "hasDynamicHelp": false,
5662
5745
  "hiddenAliases": [],
5663
- "id": "tenant:cluster:delete",
5746
+ "id": "tenant:cluster:get",
5664
5747
  "pluginAlias": "@xano/cli",
5665
5748
  "pluginName": "@xano/cli",
5666
5749
  "pluginType": "core",
@@ -5672,99 +5755,7 @@
5672
5755
  "commands",
5673
5756
  "tenant",
5674
5757
  "cluster",
5675
- "delete",
5676
- "index.js"
5677
- ]
5678
- },
5679
- "tenant:backup:restore": {
5680
- "aliases": [],
5681
- "args": {
5682
- "tenant_name": {
5683
- "description": "Tenant name to restore",
5684
- "name": "tenant_name",
5685
- "required": true
5686
- }
5687
- },
5688
- "description": "Restore a tenant from a backup. This replaces the current tenant data.",
5689
- "examples": [
5690
- "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to restore tenant t1234-abcd-xyz1 from backup 10? This will replace current data. (y/N) y\nRestored tenant t1234-abcd-xyz1 from backup #10\n",
5691
- "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
5692
- ],
5693
- "flags": {
5694
- "profile": {
5695
- "char": "p",
5696
- "description": "Profile to use (uses default profile if not specified)",
5697
- "env": "XANO_PROFILE",
5698
- "name": "profile",
5699
- "required": false,
5700
- "hasDynamicHelp": false,
5701
- "multiple": false,
5702
- "type": "option"
5703
- },
5704
- "verbose": {
5705
- "char": "v",
5706
- "description": "Show detailed request/response information",
5707
- "env": "XANO_VERBOSE",
5708
- "name": "verbose",
5709
- "required": false,
5710
- "allowNo": false,
5711
- "type": "boolean"
5712
- },
5713
- "backup_id": {
5714
- "description": "Backup ID to restore from",
5715
- "name": "backup_id",
5716
- "required": true,
5717
- "hasDynamicHelp": false,
5718
- "multiple": false,
5719
- "type": "option"
5720
- },
5721
- "force": {
5722
- "char": "f",
5723
- "description": "Skip confirmation prompt",
5724
- "name": "force",
5725
- "required": false,
5726
- "allowNo": false,
5727
- "type": "boolean"
5728
- },
5729
- "output": {
5730
- "char": "o",
5731
- "description": "Output format",
5732
- "name": "output",
5733
- "required": false,
5734
- "default": "summary",
5735
- "hasDynamicHelp": false,
5736
- "multiple": false,
5737
- "options": [
5738
- "summary",
5739
- "json"
5740
- ],
5741
- "type": "option"
5742
- },
5743
- "workspace": {
5744
- "char": "w",
5745
- "description": "Workspace ID (uses profile workspace if not provided)",
5746
- "name": "workspace",
5747
- "required": false,
5748
- "hasDynamicHelp": false,
5749
- "multiple": false,
5750
- "type": "option"
5751
- }
5752
- },
5753
- "hasDynamicHelp": false,
5754
- "hiddenAliases": [],
5755
- "id": "tenant:backup:restore",
5756
- "pluginAlias": "@xano/cli",
5757
- "pluginName": "@xano/cli",
5758
- "pluginType": "core",
5759
- "strict": true,
5760
- "enableJsonFlag": false,
5761
- "isESM": true,
5762
- "relativePath": [
5763
- "dist",
5764
- "commands",
5765
- "tenant",
5766
- "backup",
5767
- "restore",
5758
+ "get",
5768
5759
  "index.js"
5769
5760
  ]
5770
5761
  },
@@ -5873,19 +5864,20 @@
5873
5864
  "index.js"
5874
5865
  ]
5875
5866
  },
5876
- "tenant:cluster:get": {
5867
+ "tenant:cluster:delete": {
5877
5868
  "aliases": [],
5878
5869
  "args": {
5879
5870
  "cluster_id": {
5880
- "description": "Cluster ID to retrieve",
5871
+ "description": "Cluster ID to delete",
5881
5872
  "name": "cluster_id",
5882
5873
  "required": true
5883
5874
  }
5884
5875
  },
5885
- "description": "Get details of a specific tenant cluster",
5876
+ "description": "Delete a tenant cluster. This action cannot be undone.",
5886
5877
  "examples": [
5887
- "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5888
- "$ xano tenant cluster get 1 -o json"
5878
+ "$ xano tenant cluster delete 3\nAre you sure you want to delete tenant cluster 3? This action cannot be undone. (y/N) y\nTenant cluster 3 deleted successfully\n",
5879
+ "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5880
+ "$ xano tenant cluster delete 3 -f -o json"
5889
5881
  ],
5890
5882
  "flags": {
5891
5883
  "profile": {
@@ -5906,64 +5898,11 @@
5906
5898
  "required": false,
5907
5899
  "allowNo": false,
5908
5900
  "type": "boolean"
5909
- },
5910
- "output": {
5911
- "char": "o",
5912
- "description": "Output format",
5913
- "name": "output",
5914
- "required": false,
5915
- "default": "summary",
5916
- "hasDynamicHelp": false,
5917
- "multiple": false,
5918
- "options": [
5919
- "summary",
5920
- "json"
5921
- ],
5922
- "type": "option"
5923
- }
5924
- },
5925
- "hasDynamicHelp": false,
5926
- "hiddenAliases": [],
5927
- "id": "tenant:cluster:get",
5928
- "pluginAlias": "@xano/cli",
5929
- "pluginName": "@xano/cli",
5930
- "pluginType": "core",
5931
- "strict": true,
5932
- "enableJsonFlag": false,
5933
- "isESM": true,
5934
- "relativePath": [
5935
- "dist",
5936
- "commands",
5937
- "tenant",
5938
- "cluster",
5939
- "get",
5940
- "index.js"
5941
- ]
5942
- },
5943
- "tenant:cluster:list": {
5944
- "aliases": [],
5945
- "args": {},
5946
- "description": "List all tenant clusters",
5947
- "examples": [
5948
- "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
5949
- "$ xano tenant cluster list --output json"
5950
- ],
5951
- "flags": {
5952
- "profile": {
5953
- "char": "p",
5954
- "description": "Profile to use (uses default profile if not specified)",
5955
- "env": "XANO_PROFILE",
5956
- "name": "profile",
5957
- "required": false,
5958
- "hasDynamicHelp": false,
5959
- "multiple": false,
5960
- "type": "option"
5961
- },
5962
- "verbose": {
5963
- "char": "v",
5964
- "description": "Show detailed request/response information",
5965
- "env": "XANO_VERBOSE",
5966
- "name": "verbose",
5901
+ },
5902
+ "force": {
5903
+ "char": "f",
5904
+ "description": "Skip confirmation prompt",
5905
+ "name": "force",
5967
5906
  "required": false,
5968
5907
  "allowNo": false,
5969
5908
  "type": "boolean"
@@ -5985,7 +5924,7 @@
5985
5924
  },
5986
5925
  "hasDynamicHelp": false,
5987
5926
  "hiddenAliases": [],
5988
- "id": "tenant:cluster:list",
5927
+ "id": "tenant:cluster:delete",
5989
5928
  "pluginAlias": "@xano/cli",
5990
5929
  "pluginName": "@xano/cli",
5991
5930
  "pluginType": "core",
@@ -5997,24 +5936,17 @@
5997
5936
  "commands",
5998
5937
  "tenant",
5999
5938
  "cluster",
6000
- "list",
5939
+ "delete",
6001
5940
  "index.js"
6002
5941
  ]
6003
5942
  },
6004
- "tenant:env:delete": {
5943
+ "tenant:cluster:list": {
6005
5944
  "aliases": [],
6006
- "args": {
6007
- "tenant_name": {
6008
- "description": "Tenant name",
6009
- "name": "tenant_name",
6010
- "required": true
6011
- }
6012
- },
6013
- "description": "Delete an environment variable from a tenant",
5945
+ "args": {},
5946
+ "description": "List all tenant clusters",
6014
5947
  "examples": [
6015
- "$ 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",
6016
- "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
6017
- "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
5948
+ "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
5949
+ "$ xano tenant cluster list --output json"
6018
5950
  ],
6019
5951
  "flags": {
6020
5952
  "profile": {
@@ -6036,23 +5968,6 @@
6036
5968
  "allowNo": false,
6037
5969
  "type": "boolean"
6038
5970
  },
6039
- "force": {
6040
- "char": "f",
6041
- "description": "Skip confirmation prompt",
6042
- "name": "force",
6043
- "required": false,
6044
- "allowNo": false,
6045
- "type": "boolean"
6046
- },
6047
- "name": {
6048
- "char": "n",
6049
- "description": "Environment variable name",
6050
- "name": "name",
6051
- "required": true,
6052
- "hasDynamicHelp": false,
6053
- "multiple": false,
6054
- "type": "option"
6055
- },
6056
5971
  "output": {
6057
5972
  "char": "o",
6058
5973
  "description": "Output format",
@@ -6066,20 +5981,11 @@
6066
5981
  "json"
6067
5982
  ],
6068
5983
  "type": "option"
6069
- },
6070
- "workspace": {
6071
- "char": "w",
6072
- "description": "Workspace ID (uses profile workspace if not provided)",
6073
- "name": "workspace",
6074
- "required": false,
6075
- "hasDynamicHelp": false,
6076
- "multiple": false,
6077
- "type": "option"
6078
5984
  }
6079
5985
  },
6080
5986
  "hasDynamicHelp": false,
6081
5987
  "hiddenAliases": [],
6082
- "id": "tenant:env:delete",
5988
+ "id": "tenant:cluster:list",
6083
5989
  "pluginAlias": "@xano/cli",
6084
5990
  "pluginName": "@xano/cli",
6085
5991
  "pluginType": "core",
@@ -6090,12 +5996,12 @@
6090
5996
  "dist",
6091
5997
  "commands",
6092
5998
  "tenant",
6093
- "env",
6094
- "delete",
5999
+ "cluster",
6000
+ "list",
6095
6001
  "index.js"
6096
6002
  ]
6097
6003
  },
6098
- "tenant:env:get": {
6004
+ "tenant:env:delete": {
6099
6005
  "aliases": [],
6100
6006
  "args": {
6101
6007
  "tenant_name": {
@@ -6104,10 +6010,11 @@
6104
6010
  "required": true
6105
6011
  }
6106
6012
  },
6107
- "description": "Get a single environment variable for a tenant",
6013
+ "description": "Delete an environment variable from a tenant",
6108
6014
  "examples": [
6109
- "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
6110
- "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6015
+ "$ 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",
6016
+ "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
6017
+ "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
6111
6018
  ],
6112
6019
  "flags": {
6113
6020
  "profile": {
@@ -6129,6 +6036,14 @@
6129
6036
  "allowNo": false,
6130
6037
  "type": "boolean"
6131
6038
  },
6039
+ "force": {
6040
+ "char": "f",
6041
+ "description": "Skip confirmation prompt",
6042
+ "name": "force",
6043
+ "required": false,
6044
+ "allowNo": false,
6045
+ "type": "boolean"
6046
+ },
6132
6047
  "name": {
6133
6048
  "char": "n",
6134
6049
  "description": "Environment variable name",
@@ -6164,7 +6079,7 @@
6164
6079
  },
6165
6080
  "hasDynamicHelp": false,
6166
6081
  "hiddenAliases": [],
6167
- "id": "tenant:env:get",
6082
+ "id": "tenant:env:delete",
6168
6083
  "pluginAlias": "@xano/cli",
6169
6084
  "pluginName": "@xano/cli",
6170
6085
  "pluginType": "core",
@@ -6176,7 +6091,7 @@
6176
6091
  "commands",
6177
6092
  "tenant",
6178
6093
  "env",
6179
- "get",
6094
+ "delete",
6180
6095
  "index.js"
6181
6096
  ]
6182
6097
  },
@@ -6536,7 +6451,7 @@
6536
6451
  "index.js"
6537
6452
  ]
6538
6453
  },
6539
- "tenant:license:get": {
6454
+ "tenant:license:set": {
6540
6455
  "aliases": [],
6541
6456
  "args": {
6542
6457
  "tenant_name": {
@@ -6545,12 +6460,12 @@
6545
6460
  "required": true
6546
6461
  }
6547
6462
  },
6548
- "description": "Get the license for a tenant",
6463
+ "description": "Set/update the license for a tenant",
6549
6464
  "examples": [
6550
- "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6551
- "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6552
- "$ xano tenant license get my-tenant --view",
6553
- "$ xano tenant license get my-tenant -o json"
6465
+ "$ xano tenant license set my-tenant\nReads from license_my-tenant.yaml\n",
6466
+ "$ xano tenant license set my-tenant --file ./license.yaml",
6467
+ "$ xano tenant license set my-tenant --value 'key: value'",
6468
+ "$ xano tenant license set my-tenant -o json"
6554
6469
  ],
6555
6470
  "flags": {
6556
6471
  "profile": {
@@ -6572,9 +6487,22 @@
6572
6487
  "allowNo": false,
6573
6488
  "type": "boolean"
6574
6489
  },
6490
+ "clean": {
6491
+ "description": "Remove the source file after successful upload",
6492
+ "exclusive": [
6493
+ "value"
6494
+ ],
6495
+ "name": "clean",
6496
+ "required": false,
6497
+ "allowNo": false,
6498
+ "type": "boolean"
6499
+ },
6575
6500
  "file": {
6576
6501
  "char": "f",
6577
- "description": "Output file path (default: license_<tenant_name>.yaml)",
6502
+ "description": "Path to license file (default: license_<tenant_name>.yaml)",
6503
+ "exclusive": [
6504
+ "value"
6505
+ ],
6578
6506
  "name": "file",
6579
6507
  "required": false,
6580
6508
  "hasDynamicHelp": false,
@@ -6595,12 +6523,17 @@
6595
6523
  ],
6596
6524
  "type": "option"
6597
6525
  },
6598
- "view": {
6599
- "description": "Print license to stdout instead of saving to file",
6600
- "name": "view",
6526
+ "value": {
6527
+ "description": "Inline license value",
6528
+ "exclusive": [
6529
+ "file",
6530
+ "clean"
6531
+ ],
6532
+ "name": "value",
6601
6533
  "required": false,
6602
- "allowNo": false,
6603
- "type": "boolean"
6534
+ "hasDynamicHelp": false,
6535
+ "multiple": false,
6536
+ "type": "option"
6604
6537
  },
6605
6538
  "workspace": {
6606
6539
  "char": "w",
@@ -6614,7 +6547,7 @@
6614
6547
  },
6615
6548
  "hasDynamicHelp": false,
6616
6549
  "hiddenAliases": [],
6617
- "id": "tenant:license:get",
6550
+ "id": "tenant:license:set",
6618
6551
  "pluginAlias": "@xano/cli",
6619
6552
  "pluginName": "@xano/cli",
6620
6553
  "pluginType": "core",
@@ -6626,11 +6559,11 @@
6626
6559
  "commands",
6627
6560
  "tenant",
6628
6561
  "license",
6629
- "get",
6562
+ "set",
6630
6563
  "index.js"
6631
6564
  ]
6632
6565
  },
6633
- "tenant:license:set": {
6566
+ "tenant:license:get": {
6634
6567
  "aliases": [],
6635
6568
  "args": {
6636
6569
  "tenant_name": {
@@ -6639,12 +6572,12 @@
6639
6572
  "required": true
6640
6573
  }
6641
6574
  },
6642
- "description": "Set/update the license for a tenant",
6575
+ "description": "Get the license for a tenant",
6643
6576
  "examples": [
6644
- "$ xano tenant license set my-tenant\nReads from license_my-tenant.yaml\n",
6645
- "$ xano tenant license set my-tenant --file ./license.yaml",
6646
- "$ xano tenant license set my-tenant --value 'key: value'",
6647
- "$ xano tenant license set my-tenant -o json"
6577
+ "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6578
+ "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6579
+ "$ xano tenant license get my-tenant --view",
6580
+ "$ xano tenant license get my-tenant -o json"
6648
6581
  ],
6649
6582
  "flags": {
6650
6583
  "profile": {
@@ -6666,22 +6599,9 @@
6666
6599
  "allowNo": false,
6667
6600
  "type": "boolean"
6668
6601
  },
6669
- "clean": {
6670
- "description": "Remove the source file after successful upload",
6671
- "exclusive": [
6672
- "value"
6673
- ],
6674
- "name": "clean",
6675
- "required": false,
6676
- "allowNo": false,
6677
- "type": "boolean"
6678
- },
6679
6602
  "file": {
6680
6603
  "char": "f",
6681
- "description": "Path to license file (default: license_<tenant_name>.yaml)",
6682
- "exclusive": [
6683
- "value"
6684
- ],
6604
+ "description": "Output file path (default: license_<tenant_name>.yaml)",
6685
6605
  "name": "file",
6686
6606
  "required": false,
6687
6607
  "hasDynamicHelp": false,
@@ -6702,17 +6622,12 @@
6702
6622
  ],
6703
6623
  "type": "option"
6704
6624
  },
6705
- "value": {
6706
- "description": "Inline license value",
6707
- "exclusive": [
6708
- "file",
6709
- "clean"
6710
- ],
6711
- "name": "value",
6625
+ "view": {
6626
+ "description": "Print license to stdout instead of saving to file",
6627
+ "name": "view",
6712
6628
  "required": false,
6713
- "hasDynamicHelp": false,
6714
- "multiple": false,
6715
- "type": "option"
6629
+ "allowNo": false,
6630
+ "type": "boolean"
6716
6631
  },
6717
6632
  "workspace": {
6718
6633
  "char": "w",
@@ -6726,7 +6641,7 @@
6726
6641
  },
6727
6642
  "hasDynamicHelp": false,
6728
6643
  "hiddenAliases": [],
6729
- "id": "tenant:license:set",
6644
+ "id": "tenant:license:get",
6730
6645
  "pluginAlias": "@xano/cli",
6731
6646
  "pluginName": "@xano/cli",
6732
6647
  "pluginType": "core",
@@ -6738,7 +6653,7 @@
6738
6653
  "commands",
6739
6654
  "tenant",
6740
6655
  "license",
6741
- "set",
6656
+ "get",
6742
6657
  "index.js"
6743
6658
  ]
6744
6659
  },
@@ -7025,7 +6940,92 @@
7025
6940
  "set",
7026
6941
  "index.js"
7027
6942
  ]
6943
+ },
6944
+ "tenant:env:get": {
6945
+ "aliases": [],
6946
+ "args": {
6947
+ "tenant_name": {
6948
+ "description": "Tenant name",
6949
+ "name": "tenant_name",
6950
+ "required": true
6951
+ }
6952
+ },
6953
+ "description": "Get a single environment variable for a tenant",
6954
+ "examples": [
6955
+ "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
6956
+ "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6957
+ ],
6958
+ "flags": {
6959
+ "profile": {
6960
+ "char": "p",
6961
+ "description": "Profile to use (uses default profile if not specified)",
6962
+ "env": "XANO_PROFILE",
6963
+ "name": "profile",
6964
+ "required": false,
6965
+ "hasDynamicHelp": false,
6966
+ "multiple": false,
6967
+ "type": "option"
6968
+ },
6969
+ "verbose": {
6970
+ "char": "v",
6971
+ "description": "Show detailed request/response information",
6972
+ "env": "XANO_VERBOSE",
6973
+ "name": "verbose",
6974
+ "required": false,
6975
+ "allowNo": false,
6976
+ "type": "boolean"
6977
+ },
6978
+ "name": {
6979
+ "char": "n",
6980
+ "description": "Environment variable name",
6981
+ "name": "name",
6982
+ "required": true,
6983
+ "hasDynamicHelp": false,
6984
+ "multiple": false,
6985
+ "type": "option"
6986
+ },
6987
+ "output": {
6988
+ "char": "o",
6989
+ "description": "Output format",
6990
+ "name": "output",
6991
+ "required": false,
6992
+ "default": "summary",
6993
+ "hasDynamicHelp": false,
6994
+ "multiple": false,
6995
+ "options": [
6996
+ "summary",
6997
+ "json"
6998
+ ],
6999
+ "type": "option"
7000
+ },
7001
+ "workspace": {
7002
+ "char": "w",
7003
+ "description": "Workspace ID (uses profile workspace if not provided)",
7004
+ "name": "workspace",
7005
+ "required": false,
7006
+ "hasDynamicHelp": false,
7007
+ "multiple": false,
7008
+ "type": "option"
7009
+ }
7010
+ },
7011
+ "hasDynamicHelp": false,
7012
+ "hiddenAliases": [],
7013
+ "id": "tenant:env:get",
7014
+ "pluginAlias": "@xano/cli",
7015
+ "pluginName": "@xano/cli",
7016
+ "pluginType": "core",
7017
+ "strict": true,
7018
+ "enableJsonFlag": false,
7019
+ "isESM": true,
7020
+ "relativePath": [
7021
+ "dist",
7022
+ "commands",
7023
+ "tenant",
7024
+ "env",
7025
+ "get",
7026
+ "index.js"
7027
+ ]
7028
7028
  }
7029
7029
  },
7030
- "version": "0.0.60"
7030
+ "version": "0.0.62"
7031
7031
  }