@xano/cli 0.0.85 → 0.0.87

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.
@@ -207,20 +207,20 @@
207
207
  "index.js"
208
208
  ]
209
209
  },
210
- "branch:delete": {
210
+ "branch:list": {
211
211
  "aliases": [],
212
212
  "args": {
213
- "branch_label": {
214
- "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
215
- "name": "branch_label",
216
- "required": true
213
+ "workspace_id": {
214
+ "description": "Workspace ID (uses profile workspace if not provided)",
215
+ "name": "workspace_id",
216
+ "required": false
217
217
  }
218
218
  },
219
- "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
219
+ "description": "List all branches in a workspace",
220
220
  "examples": [
221
- "$ 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",
222
- "$ xano branch delete dev --force\nDeleted branch: dev\n",
223
- "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
221
+ "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
222
+ "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
223
+ "$ xano branch list --output json\n[\n {\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"label\": \"v1\",\n \"backup\": false,\n \"live\": true\n }\n]\n"
224
224
  ],
225
225
  "flags": {
226
226
  "profile": {
@@ -242,14 +242,6 @@
242
242
  "allowNo": false,
243
243
  "type": "boolean"
244
244
  },
245
- "force": {
246
- "char": "f",
247
- "description": "Skip confirmation prompt",
248
- "name": "force",
249
- "required": false,
250
- "allowNo": false,
251
- "type": "boolean"
252
- },
253
245
  "output": {
254
246
  "char": "o",
255
247
  "description": "Output format",
@@ -263,20 +255,11 @@
263
255
  "json"
264
256
  ],
265
257
  "type": "option"
266
- },
267
- "workspace": {
268
- "char": "w",
269
- "description": "Workspace ID (uses profile workspace if not provided)",
270
- "name": "workspace",
271
- "required": false,
272
- "hasDynamicHelp": false,
273
- "multiple": false,
274
- "type": "option"
275
258
  }
276
259
  },
277
260
  "hasDynamicHelp": false,
278
261
  "hiddenAliases": [],
279
- "id": "branch:delete",
262
+ "id": "branch:list",
280
263
  "pluginAlias": "@xano/cli",
281
264
  "pluginName": "@xano/cli",
282
265
  "pluginType": "core",
@@ -287,7 +270,7 @@
287
270
  "dist",
288
271
  "commands",
289
272
  "branch",
290
- "delete",
273
+ "list",
291
274
  "index.js"
292
275
  ]
293
276
  },
@@ -394,20 +377,20 @@
394
377
  "index.js"
395
378
  ]
396
379
  },
397
- "branch:list": {
380
+ "branch:set_live": {
398
381
  "aliases": [],
399
382
  "args": {
400
- "workspace_id": {
401
- "description": "Workspace ID (uses profile workspace if not provided)",
402
- "name": "workspace_id",
403
- "required": false
383
+ "branch_label": {
384
+ "description": "Branch label to set as live (use \"v1\" for default branch)",
385
+ "name": "branch_label",
386
+ "required": true
404
387
  }
405
388
  },
406
- "description": "List all branches in a workspace",
389
+ "description": "Set a branch as the live (active) branch for API requests",
407
390
  "examples": [
408
- "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
409
- "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
410
- "$ xano branch list --output json\n[\n {\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"label\": \"v1\",\n \"backup\": false,\n \"live\": true\n }\n]\n"
391
+ "$ 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",
392
+ "$ xano branch set-live v1 --force\nBranch 'v1' is now live\n",
393
+ "$ 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"
411
394
  ],
412
395
  "flags": {
413
396
  "profile": {
@@ -429,6 +412,14 @@
429
412
  "allowNo": false,
430
413
  "type": "boolean"
431
414
  },
415
+ "force": {
416
+ "char": "f",
417
+ "description": "Skip confirmation prompt",
418
+ "name": "force",
419
+ "required": false,
420
+ "allowNo": false,
421
+ "type": "boolean"
422
+ },
432
423
  "output": {
433
424
  "char": "o",
434
425
  "description": "Output format",
@@ -442,11 +433,20 @@
442
433
  "json"
443
434
  ],
444
435
  "type": "option"
436
+ },
437
+ "workspace": {
438
+ "char": "w",
439
+ "description": "Workspace ID (uses profile workspace if not provided)",
440
+ "name": "workspace",
441
+ "required": false,
442
+ "hasDynamicHelp": false,
443
+ "multiple": false,
444
+ "type": "option"
445
445
  }
446
446
  },
447
447
  "hasDynamicHelp": false,
448
448
  "hiddenAliases": [],
449
- "id": "branch:list",
449
+ "id": "branch:set_live",
450
450
  "pluginAlias": "@xano/cli",
451
451
  "pluginName": "@xano/cli",
452
452
  "pluginType": "core",
@@ -457,24 +457,24 @@
457
457
  "dist",
458
458
  "commands",
459
459
  "branch",
460
- "list",
460
+ "set_live",
461
461
  "index.js"
462
462
  ]
463
463
  },
464
- "branch:set_live": {
464
+ "branch:delete": {
465
465
  "aliases": [],
466
466
  "args": {
467
467
  "branch_label": {
468
- "description": "Branch label to set as live (use \"v1\" for default branch)",
468
+ "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
469
469
  "name": "branch_label",
470
470
  "required": true
471
471
  }
472
472
  },
473
- "description": "Set a branch as the live (active) branch for API requests",
473
+ "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
474
474
  "examples": [
475
- "$ 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",
476
- "$ xano branch set-live v1 --force\nBranch 'v1' is now live\n",
477
- "$ 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"
475
+ "$ 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",
476
+ "$ xano branch delete dev --force\nDeleted branch: dev\n",
477
+ "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
478
478
  ],
479
479
  "flags": {
480
480
  "profile": {
@@ -530,7 +530,7 @@
530
530
  },
531
531
  "hasDynamicHelp": false,
532
532
  "hiddenAliases": [],
533
- "id": "branch:set_live",
533
+ "id": "branch:delete",
534
534
  "pluginAlias": "@xano/cli",
535
535
  "pluginName": "@xano/cli",
536
536
  "pluginType": "core",
@@ -541,20 +541,24 @@
541
541
  "dist",
542
542
  "commands",
543
543
  "branch",
544
- "set_live",
544
+ "delete",
545
545
  "index.js"
546
546
  ]
547
547
  },
548
- "function:create": {
548
+ "branch:get": {
549
549
  "aliases": [],
550
- "args": {},
551
- "description": "Create a new function in a workspace",
550
+ "args": {
551
+ "branch_label": {
552
+ "description": "Branch label (e.g., \"v1\", \"dev\")",
553
+ "name": "branch_label",
554
+ "required": true
555
+ }
556
+ },
557
+ "description": "Get details for a specific branch",
552
558
  "examples": [
553
- "$ xano function:create -w 40 -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
554
- "$ xano function:create -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
555
- "$ xano function:create -w 40 -f function.xs --edit\n# Opens function.xs in $EDITOR, then creates function with edited content\nFunction created successfully!\nID: 123\nName: my_function\n",
556
- "$ cat function.xs | xano function:create -w 40 --stdin\nFunction created successfully!\nID: 123\nName: my_function\n",
557
- "$ xano function:create -w 40 -f function.xs -o json\n{\n \"id\": 123,\n \"name\": \"my_function\",\n ...\n}\n"
559
+ "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
560
+ "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
561
+ "$ 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"
558
562
  ],
559
563
  "flags": {
560
564
  "profile": {
@@ -576,29 +580,6 @@
576
580
  "allowNo": false,
577
581
  "type": "boolean"
578
582
  },
579
- "edit": {
580
- "char": "e",
581
- "dependsOn": [
582
- "file"
583
- ],
584
- "description": "Open file in editor before creating function (requires --file)",
585
- "name": "edit",
586
- "required": false,
587
- "allowNo": false,
588
- "type": "boolean"
589
- },
590
- "file": {
591
- "char": "f",
592
- "description": "Path to file containing XanoScript code",
593
- "exclusive": [
594
- "stdin"
595
- ],
596
- "name": "file",
597
- "required": false,
598
- "hasDynamicHelp": false,
599
- "multiple": false,
600
- "type": "option"
601
- },
602
583
  "output": {
603
584
  "char": "o",
604
585
  "description": "Output format",
@@ -613,20 +594,9 @@
613
594
  ],
614
595
  "type": "option"
615
596
  },
616
- "stdin": {
617
- "char": "s",
618
- "description": "Read XanoScript code from stdin",
619
- "exclusive": [
620
- "file"
621
- ],
622
- "name": "stdin",
623
- "required": false,
624
- "allowNo": false,
625
- "type": "boolean"
626
- },
627
597
  "workspace": {
628
598
  "char": "w",
629
- "description": "Workspace ID (optional if set in profile)",
599
+ "description": "Workspace ID (uses profile workspace if not provided)",
630
600
  "name": "workspace",
631
601
  "required": false,
632
602
  "hasDynamicHelp": false,
@@ -636,7 +606,7 @@
636
606
  },
637
607
  "hasDynamicHelp": false,
638
608
  "hiddenAliases": [],
639
- "id": "function:create",
609
+ "id": "branch:get",
640
610
  "pluginAlias": "@xano/cli",
641
611
  "pluginName": "@xano/cli",
642
612
  "pluginType": "core",
@@ -646,30 +616,21 @@
646
616
  "relativePath": [
647
617
  "dist",
648
618
  "commands",
649
- "function",
650
- "create",
619
+ "branch",
620
+ "get",
651
621
  "index.js"
652
622
  ]
653
623
  },
654
- "function:edit": {
624
+ "function:create": {
655
625
  "aliases": [],
656
- "args": {
657
- "function_id": {
658
- "description": "Function ID to edit",
659
- "name": "function_id",
660
- "required": false
661
- }
662
- },
663
- "description": "Edit a function in a workspace",
626
+ "args": {},
627
+ "description": "Create a new function in a workspace",
664
628
  "examples": [
665
- "$ 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",
666
- "$ 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",
667
- "$ xano function:edit 163 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
668
- "$ xano function:edit 163 -w 40 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
669
- "$ xano function:edit -f function.xs\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
670
- "$ 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",
671
- "$ cat function.xs | xano function:edit 163 --stdin\nFunction updated successfully!\nID: 163\nName: my_function\n",
672
- "$ xano function:edit 163 -f function.xs -o json\n{\n \"id\": 163,\n \"name\": \"my_function\",\n ...\n}\n"
629
+ "$ xano function:create -w 40 -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
630
+ "$ xano function:create -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
631
+ "$ xano function:create -w 40 -f function.xs --edit\n# Opens function.xs in $EDITOR, then creates function with edited content\nFunction created successfully!\nID: 123\nName: my_function\n",
632
+ "$ cat function.xs | xano function:create -w 40 --stdin\nFunction created successfully!\nID: 123\nName: my_function\n",
633
+ "$ xano function:create -w 40 -f function.xs -o json\n{\n \"id\": 123,\n \"name\": \"my_function\",\n ...\n}\n"
673
634
  ],
674
635
  "flags": {
675
636
  "profile": {
@@ -693,7 +654,10 @@
693
654
  },
694
655
  "edit": {
695
656
  "char": "e",
696
- "description": "Open file in editor before updating function (requires --file)",
657
+ "dependsOn": [
658
+ "file"
659
+ ],
660
+ "description": "Open file in editor before creating function (requires --file)",
697
661
  "name": "edit",
698
662
  "required": false,
699
663
  "allowNo": false,
@@ -725,13 +689,6 @@
725
689
  ],
726
690
  "type": "option"
727
691
  },
728
- "publish": {
729
- "description": "Publish the function after editing",
730
- "name": "publish",
731
- "required": false,
732
- "allowNo": false,
733
- "type": "boolean"
734
- },
735
692
  "stdin": {
736
693
  "char": "s",
737
694
  "description": "Read XanoScript code from stdin",
@@ -755,7 +712,7 @@
755
712
  },
756
713
  "hasDynamicHelp": false,
757
714
  "hiddenAliases": [],
758
- "id": "function:edit",
715
+ "id": "function:create",
759
716
  "pluginAlias": "@xano/cli",
760
717
  "pluginName": "@xano/cli",
761
718
  "pluginType": "core",
@@ -766,7 +723,7 @@
766
723
  "dist",
767
724
  "commands",
768
725
  "function",
769
- "edit",
726
+ "create",
770
727
  "index.js"
771
728
  ]
772
729
  },
@@ -864,15 +821,25 @@
864
821
  "index.js"
865
822
  ]
866
823
  },
