@xano/cli 0.0.49 → 0.0.51

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:edit": {
196
+ "branch:delete": {
197
197
  "aliases": [],
198
198
  "args": {
199
199
  "branch_label": {
200
- "description": "Branch label to edit (cannot edit \"v1\" label)",
200
+ "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
201
201
  "name": "branch_label",
202
202
  "required": true
203
203
  }
204
204
  },
205
- "description": "Update an existing branch (cannot update \"v1\" label)",
205
+ "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
206
206
  "examples": [
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"
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"
210
210
  ],
211
211
  "flags": {
212
212
  "profile": {
@@ -228,33 +228,90 @@
228
228
  "allowNo": false,
229
229
  "type": "boolean"
230
230
  },
231
- "color": {
232
- "char": "c",
233
- "description": "New color hex code for the branch (e.g., \"#ff5733\")",
234
- "name": "color",
231
+ "force": {
232
+ "char": "f",
233
+ "description": "Skip confirmation prompt",
234
+ "name": "force",
235
+ "required": false,
236
+ "allowNo": false,
237
+ "type": "boolean"
238
+ },
239
+ "output": {
240
+ "char": "o",
241
+ "description": "Output format",
242
+ "name": "output",
235
243
  "required": false,
244
+ "default": "summary",
236
245
  "hasDynamicHelp": false,
237
246
  "multiple": false,
247
+ "options": [
248
+ "summary",
249
+ "json"
250
+ ],
238
251
  "type": "option"
239
252
  },
240
- "description": {
241
- "char": "d",
242
- "description": "New description for the branch",
243
- "name": "description",
253
+ "workspace": {
254
+ "char": "w",
255
+ "description": "Workspace ID (uses profile workspace if not provided)",
256
+ "name": "workspace",
244
257
  "required": false,
245
258
  "hasDynamicHelp": false,
246
259
  "multiple": false,
247
260
  "type": "option"
248
- },
249
- "label": {
250
- "char": "l",
251
- "description": "New label for the branch",
252
- "name": "label",
261
+ }
262
+ },
263
+ "hasDynamicHelp": false,
264
+ "hiddenAliases": [],
265
+ "id": "branch:delete",
266
+ "pluginAlias": "@xano/cli",
267
+ "pluginName": "@xano/cli",
268
+ "pluginType": "core",
269
+ "strict": true,
270
+ "enableJsonFlag": false,
271
+ "isESM": true,
272
+ "relativePath": [
273
+ "dist",
274
+ "commands",
275
+ "branch",
276
+ "delete",
277
+ "index.js"
278
+ ]
279
+ },
280
+ "branch:get": {
281
+ "aliases": [],
282
+ "args": {
283
+ "branch_label": {
284
+ "description": "Branch label (e.g., \"v1\", \"dev\")",
285
+ "name": "branch_label",
286
+ "required": true
287
+ }
288
+ },
289
+ "description": "Get details for a specific branch",
290
+ "examples": [
291
+ "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
292
+ "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
293
+ "$ xano branch get staging --output json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false,\n \"live\": false\n}\n"
294
+ ],
295
+ "flags": {
296
+ "profile": {
297
+ "char": "p",
298
+ "description": "Profile to use (uses default profile if not specified)",
299
+ "env": "XANO_PROFILE",
300
+ "name": "profile",
253
301
  "required": false,
254
302
  "hasDynamicHelp": false,
255
303
  "multiple": false,
256
304
  "type": "option"
257
305
  },
306
+ "verbose": {
307
+ "char": "v",
308
+ "description": "Show detailed request/response information",
309
+ "env": "XANO_VERBOSE",
310
+ "name": "verbose",
311
+ "required": false,
312
+ "allowNo": false,
313
+ "type": "boolean"
314
+ },
258
315
  "output": {
259
316
  "char": "o",
260
317
  "description": "Output format",
@@ -281,7 +338,7 @@
281
338
  },
282
339
  "hasDynamicHelp": false,
283
340
  "hiddenAliases": [],
284
- "id": "branch:edit",
341
+ "id": "branch:get",
285
342
  "pluginAlias": "@xano/cli",
286
343
  "pluginName": "@xano/cli",
287
344
  "pluginType": "core",
@@ -292,24 +349,24 @@
292
349
  "dist",
293
350
  "commands",
294
351
  "branch",
295
- "edit",
352
+ "get",
296
353
  "index.js"
297
354
  ]
298
355
  },
299
- "branch:delete": {
356
+ "branch:edit": {
300
357
  "aliases": [],
301
358
  "args": {
302
359
  "branch_label": {
303
- "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
360
+ "description": "Branch label to edit (cannot edit \"v1\" label)",
304
361
  "name": "branch_label",
305
362
  "required": true
306
363
  }
307
364
  },
308
- "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
365
+ "description": "Update an existing branch (cannot update \"v1\" label)",
309
366
  "examples": [
310
- "$ 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",
311
- "$ xano branch delete dev --force\nDeleted branch: dev\n",
312
- "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
367
+ "$ xano branch edit dev --label development\nUpdated branch: development\n",
368
+ "$ xano branch edit feature-auth -l feature-authentication --color \"#ff5733\"\nUpdated branch: feature-authentication\n Color: #ff5733\n",
369
+ "$ xano branch edit staging --description \"Staging environment\" -o json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false\n}\n"
313
370
  ],
314
371
  "flags": {
315
372
  "profile": {
@@ -331,13 +388,32 @@
331
388
  "allowNo": false,
332
389
  "type": "boolean"
333
390
  },
334
- "force": {
335
- "char": "f",
336
- "description": "Skip confirmation prompt",
337
- "name": "force",
391
+ "color": {
392
+ "char": "c",
393
+ "description": "New color hex code for the branch (e.g., \"#ff5733\")",
394
+ "name": "color",
338
395
  "required": false,
339
- "allowNo": false,
340
- "type": "boolean"
396
+ "hasDynamicHelp": false,
397
+ "multiple": false,
398
+ "type": "option"
399
+ },
400
+ "description": {
401
+ "char": "d",
402
+ "description": "New description for the branch",
403
+ "name": "description",
404
+ "required": false,
405
+ "hasDynamicHelp": false,
406
+ "multiple": false,
407
+ "type": "option"
408
+ },
409
+ "label": {
410
+ "char": "l",
411
+ "description": "New label for the branch",
412
+ "name": "label",
413
+ "required": false,
414
+ "hasDynamicHelp": false,
415
+ "multiple": false,
416
+ "type": "option"
341
417
  },
342
418
  "output": {
343
419
  "char": "o",
@@ -365,7 +441,7 @@
365
441
  },
366
442
  "hasDynamicHelp": false,
367
443
  "hiddenAliases": [],
368
- "id": "branch:delete",
444
+ "id": "branch:edit",
369
445
  "pluginAlias": "@xano/cli",
370
446
  "pluginName": "@xano/cli",
371
447
  "pluginType": "core",
@@ -376,7 +452,7 @@
376
452
  "dist",
377
453
  "commands",
378
454
  "branch",
379
- "delete",
455
+ "edit",
380
456
  "index.js"
381
457
  ]
382
458
  },
@@ -447,20 +523,25 @@
447
523
  "index.js"
448
524
  ]
449
525
  },
450
- "branch:set_live": {
526
+ "function:edit": {
451
527
  "aliases": [],
452
528
  "args": {
453
- "branch_label": {
454
- "description": "Branch label to set as live (use \"v1\" for default branch)",
455
- "name": "branch_label",
456
- "required": true
529
+ "function_id": {
530
+ "description": "Function ID to edit",
531
+ "name": "function_id",
532
+ "required": false
457
533
  }
458
534
  },
459
- "description": "Set a branch as the live (active) branch for API requests",
535
+ "description": "Edit a function in a workspace",
460
536
  "examples": [
461
- "$ xano branch set-live staging\nAre you sure you want to set 'staging' as the live branch? (y/N) y\nBranch 'staging' is now live\n",
462
- "$ xano branch set-live v1 --force\nBranch 'v1' is now live\n",
463
- "$ xano branch set-live production -f -o json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"production\",\n \"backup\": false,\n \"live\": true\n}\n"
537
+ "$ 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",
538
+ "$ 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",
539
+ "$ xano function:edit 163 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
540
+ "$ xano function:edit 163 -w 40 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
541
+ "$ xano function:edit -f function.xs\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
542
+ "$ 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",
543
+ "$ cat function.xs | xano function:edit 163 --stdin\nFunction updated successfully!\nID: 163\nName: my_function\n",
544
+ "$ xano function:edit 163 -f function.xs -o json\n{\n \"id\": 163,\n \"name\": \"my_function\",\n ...\n}\n"
464
545
  ],
465
546
  "flags": {
466
547
  "profile": {
@@ -482,14 +563,26 @@
482
563
  "allowNo": false,
483
564
  "type": "boolean"
484
565
  },
485
- "force": {
486
- "char": "f",
487
- "description": "Skip confirmation prompt",
488
- "name": "force",
566
+ "edit": {
567
+ "char": "e",
568
+ "description": "Open file in editor before updating function (requires --file)",
569
+ "name": "edit",
489
570
  "required": false,
490
571
  "allowNo": false,
491
572
  "type": "boolean"
492
573
  },
574
+ "file": {
575
+ "char": "f",
576
+ "description": "Path to file containing XanoScript code",
577
+ "exclusive": [
578
+ "stdin"
579
+ ],
580
+ "name": "file",
581
+ "required": false,
582
+ "hasDynamicHelp": false,
583
+ "multiple": false,
584
+ "type": "option"
585
+ },
493
586
  "output": {
494
587
  "char": "o",
495
588
  "description": "Output format",
@@ -504,9 +597,27 @@
504
597
  ],
505
598
  "type": "option"
506
599
  },
600
+ "publish": {
601
+ "description": "Publish the function after editing",
602
+ "name": "publish",
603
+ "required": false,
604
+ "allowNo": false,
605
+ "type": "boolean"
606
+ },
607
+ "stdin": {
608
+ "char": "s",
609
+ "description": "Read XanoScript code from stdin",
610
+ "exclusive": [
611
+ "file"
612
+ ],
613
+ "name": "stdin",
614
+ "required": false,
615
+ "allowNo": false,
616
+ "type": "boolean"
617
+ },
507
618
  "workspace": {
508
619
  "char": "w",
509
- "description": "Workspace ID (uses profile workspace if not provided)",
620
+ "description": "Workspace ID (optional if set in profile)",
510
621
  "name": "workspace",
511
622
  "required": false,
512
623
  "hasDynamicHelp": false,
@@ -516,7 +627,7 @@
516
627
  },
517
628
  "hasDynamicHelp": false,
518
629
  "hiddenAliases": [],
519
- "id": "branch:set_live",
630
+ "id": "function:edit",
520
631
  "pluginAlias": "@xano/cli",
521
632
  "pluginName": "@xano/cli",
522
633
  "pluginType": "core",
@@ -526,8 +637,8 @@
526
637
  "relativePath": [
527
638
  "dist",
528
639
  "commands",
529
- "branch",
530
- "set_live",
640
+ "function",
641
+ "edit",
531
642
  "index.js"
532
643
  ]
533
644
  },
@@ -637,23 +748,20 @@
637
748
  "index.js"
638
749
  ]
639
750
  },
640
- "function:get": {
751
+ "branch:set_live": {
641
752
  "aliases": [],
642
753
  "args": {
643
- "function_id": {
644
- "description": "Function ID",
645
- "name": "function_id",
646
- "required": false
754
+ "branch_label": {
755
+ "description": "Branch label to set as live (use \"v1\" for default branch)",
756
+ "name": "branch_label",
757
+ "required": true
647
758
  }
648
759
  },
649
- "description": "Get a specific function from a workspace",
760
+ "description": "Set a branch as the live (active) branch for API requests",
650
761
  "examples": [
651
- "$ xano function:get 145 -w 40\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\nDescription: Sample function\n",
652
- "$ xano function:get 145 --profile production\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\n",
653
- "$ xano function:get\nSelect a function:\n ❯ yo (ID: 145) - Sample function\n another-func (ID: 146)\n",
654
- "$ xano function:get 145 -w 40 --output json\n{\n \"id\": 145,\n \"name\": \"yo\",\n \"description\": \"Sample function\"\n}\n",
655
- "$ xano function:get 145 -p staging -o json --include_draft\n{\n \"id\": 145,\n \"name\": \"yo\"\n}\n",
656
- "$ xano function:get 145 -p staging -o xs\nfunction yo {\n input {\n }\n stack {\n }\n response = null\n}\n"
762
+ "$ xano branch set-live staging\nAre you sure you want to set 'staging' as the live branch? (y/N) y\nBranch 'staging' is now live\n",
763
+ "$ xano branch set-live v1 --force\nBranch 'v1' is now live\n",
764
+ "$ xano branch set-live production -f -o json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"production\",\n \"backup\": false,\n \"live\": true\n}\n"
657
765
  ],
658
766
  "flags": {
659
767
  "profile": {
@@ -675,16 +783,10 @@
675
783
  "allowNo": false,
676
784
  "type": "boolean"
677
785
  },
678
- "include_draft": {
679
- "description": "Include draft version",
680
- "name": "include_draft",
681
- "required": false,
682
- "allowNo": false,
683
- "type": "boolean"
684
- },
685
- "include_xanoscript": {
686
- "description": "Include XanoScript in response",
687
- "name": "include_xanoscript",
786
+ "force": {
787
+ "char": "f",
788
+ "description": "Skip confirmation prompt",
789
+ "name": "force",
688
790
  "required": false,
689
791
  "allowNo": false,
690
792
  "type": "boolean"
@@ -699,14 +801,13 @@
699
801
  "multiple": false,
700
802
  "options": [
701
803
  "summary",
702
- "json",
703
- "xs"
804
+ "json"
704
805
  ],
705
806
  "type": "option"
706
807
  },
707
808
  "workspace": {
708
809
  "char": "w",
709
- "description": "Workspace ID (optional if set in profile)",
810
+ "description": "Workspace ID (uses profile workspace if not provided)",
710
811
  "name": "workspace",
711
812
  "required": false,
712
813
  "hasDynamicHelp": false,
@@ -716,7 +817,7 @@
716
817
  },
717
818
  "hasDynamicHelp": false,
718
819
  "hiddenAliases": [],
719
- "id": "function:get",
820
+ "id": "branch:set_live",
720
821
  "pluginAlias": "@xano/cli",
721
822
  "pluginName": "@xano/cli",
722
823
  "pluginType": "core",
@@ -726,20 +827,28 @@
726
827
  "relativePath": [
727
828
  "dist",
728
829
  "commands",
729
- "function",
730
- "get",
830
+ "branch",
831
+ "set_live",
731
832
  "index.js"
732
833
  ]
733
834
  },
734
- "function:list": {
835
+ "function:get": {
735
836
  "aliases": [],
736
- "args": {},
737
- "description": "List all functions in a workspace from the Xano Metadata API",
837
+ "args": {
838
+ "function_id": {
839
+ "description": "Function ID",
840
+ "name": "function_id",
841
+ "required": false
842
+ }
843
+ },
844
+ "description": "Get a specific function from a workspace",
738
845
  "examples": [
739
- "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
740
- "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
741
- "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
742
- "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
846
+ "$ xano function:get 145 -w 40\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\nDescription: Sample function\n",
847
+ "$ xano function:get 145 --profile production\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\n",
848
+ "$ xano function:get\nSelect a function:\n ❯ yo (ID: 145) - Sample function\n another-func (ID: 146)\n",
849
+ "$ xano function:get 145 -w 40 --output json\n{\n \"id\": 145,\n \"name\": \"yo\",\n \"description\": \"Sample function\"\n}\n",
850
+ "$ xano function:get 145 -p staging -o json --include_draft\n{\n \"id\": 145,\n \"name\": \"yo\"\n}\n",
851
+ "$ xano function:get 145 -p staging -o xs\nfunction yo {\n input {\n }\n stack {\n }\n response = null\n}\n"
743
852
  ],
744
853
  "flags": {
745
854
  "profile": {
@@ -762,7 +871,7 @@
762
871
  "type": "boolean"
763
872
  },
764
873
  "include_draft": {
765
- "description": "Include draft functions",
874
+ "description": "Include draft version",
766
875
  "name": "include_draft",
767
876
  "required": false,
768
877
  "allowNo": false,
@@ -775,19 +884,6 @@
775
884
  "allowNo": false,
776
885
  "type": "boolean"
777
886
  },
778
- "order": {
779
- "description": "Sort order",
780
- "name": "order",
781
- "required": false,
782
- "default": "desc",
783
- "hasDynamicHelp": false,
784
- "multiple": false,
785
- "options": [
786
- "asc",
787
- "desc"
788
- ],
789
- "type": "option"
790
- },
791
887
  "output": {
792
888
  "char": "o",
793
889
  "description": "Output format",
@@ -798,37 +894,11 @@
798
894
  "multiple": false,
799
895
  "options": [
800
896
  "summary",
801
- "json"
897
+ "json",
898
+ "xs"
802
899
  ],
803
900
  "type": "option"
804
901
  },
805
- "page": {
806
- "description": "Page number for pagination",
807
- "name": "page",
808
- "required": false,
809
- "default": 1,
810
- "hasDynamicHelp": false,
811
- "multiple": false,
812
- "type": "option"
813
- },
814
- "per_page": {
815
- "description": "Number of results per page",
816
- "name": "per_page",
817
- "required": false,
818
- "default": 50,
819
- "hasDynamicHelp": false,
820
- "multiple": false,
821
- "type": "option"
822
- },
823
- "sort": {
824
- "description": "Sort field",
825
- "name": "sort",
826
- "required": false,
827
- "default": "created_at",
828
- "hasDynamicHelp": false,
829
- "multiple": false,
830
- "type": "option"
831
- },
832
902
  "workspace": {
833
903
  "char": "w",
834
904
  "description": "Workspace ID (optional if set in profile)",
@@ -841,7 +911,7 @@
841
911
  },
842
912
  "hasDynamicHelp": false,
843
913
  "hiddenAliases": [],
844
- "id": "function:list",
914
+ "id": "function:get",
845
915
  "pluginAlias": "@xano/cli",
846
916
  "pluginName": "@xano/cli",
847
917
  "pluginType": "core",
@@ -852,29 +922,17 @@
852
922
  "dist",
853
923
  "commands",
854
924
  "function",
855
- "list",
925
+ "get",
856
926
  "index.js"
857
927
  ]
858
928
  },
859
- "function:edit": {
929
+ "platform:list": {
860
930
  "aliases": [],
861
- "args": {
862
- "function_id": {
863
- "description": "Function ID to edit",
864
- "name": "function_id",
865
- "required": false
866
- }
867
- },
868
- "description": "Edit a function in a workspace",
931
+ "args": {},
932
+ "description": "List all platforms",
869
933
  "examples": [
870
- "$ 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",
871
- "$ 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",
872
- "$ xano function:edit 163 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
873
- "$ xano function:edit 163 -w 40 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
874
- "$ xano function:edit -f function.xs\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
875
- "$ 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",
876
- "$ cat function.xs | xano function:edit 163 --stdin\nFunction updated successfully!\nID: 163\nName: my_function\n",
877
- "$ xano function:edit 163 -f function.xs -o json\n{\n \"id\": 163,\n \"name\": \"my_function\",\n ...\n}\n"
934
+ "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
935
+ "$ xano platform list --output json"
878
936
  ],
879
937
  "flags": {
880
938
  "profile": {
@@ -896,26 +954,6 @@
896
954
  "allowNo": false,
897
955
  "type": "boolean"
898
956
  },
899
- "edit": {
900
- "char": "e",
901
- "description": "Open file in editor before updating function (requires --file)",
902
- "name": "edit",
903
- "required": false,
904
- "allowNo": false,
905
- "type": "boolean"
906
- },
907
- "file": {
908
- "char": "f",
909
- "description": "Path to file containing XanoScript code",
910
- "exclusive": [
911
- "stdin"
912
- ],
913
- "name": "file",
914
- "required": false,
915
- "hasDynamicHelp": false,
916
- "multiple": false,
917
- "type": "option"
918
- },
919
957
  "output": {
920
958
  "char": "o",
921
959
  "description": "Output format",
@@ -929,38 +967,11 @@
929
967
  "json"
930
968
  ],
931
969
  "type": "option"
932
- },
933
- "publish": {
934
- "description": "Publish the function after editing",
935
- "name": "publish",
936
- "required": false,
937
- "allowNo": false,
938
- "type": "boolean"
939
- },
940
- "stdin": {
941
- "char": "s",
942
- "description": "Read XanoScript code from stdin",
943
- "exclusive": [
944
- "file"
945
- ],
946
- "name": "stdin",
947
- "required": false,
948
- "allowNo": false,
949
- "type": "boolean"
950
- },
951
- "workspace": {
952
- "char": "w",
953
- "description": "Workspace ID (optional if set in profile)",
954
- "name": "workspace",
955
- "required": false,
956
- "hasDynamicHelp": false,
957
- "multiple": false,
958
- "type": "option"
959
970
  }
960
971
  },
961
972
  "hasDynamicHelp": false,
962
973
  "hiddenAliases": [],
963
- "id": "function:edit",
974
+ "id": "platform:list",
964
975
  "pluginAlias": "@xano/cli",
965
976
  "pluginName": "@xano/cli",
966
977
  "pluginType": "core",
@@ -970,24 +981,20 @@
970
981
  "relativePath": [
971
982
  "dist",
972
983
  "commands",
973
- "function",
974
- "edit",
984
+ "platform",
985
+ "list",
975
986
  "index.js"
976
987
  ]
977
988
  },
978
- "platform:get": {
989
+ "function:list": {
979
990
  "aliases": [],
980
- "args": {
981
- "platform_id": {
982
- "description": "Platform ID to retrieve",
983
- "name": "platform_id",
984
- "required": true
985
- }
986
- },
987
- "description": "Get details of a specific platform",
991
+ "args": {},
992
+ "description": "List all functions in a workspace from the Xano Metadata API",
988
993
  "examples": [
989
- "$ 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",
990
- "$ xano platform get 23629 -o json"
994
+ "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
995
+ "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
996
+ "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
997
+ "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
991
998
  ],
992
999
  "flags": {
993
1000
  "profile": {
@@ -1009,6 +1016,33 @@
1009
1016
  "allowNo": false,
1010
1017
  "type": "boolean"
1011
1018
  },
1019
+ "include_draft": {
1020
+ "description": "Include draft functions",
1021
+ "name": "include_draft",
1022
+ "required": false,
1023
+ "allowNo": false,
1024
+ "type": "boolean"
1025
+ },
1026
+ "include_xanoscript": {
1027
+ "description": "Include XanoScript in response",
1028
+ "name": "include_xanoscript",
1029
+ "required": false,
1030
+ "allowNo": false,
1031
+ "type": "boolean"
1032
+ },
1033
+ "order": {
1034
+ "description": "Sort order",
1035
+ "name": "order",
1036
+ "required": false,
1037
+ "default": "desc",
1038
+ "hasDynamicHelp": false,
1039
+ "multiple": false,
1040
+ "options": [
1041
+ "asc",
1042
+ "desc"
1043
+ ],
1044
+ "type": "option"
1045
+ },
1012
1046
  "output": {
1013
1047
  "char": "o",
1014
1048
  "description": "Output format",
@@ -1022,11 +1056,47 @@
1022
1056
  "json"
1023
1057
  ],
1024
1058
  "type": "option"
1059
+ },
1060
+ "page": {
1061
+ "description": "Page number for pagination",
1062
+ "name": "page",
1063
+ "required": false,
1064
+ "default": 1,
1065
+ "hasDynamicHelp": false,
1066
+ "multiple": false,
1067
+ "type": "option"
1068
+ },
1069
+ "per_page": {
1070
+ "description": "Number of results per page",
1071
+ "name": "per_page",
1072
+ "required": false,
1073
+ "default": 50,
1074
+ "hasDynamicHelp": false,
1075
+ "multiple": false,
1076
+ "type": "option"
1077
+ },
1078
+ "sort": {
1079
+ "description": "Sort field",
1080
+ "name": "sort",
1081
+ "required": false,
1082
+ "default": "created_at",
1083
+ "hasDynamicHelp": false,
1084
+ "multiple": false,
1085
+ "type": "option"
1086
+ },
1087
+ "workspace": {
1088
+ "char": "w",
1089
+ "description": "Workspace ID (optional if set in profile)",
1090
+ "name": "workspace",
1091
+ "required": false,
1092
+ "hasDynamicHelp": false,
1093
+ "multiple": false,
1094
+ "type": "option"
1025
1095
  }
1026
1096
  },
1027
1097
  "hasDynamicHelp": false,
1028
1098
  "hiddenAliases": [],
1029
- "id": "platform:get",
1099
+ "id": "function:list",
1030
1100
  "pluginAlias": "@xano/cli",
1031
1101
  "pluginName": "@xano/cli",
1032
1102
  "pluginType": "core",
@@ -1036,18 +1106,24 @@
1036
1106
  "relativePath": [
1037
1107
  "dist",
1038
1108
  "commands",
1039
- "platform",
1040
- "get",
1109
+ "function",
1110
+ "list",
1041
1111
  "index.js"
1042
1112
  ]
1043
1113
  },
1044
- "platform:list": {
1114
+ "platform:get": {
1045
1115
  "aliases": [],
1046
- "args": {},
1047
- "description": "List all platforms",
1116
+ "args": {
1117
+ "platform_id": {
1118
+ "description": "Platform ID to retrieve",
1119
+ "name": "platform_id",
1120
+ "required": true
1121
+ }
1122
+ },
1123
+ "description": "Get details of a specific platform",
1048
1124
  "examples": [
1049
- "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
1050
- "$ xano platform list --output json"
1125
+ "$ 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",
1126
+ "$ xano platform get 23629 -o json"
1051
1127
  ],
1052
1128
  "flags": {
1053
1129
  "profile": {
@@ -1086,7 +1162,7 @@
1086
1162
  },
1087
1163
  "hasDynamicHelp": false,
1088
1164
  "hiddenAliases": [],
1089
- "id": "platform:list",
1165
+ "id": "platform:get",
1090
1166
  "pluginAlias": "@xano/cli",
1091
1167
  "pluginName": "@xano/cli",
1092
1168
  "pluginType": "core",
@@ -1097,7 +1173,7 @@
1097
1173
  "dist",
1098
1174
  "commands",
1099
1175
  "platform",
1100
- "list",
1176
+ "get",
1101
1177
  "index.js"
1102
1178
  ]
1103
1179
  },
@@ -1344,17 +1420,28 @@
1344
1420
  "index.js"
1345
1421
  ]
1346
1422
  },
1347
- "profile:get": {
1423
+ "profile:list": {
1348
1424
  "aliases": [],
1349
1425
  "args": {},
1350
- "description": "Get the current default profile name",
1426
+ "description": "List all available profile configurations",
1351
1427
  "examples": [
1352
- "$ 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"
1353
1431
  ],
1354
- "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
+ },
1355
1442
  "hasDynamicHelp": false,
1356
1443
  "hiddenAliases": [],
1357
- "id": "profile:get",
1444
+ "id": "profile:list",
1358
1445
  "pluginAlias": "@xano/cli",
1359
1446
  "pluginName": "@xano/cli",
1360
1447
  "pluginType": "core",
@@ -1365,32 +1452,21 @@
1365
1452
  "dist",
1366
1453
  "commands",
1367
1454
  "profile",
1368
- "get",
1455
+ "list",
1369
1456
  "index.js"
1370
1457
  ]
1371
1458
  },
1372
- "profile:list": {
1459
+ "profile:get": {
1373
1460
  "aliases": [],
1374
1461
  "args": {},
1375
- "description": "List all available profile configurations",
1462
+ "description": "Get the current default profile name",
1376
1463
  "examples": [
1377
- "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1378
- "$ 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",
1379
- "$ 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"
1380
1465
  ],
1381
- "flags": {
1382
- "details": {
1383
- "char": "d",
1384
- "description": "Show detailed information for each profile",
1385
- "name": "details",
1386
- "required": false,
1387
- "allowNo": false,
1388
- "type": "boolean"
1389
- }
1390
- },
1466
+ "flags": {},
1391
1467
  "hasDynamicHelp": false,
1392
1468
  "hiddenAliases": [],
1393
- "id": "profile:list",
1469
+ "id": "profile:get",
1394
1470
  "pluginAlias": "@xano/cli",
1395
1471
  "pluginName": "@xano/cli",
1396
1472
  "pluginType": "core",
@@ -1401,24 +1477,18 @@
1401
1477
  "dist",
1402
1478
  "commands",
1403
1479
  "profile",
1404
- "list",
1480
+ "get",
1405
1481
  "index.js"
1406
1482
  ]
1407
1483
  },
1408
- "branch:get": {
1484
+ "profile:me": {
1409
1485
  "aliases": [],
1410
- "args": {
1411
- "branch_label": {
1412
- "description": "Branch label (e.g., \"v1\", \"dev\")",
1413
- "name": "branch_label",
1414
- "required": true
1415
- }
1416
- },
1417
- "description": "Get details for a specific branch",
1486
+ "args": {},
1487
+ "description": "Get information about the currently authenticated user",
1418
1488
  "examples": [
1419
- "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
1420
- "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
1421
- "$ xano branch get staging --output json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false,\n \"live\": false\n}\n"
1489
+ "$ xano profile:me\nUser Information:\n ID: 1\n Name: John Doe\n Email: john@example.com\n",
1490
+ "$ xano profile:me --profile production\nUser Information:\n ID: 42\n Name: Admin User\n Email: admin@example.com\n",
1491
+ "$ xano profile:me --output json\n{\n \"id\": 1,\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\"\n}\n"
1422
1492
  ],
1423
1493
  "flags": {
1424
1494
  "profile": {
@@ -1453,12 +1523,74 @@
1453
1523
  "json"
1454
1524
  ],
1455
1525
  "type": "option"
1526
+ }
1527
+ },
1528
+ "hasDynamicHelp": false,
1529
+ "hiddenAliases": [],
1530
+ "id": "profile:me",
1531
+ "pluginAlias": "@xano/cli",
1532
+ "pluginName": "@xano/cli",
1533
+ "pluginType": "core",
1534
+ "strict": true,
1535
+ "enableJsonFlag": false,
1536
+ "isESM": true,
1537
+ "relativePath": [
1538
+ "dist",
1539
+ "commands",
1540
+ "profile",
1541
+ "me",
1542
+ "index.js"
1543
+ ]
1544
+ },
1545
+ "profile:token": {
1546
+ "aliases": [],
1547
+ "args": {},
1548
+ "description": "Print the access token for the default profile",
1549
+ "examples": [
1550
+ "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1551
+ "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1552
+ ],
1553
+ "flags": {},
1554
+ "hasDynamicHelp": false,
1555
+ "hiddenAliases": [],
1556
+ "id": "profile:token",
1557
+ "pluginAlias": "@xano/cli",
1558
+ "pluginName": "@xano/cli",
1559
+ "pluginType": "core",
1560
+ "strict": true,
1561
+ "enableJsonFlag": false,
1562
+ "isESM": true,
1563
+ "relativePath": [
1564
+ "dist",
1565
+ "commands",
1566
+ "profile",
1567
+ "token",
1568
+ "index.js"
1569
+ ]
1570
+ },
1571
+ "profile:wizard": {
1572
+ "aliases": [],
1573
+ "args": {},
1574
+ "description": "Create a new profile configuration using an interactive wizard",
1575
+ "examples": [
1576
+ "$ 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"
1577
+ ],
1578
+ "flags": {
1579
+ "name": {
1580
+ "char": "n",
1581
+ "description": "Profile name (skip prompt if provided)",
1582
+ "name": "name",
1583
+ "required": false,
1584
+ "hasDynamicHelp": false,
1585
+ "multiple": false,
1586
+ "type": "option"
1456
1587
  },
1457
- "workspace": {
1458
- "char": "w",
1459
- "description": "Workspace ID (uses profile workspace if not provided)",
1460
- "name": "workspace",
1588
+ "origin": {
1589
+ "char": "o",
1590
+ "description": "Xano instance origin URL",
1591
+ "name": "origin",
1461
1592
  "required": false,
1593
+ "default": "https://app.xano.com",
1462
1594
  "hasDynamicHelp": false,
1463
1595
  "multiple": false,
1464
1596
  "type": "option"
@@ -1466,7 +1598,7 @@
1466
1598
  },
1467
1599
  "hasDynamicHelp": false,
1468
1600
  "hiddenAliases": [],
1469
- "id": "branch:get",
1601
+ "id": "profile:wizard",
1470
1602
  "pluginAlias": "@xano/cli",
1471
1603
  "pluginName": "@xano/cli",
1472
1604
  "pluginType": "core",
@@ -1476,8 +1608,8 @@
1476
1608
  "relativePath": [
1477
1609
  "dist",
1478
1610
  "commands",
1479
- "branch",
1480
- "get",
1611
+ "profile",
1612
+ "wizard",
1481
1613
  "index.js"
1482
1614
  ]
1483
1615
  },
@@ -1512,79 +1644,18 @@
1512
1644
  "index.js"
1513
1645
  ]
1514
1646
  },
1515
- "profile:me": {
1516
- "aliases": [],
1517
- "args": {},
1518
- "description": "Get information about the currently authenticated user",
1519
- "examples": [
1520
- "$ xano profile:me\nUser Information:\n ID: 1\n Name: John Doe\n Email: john@example.com\n",
1521
- "$ xano profile:me --profile production\nUser Information:\n ID: 42\n Name: Admin User\n Email: admin@example.com\n",
1522
- "$ xano profile:me --output json\n{\n \"id\": 1,\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\"\n}\n"
1523
- ],
1524
- "flags": {
1525
- "profile": {
1526
- "char": "p",
1527
- "description": "Profile to use (uses default profile if not specified)",
1528
- "env": "XANO_PROFILE",
1529
- "name": "profile",
1530
- "required": false,
1531
- "hasDynamicHelp": false,
1532
- "multiple": false,
1533
- "type": "option"
1534
- },
1535
- "verbose": {
1536
- "char": "v",
1537
- "description": "Show detailed request/response information",
1538
- "env": "XANO_VERBOSE",
1539
- "name": "verbose",
1540
- "required": false,
1541
- "allowNo": false,
1542
- "type": "boolean"
1543
- },
1544
- "output": {
1545
- "char": "o",
1546
- "description": "Output format",
1547
- "name": "output",
1548
- "required": false,
1549
- "default": "summary",
1550
- "hasDynamicHelp": false,
1551
- "multiple": false,
1552
- "options": [
1553
- "summary",
1554
- "json"
1555
- ],
1556
- "type": "option"
1557
- }
1558
- },
1559
- "hasDynamicHelp": false,
1560
- "hiddenAliases": [],
1561
- "id": "profile:me",
1562
- "pluginAlias": "@xano/cli",
1563
- "pluginName": "@xano/cli",
1564
- "pluginType": "core",
1565
- "strict": true,
1566
- "enableJsonFlag": false,
1567
- "isESM": true,
1568
- "relativePath": [
1569
- "dist",
1570
- "commands",
1571
- "profile",
1572
- "me",
1573
- "index.js"
1574
- ]
1575
- },
1576
- "profile:token": {
1647
+ "profile:workspace": {
1577
1648
  "aliases": [],
1578
1649
  "args": {},
1579
- "description": "Print the access token for the default profile",
1650
+ "description": "Print the workspace ID for the default profile",
1580
1651
  "examples": [
1581
- "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1582
- "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1652
+ "$ xano profile:workspace\nabc123-workspace-id\n",
1653
+ "$ xano profile:workspace | pbcopy\n# Copies the workspace ID to clipboard on macOS\n"
1583
1654
  ],
1584
1655
  "flags": {},
1585
1656
  "hasDynamicHelp": false,
1586
1657
  "hiddenAliases": [],
1587
- "id": "profile:token",
1658
+ "id": "profile:workspace",
1588
1659
  "pluginAlias": "@xano/cli",
1589
1660
  "pluginName": "@xano/cli",
1590
1661
  "pluginType": "core",
@@ -1595,7 +1666,7 @@
1595
1666
  "dist",
1596
1667
  "commands",
1597
1668
  "profile",
1598
- "token",
1669
+ "workspace",
1599
1670
  "index.js"
1600
1671
  ]
1601
1672
  },
@@ -1710,46 +1781,19 @@
1710
1781
  "index.js"
1711
1782
  ]
1712
1783
  },
1713
- "profile:workspace": {
1714
- "aliases": [],
1715
- "args": {},
1716
- "description": "Print the workspace ID for the default profile",
1717
- "examples": [
1718
- "$ xano profile:workspace\nabc123-workspace-id\n",
1719
- "$ xano profile:workspace | pbcopy\n# Copies the workspace ID to clipboard on macOS\n"
1720
- ],
1721
- "flags": {},
1722
- "hasDynamicHelp": false,
1723
- "hiddenAliases": [],
1724
- "id": "profile:workspace",
1725
- "pluginAlias": "@xano/cli",
1726
- "pluginName": "@xano/cli",
1727
- "pluginType": "core",
1728
- "strict": true,
1729
- "enableJsonFlag": false,
1730
- "isESM": true,
1731
- "relativePath": [
1732
- "dist",
1733
- "commands",
1734
- "profile",
1735
- "workspace",
1736
- "index.js"
1737
- ]
1738
- },
1739
- "release:delete": {
1784
+ "release:edit": {
1740
1785
  "aliases": [],
1741
1786
  "args": {
1742
1787
  "release_name": {
1743
- "description": "Release name to delete",
1788
+ "description": "Release name to edit",
1744
1789
  "name": "release_name",
1745
1790
  "required": true
1746
1791
  }
1747
1792
  },
1748
- "description": "Delete a release permanently. This action cannot be undone.",
1793
+ "description": "Edit an existing release",
1749
1794
  "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"
1795
+ "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
1796
+ "$ xano release edit v1.0 --description \"New description\" -o json"
1753
1797
  ],
1754
1798
  "flags": {
1755
1799
  "profile": {
@@ -1771,13 +1815,23 @@
1771
1815
  "allowNo": false,
1772
1816
  "type": "boolean"
1773
1817
  },
1774
- "force": {
1775
- "char": "f",
1776
- "description": "Skip confirmation prompt",
1777
- "name": "force",
1818
+ "description": {
1819
+ "char": "d",
1820
+ "description": "New description",
1821
+ "name": "description",
1778
1822
  "required": false,
1779
- "allowNo": false,
1780
- "type": "boolean"
1823
+ "hasDynamicHelp": false,
1824
+ "multiple": false,
1825
+ "type": "option"
1826
+ },
1827
+ "name": {
1828
+ "char": "n",
1829
+ "description": "New name for the release",
1830
+ "name": "name",
1831
+ "required": false,
1832
+ "hasDynamicHelp": false,
1833
+ "multiple": false,
1834
+ "type": "option"
1781
1835
  },
1782
1836
  "output": {
1783
1837
  "char": "o",
@@ -1805,7 +1859,7 @@
1805
1859
  },
1806
1860
  "hasDynamicHelp": false,
1807
1861
  "hiddenAliases": [],
1808
- "id": "release:delete",
1862
+ "id": "release:edit",
1809
1863
  "pluginAlias": "@xano/cli",
1810
1864
  "pluginName": "@xano/cli",
1811
1865
  "pluginType": "core",
@@ -1816,24 +1870,24 @@
1816
1870
  "dist",
1817
1871
  "commands",
1818
1872
  "release",
1819
- "delete",
1873
+ "edit",
1820
1874
  "index.js"
1821
1875
  ]
1822
1876
  },
1823
- "release:export": {
1877
+ "release:delete": {
1824
1878
  "aliases": [],
1825
1879
  "args": {
1826
1880
  "release_name": {
1827
- "description": "Release name to export",
1881
+ "description": "Release name to delete",
1828
1882
  "name": "release_name",
1829
1883
  "required": true
1830
1884
  }
1831
1885
  },
1832
- "description": "Export (download) a release to a local file",
1886
+ "description": "Delete a release permanently. This action cannot be undone.",
1833
1887
  "examples": [
1834
- "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
1835
- "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
1836
- "$ xano release export v1.0 -o json"
1888
+ "$ xano release delete v1.0\nAre you sure you want to delete release 'v1.0'? This action cannot be undone. (y/N) y\nDeleted release 'v1.0'\n",
1889
+ "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1890
+ "$ xano release delete v1.0 -f -o json"
1837
1891
  ],
1838
1892
  "flags": {
1839
1893
  "profile": {
@@ -1855,10 +1909,18 @@
1855
1909
  "allowNo": false,
1856
1910
  "type": "boolean"
1857
1911
  },
1858
- "format": {
1912
+ "force": {
1913
+ "char": "f",
1914
+ "description": "Skip confirmation prompt",
1915
+ "name": "force",
1916
+ "required": false,
1917
+ "allowNo": false,
1918
+ "type": "boolean"
1919
+ },
1920
+ "output": {
1859
1921
  "char": "o",
1860
1922
  "description": "Output format",
1861
- "name": "format",
1923
+ "name": "output",
1862
1924
  "required": false,
1863
1925
  "default": "summary",
1864
1926
  "hasDynamicHelp": false,
@@ -1869,14 +1931,6 @@
1869
1931
  ],
1870
1932
  "type": "option"
1871
1933
  },
1872
- "output": {
1873
- "description": "Output file path (defaults to ./release-{name}.tar.gz)",
1874
- "name": "output",
1875
- "required": false,
1876
- "hasDynamicHelp": false,
1877
- "multiple": false,
1878
- "type": "option"
1879
- },
1880
1934
  "workspace": {
1881
1935
  "char": "w",
1882
1936
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -1889,7 +1943,7 @@
1889
1943
  },
1890
1944
  "hasDynamicHelp": false,
1891
1945
  "hiddenAliases": [],
1892
- "id": "release:export",
1946
+ "id": "release:delete",
1893
1947
  "pluginAlias": "@xano/cli",
1894
1948
  "pluginName": "@xano/cli",
1895
1949
  "pluginType": "core",
@@ -1900,23 +1954,24 @@
1900
1954
  "dist",
1901
1955
  "commands",
1902
1956
  "release",
1903
- "export",
1957
+ "delete",
1904
1958
  "index.js"
1905
1959
  ]
1906
1960
  },
1907
- "release:edit": {
1961
+ "release:export": {
1908
1962
  "aliases": [],
1909
1963
  "args": {
1910
1964
  "release_name": {
1911
- "description": "Release name to edit",
1965
+ "description": "Release name to export",
1912
1966
  "name": "release_name",
1913
1967
  "required": true
1914
1968
  }
1915
1969
  },
1916
- "description": "Edit an existing release",
1970
+ "description": "Export (download) a release to a local file",
1917
1971
  "examples": [
1918
- "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
1919
- "$ xano release edit v1.0 --description \"New description\" -o json"
1972
+ "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
1973
+ "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
1974
+ "$ xano release export v1.0 -o json"
1920
1975
  ],
1921
1976
  "flags": {
1922
1977
  "profile": {
@@ -1938,88 +1993,33 @@
1938
1993
  "allowNo": false,
1939
1994
  "type": "boolean"
1940
1995
  },
1941
- "description": {
1942
- "char": "d",
1943
- "description": "New description",
1944
- "name": "description",
1945
- "required": false,
1946
- "hasDynamicHelp": false,
1947
- "multiple": false,
1948
- "type": "option"
1949
- },
1950
- "name": {
1951
- "char": "n",
1952
- "description": "New name for the release",
1953
- "name": "name",
1954
- "required": false,
1955
- "hasDynamicHelp": false,
1956
- "multiple": false,
1957
- "type": "option"
1958
- },
1959
- "output": {
1960
- "char": "o",
1961
- "description": "Output format",
1962
- "name": "output",
1963
- "required": false,
1964
- "default": "summary",
1965
- "hasDynamicHelp": false,
1966
- "multiple": false,
1967
- "options": [
1968
- "summary",
1969
- "json"
1970
- ],
1971
- "type": "option"
1972
- },
1973
- "workspace": {
1974
- "char": "w",
1975
- "description": "Workspace ID (uses profile workspace if not provided)",
1976
- "name": "workspace",
1977
- "required": false,
1978
- "hasDynamicHelp": false,
1979
- "multiple": false,
1980
- "type": "option"
1981
- }
1982
- },
1983
- "hasDynamicHelp": false,
1984
- "hiddenAliases": [],
1985
- "id": "release:edit",
1986
- "pluginAlias": "@xano/cli",
1987
- "pluginName": "@xano/cli",
1988
- "pluginType": "core",
1989
- "strict": true,
1990
- "enableJsonFlag": false,
1991
- "isESM": true,
1992
- "relativePath": [
1993
- "dist",
1994
- "commands",
1995
- "release",
1996
- "edit",
1997
- "index.js"
1998
- ]
1999
- },
2000
- "profile:wizard": {
2001
- "aliases": [],
2002
- "args": {},
2003
- "description": "Create a new profile configuration using an interactive wizard",
2004
- "examples": [
2005
- "$ 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"
2006
- ],
2007
- "flags": {
2008
- "name": {
2009
- "char": "n",
2010
- "description": "Profile name (skip prompt if provided)",
2011
- "name": "name",
1996
+ "format": {
1997
+ "char": "o",
1998
+ "description": "Output format",
1999
+ "name": "format",
2012
2000
  "required": false,
2001
+ "default": "summary",
2013
2002
  "hasDynamicHelp": false,
2014
2003
  "multiple": false,
2004
+ "options": [
2005
+ "summary",
2006
+ "json"
2007
+ ],
2015
2008
  "type": "option"
2016
2009
  },
2017
- "origin": {
2018
- "char": "o",
2019
- "description": "Xano instance origin URL",
2020
- "name": "origin",
2010
+ "output": {
2011
+ "description": "Output file path (defaults to ./release-{name}.tar.gz)",
2012
+ "name": "output",
2013
+ "required": false,
2014
+ "hasDynamicHelp": false,
2015
+ "multiple": false,
2016
+ "type": "option"
2017
+ },
2018
+ "workspace": {
2019
+ "char": "w",
2020
+ "description": "Workspace ID (uses profile workspace if not provided)",
2021
+ "name": "workspace",
2021
2022
  "required": false,
2022
- "default": "https://app.xano.com",
2023
2023
  "hasDynamicHelp": false,
2024
2024
  "multiple": false,
2025
2025
  "type": "option"
@@ -2027,7 +2027,7 @@
2027
2027
  },
2028
2028
  "hasDynamicHelp": false,
2029
2029
  "hiddenAliases": [],
2030
- "id": "profile:wizard",
2030
+ "id": "release:export",
2031
2031
  "pluginAlias": "@xano/cli",
2032
2032
  "pluginName": "@xano/cli",
2033
2033
  "pluginType": "core",
@@ -2037,8 +2037,8 @@
2037
2037
  "relativePath": [
2038
2038
  "dist",
2039
2039
  "commands",
2040
- "profile",
2041
- "wizard",
2040
+ "release",
2041
+ "export",
2042
2042
  "index.js"
2043
2043
  ]
2044
2044
  },
@@ -2349,95 +2349,6 @@
2349
2349
  "index.js"
2350
2350
  ]
2351
2351
  },
2352
- "static_host:list": {
2353
- "aliases": [],
2354
- "args": {},
2355
- "description": "List all static hosts in a workspace from the Xano Metadata API",
2356
- "examples": [
2357
- "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2358
- "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2359
- "$ 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",
2360
- "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
2361
- ],
2362
- "flags": {
2363
- "profile": {
2364
- "char": "p",
2365
- "description": "Profile to use (uses default profile if not specified)",
2366
- "env": "XANO_PROFILE",
2367
- "name": "profile",
2368
- "required": false,
2369
- "hasDynamicHelp": false,
2370
- "multiple": false,
2371
- "type": "option"
2372
- },
2373
- "verbose": {
2374
- "char": "v",
2375
- "description": "Show detailed request/response information",
2376
- "env": "XANO_VERBOSE",
2377
- "name": "verbose",
2378
- "required": false,
2379
- "allowNo": false,
2380
- "type": "boolean"
2381
- },
2382
- "output": {
2383
- "char": "o",
2384
- "description": "Output format",
2385
- "name": "output",
2386
- "required": false,
2387
- "default": "summary",
2388
- "hasDynamicHelp": false,
2389
- "multiple": false,
2390
- "options": [
2391
- "summary",
2392
- "json"
2393
- ],
2394
- "type": "option"
2395
- },
2396
- "page": {
2397
- "description": "Page number for pagination",
2398
- "name": "page",
2399
- "required": false,
2400
- "default": 1,
2401
- "hasDynamicHelp": false,
2402
- "multiple": false,
2403
- "type": "option"
2404
- },
2405
- "per_page": {
2406
- "description": "Number of results per page",
2407
- "name": "per_page",
2408
- "required": false,
2409
- "default": 50,
2410
- "hasDynamicHelp": false,
2411
- "multiple": false,
2412
- "type": "option"
2413
- },
2414
- "workspace": {
2415
- "char": "w",
2416
- "description": "Workspace ID (optional if set in profile)",
2417
- "name": "workspace",
2418
- "required": false,
2419
- "hasDynamicHelp": false,
2420
- "multiple": false,
2421
- "type": "option"
2422
- }
2423
- },
2424
- "hasDynamicHelp": false,
2425
- "hiddenAliases": [],
2426
- "id": "static_host:list",
2427
- "pluginAlias": "@xano/cli",
2428
- "pluginName": "@xano/cli",
2429
- "pluginType": "core",
2430
- "strict": true,
2431
- "enableJsonFlag": false,
2432
- "isESM": true,
2433
- "relativePath": [
2434
- "dist",
2435
- "commands",
2436
- "static_host",
2437
- "list",
2438
- "index.js"
2439
- ]
2440
- },
2441
2352
  "release:push": {
2442
2353
  "aliases": [],
2443
2354
  "args": {
@@ -2497,148 +2408,15 @@
2497
2408
  "name": "hotfix",
2498
2409
  "required": false,
2499
2410
  "allowNo": false,
2500
- "type": "boolean"
2501
- },
2502
- "name": {
2503
- "char": "n",
2504
- "description": "Name for the release",
2505
- "name": "name",
2506
- "required": true,
2507
- "hasDynamicHelp": false,
2508
- "multiple": false,
2509
- "type": "option"
2510
- },
2511
- "output": {
2512
- "char": "o",
2513
- "description": "Output format",
2514
- "name": "output",
2515
- "required": false,
2516
- "default": "summary",
2517
- "hasDynamicHelp": false,
2518
- "multiple": false,
2519
- "options": [
2520
- "summary",
2521
- "json"
2522
- ],
2523
- "type": "option"
2524
- },
2525
- "records": {
2526
- "description": "Include records (default: true, use --no-records to exclude)",
2527
- "name": "records",
2528
- "required": false,
2529
- "allowNo": true,
2530
- "type": "boolean"
2531
- },
2532
- "workspace": {
2533
- "char": "w",
2534
- "description": "Workspace ID (optional if set in profile)",
2535
- "name": "workspace",
2536
- "required": false,
2537
- "hasDynamicHelp": false,
2538
- "multiple": false,
2539
- "type": "option"
2540
- }
2541
- },
2542
- "hasDynamicHelp": false,
2543
- "hiddenAliases": [],
2544
- "id": "release:push",
2545
- "pluginAlias": "@xano/cli",
2546
- "pluginName": "@xano/cli",
2547
- "pluginType": "core",
2548
- "strict": true,
2549
- "enableJsonFlag": false,
2550
- "isESM": true,
2551
- "relativePath": [
2552
- "dist",
2553
- "commands",
2554
- "release",
2555
- "push",
2556
- "index.js"
2557
- ]
2558
- },
2559
- "tenant:create": {
2560
- "aliases": [],
2561
- "args": {
2562
- "display": {
2563
- "description": "Display name for the tenant",
2564
- "name": "display",
2565
- "required": true
2566
- }
2567
- },
2568
- "description": "Create a new tenant in a workspace",
2569
- "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"
2572
- ],
2573
- "flags": {
2574
- "profile": {
2575
- "char": "p",
2576
- "description": "Profile to use (uses default profile if not specified)",
2577
- "env": "XANO_PROFILE",
2578
- "name": "profile",
2579
- "required": false,
2580
- "hasDynamicHelp": false,
2581
- "multiple": false,
2582
- "type": "option"
2583
- },
2584
- "verbose": {
2585
- "char": "v",
2586
- "description": "Show detailed request/response information",
2587
- "env": "XANO_VERBOSE",
2588
- "name": "verbose",
2589
- "required": false,
2590
- "allowNo": false,
2591
- "type": "boolean"
2592
- },
2593
- "cluster_id": {
2594
- "description": "Cluster ID to deploy to (required for tier2/tier3)",
2595
- "name": "cluster_id",
2596
- "required": false,
2597
- "hasDynamicHelp": false,
2598
- "multiple": false,
2599
- "type": "option"
2600
- },
2601
- "description": {
2602
- "char": "d",
2603
- "description": "Tenant description",
2604
- "name": "description",
2605
- "required": false,
2606
- "hasDynamicHelp": false,
2607
- "multiple": false,
2608
- "type": "option"
2609
- },
2610
- "domain": {
2611
- "description": "Custom domain for the tenant",
2612
- "name": "domain",
2613
- "required": false,
2614
- "hasDynamicHelp": false,
2615
- "multiple": false,
2616
- "type": "option"
2617
- },
2618
- "ephemeral": {
2619
- "description": "Mark tenant as ephemeral (allows push operations)",
2620
- "name": "ephemeral",
2621
- "allowNo": false,
2622
- "type": "boolean"
2623
- },
2624
- "ingress": {
2625
- "description": "Enable ingress",
2626
- "name": "ingress",
2627
- "allowNo": true,
2628
- "type": "boolean"
2629
- },
2630
- "license": {
2631
- "description": "License tier",
2632
- "name": "license",
2633
- "required": false,
2634
- "default": "tier1",
2411
+ "type": "boolean"
2412
+ },
2413
+ "name": {
2414
+ "char": "n",
2415
+ "description": "Name for the release",
2416
+ "name": "name",
2417
+ "required": true,
2635
2418
  "hasDynamicHelp": false,
2636
2419
  "multiple": false,
2637
- "options": [
2638
- "tier1",
2639
- "tier2",
2640
- "tier3"
2641
- ],
2642
2420
  "type": "option"
2643
2421
  },
2644
2422
  "output": {
@@ -2655,23 +2433,16 @@
2655
2433
  ],
2656
2434
  "type": "option"
2657
2435
  },
2658
- "platform_id": {
2659
- "description": "Platform ID to use",
2660
- "name": "platform_id",
2436
+ "records": {
2437
+ "description": "Include records (default: true, use --no-records to exclude)",
2438
+ "name": "records",
2661
2439
  "required": false,
2662
- "hasDynamicHelp": false,
2663
- "multiple": false,
2664
- "type": "option"
2665
- },
2666
- "tasks": {
2667
- "description": "Enable background tasks",
2668
- "name": "tasks",
2669
2440
  "allowNo": true,
2670
2441
  "type": "boolean"
2671
2442
  },
2672
2443
  "workspace": {
2673
2444
  "char": "w",
2674
- "description": "Workspace ID (uses profile workspace if not provided)",
2445
+ "description": "Workspace ID (optional if set in profile)",
2675
2446
  "name": "workspace",
2676
2447
  "required": false,
2677
2448
  "hasDynamicHelp": false,
@@ -2681,7 +2452,7 @@
2681
2452
  },
2682
2453
  "hasDynamicHelp": false,
2683
2454
  "hiddenAliases": [],
2684
- "id": "tenant:create",
2455
+ "id": "release:push",
2685
2456
  "pluginAlias": "@xano/cli",
2686
2457
  "pluginName": "@xano/cli",
2687
2458
  "pluginType": "core",
@@ -2691,24 +2462,25 @@
2691
2462
  "relativePath": [
2692
2463
  "dist",
2693
2464
  "commands",
2694
- "tenant",
2695
- "create",
2465
+ "release",
2466
+ "push",
2696
2467
  "index.js"
2697
2468
  ]
2698
2469
  },
2699
- "tenant:deploy_release": {
2470
+ "tenant:delete": {
2700
2471
  "aliases": [],
2701
2472
  "args": {
2702
2473
  "tenant_name": {
2703
- "description": "Tenant name to deploy to",
2474
+ "description": "Tenant name to delete",
2704
2475
  "name": "tenant_name",
2705
2476
  "required": true
2706
2477
  }
2707
2478
  },
2708
- "description": "Deploy a release to a tenant",
2479
+ "description": "Delete a tenant permanently. This destroys all associated infrastructure and cannot be undone.",
2709
2480
  "examples": [
2710
- "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0\nDeployed release \"v1.0\" to tenant: My Tenant (my-tenant)\n",
2711
- "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0 -o json"
2481
+ "$ xano tenant delete t1234-abcd-xyz1\nAre you sure you want to delete tenant t1234-abcd-xyz1? This action cannot be undone. (y/N) y\nDeleted tenant t1234-abcd-xyz1\n",
2482
+ "$ xano tenant delete t1234-abcd-xyz1 --force\nDeleted tenant t1234-abcd-xyz1\n",
2483
+ "$ xano tenant delete t1234-abcd-xyz1 -f -o json"
2712
2484
  ],
2713
2485
  "flags": {
2714
2486
  "profile": {
@@ -2730,6 +2502,14 @@
2730
2502
  "allowNo": false,
2731
2503
  "type": "boolean"
2732
2504
  },
2505
+ "force": {
2506
+ "char": "f",
2507
+ "description": "Skip confirmation prompt",
2508
+ "name": "force",
2509
+ "required": false,
2510
+ "allowNo": false,
2511
+ "type": "boolean"
2512
+ },
2733
2513
  "output": {
2734
2514
  "char": "o",
2735
2515
  "description": "Output format",
@@ -2744,15 +2524,6 @@
2744
2524
  ],
2745
2525
  "type": "option"
2746
2526
  },
2747
- "release": {
2748
- "char": "r",
2749
- "description": "Release name to deploy",
2750
- "name": "release",
2751
- "required": true,
2752
- "hasDynamicHelp": false,
2753
- "multiple": false,
2754
- "type": "option"
2755
- },
2756
2527
  "workspace": {
2757
2528
  "char": "w",
2758
2529
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2765,7 +2536,7 @@
2765
2536
  },
2766
2537
  "hasDynamicHelp": false,
2767
2538
  "hiddenAliases": [],
2768
- "id": "tenant:deploy_release",
2539
+ "id": "tenant:delete",
2769
2540
  "pluginAlias": "@xano/cli",
2770
2541
  "pluginName": "@xano/cli",
2771
2542
  "pluginType": "core",
@@ -2776,24 +2547,23 @@
2776
2547
  "dist",
2777
2548
  "commands",
2778
2549
  "tenant",
2779
- "deploy_release",
2550
+ "delete",
2780
2551
  "index.js"
2781
2552
  ]
2782
2553
  },
2783
- "tenant:delete": {
2554
+ "tenant:deploy_platform": {
2784
2555
  "aliases": [],
2785
2556
  "args": {
2786
2557
  "tenant_name": {
2787
- "description": "Tenant name to delete",
2558
+ "description": "Tenant name to deploy to",
2788
2559
  "name": "tenant_name",
2789
2560
  "required": true
2790
2561
  }
2791
2562
  },
2792
- "description": "Delete a tenant permanently. This destroys all associated infrastructure and cannot be undone.",
2563
+ "description": "Deploy a platform version to a tenant",
2793
2564
  "examples": [
2794
- "$ 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",
2795
- "$ xano tenant delete t1234-abcd-xyz1 --force\nDeleted tenant t1234-abcd-xyz1\n",
2796
- "$ xano tenant delete t1234-abcd-xyz1 -f -o json"
2565
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
2566
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json"
2797
2567
  ],
2798
2568
  "flags": {
2799
2569
  "profile": {
@@ -2815,14 +2585,6 @@
2815
2585
  "allowNo": false,
2816
2586
  "type": "boolean"
2817
2587
  },
2818
- "force": {
2819
- "char": "f",
2820
- "description": "Skip confirmation prompt",
2821
- "name": "force",
2822
- "required": false,
2823
- "allowNo": false,
2824
- "type": "boolean"
2825
- },
2826
2588
  "output": {
2827
2589
  "char": "o",
2828
2590
  "description": "Output format",
@@ -2837,6 +2599,14 @@
2837
2599
  ],
2838
2600
  "type": "option"
2839
2601
  },
2602
+ "platform_id": {
2603
+ "description": "Platform ID to deploy",
2604
+ "name": "platform_id",
2605
+ "required": true,
2606
+ "hasDynamicHelp": false,
2607
+ "multiple": false,
2608
+ "type": "option"
2609
+ },
2840
2610
  "workspace": {
2841
2611
  "char": "w",
2842
2612
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2849,7 +2619,7 @@
2849
2619
  },
2850
2620
  "hasDynamicHelp": false,
2851
2621
  "hiddenAliases": [],
2852
- "id": "tenant:delete",
2622
+ "id": "tenant:deploy_platform",
2853
2623
  "pluginAlias": "@xano/cli",
2854
2624
  "pluginName": "@xano/cli",
2855
2625
  "pluginType": "core",
@@ -2860,23 +2630,23 @@
2860
2630
  "dist",
2861
2631
  "commands",
2862
2632
  "tenant",
2863
- "delete",
2633
+ "deploy_platform",
2864
2634
  "index.js"
2865
2635
  ]
2866
2636
  },
2867
- "tenant:deploy_platform": {
2637
+ "tenant:create": {
2868
2638
  "aliases": [],
2869
2639
  "args": {
2870
- "tenant_name": {
2871
- "description": "Tenant name to deploy to",
2872
- "name": "tenant_name",
2640
+ "display": {
2641
+ "description": "Display name for the tenant",
2642
+ "name": "display",
2873
2643
  "required": true
2874
2644
  }
2875
2645
  },
2876
- "description": "Deploy a platform version to a tenant",
2646
+ "description": "Create a new tenant in a workspace",
2877
2647
  "examples": [
2878
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
2879
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json"
2648
+ "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
2649
+ "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
2880
2650
  ],
2881
2651
  "flags": {
2882
2652
  "profile": {
@@ -2898,6 +2668,57 @@
2898
2668
  "allowNo": false,
2899
2669
  "type": "boolean"
2900
2670
  },
2671
+ "cluster_id": {
2672
+ "description": "Cluster ID to deploy to (required for tier2/tier3)",
2673
+ "name": "cluster_id",
2674
+ "required": false,
2675
+ "hasDynamicHelp": false,
2676
+ "multiple": false,
2677
+ "type": "option"
2678
+ },
2679
+ "description": {
2680
+ "char": "d",
2681
+ "description": "Tenant description",
2682
+ "name": "description",
2683
+ "required": false,
2684
+ "hasDynamicHelp": false,
2685
+ "multiple": false,
2686
+ "type": "option"
2687
+ },
2688
+ "domain": {
2689
+ "description": "Custom domain for the tenant",
2690
+ "name": "domain",
2691
+ "required": false,
2692
+ "hasDynamicHelp": false,
2693
+ "multiple": false,
2694
+ "type": "option"
2695
+ },
2696
+ "ephemeral": {
2697
+ "description": "Mark tenant as ephemeral (allows push operations)",
2698
+ "name": "ephemeral",
2699
+ "allowNo": false,
2700
+ "type": "boolean"
2701
+ },
2702
+ "ingress": {
2703
+ "description": "Enable ingress",
2704
+ "name": "ingress",
2705
+ "allowNo": true,
2706
+ "type": "boolean"
2707
+ },
2708
+ "license": {
2709
+ "description": "License tier",
2710
+ "name": "license",
2711
+ "required": false,
2712
+ "default": "tier1",
2713
+ "hasDynamicHelp": false,
2714
+ "multiple": false,
2715
+ "options": [
2716
+ "tier1",
2717
+ "tier2",
2718
+ "tier3"
2719
+ ],
2720
+ "type": "option"
2721
+ },
2901
2722
  "output": {
2902
2723
  "char": "o",
2903
2724
  "description": "Output format",
@@ -2913,13 +2734,19 @@
2913
2734
  "type": "option"
2914
2735
  },
2915
2736
  "platform_id": {
2916
- "description": "Platform ID to deploy",
2737
+ "description": "Platform ID to use",
2917
2738
  "name": "platform_id",
2918
- "required": true,
2739
+ "required": false,
2919
2740
  "hasDynamicHelp": false,
2920
2741
  "multiple": false,
2921
2742
  "type": "option"
2922
2743
  },
2744
+ "tasks": {
2745
+ "description": "Enable background tasks",
2746
+ "name": "tasks",
2747
+ "allowNo": true,
2748
+ "type": "boolean"
2749
+ },
2923
2750
  "workspace": {
2924
2751
  "char": "w",
2925
2752
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2932,7 +2759,7 @@
2932
2759
  },
2933
2760
  "hasDynamicHelp": false,
2934
2761
  "hiddenAliases": [],
2935
- "id": "tenant:deploy_platform",
2762
+ "id": "tenant:create",
2936
2763
  "pluginAlias": "@xano/cli",
2937
2764
  "pluginName": "@xano/cli",
2938
2765
  "pluginType": "core",
@@ -2943,7 +2770,7 @@
2943
2770
  "dist",
2944
2771
  "commands",
2945
2772
  "tenant",
2946
- "deploy_platform",
2773
+ "create",
2947
2774
  "index.js"
2948
2775
  ]
2949
2776
  },
@@ -3081,11 +2908,108 @@
3081
2908
  "multiple": false,
3082
2909
  "type": "option"
3083
2910
  },
3084
- "ingress": {
3085
- "description": "Enable/disable ingress",
3086
- "name": "ingress",
2911
+ "ingress": {
2912
+ "description": "Enable/disable ingress",
2913
+ "name": "ingress",
2914
+ "required": false,
2915
+ "allowNo": true,
2916
+ "type": "boolean"
2917
+ },
2918
+ "output": {
2919
+ "char": "o",
2920
+ "description": "Output format",
2921
+ "name": "output",
2922
+ "required": false,
2923
+ "default": "summary",
2924
+ "hasDynamicHelp": false,
2925
+ "multiple": false,
2926
+ "options": [
2927
+ "summary",
2928
+ "json"
2929
+ ],
2930
+ "type": "option"
2931
+ },
2932
+ "proxy": {
2933
+ "description": "Proxy URL",
2934
+ "name": "proxy",
2935
+ "required": false,
2936
+ "hasDynamicHelp": false,
2937
+ "multiple": false,
2938
+ "type": "option"
2939
+ },
2940
+ "rbac": {
2941
+ "description": "Enable/disable RBAC",
2942
+ "name": "rbac",
2943
+ "required": false,
2944
+ "allowNo": true,
2945
+ "type": "boolean"
2946
+ },
2947
+ "tasks": {
2948
+ "description": "Enable/disable background tasks",
2949
+ "name": "tasks",
2950
+ "required": false,
2951
+ "allowNo": true,
2952
+ "type": "boolean"
2953
+ },
2954
+ "workspace": {
2955
+ "char": "w",
2956
+ "description": "Workspace ID (uses profile workspace if not provided)",
2957
+ "name": "workspace",
2958
+ "required": false,
2959
+ "hasDynamicHelp": false,
2960
+ "multiple": false,
2961
+ "type": "option"
2962
+ }
2963
+ },
2964
+ "hasDynamicHelp": false,
2965
+ "hiddenAliases": [],
2966
+ "id": "tenant:edit",
2967
+ "pluginAlias": "@xano/cli",
2968
+ "pluginName": "@xano/cli",
2969
+ "pluginType": "core",
2970
+ "strict": true,
2971
+ "enableJsonFlag": false,
2972
+ "isESM": true,
2973
+ "relativePath": [
2974
+ "dist",
2975
+ "commands",
2976
+ "tenant",
2977
+ "edit",
2978
+ "index.js"
2979
+ ]
2980
+ },
2981
+ "tenant:deploy_release": {
2982
+ "aliases": [],
2983
+ "args": {
2984
+ "tenant_name": {
2985
+ "description": "Tenant name to deploy to",
2986
+ "name": "tenant_name",
2987
+ "required": true
2988
+ }
2989
+ },
2990
+ "description": "Deploy a release to a tenant",
2991
+ "examples": [
2992
+ "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0\nDeployed release \"v1.0\" to tenant: My Tenant (my-tenant)\n",
2993
+ "$ xano tenant deploy_release t1234-abcd-xyz1 --release v1.0 -o json"
2994
+ ],
2995
+ "flags": {
2996
+ "profile": {
2997
+ "char": "p",
2998
+ "description": "Profile to use (uses default profile if not specified)",
2999
+ "env": "XANO_PROFILE",
3000
+ "name": "profile",
3001
+ "required": false,
3002
+ "hasDynamicHelp": false,
3003
+ "multiple": false,
3004
+ "type": "option"
3005
+ },
3006
+ "verbose": {
3007
+ "char": "v",
3008
+ "description": "Show detailed request/response information",
3009
+ "env": "XANO_VERBOSE",
3010
+ "name": "verbose",
3087
3011
  "required": false,
3088
- "allowNo": true,
3012
+ "allowNo": false,
3089
3013
  "type": "boolean"
3090
3014
  },
3091
3015
  "output": {
@@ -3102,28 +3026,15 @@
3102
3026
  ],
3103
3027
  "type": "option"
3104
3028
  },
3105
- "proxy": {
3106
- "description": "Proxy URL",
3107
- "name": "proxy",
3108
- "required": false,
3029
+ "release": {
3030
+ "char": "r",
3031
+ "description": "Release name to deploy",
3032
+ "name": "release",
3033
+ "required": true,
3109
3034
  "hasDynamicHelp": false,
3110
3035
  "multiple": false,
3111
3036
  "type": "option"
3112
3037
  },
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
3038
  "workspace": {
3128
3039
  "char": "w",
3129
3040
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3136,7 +3047,7 @@
3136
3047
  },
3137
3048
  "hasDynamicHelp": false,
3138
3049
  "hiddenAliases": [],
3139
- "id": "tenant:edit",
3050
+ "id": "tenant:deploy_release",
3140
3051
  "pluginAlias": "@xano/cli",
3141
3052
  "pluginName": "@xano/cli",
3142
3053
  "pluginType": "core",
@@ -3147,7 +3058,7 @@
3147
3058
  "dist",
3148
3059
  "commands",
3149
3060
  "tenant",
3150
- "edit",
3061
+ "deploy_release",
3151
3062
  "index.js"
3152
3063
  ]
3153
3064
  },
@@ -3491,14 +3402,15 @@
3491
3402
  "index.js"
3492
3403
  ]
3493
3404
  },
3494
- "unit_test:list": {
3405
+ "static_host:list": {
3495
3406
  "aliases": [],
3496
3407
  "args": {},
3497
- "description": "List all unit tests in a workspace",
3408
+ "description": "List all static hosts in a workspace from the Xano Metadata API",
3498
3409
  "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"
3410
+ "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
3411
+ "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
3412
+ "$ xano static_host:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"my-static-host\",\n \"domain\": \"example.com\"\n }\n]\n",
3413
+ "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
3502
3414
  ],
3503
3415
  "flags": {
3504
3416
  "profile": {
@@ -3520,28 +3432,6 @@
3520
3432
  "allowNo": false,
3521
3433
  "type": "boolean"
3522
3434
  },
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,
3536
- "hasDynamicHelp": false,
3537
- "multiple": false,
3538
- "options": [
3539
- "function",
3540
- "query",
3541
- "middleware"
3542
- ],
3543
- "type": "option"
3544
- },
3545
3435
  "output": {
3546
3436
  "char": "o",
3547
3437
  "description": "Output format",
@@ -3556,84 +3446,27 @@
3556
3446
  ],
3557
3447
  "type": "option"
3558
3448
  },
3559
- "workspace": {
3560
- "char": "w",
3561
- "description": "Workspace ID (uses profile workspace if not provided)",
3562
- "name": "workspace",
3563
- "required": false,
3564
- "hasDynamicHelp": false,
3565
- "multiple": false,
3566
- "type": "option"
3567
- }
3568
- },
3569
- "hasDynamicHelp": false,
3570
- "hiddenAliases": [],
3571
- "id": "unit_test:list",
3572
- "pluginAlias": "@xano/cli",
3573
- "pluginName": "@xano/cli",
3574
- "pluginType": "core",
3575
- "strict": true,
3576
- "enableJsonFlag": false,
3577
- "isESM": true,
3578
- "relativePath": [
3579
- "dist",
3580
- "commands",
3581
- "unit_test",
3582
- "list",
3583
- "index.js"
3584
- ]
3585
- },
3586
- "unit_test:run": {
3587
- "aliases": [],
3588
- "args": {
3589
- "unit_test_id": {
3590
- "description": "ID of the unit test to run",
3591
- "name": "unit_test_id",
3592
- "required": true
3593
- }
3594
- },
3595
- "description": "Run a unit test",
3596
- "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"
3599
- ],
3600
- "flags": {
3601
- "profile": {
3602
- "char": "p",
3603
- "description": "Profile to use (uses default profile if not specified)",
3604
- "env": "XANO_PROFILE",
3605
- "name": "profile",
3449
+ "page": {
3450
+ "description": "Page number for pagination",
3451
+ "name": "page",
3606
3452
  "required": false,
3453
+ "default": 1,
3607
3454
  "hasDynamicHelp": false,
3608
3455
  "multiple": false,
3609
3456
  "type": "option"
3610
3457
  },
3611
- "verbose": {
3612
- "char": "v",
3613
- "description": "Show detailed request/response information",
3614
- "env": "XANO_VERBOSE",
3615
- "name": "verbose",
3616
- "required": false,
3617
- "allowNo": false,
3618
- "type": "boolean"
3619
- },
3620
- "output": {
3621
- "char": "o",
3622
- "description": "Output format",
3623
- "name": "output",
3458
+ "per_page": {
3459
+ "description": "Number of results per page",
3460
+ "name": "per_page",
3624
3461
  "required": false,
3625
- "default": "summary",
3462
+ "default": 50,
3626
3463
  "hasDynamicHelp": false,
3627
3464
  "multiple": false,
3628
- "options": [
3629
- "summary",
3630
- "json"
3631
- ],
3632
3465
  "type": "option"
3633
3466
  },
3634
3467
  "workspace": {
3635
3468
  "char": "w",
3636
- "description": "Workspace ID (uses profile workspace if not provided)",
3469
+ "description": "Workspace ID (optional if set in profile)",
3637
3470
  "name": "workspace",
3638
3471
  "required": false,
3639
3472
  "hasDynamicHelp": false,
@@ -3643,7 +3476,7 @@
3643
3476
  },
3644
3477
  "hasDynamicHelp": false,
3645
3478
  "hiddenAliases": [],
3646
- "id": "unit_test:run",
3479
+ "id": "static_host:list",
3647
3480
  "pluginAlias": "@xano/cli",
3648
3481
  "pluginName": "@xano/cli",
3649
3482
  "pluginType": "core",
@@ -3653,8 +3486,8 @@
3653
3486
  "relativePath": [
3654
3487
  "dist",
3655
3488
  "commands",
3656
- "unit_test",
3657
- "run",
3489
+ "static_host",
3490
+ "list",
3658
3491
  "index.js"
3659
3492
  ]
3660
3493
  },
@@ -3691,105 +3524,22 @@
3691
3524
  "description": "Filter by branch name",
3692
3525
  "name": "branch",
3693
3526
  "required": false,
3694
- "hasDynamicHelp": false,
3695
- "multiple": false,
3696
- "type": "option"
3697
- },
3698
- "obj-type": {
3699
- "description": "Filter by object type",
3700
- "name": "obj-type",
3701
- "required": false,
3702
- "hasDynamicHelp": false,
3703
- "multiple": false,
3704
- "options": [
3705
- "function",
3706
- "query",
3707
- "middleware"
3708
- ],
3709
- "type": "option"
3710
- },
3711
- "output": {
3712
- "char": "o",
3713
- "description": "Output format",
3714
- "name": "output",
3715
- "required": false,
3716
- "default": "summary",
3717
- "hasDynamicHelp": false,
3718
- "multiple": false,
3719
- "options": [
3720
- "summary",
3721
- "json"
3722
- ],
3723
- "type": "option"
3724
- },
3725
- "workspace": {
3726
- "char": "w",
3727
- "description": "Workspace ID (uses profile workspace if not provided)",
3728
- "name": "workspace",
3729
- "required": false,
3730
- "hasDynamicHelp": false,
3731
- "multiple": false,
3732
- "type": "option"
3733
- }
3734
- },
3735
- "hasDynamicHelp": false,
3736
- "hiddenAliases": [],
3737
- "id": "unit_test:run_all",
3738
- "pluginAlias": "@xano/cli",
3739
- "pluginName": "@xano/cli",
3740
- "pluginType": "core",
3741
- "strict": true,
3742
- "enableJsonFlag": false,
3743
- "isESM": true,
3744
- "relativePath": [
3745
- "dist",
3746
- "commands",
3747
- "unit_test",
3748
- "run_all",
3749
- "index.js"
3750
- ]
3751
- },
3752
- "workflow_test:delete": {
3753
- "aliases": [],
3754
- "args": {
3755
- "workflow_test_id": {
3756
- "description": "ID of the workflow test to delete",
3757
- "name": "workflow_test_id",
3758
- "required": true
3759
- }
3760
- },
3761
- "description": "Delete a workflow test",
3762
- "examples": [
3763
- "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
3764
- "$ xano workflow-test delete 1 --force"
3765
- ],
3766
- "flags": {
3767
- "profile": {
3768
- "char": "p",
3769
- "description": "Profile to use (uses default profile if not specified)",
3770
- "env": "XANO_PROFILE",
3771
- "name": "profile",
3772
- "required": false,
3773
- "hasDynamicHelp": false,
3774
- "multiple": false,
3775
- "type": "option"
3776
- },
3777
- "verbose": {
3778
- "char": "v",
3779
- "description": "Show detailed request/response information",
3780
- "env": "XANO_VERBOSE",
3781
- "name": "verbose",
3782
- "required": false,
3783
- "allowNo": false,
3784
- "type": "boolean"
3527
+ "hasDynamicHelp": false,
3528
+ "multiple": false,
3529
+ "type": "option"
3785
3530
  },
3786
- "force": {
3787
- "char": "f",
3788
- "description": "Skip confirmation prompt",
3789
- "name": "force",
3531
+ "obj-type": {
3532
+ "description": "Filter by object type",
3533
+ "name": "obj-type",
3790
3534
  "required": false,
3791
- "allowNo": false,
3792
- "type": "boolean"
3535
+ "hasDynamicHelp": false,
3536
+ "multiple": false,
3537
+ "options": [
3538
+ "function",
3539
+ "query",
3540
+ "middleware"
3541
+ ],
3542
+ "type": "option"
3793
3543
  },
3794
3544
  "output": {
3795
3545
  "char": "o",
@@ -3817,7 +3567,7 @@
3817
3567
  },
3818
3568
  "hasDynamicHelp": false,
3819
3569
  "hiddenAliases": [],
3820
- "id": "workflow_test:delete",
3570
+ "id": "unit_test:run_all",
3821
3571
  "pluginAlias": "@xano/cli",
3822
3572
  "pluginName": "@xano/cli",
3823
3573
  "pluginType": "core",
@@ -3827,25 +3577,25 @@
3827
3577
  "relativePath": [
3828
3578
  "dist",
3829
3579
  "commands",
3830
- "workflow_test",
3831
- "delete",
3580
+ "unit_test",
3581
+ "run_all",
3832
3582
  "index.js"
3833
3583
  ]
3834
3584
  },
3835
- "workflow_test:get": {
3585
+ "workspace:create": {
3836
3586
  "aliases": [],
3837
3587
  "args": {
3838
- "workflow_test_id": {
3839
- "description": "ID of the workflow test",
3840
- "name": "workflow_test_id",
3588
+ "name": {
3589
+ "description": "Name of the workspace",
3590
+ "name": "name",
3841
3591
  "required": true
3842
3592
  }
3843
3593
  },
3844
- "description": "Get a specific workflow test",
3594
+ "description": "Create a new workspace via the Xano Metadata API",
3845
3595
  "examples": [
3846
- "$ xano workflow-test get 1\nWorkflow Test: my-test (ID: 1)\n Description: Validates auth endpoints\n Branch: main\n",
3847
- "$ xano workflow-test get 1 -o xs",
3848
- "$ xano workflow-test get 1 -o json"
3596
+ "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
3597
+ "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
3598
+ "$ 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"
3849
3599
  ],
3850
3600
  "flags": {
3851
3601
  "profile": {
@@ -3867,12 +3617,14 @@
3867
3617
  "allowNo": false,
3868
3618
  "type": "boolean"
3869
3619
  },
3870
- "include-draft": {
3871
- "description": "Include draft version",
3872
- "name": "include-draft",
3620
+ "description": {
3621
+ "char": "d",
3622
+ "description": "Description for the workspace",
3623
+ "name": "description",
3873
3624
  "required": false,
3874
- "allowNo": false,
3875
- "type": "boolean"
3625
+ "hasDynamicHelp": false,
3626
+ "multiple": false,
3627
+ "type": "option"
3876
3628
  },
3877
3629
  "output": {
3878
3630
  "char": "o",
@@ -3884,24 +3636,14 @@
3884
3636
  "multiple": false,
3885
3637
  "options": [
3886
3638
  "summary",
3887
- "json",
3888
- "xs"
3639
+ "json"
3889
3640
  ],
3890
3641
  "type": "option"
3891
- },
3892
- "workspace": {
3893
- "char": "w",
3894
- "description": "Workspace ID (uses profile workspace if not provided)",
3895
- "name": "workspace",
3896
- "required": false,
3897
- "hasDynamicHelp": false,
3898
- "multiple": false,
3899
- "type": "option"
3900
3642
  }
3901
3643
  },
3902
3644
  "hasDynamicHelp": false,
3903
3645
  "hiddenAliases": [],
3904
- "id": "workflow_test:get",
3646
+ "id": "workspace:create",
3905
3647
  "pluginAlias": "@xano/cli",
3906
3648
  "pluginName": "@xano/cli",
3907
3649
  "pluginType": "core",
@@ -3911,24 +3653,24 @@
3911
3653
  "relativePath": [
3912
3654
  "dist",
3913
3655
  "commands",
3914
- "workflow_test",
3915
- "get",
3656
+ "workspace",
3657
+ "create",
3916
3658
  "index.js"
3917
3659
  ]
3918
3660
  },
3919
- "workflow_test:run": {
3661
+ "unit_test:run": {
3920
3662
  "aliases": [],
3921
3663
  "args": {
3922
- "workflow_test_id": {
3923
- "description": "ID of the workflow test to run",
3924
- "name": "workflow_test_id",
3664
+ "unit_test_id": {
3665
+ "description": "ID of the unit test to run",
3666
+ "name": "unit_test_id",
3925
3667
  "required": true
3926
3668
  }
3927
3669
  },
3928
- "description": "Run a workflow test",
3670
+ "description": "Run a unit test",
3929
3671
  "examples": [
3930
- "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
3931
- "$ xano workflow-test run 1 -o json"
3672
+ "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
3673
+ "$ xano unit-test run abc-123 -o json"
3932
3674
  ],
3933
3675
  "flags": {
3934
3676
  "profile": {
@@ -3976,7 +3718,7 @@
3976
3718
  },
3977
3719
  "hasDynamicHelp": false,
3978
3720
  "hiddenAliases": [],
3979
- "id": "workflow_test:run",
3721
+ "id": "unit_test:run",
3980
3722
  "pluginAlias": "@xano/cli",
3981
3723
  "pluginName": "@xano/cli",
3982
3724
  "pluginType": "core",
@@ -3986,19 +3728,19 @@
3986
3728
  "relativePath": [
3987
3729
  "dist",
3988
3730
  "commands",
3989
- "workflow_test",
3731
+ "unit_test",
3990
3732
  "run",
3991
3733
  "index.js"
3992
3734
  ]
3993
3735
  },
3994
- "workflow_test:list": {
3736
+ "unit_test:list": {
3995
3737
  "aliases": [],
3996
3738
  "args": {},
3997
- "description": "List all workflow tests in a workspace",
3739
+ "description": "List all unit tests in a workspace",
3998
3740
  "examples": [
3999
- "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
4000
- "$ xano workflow-test list -w 5 --output json",
4001
- "$ xano workflow-test list --branch main"
3741
+ "$ 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",
3742
+ "$ xano unit-test list -w 5 --output json",
3743
+ "$ xano unit-test list --obj-type function"
4002
3744
  ],
4003
3745
  "flags": {
4004
3746
  "profile": {
@@ -4029,6 +3771,19 @@
4029
3771
  "multiple": false,
4030
3772
  "type": "option"
4031
3773
  },
3774
+ "obj-type": {
3775
+ "description": "Filter by object type",
3776
+ "name": "obj-type",
3777
+ "required": false,
3778
+ "hasDynamicHelp": false,
3779
+ "multiple": false,
3780
+ "options": [
3781
+ "function",
3782
+ "query",
3783
+ "middleware"
3784
+ ],
3785
+ "type": "option"
3786
+ },
4032
3787
  "output": {
4033
3788
  "char": "o",
4034
3789
  "description": "Output format",
@@ -4055,7 +3810,7 @@
4055
3810
  },
4056
3811
  "hasDynamicHelp": false,
4057
3812
  "hiddenAliases": [],
4058
- "id": "workflow_test:list",
3813
+ "id": "unit_test:list",
4059
3814
  "pluginAlias": "@xano/cli",
4060
3815
  "pluginName": "@xano/cli",
4061
3816
  "pluginType": "core",
@@ -4065,18 +3820,26 @@
4065
3820
  "relativePath": [
4066
3821
  "dist",
4067
3822
  "commands",
4068
- "workflow_test",
3823
+ "unit_test",
4069
3824
  "list",
4070
3825
  "index.js"
4071
3826
  ]
4072
3827
  },
4073
- "workflow_test:run_all": {
3828
+ "workspace:edit": {
4074
3829
  "aliases": [],
4075
- "args": {},
4076
- "description": "Run all workflow tests in a workspace",
3830
+ "args": {
3831
+ "workspace_id": {
3832
+ "description": "Workspace ID to edit (uses profile workspace if not provided)",
3833
+ "name": "workspace_id",
3834
+ "required": false
3835
+ }
3836
+ },
3837
+ "description": "Edit an existing workspace via the Xano Metadata API",
4077
3838
  "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"
3839
+ "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
3840
+ "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
3841
+ "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
3842
+ "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
4080
3843
  ],
4081
3844
  "flags": {
4082
3845
  "profile": {
@@ -4098,10 +3861,19 @@
4098
3861
  "allowNo": false,
4099
3862
  "type": "boolean"
4100
3863
  },
4101
- "branch": {
4102
- "char": "b",
4103
- "description": "Filter by branch name",
4104
- "name": "branch",
3864
+ "description": {
3865
+ "char": "d",
3866
+ "description": "New description for the workspace",
3867
+ "name": "description",
3868
+ "required": false,
3869
+ "hasDynamicHelp": false,
3870
+ "multiple": false,
3871
+ "type": "option"
3872
+ },
3873
+ "name": {
3874
+ "char": "n",
3875
+ "description": "New name for the workspace",
3876
+ "name": "name",
4105
3877
  "required": false,
4106
3878
  "hasDynamicHelp": false,
4107
3879
  "multiple": false,
@@ -4121,19 +3893,24 @@
4121
3893
  ],
4122
3894
  "type": "option"
4123
3895
  },
4124
- "workspace": {
4125
- "char": "w",
4126
- "description": "Workspace ID (uses profile workspace if not provided)",
4127
- "name": "workspace",
3896
+ "require-token": {
3897
+ "description": "Whether to require a token for documentation access",
3898
+ "name": "require-token",
4128
3899
  "required": false,
4129
- "hasDynamicHelp": false,
4130
- "multiple": false,
4131
- "type": "option"
3900
+ "allowNo": true,
3901
+ "type": "boolean"
3902
+ },
3903
+ "swagger": {
3904
+ "description": "Enable or disable swagger documentation",
3905
+ "name": "swagger",
3906
+ "required": false,
3907
+ "allowNo": true,
3908
+ "type": "boolean"
4132
3909
  }
4133
3910
  },
4134
3911
  "hasDynamicHelp": false,
4135
3912
  "hiddenAliases": [],
4136
- "id": "workflow_test:run_all",
3913
+ "id": "workspace:edit",
4137
3914
  "pluginAlias": "@xano/cli",
4138
3915
  "pluginName": "@xano/cli",
4139
3916
  "pluginType": "core",
@@ -4143,25 +3920,25 @@
4143
3920
  "relativePath": [
4144
3921
  "dist",
4145
3922
  "commands",
4146
- "workflow_test",
4147
- "run_all",
3923
+ "workspace",
3924
+ "edit",
4148
3925
  "index.js"
4149
3926
  ]
4150
3927
  },
4151
- "workspace:create": {
3928
+ "workspace:get": {
4152
3929
  "aliases": [],
4153
3930
  "args": {
4154
- "name": {
4155
- "description": "Name of the workspace",
4156
- "name": "name",
4157
- "required": true
3931
+ "workspace_id": {
3932
+ "description": "Workspace ID to get details for (uses profile workspace if not provided)",
3933
+ "name": "workspace_id",
3934
+ "required": false
4158
3935
  }
4159
3936
  },
4160
- "description": "Create a new workspace via the Xano Metadata API",
3937
+ "description": "Get details of a specific workspace from the Xano Metadata API",
4161
3938
  "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"
3939
+ "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
3940
+ "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
3941
+ "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
4165
3942
  ],
4166
3943
  "flags": {
4167
3944
  "profile": {
@@ -4183,15 +3960,6 @@
4183
3960
  "allowNo": false,
4184
3961
  "type": "boolean"
4185
3962
  },
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
3963
  "output": {
4196
3964
  "char": "o",
4197
3965
  "description": "Output format",
@@ -4209,7 +3977,7 @@
4209
3977
  },
4210
3978
  "hasDynamicHelp": false,
4211
3979
  "hiddenAliases": [],
4212
- "id": "workspace:create",
3980
+ "id": "workspace:get",
4213
3981
  "pluginAlias": "@xano/cli",
4214
3982
  "pluginName": "@xano/cli",
4215
3983
  "pluginType": "core",
@@ -4220,7 +3988,7 @@
4220
3988
  "dist",
4221
3989
  "commands",
4222
3990
  "workspace",
4223
- "create",
3991
+ "get",
4224
3992
  "index.js"
4225
3993
  ]
4226
3994
  },
@@ -4299,21 +4067,19 @@
4299
4067
  "index.js"
4300
4068
  ]
4301
4069
  },
4302
- "workspace:edit": {
4070
+ "workflow_test:delete": {
4303
4071
  "aliases": [],
4304
4072
  "args": {
4305
- "workspace_id": {
4306
- "description": "Workspace ID to edit (uses profile workspace if not provided)",
4307
- "name": "workspace_id",
4308
- "required": false
4073
+ "workflow_test_id": {
4074
+ "description": "ID of the workflow test to delete",
4075
+ "name": "workflow_test_id",
4076
+ "required": true
4309
4077
  }
4310
4078
  },
4311
- "description": "Edit an existing workspace via the Xano Metadata API",
4079
+ "description": "Delete a workflow test",
4312
4080
  "examples": [
4313
- "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
4314
- "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
4315
- "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
4316
- "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
4081
+ "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
4082
+ "$ xano workflow-test delete 1 --force"
4317
4083
  ],
4318
4084
  "flags": {
4319
4085
  "profile": {
@@ -4335,23 +4101,13 @@
4335
4101
  "allowNo": false,
4336
4102
  "type": "boolean"
4337
4103
  },
4338
- "description": {
4339
- "char": "d",
4340
- "description": "New description for the workspace",
4341
- "name": "description",
4342
- "required": false,
4343
- "hasDynamicHelp": false,
4344
- "multiple": false,
4345
- "type": "option"
4346
- },
4347
- "name": {
4348
- "char": "n",
4349
- "description": "New name for the workspace",
4350
- "name": "name",
4104
+ "force": {
4105
+ "char": "f",
4106
+ "description": "Skip confirmation prompt",
4107
+ "name": "force",
4351
4108
  "required": false,
4352
- "hasDynamicHelp": false,
4353
- "multiple": false,
4354
- "type": "option"
4109
+ "allowNo": false,
4110
+ "type": "boolean"
4355
4111
  },
4356
4112
  "output": {
4357
4113
  "char": "o",
@@ -4365,26 +4121,21 @@
4365
4121
  "summary",
4366
4122
  "json"
4367
4123
  ],
4368
- "type": "option"
4369
- },
4370
- "require-token": {
4371
- "description": "Whether to require a token for documentation access",
4372
- "name": "require-token",
4373
- "required": false,
4374
- "allowNo": true,
4375
- "type": "boolean"
4124
+ "type": "option"
4376
4125
  },
4377
- "swagger": {
4378
- "description": "Enable or disable swagger documentation",
4379
- "name": "swagger",
4126
+ "workspace": {
4127
+ "char": "w",
4128
+ "description": "Workspace ID (uses profile workspace if not provided)",
4129
+ "name": "workspace",
4380
4130
  "required": false,
4381
- "allowNo": true,
4382
- "type": "boolean"
4131
+ "hasDynamicHelp": false,
4132
+ "multiple": false,
4133
+ "type": "option"
4383
4134
  }
4384
4135
  },
4385
4136
  "hasDynamicHelp": false,
4386
4137
  "hiddenAliases": [],
4387
- "id": "workspace:edit",
4138
+ "id": "workflow_test:delete",
4388
4139
  "pluginAlias": "@xano/cli",
4389
4140
  "pluginName": "@xano/cli",
4390
4141
  "pluginType": "core",
@@ -4394,25 +4145,25 @@
4394
4145
  "relativePath": [
4395
4146
  "dist",
4396
4147
  "commands",
4397
- "workspace",
4398
- "edit",
4148
+ "workflow_test",
4149
+ "delete",
4399
4150
  "index.js"
4400
4151
  ]
4401
4152
  },
4402
- "workspace:get": {
4153
+ "workflow_test:get": {
4403
4154
  "aliases": [],
4404
4155
  "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
4156
+ "workflow_test_id": {
4157
+ "description": "ID of the workflow test",
4158
+ "name": "workflow_test_id",
4159
+ "required": true
4409
4160
  }
4410
4161
  },
4411
- "description": "Get details of a specific workspace from the Xano Metadata API",
4162
+ "description": "Get a specific workflow test",
4412
4163
  "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"
4164
+ "$ xano workflow-test get 1\nWorkflow Test: my-test (ID: 1)\n Description: Validates auth endpoints\n Branch: main\n",
4165
+ "$ xano workflow-test get 1 -o xs",
4166
+ "$ xano workflow-test get 1 -o json"
4416
4167
  ],
4417
4168
  "flags": {
4418
4169
  "profile": {
@@ -4434,6 +4185,13 @@
4434
4185
  "allowNo": false,
4435
4186
  "type": "boolean"
4436
4187
  },
4188
+ "include-draft": {
4189
+ "description": "Include draft version",
4190
+ "name": "include-draft",
4191
+ "required": false,
4192
+ "allowNo": false,
4193
+ "type": "boolean"
4194
+ },
4437
4195
  "output": {
4438
4196
  "char": "o",
4439
4197
  "description": "Output format",
@@ -4444,14 +4202,24 @@
4444
4202
  "multiple": false,
4445
4203
  "options": [
4446
4204
  "summary",
4447
- "json"
4205
+ "json",
4206
+ "xs"
4448
4207
  ],
4449
4208
  "type": "option"
4209
+ },
4210
+ "workspace": {
4211
+ "char": "w",
4212
+ "description": "Workspace ID (uses profile workspace if not provided)",
4213
+ "name": "workspace",
4214
+ "required": false,
4215
+ "hasDynamicHelp": false,
4216
+ "multiple": false,
4217
+ "type": "option"
4450
4218
  }
4451
4219
  },
4452
4220
  "hasDynamicHelp": false,
4453
4221
  "hiddenAliases": [],
4454
- "id": "workspace:get",
4222
+ "id": "workflow_test:get",
4455
4223
  "pluginAlias": "@xano/cli",
4456
4224
  "pluginName": "@xano/cli",
4457
4225
  "pluginType": "core",
@@ -4461,20 +4229,19 @@
4461
4229
  "relativePath": [
4462
4230
  "dist",
4463
4231
  "commands",
4464
- "workspace",
4232
+ "workflow_test",
4465
4233
  "get",
4466
4234
  "index.js"
4467
4235
  ]
4468
4236
  },
4469
- "workspace:list": {
4237
+ "workflow_test:list": {
4470
4238
  "aliases": [],
4471
4239
  "args": {},
4472
- "description": "List all workspaces from the Xano Metadata API",
4240
+ "description": "List all workflow tests in a workspace",
4473
4241
  "examples": [
4474
- "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4475
- "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4476
- "$ 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",
4477
- "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4242
+ "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
4243
+ "$ xano workflow-test list -w 5 --output json",
4244
+ "$ xano workflow-test list --branch main"
4478
4245
  ],
4479
4246
  "flags": {
4480
4247
  "profile": {
@@ -4496,6 +4263,15 @@
4496
4263
  "allowNo": false,
4497
4264
  "type": "boolean"
4498
4265
  },
4266
+ "branch": {
4267
+ "char": "b",
4268
+ "description": "Filter by branch name",
4269
+ "name": "branch",
4270
+ "required": false,
4271
+ "hasDynamicHelp": false,
4272
+ "multiple": false,
4273
+ "type": "option"
4274
+ },
4499
4275
  "output": {
4500
4276
  "char": "o",
4501
4277
  "description": "Output format",
@@ -4509,11 +4285,20 @@
4509
4285
  "json"
4510
4286
  ],
4511
4287
  "type": "option"
4288
+ },
4289
+ "workspace": {
4290
+ "char": "w",
4291
+ "description": "Workspace ID (uses profile workspace if not provided)",
4292
+ "name": "workspace",
4293
+ "required": false,
4294
+ "hasDynamicHelp": false,
4295
+ "multiple": false,
4296
+ "type": "option"
4512
4297
  }
4513
4298
  },
4514
4299
  "hasDynamicHelp": false,
4515
4300
  "hiddenAliases": [],
4516
- "id": "workspace:list",
4301
+ "id": "workflow_test:list",
4517
4302
  "pluginAlias": "@xano/cli",
4518
4303
  "pluginName": "@xano/cli",
4519
4304
  "pluginType": "core",
@@ -4523,7 +4308,7 @@
4523
4308
  "relativePath": [
4524
4309
  "dist",
4525
4310
  "commands",
4526
- "workspace",
4311
+ "workflow_test",
4527
4312
  "list",
4528
4313
  "index.js"
4529
4314
  ]
@@ -4622,6 +4407,68 @@
4622
4407
  "index.js"
4623
4408
  ]
4624
4409
  },
4410
+ "workspace:list": {
4411
+ "aliases": [],
4412
+ "args": {},
4413
+ "description": "List all workspaces from the Xano Metadata API",
4414
+ "examples": [
4415
+ "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4416
+ "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4417
+ "$ 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",
4418
+ "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4419
+ ],
4420
+ "flags": {
4421
+ "profile": {
4422
+ "char": "p",
4423
+ "description": "Profile to use (uses default profile if not specified)",
4424
+ "env": "XANO_PROFILE",
4425
+ "name": "profile",
4426
+ "required": false,
4427
+ "hasDynamicHelp": false,
4428
+ "multiple": false,
4429
+ "type": "option"
4430
+ },
4431
+ "verbose": {
4432
+ "char": "v",
4433
+ "description": "Show detailed request/response information",
4434
+ "env": "XANO_VERBOSE",
4435
+ "name": "verbose",
4436
+ "required": false,
4437
+ "allowNo": false,
4438
+ "type": "boolean"
4439
+ },
4440
+ "output": {
4441
+ "char": "o",
4442
+ "description": "Output format",
4443
+ "name": "output",
4444
+ "required": false,
4445
+ "default": "summary",
4446
+ "hasDynamicHelp": false,
4447
+ "multiple": false,
4448
+ "options": [
4449
+ "summary",
4450
+ "json"
4451
+ ],
4452
+ "type": "option"
4453
+ }
4454
+ },
4455
+ "hasDynamicHelp": false,
4456
+ "hiddenAliases": [],
4457
+ "id": "workspace:list",
4458
+ "pluginAlias": "@xano/cli",
4459
+ "pluginName": "@xano/cli",
4460
+ "pluginType": "core",
4461
+ "strict": true,
4462
+ "enableJsonFlag": false,
4463
+ "isESM": true,
4464
+ "relativePath": [
4465
+ "dist",
4466
+ "commands",
4467
+ "workspace",
4468
+ "list",
4469
+ "index.js"
4470
+ ]
4471
+ },
4625
4472
  "workspace:push": {
4626
4473
  "aliases": [],
4627
4474
  "args": {
@@ -4708,116 +4555,13 @@
4708
4555
  "required": false,
4709
4556
  "allowNo": true,
4710
4557
  "type": "boolean"
4711
- },
4712
- "truncate": {
4713
- "description": "Truncate all table records before importing",
4714
- "name": "truncate",
4715
- "required": false,
4716
- "allowNo": false,
4717
- "type": "boolean"
4718
- },
4719
- "workspace": {
4720
- "char": "w",
4721
- "description": "Workspace ID (optional if set in profile)",
4722
- "name": "workspace",
4723
- "required": false,
4724
- "hasDynamicHelp": false,
4725
- "multiple": false,
4726
- "type": "option"
4727
- }
4728
- },
4729
- "hasDynamicHelp": false,
4730
- "hiddenAliases": [],
4731
- "id": "workspace:push",
4732
- "pluginAlias": "@xano/cli",
4733
- "pluginName": "@xano/cli",
4734
- "pluginType": "core",
4735
- "strict": true,
4736
- "enableJsonFlag": false,
4737
- "isESM": true,
4738
- "relativePath": [
4739
- "dist",
4740
- "commands",
4741
- "workspace",
4742
- "push",
4743
- "index.js"
4744
- ]
4745
- },
4746
- "static_host:build:create": {
4747
- "aliases": [],
4748
- "args": {
4749
- "static_host": {
4750
- "description": "Static Host name",
4751
- "name": "static_host",
4752
- "required": true
4753
- }
4754
- },
4755
- "description": "Create a new build for a static host",
4756
- "examples": [
4757
- "$ 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",
4758
- "$ 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",
4759
- "$ 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"
4760
- ],
4761
- "flags": {
4762
- "profile": {
4763
- "char": "p",
4764
- "description": "Profile to use (uses default profile if not specified)",
4765
- "env": "XANO_PROFILE",
4766
- "name": "profile",
4767
- "required": false,
4768
- "hasDynamicHelp": false,
4769
- "multiple": false,
4770
- "type": "option"
4771
- },
4772
- "verbose": {
4773
- "char": "v",
4774
- "description": "Show detailed request/response information",
4775
- "env": "XANO_VERBOSE",
4776
- "name": "verbose",
4777
- "required": false,
4778
- "allowNo": false,
4779
- "type": "boolean"
4780
- },
4781
- "description": {
4782
- "char": "d",
4783
- "description": "Build description",
4784
- "name": "description",
4785
- "required": false,
4786
- "hasDynamicHelp": false,
4787
- "multiple": false,
4788
- "type": "option"
4789
- },
4790
- "file": {
4791
- "char": "f",
4792
- "description": "Path to zip file to upload",
4793
- "name": "file",
4794
- "required": true,
4795
- "hasDynamicHelp": false,
4796
- "multiple": false,
4797
- "type": "option"
4798
- },
4799
- "name": {
4800
- "char": "n",
4801
- "description": "Build name",
4802
- "name": "name",
4803
- "required": true,
4804
- "hasDynamicHelp": false,
4805
- "multiple": false,
4806
- "type": "option"
4807
- },
4808
- "output": {
4809
- "char": "o",
4810
- "description": "Output format",
4811
- "name": "output",
4558
+ },
4559
+ "truncate": {
4560
+ "description": "Truncate all table records before importing",
4561
+ "name": "truncate",
4812
4562
  "required": false,
4813
- "default": "summary",
4814
- "hasDynamicHelp": false,
4815
- "multiple": false,
4816
- "options": [
4817
- "summary",
4818
- "json"
4819
- ],
4820
- "type": "option"
4563
+ "allowNo": false,
4564
+ "type": "boolean"
4821
4565
  },
4822
4566
  "workspace": {
4823
4567
  "char": "w",
@@ -4831,7 +4575,7 @@
4831
4575
  },
4832
4576
  "hasDynamicHelp": false,
4833
4577
  "hiddenAliases": [],
4834
- "id": "static_host:build:create",
4578
+ "id": "workspace:push",
4835
4579
  "pluginAlias": "@xano/cli",
4836
4580
  "pluginName": "@xano/cli",
4837
4581
  "pluginType": "core",
@@ -4841,32 +4585,24 @@
4841
4585
  "relativePath": [
4842
4586
  "dist",
4843
4587
  "commands",
4844
- "static_host",
4845
- "build",
4846
- "create",
4588
+ "workspace",
4589
+ "push",
4847
4590
  "index.js"
4848
4591
  ]
4849
4592
  },
4850
- "static_host:build:get": {
4593
+ "workflow_test:run": {
4851
4594
  "aliases": [],
4852
4595
  "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",
4596
+ "workflow_test_id": {
4597
+ "description": "ID of the workflow test to run",
4598
+ "name": "workflow_test_id",
4861
4599
  "required": true
4862
4600
  }
4863
4601
  },
4864
- "description": "Get details of a specific build for a static host",
4602
+ "description": "Run a workflow test",
4865
4603
  "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"
4604
+ "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
4605
+ "$ xano workflow-test run 1 -o json"
4870
4606
  ],
4871
4607
  "flags": {
4872
4608
  "profile": {
@@ -4904,7 +4640,7 @@
4904
4640
  },
4905
4641
  "workspace": {
4906
4642
  "char": "w",
4907
- "description": "Workspace ID (optional if set in profile)",
4643
+ "description": "Workspace ID (uses profile workspace if not provided)",
4908
4644
  "name": "workspace",
4909
4645
  "required": false,
4910
4646
  "hasDynamicHelp": false,
@@ -4914,7 +4650,7 @@
4914
4650
  },
4915
4651
  "hasDynamicHelp": false,
4916
4652
  "hiddenAliases": [],
4917
- "id": "static_host:build:get",
4653
+ "id": "workflow_test:run",
4918
4654
  "pluginAlias": "@xano/cli",
4919
4655
  "pluginName": "@xano/cli",
4920
4656
  "pluginType": "core",
@@ -4924,27 +4660,18 @@
4924
4660
  "relativePath": [
4925
4661
  "dist",
4926
4662
  "commands",
4927
- "static_host",
4928
- "build",
4929
- "get",
4663
+ "workflow_test",
4664
+ "run",
4930
4665
  "index.js"
4931
4666
  ]
4932
4667
  },
4933
- "static_host:build:list": {
4668
+ "workflow_test:run_all": {
4934
4669
  "aliases": [],
4935
- "args": {
4936
- "static_host": {
4937
- "description": "Static Host name",
4938
- "name": "static_host",
4939
- "required": true
4940
- }
4941
- },
4942
- "description": "List all builds for a static host",
4670
+ "args": {},
4671
+ "description": "Run all workflow tests in a workspace",
4943
4672
  "examples": [
4944
- "$ xano static_host:build:list default -w 40\nAvailable builds:\n - v1.0.0 (ID: 1) - Status: completed\n - v1.0.1 (ID: 2) - Status: pending\n",
4945
- "$ xano static_host:build:list myhost --profile production\nAvailable builds:\n - production (ID: 1) - Status: completed\n - staging (ID: 2) - Status: completed\n",
4946
- "$ xano static_host:build:list default -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n }\n]\n",
4947
- "$ xano static_host:build:list default -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"v1.0.2\"\n }\n]\n"
4673
+ "$ 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",
4674
+ "$ xano workflow-test run-all --branch main -o json"
4948
4675
  ],
4949
4676
  "flags": {
4950
4677
  "profile": {
@@ -4966,6 +4693,15 @@
4966
4693
  "allowNo": false,
4967
4694
  "type": "boolean"
4968
4695
  },
4696
+ "branch": {
4697
+ "char": "b",
4698
+ "description": "Filter by branch name",
4699
+ "name": "branch",
4700
+ "required": false,
4701
+ "hasDynamicHelp": false,
4702
+ "multiple": false,
4703
+ "type": "option"
4704
+ },
4969
4705
  "output": {
4970
4706
  "char": "o",
4971
4707
  "description": "Output format",
@@ -4980,27 +4716,9 @@
4980
4716
  ],
4981
4717
  "type": "option"
4982
4718
  },
4983
- "page": {
4984
- "description": "Page number for pagination",
4985
- "name": "page",
4986
- "required": false,
4987
- "default": 1,
4988
- "hasDynamicHelp": false,
4989
- "multiple": false,
4990
- "type": "option"
4991
- },
4992
- "per_page": {
4993
- "description": "Number of results per page",
4994
- "name": "per_page",
4995
- "required": false,
4996
- "default": 50,
4997
- "hasDynamicHelp": false,
4998
- "multiple": false,
4999
- "type": "option"
5000
- },
5001
4719
  "workspace": {
5002
4720
  "char": "w",
5003
- "description": "Workspace ID (optional if set in profile)",
4721
+ "description": "Workspace ID (uses profile workspace if not provided)",
5004
4722
  "name": "workspace",
5005
4723
  "required": false,
5006
4724
  "hasDynamicHelp": false,
@@ -5010,7 +4728,7 @@
5010
4728
  },
5011
4729
  "hasDynamicHelp": false,
5012
4730
  "hiddenAliases": [],
5013
- "id": "static_host:build:list",
4731
+ "id": "workflow_test:run_all",
5014
4732
  "pluginAlias": "@xano/cli",
5015
4733
  "pluginName": "@xano/cli",
5016
4734
  "pluginType": "core",
@@ -5020,9 +4738,8 @@
5020
4738
  "relativePath": [
5021
4739
  "dist",
5022
4740
  "commands",
5023
- "static_host",
5024
- "build",
5025
- "list",
4741
+ "workflow_test",
4742
+ "run_all",
5026
4743
  "index.js"
5027
4744
  ]
5028
4745
  },
@@ -5205,20 +4922,19 @@
5205
4922
  "index.js"
5206
4923
  ]
5207
4924
  },
5208
- "tenant:backup:export": {
4925
+ "tenant:backup:list": {
5209
4926
  "aliases": [],
5210
4927
  "args": {
5211
4928
  "tenant_name": {
5212
- "description": "Tenant name to export backup from",
4929
+ "description": "Tenant name to list backups for",
5213
4930
  "name": "tenant_name",
5214
4931
  "required": true
5215
4932
  }
5216
4933
  },
5217
- "description": "Export (download) a tenant backup to a local file",
4934
+ "description": "List backups for a tenant",
5218
4935
  "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"
4936
+ "$ 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",
4937
+ "$ xano tenant backup list t1234-abcd-xyz1 -o json"
5222
4938
  ],
5223
4939
  "flags": {
5224
4940
  "profile": {
@@ -5240,18 +4956,10 @@
5240
4956
  "allowNo": false,
5241
4957
  "type": "boolean"
5242
4958
  },
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": {
4959
+ "output": {
5252
4960
  "char": "o",
5253
4961
  "description": "Output format",
5254
- "name": "format",
4962
+ "name": "output",
5255
4963
  "required": false,
5256
4964
  "default": "summary",
5257
4965
  "hasDynamicHelp": false,
@@ -5262,10 +4970,11 @@
5262
4970
  ],
5263
4971
  "type": "option"
5264
4972
  },
5265
- "output": {
5266
- "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5267
- "name": "output",
4973
+ "page": {
4974
+ "description": "Page number for pagination",
4975
+ "name": "page",
5268
4976
  "required": false,
4977
+ "default": 1,
5269
4978
  "hasDynamicHelp": false,
5270
4979
  "multiple": false,
5271
4980
  "type": "option"
@@ -5282,7 +4991,7 @@
5282
4991
  },
5283
4992
  "hasDynamicHelp": false,
5284
4993
  "hiddenAliases": [],
5285
- "id": "tenant:backup:export",
4994
+ "id": "tenant:backup:list",
5286
4995
  "pluginAlias": "@xano/cli",
5287
4996
  "pluginName": "@xano/cli",
5288
4997
  "pluginType": "core",
@@ -5294,23 +5003,23 @@
5294
5003
  "commands",
5295
5004
  "tenant",
5296
5005
  "backup",
5297
- "export",
5006
+ "list",
5298
5007
  "index.js"
5299
5008
  ]
5300
5009
  },
5301
- "tenant:backup:import": {
5010
+ "tenant:backup:restore": {
5302
5011
  "aliases": [],
5303
5012
  "args": {
5304
5013
  "tenant_name": {
5305
- "description": "Tenant name to import backup into",
5014
+ "description": "Tenant name to restore",
5306
5015
  "name": "tenant_name",
5307
5016
  "required": true
5308
5017
  }
5309
5018
  },
5310
- "description": "Import a backup file into a tenant",
5019
+ "description": "Restore a tenant from a backup. This replaces the current tenant data.",
5311
5020
  "examples": [
5312
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5313
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5021
+ "$ 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",
5022
+ "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
5314
5023
  ],
5315
5024
  "flags": {
5316
5025
  "profile": {
@@ -5332,24 +5041,21 @@
5332
5041
  "allowNo": false,
5333
5042
  "type": "boolean"
5334
5043
  },
5335
- "description": {
5336
- "char": "d",
5337
- "description": "Backup description",
5338
- "name": "description",
5339
- "required": false,
5340
- "default": "",
5044
+ "backup_id": {
5045
+ "description": "Backup ID to restore from",
5046
+ "name": "backup_id",
5047
+ "required": true,
5341
5048
  "hasDynamicHelp": false,
5342
5049
  "multiple": false,
5343
5050
  "type": "option"
5344
5051
  },
5345
- "file": {
5052
+ "force": {
5346
5053
  "char": "f",
5347
- "description": "Path to the backup file (.tar.gz)",
5348
- "name": "file",
5349
- "required": true,
5350
- "hasDynamicHelp": false,
5351
- "multiple": false,
5352
- "type": "option"
5054
+ "description": "Skip confirmation prompt",
5055
+ "name": "force",
5056
+ "required": false,
5057
+ "allowNo": false,
5058
+ "type": "boolean"
5353
5059
  },
5354
5060
  "output": {
5355
5061
  "char": "o",
@@ -5377,7 +5083,7 @@
5377
5083
  },
5378
5084
  "hasDynamicHelp": false,
5379
5085
  "hiddenAliases": [],
5380
- "id": "tenant:backup:import",
5086
+ "id": "tenant:backup:restore",
5381
5087
  "pluginAlias": "@xano/cli",
5382
5088
  "pluginName": "@xano/cli",
5383
5089
  "pluginType": "core",
@@ -5389,23 +5095,17 @@
5389
5095
  "commands",
5390
5096
  "tenant",
5391
5097
  "backup",
5392
- "import",
5098
+ "restore",
5393
5099
  "index.js"
5394
5100
  ]
5395
5101
  },
5396
- "tenant:backup:list": {
5102
+ "tenant:cluster:create": {
5397
5103
  "aliases": [],
5398
- "args": {
5399
- "tenant_name": {
5400
- "description": "Tenant name to list backups for",
5401
- "name": "tenant_name",
5402
- "required": true
5403
- }
5404
- },
5405
- "description": "List backups for a tenant",
5104
+ "args": {},
5105
+ "description": "Create a new tenant cluster",
5406
5106
  "examples": [
5407
- "$ 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",
5408
- "$ xano tenant backup list t1234-abcd-xyz1 -o json"
5107
+ "$ xano tenant cluster create --name \"us-east-1\" --credentials_file ./kubeconfig.yaml\nCreated tenant cluster: us-east-1 (standard) - ID: 3\n",
5108
+ "$ xano tenant cluster create --name \"eu-west-1\" --credentials \"...\" --type run --description \"EU run cluster\" -o json"
5409
5109
  ],
5410
5110
  "flags": {
5411
5111
  "profile": {
@@ -5427,42 +5127,85 @@
5427
5127
  "allowNo": false,
5428
5128
  "type": "boolean"
5429
5129
  },
5430
- "output": {
5431
- "char": "o",
5432
- "description": "Output format",
5433
- "name": "output",
5130
+ "credentials": {
5131
+ "description": "Kubeconfig credentials (raw text)",
5132
+ "exclusive": [
5133
+ "credentials_file"
5134
+ ],
5135
+ "name": "credentials",
5434
5136
  "required": false,
5435
- "default": "summary",
5436
5137
  "hasDynamicHelp": false,
5437
5138
  "multiple": false,
5438
- "options": [
5439
- "summary",
5440
- "json"
5139
+ "type": "option"
5140
+ },
5141
+ "credentials_file": {
5142
+ "description": "Path to kubeconfig credentials file",
5143
+ "exclusive": [
5144
+ "credentials"
5441
5145
  ],
5146
+ "name": "credentials_file",
5147
+ "required": false,
5148
+ "hasDynamicHelp": false,
5149
+ "multiple": false,
5442
5150
  "type": "option"
5443
5151
  },
5444
- "page": {
5445
- "description": "Page number for pagination",
5446
- "name": "page",
5152
+ "description": {
5153
+ "char": "d",
5154
+ "description": "Cluster description",
5155
+ "name": "description",
5447
5156
  "required": false,
5448
- "default": 1,
5449
5157
  "hasDynamicHelp": false,
5450
5158
  "multiple": false,
5451
5159
  "type": "option"
5452
5160
  },
5453
- "workspace": {
5454
- "char": "w",
5455
- "description": "Workspace ID (uses profile workspace if not provided)",
5456
- "name": "workspace",
5161
+ "domain": {
5162
+ "description": "Custom domain for the cluster",
5163
+ "name": "domain",
5164
+ "required": false,
5165
+ "hasDynamicHelp": false,
5166
+ "multiple": false,
5167
+ "type": "option"
5168
+ },
5169
+ "name": {
5170
+ "char": "n",
5171
+ "description": "Cluster name",
5172
+ "name": "name",
5173
+ "required": true,
5174
+ "hasDynamicHelp": false,
5175
+ "multiple": false,
5176
+ "type": "option"
5177
+ },
5178
+ "output": {
5179
+ "char": "o",
5180
+ "description": "Output format",
5181
+ "name": "output",
5182
+ "required": false,
5183
+ "default": "summary",
5184
+ "hasDynamicHelp": false,
5185
+ "multiple": false,
5186
+ "options": [
5187
+ "summary",
5188
+ "json"
5189
+ ],
5190
+ "type": "option"
5191
+ },
5192
+ "type": {
5193
+ "description": "Cluster type",
5194
+ "name": "type",
5457
5195
  "required": false,
5196
+ "default": "standard",
5458
5197
  "hasDynamicHelp": false,
5459
5198
  "multiple": false,
5199
+ "options": [
5200
+ "standard",
5201
+ "run"
5202
+ ],
5460
5203
  "type": "option"
5461
5204
  }
5462
5205
  },
5463
5206
  "hasDynamicHelp": false,
5464
5207
  "hiddenAliases": [],
5465
- "id": "tenant:backup:list",
5208
+ "id": "tenant:cluster:create",
5466
5209
  "pluginAlias": "@xano/cli",
5467
5210
  "pluginName": "@xano/cli",
5468
5211
  "pluginType": "core",
@@ -5473,24 +5216,25 @@
5473
5216
  "dist",
5474
5217
  "commands",
5475
5218
  "tenant",
5476
- "backup",
5477
- "list",
5219
+ "cluster",
5220
+ "create",
5478
5221
  "index.js"
5479
5222
  ]
5480
5223
  },
5481
- "tenant:backup:restore": {
5224
+ "tenant:backup:export": {
5482
5225
  "aliases": [],
5483
5226
  "args": {
5484
5227
  "tenant_name": {
5485
- "description": "Tenant name to restore",
5228
+ "description": "Tenant name to export backup from",
5486
5229
  "name": "tenant_name",
5487
5230
  "required": true
5488
5231
  }
5489
5232
  },
5490
- "description": "Restore a tenant from a backup. This replaces the current tenant data.",
5233
+ "description": "Export (download) a tenant backup to a local file",
5491
5234
  "examples": [
5492
- "$ 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",
5493
- "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
5235
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
5236
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
5237
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5494
5238
  ],
5495
5239
  "flags": {
5496
5240
  "profile": {
@@ -5513,25 +5257,17 @@
5513
5257
  "type": "boolean"
5514
5258
  },
5515
5259
  "backup_id": {
5516
- "description": "Backup ID to restore from",
5260
+ "description": "Backup ID to export",
5517
5261
  "name": "backup_id",
5518
5262
  "required": true,
5519
5263
  "hasDynamicHelp": false,
5520
5264
  "multiple": false,
5521
5265
  "type": "option"
5522
5266
  },
5523
- "force": {
5524
- "char": "f",
5525
- "description": "Skip confirmation prompt",
5526
- "name": "force",
5527
- "required": false,
5528
- "allowNo": false,
5529
- "type": "boolean"
5530
- },
5531
- "output": {
5267
+ "format": {
5532
5268
  "char": "o",
5533
5269
  "description": "Output format",
5534
- "name": "output",
5270
+ "name": "format",
5535
5271
  "required": false,
5536
5272
  "default": "summary",
5537
5273
  "hasDynamicHelp": false,
@@ -5542,6 +5278,14 @@
5542
5278
  ],
5543
5279
  "type": "option"
5544
5280
  },
5281
+ "output": {
5282
+ "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5283
+ "name": "output",
5284
+ "required": false,
5285
+ "hasDynamicHelp": false,
5286
+ "multiple": false,
5287
+ "type": "option"
5288
+ },
5545
5289
  "workspace": {
5546
5290
  "char": "w",
5547
5291
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -5554,7 +5298,7 @@
5554
5298
  },
5555
5299
  "hasDynamicHelp": false,
5556
5300
  "hiddenAliases": [],
5557
- "id": "tenant:backup:restore",
5301
+ "id": "tenant:backup:export",
5558
5302
  "pluginAlias": "@xano/cli",
5559
5303
  "pluginName": "@xano/cli",
5560
5304
  "pluginType": "core",
@@ -5566,17 +5310,23 @@
5566
5310
  "commands",
5567
5311
  "tenant",
5568
5312
  "backup",
5569
- "restore",
5313
+ "export",
5570
5314
  "index.js"
5571
5315
  ]
5572
5316
  },
5573
- "tenant:cluster:create": {
5317
+ "tenant:cluster:edit": {
5574
5318
  "aliases": [],
5575
- "args": {},
5576
- "description": "Create a new tenant cluster",
5319
+ "args": {
5320
+ "cluster_id": {
5321
+ "description": "Cluster ID to edit",
5322
+ "name": "cluster_id",
5323
+ "required": true
5324
+ }
5325
+ },
5326
+ "description": "Update an existing tenant cluster",
5577
5327
  "examples": [
5578
- "$ xano tenant cluster create --name \"us-east-1\" --credentials_file ./kubeconfig.yaml\nCreated tenant cluster: us-east-1 (standard) - ID: 3\n",
5579
- "$ xano tenant cluster create --name \"eu-west-1\" --credentials \"...\" --type run --description \"EU run cluster\" -o json"
5328
+ "$ xano tenant cluster edit 1 --name \"us-east-1-updated\" --description \"Updated cluster\" --domain \"us-east.xano.io\" --type standard\nUpdated tenant cluster: us-east-1-updated (standard) - ID: 1\n",
5329
+ "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5580
5330
  ],
5581
5331
  "flags": {
5582
5332
  "profile": {
@@ -5598,33 +5348,11 @@
5598
5348
  "allowNo": false,
5599
5349
  "type": "boolean"
5600
5350
  },
5601
- "credentials": {
5602
- "description": "Kubeconfig credentials (raw text)",
5603
- "exclusive": [
5604
- "credentials_file"
5605
- ],
5606
- "name": "credentials",
5607
- "required": false,
5608
- "hasDynamicHelp": false,
5609
- "multiple": false,
5610
- "type": "option"
5611
- },
5612
- "credentials_file": {
5613
- "description": "Path to kubeconfig credentials file",
5614
- "exclusive": [
5615
- "credentials"
5616
- ],
5617
- "name": "credentials_file",
5618
- "required": false,
5619
- "hasDynamicHelp": false,
5620
- "multiple": false,
5621
- "type": "option"
5622
- },
5623
5351
  "description": {
5624
5352
  "char": "d",
5625
5353
  "description": "Cluster description",
5626
5354
  "name": "description",
5627
- "required": false,
5355
+ "required": true,
5628
5356
  "hasDynamicHelp": false,
5629
5357
  "multiple": false,
5630
5358
  "type": "option"
@@ -5632,7 +5360,7 @@
5632
5360
  "domain": {
5633
5361
  "description": "Custom domain for the cluster",
5634
5362
  "name": "domain",
5635
- "required": false,
5363
+ "required": true,
5636
5364
  "hasDynamicHelp": false,
5637
5365
  "multiple": false,
5638
5366
  "type": "option"
@@ -5663,8 +5391,7 @@
5663
5391
  "type": {
5664
5392
  "description": "Cluster type",
5665
5393
  "name": "type",
5666
- "required": false,
5667
- "default": "standard",
5394
+ "required": true,
5668
5395
  "hasDynamicHelp": false,
5669
5396
  "multiple": false,
5670
5397
  "options": [
@@ -5676,7 +5403,7 @@
5676
5403
  },
5677
5404
  "hasDynamicHelp": false,
5678
5405
  "hiddenAliases": [],
5679
- "id": "tenant:cluster:create",
5406
+ "id": "tenant:cluster:edit",
5680
5407
  "pluginAlias": "@xano/cli",
5681
5408
  "pluginName": "@xano/cli",
5682
5409
  "pluginType": "core",
@@ -5688,7 +5415,7 @@
5688
5415
  "commands",
5689
5416
  "tenant",
5690
5417
  "cluster",
5691
- "create",
5418
+ "edit",
5692
5419
  "index.js"
5693
5420
  ]
5694
5421
  },
@@ -5768,19 +5495,19 @@
5768
5495
  "index.js"
5769
5496
  ]
5770
5497
  },
5771
- "tenant:cluster:edit": {
5498
+ "tenant:cluster:get": {
5772
5499
  "aliases": [],
5773
5500
  "args": {
5774
5501
  "cluster_id": {
5775
- "description": "Cluster ID to edit",
5502
+ "description": "Cluster ID to retrieve",
5776
5503
  "name": "cluster_id",
5777
5504
  "required": true
5778
5505
  }
5779
5506
  },
5780
- "description": "Update an existing tenant cluster",
5507
+ "description": "Get details of a specific tenant cluster",
5781
5508
  "examples": [
5782
- "$ xano tenant cluster edit 1 --name \"us-east-1-updated\" --description \"Updated cluster\" --domain \"us-east.xano.io\" --type standard\nUpdated tenant cluster: us-east-1-updated (standard) - ID: 1\n",
5783
- "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5509
+ "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5510
+ "$ xano tenant cluster get 1 -o json"
5784
5511
  ],
5785
5512
  "flags": {
5786
5513
  "profile": {
@@ -5802,27 +5529,87 @@
5802
5529
  "allowNo": false,
5803
5530
  "type": "boolean"
5804
5531
  },
5805
- "description": {
5806
- "char": "d",
5807
- "description": "Cluster description",
5808
- "name": "description",
5809
- "required": true,
5532
+ "output": {
5533
+ "char": "o",
5534
+ "description": "Output format",
5535
+ "name": "output",
5536
+ "required": false,
5537
+ "default": "summary",
5538
+ "hasDynamicHelp": false,
5539
+ "multiple": false,
5540
+ "options": [
5541
+ "summary",
5542
+ "json"
5543
+ ],
5544
+ "type": "option"
5545
+ }
5546
+ },
5547
+ "hasDynamicHelp": false,
5548
+ "hiddenAliases": [],
5549
+ "id": "tenant:cluster:get",
5550
+ "pluginAlias": "@xano/cli",
5551
+ "pluginName": "@xano/cli",
5552
+ "pluginType": "core",
5553
+ "strict": true,
5554
+ "enableJsonFlag": false,
5555
+ "isESM": true,
5556
+ "relativePath": [
5557
+ "dist",
5558
+ "commands",
5559
+ "tenant",
5560
+ "cluster",
5561
+ "get",
5562
+ "index.js"
5563
+ ]
5564
+ },
5565
+ "tenant:backup:import": {
5566
+ "aliases": [],
5567
+ "args": {
5568
+ "tenant_name": {
5569
+ "description": "Tenant name to import backup into",
5570
+ "name": "tenant_name",
5571
+ "required": true
5572
+ }
5573
+ },
5574
+ "description": "Import a backup file into a tenant",
5575
+ "examples": [
5576
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5577
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5578
+ ],
5579
+ "flags": {
5580
+ "profile": {
5581
+ "char": "p",
5582
+ "description": "Profile to use (uses default profile if not specified)",
5583
+ "env": "XANO_PROFILE",
5584
+ "name": "profile",
5585
+ "required": false,
5810
5586
  "hasDynamicHelp": false,
5811
5587
  "multiple": false,
5812
5588
  "type": "option"
5813
5589
  },
5814
- "domain": {
5815
- "description": "Custom domain for the cluster",
5816
- "name": "domain",
5817
- "required": true,
5590
+ "verbose": {
5591
+ "char": "v",
5592
+ "description": "Show detailed request/response information",
5593
+ "env": "XANO_VERBOSE",
5594
+ "name": "verbose",
5595
+ "required": false,
5596
+ "allowNo": false,
5597
+ "type": "boolean"
5598
+ },
5599
+ "description": {
5600
+ "char": "d",
5601
+ "description": "Backup description",
5602
+ "name": "description",
5603
+ "required": false,
5604
+ "default": "",
5818
5605
  "hasDynamicHelp": false,
5819
5606
  "multiple": false,
5820
5607
  "type": "option"
5821
5608
  },
5822
- "name": {
5823
- "char": "n",
5824
- "description": "Cluster name",
5825
- "name": "name",
5609
+ "file": {
5610
+ "char": "f",
5611
+ "description": "Path to the backup file (.tar.gz)",
5612
+ "name": "file",
5826
5613
  "required": true,
5827
5614
  "hasDynamicHelp": false,
5828
5615
  "multiple": false,
@@ -5842,22 +5629,19 @@
5842
5629
  ],
5843
5630
  "type": "option"
5844
5631
  },
5845
- "type": {
5846
- "description": "Cluster type",
5847
- "name": "type",
5848
- "required": true,
5632
+ "workspace": {
5633
+ "char": "w",
5634
+ "description": "Workspace ID (uses profile workspace if not provided)",
5635
+ "name": "workspace",
5636
+ "required": false,
5849
5637
  "hasDynamicHelp": false,
5850
5638
  "multiple": false,
5851
- "options": [
5852
- "standard",
5853
- "run"
5854
- ],
5855
5639
  "type": "option"
5856
5640
  }
5857
5641
  },
5858
5642
  "hasDynamicHelp": false,
5859
5643
  "hiddenAliases": [],
5860
- "id": "tenant:cluster:edit",
5644
+ "id": "tenant:backup:import",
5861
5645
  "pluginAlias": "@xano/cli",
5862
5646
  "pluginName": "@xano/cli",
5863
5647
  "pluginType": "core",
@@ -5868,24 +5652,18 @@
5868
5652
  "dist",
5869
5653
  "commands",
5870
5654
  "tenant",
5871
- "cluster",
5872
- "edit",
5655
+ "backup",
5656
+ "import",
5873
5657
  "index.js"
5874
5658
  ]
5875
5659
  },
5876
- "tenant:cluster:get": {
5660
+ "tenant:cluster:list": {
5877
5661
  "aliases": [],
5878
- "args": {
5879
- "cluster_id": {
5880
- "description": "Cluster ID to retrieve",
5881
- "name": "cluster_id",
5882
- "required": true
5883
- }
5884
- },
5885
- "description": "Get details of a specific tenant cluster",
5662
+ "args": {},
5663
+ "description": "List all tenant clusters",
5886
5664
  "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"
5665
+ "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
5666
+ "$ xano tenant cluster list --output json"
5889
5667
  ],
5890
5668
  "flags": {
5891
5669
  "profile": {
@@ -5924,7 +5702,7 @@
5924
5702
  },
5925
5703
  "hasDynamicHelp": false,
5926
5704
  "hiddenAliases": [],
5927
- "id": "tenant:cluster:get",
5705
+ "id": "tenant:cluster:list",
5928
5706
  "pluginAlias": "@xano/cli",
5929
5707
  "pluginName": "@xano/cli",
5930
5708
  "pluginType": "core",
@@ -5936,17 +5714,23 @@
5936
5714
  "commands",
5937
5715
  "tenant",
5938
5716
  "cluster",
5939
- "get",
5717
+ "list",
5940
5718
  "index.js"
5941
5719
  ]
5942
5720
  },
5943
- "tenant:cluster:list": {
5721
+ "tenant:env:get": {
5944
5722
  "aliases": [],
5945
- "args": {},
5946
- "description": "List all tenant clusters",
5723
+ "args": {
5724
+ "tenant_name": {
5725
+ "description": "Tenant name",
5726
+ "name": "tenant_name",
5727
+ "required": true
5728
+ }
5729
+ },
5730
+ "description": "Get a single environment variable for a tenant",
5947
5731
  "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"
5732
+ "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
5733
+ "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
5950
5734
  ],
5951
5735
  "flags": {
5952
5736
  "profile": {
@@ -5968,6 +5752,15 @@
5968
5752
  "allowNo": false,
5969
5753
  "type": "boolean"
5970
5754
  },
5755
+ "name": {
5756
+ "char": "n",
5757
+ "description": "Environment variable name",
5758
+ "name": "name",
5759
+ "required": true,
5760
+ "hasDynamicHelp": false,
5761
+ "multiple": false,
5762
+ "type": "option"
5763
+ },
5971
5764
  "output": {
5972
5765
  "char": "o",
5973
5766
  "description": "Output format",
@@ -5981,11 +5774,20 @@
5981
5774
  "json"
5982
5775
  ],
5983
5776
  "type": "option"
5777
+ },
5778
+ "workspace": {
5779
+ "char": "w",
5780
+ "description": "Workspace ID (uses profile workspace if not provided)",
5781
+ "name": "workspace",
5782
+ "required": false,
5783
+ "hasDynamicHelp": false,
5784
+ "multiple": false,
5785
+ "type": "option"
5984
5786
  }
5985
5787
  },
5986
5788
  "hasDynamicHelp": false,
5987
5789
  "hiddenAliases": [],
5988
- "id": "tenant:cluster:list",
5790
+ "id": "tenant:env:get",
5989
5791
  "pluginAlias": "@xano/cli",
5990
5792
  "pluginName": "@xano/cli",
5991
5793
  "pluginType": "core",
@@ -5996,12 +5798,12 @@
5996
5798
  "dist",
5997
5799
  "commands",
5998
5800
  "tenant",
5999
- "cluster",
6000
- "list",
5801
+ "env",
5802
+ "get",
6001
5803
  "index.js"
6002
5804
  ]
6003
5805
  },
6004
- "tenant:env:delete": {
5806
+ "tenant:env:get_all": {
6005
5807
  "aliases": [],
6006
5808
  "args": {
6007
5809
  "tenant_name": {
@@ -6010,11 +5812,12 @@
6010
5812
  "required": true
6011
5813
  }
6012
5814
  },
6013
- "description": "Delete an environment variable from a tenant",
5815
+ "description": "Get all environment variables for a tenant and save to a YAML file",
6014
5816
  "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"
5817
+ "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
5818
+ "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
5819
+ "$ xano tenant env get_all my-tenant --view",
5820
+ "$ xano tenant env get_all my-tenant -o json"
6018
5821
  ],
6019
5822
  "flags": {
6020
5823
  "profile": {
@@ -6036,19 +5839,11 @@
6036
5839
  "allowNo": false,
6037
5840
  "type": "boolean"
6038
5841
  },
6039
- "force": {
5842
+ "file": {
6040
5843
  "char": "f",
6041
- "description": "Skip confirmation prompt",
6042
- "name": "force",
5844
+ "description": "Output file path (default: env_<tenant_name>.yaml)",
5845
+ "name": "file",
6043
5846
  "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
5847
  "hasDynamicHelp": false,
6053
5848
  "multiple": false,
6054
5849
  "type": "option"
@@ -6067,6 +5862,13 @@
6067
5862
  ],
6068
5863
  "type": "option"
6069
5864
  },
5865
+ "view": {
5866
+ "description": "Print environment variables to stdout instead of saving to file",
5867
+ "name": "view",
5868
+ "required": false,
5869
+ "allowNo": false,
5870
+ "type": "boolean"
5871
+ },
6070
5872
  "workspace": {
6071
5873
  "char": "w",
6072
5874
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6079,7 +5881,7 @@
6079
5881
  },
6080
5882
  "hasDynamicHelp": false,
6081
5883
  "hiddenAliases": [],
6082
- "id": "tenant:env:delete",
5884
+ "id": "tenant:env:get_all",
6083
5885
  "pluginAlias": "@xano/cli",
6084
5886
  "pluginName": "@xano/cli",
6085
5887
  "pluginType": "core",
@@ -6091,11 +5893,11 @@
6091
5893
  "commands",
6092
5894
  "tenant",
6093
5895
  "env",
6094
- "delete",
5896
+ "get_all",
6095
5897
  "index.js"
6096
5898
  ]
6097
5899
  },
6098
- "tenant:env:get": {
5900
+ "tenant:env:delete": {
6099
5901
  "aliases": [],
6100
5902
  "args": {
6101
5903
  "tenant_name": {
@@ -6104,10 +5906,11 @@
6104
5906
  "required": true
6105
5907
  }
6106
5908
  },
6107
- "description": "Get a single environment variable for a tenant",
5909
+ "description": "Delete an environment variable from a tenant",
6108
5910
  "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"
5911
+ "$ 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",
5912
+ "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
5913
+ "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
6111
5914
  ],
6112
5915
  "flags": {
6113
5916
  "profile": {
@@ -6129,6 +5932,14 @@
6129
5932
  "allowNo": false,
6130
5933
  "type": "boolean"
6131
5934
  },
5935
+ "force": {
5936
+ "char": "f",
5937
+ "description": "Skip confirmation prompt",
5938
+ "name": "force",
5939
+ "required": false,
5940
+ "allowNo": false,
5941
+ "type": "boolean"
5942
+ },
6132
5943
  "name": {
6133
5944
  "char": "n",
6134
5945
  "description": "Environment variable name",
@@ -6164,7 +5975,7 @@
6164
5975
  },
6165
5976
  "hasDynamicHelp": false,
6166
5977
  "hiddenAliases": [],
6167
- "id": "tenant:env:get",
5978
+ "id": "tenant:env:delete",
6168
5979
  "pluginAlias": "@xano/cli",
6169
5980
  "pluginName": "@xano/cli",
6170
5981
  "pluginType": "core",
@@ -6176,11 +5987,11 @@
6176
5987
  "commands",
6177
5988
  "tenant",
6178
5989
  "env",
6179
- "get",
5990
+ "delete",
6180
5991
  "index.js"
6181
5992
  ]
6182
5993
  },
6183
- "tenant:env:get_all": {
5994
+ "tenant:env:list": {
6184
5995
  "aliases": [],
6185
5996
  "args": {
6186
5997
  "tenant_name": {
@@ -6189,12 +6000,10 @@
6189
6000
  "required": true
6190
6001
  }
6191
6002
  },
6192
- "description": "Get all environment variables for a tenant and save to a YAML file",
6003
+ "description": "List environment variable keys for a tenant",
6193
6004
  "examples": [
6194
- "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
6195
- "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
6196
- "$ xano tenant env get_all my-tenant --view",
6197
- "$ xano tenant env get_all my-tenant -o json"
6005
+ "$ xano tenant env list my-tenant\nEnvironment variables for tenant my-tenant:\n - DATABASE_URL\n - API_KEY\n - SECRET_TOKEN\n",
6006
+ "$ xano tenant env list my-tenant -w 5 -o json"
6198
6007
  ],
6199
6008
  "flags": {
6200
6009
  "profile": {
@@ -6216,15 +6025,6 @@
6216
6025
  "allowNo": false,
6217
6026
  "type": "boolean"
6218
6027
  },
6219
- "file": {
6220
- "char": "f",
6221
- "description": "Output file path (default: env_<tenant_name>.yaml)",
6222
- "name": "file",
6223
- "required": false,
6224
- "hasDynamicHelp": false,
6225
- "multiple": false,
6226
- "type": "option"
6227
- },
6228
6028
  "output": {
6229
6029
  "char": "o",
6230
6030
  "description": "Output format",
@@ -6239,13 +6039,6 @@
6239
6039
  ],
6240
6040
  "type": "option"
6241
6041
  },
6242
- "view": {
6243
- "description": "Print environment variables to stdout instead of saving to file",
6244
- "name": "view",
6245
- "required": false,
6246
- "allowNo": false,
6247
- "type": "boolean"
6248
- },
6249
6042
  "workspace": {
6250
6043
  "char": "w",
6251
6044
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6258,7 +6051,7 @@
6258
6051
  },
6259
6052
  "hasDynamicHelp": false,
6260
6053
  "hiddenAliases": [],
6261
- "id": "tenant:env:get_all",
6054
+ "id": "tenant:env:list",
6262
6055
  "pluginAlias": "@xano/cli",
6263
6056
  "pluginName": "@xano/cli",
6264
6057
  "pluginType": "core",
@@ -6270,11 +6063,11 @@
6270
6063
  "commands",
6271
6064
  "tenant",
6272
6065
  "env",
6273
- "get_all",
6066
+ "list",
6274
6067
  "index.js"
6275
6068
  ]
6276
6069
  },
6277
- "tenant:env:list": {
6070
+ "tenant:env:set_all": {
6278
6071
  "aliases": [],
6279
6072
  "args": {
6280
6073
  "tenant_name": {
@@ -6283,10 +6076,11 @@
6283
6076
  "required": true
6284
6077
  }
6285
6078
  },
6286
- "description": "List environment variable keys for a tenant",
6079
+ "description": "Set all environment variables for a tenant from a YAML file (replaces all existing)",
6287
6080
  "examples": [
6288
- "$ xano tenant env list my-tenant\nEnvironment variables for tenant my-tenant:\n - DATABASE_URL\n - API_KEY\n - SECRET_TOKEN\n",
6289
- "$ xano tenant env list my-tenant -w 5 -o json"
6081
+ "$ xano tenant env set_all my-tenant\nReads from env_my-tenant.yaml\n",
6082
+ "$ xano tenant env set_all my-tenant --file ./my-env.yaml",
6083
+ "$ xano tenant env set_all my-tenant -o json"
6290
6084
  ],
6291
6085
  "flags": {
6292
6086
  "profile": {
@@ -6308,6 +6102,22 @@
6308
6102
  "allowNo": false,
6309
6103
  "type": "boolean"
6310
6104
  },
6105
+ "clean": {
6106
+ "description": "Remove the source file after successful upload",
6107
+ "name": "clean",
6108
+ "required": false,
6109
+ "allowNo": false,
6110
+ "type": "boolean"
6111
+ },
6112
+ "file": {
6113
+ "char": "f",
6114
+ "description": "Path to env file (default: env_<tenant_name>.yaml)",
6115
+ "name": "file",
6116
+ "required": false,
6117
+ "hasDynamicHelp": false,
6118
+ "multiple": false,
6119
+ "type": "option"
6120
+ },
6311
6121
  "output": {
6312
6122
  "char": "o",
6313
6123
  "description": "Output format",
@@ -6334,7 +6144,7 @@
6334
6144
  },
6335
6145
  "hasDynamicHelp": false,
6336
6146
  "hiddenAliases": [],
6337
- "id": "tenant:env:list",
6147
+ "id": "tenant:env:set_all",
6338
6148
  "pluginAlias": "@xano/cli",
6339
6149
  "pluginName": "@xano/cli",
6340
6150
  "pluginType": "core",
@@ -6346,7 +6156,7 @@
6346
6156
  "commands",
6347
6157
  "tenant",
6348
6158
  "env",
6349
- "list",
6159
+ "set_all",
6350
6160
  "index.js"
6351
6161
  ]
6352
6162
  },
@@ -6443,7 +6253,7 @@
6443
6253
  "index.js"
6444
6254
  ]
6445
6255
  },
6446
- "tenant:env:set_all": {
6256
+ "tenant:license:get": {
6447
6257
  "aliases": [],
6448
6258
  "args": {
6449
6259
  "tenant_name": {
@@ -6452,11 +6262,12 @@
6452
6262
  "required": true
6453
6263
  }
6454
6264
  },
6455
- "description": "Set all environment variables for a tenant from a YAML file (replaces all existing)",
6265
+ "description": "Get the license for a tenant",
6456
6266
  "examples": [
6457
- "$ xano tenant env set_all my-tenant\nReads from env_my-tenant.yaml\n",
6458
- "$ xano tenant env set_all my-tenant --file ./my-env.yaml",
6459
- "$ xano tenant env set_all my-tenant -o json"
6267
+ "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6268
+ "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6269
+ "$ xano tenant license get my-tenant --view",
6270
+ "$ xano tenant license get my-tenant -o json"
6460
6271
  ],
6461
6272
  "flags": {
6462
6273
  "profile": {
@@ -6478,16 +6289,9 @@
6478
6289
  "allowNo": false,
6479
6290
  "type": "boolean"
6480
6291
  },
6481
- "clean": {
6482
- "description": "Remove the source file after successful upload",
6483
- "name": "clean",
6484
- "required": false,
6485
- "allowNo": false,
6486
- "type": "boolean"
6487
- },
6488
6292
  "file": {
6489
6293
  "char": "f",
6490
- "description": "Path to env file (default: env_<tenant_name>.yaml)",
6294
+ "description": "Output file path (default: license_<tenant_name>.yaml)",
6491
6295
  "name": "file",
6492
6296
  "required": false,
6493
6297
  "hasDynamicHelp": false,
@@ -6508,6 +6312,13 @@
6508
6312
  ],
6509
6313
  "type": "option"
6510
6314
  },
6315
+ "view": {
6316
+ "description": "Print license to stdout instead of saving to file",
6317
+ "name": "view",
6318
+ "required": false,
6319
+ "allowNo": false,
6320
+ "type": "boolean"
6321
+ },
6511
6322
  "workspace": {
6512
6323
  "char": "w",
6513
6324
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6520,7 +6331,7 @@
6520
6331
  },
6521
6332
  "hasDynamicHelp": false,
6522
6333
  "hiddenAliases": [],
6523
- "id": "tenant:env:set_all",
6334
+ "id": "tenant:license:get",
6524
6335
  "pluginAlias": "@xano/cli",
6525
6336
  "pluginName": "@xano/cli",
6526
6337
  "pluginType": "core",
@@ -6531,12 +6342,12 @@
6531
6342
  "dist",
6532
6343
  "commands",
6533
6344
  "tenant",
6534
- "env",
6535
- "set_all",
6345
+ "license",
6346
+ "get",
6536
6347
  "index.js"
6537
6348
  ]
6538
6349
  },
6539
- "tenant:license:get": {
6350
+ "tenant:license:set": {
6540
6351
  "aliases": [],
6541
6352
  "args": {
6542
6353
  "tenant_name": {
@@ -6545,12 +6356,12 @@
6545
6356
  "required": true
6546
6357
  }
6547
6358
  },
6548
- "description": "Get the license for a tenant",
6359
+ "description": "Set/update the license for a tenant",
6549
6360
  "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"
6361
+ "$ xano tenant license set my-tenant\nReads from license_my-tenant.yaml\n",
6362
+ "$ xano tenant license set my-tenant --file ./license.yaml",
6363
+ "$ xano tenant license set my-tenant --value 'key: value'",
6364
+ "$ xano tenant license set my-tenant -o json"
6554
6365
  ],
6555
6366
  "flags": {
6556
6367
  "profile": {
@@ -6572,9 +6383,22 @@
6572
6383
  "allowNo": false,
6573
6384
  "type": "boolean"
6574
6385
  },
6386
+ "clean": {
6387
+ "description": "Remove the source file after successful upload",
6388
+ "exclusive": [
6389
+ "value"
6390
+ ],
6391
+ "name": "clean",
6392
+ "required": false,
6393
+ "allowNo": false,
6394
+ "type": "boolean"
6395
+ },
6575
6396
  "file": {
6576
6397
  "char": "f",
6577
- "description": "Output file path (default: license_<tenant_name>.yaml)",
6398
+ "description": "Path to license file (default: license_<tenant_name>.yaml)",
6399
+ "exclusive": [
6400
+ "value"
6401
+ ],
6578
6402
  "name": "file",
6579
6403
  "required": false,
6580
6404
  "hasDynamicHelp": false,
@@ -6595,12 +6419,17 @@
6595
6419
  ],
6596
6420
  "type": "option"
6597
6421
  },
6598
- "view": {
6599
- "description": "Print license to stdout instead of saving to file",
6600
- "name": "view",
6422
+ "value": {
6423
+ "description": "Inline license value",
6424
+ "exclusive": [
6425
+ "file",
6426
+ "clean"
6427
+ ],
6428
+ "name": "value",
6601
6429
  "required": false,
6602
- "allowNo": false,
6603
- "type": "boolean"
6430
+ "hasDynamicHelp": false,
6431
+ "multiple": false,
6432
+ "type": "option"
6604
6433
  },
6605
6434
  "workspace": {
6606
6435
  "char": "w",
@@ -6614,7 +6443,7 @@
6614
6443
  },
6615
6444
  "hasDynamicHelp": false,
6616
6445
  "hiddenAliases": [],
6617
- "id": "tenant:license:get",
6446
+ "id": "tenant:license:set",
6618
6447
  "pluginAlias": "@xano/cli",
6619
6448
  "pluginName": "@xano/cli",
6620
6449
  "pluginType": "core",
@@ -6626,25 +6455,24 @@
6626
6455
  "commands",
6627
6456
  "tenant",
6628
6457
  "license",
6629
- "get",
6458
+ "set",
6630
6459
  "index.js"
6631
6460
  ]
6632
6461
  },
6633
- "tenant:license:set": {
6462
+ "static_host:build:create": {
6634
6463
  "aliases": [],
6635
6464
  "args": {
6636
- "tenant_name": {
6637
- "description": "Tenant name",
6638
- "name": "tenant_name",
6465
+ "static_host": {
6466
+ "description": "Static Host name",
6467
+ "name": "static_host",
6639
6468
  "required": true
6640
6469
  }
6641
6470
  },
6642
- "description": "Set/update the license for a tenant",
6471
+ "description": "Create a new build for a static host",
6643
6472
  "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"
6473
+ "$ 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",
6474
+ "$ 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",
6475
+ "$ 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"
6648
6476
  ],
6649
6477
  "flags": {
6650
6478
  "profile": {
@@ -6666,24 +6494,29 @@
6666
6494
  "allowNo": false,
6667
6495
  "type": "boolean"
6668
6496
  },
6669
- "clean": {
6670
- "description": "Remove the source file after successful upload",
6671
- "exclusive": [
6672
- "value"
6673
- ],
6674
- "name": "clean",
6497
+ "description": {
6498
+ "char": "d",
6499
+ "description": "Build description",
6500
+ "name": "description",
6675
6501
  "required": false,
6676
- "allowNo": false,
6677
- "type": "boolean"
6502
+ "hasDynamicHelp": false,
6503
+ "multiple": false,
6504
+ "type": "option"
6678
6505
  },
6679
6506
  "file": {
6680
6507
  "char": "f",
6681
- "description": "Path to license file (default: license_<tenant_name>.yaml)",
6682
- "exclusive": [
6683
- "value"
6684
- ],
6508
+ "description": "Path to zip file to upload",
6685
6509
  "name": "file",
6686
- "required": false,
6510
+ "required": true,
6511
+ "hasDynamicHelp": false,
6512
+ "multiple": false,
6513
+ "type": "option"
6514
+ },
6515
+ "name": {
6516
+ "char": "n",
6517
+ "description": "Build name",
6518
+ "name": "name",
6519
+ "required": true,
6687
6520
  "hasDynamicHelp": false,
6688
6521
  "multiple": false,
6689
6522
  "type": "option"
@@ -6702,21 +6535,9 @@
6702
6535
  ],
6703
6536
  "type": "option"
6704
6537
  },
6705
- "value": {
6706
- "description": "Inline license value",
6707
- "exclusive": [
6708
- "file",
6709
- "clean"
6710
- ],
6711
- "name": "value",
6712
- "required": false,
6713
- "hasDynamicHelp": false,
6714
- "multiple": false,
6715
- "type": "option"
6716
- },
6717
6538
  "workspace": {
6718
6539
  "char": "w",
6719
- "description": "Workspace ID (uses profile workspace if not provided)",
6540
+ "description": "Workspace ID (optional if set in profile)",
6720
6541
  "name": "workspace",
6721
6542
  "required": false,
6722
6543
  "hasDynamicHelp": false,
@@ -6726,7 +6547,7 @@
6726
6547
  },
6727
6548
  "hasDynamicHelp": false,
6728
6549
  "hiddenAliases": [],
6729
- "id": "tenant:license:set",
6550
+ "id": "static_host:build:create",
6730
6551
  "pluginAlias": "@xano/cli",
6731
6552
  "pluginName": "@xano/cli",
6732
6553
  "pluginType": "core",
@@ -6736,9 +6557,9 @@
6736
6557
  "relativePath": [
6737
6558
  "dist",
6738
6559
  "commands",
6739
- "tenant",
6740
- "license",
6741
- "set",
6560
+ "static_host",
6561
+ "build",
6562
+ "create",
6742
6563
  "index.js"
6743
6564
  ]
6744
6565
  },
@@ -6836,21 +6657,26 @@
6836
6657
  "index.js"
6837
6658
  ]
6838
6659
  },
6839
- "tenant:cluster:license:get": {
6660
+ "static_host:build:get": {
6840
6661
  "aliases": [],
6841
6662
  "args": {
6842
- "cluster_id": {
6843
- "description": "Tenant cluster ID",
6844
- "name": "cluster_id",
6663
+ "build_id": {
6664
+ "description": "Build ID",
6665
+ "name": "build_id",
6666
+ "required": true
6667
+ },
6668
+ "static_host": {
6669
+ "description": "Static Host name",
6670
+ "name": "static_host",
6845
6671
  "required": true
6846
6672
  }
6847
6673
  },
6848
- "description": "Get the license (kubeconfig) for a tenant cluster",
6674
+ "description": "Get details of a specific build for a static host",
6849
6675
  "examples": [
6850
- "$ xano tenant cluster license get 1\nLicense saved to kubeconfig-1.yaml\n",
6851
- "$ xano tenant cluster license get 1 --file ./my-kubeconfig.yaml\nLicense saved to my-kubeconfig.yaml\n",
6852
- "$ xano tenant cluster license get 1 --view",
6853
- "$ xano tenant cluster license get 1 -o json"
6676
+ "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
6677
+ "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
6678
+ "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
6679
+ "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
6854
6680
  ],
6855
6681
  "flags": {
6856
6682
  "profile": {
@@ -6872,15 +6698,84 @@
6872
6698
  "allowNo": false,
6873
6699
  "type": "boolean"
6874
6700
  },
6875
- "file": {
6876
- "char": "f",
6877
- "description": "Output file path (default: kubeconfig_<cluster_id>.yaml)",
6878
- "name": "file",
6701
+ "output": {
6702
+ "char": "o",
6703
+ "description": "Output format",
6704
+ "name": "output",
6705
+ "required": false,
6706
+ "default": "summary",
6707
+ "hasDynamicHelp": false,
6708
+ "multiple": false,
6709
+ "options": [
6710
+ "summary",
6711
+ "json"
6712
+ ],
6713
+ "type": "option"
6714
+ },
6715
+ "workspace": {
6716
+ "char": "w",
6717
+ "description": "Workspace ID (optional if set in profile)",
6718
+ "name": "workspace",
6719
+ "required": false,
6720
+ "hasDynamicHelp": false,
6721
+ "multiple": false,
6722
+ "type": "option"
6723
+ }
6724
+ },
6725
+ "hasDynamicHelp": false,
6726
+ "hiddenAliases": [],
6727
+ "id": "static_host:build:get",
6728
+ "pluginAlias": "@xano/cli",
6729
+ "pluginName": "@xano/cli",
6730
+ "pluginType": "core",
6731
+ "strict": true,
6732
+ "enableJsonFlag": false,
6733
+ "isESM": true,
6734
+ "relativePath": [
6735
+ "dist",
6736
+ "commands",
6737
+ "static_host",
6738
+ "build",
6739
+ "get",
6740
+ "index.js"
6741
+ ]
6742
+ },
6743
+ "static_host:build:list": {
6744
+ "aliases": [],
6745
+ "args": {
6746
+ "static_host": {
6747
+ "description": "Static Host name",
6748
+ "name": "static_host",
6749
+ "required": true
6750
+ }
6751
+ },
6752
+ "description": "List all builds for a static host",
6753
+ "examples": [
6754
+ "$ xano static_host:build:list default -w 40\nAvailable builds:\n - v1.0.0 (ID: 1) - Status: completed\n - v1.0.1 (ID: 2) - Status: pending\n",
6755
+ "$ xano static_host:build:list myhost --profile production\nAvailable builds:\n - production (ID: 1) - Status: completed\n - staging (ID: 2) - Status: completed\n",
6756
+ "$ xano static_host:build:list default -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n }\n]\n",
6757
+ "$ xano static_host:build:list default -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"v1.0.2\"\n }\n]\n"
6758
+ ],
6759
+ "flags": {
6760
+ "profile": {
6761
+ "char": "p",
6762
+ "description": "Profile to use (uses default profile if not specified)",
6763
+ "env": "XANO_PROFILE",
6764
+ "name": "profile",
6879
6765
  "required": false,
6880
6766
  "hasDynamicHelp": false,
6881
6767
  "multiple": false,
6882
6768
  "type": "option"
6883
6769
  },
6770
+ "verbose": {
6771
+ "char": "v",
6772
+ "description": "Show detailed request/response information",
6773
+ "env": "XANO_VERBOSE",
6774
+ "name": "verbose",
6775
+ "required": false,
6776
+ "allowNo": false,
6777
+ "type": "boolean"
6778
+ },
6884
6779
  "output": {
6885
6780
  "char": "o",
6886
6781
  "description": "Output format",
@@ -6895,17 +6790,37 @@
6895
6790
  ],
6896
6791
  "type": "option"
6897
6792
  },
6898
- "view": {
6899
- "description": "Print license to stdout instead of saving to file",
6900
- "name": "view",
6793
+ "page": {
6794
+ "description": "Page number for pagination",
6795
+ "name": "page",
6901
6796
  "required": false,
6902
- "allowNo": false,
6903
- "type": "boolean"
6797
+ "default": 1,
6798
+ "hasDynamicHelp": false,
6799
+ "multiple": false,
6800
+ "type": "option"
6801
+ },
6802
+ "per_page": {
6803
+ "description": "Number of results per page",
6804
+ "name": "per_page",
6805
+ "required": false,
6806
+ "default": 50,
6807
+ "hasDynamicHelp": false,
6808
+ "multiple": false,
6809
+ "type": "option"
6810
+ },
6811
+ "workspace": {
6812
+ "char": "w",
6813
+ "description": "Workspace ID (optional if set in profile)",
6814
+ "name": "workspace",
6815
+ "required": false,
6816
+ "hasDynamicHelp": false,
6817
+ "multiple": false,
6818
+ "type": "option"
6904
6819
  }
6905
6820
  },
6906
6821
  "hasDynamicHelp": false,
6907
6822
  "hiddenAliases": [],
6908
- "id": "tenant:cluster:license:get",
6823
+ "id": "static_host:build:list",
6909
6824
  "pluginAlias": "@xano/cli",
6910
6825
  "pluginName": "@xano/cli",
6911
6826
  "pluginType": "core",
@@ -6915,10 +6830,9 @@
6915
6830
  "relativePath": [
6916
6831
  "dist",
6917
6832
  "commands",
6918
- "tenant",
6919
- "cluster",
6920
- "license",
6921
- "get",
6833
+ "static_host",
6834
+ "build",
6835
+ "list",
6922
6836
  "index.js"
6923
6837
  ]
6924
6838
  },
@@ -7025,7 +6939,93 @@
7025
6939
  "set",
7026
6940
  "index.js"
7027
6941
  ]
6942
+ },
6943
+ "tenant:cluster:license:get": {
6944
+ "aliases": [],
6945
+ "args": {
6946
+ "cluster_id": {
6947
+ "description": "Tenant cluster ID",
6948
+ "name": "cluster_id",
6949
+ "required": true
6950
+ }
6951
+ },
6952
+ "description": "Get the license (kubeconfig) for a tenant cluster",
6953
+ "examples": [
6954
+ "$ xano tenant cluster license get 1\nLicense saved to kubeconfig-1.yaml\n",
6955
+ "$ xano tenant cluster license get 1 --file ./my-kubeconfig.yaml\nLicense saved to my-kubeconfig.yaml\n",
6956
+ "$ xano tenant cluster license get 1 --view",
6957
+ "$ xano tenant cluster license get 1 -o json"
6958
+ ],
6959
+ "flags": {
6960
+ "profile": {
6961
+ "char": "p",
6962
+ "description": "Profile to use (uses default profile if not specified)",
6963
+ "env": "XANO_PROFILE",
6964
+ "name": "profile",
6965
+ "required": false,
6966
+ "hasDynamicHelp": false,
6967
+ "multiple": false,
6968
+ "type": "option"
6969
+ },
6970
+ "verbose": {
6971
+ "char": "v",
6972
+ "description": "Show detailed request/response information",
6973
+ "env": "XANO_VERBOSE",
6974
+ "name": "verbose",
6975
+ "required": false,
6976
+ "allowNo": false,
6977
+ "type": "boolean"
6978
+ },
6979
+ "file": {
6980
+ "char": "f",
6981
+ "description": "Output file path (default: kubeconfig_<cluster_id>.yaml)",
6982
+ "name": "file",
6983
+ "required": false,
6984
+ "hasDynamicHelp": false,
6985
+ "multiple": false,
6986
+ "type": "option"
6987
+ },
6988
+ "output": {
6989
+ "char": "o",
6990
+ "description": "Output format",
6991
+ "name": "output",
6992
+ "required": false,
6993
+ "default": "summary",
6994
+ "hasDynamicHelp": false,
6995
+ "multiple": false,
6996
+ "options": [
6997
+ "summary",
6998
+ "json"
6999
+ ],
7000
+ "type": "option"
7001
+ },
7002
+ "view": {
7003
+ "description": "Print license to stdout instead of saving to file",
7004
+ "name": "view",
7005
+ "required": false,
7006
+ "allowNo": false,
7007
+ "type": "boolean"
7008
+ }
7009
+ },
7010
+ "hasDynamicHelp": false,
7011
+ "hiddenAliases": [],
7012
+ "id": "tenant:cluster:license:get",
7013
+ "pluginAlias": "@xano/cli",
7014
+ "pluginName": "@xano/cli",
7015
+ "pluginType": "core",
7016
+ "strict": true,
7017
+ "enableJsonFlag": false,
7018
+ "isESM": true,
7019
+ "relativePath": [
7020
+ "dist",
7021
+ "commands",
7022
+ "tenant",
7023
+ "cluster",
7024
+ "license",
7025
+ "get",
7026
+ "index.js"
7027
+ ]
7028
7028
  }
7029
7029
  },
7030
- "version": "0.0.49"
7030
+ "version": "0.0.51"
7031
7031
  }