867
- "function:list": {
824
+ "function:edit": {
868
825
  "aliases": [],
869
- "args": {},
870
- "description": "List all functions in a workspace from the Xano Metadata API",
826
+ "args": {
827
+ "function_id": {
828
+ "description": "Function ID to edit",
829
+ "name": "function_id",
830
+ "required": false
831
+ }
832
+ },
833
+ "description": "Edit a function in a workspace",
871
834
  "examples": [
872
- "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
873
- "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
874
- "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
875
- "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
835
+ "$ 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",
836
+ "$ 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",
837
+ "$ xano function:edit 163 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
838
+ "$ xano function:edit 163 -w 40 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
839
+ "$ xano function:edit -f function.xs\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
840
+ "$ 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",
841
+ "$ cat function.xs | xano function:edit 163 --stdin\nFunction updated successfully!\nID: 163\nName: my_function\n",
842
+ "$ xano function:edit 163 -f function.xs -o json\n{\n \"id\": 163,\n \"name\": \"my_function\",\n ...\n}\n"
876
843
  ],
877
844
  "flags": {
878
845
  "profile": {
@@ -894,31 +861,24 @@
894
861
  "allowNo": false,
895
862
  "type": "boolean"
896
863
  },
897
- "include_draft": {
898
- "description": "Include draft functions",
899
- "name": "include_draft",
900
- "required": false,
901
- "allowNo": false,
902
- "type": "boolean"
903
- },
904
- "include_xanoscript": {
905
- "description": "Include XanoScript in response",
906
- "name": "include_xanoscript",
864
+ "edit": {
865
+ "char": "e",
866
+ "description": "Open file in editor before updating function (requires --file)",
867
+ "name": "edit",
907
868
  "required": false,
908
869
  "allowNo": false,
909
870
  "type": "boolean"
910
871
  },
911
- "order": {
912
- "description": "Sort order",
913
- "name": "order",
872
+ "file": {
873
+ "char": "f",
874
+ "description": "Path to file containing XanoScript code",
875
+ "exclusive": [
876
+ "stdin"
877
+ ],
878
+ "name": "file",
914
879
  "required": false,
915
- "default": "desc",
916
880
  "hasDynamicHelp": false,
917
881
  "multiple": false,
918
- "options": [
919
- "asc",
920
- "desc"
921
- ],
922
882
  "type": "option"
923
883
  },
924
884
  "output": {
@@ -935,32 +895,23 @@
935
895
  ],
936
896
  "type": "option"
937
897
  },
938
- "page": {
939
- "description": "Page number for pagination",
940
- "name": "page",
898
+ "publish": {
899
+ "description": "Publish the function after editing",
900
+ "name": "publish",
941
901
  "required": false,
942
- "default": 1,
943
- "hasDynamicHelp": false,
944
- "multiple": false,
945
- "type": "option"
946
- },
947
- "per_page": {
948
- "description": "Number of results per page",
949
- "name": "per_page",
950
- "required": false,
951
- "default": 50,
952
- "hasDynamicHelp": false,
953
- "multiple": false,
954
- "type": "option"
902
+ "allowNo": false,
903
+ "type": "boolean"
955
904
  },
956
- "sort": {
957
- "description": "Sort field",
958
- "name": "sort",
905
+ "stdin": {
906
+ "char": "s",
907
+ "description": "Read XanoScript code from stdin",
908
+ "exclusive": [
909
+ "file"
910
+ ],
911
+ "name": "stdin",
959
912
  "required": false,
960
- "default": "created_at",
961
- "hasDynamicHelp": false,
962
- "multiple": false,
963
- "type": "option"
913
+ "allowNo": false,
914
+ "type": "boolean"
964
915
  },
965
916
  "workspace": {
966
917
  "char": "w",
@@ -974,7 +925,7 @@
974
925
  },
975
926
  "hasDynamicHelp": false,
976
927
  "hiddenAliases": [],
977
- "id": "function:list",
928
+ "id": "function:edit",
978
929
  "pluginAlias": "@xano/cli",
979
930
  "pluginName": "@xano/cli",
980
931
  "pluginType": "core",
@@ -985,7 +936,7 @@
985
936
  "dist",
986
937
  "commands",
987
938
  "function",
988
- "list",
939
+ "edit",
989
940
  "index.js"
990
941
  ]
991
942
  },
@@ -1055,78 +1006,107 @@
1055
1006
  "index.js"
1056
1007
  ]
1057
1008
  },
1058
- "profile:create": {
1009
+ "function:list": {
1059
1010
  "aliases": [],
1060
- "args": {
1061
- "name": {
1062
- "description": "Profile name",
1063
- "name": "name",
1064
- "required": true
1065
- }
1066
- },
1067
- "description": "Create a new profile configuration",
1011
+ "args": {},
1012
+ "description": "List all functions in a workspace from the Xano Metadata API",
1068
1013
  "examples": [
1069
- "$ xano profile:create production --account_origin https://account.xano.com --instance_origin https://instance.xano.com --access_token token123\nProfile 'production' created successfully at ~/.xano/credentials.yaml\n",
1070
- "$ xano profile:create staging -a https://staging-account.xano.com -i https://staging-instance.xano.com -t token456\nProfile 'staging' created successfully at ~/.xano/credentials.yaml\n",
1071
- "$ xano profile:create dev -i https://dev-instance.xano.com -t token789 -w my-workspace -b feature-branch\nProfile 'dev' created successfully at ~/.xano/credentials.yaml\n",
1072
- "$ xano profile:create production --account_origin https://account.xano.com --instance_origin https://instance.xano.com --access_token token123 --default\nProfile 'production' created successfully at ~/.xano/credentials.yaml\nDefault profile set to 'production'\n",
1073
- "$ xano profile:create selfhosted -i https://self-signed.example.com -t token123 --insecure\nProfile 'selfhosted' created successfully at ~/.xano/credentials.yaml\n"
1014
+ "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
1015
+ "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
1016
+ "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
1017
+ "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
1074
1018
  ],
1075
1019
  "flags": {
1076
- "access_token": {
1077
- "char": "t",
1078
- "description": "Access token for the Xano Metadata API",
1079
- "name": "access_token",
1080
- "required": true,
1020
+ "profile": {
1021
+ "char": "p",
1022
+ "description": "Profile to use (uses default profile if not specified)",
1023
+ "env": "XANO_PROFILE",
1024
+ "name": "profile",
1025
+ "required": false,
1081
1026
  "hasDynamicHelp": false,
1082
1027
  "multiple": false,
1083
1028
  "type": "option"
1084
1029
  },
1085
- "account_origin": {
1086
- "char": "a",
1087
- "description": "Account origin URL. Optional for self hosted installs.",
1088
- "name": "account_origin",
1030
+ "verbose": {
1031
+ "char": "v",
1032
+ "description": "Show detailed request/response information",
1033
+ "env": "XANO_VERBOSE",
1034
+ "name": "verbose",
1035
+ "required": false,
1036
+ "allowNo": false,
1037
+ "type": "boolean"
1038
+ },
1039
+ "include_draft": {
1040
+ "description": "Include draft functions",
1041
+ "name": "include_draft",
1042
+ "required": false,
1043
+ "allowNo": false,
1044
+ "type": "boolean"
1045
+ },
1046
+ "include_xanoscript": {
1047
+ "description": "Include XanoScript in response",
1048
+ "name": "include_xanoscript",
1049
+ "required": false,
1050
+ "allowNo": false,
1051
+ "type": "boolean"
1052
+ },
1053
+ "order": {
1054
+ "description": "Sort order",
1055
+ "name": "order",
1089
1056
  "required": false,
1057
+ "default": "desc",
1090
1058
  "hasDynamicHelp": false,
1091
1059
  "multiple": false,
1060
+ "options": [
1061
+ "asc",
1062
+ "desc"
1063
+ ],
1092
1064
  "type": "option"
1093
1065
  },
1094
- "branch": {
1095
- "char": "b",
1096
- "description": "Branch name",
1097
- "name": "branch",
1066
+ "output": {
1067
+ "char": "o",
1068
+ "description": "Output format",
1069
+ "name": "output",
1098
1070
  "required": false,
1071
+ "default": "summary",
1099
1072
  "hasDynamicHelp": false,
1100
1073
  "multiple": false,
1074
+ "options": [
1075
+ "summary",
1076
+ "json"
1077
+ ],
1101
1078
  "type": "option"
1102
1079
  },
1103
- "default": {
1104
- "description": "Set this profile as the default",
1105
- "name": "default",
1080
+ "page": {
1081
+ "description": "Page number for pagination",
1082
+ "name": "page",
1106
1083
  "required": false,
1107
- "allowNo": false,
1108
- "type": "boolean"
1084
+ "default": 1,
1085
+ "hasDynamicHelp": false,
1086
+ "multiple": false,
1087
+ "type": "option"
1109
1088
  },
1110
- "insecure": {
1111
- "char": "k",
1112
- "description": "Skip TLS certificate verification (for self-signed certificates)",
1113
- "name": "insecure",
1089
+ "per_page": {
1090
+ "description": "Number of results per page",
1091
+ "name": "per_page",
1114
1092
  "required": false,
1115
- "allowNo": false,
1116
- "type": "boolean"
1093
+ "default": 50,
1094
+ "hasDynamicHelp": false,
1095
+ "multiple": false,
1096
+ "type": "option"
1117
1097
  },
1118
- "instance_origin": {
1119
- "char": "i",
1120
- "description": "Instance origin URL",
1121
- "name": "instance_origin",
1122
- "required": true,
1098
+ "sort": {
1099
+ "description": "Sort field",
1100
+ "name": "sort",
1101
+ "required": false,
1102
+ "default": "created_at",
1123
1103
  "hasDynamicHelp": false,
1124
1104
  "multiple": false,
1125
1105
  "type": "option"
1126
1106
  },
1127
1107
  "workspace": {
1128
1108
  "char": "w",
1129
- "description": "Workspace name",
1109
+ "description": "Workspace ID (optional if set in profile)",
1130
1110
  "name": "workspace",
1131
1111
  "required": false,
1132
1112
  "hasDynamicHelp": false,
@@ -1136,7 +1116,49 @@
1136
1116
  },
1137
1117
  "hasDynamicHelp": false,
1138
1118
  "hiddenAliases": [],
1139
- "id": "profile:create",
1119
+ "id": "function:list",
1120
+ "pluginAlias": "@xano/cli",
1121
+ "pluginName": "@xano/cli",
1122
+ "pluginType": "core",
1123
+ "strict": true,
1124
+ "enableJsonFlag": false,
1125
+ "isESM": true,
1126
+ "relativePath": [
1127
+ "dist",
1128
+ "commands",
1129
+ "function",
1130
+ "list",
1131
+ "index.js"
1132
+ ]
1133
+ },
1134
+ "profile:delete": {
1135
+ "aliases": [],
1136
+ "args": {
1137
+ "name": {
1138
+ "description": "Profile name to delete",
1139
+ "name": "name",
1140
+ "required": true
1141
+ }
1142
+ },
1143
+ "description": "Delete a profile configuration",
1144
+ "examples": [
1145
+ "$ xano profile:delete old-profile\nAre you sure you want to delete profile 'old-profile'? (y/n): y\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n",
1146
+ "$ xano profile:delete old-profile --force\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n",
1147
+ "$ xano profile:delete old-profile -f\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n"
1148
+ ],
1149
+ "flags": {
1150
+ "force": {
1151
+ "char": "f",
1152
+ "description": "Skip confirmation prompt",
1153
+ "name": "force",
1154
+ "required": false,
1155
+ "allowNo": false,
1156
+ "type": "boolean"
1157
+ }
1158
+ },
1159
+ "hasDynamicHelp": false,
1160
+ "hiddenAliases": [],
1161
+ "id": "profile:delete",
1140
1162
  "pluginAlias": "@xano/cli",
1141
1163
  "pluginName": "@xano/cli",
1142
1164
  "pluginType": "core",
@@ -1147,7 +1169,7 @@
1147
1169
  "dist",
1148
1170
  "commands",
1149
1171
  "profile",
1150
- "create",
1172
+ "delete",
1151
1173
  "index.js"
1152
1174
  ]
1153
1175
  },
@@ -1211,48 +1233,6 @@
1211
1233
  "index.js"
1212
1234
  ]
1213
1235
  },
1214
- "profile:delete": {
1215
- "aliases": [],
1216
- "args": {
1217
- "name": {
1218
- "description": "Profile name to delete",
1219
- "name": "name",
1220
- "required": true
1221
- }
1222
- },
1223
- "description": "Delete a profile configuration",
1224
- "examples": [
1225
- "$ xano profile:delete old-profile\nAre you sure you want to delete profile 'old-profile'? (y/n): y\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n",
1226
- "$ xano profile:delete old-profile --force\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n",
1227
- "$ xano profile:delete old-profile -f\nProfile 'old-profile' deleted successfully from ~/.xano/credentials.yaml\n"
1228
- ],
1229
- "flags": {
1230
- "force": {
1231
- "char": "f",
1232
- "description": "Skip confirmation prompt",
1233
- "name": "force",
1234
- "required": false,
1235
- "allowNo": false,
1236
- "type": "boolean"
1237
- }
1238
- },
1239
- "hasDynamicHelp": false,
1240
- "hiddenAliases": [],
1241
- "id": "profile:delete",
1242
- "pluginAlias": "@xano/cli",
1243
- "pluginName": "@xano/cli",
1244
- "pluginType": "core",
1245
- "strict": true,
1246
- "enableJsonFlag": false,
1247
- "isESM": true,
1248
- "relativePath": [
1249
- "dist",
1250
- "commands",
1251
- "profile",
1252
- "delete",
1253
- "index.js"
1254
- ]
1255
- },
1256
1236
  "profile:edit": {
1257
1237
  "aliases": [],
1258
1238
  "args": {
@@ -1408,28 +1388,88 @@
1408
1388
  "index.js"
1409
1389
  ]
1410
1390
  },
1411
- "profile:list": {
1391
+ "profile:create": {
1412
1392
  "aliases": [],
1413
- "args": {},
1414
- "description": "List all available profile configurations",
1393
+ "args": {
1394
+ "name": {
1395
+ "description": "Profile name",
1396
+ "name": "name",
1397
+ "required": true
1398
+ }
1399
+ },
1400
+ "description": "Create a new profile configuration",
1415
1401
  "examples": [
1416
- "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1417
- "$ 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",
1418
- "$ 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"
1419
- ],
1402
+ "$ xano profile:create production --account_origin https://account.xano.com --instance_origin https://instance.xano.com --access_token token123\nProfile 'production' created successfully at ~/.xano/credentials.yaml\n",
1403
+ "$ xano profile:create staging -a https://staging-account.xano.com -i https://staging-instance.xano.com -t token456\nProfile 'staging' created successfully at ~/.xano/credentials.yaml\n",
1404
+ "$ xano profile:create dev -i https://dev-instance.xano.com -t token789 -w my-workspace -b feature-branch\nProfile 'dev' created successfully at ~/.xano/credentials.yaml\n",
1405
+ "$ xano profile:create production --account_origin https://account.xano.com --instance_origin https://instance.xano.com --access_token token123 --default\nProfile 'production' created successfully at ~/.xano/credentials.yaml\nDefault profile set to 'production'\n",
1406
+ "$ xano profile:create selfhosted -i https://self-signed.example.com -t token123 --insecure\nProfile 'selfhosted' created successfully at ~/.xano/credentials.yaml\n"
1407
+ ],
1420
1408
  "flags": {
1421
- "details": {
1422
- "char": "d",
1423
- "description": "Show detailed information for each profile",
1424
- "name": "details",
1409
+ "access_token": {
1410
+ "char": "t",
1411
+ "description": "Access token for the Xano Metadata API",
1412
+ "name": "access_token",
1413
+ "required": true,
1414
+ "hasDynamicHelp": false,
1415
+ "multiple": false,
1416
+ "type": "option"
1417
+ },
1418
+ "account_origin": {
1419
+ "char": "a",
1420
+ "description": "Account origin URL. Optional for self hosted installs.",
1421
+ "name": "account_origin",
1422
+ "required": false,
1423
+ "hasDynamicHelp": false,
1424
+ "multiple": false,
1425
+ "type": "option"
1426
+ },
1427
+ "branch": {
1428
+ "char": "b",
1429
+ "description": "Branch name",
1430
+ "name": "branch",
1431
+ "required": false,
1432
+ "hasDynamicHelp": false,
1433
+ "multiple": false,
1434
+ "type": "option"
1435
+ },
1436
+ "default": {
1437
+ "description": "Set this profile as the default",
1438
+ "name": "default",
1439
+ "required": false,
1440
+ "allowNo": false,
1441
+ "type": "boolean"
1442
+ },
1443
+ "insecure": {
1444
+ "char": "k",
1445
+ "description": "Skip TLS certificate verification (for self-signed certificates)",
1446
+ "name": "insecure",
1425
1447
  "required": false,
1426
1448
  "allowNo": false,
1427
1449
  "type": "boolean"
1450
+ },
1451
+ "instance_origin": {
1452
+ "char": "i",
1453
+ "description": "Instance origin URL",
1454
+ "name": "instance_origin",
1455
+ "required": true,
1456
+ "hasDynamicHelp": false,
1457
+ "multiple": false,
1458
+ "type": "option"
1459
+ },
1460
+ "workspace": {
1461
+ "char": "w",
1462
+ "description": "Workspace name",
1463
+ "name": "workspace",
1464
+ "required": false,
1465
+ "hasDynamicHelp": false,
1466
+ "multiple": false,
1467
+ "type": "option"
1428
1468
  }
1429
1469
  },
1430
1470
  "hasDynamicHelp": false,
1431
1471
  "hiddenAliases": [],
1432
- "id": "profile:list",
1472
+ "id": "profile:create",
1433
1473
  "pluginAlias": "@xano/cli",
1434
1474
  "pluginName": "@xano/cli",
1435
1475
  "pluginType": "core",
@@ -1440,72 +1480,63 @@
1440
1480
  "dist",
1441
1481
  "commands",
1442
1482
  "profile",
1443
- "list",
1483
+ "create",
1444
1484
  "index.js"
1445
1485
  ]
1446
1486
  },
1447
- "branch:get": {
1487
+ "profile:set": {
1448
1488
  "aliases": [],
1449
1489
  "args": {
1450
- "branch_label": {
1451
- "description": "Branch label (e.g., \"v1\", \"dev\")",
1452
- "name": "branch_label",
1490
+ "name": {
1491
+ "description": "Profile name to set as default",
1492
+ "name": "name",
1453
1493
  "required": true
1454
1494
  }
1455
1495
  },
1456
- "description": "Get details for a specific branch",
1496
+ "description": "Set the default profile",
1457
1497
  "examples": [
1458
- "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
1459
- "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
1460
- "$ 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"
1498
+ "$ xano profile set production\nDefault profile set to 'production'\n"
1499
+ ],
1500
+ "flags": {},
1501
+ "hasDynamicHelp": false,
1502
+ "hiddenAliases": [],
1503
+ "id": "profile:set",
1504
+ "pluginAlias": "@xano/cli",
1505
+ "pluginName": "@xano/cli",
1506
+ "pluginType": "core",
1507
+ "strict": true,
1508
+ "enableJsonFlag": false,
1509
+ "isESM": true,
1510
+ "relativePath": [
1511
+ "dist",
1512
+ "commands",
1513
+ "profile",
1514
+ "set",
1515
+ "index.js"
1516
+ ]
1517
+ },
1518
+ "profile:list": {
1519
+ "aliases": [],
1520
+ "args": {},
1521
+ "description": "List all available profile configurations",
1522
+ "examples": [
1523
+ "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1524
+ "$ 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",
1525
+ "$ 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"
1461
1526
  ],
1462
1527
  "flags": {
1463
- "profile": {
1464
- "char": "p",
1465
- "description": "Profile to use (uses default profile if not specified)",
1466
- "env": "XANO_PROFILE",
1467
- "name": "profile",
1468
- "required": false,
1469
- "hasDynamicHelp": false,
1470
- "multiple": false,
1471
- "type": "option"
1472
- },
1473
- "verbose": {
1474
- "char": "v",
1475
- "description": "Show detailed request/response information",
1476
- "env": "XANO_VERBOSE",
1477
- "name": "verbose",
1528
+ "details": {
1529
+ "char": "d",
1530
+ "description": "Show detailed information for each profile",
1531
+ "name": "details",
1478
1532
  "required": false,
1479
1533
  "allowNo": false,
1480
1534
  "type": "boolean"
1481
- },
1482
- "output": {
1483
- "char": "o",
1484
- "description": "Output format",
1485
- "name": "output",
1486
- "required": false,
1487
- "default": "summary",
1488
- "hasDynamicHelp": false,
1489
- "multiple": false,
1490
- "options": [
1491
- "summary",
1492
- "json"
1493
- ],
1494
- "type": "option"
1495
- },
1496
- "workspace": {
1497
- "char": "w",
1498
- "description": "Workspace ID (uses profile workspace if not provided)",
1499
- "name": "workspace",
1500
- "required": false,
1501
- "hasDynamicHelp": false,
1502
- "multiple": false,
1503
- "type": "option"
1504
1535
  }
1505
1536
  },
1506
1537
  "hasDynamicHelp": false,
1507
1538
  "hiddenAliases": [],
1508
- "id": "branch:get",
1539
+ "id": "profile:list",
1509
1540
  "pluginAlias": "@xano/cli",
1510
1541
  "pluginName": "@xano/cli",
1511
1542
  "pluginType": "core",
@@ -1515,8 +1546,34 @@
1515
1546
  "relativePath": [
1516
1547
  "dist",
1517
1548
  "commands",
1518
- "branch",
1519
- "get",
1549
+ "profile",
1550
+ "list",
1551
+ "index.js"
1552
+ ]
1553
+ },
1554
+ "profile:token": {
1555
+ "aliases": [],
1556
+ "args": {},
1557
+ "description": "Print the access token for the default profile",
1558
+ "examples": [
1559
+ "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1560
+ "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1561
+ ],
1562
+ "flags": {},
1563
+ "hasDynamicHelp": false,
1564
+ "hiddenAliases": [],
1565
+ "id": "profile:token",
1566
+ "pluginAlias": "@xano/cli",
1567
+ "pluginName": "@xano/cli",
1568
+ "pluginType": "core",
1569
+ "strict": true,
1570
+ "enableJsonFlag": false,
1571
+ "isESM": true,
1572
+ "relativePath": [
1573
+ "dist",
1574
+ "commands",
1575
+ "profile",
1576
+ "token",
1520
1577
  "index.js"
1521
1578
  ]
1522
1579
  },
@@ -1581,63 +1638,6 @@
1581
1638
  "index.js"
1582
1639
  ]
1583
1640
  },
1584
- "profile:set": {
1585
- "aliases": [],
1586
- "args": {
1587
- "name": {
1588
- "description": "Profile name to set as default",
1589
- "name": "name",
1590
- "required": true
1591
- }
1592
- },
1593
- "description": "Set the default profile",
1594
- "examples": [
1595
- "$ xano profile set production\nDefault profile set to 'production'\n"
1596
- ],
1597
- "flags": {},
1598
- "hasDynamicHelp": false,
1599
- "hiddenAliases": [],
1600
- "id": "profile:set",
1601
- "pluginAlias": "@xano/cli",
1602
- "pluginName": "@xano/cli",
1603
- "pluginType": "core",
1604
- "strict": true,
1605
- "enableJsonFlag": false,
1606
- "isESM": true,
1607
- "relativePath": [
1608
- "dist",
1609
- "commands",
1610
- "profile",
1611
- "set",
1612
- "index.js"
1613
- ]
1614
- },
1615
- "profile:token": {
1616
- "aliases": [],
1617
- "args": {},
1618
- "description": "Print the access token for the default profile",
1619
- "examples": [
1620
- "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1621
- "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1622
- ],
1623
- "flags": {},
1624
- "hasDynamicHelp": false,
1625
- "hiddenAliases": [],
1626
- "id": "profile:token",
1627
- "pluginAlias": "@xano/cli",
1628
- "pluginName": "@xano/cli",
1629
- "pluginType": "core",
1630
- "strict": true,
1631
- "enableJsonFlag": false,
1632
- "isESM": true,
1633
- "relativePath": [
1634
- "dist",
1635
- "commands",
1636
- "profile",
1637
- "token",
1638
- "index.js"
1639
- ]
1640
- },
1641
1641
  "profile:workspace": {
1642
1642
  "aliases": [],
1643
1643
  "args": {},
@@ -1775,19 +1775,72 @@
1775
1775
  "index.js"
1776
1776
  ]
1777
1777
  },
1778
- "release:delete": {
1778
+ "profile:wizard": {
1779
1779
  "aliases": [],
1780
- "args": {
1781
- "release_name": {
1782
- "description": "Release name to delete",
1783
- "name": "release_name",
1784
- "required": true
1785
- }
1786
- },
1787
- "description": "Delete a release permanently. This action cannot be undone.",
1780
+ "args": {},
1781
+ "description": "Create a new profile configuration using an interactive wizard",
1788
1782
  "examples": [
1789
- "$ 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",
1790
- "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1783
+ "$ 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"
1784
+ ],
1785
+ "flags": {
1786
+ "insecure": {
1787
+ "char": "k",
1788
+ "description": "Skip TLS certificate verification (for self-signed certificates)",
1789
+ "name": "insecure",
1790
+ "required": false,
1791
+ "allowNo": false,
1792
+ "type": "boolean"
1793
+ },
1794
+ "name": {
1795
+ "char": "n",
1796
+ "description": "Profile name (skip prompt if provided)",
1797
+ "name": "name",
1798
+ "required": false,
1799
+ "hasDynamicHelp": false,
1800
+ "multiple": false,
1801
+ "type": "option"
1802
+ },
1803
+ "origin": {
1804
+ "char": "o",
1805
+ "description": "Xano instance origin URL",
1806
+ "name": "origin",
1807
+ "required": false,
1808
+ "default": "https://app.xano.com",
1809
+ "hasDynamicHelp": false,
1810
+ "multiple": false,
1811
+ "type": "option"
1812
+ }
1813
+ },
1814
+ "hasDynamicHelp": false,
1815
+ "hiddenAliases": [],
1816
+ "id": "profile:wizard",
1817
+ "pluginAlias": "@xano/cli",
1818
+ "pluginName": "@xano/cli",
1819
+ "pluginType": "core",
1820
+ "strict": true,
1821
+ "enableJsonFlag": false,
1822
+ "isESM": true,
1823
+ "relativePath": [
1824
+ "dist",
1825
+ "commands",
1826
+ "profile",
1827
+ "wizard",
1828
+ "index.js"
1829
+ ]
1830
+ },
1831
+ "release:delete": {
1832
+ "aliases": [],
1833
+ "args": {
1834
+ "release_name": {
1835
+ "description": "Release name to delete",
1836
+ "name": "release_name",
1837
+ "required": true
1838
+ }
1839
+ },
1840
+ "description": "Delete a release permanently. This action cannot be undone.",
1841
+ "examples": [
1842
+ "$ 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",
1843
+ "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1791
1844
  "$ xano release delete v1.0 -f -o json"
1792
1845
  ],
1793
1846
  "flags": {
@@ -1859,37 +1912,68 @@
1859
1912
  "index.js"
1860
1913
  ]
1861
1914
  },
1862
- "profile:wizard": {
1915
+ "release:export": {
1863
1916
  "aliases": [],
1864
- "args": {},
1865
- "description": "Create a new profile configuration using an interactive wizard",
1917
+ "args": {
1918
+ "release_name": {
1919
+ "description": "Release name to export",
1920
+ "name": "release_name",
1921
+ "required": true
1922
+ }
1923
+ },
1924
+ "description": "Export (download) a release to a local file",
1866
1925
  "examples": [
1867
- "$ 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"
1926
+ "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
1927
+ "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
1928
+ "$ xano release export v1.0 -o json"
1868
1929
  ],
1869
1930
  "flags": {
1870
- "insecure": {
1871
- "char": "k",
1872
- "description": "Skip TLS certificate verification (for self-signed certificates)",
1873
- "name": "insecure",
1931
+ "profile": {
1932
+ "char": "p",
1933
+ "description": "Profile to use (uses default profile if not specified)",
1934
+ "env": "XANO_PROFILE",
1935
+ "name": "profile",
1936
+ "required": false,
1937
+ "hasDynamicHelp": false,
1938
+ "multiple": false,
1939
+ "type": "option"
1940
+ },
1941
+ "verbose": {
1942
+ "char": "v",
1943
+ "description": "Show detailed request/response information",
1944
+ "env": "XANO_VERBOSE",
1945
+ "name": "verbose",
1874
1946
  "required": false,
1875
1947
  "allowNo": false,
1876
1948
  "type": "boolean"
1877
1949
  },
1878
- "name": {
1879
- "char": "n",
1880
- "description": "Profile name (skip prompt if provided)",
1881
- "name": "name",
1950
+ "format": {
1951
+ "char": "o",
1952
+ "description": "Output format",
1953
+ "name": "format",
1882
1954
  "required": false,
1955
+ "default": "summary",
1883
1956
  "hasDynamicHelp": false,
1884
1957
  "multiple": false,
1958
+ "options": [
1959
+ "summary",
1960
+ "json"
1961
+ ],
1885
1962
  "type": "option"
1886
1963
  },
1887
- "origin": {
1888
- "char": "o",
1889
- "description": "Xano instance origin URL",
1890
- "name": "origin",
1964
+ "output": {
1965
+ "description": "Output file path (defaults to ./release-{name}.tar.gz)",
1966
+ "name": "output",
1967
+ "required": false,
1968
+ "hasDynamicHelp": false,
1969
+ "multiple": false,
1970
+ "type": "option"
1971
+ },
1972
+ "workspace": {
1973
+ "char": "w",
1974
+ "description": "Workspace ID (uses profile workspace if not provided)",
1975
+ "name": "workspace",
1891
1976
  "required": false,
1892
- "default": "https://app.xano.com",
1893
1977
  "hasDynamicHelp": false,
1894
1978
  "multiple": false,
1895
1979
  "type": "option"
@@ -1897,7 +1981,7 @@
1897
1981
  },
1898
1982
  "hasDynamicHelp": false,
1899
1983
  "hiddenAliases": [],
1900
- "id": "profile:wizard",
1984
+ "id": "release:export",
1901
1985
  "pluginAlias": "@xano/cli",
1902
1986
  "pluginName": "@xano/cli",
1903
1987
  "pluginType": "core",
@@ -1907,24 +1991,18 @@
1907
1991
  "relativePath": [
1908
1992
  "dist",
1909
1993
  "commands",
1910
- "profile",
1911
- "wizard",
1994
+ "release",
1995
+ "export",
1912
1996
  "index.js"
1913
1997
  ]
1914
1998
  },
1915
- "release:edit": {
1999
+ "release:import": {
1916
2000
  "aliases": [],
1917
- "args": {
1918
- "release_name": {
1919
- "description": "Release name to edit",
1920
- "name": "release_name",
1921
- "required": true
1922
- }
1923
- },
1924
- "description": "Edit an existing release",
2001
+ "args": {},
2002
+ "description": "Import a release file into a workspace",
1925
2003
  "examples": [
1926
- "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
1927
- "$ xano release edit v1.0 --description \"New description\" -o json"
2004
+ "$ xano release import --file ./my-release.tar.gz\nImported release as #15\n",
2005
+ "$ xano release import --file ./my-release.tar.gz -o json"
1928
2006
  ],
1929
2007
  "flags": {
1930
2008
  "profile": {
@@ -1946,20 +2024,11 @@
1946
2024
  "allowNo": false,
1947
2025
  "type": "boolean"
1948
2026
  },
1949
- "description": {
1950
- "char": "d",
1951
- "description": "New description",
1952
- "name": "description",
1953
- "required": false,
1954
- "hasDynamicHelp": false,
1955
- "multiple": false,
1956
- "type": "option"
1957
- },
1958
- "name": {
1959
- "char": "n",
1960
- "description": "New name for the release",
1961
- "name": "name",
1962
- "required": false,
2027
+ "file": {
2028
+ "char": "f",
2029
+ "description": "Path to the release file (.tar.gz)",
2030
+ "name": "file",
2031
+ "required": true,
1963
2032
  "hasDynamicHelp": false,
1964
2033
  "multiple": false,
1965
2034
  "type": "option"
@@ -1990,7 +2059,7 @@
1990
2059
  },
1991
2060
  "hasDynamicHelp": false,
1992
2061
  "hiddenAliases": [],
1993
- "id": "release:edit",
2062
+ "id": "release:import",
1994
2063
  "pluginAlias": "@xano/cli",
1995
2064
  "pluginName": "@xano/cli",
1996
2065
  "pluginType": "core",
@@ -2001,23 +2070,23 @@
2001
2070
  "dist",
2002
2071
  "commands",
2003
2072
  "release",
2004
- "edit",
2073
+ "import",
2005
2074
  "index.js"
2006
2075
  ]
2007
2076
  },
2008
- "release:get": {
2077
+ "release:edit": {
2009
2078
  "aliases": [],
2010
2079
  "args": {
2011
2080
  "release_name": {
2012
- "description": "Release name to retrieve",
2081
+ "description": "Release name to edit",
2013
2082
  "name": "release_name",
2014
2083
  "required": true
2015
2084
  }
2016
2085
  },
2017
- "description": "Get details of a specific release",
2086
+ "description": "Edit an existing release",
2018
2087
  "examples": [
2019
- "$ xano release get v1.0\nRelease: v1.0 - ID: 10\n Branch: main\n Description: Initial release\n Hotfix: false\n",
2020
- "$ xano release get v1.0 -w 5 -o json"
2088
+ "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
2089
+ "$ xano release edit v1.0 --description \"New description\" -o json"
2021
2090
  ],
2022
2091
  "flags": {
2023
2092
  "profile": {
@@ -2039,6 +2108,24 @@
2039
2108
  "allowNo": false,
2040
2109
  "type": "boolean"
2041
2110
  },
2111
+ "description": {
2112
+ "char": "d",
2113
+ "description": "New description",
2114
+ "name": "description",
2115
+ "required": false,
2116
+ "hasDynamicHelp": false,
2117
+ "multiple": false,
2118
+ "type": "option"
2119
+ },
2120
+ "name": {
2121
+ "char": "n",
2122
+ "description": "New name for the release",
2123
+ "name": "name",
2124
+ "required": false,
2125
+ "hasDynamicHelp": false,
2126
+ "multiple": false,
2127
+ "type": "option"
2128
+ },
2042
2129
  "output": {
2043
2130
  "char": "o",
2044
2131
  "description": "Output format",
@@ -2065,7 +2152,7 @@
2065
2152
  },
2066
2153
  "hasDynamicHelp": false,
2067
2154
  "hiddenAliases": [],
2068
- "id": "release:get",
2155
+ "id": "release:edit",
2069
2156
  "pluginAlias": "@xano/cli",
2070
2157
  "pluginName": "@xano/cli",
2071
2158
  "pluginType": "core",
@@ -2076,24 +2163,23 @@
2076
2163
  "dist",
2077
2164
  "commands",
2078
2165
  "release",
2079
- "get",
2166
+ "edit",
2080
2167
  "index.js"
2081
2168
  ]
2082
2169
  },
2083
- "release:export": {
2170
+ "release:get": {
2084
2171
  "aliases": [],
2085
2172
  "args": {
2086
2173
  "release_name": {
2087
- "description": "Release name to export",
2174
+ "description": "Release name to retrieve",
2088
2175
  "name": "release_name",
2089
2176
  "required": true
2090
2177
  }
2091
2178
  },
2092
- "description": "Export (download) a release to a local file",
2179
+ "description": "Get details of a specific release",
2093
2180
  "examples": [
2094
- "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
2095
- "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
2096
- "$ xano release export v1.0 -o json"
2181
+ "$ xano release get v1.0\nRelease: v1.0 - ID: 10\n Branch: main\n Description: Initial release\n Hotfix: false\n",
2182
+ "$ xano release get v1.0 -w 5 -o json"
2097
2183
  ],
2098
2184
  "flags": {
2099
2185
  "profile": {
@@ -2115,10 +2201,10 @@
2115
2201
  "allowNo": false,
2116
2202
  "type": "boolean"
2117
2203
  },
2118
- "format": {
2204
+ "output": {
2119
2205
  "char": "o",
2120
2206
  "description": "Output format",
2121
- "name": "format",
2207
+ "name": "output",
2122
2208
  "required": false,
2123
2209
  "default": "summary",
2124
2210
  "hasDynamicHelp": false,
@@ -2129,14 +2215,6 @@
2129
2215
  ],
2130
2216
  "type": "option"
2131
2217
  },
2132
- "output": {
2133
- "description": "Output file path (defaults to ./release-{name}.tar.gz)",
2134
- "name": "output",
2135
- "required": false,
2136
- "hasDynamicHelp": false,
2137
- "multiple": false,
2138
- "type": "option"
2139
- },
2140
2218
  "workspace": {
2141
2219
  "char": "w",
2142
2220
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2149,7 +2227,7 @@
2149
2227
  },
2150
2228
  "hasDynamicHelp": false,
2151
2229
  "hiddenAliases": [],
2152
- "id": "release:export",
2230
+ "id": "release:get",
2153
2231
  "pluginAlias": "@xano/cli",
2154
2232
  "pluginName": "@xano/cli",
2155
2233
  "pluginType": "core",
@@ -2160,7 +2238,7 @@
2160
2238
  "dist",
2161
2239
  "commands",
2162
2240
  "release",
2163
- "export",
2241
+ "get",
2164
2242
  "index.js"
2165
2243
  ]
2166
2244
  },
@@ -2282,20 +2360,13 @@
2282
2360
  "index.js"
2283
2361
  ]
2284
2362
  },
2285
- "release:pull": {
2363
+ "release:list": {
2286
2364
  "aliases": [],
2287
- "args": {
2288
- "directory": {
2289
- "description": "Output directory for pulled documents",
2290
- "name": "directory",
2291
- "required": true
2292
- }
2293
- },
2294
- "description": "Pull a release multidoc from the Xano Metadata API and split into individual files",
2365
+ "args": {},
2366
+ "description": "List all releases in a workspace",
2295
2367
  "examples": [
2296
- "$ xano release pull ./my-release -r v1.0\nPulled 42 documents from release 'v1.0' to ./my-release\n",
2297
- "$ xano release pull ./output -r v1.0 -w 40\nPulled 15 documents from release 'v1.0' to ./output\n",
2298
- "$ xano release pull ./backup -r v1.0 --profile production --env --records\nPulled 58 documents from release 'v1.0' to ./backup\n"
2368
+ "$ xano release list\nReleases in workspace 5:\n - v1.0 (ID: 10) - main\n - v1.1-hotfix (ID: 11) - main [hotfix]\n",
2369
+ "$ xano release list -w 5 --output json"
2299
2370
  ],
2300
2371
  "flags": {
2301
2372
  "profile": {
@@ -2317,88 +2388,10 @@
2317
2388
  "allowNo": false,
2318
2389
  "type": "boolean"
2319
2390
  },
2320
- "env": {
2321
- "description": "Include environment variables",
2322
- "name": "env",
2323
- "required": false,
2324
- "allowNo": false,
2325
- "type": "boolean"
2326
- },
2327
- "records": {
2328
- "description": "Include records",
2329
- "name": "records",
2330
- "required": false,
2331
- "allowNo": false,
2332
- "type": "boolean"
2333
- },
2334
- "release": {
2335
- "char": "r",
2336
- "description": "Release name to pull from",
2337
- "name": "release",
2338
- "required": true,
2339
- "hasDynamicHelp": false,
2340
- "multiple": false,
2341
- "type": "option"
2342
- },
2343
- "workspace": {
2344
- "char": "w",
2345
- "description": "Workspace ID (optional if set in profile)",
2346
- "name": "workspace",
2347
- "required": false,
2348
- "hasDynamicHelp": false,
2349
- "multiple": false,
2350
- "type": "option"
2351
- }
2352
- },
2353
- "hasDynamicHelp": false,
2354
- "hiddenAliases": [],
2355
- "id": "release:pull",
2356
- "pluginAlias": "@xano/cli",
2357
- "pluginName": "@xano/cli",
2358
- "pluginType": "core",
2359
- "strict": true,
2360
- "enableJsonFlag": false,
2361
- "isESM": true,
2362
- "relativePath": [
2363
- "dist",
2364
- "commands",
2365
- "release",
2366
- "pull",
2367
- "index.js"
2368
- ]
2369
- },
2370
- "release:list": {
2371
- "aliases": [],
2372
- "args": {},
2373
- "description": "List all releases in a workspace",
2374
- "examples": [
2375
- "$ xano release list\nReleases in workspace 5:\n - v1.0 (ID: 10) - main\n - v1.1-hotfix (ID: 11) - main [hotfix]\n",
2376
- "$ xano release list -w 5 --output json"
2377
- ],
2378
- "flags": {
2379
- "profile": {
2380
- "char": "p",
2381
- "description": "Profile to use (uses default profile if not specified)",
2382
- "env": "XANO_PROFILE",
2383
- "name": "profile",
2384
- "required": false,
2385
- "hasDynamicHelp": false,
2386
- "multiple": false,
2387
- "type": "option"
2388
- },
2389
- "verbose": {
2390
- "char": "v",
2391
- "description": "Show detailed request/response information",
2392
- "env": "XANO_VERBOSE",
2393
- "name": "verbose",
2394
- "required": false,
2395
- "allowNo": false,
2396
- "type": "boolean"
2397
- },
2398
- "output": {
2399
- "char": "o",
2400
- "description": "Output format",
2401
- "name": "output",
2391
+ "output": {
2392
+ "char": "o",
2393
+ "description": "Output format",
2394
+ "name": "output",
2402
2395
  "required": false,
2403
2396
  "default": "summary",
2404
2397
  "hasDynamicHelp": false,
@@ -2525,84 +2518,6 @@
2525
2518
  "index.js"
2526
2519
  ]
2527
2520
  },
2528
- "release:import": {
2529
- "aliases": [],
2530
- "args": {},
2531
- "description": "Import a release file into a workspace",
2532
- "examples": [
2533
- "$ xano release import --file ./my-release.tar.gz\nImported release as #15\n",
2534
- "$ xano release import --file ./my-release.tar.gz -o json"
2535
- ],
2536
- "flags": {
2537
- "profile": {
2538
- "char": "p",
2539
- "description": "Profile to use (uses default profile if not specified)",
2540
- "env": "XANO_PROFILE",
2541
- "name": "profile",
2542
- "required": false,
2543
- "hasDynamicHelp": false,
2544
- "multiple": false,
2545
- "type": "option"
2546
- },
2547
- "verbose": {
2548
- "char": "v",
2549
- "description": "Show detailed request/response information",
2550
- "env": "XANO_VERBOSE",
2551
- "name": "verbose",
2552
- "required": false,
2553
- "allowNo": false,
2554
- "type": "boolean"
2555
- },
2556
- "file": {
2557
- "char": "f",
2558
- "description": "Path to the release file (.tar.gz)",
2559
- "name": "file",
2560
- "required": true,
2561
- "hasDynamicHelp": false,
2562
- "multiple": false,
2563
- "type": "option"
2564
- },
2565
- "output": {
2566
- "char": "o",
2567
- "description": "Output format",
2568
- "name": "output",
2569
- "required": false,
2570
- "default": "summary",
2571
- "hasDynamicHelp": false,
2572
- "multiple": false,
2573
- "options": [
2574
- "summary",
2575
- "json"
2576
- ],
2577
- "type": "option"
2578
- },
2579
- "workspace": {
2580
- "char": "w",
2581
- "description": "Workspace ID (uses profile workspace if not provided)",
2582
- "name": "workspace",
2583
- "required": false,
2584
- "hasDynamicHelp": false,
2585
- "multiple": false,
2586
- "type": "option"
2587
- }
2588
- },
2589
- "hasDynamicHelp": false,
2590
- "hiddenAliases": [],
2591
- "id": "release:import",
2592
- "pluginAlias": "@xano/cli",
2593
- "pluginName": "@xano/cli",
2594
- "pluginType": "core",
2595
- "strict": true,
2596
- "enableJsonFlag": false,
2597
- "isESM": true,
2598
- "relativePath": [
2599
- "dist",
2600
- "commands",
2601
- "release",
2602
- "import",
2603
- "index.js"
2604
- ]
2605
- },
2606
2521
  "tenant:create": {
2607
2522
  "aliases": [],
2608
2523
  "args": {
@@ -2827,6 +2742,91 @@
2827
2742
  "index.js"
2828
2743
  ]
2829
2744
  },
2745
+ "release:pull": {
2746
+ "aliases": [],
2747
+ "args": {
2748
+ "directory": {
2749
+ "description": "Output directory for pulled documents",
2750
+ "name": "directory",
2751
+ "required": true
2752
+ }
2753
+ },
2754
+ "description": "Pull a release multidoc from the Xano Metadata API and split into individual files",
2755
+ "examples": [
2756
+ "$ xano release pull ./my-release -r v1.0\nPulled 42 documents from release 'v1.0' to ./my-release\n",
2757
+ "$ xano release pull ./output -r v1.0 -w 40\nPulled 15 documents from release 'v1.0' to ./output\n",
2758
+ "$ xano release pull ./backup -r v1.0 --profile production --env --records\nPulled 58 documents from release 'v1.0' to ./backup\n"
2759
+ ],
2760
+ "flags": {
2761
+ "profile": {
2762
+ "char": "p",
2763
+ "description": "Profile to use (uses default profile if not specified)",
2764
+ "env": "XANO_PROFILE",
2765
+ "name": "profile",
2766
+ "required": false,
2767
+ "hasDynamicHelp": false,
2768
+ "multiple": false,
2769
+ "type": "option"
2770
+ },
2771
+ "verbose": {
2772
+ "char": "v",
2773
+ "description": "Show detailed request/response information",
2774
+ "env": "XANO_VERBOSE",
2775
+ "name": "verbose",
2776
+ "required": false,
2777
+ "allowNo": false,
2778
+ "type": "boolean"
2779
+ },
2780
+ "env": {
2781
+ "description": "Include environment variables",
2782
+ "name": "env",
2783
+ "required": false,
2784
+ "allowNo": false,
2785
+ "type": "boolean"
2786
+ },
2787
+ "records": {
2788
+ "description": "Include records",
2789
+ "name": "records",
2790
+ "required": false,
2791
+ "allowNo": false,
2792
+ "type": "boolean"
2793
+ },
2794
+ "release": {
2795
+ "char": "r",
2796
+ "description": "Release name to pull from",
2797
+ "name": "release",
2798
+ "required": true,
2799
+ "hasDynamicHelp": false,
2800
+ "multiple": false,
2801
+ "type": "option"
2802
+ },
2803
+ "workspace": {
2804
+ "char": "w",
2805
+ "description": "Workspace ID (optional if set in profile)",
2806
+ "name": "workspace",
2807
+ "required": false,
2808
+ "hasDynamicHelp": false,
2809
+ "multiple": false,
2810
+ "type": "option"
2811
+ }
2812
+ },
2813
+ "hasDynamicHelp": false,
2814
+ "hiddenAliases": [],
2815
+ "id": "release:pull",
2816
+ "pluginAlias": "@xano/cli",
2817
+ "pluginName": "@xano/cli",
2818
+ "pluginType": "core",
2819
+ "strict": true,
2820
+ "enableJsonFlag": false,
2821
+ "isESM": true,
2822
+ "relativePath": [
2823
+ "dist",
2824
+ "commands",
2825
+ "release",
2826
+ "pull",
2827
+ "index.js"
2828
+ ]
2829
+ },
2830
2830
  "tenant:deploy_release": {
2831
2831
  "aliases": [],
2832
2832
  "args": {
@@ -3040,19 +3040,20 @@
3040
3040
  "index.js"
3041
3041
  ]
3042
3042
  },
3043
- "tenant:get": {
3043
+ "tenant:deploy_platform": {
3044
3044
  "aliases": [],
3045
3045
  "args": {
3046
3046
  "tenant_name": {
3047
- "description": "Tenant name to retrieve",
3047
+ "description": "Tenant name to deploy to",
3048
3048
  "name": "tenant_name",
3049
3049
  "required": true
3050
3050
  }
3051
3051
  },
3052
- "description": "Get details of a specific tenant",
3052
+ "description": "Deploy a platform version to a tenant",
3053
3053
  "examples": [
3054
- "$ xano tenant get t1234-abcd-xyz1\nTenant: My Tenant (my-tenant)\n State: ok\n License: tier1\n Domain: my-tenant.xano.io\n Cluster: default\n Release: v1.0\n",
3055
- "$ xano tenant get t1234-abcd-xyz1 -w 5 -o json"
3054
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
3055
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json",
3056
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 --license ./license.yaml"
3056
3057
  ],
3057
3058
  "flags": {
3058
3059
  "profile": {
@@ -3074,81 +3075,15 @@
3074
3075
  "allowNo": false,
3075
3076
  "type": "boolean"
3076
3077
  },
3077
- "output": {
3078
- "char": "o",
3079
- "description": "Output format",
3080
- "name": "output",
3081
- "required": false,
3082
- "default": "summary",
3083
- "hasDynamicHelp": false,
3084
- "multiple": false,
3085
- "options": [
3086
- "summary",
3087
- "json"
3088
- ],
3089
- "type": "option"
3090
- },
3091
- "workspace": {
3092
- "char": "w",
3093
- "description": "Workspace ID (uses profile workspace if not provided)",
3094
- "name": "workspace",
3095
- "required": false,
3096
- "hasDynamicHelp": false,
3097
- "multiple": false,
3098
- "type": "option"
3099
- }
3100
- },
3101
- "hasDynamicHelp": false,
3102
- "hiddenAliases": [],
3103
- "id": "tenant:get",
3104
- "pluginAlias": "@xano/cli",
3105
- "pluginName": "@xano/cli",
3106
- "pluginType": "core",
3107
- "strict": true,
3108
- "enableJsonFlag": false,
3109
- "isESM": true,
3110
- "relativePath": [
3111
- "dist",
3112
- "commands",
3113
- "tenant",
3114
- "get",
3115
- "index.js"
3116
- ]
3117
- },
3118
- "tenant:impersonate": {
3119
- "aliases": [],
3120
- "args": {
3121
- "tenant_name": {
3122
- "description": "Tenant name to impersonate",
3123
- "name": "tenant_name",
3124
- "required": true
3125
- }
3126
- },
3127
- "description": "Impersonate a tenant and open it in the browser",
3128
- "examples": [
3129
- "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
3130
- "$ xano tenant impersonate my-tenant -o json"
3131
- ],
3132
- "flags": {
3133
- "profile": {
3134
- "char": "p",
3135
- "description": "Profile to use (uses default profile if not specified)",
3136
- "env": "XANO_PROFILE",
3137
- "name": "profile",
3078
+ "license": {
3079
+ "char": "l",
3080
+ "description": "Path to a license override file to apply after deploy",
3081
+ "name": "license",
3138
3082
  "required": false,
3139
3083
  "hasDynamicHelp": false,
3140
3084
  "multiple": false,
3141
3085
  "type": "option"
3142
3086
  },
3143
- "verbose": {
3144
- "char": "v",
3145
- "description": "Show detailed request/response information",
3146
- "env": "XANO_VERBOSE",
3147
- "name": "verbose",
3148
- "required": false,
3149
- "allowNo": false,
3150
- "type": "boolean"
3151
- },
3152
3087
  "output": {
3153
3088
  "char": "o",
3154
3089
  "description": "Output format",
@@ -3163,13 +3098,13 @@
3163
3098
  ],
3164
3099
  "type": "option"
3165
3100
  },
3166
- "url-only": {
3167
- "char": "u",
3168
- "description": "Print the URL without opening the browser",
3169
- "name": "url-only",
3170
- "required": false,
3171
- "allowNo": false,
3172
- "type": "boolean"
3101
+ "platform_id": {
3102
+ "description": "Platform ID to deploy",
3103
+ "name": "platform_id",
3104
+ "required": true,
3105
+ "hasDynamicHelp": false,
3106
+ "multiple": false,
3107
+ "type": "option"
3173
3108
  },
3174
3109
  "workspace": {
3175
3110
  "char": "w",
@@ -3183,7 +3118,7 @@
3183
3118
  },
3184
3119
  "hasDynamicHelp": false,
3185
3120
  "hiddenAliases": [],
3186
- "id": "tenant:impersonate",
3121
+ "id": "tenant:deploy_platform",
3187
3122
  "pluginAlias": "@xano/cli",
3188
3123
  "pluginName": "@xano/cli",
3189
3124
  "pluginType": "core",
@@ -3194,24 +3129,17 @@
3194
3129
  "dist",
3195
3130
  "commands",
3196
3131
  "tenant",
3197
- "impersonate",
3132
+ "deploy_platform",
3198
3133
  "index.js"
3199
3134
  ]
3200
3135
  },
3201
- "tenant:deploy_platform": {
3136
+ "tenant:list": {
3202
3137
  "aliases": [],
3203
- "args": {
3204
- "tenant_name": {
3205
- "description": "Tenant name to deploy to",
3206
- "name": "tenant_name",
3207
- "required": true
3208
- }
3209
- },
3210
- "description": "Deploy a platform version to a tenant",
3138
+ "args": {},
3139
+ "description": "List all tenants in a workspace",
3211
3140
  "examples": [
3212
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
3213
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json",
3214
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 --license ./license.yaml"
3141
+ "$ xano tenant list\nTenants in workspace 5:\n - My Tenant (my-tenant) [ok] - tier1\n Cluster: us-central\n Release: r1\n Platform: default\n - Staging (staging) [ok] - tier1\n Cluster: us-central\n Release: r1\n",
3142
+ "$ xano tenant list -w 5 --output json"
3215
3143
  ],
3216
3144
  "flags": {
3217
3145
  "profile": {
@@ -3233,15 +3161,6 @@
3233
3161
  "allowNo": false,
3234
3162
  "type": "boolean"
3235
3163
  },
3236
- "license": {
3237
- "char": "l",
3238
- "description": "Path to a license override file to apply after deploy",
3239
- "name": "license",
3240
- "required": false,
3241
- "hasDynamicHelp": false,
3242
- "multiple": false,
3243
- "type": "option"
3244
- },
3245
3164
  "output": {
3246
3165
  "char": "o",
3247
3166
  "description": "Output format",
@@ -3256,14 +3175,6 @@
3256
3175
  ],
3257
3176
  "type": "option"
3258
3177
  },
3259
- "platform_id": {
3260
- "description": "Platform ID to deploy",
3261
- "name": "platform_id",
3262
- "required": true,
3263
- "hasDynamicHelp": false,
3264
- "multiple": false,
3265
- "type": "option"
3266
- },
3267
3178
  "workspace": {
3268
3179
  "char": "w",
3269
3180
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3276,7 +3187,7 @@
3276
3187
  },
3277
3188
  "hasDynamicHelp": false,
3278
3189
  "hiddenAliases": [],
3279
- "id": "tenant:deploy_platform",
3190
+ "id": "tenant:list",
3280
3191
  "pluginAlias": "@xano/cli",
3281
3192
  "pluginName": "@xano/cli",
3282
3193
  "pluginType": "core",
@@ -3287,7 +3198,7 @@
3287
3198
  "dist",
3288
3199
  "commands",
3289
3200
  "tenant",
3290
- "deploy_platform",
3201
+ "list",
3291
3202
  "index.js"
3292
3203
  ]
3293
3204
  },
@@ -3384,13 +3295,19 @@
3384
3295
  "index.js"
3385
3296
  ]
3386
3297
  },
3387
- "tenant:list": {
3298
+ "tenant:impersonate": {
3388
3299
  "aliases": [],
3389
- "args": {},
3390
- "description": "List all tenants in a workspace",
3300
+ "args": {
3301
+ "tenant_name": {
3302
+ "description": "Tenant name to impersonate",
3303
+ "name": "tenant_name",
3304
+ "required": true
3305
+ }
3306
+ },
3307
+ "description": "Impersonate a tenant and open it in the browser",
3391
3308
  "examples": [
3392
- "$ xano tenant list\nTenants in workspace 5:\n - My Tenant (my-tenant) [ok] - tier1\n Cluster: us-central\n Release: r1\n Platform: default\n - Staging (staging) [ok] - tier1\n Cluster: us-central\n Release: r1\n",
3393
- "$ xano tenant list -w 5 --output json"
3309
+ "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
3310
+ "$ xano tenant impersonate my-tenant -o json"
3394
3311
  ],
3395
3312
  "flags": {
3396
3313
  "profile": {
@@ -3426,6 +3343,14 @@
3426
3343
  ],
3427
3344
  "type": "option"
3428
3345
  },
3346
+ "url-only": {
3347
+ "char": "u",
3348
+ "description": "Print the URL without opening the browser",
3349
+ "name": "url-only",
3350
+ "required": false,
3351
+ "allowNo": false,
3352
+ "type": "boolean"
3353
+ },
3429
3354
  "workspace": {
3430
3355
  "char": "w",
3431
3356
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3438,7 +3363,7 @@
3438
3363
  },
3439
3364
  "hasDynamicHelp": false,
3440
3365
  "hiddenAliases": [],
3441
- "id": "tenant:list",
3366
+ "id": "tenant:impersonate",
3442
3367
  "pluginAlias": "@xano/cli",
3443
3368
  "pluginName": "@xano/cli",
3444
3369
  "pluginType": "core",
@@ -3449,27 +3374,23 @@
3449
3374
  "dist",
3450
3375
  "commands",
3451
3376
  "tenant",
3452
- "list",
3377
+ "impersonate",
3453
3378
  "index.js"
3454
3379
  ]
3455
3380
  },
3456
- "tenant:push": {
3381
+ "tenant:get": {
3457
3382
  "aliases": [],
3458
3383
  "args": {
3459
- "directory": {
3460
- "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3461
- "name": "directory",
3384
+ "tenant_name": {
3385
+ "description": "Tenant name to retrieve",
3386
+ "name": "tenant_name",
3462
3387
  "required": true
3463
3388
  }
3464
3389
  },
3465
- "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3390
+ "description": "Get details of a specific tenant",
3466
3391
  "examples": [
3467
- "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
3468
- "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
3469
- "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
3470
- "$ xano tenant push ./my-workspace -t my-tenant --records\nInclude table records in import\n",
3471
- "$ xano tenant push ./my-workspace -t my-tenant --env\nInclude environment variables in import\n",
3472
- "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
3392
+ "$ xano tenant get t1234-abcd-xyz1\nTenant: My Tenant (my-tenant)\n State: ok\n License: tier1\n Domain: my-tenant.xano.io\n Cluster: default\n Release: v1.0\n",
3393
+ "$ xano tenant get t1234-abcd-xyz1 -w 5 -o json"
3473
3394
  ],
3474
3395
  "flags": {
3475
3396
  "profile": {
@@ -3491,46 +3412,23 @@
3491
3412
  "allowNo": false,
3492
3413
  "type": "boolean"
3493
3414
  },
3494
- "env": {
3495
- "description": "Include environment variables in import",
3496
- "name": "env",
3497
- "required": false,
3498
- "allowNo": false,
3499
- "type": "boolean"
3500
- },
3501
- "records": {
3502
- "description": "Include records in import",
3503
- "name": "records",
3415
+ "output": {
3416
+ "char": "o",
3417
+ "description": "Output format",
3418
+ "name": "output",
3504
3419
  "required": false,
3505
- "allowNo": false,
3506
- "type": "boolean"
3507
- },
3508
- "tenant": {
3509
- "char": "t",
3510
- "description": "Tenant name to push to",
3511
- "name": "tenant",
3512
- "required": true,
3420
+ "default": "summary",
3513
3421
  "hasDynamicHelp": false,
3514
3422
  "multiple": false,
3423
+ "options": [
3424
+ "summary",
3425
+ "json"
3426
+ ],
3515
3427
  "type": "option"
3516
3428
  },
3517
- "transaction": {
3518
- "description": "Wrap import in a database transaction (use --no-transaction for debugging purposes)",
3519
- "name": "transaction",
3520
- "required": false,
3521
- "allowNo": true,
3522
- "type": "boolean"
3523
- },
3524
- "truncate": {
3525
- "description": "Truncate all table records before importing",
3526
- "name": "truncate",
3527
- "required": false,
3528
- "allowNo": false,
3529
- "type": "boolean"
3530
- },
3531
3429
  "workspace": {
3532
3430
  "char": "w",
3533
- "description": "Workspace ID (optional if set in profile)",
3431
+ "description": "Workspace ID (uses profile workspace if not provided)",
3534
3432
  "name": "workspace",
3535
3433
  "required": false,
3536
3434
  "hasDynamicHelp": false,
@@ -3540,7 +3438,7 @@
3540
3438
  },
3541
3439
  "hasDynamicHelp": false,
3542
3440
  "hiddenAliases": [],
3543
- "id": "tenant:push",
3441
+ "id": "tenant:get",
3544
3442
  "pluginAlias": "@xano/cli",
3545
3443
  "pluginName": "@xano/cli",
3546
3444
  "pluginType": "core",
@@ -3551,7 +3449,7 @@
3551
3449
  "dist",
3552
3450
  "commands",
3553
3451
  "tenant",
3554
- "push",
3452
+ "get",
3555
3453
  "index.js"
3556
3454
  ]
3557
3455
  },
@@ -3722,13 +3620,23 @@
3722
3620
  "index.js"
3723
3621
  ]
3724
3622
  },
3725
- "unit_test:run_all": {
3623
+ "tenant:push": {
3726
3624
  "aliases": [],
3727
- "args": {},
3728
- "description": "Run all unit tests in a workspace",
3625
+ "args": {
3626
+ "directory": {
3627
+ "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3628
+ "name": "directory",
3629
+ "required": true
3630
+ }
3631
+ },
3632
+ "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3729
3633
  "examples": [
3730
- "$ xano unit-test run-all\nRunning 5 unit tests...\n\nPASS my-test [function: math]\nPASS auth-check [query: /user/login]\nFAIL data-validation [function: validate]\n Error: assertion failed\n\nResults: 2 passed, 1 failed\n",
3731
- "$ xano unit-test run-all --obj-type function -o json"
3634
+ "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
3635
+ "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
3636
+ "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
3637
+ "$ xano tenant push ./my-workspace -t my-tenant --records\nInclude table records in import\n",
3638
+ "$ xano tenant push ./my-workspace -t my-tenant --env\nInclude environment variables in import\n",
3639
+ "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
3732
3640
  ],
3733
3641
  "flags": {
3734
3642
  "profile": {
@@ -3750,18 +3658,110 @@
3750
3658
  "allowNo": false,
3751
3659
  "type": "boolean"
3752
3660
  },
3753
- "branch": {
3754
- "char": "b",
3755
- "description": "Filter by branch name",
3756
- "name": "branch",
3661
+ "env": {
3662
+ "description": "Include environment variables in import",
3663
+ "name": "env",
3757
3664
  "required": false,
3758
- "hasDynamicHelp": false,
3759
- "multiple": false,
3760
- "type": "option"
3665
+ "allowNo": false,
3666
+ "type": "boolean"
3761
3667
  },
3762
- "obj-type": {
3763
- "description": "Filter by object type",
3764
- "name": "obj-type",
3668
+ "records": {
3669
+ "description": "Include records in import",
3670
+ "name": "records",
3671
+ "required": false,
3672
+ "allowNo": false,
3673
+ "type": "boolean"
3674
+ },
3675
+ "tenant": {
3676
+ "char": "t",
3677
+ "description": "Tenant name to push to",
3678
+ "name": "tenant",
3679
+ "required": true,
3680
+ "hasDynamicHelp": false,
3681
+ "multiple": false,
3682
+ "type": "option"
3683
+ },
3684
+ "transaction": {
3685
+ "description": "Wrap import in a database transaction (use --no-transaction for debugging purposes)",
3686
+ "name": "transaction",
3687
+ "required": false,
3688
+ "allowNo": true,
3689
+ "type": "boolean"
3690
+ },
3691
+ "truncate": {
3692
+ "description": "Truncate all table records before importing",
3693
+ "name": "truncate",
3694
+ "required": false,
3695
+ "allowNo": false,
3696
+ "type": "boolean"
3697
+ },
3698
+ "workspace": {
3699
+ "char": "w",
3700
+ "description": "Workspace ID (optional if set in profile)",
3701
+ "name": "workspace",
3702
+ "required": false,
3703
+ "hasDynamicHelp": false,
3704
+ "multiple": false,
3705
+ "type": "option"
3706
+ }
3707
+ },
3708
+ "hasDynamicHelp": false,
3709
+ "hiddenAliases": [],
3710
+ "id": "tenant:push",
3711
+ "pluginAlias": "@xano/cli",
3712
+ "pluginName": "@xano/cli",
3713
+ "pluginType": "core",
3714
+ "strict": true,
3715
+ "enableJsonFlag": false,
3716
+ "isESM": true,
3717
+ "relativePath": [
3718
+ "dist",
3719
+ "commands",
3720
+ "tenant",
3721
+ "push",
3722
+ "index.js"
3723
+ ]
3724
+ },
3725
+ "unit_test:run_all": {
3726
+ "aliases": [],
3727
+ "args": {},
3728
+ "description": "Run all unit tests in a workspace",
3729
+ "examples": [
3730
+ "$ xano unit-test run-all\nRunning 5 unit tests...\n\nPASS my-test [function: math]\nPASS auth-check [query: /user/login]\nFAIL data-validation [function: validate]\n Error: assertion failed\n\nResults: 2 passed, 1 failed\n",
3731
+ "$ xano unit-test run-all --obj-type function -o json"
3732
+ ],
3733
+ "flags": {
3734
+ "profile": {
3735
+ "char": "p",
3736
+ "description": "Profile to use (uses default profile if not specified)",
3737
+ "env": "XANO_PROFILE",
3738
+ "name": "profile",
3739
+ "required": false,
3740
+ "hasDynamicHelp": false,
3741
+ "multiple": false,
3742
+ "type": "option"
3743
+ },
3744
+ "verbose": {
3745
+ "char": "v",
3746
+ "description": "Show detailed request/response information",
3747
+ "env": "XANO_VERBOSE",
3748
+ "name": "verbose",
3749
+ "required": false,
3750
+ "allowNo": false,
3751
+ "type": "boolean"
3752
+ },
3753
+ "branch": {
3754
+ "char": "b",
3755
+ "description": "Filter by branch name",
3756
+ "name": "branch",
3757
+ "required": false,
3758
+ "hasDynamicHelp": false,
3759
+ "multiple": false,
3760
+ "type": "option"
3761
+ },
3762
+ "obj-type": {
3763
+ "description": "Filter by object type",
3764
+ "name": "obj-type",
3765
3765
  "required": false,
3766
3766
  "hasDynamicHelp": false,
3767
3767
  "multiple": false,
@@ -3897,14 +3897,19 @@
3897
3897
  "index.js"
3898
3898
  ]
3899
3899
  },
3900
- "workflow_test:list": {
3900
+ "workflow_test:delete": {
3901
3901
  "aliases": [],
3902
- "args": {},
3903
- "description": "List all workflow tests in a workspace",
3902
+ "args": {
3903
+ "workflow_test_id": {
3904
+ "description": "ID of the workflow test to delete",
3905
+ "name": "workflow_test_id",
3906
+ "required": true
3907
+ }
3908
+ },
3909
+ "description": "Delete a workflow test",
3904
3910
  "examples": [
3905
- "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
3906
- "$ xano workflow-test list -w 5 --output json",
3907
- "$ xano workflow-test list --branch main"
3911
+ "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
3912
+ "$ xano workflow-test delete 1 --force"
3908
3913
  ],
3909
3914
  "flags": {
3910
3915
  "profile": {
@@ -3926,14 +3931,13 @@
3926
3931
  "allowNo": false,
3927
3932
  "type": "boolean"
3928
3933
  },
3929
- "branch": {
3930
- "char": "b",
3931
- "description": "Filter by branch name",
3932
- "name": "branch",
3934
+ "force": {
3935
+ "char": "f",
3936
+ "description": "Skip confirmation prompt",
3937
+ "name": "force",
3933
3938
  "required": false,
3934
- "hasDynamicHelp": false,
3935
- "multiple": false,
3936
- "type": "option"
3939
+ "allowNo": false,
3940
+ "type": "boolean"
3937
3941
  },
3938
3942
  "output": {
3939
3943
  "char": "o",
@@ -3961,7 +3965,7 @@
3961
3965
  },
3962
3966
  "hasDynamicHelp": false,
3963
3967
  "hiddenAliases": [],
3964
- "id": "workflow_test:list",
3968
+ "id": "workflow_test:delete",
3965
3969
  "pluginAlias": "@xano/cli",
3966
3970
  "pluginName": "@xano/cli",
3967
3971
  "pluginType": "core",
@@ -3972,23 +3976,18 @@
3972
3976
  "dist",
3973
3977
  "commands",
3974
3978
  "workflow_test",
3975
- "list",
3979
+ "delete",
3976
3980
  "index.js"
3977
3981
  ]
3978
3982
  },
3979
- "workflow_test:run": {
3983
+ "workflow_test:list": {
3980
3984
  "aliases": [],
3981
- "args": {
3982
- "workflow_test_id": {
3983
- "description": "ID of the workflow test to run",
3984
- "name": "workflow_test_id",
3985
- "required": true
3986
- }
3987
- },
3988
- "description": "Run a workflow test",
3985
+ "args": {},
3986
+ "description": "List all workflow tests in a workspace",
3989
3987
  "examples": [
3990
- "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
3991
- "$ xano workflow-test run 1 -o json"
3988
+ "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
3989
+ "$ xano workflow-test list -w 5 --output json",
3990
+ "$ xano workflow-test list --branch main"
3992
3991
  ],
3993
3992
  "flags": {
3994
3993
  "profile": {
@@ -4010,6 +4009,15 @@
4010
4009
  "allowNo": false,
4011
4010
  "type": "boolean"
4012
4011
  },
4012
+ "branch": {
4013
+ "char": "b",
4014
+ "description": "Filter by branch name",
4015
+ "name": "branch",
4016
+ "required": false,
4017
+ "hasDynamicHelp": false,
4018
+ "multiple": false,
4019
+ "type": "option"
4020
+ },
4013
4021
  "output": {
4014
4022
  "char": "o",
4015
4023
  "description": "Output format",
@@ -4036,7 +4044,7 @@
4036
4044
  },
4037
4045
  "hasDynamicHelp": false,
4038
4046
  "hiddenAliases": [],
4039
- "id": "workflow_test:run",
4047
+ "id": "workflow_test:list",
4040
4048
  "pluginAlias": "@xano/cli",
4041
4049
  "pluginName": "@xano/cli",
4042
4050
  "pluginType": "core",
@@ -4047,7 +4055,7 @@
4047
4055
  "dist",
4048
4056
  "commands",
4049
4057
  "workflow_test",
4050
- "run",
4058
+ "list",
4051
4059
  "index.js"
4052
4060
  ]
4053
4061
  },
@@ -4205,21 +4213,19 @@
4205
4213
  "index.js"
4206
4214
  ]
4207
4215
  },
4208
- "workspace:edit": {
4216
+ "workflow_test:run": {
4209
4217
  "aliases": [],
4210
4218
  "args": {
4211
- "workspace_id": {
4212
- "description": "Workspace ID to edit (uses profile workspace if not provided)",
4213
- "name": "workspace_id",
4214
- "required": false
4219
+ "workflow_test_id": {
4220
+ "description": "ID of the workflow test to run",
4221
+ "name": "workflow_test_id",
4222
+ "required": true
4215
4223
  }
4216
4224
  },
4217
- "description": "Edit an existing workspace via the Xano Metadata API",
4225
+ "description": "Run a workflow test",
4218
4226
  "examples": [
4219
- "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
4220
- "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
4221
- "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
4222
- "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
4227
+ "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
4228
+ "$ xano workflow-test run 1 -o json"
4223
4229
  ],
4224
4230
  "flags": {
4225
4231
  "profile": {
@@ -4241,24 +4247,6 @@
4241
4247
  "allowNo": false,
4242
4248
  "type": "boolean"
4243
4249
  },
4244
- "description": {
4245
- "char": "d",
4246
- "description": "New description for the workspace",
4247
- "name": "description",
4248
- "required": false,
4249
- "hasDynamicHelp": false,
4250
- "multiple": false,
4251
- "type": "option"
4252
- },
4253
- "name": {
4254
- "char": "n",
4255
- "description": "New name for the workspace",
4256
- "name": "name",
4257
- "required": false,
4258
- "hasDynamicHelp": false,
4259
- "multiple": false,
4260
- "type": "option"
4261
- },
4262
4250
  "output": {
4263
4251
  "char": "o",
4264
4252
  "description": "Output format",
@@ -4273,24 +4261,19 @@
4273
4261
  ],
4274
4262
  "type": "option"
4275
4263
  },
4276
- "require-token": {
4277
- "description": "Whether to require a token for documentation access",
4278
- "name": "require-token",
4279
- "required": false,
4280
- "allowNo": true,
4281
- "type": "boolean"
4282
- },
4283
- "swagger": {
4284
- "description": "Enable or disable swagger documentation",
4285
- "name": "swagger",
4264
+ "workspace": {
4265
+ "char": "w",
4266
+ "description": "Workspace ID (uses profile workspace if not provided)",
4267
+ "name": "workspace",
4286
4268
  "required": false,
4287
- "allowNo": true,
4288
- "type": "boolean"
4269
+ "hasDynamicHelp": false,
4270
+ "multiple": false,
4271
+ "type": "option"
4289
4272
  }
4290
4273
  },
4291
4274
  "hasDynamicHelp": false,
4292
4275
  "hiddenAliases": [],
4293
- "id": "workspace:edit",
4276
+ "id": "workflow_test:run",
4294
4277
  "pluginAlias": "@xano/cli",
4295
4278
  "pluginName": "@xano/cli",
4296
4279
  "pluginType": "core",
@@ -4300,8 +4283,8 @@
4300
4283
  "relativePath": [
4301
4284
  "dist",
4302
4285
  "commands",
4303
- "workspace",
4304
- "edit",
4286
+ "workflow_test",
4287
+ "run",
4305
4288
  "index.js"
4306
4289
  ]
4307
4290
  },
@@ -4447,19 +4430,21 @@
4447
4430
  "index.js"
4448
4431
  ]
4449
4432
  },
4450
- "workflow_test:delete": {
4433
+ "workspace:edit": {
4451
4434
  "aliases": [],
4452
4435
  "args": {
4453
- "workflow_test_id": {
4454
- "description": "ID of the workflow test to delete",
4455
- "name": "workflow_test_id",
4456
- "required": true
4436
+ "workspace_id": {
4437
+ "description": "Workspace ID to edit (uses profile workspace if not provided)",
4438
+ "name": "workspace_id",
4439
+ "required": false
4457
4440
  }
4458
4441
  },
4459
- "description": "Delete a workflow test",
4442
+ "description": "Edit an existing workspace via the Xano Metadata API",
4460
4443
  "examples": [
4461
- "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
4462
- "$ xano workflow-test delete 1 --force"
4444
+ "$ xano workspace edit 123 --name \"new-name\"\nUpdated workspace: new-name (ID: 123)\n",
4445
+ "$ xano workspace edit --name \"updated-workspace\" --description \"Updated description\"\nUpdated workspace: updated-workspace (ID: 123)\n Description: Updated description\n",
4446
+ "$ xano workspace edit 123 --swagger --require-token\nUpdated workspace: my-workspace (ID: 123)\n Swagger: enabled\n Require Token: true\n",
4447
+ "$ xano workspace edit 123 --no-swagger -o json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"swagger\": false\n}\n"
4463
4448
  ],
4464
4449
  "flags": {
4465
4450
  "profile": {
@@ -4481,85 +4466,24 @@
4481
4466
  "allowNo": false,
4482
4467
  "type": "boolean"
4483
4468
  },
4484
- "force": {
4485
- "char": "f",
4486
- "description": "Skip confirmation prompt",
4487
- "name": "force",
4488
- "required": false,
4489
- "allowNo": false,
4490
- "type": "boolean"
4491
- },
4492
- "output": {
4493
- "char": "o",
4494
- "description": "Output format",
4495
- "name": "output",
4469
+ "description": {
4470
+ "char": "d",
4471
+ "description": "New description for the workspace",
4472
+ "name": "description",
4496
4473
  "required": false,
4497
- "default": "summary",
4498
4474
  "hasDynamicHelp": false,
4499
4475
  "multiple": false,
4500
- "options": [
4501
- "summary",
4502
- "json"
4503
- ],
4504
4476
  "type": "option"
4505
4477
  },
4506
- "workspace": {
4507
- "char": "w",
4508
- "description": "Workspace ID (uses profile workspace if not provided)",
4509
- "name": "workspace",
4510
- "required": false,
4511
- "hasDynamicHelp": false,
4512
- "multiple": false,
4513
- "type": "option"
4514
- }
4515
- },
4516
- "hasDynamicHelp": false,
4517
- "hiddenAliases": [],
4518
- "id": "workflow_test:delete",
4519
- "pluginAlias": "@xano/cli",
4520
- "pluginName": "@xano/cli",
4521
- "pluginType": "core",
4522
- "strict": true,
4523
- "enableJsonFlag": false,
4524
- "isESM": true,
4525
- "relativePath": [
4526
- "dist",
4527
- "commands",
4528
- "workflow_test",
4529
- "delete",
4530
- "index.js"
4531
- ]
4532
- },
4533
- "workspace:list": {
4534
- "aliases": [],
4535
- "args": {},
4536
- "description": "List all workspaces from the Xano Metadata API",
4537
- "examples": [
4538
- "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4539
- "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4540
- "$ 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",
4541
- "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4542
- ],
4543
- "flags": {
4544
- "profile": {
4545
- "char": "p",
4546
- "description": "Profile to use (uses default profile if not specified)",
4547
- "env": "XANO_PROFILE",
4548
- "name": "profile",
4478
+ "name": {
4479
+ "char": "n",
4480
+ "description": "New name for the workspace",
4481
+ "name": "name",
4549
4482
  "required": false,
4550
4483
  "hasDynamicHelp": false,
4551
4484
  "multiple": false,
4552
4485
  "type": "option"
4553
4486
  },
4554
- "verbose": {
4555
- "char": "v",
4556
- "description": "Show detailed request/response information",
4557
- "env": "XANO_VERBOSE",
4558
- "name": "verbose",
4559
- "required": false,
4560
- "allowNo": false,
4561
- "type": "boolean"
4562
- },
4563
4487
  "output": {
4564
4488
  "char": "o",
4565
4489
  "description": "Output format",
@@ -4573,11 +4497,25 @@
4573
4497
  "json"
4574
4498
  ],
4575
4499
  "type": "option"
4500
+ },
4501
+ "require-token": {
4502
+ "description": "Whether to require a token for documentation access",
4503
+ "name": "require-token",
4504
+ "required": false,
4505
+ "allowNo": true,
4506
+ "type": "boolean"
4507
+ },
4508
+ "swagger": {
4509
+ "description": "Enable or disable swagger documentation",
4510
+ "name": "swagger",
4511
+ "required": false,
4512
+ "allowNo": true,
4513
+ "type": "boolean"
4576
4514
  }
4577
4515
  },
4578
4516
  "hasDynamicHelp": false,
4579
4517
  "hiddenAliases": [],
4580
- "id": "workspace:list",
4518
+ "id": "workspace:edit",
4581
4519
  "pluginAlias": "@xano/cli",
4582
4520
  "pluginName": "@xano/cli",
4583
4521
  "pluginType": "core",
@@ -4588,7 +4526,7 @@
4588
4526
  "dist",
4589
4527
  "commands",
4590
4528
  "workspace",
4591
- "list",
4529
+ "edit",
4592
4530
  "index.js"
4593
4531
  ]
4594
4532
  },
@@ -4695,16 +4633,16 @@
4695
4633
  "required": true
4696
4634
  }
4697
4635
  },
4698
- "description": "Push local documents to a workspace. Shows a preview of changes before pushing unless --force is specified. Use --dry-run to preview only.",
4636
+ "description": "Push local documents to a workspace. By default, only changed files are pushed (partial mode). Use --sync to push all files. Shows a preview of changes before pushing unless --force is specified. Use --dry-run to preview only.",
4699
4637
  "examples": [
4700
- "$ xano workspace push ./my-workspace\nShows preview of changes, requires confirmation\n",
4638
+ "$ xano workspace push ./my-workspace\nPush only changed files (default partial mode)\n",
4639
+ "$ xano workspace push ./my-workspace --sync\nPush all files to the workspace\n",
4640
+ "$ xano workspace push ./my-workspace --sync --delete\nPush all files and delete remote objects not included\n",
4701
4641
  "$ xano workspace push ./my-workspace --dry-run\nPreview changes without pushing\n",
4702
4642
  "$ xano workspace push ./my-workspace --force\nSkip preview and push immediately (for CI/CD)\n",
4703
- "$ xano workspace push ./my-workspace --delete\nShows preview including deletions, requires confirmation\n",
4704
4643
  "$ xano workspace push ./output -w 40\nPushed 15 documents from ./output\n",
4705
4644
  "$ xano workspace push ./backup --profile production\nPushed 58 documents from ./backup\n",
4706
4645
  "$ xano workspace push ./my-workspace -b dev\nPushed 42 documents from ./my-workspace\n",
4707
- "$ xano workspace push ./my-functions --partial\nPush some files without a workspace block (implies --no-delete)\n",
4708
4646
  "$ xano workspace push ./my-workspace --no-records\nPush schema only, skip importing table records\n",
4709
4647
  "$ xano workspace push ./my-workspace --no-env\nPush without overwriting environment variables\n",
4710
4648
  "$ xano workspace push ./my-workspace --truncate\nTruncate all table records before importing\n"
@@ -4739,7 +4677,7 @@
4739
4677
  "type": "option"
4740
4678
  },
4741
4679
  "delete": {
4742
- "description": "Delete workspace objects not included in the push",
4680
+ "description": "Delete workspace objects not included in the push (requires --sync)",
4743
4681
  "name": "delete",
4744
4682
  "required": false,
4745
4683
  "allowNo": false,
@@ -4759,9 +4697,9 @@
4759
4697
  "allowNo": false,
4760
4698
  "type": "boolean"
4761
4699
  },
4762
- "partial": {
4763
- "description": "Partial push — workspace block is not required, existing objects are kept (implies --no-delete)",
4764
- "name": "partial",
4700
+ "sync": {
4701
+ "description": "Full push — send all files, not just changed ones. Required for --delete.",
4702
+ "name": "sync",
4765
4703
  "required": false,
4766
4704
  "allowNo": false,
4767
4705
  "type": "boolean"
@@ -4773,9 +4711,9 @@
4773
4711
  "allowNo": false,
4774
4712
  "type": "boolean"
4775
4713
  },
4776
- "sync-guids": {
4777
- "description": "Write server-assigned GUIDs back to local files (use --no-sync-guids to skip)",
4778
- "name": "sync-guids",
4714
+ "guids": {
4715
+ "description": "Write server-assigned GUIDs back to local files (use --no-guids to skip)",
4716
+ "name": "guids",
4779
4717
  "required": false,
4780
4718
  "allowNo": true,
4781
4719
  "type": "boolean"
@@ -4828,6 +4766,68 @@
4828
4766
  "index.js"
4829
4767
  ]
4830
4768
  },
4769
+ "workspace:list": {
4770
+ "aliases": [],
4771
+ "args": {},
4772
+ "description": "List all workspaces from the Xano Metadata API",
4773
+ "examples": [
4774
+ "$ xano workspace:list\nAvailable workspaces:\n - workspace-1 (ID: 1)\n - workspace-2 (ID: 2)\n - workspace-3 (ID: 3)\n",
4775
+ "$ xano workspace:list --profile production\nAvailable workspaces:\n - my-app (ID: 1)\n - staging-env (ID: 2)\n",
4776
+ "$ 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",
4777
+ "$ xano workspace:list -p staging -o json\n{\n \"workspaces\": [\n {\n \"id\": 1,\n \"name\": \"my-app\"\n }\n ]\n}\n"
4778
+ ],
4779
+ "flags": {
4780
+ "profile": {
4781
+ "char": "p",
4782
+ "description": "Profile to use (uses default profile if not specified)",
4783
+ "env": "XANO_PROFILE",
4784
+ "name": "profile",
4785
+ "required": false,
4786
+ "hasDynamicHelp": false,
4787
+ "multiple": false,
4788
+ "type": "option"
4789
+ },
4790
+ "verbose": {
4791
+ "char": "v",
4792
+ "description": "Show detailed request/response information",
4793
+ "env": "XANO_VERBOSE",
4794
+ "name": "verbose",
4795
+ "required": false,
4796
+ "allowNo": false,
4797
+ "type": "boolean"
4798
+ },
4799
+ "output": {
4800
+ "char": "o",
4801
+ "description": "Output format",
4802
+ "name": "output",
4803
+ "required": false,
4804
+ "default": "summary",
4805
+ "hasDynamicHelp": false,
4806
+ "multiple": false,
4807
+ "options": [
4808
+ "summary",
4809
+ "json"
4810
+ ],
4811
+ "type": "option"
4812
+ }
4813
+ },
4814
+ "hasDynamicHelp": false,
4815
+ "hiddenAliases": [],
4816
+ "id": "workspace:list",
4817
+ "pluginAlias": "@xano/cli",
4818
+ "pluginName": "@xano/cli",
4819
+ "pluginType": "core",
4820
+ "strict": true,
4821
+ "enableJsonFlag": false,
4822
+ "isESM": true,
4823
+ "relativePath": [
4824
+ "dist",
4825
+ "commands",
4826
+ "workspace",
4827
+ "list",
4828
+ "index.js"
4829
+ ]
4830
+ },
4831
4831
  "static_host:build:create": {
4832
4832
  "aliases": [],
4833
4833
  "args": {
@@ -5028,26 +5028,13 @@
5028
5028
  "index.js"
5029
5029
  ]
5030
5030
  },
5031
- "static_host:build:get": {
5031
+ "profile:workspace:set": {
5032
5032
  "aliases": [],
5033
- "args": {
5034
- "build_id": {
5035
- "description": "Build ID",
5036
- "name": "build_id",
5037
- "required": true
5038
- },
5039
- "static_host": {
5040
- "description": "Static Host name",
5041
- "name": "static_host",
5042
- "required": true
5043
- }
5044
- },
5045
- "description": "Get details of a specific build for a static host",
5033
+ "args": {},
5034
+ "description": "Interactively select a workspace for a profile",
5046
5035
  "examples": [
5047
- "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
5048
- "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
5049
- "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
5050
- "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
5036
+ "$ xano profile workspace set\nFetching workspaces...\n? Select a workspace: My Workspace\nWorkspace updated to 'My Workspace' (abc123) on profile 'default'\n",
5037
+ "$ xano profile workspace set -p production\nFetching workspaces...\n? Select a workspace: Production API\nWorkspace updated to 'Production API' (xyz789) on profile 'production'\n"
5051
5038
  ],
5052
5039
  "flags": {
5053
5040
  "profile": {
@@ -5068,34 +5055,11 @@
5068
5055
  "required": false,
5069
5056
  "allowNo": false,
5070
5057
  "type": "boolean"
5071
- },
5072
- "output": {
5073
- "char": "o",
5074
- "description": "Output format",
5075
- "name": "output",
5076
- "required": false,
5077
- "default": "summary",
5078
- "hasDynamicHelp": false,
5079
- "multiple": false,
5080
- "options": [
5081
- "summary",
5082
- "json"
5083
- ],
5084
- "type": "option"
5085
- },
5086
- "workspace": {
5087
- "char": "w",
5088
- "description": "Workspace ID (optional if set in profile)",
5089
- "name": "workspace",
5090
- "required": false,
5091
- "hasDynamicHelp": false,
5092
- "multiple": false,
5093
- "type": "option"
5094
5058
  }
5095
5059
  },
5096
5060
  "hasDynamicHelp": false,
5097
5061
  "hiddenAliases": [],
5098
- "id": "static_host:build:get",
5062
+ "id": "profile:workspace:set",
5099
5063
  "pluginAlias": "@xano/cli",
5100
5064
  "pluginName": "@xano/cli",
5101
5065
  "pluginType": "core",
@@ -5105,26 +5069,19 @@
5105
5069
  "relativePath": [
5106
5070
  "dist",
5107
5071
  "commands",
5108
- "static_host",
5109
- "build",
5110
- "get",
5072
+ "profile",
5073
+ "workspace",
5074
+ "set",
5111
5075
  "index.js"
5112
5076
  ]
5113
5077
  },
5114
- "tenant:backup:delete": {
5078
+ "tenant:cluster:create": {
5115
5079
  "aliases": [],
5116
- "args": {
5117
- "tenant_name": {
5118
- "description": "Tenant name that owns the backup",
5119
- "name": "tenant_name",
5120
- "required": true
5121
- }
5122
- },
5123
- "description": "Delete a tenant backup permanently. This action cannot be undone.",
5080
+ "args": {},
5081
+ "description": "Create a new tenant cluster",
5124
5082
  "examples": [
5125
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to delete backup #10? This action cannot be undone. (y/N) y\nDeleted backup #10\n",
5126
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5127
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
5083
+ "$ xano tenant cluster create --name \"us-east-1\" --credentials_file ./kubeconfig.yaml\nCreated tenant cluster: us-east-1 (standard) - ID: 3\n",
5084
+ "$ xano tenant cluster create --name \"eu-west-1\" --credentials \"...\" --type run --description \"EU run cluster\" -o json"
5128
5085
  ],
5129
5086
  "flags": {
5130
5087
  "profile": {
@@ -5146,21 +5103,53 @@
5146
5103
  "allowNo": false,
5147
5104
  "type": "boolean"
5148
5105
  },
5149
- "backup_id": {
5150
- "description": "Backup ID to delete",
5151
- "name": "backup_id",
5152
- "required": true,
5106
+ "credentials": {
5107
+ "description": "Kubeconfig credentials (raw text)",
5108
+ "exclusive": [
5109
+ "credentials_file"
5110
+ ],
5111
+ "name": "credentials",
5112
+ "required": false,
5153
5113
  "hasDynamicHelp": false,
5154
5114
  "multiple": false,
5155
5115
  "type": "option"
5156
5116
  },
5157
- "force": {
5158
- "char": "f",
5159
- "description": "Skip confirmation prompt",
5160
- "name": "force",
5117
+ "credentials_file": {
5118
+ "description": "Path to kubeconfig credentials file",
5119
+ "exclusive": [
5120
+ "credentials"
5121
+ ],
5122
+ "name": "credentials_file",
5161
5123
  "required": false,
5162
- "allowNo": false,
5163
- "type": "boolean"
5124
+ "hasDynamicHelp": false,
5125
+ "multiple": false,
5126
+ "type": "option"
5127
+ },
5128
+ "description": {
5129
+ "char": "d",
5130
+ "description": "Cluster description",
5131
+ "name": "description",
5132
+ "required": false,
5133
+ "hasDynamicHelp": false,
5134
+ "multiple": false,
5135
+ "type": "option"
5136
+ },
5137
+ "domain": {
5138
+ "description": "Custom domain for the cluster",
5139
+ "name": "domain",
5140
+ "required": false,
5141
+ "hasDynamicHelp": false,
5142
+ "multiple": false,
5143
+ "type": "option"
5144
+ },
5145
+ "name": {
5146
+ "char": "n",
5147
+ "description": "Cluster name",
5148
+ "name": "name",
5149
+ "required": true,
5150
+ "hasDynamicHelp": false,
5151
+ "multiple": false,
5152
+ "type": "option"
5164
5153
  },
5165
5154
  "output": {
5166
5155
  "char": "o",
@@ -5176,19 +5165,23 @@
5176
5165
  ],
5177
5166
  "type": "option"
5178
5167
  },
5179
- "workspace": {
5180
- "char": "w",
5181
- "description": "Workspace ID (uses profile workspace if not provided)",
5182
- "name": "workspace",
5168
+ "type": {
5169
+ "description": "Cluster type",
5170
+ "name": "type",
5183
5171
  "required": false,
5172
+ "default": "standard",
5184
5173
  "hasDynamicHelp": false,
5185
5174
  "multiple": false,
5175
+ "options": [
5176
+ "standard",
5177
+ "run"
5178
+ ],
5186
5179
  "type": "option"
5187
5180
  }
5188
5181
  },
5189
5182
  "hasDynamicHelp": false,
5190
5183
  "hiddenAliases": [],
5191
- "id": "tenant:backup:delete",
5184
+ "id": "tenant:cluster:create",
5192
5185
  "pluginAlias": "@xano/cli",
5193
5186
  "pluginName": "@xano/cli",
5194
5187
  "pluginType": "core",
@@ -5199,25 +5192,31 @@
5199
5192
  "dist",
5200
5193
  "commands",
5201
5194
  "tenant",
5202
- "backup",
5203
- "delete",
5195
+ "cluster",
5196
+ "create",
5204
5197
  "index.js"
5205
5198
  ]
5206
5199
  },
5207
- "tenant:backup:export": {
5200
+ "static_host:build:get": {
5208
5201
  "aliases": [],
5209
5202
  "args": {
5210
- "tenant_name": {
5211
- "description": "Tenant name to export backup from",
5212
- "name": "tenant_name",
5203
+ "build_id": {
5204
+ "description": "Build ID",
5205
+ "name": "build_id",
5206
+ "required": true
5207
+ },
5208
+ "static_host": {
5209
+ "description": "Static Host name",
5210
+ "name": "static_host",
5213
5211
  "required": true
5214
5212
  }
5215
5213
  },
5216
- "description": "Export (download) a tenant backup to a local file",
5214
+ "description": "Get details of a specific build for a static host",
5217
5215
  "examples": [
5218
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
5219
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
5220
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5216
+ "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
5217
+ "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
5218
+ "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
5219
+ "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
5221
5220
  ],
5222
5221
  "flags": {
5223
5222
  "profile": {
@@ -5239,18 +5238,10 @@
5239
5238
  "allowNo": false,
5240
5239
  "type": "boolean"
5241
5240
  },
5242
- "backup_id": {
5243
- "description": "Backup ID to export",
5244
- "name": "backup_id",
5245
- "required": true,
5246
- "hasDynamicHelp": false,
5247
- "multiple": false,
5248
- "type": "option"
5249
- },
5250
- "format": {
5241
+ "output": {
5251
5242
  "char": "o",
5252
5243
  "description": "Output format",
5253
- "name": "format",
5244
+ "name": "output",
5254
5245
  "required": false,
5255
5246
  "default": "summary",
5256
5247
  "hasDynamicHelp": false,
@@ -5261,17 +5252,9 @@
5261
5252
  ],
5262
5253
  "type": "option"
5263
5254
  },
5264
- "output": {
5265
- "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5266
- "name": "output",
5267
- "required": false,
5268
- "hasDynamicHelp": false,
5269
- "multiple": false,
5270
- "type": "option"
5271
- },
5272
5255
  "workspace": {
5273
5256
  "char": "w",
5274
- "description": "Workspace ID (uses profile workspace if not provided)",
5257
+ "description": "Workspace ID (optional if set in profile)",
5275
5258
  "name": "workspace",
5276
5259
  "required": false,
5277
5260
  "hasDynamicHelp": false,
@@ -5281,7 +5264,7 @@
5281
5264
  },
5282
5265
  "hasDynamicHelp": false,
5283
5266
  "hiddenAliases": [],
5284
- "id": "tenant:backup:export",
5267
+ "id": "static_host:build:get",
5285
5268
  "pluginAlias": "@xano/cli",
5286
5269
  "pluginName": "@xano/cli",
5287
5270
  "pluginType": "core",
@@ -5291,25 +5274,26 @@
5291
5274
  "relativePath": [
5292
5275
  "dist",
5293
5276
  "commands",
5294
- "tenant",
5295
- "backup",
5296
- "export",
5277
+ "static_host",
5278
+ "build",
5279
+ "get",
5297
5280
  "index.js"
5298
5281
  ]
5299
5282
  },
5300
- "tenant:backup:import": {
5283
+ "tenant:cluster:delete": {
5301
5284
  "aliases": [],
5302
5285
  "args": {
5303
- "tenant_name": {
5304
- "description": "Tenant name to import backup into",
5305
- "name": "tenant_name",
5286
+ "cluster_id": {
5287
+ "description": "Cluster ID to delete",
5288
+ "name": "cluster_id",
5306
5289
  "required": true
5307
5290
  }
5308
5291
  },
5309
- "description": "Import a backup file into a tenant",
5292
+ "description": "Delete a tenant cluster. This action cannot be undone.",
5310
5293
  "examples": [
5311
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5312
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5294
+ "$ xano tenant cluster delete 3\nAre you sure you want to delete tenant cluster 3? This action cannot be undone. (y/N) y\nTenant cluster 3 deleted successfully\n",
5295
+ "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5296
+ "$ xano tenant cluster delete 3 -f -o json"
5313
5297
  ],
5314
5298
  "flags": {
5315
5299
  "profile": {
@@ -5331,24 +5315,13 @@
5331
5315
  "allowNo": false,
5332
5316
  "type": "boolean"
5333
5317
  },
5334
- "description": {
5335
- "char": "d",
5336
- "description": "Backup description",
5337
- "name": "description",
5338
- "required": false,
5339
- "default": "",
5340
- "hasDynamicHelp": false,
5341
- "multiple": false,
5342
- "type": "option"
5343
- },
5344
- "file": {
5318
+ "force": {
5345
5319
  "char": "f",
5346
- "description": "Path to the backup file (.tar.gz)",
5347
- "name": "file",
5348
- "required": true,
5349
- "hasDynamicHelp": false,
5350
- "multiple": false,
5351
- "type": "option"
5320
+ "description": "Skip confirmation prompt",
5321
+ "name": "force",
5322
+ "required": false,
5323
+ "allowNo": false,
5324
+ "type": "boolean"
5352
5325
  },
5353
5326
  "output": {
5354
5327
  "char": "o",
@@ -5363,20 +5336,11 @@
5363
5336
  "json"
5364
5337
  ],
5365
5338
  "type": "option"
5366
- },
5367
- "workspace": {
5368
- "char": "w",
5369
- "description": "Workspace ID (uses profile workspace if not provided)",
5370
- "name": "workspace",
5371
- "required": false,
5372
- "hasDynamicHelp": false,
5373
- "multiple": false,
5374
- "type": "option"
5375
5339
  }
5376
5340
  },
5377
5341
  "hasDynamicHelp": false,
5378
5342
  "hiddenAliases": [],
5379
- "id": "tenant:backup:import",
5343
+ "id": "tenant:cluster:delete",
5380
5344
  "pluginAlias": "@xano/cli",
5381
5345
  "pluginName": "@xano/cli",
5382
5346
  "pluginType": "core",
@@ -5387,24 +5351,24 @@
5387
5351
  "dist",
5388
5352
  "commands",
5389
5353
  "tenant",
5390
- "backup",
5391
- "import",
5354
+ "cluster",
5355
+ "delete",
5392
5356
  "index.js"
5393
5357
  ]
5394
5358
  },
5395
- "tenant:backup:list": {
5359
+ "tenant:cluster:get": {
5396
5360
  "aliases": [],
5397
5361
  "args": {
5398
- "tenant_name": {
5399
- "description": "Tenant name to list backups for",
5400
- "name": "tenant_name",
5362
+ "cluster_id": {
5363
+ "description": "Cluster ID to retrieve",
5364
+ "name": "cluster_id",
5401
5365
  "required": true
5402
5366
  }
5403
5367
  },
5404
- "description": "List backups for a tenant",
5368
+ "description": "Get details of a specific tenant cluster",
5405
5369
  "examples": [
5406
- "$ 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",
5407
- "$ xano tenant backup list t1234-abcd-xyz1 -o json"
5370
+ "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5371
+ "$ xano tenant cluster get 1 -o json"
5408
5372
  ],
5409
5373
  "flags": {
5410
5374
  "profile": {
@@ -5429,39 +5393,21 @@
5429
5393
  "output": {
5430
5394
  "char": "o",
5431
5395
  "description": "Output format",
5432
- "name": "output",
5433
- "required": false,
5434
- "default": "summary",
5435
- "hasDynamicHelp": false,
5436
- "multiple": false,
5437
- "options": [
5438
- "summary",
5439
- "json"
5440
- ],
5441
- "type": "option"
5442
- },
5443
- "page": {
5444
- "description": "Page number for pagination",
5445
- "name": "page",
5446
- "required": false,
5447
- "default": 1,
5448
- "hasDynamicHelp": false,
5449
- "multiple": false,
5450
- "type": "option"
5451
- },
5452
- "workspace": {
5453
- "char": "w",
5454
- "description": "Workspace ID (uses profile workspace if not provided)",
5455
- "name": "workspace",
5396
+ "name": "output",
5456
5397
  "required": false,
5398
+ "default": "summary",
5457
5399
  "hasDynamicHelp": false,
5458
5400
  "multiple": false,
5401
+ "options": [
5402
+ "summary",
5403
+ "json"
5404
+ ],
5459
5405
  "type": "option"
5460
5406
  }
5461
5407
  },
5462
5408
  "hasDynamicHelp": false,
5463
5409
  "hiddenAliases": [],
5464
- "id": "tenant:backup:list",
5410
+ "id": "tenant:cluster:get",
5465
5411
  "pluginAlias": "@xano/cli",
5466
5412
  "pluginName": "@xano/cli",
5467
5413
  "pluginType": "core",
@@ -5472,24 +5418,24 @@
5472
5418
  "dist",
5473
5419
  "commands",
5474
5420
  "tenant",
5475
- "backup",
5476
- "list",
5421
+ "cluster",
5422
+ "get",
5477
5423
  "index.js"
5478
5424
  ]
5479
5425
  },
5480
- "tenant:backup:restore": {
5426
+ "tenant:cluster:edit": {
5481
5427
  "aliases": [],
5482
5428
  "args": {
5483
- "tenant_name": {
5484
- "description": "Tenant name to restore",
5485
- "name": "tenant_name",
5429
+ "cluster_id": {
5430
+ "description": "Cluster ID to edit",
5431
+ "name": "cluster_id",
5486
5432
  "required": true
5487
5433
  }
5488
5434
  },
5489
- "description": "Restore a tenant from a backup. This replaces the current tenant data.",
5435
+ "description": "Update an existing tenant cluster",
5490
5436
  "examples": [
5491
- "$ 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",
5492
- "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
5437
+ "$ 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",
5438
+ "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5493
5439
  ],
5494
5440
  "flags": {
5495
5441
  "profile": {
@@ -5511,21 +5457,31 @@
5511
5457
  "allowNo": false,
5512
5458
  "type": "boolean"
5513
5459
  },
5514
- "backup_id": {
5515
- "description": "Backup ID to restore from",
5516
- "name": "backup_id",
5460
+ "description": {
5461
+ "char": "d",
5462
+ "description": "Cluster description",
5463
+ "name": "description",
5517
5464
  "required": true,
5518
5465
  "hasDynamicHelp": false,
5519
5466
  "multiple": false,
5520
5467
  "type": "option"
5521
5468
  },
5522
- "force": {
5523
- "char": "f",
5524
- "description": "Skip confirmation prompt",
5525
- "name": "force",
5526
- "required": false,
5527
- "allowNo": false,
5528
- "type": "boolean"
5469
+ "domain": {
5470
+ "description": "Custom domain for the cluster",
5471
+ "name": "domain",
5472
+ "required": true,
5473
+ "hasDynamicHelp": false,
5474
+ "multiple": false,
5475
+ "type": "option"
5476
+ },
5477
+ "name": {
5478
+ "char": "n",
5479
+ "description": "Cluster name",
5480
+ "name": "name",
5481
+ "required": true,
5482
+ "hasDynamicHelp": false,
5483
+ "multiple": false,
5484
+ "type": "option"
5529
5485
  },
5530
5486
  "output": {
5531
5487
  "char": "o",
@@ -5541,19 +5497,22 @@
5541
5497
  ],
5542
5498
  "type": "option"
5543
5499
  },
5544
- "workspace": {
5545
- "char": "w",
5546
- "description": "Workspace ID (uses profile workspace if not provided)",
5547
- "name": "workspace",
5548
- "required": false,
5500
+ "type": {
5501
+ "description": "Cluster type",
5502
+ "name": "type",
5503
+ "required": true,
5549
5504
  "hasDynamicHelp": false,
5550
5505
  "multiple": false,
5506
+ "options": [
5507
+ "standard",
5508
+ "run"
5509
+ ],
5551
5510
  "type": "option"
5552
5511
  }
5553
5512
  },
5554
5513
  "hasDynamicHelp": false,
5555
5514
  "hiddenAliases": [],
5556
- "id": "tenant:backup:restore",
5515
+ "id": "tenant:cluster:edit",
5557
5516
  "pluginAlias": "@xano/cli",
5558
5517
  "pluginName": "@xano/cli",
5559
5518
  "pluginType": "core",
@@ -5564,18 +5523,18 @@
5564
5523
  "dist",
5565
5524
  "commands",
5566
5525
  "tenant",
5567
- "backup",
5568
- "restore",
5526
+ "cluster",
5527
+ "edit",
5569
5528
  "index.js"
5570
5529
  ]
5571
5530
  },
5572
- "profile:workspace:set": {
5531
+ "tenant:cluster:list": {
5573
5532
  "aliases": [],
5574
5533
  "args": {},
5575
- "description": "Interactively select a workspace for a profile",
5534
+ "description": "List all tenant clusters",
5576
5535
  "examples": [
5577
- "$ xano profile workspace set\nFetching workspaces...\n? Select a workspace: My Workspace\nWorkspace updated to 'My Workspace' (abc123) on profile 'default'\n",
5578
- "$ xano profile workspace set -p production\nFetching workspaces...\n? Select a workspace: Production API\nWorkspace updated to 'Production API' (xyz789) on profile 'production'\n"
5536
+ "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
5537
+ "$ xano tenant cluster list --output json"
5579
5538
  ],
5580
5539
  "flags": {
5581
5540
  "profile": {
@@ -5596,11 +5555,25 @@
5596
5555
  "required": false,
5597
5556
  "allowNo": false,
5598
5557
  "type": "boolean"
5558
+ },
5559
+ "output": {
5560
+ "char": "o",
5561
+ "description": "Output format",
5562
+ "name": "output",
5563
+ "required": false,
5564
+ "default": "summary",
5565
+ "hasDynamicHelp": false,
5566
+ "multiple": false,
5567
+ "options": [
5568
+ "summary",
5569
+ "json"
5570
+ ],
5571
+ "type": "option"
5599
5572
  }
5600
5573
  },
5601
5574
  "hasDynamicHelp": false,
5602
5575
  "hiddenAliases": [],
5603
- "id": "profile:workspace:set",
5576
+ "id": "tenant:cluster:list",
5604
5577
  "pluginAlias": "@xano/cli",
5605
5578
  "pluginName": "@xano/cli",
5606
5579
  "pluginType": "core",
@@ -5610,19 +5583,25 @@
5610
5583
  "relativePath": [
5611
5584
  "dist",
5612
5585
  "commands",
5613
- "profile",
5614
- "workspace",
5615
- "set",
5586
+ "tenant",
5587
+ "cluster",
5588
+ "list",
5616
5589
  "index.js"
5617
5590
  ]
5618
5591
  },
5619
- "tenant:cluster:create": {
5592
+ "tenant:backup:create": {
5620
5593
  "aliases": [],
5621
- "args": {},
5622
- "description": "Create a new tenant cluster",
5594
+ "args": {
5595
+ "tenant_name": {
5596
+ "description": "Tenant name to back up",
5597
+ "name": "tenant_name",
5598
+ "required": true
5599
+ }
5600
+ },
5601
+ "description": "Create a backup for a tenant",
5623
5602
  "examples": [
5624
- "$ xano tenant cluster create --name \"us-east-1\" --credentials_file ./kubeconfig.yaml\nCreated tenant cluster: us-east-1 (standard) - ID: 3\n",
5625
- "$ xano tenant cluster create --name \"eu-west-1\" --credentials \"...\" --type run --description \"EU run cluster\" -o json"
5603
+ "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
5604
+ "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
5626
5605
  ],
5627
5606
  "flags": {
5628
5607
  "profile": {
@@ -5644,50 +5623,12 @@
5644
5623
  "allowNo": false,
5645
5624
  "type": "boolean"
5646
5625
  },
5647
- "credentials": {
5648
- "description": "Kubeconfig credentials (raw text)",
5649
- "exclusive": [
5650
- "credentials_file"
5651
- ],
5652
- "name": "credentials",
5653
- "required": false,
5654
- "hasDynamicHelp": false,
5655
- "multiple": false,
5656
- "type": "option"
5657
- },
5658
- "credentials_file": {
5659
- "description": "Path to kubeconfig credentials file",
5660
- "exclusive": [
5661
- "credentials"
5662
- ],
5663
- "name": "credentials_file",
5664
- "required": false,
5665
- "hasDynamicHelp": false,
5666
- "multiple": false,
5667
- "type": "option"
5668
- },
5669
5626
  "description": {
5670
5627
  "char": "d",
5671
- "description": "Cluster description",
5628
+ "description": "Backup description",
5672
5629
  "name": "description",
5673
5630
  "required": false,
5674
- "hasDynamicHelp": false,
5675
- "multiple": false,
5676
- "type": "option"
5677
- },
5678
- "domain": {
5679
- "description": "Custom domain for the cluster",
5680
- "name": "domain",
5681
- "required": false,
5682
- "hasDynamicHelp": false,
5683
- "multiple": false,
5684
- "type": "option"
5685
- },
5686
- "name": {
5687
- "char": "n",
5688
- "description": "Cluster name",
5689
- "name": "name",
5690
- "required": true,
5631
+ "default": "",
5691
5632
  "hasDynamicHelp": false,
5692
5633
  "multiple": false,
5693
5634
  "type": "option"
@@ -5706,23 +5647,19 @@
5706
5647
  ],
5707
5648
  "type": "option"
5708
5649
  },
5709
- "type": {
5710
- "description": "Cluster type",
5711
- "name": "type",
5650
+ "workspace": {
5651
+ "char": "w",
5652
+ "description": "Workspace ID (uses profile workspace if not provided)",
5653
+ "name": "workspace",
5712
5654
  "required": false,
5713
- "default": "standard",
5714
5655
  "hasDynamicHelp": false,
5715
5656
  "multiple": false,
5716
- "options": [
5717
- "standard",
5718
- "run"
5719
- ],
5720
5657
  "type": "option"
5721
5658
  }
5722
5659
  },
5723
5660
  "hasDynamicHelp": false,
5724
5661
  "hiddenAliases": [],
5725
- "id": "tenant:cluster:create",
5662
+ "id": "tenant:backup:create",
5726
5663
  "pluginAlias": "@xano/cli",
5727
5664
  "pluginName": "@xano/cli",
5728
5665
  "pluginType": "core",
@@ -5733,24 +5670,24 @@
5733
5670
  "dist",
5734
5671
  "commands",
5735
5672
  "tenant",
5736
- "cluster",
5673
+ "backup",
5737
5674
  "create",
5738
5675
  "index.js"
5739
5676
  ]
5740
5677
  },
5741
- "tenant:backup:create": {
5678
+ "tenant:backup:import": {
5742
5679
  "aliases": [],
5743
5680
  "args": {
5744
5681
  "tenant_name": {
5745
- "description": "Tenant name to back up",
5682
+ "description": "Tenant name to import backup into",
5746
5683
  "name": "tenant_name",
5747
5684
  "required": true
5748
5685
  }
5749
5686
  },
5750
- "description": "Create a backup for a tenant",
5687
+ "description": "Import a backup file into a tenant",
5751
5688
  "examples": [
5752
- "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
5753
- "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
5689
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5690
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5754
5691
  ],
5755
5692
  "flags": {
5756
5693
  "profile": {
@@ -5782,6 +5719,15 @@
5782
5719
  "multiple": false,
5783
5720
  "type": "option"
5784
5721
  },
5722
+ "file": {
5723
+ "char": "f",
5724
+ "description": "Path to the backup file (.tar.gz)",
5725
+ "name": "file",
5726
+ "required": true,
5727
+ "hasDynamicHelp": false,
5728
+ "multiple": false,
5729
+ "type": "option"
5730
+ },
5785
5731
  "output": {
5786
5732
  "char": "o",
5787
5733
  "description": "Output format",
@@ -5808,7 +5754,7 @@
5808
5754
  },
5809
5755
  "hasDynamicHelp": false,
5810
5756
  "hiddenAliases": [],
5811
- "id": "tenant:backup:create",
5757
+ "id": "tenant:backup:import",
5812
5758
  "pluginAlias": "@xano/cli",
5813
5759
  "pluginName": "@xano/cli",
5814
5760
  "pluginType": "core",
@@ -5820,24 +5766,24 @@
5820
5766
  "commands",
5821
5767
  "tenant",
5822
5768
  "backup",
5823
- "create",
5769
+ "import",
5824
5770
  "index.js"
5825
5771
  ]
5826
5772
  },
5827
- "tenant:cluster:delete": {
5773
+ "tenant:backup:delete": {
5828
5774
  "aliases": [],
5829
5775
  "args": {
5830
- "cluster_id": {
5831
- "description": "Cluster ID to delete",
5832
- "name": "cluster_id",
5776
+ "tenant_name": {
5777
+ "description": "Tenant name that owns the backup",
5778
+ "name": "tenant_name",
5833
5779
  "required": true
5834
5780
  }
5835
5781
  },
5836
- "description": "Delete a tenant cluster. This action cannot be undone.",
5782
+ "description": "Delete a tenant backup permanently. This action cannot be undone.",
5837
5783
  "examples": [
5838
- "$ xano tenant cluster delete 3\nAre you sure you want to delete tenant cluster 3? This action cannot be undone. (y/N) y\nTenant cluster 3 deleted successfully\n",
5839
- "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5840
- "$ xano tenant cluster delete 3 -f -o json"
5784
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10\nAre you sure you want to delete backup #10? This action cannot be undone. (y/N) y\nDeleted backup #10\n",
5785
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5786
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
5841
5787
  ],
5842
5788
  "flags": {
5843
5789
  "profile": {
@@ -5859,6 +5805,14 @@
5859
5805
  "allowNo": false,
5860
5806
  "type": "boolean"
5861
5807
  },
5808
+ "backup_id": {
5809
+ "description": "Backup ID to delete",
5810
+ "name": "backup_id",
5811
+ "required": true,
5812
+ "hasDynamicHelp": false,
5813
+ "multiple": false,
5814
+ "type": "option"
5815
+ },
5862
5816
  "force": {
5863
5817
  "char": "f",
5864
5818
  "description": "Skip confirmation prompt",
@@ -5880,11 +5834,20 @@
5880
5834
  "json"
5881
5835
  ],
5882
5836
  "type": "option"
5837
+ },
5838
+ "workspace": {
5839
+ "char": "w",
5840
+ "description": "Workspace ID (uses profile workspace if not provided)",
5841
+ "name": "workspace",
5842
+ "required": false,
5843
+ "hasDynamicHelp": false,
5844
+ "multiple": false,
5845
+ "type": "option"
5883
5846
  }
5884
5847
  },
5885
5848
  "hasDynamicHelp": false,
5886
5849
  "hiddenAliases": [],
5887
- "id": "tenant:cluster:delete",
5850
+ "id": "tenant:backup:delete",
5888
5851
  "pluginAlias": "@xano/cli",
5889
5852
  "pluginName": "@xano/cli",
5890
5853
  "pluginType": "core",
@@ -5895,24 +5858,25 @@
5895
5858
  "dist",
5896
5859
  "commands",
5897
5860
  "tenant",
5898
- "cluster",
5861
+ "backup",
5899
5862
  "delete",
5900
5863
  "index.js"
5901
5864
  ]
5902
5865
  },
5903
- "tenant:cluster:get": {
5866
+ "tenant:backup:export": {
5904
5867
  "aliases": [],
5905
5868
  "args": {
5906
- "cluster_id": {
5907
- "description": "Cluster ID to retrieve",
5908
- "name": "cluster_id",
5869
+ "tenant_name": {
5870
+ "description": "Tenant name to export backup from",
5871
+ "name": "tenant_name",
5909
5872
  "required": true
5910
5873
  }
5911
5874
  },
5912
- "description": "Get details of a specific tenant cluster",
5875
+ "description": "Export (download) a tenant backup to a local file",
5913
5876
  "examples": [
5914
- "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5915
- "$ xano tenant cluster get 1 -o json"
5877
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
5878
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
5879
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5916
5880
  ],
5917
5881
  "flags": {
5918
5882
  "profile": {
@@ -5934,10 +5898,18 @@
5934
5898
  "allowNo": false,
5935
5899
  "type": "boolean"
5936
5900
  },
5937
- "output": {
5901
+ "backup_id": {
5902
+ "description": "Backup ID to export",
5903
+ "name": "backup_id",
5904
+ "required": true,
5905
+ "hasDynamicHelp": false,
5906
+ "multiple": false,
5907
+ "type": "option"
5908
+ },
5909
+ "format": {
5938
5910
  "char": "o",
5939
5911
  "description": "Output format",
5940
- "name": "output",
5912
+ "name": "format",
5941
5913
  "required": false,
5942
5914
  "default": "summary",
5943
5915
  "hasDynamicHelp": false,
@@ -5947,11 +5919,28 @@
5947
5919
  "json"
5948
5920
  ],
5949
5921
  "type": "option"
5922
+ },
5923
+ "output": {
5924
+ "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5925
+ "name": "output",
5926
+ "required": false,
5927
+ "hasDynamicHelp": false,
5928
+ "multiple": false,
5929
+ "type": "option"
5930
+ },
5931
+ "workspace": {
5932
+ "char": "w",
5933
+ "description": "Workspace ID (uses profile workspace if not provided)",
5934
+ "name": "workspace",
5935
+ "required": false,
5936
+ "hasDynamicHelp": false,
5937
+ "multiple": false,
5938
+ "type": "option"
5950
5939
  }
5951
5940
  },
5952
5941
  "hasDynamicHelp": false,
5953
5942
  "hiddenAliases": [],
5954
- "id": "tenant:cluster:get",
5943
+ "id": "tenant:backup:export",
5955
5944
  "pluginAlias": "@xano/cli",
5956
5945
  "pluginName": "@xano/cli",
5957
5946
  "pluginType": "core",
@@ -5962,24 +5951,24 @@
5962
5951
  "dist",
5963
5952
  "commands",
5964
5953
  "tenant",
5965
- "cluster",
5966
- "get",
5954
+ "backup",
5955
+ "export",
5967
5956
  "index.js"
5968
5957
  ]
5969
5958
  },
5970
- "tenant:cluster:edit": {
5959
+ "tenant:backup:list": {
5971
5960
  "aliases": [],
5972
5961
  "args": {
5973
- "cluster_id": {
5974
- "description": "Cluster ID to edit",
5975
- "name": "cluster_id",
5962
+ "tenant_name": {
5963
+ "description": "Tenant name to list backups for",
5964
+ "name": "tenant_name",
5976
5965
  "required": true
5977
5966
  }
5978
5967
  },
5979
- "description": "Update an existing tenant cluster",
5968
+ "description": "List backups for a tenant",
5980
5969
  "examples": [
5981
- "$ 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",
5982
- "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5970
+ "$ 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",
5971
+ "$ xano tenant backup list t1234-abcd-xyz1 -o json"
5983
5972
  ],
5984
5973
  "flags": {
5985
5974
  "profile": {
@@ -6001,32 +5990,6 @@
6001
5990
  "allowNo": false,
6002
5991
  "type": "boolean"
6003
5992
  },
6004
- "description": {
6005
- "char": "d",
6006
- "description": "Cluster description",
6007
- "name": "description",
6008
- "required": true,
6009
- "hasDynamicHelp": false,
6010
- "multiple": false,
6011
- "type": "option"
6012
- },
6013
- "domain": {
6014
- "description": "Custom domain for the cluster",
6015
- "name": "domain",
6016
- "required": true,
6017
- "hasDynamicHelp": false,
6018
- "multiple": false,
6019
- "type": "option"
6020
- },
6021
- "name": {
6022
- "char": "n",
6023
- "description": "Cluster name",
6024
- "name": "name",
6025
- "required": true,
6026
- "hasDynamicHelp": false,
6027
- "multiple": false,
6028
- "type": "option"
6029
- },
6030
5993
  "output": {
6031
5994
  "char": "o",
6032
5995
  "description": "Output format",
@@ -6041,22 +6004,28 @@
6041
6004
  ],
6042
6005
  "type": "option"
6043
6006
  },
6044
- "type": {
6045
- "description": "Cluster type",
6046
- "name": "type",
6047
- "required": true,
6007
+ "page": {
6008
+ "description": "Page number for pagination",
6009
+ "name": "page",
6010
+ "required": false,
6011
+ "default": 1,
6012
+ "hasDynamicHelp": false,
6013
+ "multiple": false,
6014
+ "type": "option"
6015
+ },
6016
+ "workspace": {
6017
+ "char": "w",
6018
+ "description": "Workspace ID (uses profile workspace if not provided)",
6019
+ "name": "workspace",
6020
+ "required": false,
6048
6021
  "hasDynamicHelp": false,
6049
6022
  "multiple": false,
6050
- "options": [
6051
- "standard",
6052
- "run"
6053
- ],
6054
6023
  "type": "option"
6055
6024
  }
6056
6025
  },
6057
6026
  "hasDynamicHelp": false,
6058
6027
  "hiddenAliases": [],
6059
- "id": "tenant:cluster:edit",
6028
+ "id": "tenant:backup:list",
6060
6029
  "pluginAlias": "@xano/cli",
6061
6030
  "pluginName": "@xano/cli",
6062
6031
  "pluginType": "core",
@@ -6067,25 +6036,24 @@
6067
6036
  "dist",
6068
6037
  "commands",
6069
6038
  "tenant",
6070
- "cluster",
6071
- "edit",
6039
+ "backup",
6040
+ "list",
6072
6041
  "index.js"
6073
6042
  ]
6074
6043
  },
6075
- "tenant:env:delete": {
6044
+ "tenant:backup:restore": {
6076
6045
  "aliases": [],
6077
6046
  "args": {
6078
6047
  "tenant_name": {
6079
- "description": "Tenant name",
6048
+ "description": "Tenant name to restore",
6080
6049
  "name": "tenant_name",
6081
6050
  "required": true
6082
6051
  }
6083
6052
  },
6084
- "description": "Delete an environment variable from a tenant",
6053
+ "description": "Restore a tenant from a backup. This replaces the current tenant data.",
6085
6054
  "examples": [
6086
- "$ 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",
6087
- "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
6088
- "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
6055
+ "$ 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",
6056
+ "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
6089
6057
  ],
6090
6058
  "flags": {
6091
6059
  "profile": {
@@ -6107,6 +6075,14 @@
6107
6075
  "allowNo": false,
6108
6076
  "type": "boolean"
6109
6077
  },
6078
+ "backup_id": {
6079
+ "description": "Backup ID to restore from",
6080
+ "name": "backup_id",
6081
+ "required": true,
6082
+ "hasDynamicHelp": false,
6083
+ "multiple": false,
6084
+ "type": "option"
6085
+ },
6110
6086
  "force": {
6111
6087
  "char": "f",
6112
6088
  "description": "Skip confirmation prompt",
@@ -6115,15 +6091,6 @@
6115
6091
  "allowNo": false,
6116
6092
  "type": "boolean"
6117
6093
  },
6118
- "name": {
6119
- "char": "n",
6120
- "description": "Environment variable name",
6121
- "name": "name",
6122
- "required": true,
6123
- "hasDynamicHelp": false,
6124
- "multiple": false,
6125
- "type": "option"
6126
- },
6127
6094
  "output": {
6128
6095
  "char": "o",
6129
6096
  "description": "Output format",
@@ -6150,7 +6117,7 @@
6150
6117
  },
6151
6118
  "hasDynamicHelp": false,
6152
6119
  "hiddenAliases": [],
6153
- "id": "tenant:env:delete",
6120
+ "id": "tenant:backup:restore",
6154
6121
  "pluginAlias": "@xano/cli",
6155
6122
  "pluginName": "@xano/cli",
6156
6123
  "pluginType": "core",
@@ -6161,18 +6128,24 @@
6161
6128
  "dist",
6162
6129
  "commands",
6163
6130
  "tenant",
6164
- "env",
6165
- "delete",
6131
+ "backup",
6132
+ "restore",
6166
6133
  "index.js"
6167
6134
  ]
6168
6135
  },
6169
- "tenant:cluster:list": {
6136
+ "tenant:env:get": {
6170
6137
  "aliases": [],
6171
- "args": {},
6172
- "description": "List all tenant clusters",
6138
+ "args": {
6139
+ "tenant_name": {
6140
+ "description": "Tenant name",
6141
+ "name": "tenant_name",
6142
+ "required": true
6143
+ }
6144
+ },
6145
+ "description": "Get a single environment variable for a tenant",
6173
6146
  "examples": [
6174
- "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
6175
- "$ xano tenant cluster list --output json"
6147
+ "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
6148
+ "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6176
6149
  ],
6177
6150
  "flags": {
6178
6151
  "profile": {
@@ -6194,6 +6167,15 @@
6194
6167
  "allowNo": false,
6195
6168
  "type": "boolean"
6196
6169
  },
6170
+ "name": {
6171
+ "char": "n",
6172
+ "description": "Environment variable name",
6173
+ "name": "name",
6174
+ "required": true,
6175
+ "hasDynamicHelp": false,
6176
+ "multiple": false,
6177
+ "type": "option"
6178
+ },
6197
6179
  "output": {
6198
6180
  "char": "o",
6199
6181
  "description": "Output format",
@@ -6207,11 +6189,20 @@
6207
6189
  "json"
6208
6190
  ],
6209
6191
  "type": "option"
6192
+ },
6193
+ "workspace": {
6194
+ "char": "w",
6195
+ "description": "Workspace ID (uses profile workspace if not provided)",
6196
+ "name": "workspace",
6197
+ "required": false,
6198
+ "hasDynamicHelp": false,
6199
+ "multiple": false,
6200
+ "type": "option"
6210
6201
  }
6211
6202
  },
6212
6203
  "hasDynamicHelp": false,
6213
6204
  "hiddenAliases": [],
6214
- "id": "tenant:cluster:list",
6205
+ "id": "tenant:env:get",
6215
6206
  "pluginAlias": "@xano/cli",
6216
6207
  "pluginName": "@xano/cli",
6217
6208
  "pluginType": "core",
@@ -6222,12 +6213,12 @@
6222
6213
  "dist",
6223
6214
  "commands",
6224
6215
  "tenant",
6225
- "cluster",
6226
- "list",
6216
+ "env",
6217
+ "get",
6227
6218
  "index.js"
6228
6219
  ]
6229
6220
  },
6230
- "tenant:env:set": {
6221
+ "tenant:env:list": {
6231
6222
  "aliases": [],
6232
6223
  "args": {
6233
6224
  "tenant_name": {
@@ -6236,10 +6227,10 @@
6236
6227
  "required": true
6237
6228
  }
6238
6229
  },
6239
- "description": "Set (create or update) an environment variable for a tenant",
6230
+ "description": "List environment variable keys for a tenant",
6240
6231
  "examples": [
6241
- "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb\nEnvironment variable 'DATABASE_URL' set for tenant my-tenant\n",
6242
- "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb -w 5 -o json"
6232
+ "$ xano tenant env list my-tenant\nEnvironment variables for tenant my-tenant:\n - DATABASE_URL\n - API_KEY\n - SECRET_TOKEN\n",
6233
+ "$ xano tenant env list my-tenant -w 5 -o json"
6243
6234
  ],
6244
6235
  "flags": {
6245
6236
  "profile": {
@@ -6261,15 +6252,6 @@
6261
6252
  "allowNo": false,
6262
6253
  "type": "boolean"
6263
6254
  },
6264
- "name": {
6265
- "char": "n",
6266
- "description": "Environment variable name",
6267
- "name": "name",
6268
- "required": true,
6269
- "hasDynamicHelp": false,
6270
- "multiple": false,
6271
- "type": "option"
6272
- },
6273
6255
  "output": {
6274
6256
  "char": "o",
6275
6257
  "description": "Output format",
@@ -6284,14 +6266,6 @@
6284
6266
  ],
6285
6267
  "type": "option"
6286
6268
  },
6287
- "value": {
6288
- "description": "Environment variable value",
6289
- "name": "value",
6290
- "required": true,
6291
- "hasDynamicHelp": false,
6292
- "multiple": false,
6293
- "type": "option"
6294
- },
6295
6269
  "workspace": {
6296
6270
  "char": "w",
6297
6271
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6304,7 +6278,7 @@
6304
6278
  },
6305
6279
  "hasDynamicHelp": false,
6306
6280
  "hiddenAliases": [],
6307
- "id": "tenant:env:set",
6281
+ "id": "tenant:env:list",
6308
6282
  "pluginAlias": "@xano/cli",
6309
6283
  "pluginName": "@xano/cli",
6310
6284
  "pluginType": "core",
@@ -6316,11 +6290,11 @@
6316
6290
  "commands",
6317
6291
  "tenant",
6318
6292
  "env",
6319
- "set",
6293
+ "list",
6320
6294
  "index.js"
6321
6295
  ]
6322
6296
  },
6323
- "tenant:env:get": {
6297
+ "tenant:env:delete": {
6324
6298
  "aliases": [],
6325
6299
  "args": {
6326
6300
  "tenant_name": {
@@ -6329,10 +6303,11 @@
6329
6303
  "required": true
6330
6304
  }
6331
6305
  },
6332
- "description": "Get a single environment variable for a tenant",
6306
+ "description": "Delete an environment variable from a tenant",
6333
6307
  "examples": [
6334
- "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
6335
- "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6308
+ "$ 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",
6309
+ "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
6310
+ "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
6336
6311
  ],
6337
6312
  "flags": {
6338
6313
  "profile": {
@@ -6354,6 +6329,14 @@
6354
6329
  "allowNo": false,
6355
6330
  "type": "boolean"
6356
6331
  },
6332
+ "force": {
6333
+ "char": "f",
6334
+ "description": "Skip confirmation prompt",
6335
+ "name": "force",
6336
+ "required": false,
6337
+ "allowNo": false,
6338
+ "type": "boolean"
6339
+ },
6357
6340
  "name": {
6358
6341
  "char": "n",
6359
6342
  "description": "Environment variable name",
@@ -6389,7 +6372,7 @@
6389
6372
  },
6390
6373
  "hasDynamicHelp": false,
6391
6374
  "hiddenAliases": [],
6392
- "id": "tenant:env:get",
6375
+ "id": "tenant:env:delete",
6393
6376
  "pluginAlias": "@xano/cli",
6394
6377
  "pluginName": "@xano/cli",
6395
6378
  "pluginType": "core",
@@ -6401,11 +6384,11 @@
6401
6384
  "commands",
6402
6385
  "tenant",
6403
6386
  "env",
6404
- "get",
6387
+ "delete",
6405
6388
  "index.js"
6406
6389
  ]
6407
6390
  },
6408
- "tenant:env:get_all": {
6391
+ "tenant:env:set": {
6409
6392
  "aliases": [],
6410
6393
  "args": {
6411
6394
  "tenant_name": {
@@ -6414,12 +6397,10 @@
6414
6397
  "required": true
6415
6398
  }
6416
6399
  },
6417
- "description": "Get all environment variables for a tenant and save to a YAML file",
6400
+ "description": "Set (create or update) an environment variable for a tenant",
6418
6401
  "examples": [
6419
- "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
6420
- "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
6421
- "$ xano tenant env get_all my-tenant --view",
6422
- "$ xano tenant env get_all my-tenant -o json"
6402
+ "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb\nEnvironment variable 'DATABASE_URL' set for tenant my-tenant\n",
6403
+ "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb -w 5 -o json"
6423
6404
  ],
6424
6405
  "flags": {
6425
6406
  "profile": {
@@ -6441,11 +6422,11 @@
6441
6422
  "allowNo": false,
6442
6423
  "type": "boolean"
6443
6424
  },
6444
- "file": {
6445
- "char": "f",
6446
- "description": "Output file path (default: env_<tenant_name>.yaml)",
6447
- "name": "file",
6448
- "required": false,
6425
+ "name": {
6426
+ "char": "n",
6427
+ "description": "Environment variable name",
6428
+ "name": "name",
6429
+ "required": true,
6449
6430
  "hasDynamicHelp": false,
6450
6431
  "multiple": false,
6451
6432
  "type": "option"
@@ -6458,19 +6439,20 @@
6458
6439
  "default": "summary",
6459
6440
  "hasDynamicHelp": false,
6460
6441
  "multiple": false,
6461
- "options": [
6462
- "summary",
6463
- "json"
6464
- ],
6442
+ "options": [
6443
+ "summary",
6444
+ "json"
6445
+ ],
6446
+ "type": "option"
6447
+ },
6448
+ "value": {
6449
+ "description": "Environment variable value",
6450
+ "name": "value",
6451
+ "required": true,
6452
+ "hasDynamicHelp": false,
6453
+ "multiple": false,
6465
6454
  "type": "option"
6466
6455
  },
6467
- "view": {
6468
- "description": "Print environment variables to stdout instead of saving to file",
6469
- "name": "view",
6470
- "required": false,
6471
- "allowNo": false,
6472
- "type": "boolean"
6473
- },
6474
6456
  "workspace": {
6475
6457
  "char": "w",
6476
6458
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6483,7 +6465,7 @@
6483
6465
  },
6484
6466
  "hasDynamicHelp": false,
6485
6467
  "hiddenAliases": [],
6486
- "id": "tenant:env:get_all",
6468
+ "id": "tenant:env:set",
6487
6469
  "pluginAlias": "@xano/cli",
6488
6470
  "pluginName": "@xano/cli",
6489
6471
  "pluginType": "core",
@@ -6495,7 +6477,7 @@
6495
6477
  "commands",
6496
6478
  "tenant",
6497
6479
  "env",
6498
- "get_all",
6480
+ "set",
6499
6481
  "index.js"
6500
6482
  ]
6501
6483
  },
@@ -6592,7 +6574,7 @@
6592
6574
  "index.js"
6593
6575
  ]
6594
6576
  },
6595
- "tenant:env:list": {
6577
+ "tenant:env:get_all": {
6596
6578
  "aliases": [],
6597
6579
  "args": {
6598
6580
  "tenant_name": {
@@ -6601,10 +6583,12 @@
6601
6583
  "required": true
6602
6584
  }
6603
6585
  },
6604
- "description": "List environment variable keys for a tenant",
6586
+ "description": "Get all environment variables for a tenant and save to a YAML file",
6605
6587
  "examples": [
6606
- "$ xano tenant env list my-tenant\nEnvironment variables for tenant my-tenant:\n - DATABASE_URL\n - API_KEY\n - SECRET_TOKEN\n",
6607
- "$ xano tenant env list my-tenant -w 5 -o json"
6588
+ "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
6589
+ "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
6590
+ "$ xano tenant env get_all my-tenant --view",
6591
+ "$ xano tenant env get_all my-tenant -o json"
6608
6592
  ],
6609
6593
  "flags": {
6610
6594
  "profile": {
@@ -6626,6 +6610,15 @@
6626
6610
  "allowNo": false,
6627
6611
  "type": "boolean"
6628
6612
  },
6613
+ "file": {
6614
+ "char": "f",
6615
+ "description": "Output file path (default: env_<tenant_name>.yaml)",
6616
+ "name": "file",
6617
+ "required": false,
6618
+ "hasDynamicHelp": false,
6619
+ "multiple": false,
6620
+ "type": "option"
6621
+ },
6629
6622
  "output": {
6630
6623
  "char": "o",
6631
6624
  "description": "Output format",
@@ -6640,6 +6633,13 @@
6640
6633
  ],
6641
6634
  "type": "option"
6642
6635
  },
6636
+ "view": {
6637
+ "description": "Print environment variables to stdout instead of saving to file",
6638
+ "name": "view",
6639
+ "required": false,
6640
+ "allowNo": false,
6641
+ "type": "boolean"
6642
+ },
6643
6643
  "workspace": {
6644
6644
  "char": "w",
6645
6645
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6652,7 +6652,7 @@
6652
6652
  },
6653
6653
  "hasDynamicHelp": false,
6654
6654
  "hiddenAliases": [],
6655
- "id": "tenant:env:list",
6655
+ "id": "tenant:env:get_all",
6656
6656
  "pluginAlias": "@xano/cli",
6657
6657
  "pluginName": "@xano/cli",
6658
6658
  "pluginType": "core",
@@ -6664,25 +6664,28 @@
6664
6664
  "commands",
6665
6665
  "tenant",
6666
6666
  "env",
6667
- "list",
6667
+ "get_all",
6668
6668
  "index.js"
6669
6669
  ]
6670
6670
  },
6671
- "tenant:license:get": {
6671
+ "workspace:git:pull": {
6672
6672
  "aliases": [],
6673
6673
  "args": {
6674
- "tenant_name": {
6675
- "description": "Tenant name",
6676
- "name": "tenant_name",
6674
+ "directory": {
6675
+ "description": "Output directory for imported files",
6676
+ "name": "directory",
6677
6677
  "required": true
6678
6678
  }
6679
6679
  },
6680
- "description": "Get the license for a tenant",
6680
+ "description": "Pull XanoScript files from a git repository into a local directory",
6681
6681
  "examples": [
6682
- "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6683
- "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6684
- "$ xano tenant license get my-tenant --view",
6685
- "$ xano tenant license get my-tenant -o json"
6682
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo",
6683
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo/tree/main/path/to/dir",
6684
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo/blob/main/path/to/file.xs",
6685
+ "$ xano workspace git pull ./output -r git@github.com:owner/repo.git",
6686
+ "$ xano workspace git pull ./output -r https://github.com/owner/private-repo -t ghp_xxx",
6687
+ "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo/-/tree/master/path",
6688
+ "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo -b main"
6686
6689
  ],
6687
6690
  "flags": {
6688
6691
  "profile": {
@@ -6704,40 +6707,37 @@
6704
6707
  "allowNo": false,
6705
6708
  "type": "boolean"
6706
6709
  },
6707
- "file": {
6708
- "char": "f",
6709
- "description": "Output file path (default: license_<tenant_name>.yaml)",
6710
- "name": "file",
6710
+ "branch": {
6711
+ "char": "b",
6712
+ "description": "Branch, tag, or ref to fetch (defaults to repository default branch)",
6713
+ "name": "branch",
6711
6714
  "required": false,
6712
6715
  "hasDynamicHelp": false,
6713
6716
  "multiple": false,
6714
6717
  "type": "option"
6715
6718
  },
6716
- "output": {
6717
- "char": "o",
6718
- "description": "Output format",
6719
- "name": "output",
6719
+ "path": {
6720
+ "description": "Subdirectory within the repo to import from",
6721
+ "name": "path",
6720
6722
  "required": false,
6721
- "default": "summary",
6722
6723
  "hasDynamicHelp": false,
6723
6724
  "multiple": false,
6724
- "options": [
6725
- "summary",
6726
- "json"
6727
- ],
6728
6725
  "type": "option"
6729
6726
  },
6730
- "view": {
6731
- "description": "Print license to stdout instead of saving to file",
6732
- "name": "view",
6733
- "required": false,
6734
- "allowNo": false,
6735
- "type": "boolean"
6727
+ "repo": {
6728
+ "char": "r",
6729
+ "description": "Git repository URL (GitHub HTTPS, SSH, or any git URL)",
6730
+ "name": "repo",
6731
+ "required": true,
6732
+ "hasDynamicHelp": false,
6733
+ "multiple": false,
6734
+ "type": "option"
6736
6735
  },
6737
- "workspace": {
6738
- "char": "w",
6739
- "description": "Workspace ID (uses profile workspace if not provided)",
6740
- "name": "workspace",
6736
+ "token": {
6737
+ "char": "t",
6738
+ "description": "Personal access token for private repos (falls back to GITHUB_TOKEN env var)",
6739
+ "env": "GITHUB_TOKEN",
6740
+ "name": "token",
6741
6741
  "required": false,
6742
6742
  "hasDynamicHelp": false,
6743
6743
  "multiple": false,
@@ -6746,7 +6746,7 @@
6746
6746
  },
6747
6747
  "hasDynamicHelp": false,
6748
6748
  "hiddenAliases": [],
6749
- "id": "tenant:license:get",
6749
+ "id": "workspace:git:pull",
6750
6750
  "pluginAlias": "@xano/cli",
6751
6751
  "pluginName": "@xano/cli",
6752
6752
  "pluginType": "core",
@@ -6756,9 +6756,9 @@
6756
6756
  "relativePath": [
6757
6757
  "dist",
6758
6758
  "commands",
6759
- "tenant",
6760
- "license",
6761
- "get",
6759
+ "workspace",
6760
+ "git",
6761
+ "pull",
6762
6762
  "index.js"
6763
6763
  ]
6764
6764
  },
@@ -6874,21 +6874,21 @@
6874
6874
  "index.js"
6875
6875
  ]
6876
6876
  },
6877
- "tenant:cluster:license:set": {
6877
+ "tenant:license:get": {
6878
6878
  "aliases": [],
6879
6879
  "args": {
6880
- "cluster_id": {
6881
- "description": "Tenant cluster ID",
6882
- "name": "cluster_id",
6880
+ "tenant_name": {
6881
+ "description": "Tenant name",
6882
+ "name": "tenant_name",
6883
6883
  "required": true
6884
6884
  }
6885
6885
  },
6886
- "description": "Set/update the license (kubeconfig) for a tenant cluster",
6886
+ "description": "Get the license for a tenant",
6887
6887
  "examples": [
6888
- "$ xano tenant cluster license set 1\nReads from kubeconfig-1.yaml\n",
6889
- "$ xano tenant cluster license set 1 --file ./kubeconfig.yaml",
6890
- "$ xano tenant cluster license set 1 --value 'apiVersion: v1...'",
6891
- "$ xano tenant cluster license set 1 -o json"
6888
+ "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6889
+ "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6890
+ "$ xano tenant license get my-tenant --view",
6891
+ "$ xano tenant license get my-tenant -o json"
6892
6892
  ],
6893
6893
  "flags": {
6894
6894
  "profile": {
@@ -6910,22 +6910,9 @@
6910
6910
  "allowNo": false,
6911
6911
  "type": "boolean"
6912
6912
  },
6913
- "clean": {
6914
- "description": "Remove the source file after successful upload",
6915
- "exclusive": [
6916
- "value"
6917
- ],
6918
- "name": "clean",
6919
- "required": false,
6920
- "allowNo": false,
6921
- "type": "boolean"
6922
- },
6923
6913
  "file": {
6924
6914
  "char": "f",
6925
- "description": "Path to kubeconfig file (default: kubeconfig_<cluster_id>.yaml)",
6926
- "exclusive": [
6927
- "value"
6928
- ],
6915
+ "description": "Output file path (default: license_<tenant_name>.yaml)",
6929
6916
  "name": "file",
6930
6917
  "required": false,
6931
6918
  "hasDynamicHelp": false,
@@ -6946,13 +6933,17 @@
6946
6933
  ],
6947
6934
  "type": "option"
6948
6935
  },
6949
- "value": {
6950
- "description": "Inline kubeconfig YAML value",
6951
- "exclusive": [
6952
- "file",
6953
- "clean"
6954
- ],
6955
- "name": "value",
6936
+ "view": {
6937
+ "description": "Print license to stdout instead of saving to file",
6938
+ "name": "view",
6939
+ "required": false,
6940
+ "allowNo": false,
6941
+ "type": "boolean"
6942
+ },
6943
+ "workspace": {
6944
+ "char": "w",
6945
+ "description": "Workspace ID (uses profile workspace if not provided)",
6946
+ "name": "workspace",
6956
6947
  "required": false,
6957
6948
  "hasDynamicHelp": false,
6958
6949
  "multiple": false,
@@ -6961,7 +6952,7 @@
6961
6952
  },
6962
6953
  "hasDynamicHelp": false,
6963
6954
  "hiddenAliases": [],
6964
- "id": "tenant:cluster:license:set",
6955
+ "id": "tenant:license:get",
6965
6956
  "pluginAlias": "@xano/cli",
6966
6957
  "pluginName": "@xano/cli",
6967
6958
  "pluginType": "core",
@@ -6972,30 +6963,26 @@
6972
6963
  "dist",
6973
6964
  "commands",
6974
6965
  "tenant",
6975
- "cluster",
6976
6966
  "license",
6977
- "set",
6967
+ "get",
6978
6968
  "index.js"
6979
6969
  ]
6980
6970
  },
6981
- "workspace:git:pull": {
6971
+ "tenant:cluster:license:set": {
6982
6972
  "aliases": [],
6983
6973
  "args": {
6984
- "directory": {
6985
- "description": "Output directory for imported files",
6986
- "name": "directory",
6974
+ "cluster_id": {
6975
+ "description": "Tenant cluster ID",
6976
+ "name": "cluster_id",
6987
6977
  "required": true
6988
6978
  }
6989
6979
  },
6990
- "description": "Pull XanoScript files from a git repository into a local directory",
6980
+ "description": "Set/update the license (kubeconfig) for a tenant cluster",
6991
6981
  "examples": [
6992
- "$ xano workspace git pull ./output -r https://github.com/owner/repo",
6993
- "$ xano workspace git pull ./output -r https://github.com/owner/repo/tree/main/path/to/dir",
6994
- "$ xano workspace git pull ./output -r https://github.com/owner/repo/blob/main/path/to/file.xs",
6995
- "$ xano workspace git pull ./output -r git@github.com:owner/repo.git",
6996
- "$ xano workspace git pull ./output -r https://github.com/owner/private-repo -t ghp_xxx",
6997
- "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo/-/tree/master/path",
6998
- "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo -b main"
6982
+ "$ xano tenant cluster license set 1\nReads from kubeconfig-1.yaml\n",
6983
+ "$ xano tenant cluster license set 1 --file ./kubeconfig.yaml",
6984
+ "$ xano tenant cluster license set 1 --value 'apiVersion: v1...'",
6985
+ "$ xano tenant cluster license set 1 -o json"
6999
6986
  ],
7000
6987
  "flags": {
7001
6988
  "profile": {
@@ -7017,37 +7004,49 @@
7017
7004
  "allowNo": false,
7018
7005
  "type": "boolean"
7019
7006
  },
7020
- "branch": {
7021
- "char": "b",
7022
- "description": "Branch, tag, or ref to fetch (defaults to repository default branch)",
7023
- "name": "branch",
7007
+ "clean": {
7008
+ "description": "Remove the source file after successful upload",
7009
+ "exclusive": [
7010
+ "value"
7011
+ ],
7012
+ "name": "clean",
7024
7013
  "required": false,
7025
- "hasDynamicHelp": false,
7026
- "multiple": false,
7027
- "type": "option"
7014
+ "allowNo": false,
7015
+ "type": "boolean"
7028
7016
  },
7029
- "path": {
7030
- "description": "Subdirectory within the repo to import from",
7031
- "name": "path",
7017
+ "file": {
7018
+ "char": "f",
7019
+ "description": "Path to kubeconfig file (default: kubeconfig_<cluster_id>.yaml)",
7020
+ "exclusive": [
7021
+ "value"
7022
+ ],
7023
+ "name": "file",
7032
7024
  "required": false,
7033
7025
  "hasDynamicHelp": false,
7034
7026
  "multiple": false,
7035
7027
  "type": "option"
7036
7028
  },
7037
- "repo": {
7038
- "char": "r",
7039
- "description": "Git repository URL (GitHub HTTPS, SSH, or any git URL)",
7040
- "name": "repo",
7041
- "required": true,
7029
+ "output": {
7030
+ "char": "o",
7031
+ "description": "Output format",
7032
+ "name": "output",
7033
+ "required": false,
7034
+ "default": "summary",
7042
7035
  "hasDynamicHelp": false,
7043
7036
  "multiple": false,
7037
+ "options": [
7038
+ "summary",
7039
+ "json"
7040
+ ],
7044
7041
  "type": "option"
7045
7042
  },
7046
- "token": {
7047
- "char": "t",
7048
- "description": "Personal access token for private repos (falls back to GITHUB_TOKEN env var)",
7049
- "env": "GITHUB_TOKEN",
7050
- "name": "token",
7043
+ "value": {
7044
+ "description": "Inline kubeconfig YAML value",
7045
+ "exclusive": [
7046
+ "file",
7047
+ "clean"
7048
+ ],
7049
+ "name": "value",
7051
7050
  "required": false,
7052
7051
  "hasDynamicHelp": false,
7053
7052
  "multiple": false,
@@ -7056,7 +7055,7 @@
7056
7055
  },
7057
7056
  "hasDynamicHelp": false,
7058
7057
  "hiddenAliases": [],
7059
- "id": "workspace:git:pull",
7058
+ "id": "tenant:cluster:license:set",
7060
7059
  "pluginAlias": "@xano/cli",
7061
7060
  "pluginName": "@xano/cli",
7062
7061
  "pluginType": "core",
@@ -7066,9 +7065,10 @@
7066
7065
  "relativePath": [
7067
7066
  "dist",
7068
7067
  "commands",
7069
- "workspace",
7070
- "git",
7071
- "pull",
7068
+ "tenant",
7069
+ "cluster",
7070
+ "license",
7071
+ "set",
7072
7072
  "index.js"
7073
7073
  ]
7074
7074
  },
@@ -7159,5 +7159,5 @@
7159
7159
  ]
7160
7160
  }
7161
7161
  },
7162
- "version": "0.0.85"
7162
+ "version": "0.0.87"
7163
7163
  }