@xano/cli 0.0.71-beta.0 → 0.0.73-beta.0

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.
@@ -93,90 +93,6 @@
93
93
  "index.js"
94
94
  ]
95
95
  },
96
- "branch:delete": {
97
- "aliases": [],
98
- "args": {
99
- "branch_label": {
100
- "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
101
- "name": "branch_label",
102
- "required": true
103
- }
104
- },
105
- "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
106
- "examples": [
107
- "$ 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",
108
- "$ xano branch delete dev --force\nDeleted branch: dev\n",
109
- "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
110
- ],
111
- "flags": {
112
- "profile": {
113
- "char": "p",
114
- "description": "Profile to use (uses default profile if not specified)",
115
- "env": "XANO_PROFILE",
116
- "name": "profile",
117
- "required": false,
118
- "hasDynamicHelp": false,
119
- "multiple": false,
120
- "type": "option"
121
- },
122
- "verbose": {
123
- "char": "v",
124
- "description": "Show detailed request/response information",
125
- "env": "XANO_VERBOSE",
126
- "name": "verbose",
127
- "required": false,
128
- "allowNo": false,
129
- "type": "boolean"
130
- },
131
- "force": {
132
- "char": "f",
133
- "description": "Skip confirmation prompt",
134
- "name": "force",
135
- "required": false,
136
- "allowNo": false,
137
- "type": "boolean"
138
- },
139
- "output": {
140
- "char": "o",
141
- "description": "Output format",
142
- "name": "output",
143
- "required": false,
144
- "default": "summary",
145
- "hasDynamicHelp": false,
146
- "multiple": false,
147
- "options": [
148
- "summary",
149
- "json"
150
- ],
151
- "type": "option"
152
- },
153
- "workspace": {
154
- "char": "w",
155
- "description": "Workspace ID (uses profile workspace if not provided)",
156
- "name": "workspace",
157
- "required": false,
158
- "hasDynamicHelp": false,
159
- "multiple": false,
160
- "type": "option"
161
- }
162
- },
163
- "hasDynamicHelp": false,
164
- "hiddenAliases": [],
165
- "id": "branch:delete",
166
- "pluginAlias": "@xano/cli",
167
- "pluginName": "@xano/cli",
168
- "pluginType": "core",
169
- "strict": true,
170
- "enableJsonFlag": false,
171
- "isESM": true,
172
- "relativePath": [
173
- "dist",
174
- "commands",
175
- "branch",
176
- "delete",
177
- "index.js"
178
- ]
179
- },
180
96
  "branch:create": {
181
97
  "aliases": [],
182
98
  "args": {},
@@ -284,20 +200,20 @@
284
200
  "index.js"
285
201
  ]
286
202
  },
287
- "branch:edit": {
203
+ "branch:list": {
288
204
  "aliases": [],
289
205
  "args": {
290
- "branch_label": {
291
- "description": "Branch label to edit (cannot edit \"v1\" label)",
292
- "name": "branch_label",
293
- "required": true
206
+ "workspace_id": {
207
+ "description": "Workspace ID (uses profile workspace if not provided)",
208
+ "name": "workspace_id",
209
+ "required": false
294
210
  }
295
211
  },
296
- "description": "Update an existing branch (cannot update \"v1\" label)",
212
+ "description": "List all branches in a workspace",
297
213
  "examples": [
298
- "$ xano branch edit dev --label development\nUpdated branch: development\n",
299
- "$ xano branch edit feature-auth -l feature-authentication --color \"#ff5733\"\nUpdated branch: feature-authentication\n Color: #ff5733\n",
300
- "$ xano branch edit staging --description \"Staging environment\" -o json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false\n}\n"
214
+ "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
215
+ "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
216
+ "$ 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"
301
217
  ],
302
218
  "flags": {
303
219
  "profile": {
@@ -319,33 +235,6 @@
319
235
  "allowNo": false,
320
236
  "type": "boolean"
321
237
  },
322
- "color": {
323
- "char": "c",
324
- "description": "New color hex code for the branch (e.g., \"#ff5733\")",
325
- "name": "color",
326
- "required": false,
327
- "hasDynamicHelp": false,
328
- "multiple": false,
329
- "type": "option"
330
- },
331
- "description": {
332
- "char": "d",
333
- "description": "New description for the branch",
334
- "name": "description",
335
- "required": false,
336
- "hasDynamicHelp": false,
337
- "multiple": false,
338
- "type": "option"
339
- },
340
- "label": {
341
- "char": "l",
342
- "description": "New label for the branch",
343
- "name": "label",
344
- "required": false,
345
- "hasDynamicHelp": false,
346
- "multiple": false,
347
- "type": "option"
348
- },
349
238
  "output": {
350
239
  "char": "o",
351
240
  "description": "Output format",
@@ -359,20 +248,11 @@
359
248
  "json"
360
249
  ],
361
250
  "type": "option"
362
- },
363
- "workspace": {
364
- "char": "w",
365
- "description": "Workspace ID (uses profile workspace if not provided)",
366
- "name": "workspace",
367
- "required": false,
368
- "hasDynamicHelp": false,
369
- "multiple": false,
370
- "type": "option"
371
251
  }
372
252
  },
373
253
  "hasDynamicHelp": false,
374
254
  "hiddenAliases": [],
375
- "id": "branch:edit",
255
+ "id": "branch:list",
376
256
  "pluginAlias": "@xano/cli",
377
257
  "pluginName": "@xano/cli",
378
258
  "pluginType": "core",
@@ -383,24 +263,24 @@
383
263
  "dist",
384
264
  "commands",
385
265
  "branch",
386
- "edit",
266
+ "list",
387
267
  "index.js"
388
268
  ]
389
269
  },
390
- "branch:list": {
270
+ "branch:set_live": {
391
271
  "aliases": [],
392
272
  "args": {
393
- "workspace_id": {
394
- "description": "Workspace ID (uses profile workspace if not provided)",
395
- "name": "workspace_id",
396
- "required": false
273
+ "branch_label": {
274
+ "description": "Branch label to set as live (use \"v1\" for default branch)",
275
+ "name": "branch_label",
276
+ "required": true
397
277
  }
398
278
  },
399
- "description": "List all branches in a workspace",
279
+ "description": "Set a branch as the live (active) branch for API requests",
400
280
  "examples": [
401
- "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
402
- "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
403
- "$ 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"
281
+ "$ 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",
282
+ "$ xano branch set-live v1 --force\nBranch 'v1' is now live\n",
283
+ "$ 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"
404
284
  ],
405
285
  "flags": {
406
286
  "profile": {
@@ -422,6 +302,14 @@
422
302
  "allowNo": false,
423
303
  "type": "boolean"
424
304
  },
305
+ "force": {
306
+ "char": "f",
307
+ "description": "Skip confirmation prompt",
308
+ "name": "force",
309
+ "required": false,
310
+ "allowNo": false,
311
+ "type": "boolean"
312
+ },
425
313
  "output": {
426
314
  "char": "o",
427
315
  "description": "Output format",
@@ -435,11 +323,20 @@
435
323
  "json"
436
324
  ],
437
325
  "type": "option"
326
+ },
327
+ "workspace": {
328
+ "char": "w",
329
+ "description": "Workspace ID (uses profile workspace if not provided)",
330
+ "name": "workspace",
331
+ "required": false,
332
+ "hasDynamicHelp": false,
333
+ "multiple": false,
334
+ "type": "option"
438
335
  }
439
336
  },
440
337
  "hasDynamicHelp": false,
441
338
  "hiddenAliases": [],
442
- "id": "branch:list",
339
+ "id": "branch:set_live",
443
340
  "pluginAlias": "@xano/cli",
444
341
  "pluginName": "@xano/cli",
445
342
  "pluginType": "core",
@@ -450,7 +347,7 @@
450
347
  "dist",
451
348
  "commands",
452
349
  "branch",
453
- "list",
350
+ "set_live",
454
351
  "index.js"
455
352
  ]
456
353
  },
@@ -560,20 +457,20 @@
560
457
  "index.js"
561
458
  ]
562
459
  },
563
- "branch:set_live": {
460
+ "branch:get": {
564
461
  "aliases": [],
565
462
  "args": {
566
463
  "branch_label": {
567
- "description": "Branch label to set as live (use \"v1\" for default branch)",
464
+ "description": "Branch label (e.g., \"v1\", \"dev\")",
568
465
  "name": "branch_label",
569
466
  "required": true
570
467
  }
571
468
  },
572
- "description": "Set a branch as the live (active) branch for API requests",
469
+ "description": "Get details for a specific branch",
573
470
  "examples": [
574
- "$ 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",
575
- "$ xano branch set-live v1 --force\nBranch 'v1' is now live\n",
576
- "$ 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"
471
+ "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
472
+ "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
473
+ "$ 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"
577
474
  ],
578
475
  "flags": {
579
476
  "profile": {
@@ -595,14 +492,6 @@
595
492
  "allowNo": false,
596
493
  "type": "boolean"
597
494
  },
598
- "force": {
599
- "char": "f",
600
- "description": "Skip confirmation prompt",
601
- "name": "force",
602
- "required": false,
603
- "allowNo": false,
604
- "type": "boolean"
605
- },
606
495
  "output": {
607
496
  "char": "o",
608
497
  "description": "Output format",
@@ -629,7 +518,7 @@
629
518
  },
630
519
  "hasDynamicHelp": false,
631
520
  "hiddenAliases": [],
632
- "id": "branch:set_live",
521
+ "id": "branch:get",
633
522
  "pluginAlias": "@xano/cli",
634
523
  "pluginName": "@xano/cli",
635
524
  "pluginType": "core",
@@ -640,29 +529,24 @@
640
529
  "dist",
641
530
  "commands",
642
531
  "branch",
643
- "set_live",
532
+ "get",
644
533
  "index.js"
645
534
  ]
646
535
  },
647
- "function:edit": {
536
+ "branch:delete": {
648
537
  "aliases": [],
649
538
  "args": {
650
- "function_id": {
651
- "description": "Function ID to edit",
652
- "name": "function_id",
653
- "required": false
539
+ "branch_label": {
540
+ "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
541
+ "name": "branch_label",
542
+ "required": true
654
543
  }
655
544
  },
656
- "description": "Edit a function in a workspace",
545
+ "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
657
546
  "examples": [
658
- "$ 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",
659
- "$ 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",
660
- "$ xano function:edit 163 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
661
- "$ xano function:edit 163 -w 40 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
662
- "$ xano function:edit -f function.xs\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
663
- "$ 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",
664
- "$ cat function.xs | xano function:edit 163 --stdin\nFunction updated successfully!\nID: 163\nName: my_function\n",
665
- "$ xano function:edit 163 -f function.xs -o json\n{\n \"id\": 163,\n \"name\": \"my_function\",\n ...\n}\n"
547
+ "$ 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",
548
+ "$ xano branch delete dev --force\nDeleted branch: dev\n",
549
+ "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
666
550
  ],
667
551
  "flags": {
668
552
  "profile": {
@@ -684,26 +568,14 @@
684
568
  "allowNo": false,
685
569
  "type": "boolean"
686
570
  },
687
- "edit": {
688
- "char": "e",
689
- "description": "Open file in editor before updating function (requires --file)",
690
- "name": "edit",
571
+ "force": {
572
+ "char": "f",
573
+ "description": "Skip confirmation prompt",
574
+ "name": "force",
691
575
  "required": false,
692
576
  "allowNo": false,
693
577
  "type": "boolean"
694
578
  },
695
- "file": {
696
- "char": "f",
697
- "description": "Path to file containing XanoScript code",
698
- "exclusive": [
699
- "stdin"
700
- ],
701
- "name": "file",
702
- "required": false,
703
- "hasDynamicHelp": false,
704
- "multiple": false,
705
- "type": "option"
706
- },
707
579
  "output": {
708
580
  "char": "o",
709
581
  "description": "Output format",
@@ -718,28 +590,10 @@
718
590
  ],
719
591
  "type": "option"
720
592
  },
721
- "publish": {
722
- "description": "Publish the function after editing",
723
- "name": "publish",
724
- "required": false,
725
- "allowNo": false,
726
- "type": "boolean"
727
- },
728
- "stdin": {
729
- "char": "s",
730
- "description": "Read XanoScript code from stdin",
731
- "exclusive": [
732
- "file"
733
- ],
734
- "name": "stdin",
735
- "required": false,
736
- "allowNo": false,
737
- "type": "boolean"
738
- },
739
- "workspace": {
740
- "char": "w",
741
- "description": "Workspace ID (optional if set in profile)",
742
- "name": "workspace",
593
+ "workspace": {
594
+ "char": "w",
595
+ "description": "Workspace ID (uses profile workspace if not provided)",
596
+ "name": "workspace",
743
597
  "required": false,
744
598
  "hasDynamicHelp": false,
745
599
  "multiple": false,
@@ -748,7 +602,7 @@
748
602
  },
749
603
  "hasDynamicHelp": false,
750
604
  "hiddenAliases": [],
751
- "id": "function:edit",
605
+ "id": "branch:delete",
752
606
  "pluginAlias": "@xano/cli",
753
607
  "pluginName": "@xano/cli",
754
608
  "pluginType": "core",
@@ -758,20 +612,25 @@
758
612
  "relativePath": [
759
613
  "dist",
760
614
  "commands",
761
- "function",
762
- "edit",
615
+ "branch",
616
+ "delete",
763
617
  "index.js"
764
618
  ]
765
619
  },
766
- "function:list": {
620
+ "branch:edit": {
767
621
  "aliases": [],
768
- "args": {},
769
- "description": "List all functions in a workspace from the Xano Metadata API",
622
+ "args": {
623
+ "branch_label": {
624
+ "description": "Branch label to edit (cannot edit \"v1\" label)",
625
+ "name": "branch_label",
626
+ "required": true
627
+ }
628
+ },
629
+ "description": "Update an existing branch (cannot update \"v1\" label)",
770
630
  "examples": [
771
- "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
772
- "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
773
- "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
774
- "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
631
+ "$ xano branch edit dev --label development\nUpdated branch: development\n",
632
+ "$ xano branch edit feature-auth -l feature-authentication --color \"#ff5733\"\nUpdated branch: feature-authentication\n Color: #ff5733\n",
633
+ "$ xano branch edit staging --description \"Staging environment\" -o json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"staging\",\n \"backup\": false\n}\n"
775
634
  ],
776
635
  "flags": {
777
636
  "profile": {
@@ -793,31 +652,31 @@
793
652
  "allowNo": false,
794
653
  "type": "boolean"
795
654
  },
796
- "include_draft": {
797
- "description": "Include draft functions",
798
- "name": "include_draft",
655
+ "color": {
656
+ "char": "c",
657
+ "description": "New color hex code for the branch (e.g., \"#ff5733\")",
658
+ "name": "color",
799
659
  "required": false,
800
- "allowNo": false,
801
- "type": "boolean"
660
+ "hasDynamicHelp": false,
661
+ "multiple": false,
662
+ "type": "option"
802
663
  },
803
- "include_xanoscript": {
804
- "description": "Include XanoScript in response",
805
- "name": "include_xanoscript",
664
+ "description": {
665
+ "char": "d",
666
+ "description": "New description for the branch",
667
+ "name": "description",
806
668
  "required": false,
807
- "allowNo": false,
808
- "type": "boolean"
669
+ "hasDynamicHelp": false,
670
+ "multiple": false,
671
+ "type": "option"
809
672
  },
810
- "order": {
811
- "description": "Sort order",
812
- "name": "order",
673
+ "label": {
674
+ "char": "l",
675
+ "description": "New label for the branch",
676
+ "name": "label",
813
677
  "required": false,
814
- "default": "desc",
815
678
  "hasDynamicHelp": false,
816
679
  "multiple": false,
817
- "options": [
818
- "asc",
819
- "desc"
820
- ],
821
680
  "type": "option"
822
681
  },
823
682
  "output": {
@@ -834,33 +693,125 @@
834
693
  ],
835
694
  "type": "option"
836
695
  },
837
- "page": {
838
- "description": "Page number for pagination",
839
- "name": "page",
696
+ "workspace": {
697
+ "char": "w",
698
+ "description": "Workspace ID (uses profile workspace if not provided)",
699
+ "name": "workspace",
700
+ "required": false,
701
+ "hasDynamicHelp": false,
702
+ "multiple": false,
703
+ "type": "option"
704
+ }
705
+ },
706
+ "hasDynamicHelp": false,
707
+ "hiddenAliases": [],
708
+ "id": "branch:edit",
709
+ "pluginAlias": "@xano/cli",
710
+ "pluginName": "@xano/cli",
711
+ "pluginType": "core",
712
+ "strict": true,
713
+ "enableJsonFlag": false,
714
+ "isESM": true,
715
+ "relativePath": [
716
+ "dist",
717
+ "commands",
718
+ "branch",
719
+ "edit",
720
+ "index.js"
721
+ ]
722
+ },
723
+ "function:edit": {
724
+ "aliases": [],
725
+ "args": {
726
+ "function_id": {
727
+ "description": "Function ID to edit",
728
+ "name": "function_id",
729
+ "required": false
730
+ }
731
+ },
732
+ "description": "Edit a function in a workspace",
733
+ "examples": [
734
+ "$ 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",
735
+ "$ 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",
736
+ "$ xano function:edit 163 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
737
+ "$ xano function:edit 163 -w 40 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
738
+ "$ xano function:edit -f function.xs\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
739
+ "$ 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",
740
+ "$ cat function.xs | xano function:edit 163 --stdin\nFunction updated successfully!\nID: 163\nName: my_function\n",
741
+ "$ xano function:edit 163 -f function.xs -o json\n{\n \"id\": 163,\n \"name\": \"my_function\",\n ...\n}\n"
742
+ ],
743
+ "flags": {
744
+ "profile": {
745
+ "char": "p",
746
+ "description": "Profile to use (uses default profile if not specified)",
747
+ "env": "XANO_PROFILE",
748
+ "name": "profile",
840
749
  "required": false,
841
- "default": 1,
842
750
  "hasDynamicHelp": false,
843
751
  "multiple": false,
844
752
  "type": "option"
845
753
  },
846
- "per_page": {
847
- "description": "Number of results per page",
848
- "name": "per_page",
754
+ "verbose": {
755
+ "char": "v",
756
+ "description": "Show detailed request/response information",
757
+ "env": "XANO_VERBOSE",
758
+ "name": "verbose",
759
+ "required": false,
760
+ "allowNo": false,
761
+ "type": "boolean"
762
+ },
763
+ "edit": {
764
+ "char": "e",
765
+ "description": "Open file in editor before updating function (requires --file)",
766
+ "name": "edit",
767
+ "required": false,
768
+ "allowNo": false,
769
+ "type": "boolean"
770
+ },
771
+ "file": {
772
+ "char": "f",
773
+ "description": "Path to file containing XanoScript code",
774
+ "exclusive": [
775
+ "stdin"
776
+ ],
777
+ "name": "file",
849
778
  "required": false,
850
- "default": 50,
851
779
  "hasDynamicHelp": false,
852
780
  "multiple": false,
853
781
  "type": "option"
854
782
  },
855
- "sort": {
856
- "description": "Sort field",
857
- "name": "sort",
783
+ "output": {
784
+ "char": "o",
785
+ "description": "Output format",
786
+ "name": "output",
858
787
  "required": false,
859
- "default": "created_at",
788
+ "default": "summary",
860
789
  "hasDynamicHelp": false,
861
790
  "multiple": false,
791
+ "options": [
792
+ "summary",
793
+ "json"
794
+ ],
862
795
  "type": "option"
863
796
  },
797
+ "publish": {
798
+ "description": "Publish the function after editing",
799
+ "name": "publish",
800
+ "required": false,
801
+ "allowNo": false,
802
+ "type": "boolean"
803
+ },
804
+ "stdin": {
805
+ "char": "s",
806
+ "description": "Read XanoScript code from stdin",
807
+ "exclusive": [
808
+ "file"
809
+ ],
810
+ "name": "stdin",
811
+ "required": false,
812
+ "allowNo": false,
813
+ "type": "boolean"
814
+ },
864
815
  "workspace": {
865
816
  "char": "w",
866
817
  "description": "Workspace ID (optional if set in profile)",
@@ -873,7 +824,7 @@
873
824
  },
874
825
  "hasDynamicHelp": false,
875
826
  "hiddenAliases": [],
876
- "id": "function:list",
827
+ "id": "function:edit",
877
828
  "pluginAlias": "@xano/cli",
878
829
  "pluginName": "@xano/cli",
879
830
  "pluginType": "core",
@@ -884,27 +835,19 @@
884
835
  "dist",
885
836
  "commands",
886
837
  "function",
887
- "list",
838
+ "edit",
888
839
  "index.js"
889
840
  ]
890
841
  },
891
- "function:get": {
842
+ "function:list": {
892
843
  "aliases": [],
893
- "args": {
894
- "function_id": {
895
- "description": "Function ID",
896
- "name": "function_id",
897
- "required": false
898
- }
899
- },
900
- "description": "Get a specific function from a workspace",
844
+ "args": {},
845
+ "description": "List all functions in a workspace from the Xano Metadata API",
901
846
  "examples": [
902
- "$ xano function:get 145 -w 40\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\nDescription: Sample function\n",
903
- "$ xano function:get 145 --profile production\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\n",
904
- "$ xano function:get\nSelect a function:\n ❯ yo (ID: 145) - Sample function\n another-func (ID: 146)\n",
905
- "$ xano function:get 145 -w 40 --output json\n{\n \"id\": 145,\n \"name\": \"yo\",\n \"description\": \"Sample function\"\n}\n",
906
- "$ xano function:get 145 -p staging -o json --include_draft\n{\n \"id\": 145,\n \"name\": \"yo\"\n}\n",
907
- "$ xano function:get 145 -p staging -o xs\nfunction yo {\n input {\n }\n stack {\n }\n response = null\n}\n"
847
+ "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
848
+ "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
849
+ "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
850
+ "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
908
851
  ],
909
852
  "flags": {
910
853
  "profile": {
@@ -927,7 +870,7 @@
927
870
  "type": "boolean"
928
871
  },
929
872
  "include_draft": {
930
- "description": "Include draft version",
873
+ "description": "Include draft functions",
931
874
  "name": "include_draft",
932
875
  "required": false,
933
876
  "allowNo": false,
@@ -940,6 +883,19 @@
940
883
  "allowNo": false,
941
884
  "type": "boolean"
942
885
  },
886
+ "order": {
887
+ "description": "Sort order",
888
+ "name": "order",
889
+ "required": false,
890
+ "default": "desc",
891
+ "hasDynamicHelp": false,
892
+ "multiple": false,
893
+ "options": [
894
+ "asc",
895
+ "desc"
896
+ ],
897
+ "type": "option"
898
+ },
943
899
  "output": {
944
900
  "char": "o",
945
901
  "description": "Output format",
@@ -950,11 +906,37 @@
950
906
  "multiple": false,
951
907
  "options": [
952
908
  "summary",
953
- "json",
954
- "xs"
909
+ "json"
955
910
  ],
956
911
  "type": "option"
957
912
  },
913
+ "page": {
914
+ "description": "Page number for pagination",
915
+ "name": "page",
916
+ "required": false,
917
+ "default": 1,
918
+ "hasDynamicHelp": false,
919
+ "multiple": false,
920
+ "type": "option"
921
+ },
922
+ "per_page": {
923
+ "description": "Number of results per page",
924
+ "name": "per_page",
925
+ "required": false,
926
+ "default": 50,
927
+ "hasDynamicHelp": false,
928
+ "multiple": false,
929
+ "type": "option"
930
+ },
931
+ "sort": {
932
+ "description": "Sort field",
933
+ "name": "sort",
934
+ "required": false,
935
+ "default": "created_at",
936
+ "hasDynamicHelp": false,
937
+ "multiple": false,
938
+ "type": "option"
939
+ },
958
940
  "workspace": {
959
941
  "char": "w",
960
942
  "description": "Workspace ID (optional if set in profile)",
@@ -967,7 +949,7 @@
967
949
  },
968
950
  "hasDynamicHelp": false,
969
951
  "hiddenAliases": [],
970
- "id": "function:get",
952
+ "id": "function:list",
971
953
  "pluginAlias": "@xano/cli",
972
954
  "pluginName": "@xano/cli",
973
955
  "pluginType": "core",
@@ -978,23 +960,17 @@
978
960
  "dist",
979
961
  "commands",
980
962
  "function",
981
- "get",
963
+ "list",
982
964
  "index.js"
983
- ]
984
- },
985
- "platform:get": {
986
- "aliases": [],
987
- "args": {
988
- "platform_id": {
989
- "description": "Platform ID to retrieve",
990
- "name": "platform_id",
991
- "required": true
992
- }
993
- },
994
- "description": "Get details of a specific platform",
965
+ ]
966
+ },
967
+ "platform:list": {
968
+ "aliases": [],
969
+ "args": {},
970
+ "description": "List all platforms",
995
971
  "examples": [
996
- "$ xano platform get 23629\nPlatform ID: 23629\n Created: 2025-11-28\n Helm: 0.1.356\n Images:\n backend 0.0.2985\n frontend 0.1.3427\n database 0.1.6\n node 0.1.192\n deno 0.0.212\n redis 0.1.34\n realtime 0.1.149\n standalone 0.0.2456\n playwright 0.0.992\n static 0.0.10\n static-build 0.0.4\n backend-encoded 0.0.1396\n",
997
- "$ xano platform get 23629 -o json"
972
+ "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
973
+ "$ xano platform list --output json"
998
974
  ],
999
975
  "flags": {
1000
976
  "profile": {
@@ -1033,7 +1009,7 @@
1033
1009
  },
1034
1010
  "hasDynamicHelp": false,
1035
1011
  "hiddenAliases": [],
1036
- "id": "platform:get",
1012
+ "id": "platform:list",
1037
1013
  "pluginAlias": "@xano/cli",
1038
1014
  "pluginName": "@xano/cli",
1039
1015
  "pluginType": "core",
@@ -1044,17 +1020,27 @@
1044
1020
  "dist",
1045
1021
  "commands",
1046
1022
  "platform",
1047
- "get",
1023
+ "list",
1048
1024
  "index.js"
1049
1025
  ]
1050
1026
  },
1051
- "platform:list": {
1027
+ "function:get": {
1052
1028
  "aliases": [],
1053
- "args": {},
1054
- "description": "List all platforms",
1029
+ "args": {
1030
+ "function_id": {
1031
+ "description": "Function ID",
1032
+ "name": "function_id",
1033
+ "required": false
1034
+ }
1035
+ },
1036
+ "description": "Get a specific function from a workspace",
1055
1037
  "examples": [
1056
- "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
1057
- "$ xano platform list --output json"
1038
+ "$ xano function:get 145 -w 40\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\nDescription: Sample function\n",
1039
+ "$ xano function:get 145 --profile production\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\n",
1040
+ "$ xano function:get\nSelect a function:\n ❯ yo (ID: 145) - Sample function\n another-func (ID: 146)\n",
1041
+ "$ xano function:get 145 -w 40 --output json\n{\n \"id\": 145,\n \"name\": \"yo\",\n \"description\": \"Sample function\"\n}\n",
1042
+ "$ xano function:get 145 -p staging -o json --include_draft\n{\n \"id\": 145,\n \"name\": \"yo\"\n}\n",
1043
+ "$ xano function:get 145 -p staging -o xs\nfunction yo {\n input {\n }\n stack {\n }\n response = null\n}\n"
1058
1044
  ],
1059
1045
  "flags": {
1060
1046
  "profile": {
@@ -1076,6 +1062,20 @@
1076
1062
  "allowNo": false,
1077
1063
  "type": "boolean"
1078
1064
  },
1065
+ "include_draft": {
1066
+ "description": "Include draft version",
1067
+ "name": "include_draft",
1068
+ "required": false,
1069
+ "allowNo": false,
1070
+ "type": "boolean"
1071
+ },
1072
+ "include_xanoscript": {
1073
+ "description": "Include XanoScript in response",
1074
+ "name": "include_xanoscript",
1075
+ "required": false,
1076
+ "allowNo": false,
1077
+ "type": "boolean"
1078
+ },
1079
1079
  "output": {
1080
1080
  "char": "o",
1081
1081
  "description": "Output format",
@@ -1086,14 +1086,24 @@
1086
1086
  "multiple": false,
1087
1087
  "options": [
1088
1088
  "summary",
1089
- "json"
1089
+ "json",
1090
+ "xs"
1090
1091
  ],
1091
1092
  "type": "option"
1093
+ },
1094
+ "workspace": {
1095
+ "char": "w",
1096
+ "description": "Workspace ID (optional if set in profile)",
1097
+ "name": "workspace",
1098
+ "required": false,
1099
+ "hasDynamicHelp": false,
1100
+ "multiple": false,
1101
+ "type": "option"
1092
1102
  }
1093
1103
  },
1094
1104
  "hasDynamicHelp": false,
1095
1105
  "hiddenAliases": [],
1096
- "id": "platform:list",
1106
+ "id": "function:get",
1097
1107
  "pluginAlias": "@xano/cli",
1098
1108
  "pluginName": "@xano/cli",
1099
1109
  "pluginType": "core",
@@ -1103,8 +1113,8 @@
1103
1113
  "relativePath": [
1104
1114
  "dist",
1105
1115
  "commands",
1106
- "platform",
1107
- "list",
1116
+ "function",
1117
+ "get",
1108
1118
  "index.js"
1109
1119
  ]
1110
1120
  },
@@ -1204,6 +1214,31 @@
1204
1214
  "index.js"
1205
1215
  ]
1206
1216
  },
1217
+ "profile:get": {
1218
+ "aliases": [],
1219
+ "args": {},
1220
+ "description": "Get the current default profile name",
1221
+ "examples": [
1222
+ "$ xano profile get\nproduction\n"
1223
+ ],
1224
+ "flags": {},
1225
+ "hasDynamicHelp": false,
1226
+ "hiddenAliases": [],
1227
+ "id": "profile:get",
1228
+ "pluginAlias": "@xano/cli",
1229
+ "pluginName": "@xano/cli",
1230
+ "pluginType": "core",
1231
+ "strict": true,
1232
+ "enableJsonFlag": false,
1233
+ "isESM": true,
1234
+ "relativePath": [
1235
+ "dist",
1236
+ "commands",
1237
+ "profile",
1238
+ "get",
1239
+ "index.js"
1240
+ ]
1241
+ },
1207
1242
  "profile:delete": {
1208
1243
  "aliases": [],
1209
1244
  "args": {
@@ -1376,78 +1411,28 @@
1376
1411
  "index.js"
1377
1412
  ]
1378
1413
  },
1379
- "profile:get": {
1380
- "aliases": [],
1381
- "args": {},
1382
- "description": "Get the current default profile name",
1383
- "examples": [
1384
- "$ xano profile get\nproduction\n"
1385
- ],
1386
- "flags": {},
1387
- "hasDynamicHelp": false,
1388
- "hiddenAliases": [],
1389
- "id": "profile:get",
1390
- "pluginAlias": "@xano/cli",
1391
- "pluginName": "@xano/cli",
1392
- "pluginType": "core",
1393
- "strict": true,
1394
- "enableJsonFlag": false,
1395
- "isESM": true,
1396
- "relativePath": [
1397
- "dist",
1398
- "commands",
1399
- "profile",
1400
- "get",
1401
- "index.js"
1402
- ]
1403
- },
1404
- "profile:me": {
1414
+ "profile:list": {
1405
1415
  "aliases": [],
1406
1416
  "args": {},
1407
- "description": "Get information about the currently authenticated user",
1417
+ "description": "List all available profile configurations",
1408
1418
  "examples": [
1409
- "$ xano profile:me\nUser Information:\n ID: 1\n Name: John Doe\n Email: john@example.com\n",
1410
- "$ xano profile:me --profile production\nUser Information:\n ID: 42\n Name: Admin User\n Email: admin@example.com\n",
1411
- "$ xano profile:me --output json\n{\n \"id\": 1,\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\"\n}\n"
1419
+ "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1420
+ "$ 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",
1421
+ "$ 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"
1412
1422
  ],
1413
1423
  "flags": {
1414
- "profile": {
1415
- "char": "p",
1416
- "description": "Profile to use (uses default profile if not specified)",
1417
- "env": "XANO_PROFILE",
1418
- "name": "profile",
1419
- "required": false,
1420
- "hasDynamicHelp": false,
1421
- "multiple": false,
1422
- "type": "option"
1423
- },
1424
- "verbose": {
1425
- "char": "v",
1426
- "description": "Show detailed request/response information",
1427
- "env": "XANO_VERBOSE",
1428
- "name": "verbose",
1424
+ "details": {
1425
+ "char": "d",
1426
+ "description": "Show detailed information for each profile",
1427
+ "name": "details",
1429
1428
  "required": false,
1430
1429
  "allowNo": false,
1431
1430
  "type": "boolean"
1432
- },
1433
- "output": {
1434
- "char": "o",
1435
- "description": "Output format",
1436
- "name": "output",
1437
- "required": false,
1438
- "default": "summary",
1439
- "hasDynamicHelp": false,
1440
- "multiple": false,
1441
- "options": [
1442
- "summary",
1443
- "json"
1444
- ],
1445
- "type": "option"
1446
1431
  }
1447
1432
  },
1448
1433
  "hasDynamicHelp": false,
1449
1434
  "hiddenAliases": [],
1450
- "id": "profile:me",
1435
+ "id": "profile:list",
1451
1436
  "pluginAlias": "@xano/cli",
1452
1437
  "pluginName": "@xano/cli",
1453
1438
  "pluginType": "core",
@@ -1458,24 +1443,23 @@
1458
1443
  "dist",
1459
1444
  "commands",
1460
1445
  "profile",
1461
- "me",
1446
+ "list",
1462
1447
  "index.js"
1463
1448
  ]
1464
1449
  },
1465
- "branch:get": {
1450
+ "platform:get": {
1466
1451
  "aliases": [],
1467
1452
  "args": {
1468
- "branch_label": {
1469
- "description": "Branch label (e.g., \"v1\", \"dev\")",
1470
- "name": "branch_label",
1453
+ "platform_id": {
1454
+ "description": "Platform ID to retrieve",
1455
+ "name": "platform_id",
1471
1456
  "required": true
1472
1457
  }
1473
1458
  },
1474
- "description": "Get details for a specific branch",
1459
+ "description": "Get details of a specific platform",
1475
1460
  "examples": [
1476
- "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
1477
- "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
1478
- "$ 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"
1461
+ "$ xano platform get 23629\nPlatform ID: 23629\n Created: 2025-11-28\n Helm: 0.1.356\n Images:\n backend 0.0.2985\n frontend 0.1.3427\n database 0.1.6\n node 0.1.192\n deno 0.0.212\n redis 0.1.34\n realtime 0.1.149\n standalone 0.0.2456\n playwright 0.0.992\n static 0.0.10\n static-build 0.0.4\n backend-encoded 0.0.1396\n",
1462
+ "$ xano platform get 23629 -o json"
1479
1463
  ],
1480
1464
  "flags": {
1481
1465
  "profile": {
@@ -1510,20 +1494,11 @@
1510
1494
  "json"
1511
1495
  ],
1512
1496
  "type": "option"
1513
- },
1514
- "workspace": {
1515
- "char": "w",
1516
- "description": "Workspace ID (uses profile workspace if not provided)",
1517
- "name": "workspace",
1518
- "required": false,
1519
- "hasDynamicHelp": false,
1520
- "multiple": false,
1521
- "type": "option"
1522
1497
  }
1523
1498
  },
1524
1499
  "hasDynamicHelp": false,
1525
1500
  "hiddenAliases": [],
1526
- "id": "branch:get",
1501
+ "id": "platform:get",
1527
1502
  "pluginAlias": "@xano/cli",
1528
1503
  "pluginName": "@xano/cli",
1529
1504
  "pluginType": "core",
@@ -1533,28 +1508,23 @@
1533
1508
  "relativePath": [
1534
1509
  "dist",
1535
1510
  "commands",
1536
- "branch",
1511
+ "platform",
1537
1512
  "get",
1538
1513
  "index.js"
1539
1514
  ]
1540
1515
  },
1541
- "profile:set": {
1516
+ "profile:token": {
1542
1517
  "aliases": [],
1543
- "args": {
1544
- "name": {
1545
- "description": "Profile name to set as default",
1546
- "name": "name",
1547
- "required": true
1548
- }
1549
- },
1550
- "description": "Set the default profile",
1518
+ "args": {},
1519
+ "description": "Print the access token for the default profile",
1551
1520
  "examples": [
1552
- "$ xano profile set production\nDefault profile set to 'production'\n"
1521
+ "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1522
+ "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1553
1523
  ],
1554
1524
  "flags": {},
1555
1525
  "hasDynamicHelp": false,
1556
1526
  "hiddenAliases": [],
1557
- "id": "profile:set",
1527
+ "id": "profile:token",
1558
1528
  "pluginAlias": "@xano/cli",
1559
1529
  "pluginName": "@xano/cli",
1560
1530
  "pluginType": "core",
@@ -1565,32 +1535,57 @@
1565
1535
  "dist",
1566
1536
  "commands",
1567
1537
  "profile",
1568
- "set",
1538
+ "token",
1569
1539
  "index.js"
1570
1540
  ]
1571
1541
  },
1572
- "profile:list": {
1542
+ "profile:me": {
1573
1543
  "aliases": [],
1574
1544
  "args": {},
1575
- "description": "List all available profile configurations",
1545
+ "description": "Get information about the currently authenticated user",
1576
1546
  "examples": [
1577
- "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1578
- "$ 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",
1579
- "$ 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"
1547
+ "$ xano profile:me\nUser Information:\n ID: 1\n Name: John Doe\n Email: john@example.com\n",
1548
+ "$ xano profile:me --profile production\nUser Information:\n ID: 42\n Name: Admin User\n Email: admin@example.com\n",
1549
+ "$ xano profile:me --output json\n{\n \"id\": 1,\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\"\n}\n"
1580
1550
  ],
1581
1551
  "flags": {
1582
- "details": {
1583
- "char": "d",
1584
- "description": "Show detailed information for each profile",
1585
- "name": "details",
1552
+ "profile": {
1553
+ "char": "p",
1554
+ "description": "Profile to use (uses default profile if not specified)",
1555
+ "env": "XANO_PROFILE",
1556
+ "name": "profile",
1557
+ "required": false,
1558
+ "hasDynamicHelp": false,
1559
+ "multiple": false,
1560
+ "type": "option"
1561
+ },
1562
+ "verbose": {
1563
+ "char": "v",
1564
+ "description": "Show detailed request/response information",
1565
+ "env": "XANO_VERBOSE",
1566
+ "name": "verbose",
1586
1567
  "required": false,
1587
1568
  "allowNo": false,
1588
1569
  "type": "boolean"
1570
+ },
1571
+ "output": {
1572
+ "char": "o",
1573
+ "description": "Output format",
1574
+ "name": "output",
1575
+ "required": false,
1576
+ "default": "summary",
1577
+ "hasDynamicHelp": false,
1578
+ "multiple": false,
1579
+ "options": [
1580
+ "summary",
1581
+ "json"
1582
+ ],
1583
+ "type": "option"
1589
1584
  }
1590
1585
  },
1591
1586
  "hasDynamicHelp": false,
1592
1587
  "hiddenAliases": [],
1593
- "id": "profile:list",
1588
+ "id": "profile:me",
1594
1589
  "pluginAlias": "@xano/cli",
1595
1590
  "pluginName": "@xano/cli",
1596
1591
  "pluginType": "core",
@@ -1601,22 +1596,49 @@
1601
1596
  "dist",
1602
1597
  "commands",
1603
1598
  "profile",
1604
- "list",
1599
+ "me",
1605
1600
  "index.js"
1606
1601
  ]
1607
1602
  },
1608
- "profile:token": {
1603
+ "profile:wizard": {
1609
1604
  "aliases": [],
1610
1605
  "args": {},
1611
- "description": "Print the access token for the default profile",
1606
+ "description": "Create a new profile configuration using an interactive wizard",
1612
1607
  "examples": [
1613
- "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1614
- "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1608
+ "$ 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"
1615
1609
  ],
1616
- "flags": {},
1610
+ "flags": {
1611
+ "insecure": {
1612
+ "char": "k",
1613
+ "description": "Skip TLS certificate verification (for self-signed certificates)",
1614
+ "name": "insecure",
1615
+ "required": false,
1616
+ "allowNo": false,
1617
+ "type": "boolean"
1618
+ },
1619
+ "name": {
1620
+ "char": "n",
1621
+ "description": "Profile name (skip prompt if provided)",
1622
+ "name": "name",
1623
+ "required": false,
1624
+ "hasDynamicHelp": false,
1625
+ "multiple": false,
1626
+ "type": "option"
1627
+ },
1628
+ "origin": {
1629
+ "char": "o",
1630
+ "description": "Xano instance origin URL",
1631
+ "name": "origin",
1632
+ "required": false,
1633
+ "default": "https://app.xano.com",
1634
+ "hasDynamicHelp": false,
1635
+ "multiple": false,
1636
+ "type": "option"
1637
+ }
1638
+ },
1617
1639
  "hasDynamicHelp": false,
1618
1640
  "hiddenAliases": [],
1619
- "id": "profile:token",
1641
+ "id": "profile:wizard",
1620
1642
  "pluginAlias": "@xano/cli",
1621
1643
  "pluginName": "@xano/cli",
1622
1644
  "pluginType": "core",
@@ -1627,7 +1649,7 @@
1627
1649
  "dist",
1628
1650
  "commands",
1629
1651
  "profile",
1630
- "token",
1652
+ "wizard",
1631
1653
  "index.js"
1632
1654
  ]
1633
1655
  },
@@ -1768,19 +1790,15 @@
1768
1790
  "index.js"
1769
1791
  ]
1770
1792
  },
1771
- "release:edit": {
1793
+ "static_host:list": {
1772
1794
  "aliases": [],
1773
- "args": {
1774
- "release_name": {
1775
- "description": "Release name to edit",
1776
- "name": "release_name",
1777
- "required": true
1778
- }
1779
- },
1780
- "description": "Edit an existing release",
1795
+ "args": {},
1796
+ "description": "List all static hosts in a workspace from the Xano Metadata API",
1781
1797
  "examples": [
1782
- "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
1783
- "$ xano release edit v1.0 --description \"New description\" -o json"
1798
+ "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
1799
+ "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
1800
+ "$ xano static_host:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"my-static-host\",\n \"domain\": \"example.com\"\n }\n]\n",
1801
+ "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
1784
1802
  ],
1785
1803
  "flags": {
1786
1804
  "profile": {
@@ -1802,41 +1820,41 @@
1802
1820
  "allowNo": false,
1803
1821
  "type": "boolean"
1804
1822
  },
1805
- "description": {
1806
- "char": "d",
1807
- "description": "New description",
1808
- "name": "description",
1823
+ "output": {
1824
+ "char": "o",
1825
+ "description": "Output format",
1826
+ "name": "output",
1809
1827
  "required": false,
1828
+ "default": "summary",
1810
1829
  "hasDynamicHelp": false,
1811
1830
  "multiple": false,
1831
+ "options": [
1832
+ "summary",
1833
+ "json"
1834
+ ],
1812
1835
  "type": "option"
1813
1836
  },
1814
- "name": {
1815
- "char": "n",
1816
- "description": "New name for the release",
1817
- "name": "name",
1837
+ "page": {
1838
+ "description": "Page number for pagination",
1839
+ "name": "page",
1818
1840
  "required": false,
1841
+ "default": 1,
1819
1842
  "hasDynamicHelp": false,
1820
1843
  "multiple": false,
1821
1844
  "type": "option"
1822
1845
  },
1823
- "output": {
1824
- "char": "o",
1825
- "description": "Output format",
1826
- "name": "output",
1846
+ "per_page": {
1847
+ "description": "Number of results per page",
1848
+ "name": "per_page",
1827
1849
  "required": false,
1828
- "default": "summary",
1850
+ "default": 50,
1829
1851
  "hasDynamicHelp": false,
1830
1852
  "multiple": false,
1831
- "options": [
1832
- "summary",
1833
- "json"
1834
- ],
1835
1853
  "type": "option"
1836
1854
  },
1837
1855
  "workspace": {
1838
1856
  "char": "w",
1839
- "description": "Workspace ID (uses profile workspace if not provided)",
1857
+ "description": "Workspace ID (optional if set in profile)",
1840
1858
  "name": "workspace",
1841
1859
  "required": false,
1842
1860
  "hasDynamicHelp": false,
@@ -1846,7 +1864,7 @@
1846
1864
  },
1847
1865
  "hasDynamicHelp": false,
1848
1866
  "hiddenAliases": [],
1849
- "id": "release:edit",
1867
+ "id": "static_host:list",
1850
1868
  "pluginAlias": "@xano/cli",
1851
1869
  "pluginName": "@xano/cli",
1852
1870
  "pluginType": "core",
@@ -1856,25 +1874,56 @@
1856
1874
  "relativePath": [
1857
1875
  "dist",
1858
1876
  "commands",
1859
- "release",
1860
- "edit",
1877
+ "static_host",
1878
+ "list",
1861
1879
  "index.js"
1862
1880
  ]
1863
1881
  },
1864
- "release:export": {
1882
+ "profile:set": {
1883
+ "aliases": [],
1884
+ "args": {
1885
+ "name": {
1886
+ "description": "Profile name to set as default",
1887
+ "name": "name",
1888
+ "required": true
1889
+ }
1890
+ },
1891
+ "description": "Set the default profile",
1892
+ "examples": [
1893
+ "$ xano profile set production\nDefault profile set to 'production'\n"
1894
+ ],
1895
+ "flags": {},
1896
+ "hasDynamicHelp": false,
1897
+ "hiddenAliases": [],
1898
+ "id": "profile:set",
1899
+ "pluginAlias": "@xano/cli",
1900
+ "pluginName": "@xano/cli",
1901
+ "pluginType": "core",
1902
+ "strict": true,
1903
+ "enableJsonFlag": false,
1904
+ "isESM": true,
1905
+ "relativePath": [
1906
+ "dist",
1907
+ "commands",
1908
+ "profile",
1909
+ "set",
1910
+ "index.js"
1911
+ ]
1912
+ },
1913
+ "release:delete": {
1865
1914
  "aliases": [],
1866
1915
  "args": {
1867
1916
  "release_name": {
1868
- "description": "Release name to export",
1917
+ "description": "Release name to delete",
1869
1918
  "name": "release_name",
1870
1919
  "required": true
1871
1920
  }
1872
1921
  },
1873
- "description": "Export (download) a release to a local file",
1922
+ "description": "Delete a release permanently. This action cannot be undone.",
1874
1923
  "examples": [
1875
- "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
1876
- "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
1877
- "$ xano release export v1.0 -o json"
1924
+ "$ 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",
1925
+ "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1926
+ "$ xano release delete v1.0 -f -o json"
1878
1927
  ],
1879
1928
  "flags": {
1880
1929
  "profile": {
@@ -1896,10 +1945,18 @@
1896
1945
  "allowNo": false,
1897
1946
  "type": "boolean"
1898
1947
  },
1899
- "format": {
1948
+ "force": {
1949
+ "char": "f",
1950
+ "description": "Skip confirmation prompt",
1951
+ "name": "force",
1952
+ "required": false,
1953
+ "allowNo": false,
1954
+ "type": "boolean"
1955
+ },
1956
+ "output": {
1900
1957
  "char": "o",
1901
1958
  "description": "Output format",
1902
- "name": "format",
1959
+ "name": "output",
1903
1960
  "required": false,
1904
1961
  "default": "summary",
1905
1962
  "hasDynamicHelp": false,
@@ -1910,14 +1967,6 @@
1910
1967
  ],
1911
1968
  "type": "option"
1912
1969
  },
1913
- "output": {
1914
- "description": "Output file path (defaults to ./release-{name}.tar.gz)",
1915
- "name": "output",
1916
- "required": false,
1917
- "hasDynamicHelp": false,
1918
- "multiple": false,
1919
- "type": "option"
1920
- },
1921
1970
  "workspace": {
1922
1971
  "char": "w",
1923
1972
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -1930,7 +1979,7 @@
1930
1979
  },
1931
1980
  "hasDynamicHelp": false,
1932
1981
  "hiddenAliases": [],
1933
- "id": "release:export",
1982
+ "id": "release:delete",
1934
1983
  "pluginAlias": "@xano/cli",
1935
1984
  "pluginName": "@xano/cli",
1936
1985
  "pluginType": "core",
@@ -1941,24 +1990,23 @@
1941
1990
  "dist",
1942
1991
  "commands",
1943
1992
  "release",
1944
- "export",
1993
+ "delete",
1945
1994
  "index.js"
1946
1995
  ]
1947
1996
  },
1948
- "release:delete": {
1997
+ "release:edit": {
1949
1998
  "aliases": [],
1950
1999
  "args": {
1951
2000
  "release_name": {
1952
- "description": "Release name to delete",
2001
+ "description": "Release name to edit",
1953
2002
  "name": "release_name",
1954
2003
  "required": true
1955
2004
  }
1956
2005
  },
1957
- "description": "Delete a release permanently. This action cannot be undone.",
2006
+ "description": "Edit an existing release",
1958
2007
  "examples": [
1959
- "$ 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",
1960
- "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1961
- "$ xano release delete v1.0 -f -o json"
2008
+ "$ xano release edit v1.0 --name \"v1.0-final\" --description \"Updated description\"\nUpdated release: v1.0-final - ID: 10\n",
2009
+ "$ xano release edit v1.0 --description \"New description\" -o json"
1962
2010
  ],
1963
2011
  "flags": {
1964
2012
  "profile": {
@@ -1980,13 +2028,23 @@
1980
2028
  "allowNo": false,
1981
2029
  "type": "boolean"
1982
2030
  },
1983
- "force": {
1984
- "char": "f",
1985
- "description": "Skip confirmation prompt",
1986
- "name": "force",
2031
+ "description": {
2032
+ "char": "d",
2033
+ "description": "New description",
2034
+ "name": "description",
1987
2035
  "required": false,
1988
- "allowNo": false,
1989
- "type": "boolean"
2036
+ "hasDynamicHelp": false,
2037
+ "multiple": false,
2038
+ "type": "option"
2039
+ },
2040
+ "name": {
2041
+ "char": "n",
2042
+ "description": "New name for the release",
2043
+ "name": "name",
2044
+ "required": false,
2045
+ "hasDynamicHelp": false,
2046
+ "multiple": false,
2047
+ "type": "option"
1990
2048
  },
1991
2049
  "output": {
1992
2050
  "char": "o",
@@ -2014,7 +2072,7 @@
2014
2072
  },
2015
2073
  "hasDynamicHelp": false,
2016
2074
  "hiddenAliases": [],
2017
- "id": "release:delete",
2075
+ "id": "release:edit",
2018
2076
  "pluginAlias": "@xano/cli",
2019
2077
  "pluginName": "@xano/cli",
2020
2078
  "pluginType": "core",
@@ -2025,41 +2083,72 @@
2025
2083
  "dist",
2026
2084
  "commands",
2027
2085
  "release",
2028
- "delete",
2086
+ "edit",
2029
2087
  "index.js"
2030
2088
  ]
2031
2089
  },
2032
- "profile:wizard": {
2090
+ "release:export": {
2033
2091
  "aliases": [],
2034
- "args": {},
2035
- "description": "Create a new profile configuration using an interactive wizard",
2092
+ "args": {
2093
+ "release_name": {
2094
+ "description": "Release name to export",
2095
+ "name": "release_name",
2096
+ "required": true
2097
+ }
2098
+ },
2099
+ "description": "Export (download) a release to a local file",
2036
2100
  "examples": [
2037
- "$ 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"
2101
+ "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
2102
+ "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
2103
+ "$ xano release export v1.0 -o json"
2038
2104
  ],
2039
2105
  "flags": {
2040
- "insecure": {
2041
- "char": "k",
2042
- "description": "Skip TLS certificate verification (for self-signed certificates)",
2043
- "name": "insecure",
2106
+ "profile": {
2107
+ "char": "p",
2108
+ "description": "Profile to use (uses default profile if not specified)",
2109
+ "env": "XANO_PROFILE",
2110
+ "name": "profile",
2111
+ "required": false,
2112
+ "hasDynamicHelp": false,
2113
+ "multiple": false,
2114
+ "type": "option"
2115
+ },
2116
+ "verbose": {
2117
+ "char": "v",
2118
+ "description": "Show detailed request/response information",
2119
+ "env": "XANO_VERBOSE",
2120
+ "name": "verbose",
2044
2121
  "required": false,
2045
2122
  "allowNo": false,
2046
2123
  "type": "boolean"
2047
2124
  },
2048
- "name": {
2049
- "char": "n",
2050
- "description": "Profile name (skip prompt if provided)",
2051
- "name": "name",
2125
+ "format": {
2126
+ "char": "o",
2127
+ "description": "Output format",
2128
+ "name": "format",
2129
+ "required": false,
2130
+ "default": "summary",
2131
+ "hasDynamicHelp": false,
2132
+ "multiple": false,
2133
+ "options": [
2134
+ "summary",
2135
+ "json"
2136
+ ],
2137
+ "type": "option"
2138
+ },
2139
+ "output": {
2140
+ "description": "Output file path (defaults to ./release-{name}.tar.gz)",
2141
+ "name": "output",
2052
2142
  "required": false,
2053
2143
  "hasDynamicHelp": false,
2054
2144
  "multiple": false,
2055
2145
  "type": "option"
2056
2146
  },
2057
- "origin": {
2058
- "char": "o",
2059
- "description": "Xano instance origin URL",
2060
- "name": "origin",
2147
+ "workspace": {
2148
+ "char": "w",
2149
+ "description": "Workspace ID (uses profile workspace if not provided)",
2150
+ "name": "workspace",
2061
2151
  "required": false,
2062
- "default": "https://app.xano.com",
2063
2152
  "hasDynamicHelp": false,
2064
2153
  "multiple": false,
2065
2154
  "type": "option"
@@ -2067,7 +2156,7 @@
2067
2156
  },
2068
2157
  "hasDynamicHelp": false,
2069
2158
  "hiddenAliases": [],
2070
- "id": "profile:wizard",
2159
+ "id": "release:export",
2071
2160
  "pluginAlias": "@xano/cli",
2072
2161
  "pluginName": "@xano/cli",
2073
2162
  "pluginType": "core",
@@ -2077,18 +2166,18 @@
2077
2166
  "relativePath": [
2078
2167
  "dist",
2079
2168
  "commands",
2080
- "profile",
2081
- "wizard",
2169
+ "release",
2170
+ "export",
2082
2171
  "index.js"
2083
2172
  ]
2084
2173
  },
2085
- "release:import": {
2174
+ "release:list": {
2086
2175
  "aliases": [],
2087
2176
  "args": {},
2088
- "description": "Import a release file into a workspace",
2177
+ "description": "List all releases in a workspace",
2089
2178
  "examples": [
2090
- "$ xano release import --file ./my-release.tar.gz\nImported release as #15\n",
2091
- "$ xano release import --file ./my-release.tar.gz -o json"
2179
+ "$ xano release list\nReleases in workspace 5:\n - v1.0 (ID: 10) - main\n - v1.1-hotfix (ID: 11) - main [hotfix]\n",
2180
+ "$ xano release list -w 5 --output json"
2092
2181
  ],
2093
2182
  "flags": {
2094
2183
  "profile": {
@@ -2110,15 +2199,6 @@
2110
2199
  "allowNo": false,
2111
2200
  "type": "boolean"
2112
2201
  },
2113
- "file": {
2114
- "char": "f",
2115
- "description": "Path to the release file (.tar.gz)",
2116
- "name": "file",
2117
- "required": true,
2118
- "hasDynamicHelp": false,
2119
- "multiple": false,
2120
- "type": "option"
2121
- },
2122
2202
  "output": {
2123
2203
  "char": "o",
2124
2204
  "description": "Output format",
@@ -2145,7 +2225,7 @@
2145
2225
  },
2146
2226
  "hasDynamicHelp": false,
2147
2227
  "hiddenAliases": [],
2148
- "id": "release:import",
2228
+ "id": "release:list",
2149
2229
  "pluginAlias": "@xano/cli",
2150
2230
  "pluginName": "@xano/cli",
2151
2231
  "pluginType": "core",
@@ -2156,7 +2236,7 @@
2156
2236
  "dist",
2157
2237
  "commands",
2158
2238
  "release",
2159
- "import",
2239
+ "list",
2160
2240
  "index.js"
2161
2241
  ]
2162
2242
  },
@@ -2235,13 +2315,13 @@
2235
2315
  "index.js"
2236
2316
  ]
2237
2317
  },
2238
- "release:list": {
2318
+ "release:import": {
2239
2319
  "aliases": [],
2240
2320
  "args": {},
2241
- "description": "List all releases in a workspace",
2321
+ "description": "Import a release file into a workspace",
2242
2322
  "examples": [
2243
- "$ xano release list\nReleases in workspace 5:\n - v1.0 (ID: 10) - main\n - v1.1-hotfix (ID: 11) - main [hotfix]\n",
2244
- "$ xano release list -w 5 --output json"
2323
+ "$ xano release import --file ./my-release.tar.gz\nImported release as #15\n",
2324
+ "$ xano release import --file ./my-release.tar.gz -o json"
2245
2325
  ],
2246
2326
  "flags": {
2247
2327
  "profile": {
@@ -2263,6 +2343,15 @@
2263
2343
  "allowNo": false,
2264
2344
  "type": "boolean"
2265
2345
  },
2346
+ "file": {
2347
+ "char": "f",
2348
+ "description": "Path to the release file (.tar.gz)",
2349
+ "name": "file",
2350
+ "required": true,
2351
+ "hasDynamicHelp": false,
2352
+ "multiple": false,
2353
+ "type": "option"
2354
+ },
2266
2355
  "output": {
2267
2356
  "char": "o",
2268
2357
  "description": "Output format",
@@ -2289,7 +2378,7 @@
2289
2378
  },
2290
2379
  "hasDynamicHelp": false,
2291
2380
  "hiddenAliases": [],
2292
- "id": "release:list",
2381
+ "id": "release:import",
2293
2382
  "pluginAlias": "@xano/cli",
2294
2383
  "pluginName": "@xano/cli",
2295
2384
  "pluginType": "core",
@@ -2300,7 +2389,7 @@
2300
2389
  "dist",
2301
2390
  "commands",
2302
2391
  "release",
2303
- "list",
2392
+ "import",
2304
2393
  "index.js"
2305
2394
  ]
2306
2395
  },
@@ -2422,108 +2511,20 @@
2422
2511
  "index.js"
2423
2512
  ]
2424
2513
  },
2425
- "static_host:list": {
2426
- "aliases": [],
2427
- "args": {},
2428
- "description": "List all static hosts in a workspace from the Xano Metadata API",
2429
- "examples": [
2430
- "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2431
- "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2432
- "$ xano static_host:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"my-static-host\",\n \"domain\": \"example.com\"\n }\n]\n",
2433
- "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
2434
- ],
2435
- "flags": {
2436
- "profile": {
2437
- "char": "p",
2438
- "description": "Profile to use (uses default profile if not specified)",
2439
- "env": "XANO_PROFILE",
2440
- "name": "profile",
2441
- "required": false,
2442
- "hasDynamicHelp": false,
2443
- "multiple": false,
2444
- "type": "option"
2445
- },
2446
- "verbose": {
2447
- "char": "v",
2448
- "description": "Show detailed request/response information",
2449
- "env": "XANO_VERBOSE",
2450
- "name": "verbose",
2451
- "required": false,
2452
- "allowNo": false,
2453
- "type": "boolean"
2454
- },
2455
- "output": {
2456
- "char": "o",
2457
- "description": "Output format",
2458
- "name": "output",
2459
- "required": false,
2460
- "default": "summary",
2461
- "hasDynamicHelp": false,
2462
- "multiple": false,
2463
- "options": [
2464
- "summary",
2465
- "json"
2466
- ],
2467
- "type": "option"
2468
- },
2469
- "page": {
2470
- "description": "Page number for pagination",
2471
- "name": "page",
2472
- "required": false,
2473
- "default": 1,
2474
- "hasDynamicHelp": false,
2475
- "multiple": false,
2476
- "type": "option"
2477
- },
2478
- "per_page": {
2479
- "description": "Number of results per page",
2480
- "name": "per_page",
2481
- "required": false,
2482
- "default": 50,
2483
- "hasDynamicHelp": false,
2484
- "multiple": false,
2485
- "type": "option"
2486
- },
2487
- "workspace": {
2488
- "char": "w",
2489
- "description": "Workspace ID (optional if set in profile)",
2490
- "name": "workspace",
2491
- "required": false,
2492
- "hasDynamicHelp": false,
2493
- "multiple": false,
2494
- "type": "option"
2495
- }
2496
- },
2497
- "hasDynamicHelp": false,
2498
- "hiddenAliases": [],
2499
- "id": "static_host:list",
2500
- "pluginAlias": "@xano/cli",
2501
- "pluginName": "@xano/cli",
2502
- "pluginType": "core",
2503
- "strict": true,
2504
- "enableJsonFlag": false,
2505
- "isESM": true,
2506
- "relativePath": [
2507
- "dist",
2508
- "commands",
2509
- "static_host",
2510
- "list",
2511
- "index.js"
2512
- ]
2513
- },
2514
- "tenant:create": {
2514
+ "release:pull": {
2515
2515
  "aliases": [],
2516
2516
  "args": {
2517
- "display": {
2518
- "description": "Display name for the tenant",
2519
- "name": "display",
2517
+ "directory": {
2518
+ "description": "Output directory for pulled documents",
2519
+ "name": "directory",
2520
2520
  "required": true
2521
2521
  }
2522
2522
  },
2523
- "description": "Create a new tenant in a workspace",
2523
+ "description": "Pull a release multidoc from the Xano Metadata API and split into individual files",
2524
2524
  "examples": [
2525
- "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
2526
- "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
2525
+ "$ xano release pull ./my-release -r v1.0\nPulled 42 documents from release 'v1.0' to ./my-release\n",
2526
+ "$ xano release pull ./output -r v1.0 -w 40\nPulled 15 documents from release 'v1.0' to ./output\n",
2527
+ "$ xano release pull ./backup -r v1.0 --profile production --env --records\nPulled 58 documents from release 'v1.0' to ./backup\n"
2527
2528
  ],
2528
2529
  "flags": {
2529
2530
  "profile": {
@@ -2545,88 +2546,32 @@
2545
2546
  "allowNo": false,
2546
2547
  "type": "boolean"
2547
2548
  },
2548
- "cluster_id": {
2549
- "description": "Cluster ID to deploy to (required for tier2/tier3)",
2550
- "name": "cluster_id",
2551
- "required": false,
2552
- "hasDynamicHelp": false,
2553
- "multiple": false,
2554
- "type": "option"
2555
- },
2556
- "description": {
2557
- "char": "d",
2558
- "description": "Tenant description",
2559
- "name": "description",
2560
- "required": false,
2561
- "hasDynamicHelp": false,
2562
- "multiple": false,
2563
- "type": "option"
2564
- },
2565
- "domain": {
2566
- "description": "Custom domain for the tenant",
2567
- "name": "domain",
2549
+ "env": {
2550
+ "description": "Include environment variables",
2551
+ "name": "env",
2568
2552
  "required": false,
2569
- "hasDynamicHelp": false,
2570
- "multiple": false,
2571
- "type": "option"
2572
- },
2573
- "ephemeral": {
2574
- "description": "Mark tenant as ephemeral (allows push operations)",
2575
- "name": "ephemeral",
2576
2553
  "allowNo": false,
2577
2554
  "type": "boolean"
2578
2555
  },
2579
- "ingress": {
2580
- "description": "Enable ingress",
2581
- "name": "ingress",
2582
- "allowNo": true,
2583
- "type": "boolean"
2584
- },
2585
- "license": {
2586
- "description": "License tier",
2587
- "name": "license",
2588
- "required": false,
2589
- "default": "tier1",
2590
- "hasDynamicHelp": false,
2591
- "multiple": false,
2592
- "options": [
2593
- "tier1",
2594
- "tier2",
2595
- "tier3"
2596
- ],
2597
- "type": "option"
2598
- },
2599
- "output": {
2600
- "char": "o",
2601
- "description": "Output format",
2602
- "name": "output",
2556
+ "records": {
2557
+ "description": "Include records",
2558
+ "name": "records",
2603
2559
  "required": false,
2604
- "default": "summary",
2605
- "hasDynamicHelp": false,
2606
- "multiple": false,
2607
- "options": [
2608
- "summary",
2609
- "json"
2610
- ],
2611
- "type": "option"
2560
+ "allowNo": false,
2561
+ "type": "boolean"
2612
2562
  },
2613
- "platform_id": {
2614
- "description": "Platform ID to use",
2615
- "name": "platform_id",
2616
- "required": false,
2563
+ "release": {
2564
+ "char": "r",
2565
+ "description": "Release name to pull from",
2566
+ "name": "release",
2567
+ "required": true,
2617
2568
  "hasDynamicHelp": false,
2618
2569
  "multiple": false,
2619
2570
  "type": "option"
2620
2571
  },
2621
- "tasks": {
2622
- "description": "Enable background tasks",
2623
- "name": "tasks",
2624
- "allowNo": true,
2625
- "type": "boolean"
2626
- },
2627
2572
  "workspace": {
2628
2573
  "char": "w",
2629
- "description": "Workspace ID (uses profile workspace if not provided)",
2574
+ "description": "Workspace ID (optional if set in profile)",
2630
2575
  "name": "workspace",
2631
2576
  "required": false,
2632
2577
  "hasDynamicHelp": false,
@@ -2636,7 +2581,7 @@
2636
2581
  },
2637
2582
  "hasDynamicHelp": false,
2638
2583
  "hiddenAliases": [],
2639
- "id": "tenant:create",
2584
+ "id": "release:pull",
2640
2585
  "pluginAlias": "@xano/cli",
2641
2586
  "pluginName": "@xano/cli",
2642
2587
  "pluginType": "core",
@@ -2645,26 +2590,25 @@
2645
2590
  "isESM": true,
2646
2591
  "relativePath": [
2647
2592
  "dist",
2648
- "commands",
2649
- "tenant",
2650
- "create",
2593
+ "commands",
2594
+ "release",
2595
+ "pull",
2651
2596
  "index.js"
2652
2597
  ]
2653
2598
  },
2654
- "release:pull": {
2599
+ "tenant:deploy_platform": {
2655
2600
  "aliases": [],
2656
2601
  "args": {
2657
- "directory": {
2658
- "description": "Output directory for pulled documents",
2659
- "name": "directory",
2602
+ "tenant_name": {
2603
+ "description": "Tenant name to deploy to",
2604
+ "name": "tenant_name",
2660
2605
  "required": true
2661
2606
  }
2662
2607
  },
2663
- "description": "Pull a release multidoc from the Xano Metadata API and split into individual files",
2608
+ "description": "Deploy a platform version to a tenant",
2664
2609
  "examples": [
2665
- "$ xano release pull ./my-release -r v1.0\nPulled 42 documents from release 'v1.0' to ./my-release\n",
2666
- "$ xano release pull ./output -r v1.0 -w 40\nPulled 15 documents from release 'v1.0' to ./output\n",
2667
- "$ xano release pull ./backup -r v1.0 --profile production --env --records\nPulled 58 documents from release 'v1.0' to ./backup\n"
2610
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
2611
+ "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json"
2668
2612
  ],
2669
2613
  "flags": {
2670
2614
  "profile": {
@@ -2686,24 +2630,23 @@
2686
2630
  "allowNo": false,
2687
2631
  "type": "boolean"
2688
2632
  },
2689
- "env": {
2690
- "description": "Include environment variables",
2691
- "name": "env",
2692
- "required": false,
2693
- "allowNo": false,
2694
- "type": "boolean"
2695
- },
2696
- "records": {
2697
- "description": "Include records",
2698
- "name": "records",
2633
+ "output": {
2634
+ "char": "o",
2635
+ "description": "Output format",
2636
+ "name": "output",
2699
2637
  "required": false,
2700
- "allowNo": false,
2701
- "type": "boolean"
2638
+ "default": "summary",
2639
+ "hasDynamicHelp": false,
2640
+ "multiple": false,
2641
+ "options": [
2642
+ "summary",
2643
+ "json"
2644
+ ],
2645
+ "type": "option"
2702
2646
  },
2703
- "release": {
2704
- "char": "r",
2705
- "description": "Release name to pull from",
2706
- "name": "release",
2647
+ "platform_id": {
2648
+ "description": "Platform ID to deploy",
2649
+ "name": "platform_id",
2707
2650
  "required": true,
2708
2651
  "hasDynamicHelp": false,
2709
2652
  "multiple": false,
@@ -2711,7 +2654,7 @@
2711
2654
  },
2712
2655
  "workspace": {
2713
2656
  "char": "w",
2714
- "description": "Workspace ID (optional if set in profile)",
2657
+ "description": "Workspace ID (uses profile workspace if not provided)",
2715
2658
  "name": "workspace",
2716
2659
  "required": false,
2717
2660
  "hasDynamicHelp": false,
@@ -2721,7 +2664,7 @@
2721
2664
  },
2722
2665
  "hasDynamicHelp": false,
2723
2666
  "hiddenAliases": [],
2724
- "id": "release:pull",
2667
+ "id": "tenant:deploy_platform",
2725
2668
  "pluginAlias": "@xano/cli",
2726
2669
  "pluginName": "@xano/cli",
2727
2670
  "pluginType": "core",
@@ -2731,24 +2674,24 @@
2731
2674
  "relativePath": [
2732
2675
  "dist",
2733
2676
  "commands",
2734
- "release",
2735
- "pull",
2677
+ "tenant",
2678
+ "deploy_platform",
2736
2679
  "index.js"
2737
2680
  ]
2738
2681
  },
2739
- "tenant:deploy_platform": {
2682
+ "tenant:create": {
2740
2683
  "aliases": [],
2741
2684
  "args": {
2742
- "tenant_name": {
2743
- "description": "Tenant name to deploy to",
2744
- "name": "tenant_name",
2685
+ "display": {
2686
+ "description": "Display name for the tenant",
2687
+ "name": "display",
2745
2688
  "required": true
2746
2689
  }
2747
2690
  },
2748
- "description": "Deploy a platform version to a tenant",
2691
+ "description": "Create a new tenant in a workspace",
2749
2692
  "examples": [
2750
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5\nDeployed platform 5 to tenant: My Tenant (my-tenant)\n",
2751
- "$ xano tenant deploy_platform t1234-abcd-xyz1 --platform_id 5 -o json"
2693
+ "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
2694
+ "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
2752
2695
  ],
2753
2696
  "flags": {
2754
2697
  "profile": {
@@ -2770,6 +2713,57 @@
2770
2713
  "allowNo": false,
2771
2714
  "type": "boolean"
2772
2715
  },
2716
+ "cluster_id": {
2717
+ "description": "Cluster ID to deploy to (required for tier2/tier3)",
2718
+ "name": "cluster_id",
2719
+ "required": false,
2720
+ "hasDynamicHelp": false,
2721
+ "multiple": false,
2722
+ "type": "option"
2723
+ },
2724
+ "description": {
2725
+ "char": "d",
2726
+ "description": "Tenant description",
2727
+ "name": "description",
2728
+ "required": false,
2729
+ "hasDynamicHelp": false,
2730
+ "multiple": false,
2731
+ "type": "option"
2732
+ },
2733
+ "domain": {
2734
+ "description": "Custom domain for the tenant",
2735
+ "name": "domain",
2736
+ "required": false,
2737
+ "hasDynamicHelp": false,
2738
+ "multiple": false,
2739
+ "type": "option"
2740
+ },
2741
+ "ephemeral": {
2742
+ "description": "Mark tenant as ephemeral (allows push operations)",
2743
+ "name": "ephemeral",
2744
+ "allowNo": false,
2745
+ "type": "boolean"
2746
+ },
2747
+ "ingress": {
2748
+ "description": "Enable ingress",
2749
+ "name": "ingress",
2750
+ "allowNo": true,
2751
+ "type": "boolean"
2752
+ },
2753
+ "license": {
2754
+ "description": "License tier",
2755
+ "name": "license",
2756
+ "required": false,
2757
+ "default": "tier1",
2758
+ "hasDynamicHelp": false,
2759
+ "multiple": false,
2760
+ "options": [
2761
+ "tier1",
2762
+ "tier2",
2763
+ "tier3"
2764
+ ],
2765
+ "type": "option"
2766
+ },
2773
2767
  "output": {
2774
2768
  "char": "o",
2775
2769
  "description": "Output format",
@@ -2785,13 +2779,19 @@
2785
2779
  "type": "option"
2786
2780
  },
2787
2781
  "platform_id": {
2788
- "description": "Platform ID to deploy",
2782
+ "description": "Platform ID to use",
2789
2783
  "name": "platform_id",
2790
- "required": true,
2784
+ "required": false,
2791
2785
  "hasDynamicHelp": false,
2792
2786
  "multiple": false,
2793
2787
  "type": "option"
2794
2788
  },
2789
+ "tasks": {
2790
+ "description": "Enable background tasks",
2791
+ "name": "tasks",
2792
+ "allowNo": true,
2793
+ "type": "boolean"
2794
+ },
2795
2795
  "workspace": {
2796
2796
  "char": "w",
2797
2797
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -2804,7 +2804,7 @@
2804
2804
  },
2805
2805
  "hasDynamicHelp": false,
2806
2806
  "hiddenAliases": [],
2807
- "id": "tenant:deploy_platform",
2807
+ "id": "tenant:create",
2808
2808
  "pluginAlias": "@xano/cli",
2809
2809
  "pluginName": "@xano/cli",
2810
2810
  "pluginType": "core",
@@ -2815,7 +2815,7 @@
2815
2815
  "dist",
2816
2816
  "commands",
2817
2817
  "tenant",
2818
- "deploy_platform",
2818
+ "create",
2819
2819
  "index.js"
2820
2820
  ]
2821
2821
  },
@@ -2987,19 +2987,19 @@
2987
2987
  "index.js"
2988
2988
  ]
2989
2989
  },
2990
- "tenant:impersonate": {
2990
+ "tenant:edit": {
2991
2991
  "aliases": [],
2992
2992
  "args": {
2993
2993
  "tenant_name": {
2994
- "description": "Tenant name to impersonate",
2994
+ "description": "Tenant name to edit",
2995
2995
  "name": "tenant_name",
2996
2996
  "required": true
2997
2997
  }
2998
2998
  },
2999
- "description": "Impersonate a tenant and open it in the browser",
2999
+ "description": "Edit an existing tenant",
3000
3000
  "examples": [
3001
- "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
3002
- "$ xano tenant impersonate my-tenant -o json"
3001
+ "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
3002
+ "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
3003
3003
  ],
3004
3004
  "flags": {
3005
3005
  "profile": {
@@ -3021,6 +3021,38 @@
3021
3021
  "allowNo": false,
3022
3022
  "type": "boolean"
3023
3023
  },
3024
+ "description": {
3025
+ "char": "d",
3026
+ "description": "New description",
3027
+ "name": "description",
3028
+ "required": false,
3029
+ "hasDynamicHelp": false,
3030
+ "multiple": false,
3031
+ "type": "option"
3032
+ },
3033
+ "display": {
3034
+ "description": "New display name",
3035
+ "name": "display",
3036
+ "required": false,
3037
+ "hasDynamicHelp": false,
3038
+ "multiple": false,
3039
+ "type": "option"
3040
+ },
3041
+ "domain": {
3042
+ "description": "Custom domain",
3043
+ "name": "domain",
3044
+ "required": false,
3045
+ "hasDynamicHelp": false,
3046
+ "multiple": false,
3047
+ "type": "option"
3048
+ },
3049
+ "ingress": {
3050
+ "description": "Enable/disable ingress",
3051
+ "name": "ingress",
3052
+ "required": false,
3053
+ "allowNo": true,
3054
+ "type": "boolean"
3055
+ },
3024
3056
  "output": {
3025
3057
  "char": "o",
3026
3058
  "description": "Output format",
@@ -3035,12 +3067,26 @@
3035
3067
  ],
3036
3068
  "type": "option"
3037
3069
  },
3038
- "url-only": {
3039
- "char": "u",
3040
- "description": "Print the URL without opening the browser",
3041
- "name": "url-only",
3070
+ "proxy": {
3071
+ "description": "Proxy URL",
3072
+ "name": "proxy",
3042
3073
  "required": false,
3043
- "allowNo": false,
3074
+ "hasDynamicHelp": false,
3075
+ "multiple": false,
3076
+ "type": "option"
3077
+ },
3078
+ "rbac": {
3079
+ "description": "Enable/disable RBAC",
3080
+ "name": "rbac",
3081
+ "required": false,
3082
+ "allowNo": true,
3083
+ "type": "boolean"
3084
+ },
3085
+ "tasks": {
3086
+ "description": "Enable/disable background tasks",
3087
+ "name": "tasks",
3088
+ "required": false,
3089
+ "allowNo": true,
3044
3090
  "type": "boolean"
3045
3091
  },
3046
3092
  "workspace": {
@@ -3055,7 +3101,7 @@
3055
3101
  },
3056
3102
  "hasDynamicHelp": false,
3057
3103
  "hiddenAliases": [],
3058
- "id": "tenant:impersonate",
3104
+ "id": "tenant:edit",
3059
3105
  "pluginAlias": "@xano/cli",
3060
3106
  "pluginName": "@xano/cli",
3061
3107
  "pluginType": "core",
@@ -3066,7 +3112,7 @@
3066
3112
  "dist",
3067
3113
  "commands",
3068
3114
  "tenant",
3069
- "impersonate",
3115
+ "edit",
3070
3116
  "index.js"
3071
3117
  ]
3072
3118
  },
@@ -3145,70 +3191,38 @@
3145
3191
  "index.js"
3146
3192
  ]
3147
3193
  },
3148
- "tenant:edit": {
3194
+ "tenant:impersonate": {
3149
3195
  "aliases": [],
3150
3196
  "args": {
3151
3197
  "tenant_name": {
3152
- "description": "Tenant name to edit",
3198
+ "description": "Tenant name to impersonate",
3153
3199
  "name": "tenant_name",
3154
3200
  "required": true
3155
3201
  }
3156
3202
  },
3157
- "description": "Edit an existing tenant",
3158
- "examples": [
3159
- "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
3160
- "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
3161
- ],
3162
- "flags": {
3163
- "profile": {
3164
- "char": "p",
3165
- "description": "Profile to use (uses default profile if not specified)",
3166
- "env": "XANO_PROFILE",
3167
- "name": "profile",
3168
- "required": false,
3169
- "hasDynamicHelp": false,
3170
- "multiple": false,
3171
- "type": "option"
3172
- },
3173
- "verbose": {
3174
- "char": "v",
3175
- "description": "Show detailed request/response information",
3176
- "env": "XANO_VERBOSE",
3177
- "name": "verbose",
3178
- "required": false,
3179
- "allowNo": false,
3180
- "type": "boolean"
3181
- },
3182
- "description": {
3183
- "char": "d",
3184
- "description": "New description",
3185
- "name": "description",
3186
- "required": false,
3187
- "hasDynamicHelp": false,
3188
- "multiple": false,
3189
- "type": "option"
3190
- },
3191
- "display": {
3192
- "description": "New display name",
3193
- "name": "display",
3194
- "required": false,
3195
- "hasDynamicHelp": false,
3196
- "multiple": false,
3197
- "type": "option"
3198
- },
3199
- "domain": {
3200
- "description": "Custom domain",
3201
- "name": "domain",
3203
+ "description": "Impersonate a tenant and open it in the browser",
3204
+ "examples": [
3205
+ "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
3206
+ "$ xano tenant impersonate my-tenant -o json"
3207
+ ],
3208
+ "flags": {
3209
+ "profile": {
3210
+ "char": "p",
3211
+ "description": "Profile to use (uses default profile if not specified)",
3212
+ "env": "XANO_PROFILE",
3213
+ "name": "profile",
3202
3214
  "required": false,
3203
3215
  "hasDynamicHelp": false,
3204
3216
  "multiple": false,
3205
3217
  "type": "option"
3206
3218
  },
3207
- "ingress": {
3208
- "description": "Enable/disable ingress",
3209
- "name": "ingress",
3219
+ "verbose": {
3220
+ "char": "v",
3221
+ "description": "Show detailed request/response information",
3222
+ "env": "XANO_VERBOSE",
3223
+ "name": "verbose",
3210
3224
  "required": false,
3211
- "allowNo": true,
3225
+ "allowNo": false,
3212
3226
  "type": "boolean"
3213
3227
  },
3214
3228
  "output": {
@@ -3225,26 +3239,12 @@
3225
3239
  ],
3226
3240
  "type": "option"
3227
3241
  },
3228
- "proxy": {
3229
- "description": "Proxy URL",
3230
- "name": "proxy",
3231
- "required": false,
3232
- "hasDynamicHelp": false,
3233
- "multiple": false,
3234
- "type": "option"
3235
- },
3236
- "rbac": {
3237
- "description": "Enable/disable RBAC",
3238
- "name": "rbac",
3239
- "required": false,
3240
- "allowNo": true,
3241
- "type": "boolean"
3242
- },
3243
- "tasks": {
3244
- "description": "Enable/disable background tasks",
3245
- "name": "tasks",
3242
+ "url-only": {
3243
+ "char": "u",
3244
+ "description": "Print the URL without opening the browser",
3245
+ "name": "url-only",
3246
3246
  "required": false,
3247
- "allowNo": true,
3247
+ "allowNo": false,
3248
3248
  "type": "boolean"
3249
3249
  },
3250
3250
  "workspace": {
@@ -3259,7 +3259,7 @@
3259
3259
  },
3260
3260
  "hasDynamicHelp": false,
3261
3261
  "hiddenAliases": [],
3262
- "id": "tenant:edit",
3262
+ "id": "tenant:impersonate",
3263
3263
  "pluginAlias": "@xano/cli",
3264
3264
  "pluginName": "@xano/cli",
3265
3265
  "pluginType": "core",
@@ -3270,7 +3270,7 @@
3270
3270
  "dist",
3271
3271
  "commands",
3272
3272
  "tenant",
3273
- "edit",
3273
+ "impersonate",
3274
3274
  "index.js"
3275
3275
  ]
3276
3276
  },
@@ -3436,19 +3436,23 @@
3436
3436
  "index.js"
3437
3437
  ]
3438
3438
  },
3439
- "unit_test:run": {
3439
+ "tenant:push": {
3440
3440
  "aliases": [],
3441
3441
  "args": {
3442
- "unit_test_id": {
3443
- "description": "ID of the unit test to run",
3444
- "name": "unit_test_id",
3442
+ "directory": {
3443
+ "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3444
+ "name": "directory",
3445
3445
  "required": true
3446
3446
  }
3447
3447
  },
3448
- "description": "Run a unit test",
3448
+ "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3449
3449
  "examples": [
3450
- "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
3451
- "$ xano unit-test run abc-123 -o json"
3450
+ "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
3451
+ "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
3452
+ "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
3453
+ "$ xano tenant push ./my-workspace -t my-tenant --no-records\nPush schema only, skip importing table records\n",
3454
+ "$ xano tenant push ./my-workspace -t my-tenant --no-env\nPush without overwriting environment variables\n",
3455
+ "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
3452
3456
  ],
3453
3457
  "flags": {
3454
3458
  "profile": {
@@ -3470,23 +3474,39 @@
3470
3474
  "allowNo": false,
3471
3475
  "type": "boolean"
3472
3476
  },
3473
- "output": {
3474
- "char": "o",
3475
- "description": "Output format",
3476
- "name": "output",
3477
+ "env": {
3478
+ "description": "Include environment variables in import (default: true, use --no-env to exclude)",
3479
+ "name": "env",
3477
3480
  "required": false,
3478
- "default": "summary",
3481
+ "allowNo": true,
3482
+ "type": "boolean"
3483
+ },
3484
+ "records": {
3485
+ "description": "Include records in import (default: true, use --no-records to exclude)",
3486
+ "name": "records",
3487
+ "required": false,
3488
+ "allowNo": true,
3489
+ "type": "boolean"
3490
+ },
3491
+ "tenant": {
3492
+ "char": "t",
3493
+ "description": "Tenant name to push to",
3494
+ "name": "tenant",
3495
+ "required": true,
3479
3496
  "hasDynamicHelp": false,
3480
3497
  "multiple": false,
3481
- "options": [
3482
- "summary",
3483
- "json"
3484
- ],
3485
3498
  "type": "option"
3486
3499
  },
3500
+ "truncate": {
3501
+ "description": "Truncate all table records before importing",
3502
+ "name": "truncate",
3503
+ "required": false,
3504
+ "allowNo": false,
3505
+ "type": "boolean"
3506
+ },
3487
3507
  "workspace": {
3488
3508
  "char": "w",
3489
- "description": "Workspace ID (uses profile workspace if not provided)",
3509
+ "description": "Workspace ID (optional if set in profile)",
3490
3510
  "name": "workspace",
3491
3511
  "required": false,
3492
3512
  "hasDynamicHelp": false,
@@ -3496,7 +3516,7 @@
3496
3516
  },
3497
3517
  "hasDynamicHelp": false,
3498
3518
  "hiddenAliases": [],
3499
- "id": "unit_test:run",
3519
+ "id": "tenant:push",
3500
3520
  "pluginAlias": "@xano/cli",
3501
3521
  "pluginName": "@xano/cli",
3502
3522
  "pluginType": "core",
@@ -3506,19 +3526,18 @@
3506
3526
  "relativePath": [
3507
3527
  "dist",
3508
3528
  "commands",
3509
- "unit_test",
3510
- "run",
3529
+ "tenant",
3530
+ "push",
3511
3531
  "index.js"
3512
3532
  ]
3513
3533
  },
3514
- "unit_test:list": {
3534
+ "unit_test:run_all": {
3515
3535
  "aliases": [],
3516
3536
  "args": {},
3517
- "description": "List all unit tests in a workspace",
3537
+ "description": "Run all unit tests in a workspace",
3518
3538
  "examples": [
3519
- "$ xano unit-test list\nUnit tests in workspace 5:\n - my-test (ID: abc-123) [function: math]\n - auth-check (ID: def-456) [query: /user/login]\n",
3520
- "$ xano unit-test list -w 5 --output json",
3521
- "$ xano unit-test list --obj-type function"
3539
+ "$ 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",
3540
+ "$ xano unit-test run-all --obj-type function -o json"
3522
3541
  ],
3523
3542
  "flags": {
3524
3543
  "profile": {
@@ -3588,7 +3607,7 @@
3588
3607
  },
3589
3608
  "hasDynamicHelp": false,
3590
3609
  "hiddenAliases": [],
3591
- "id": "unit_test:list",
3610
+ "id": "unit_test:run_all",
3592
3611
  "pluginAlias": "@xano/cli",
3593
3612
  "pluginName": "@xano/cli",
3594
3613
  "pluginType": "core",
@@ -3599,17 +3618,18 @@
3599
3618
  "dist",
3600
3619
  "commands",
3601
3620
  "unit_test",
3602
- "list",
3621
+ "run_all",
3603
3622
  "index.js"
3604
3623
  ]
3605
3624
  },
3606
- "unit_test:run_all": {
3625
+ "unit_test:list": {
3607
3626
  "aliases": [],
3608
3627
  "args": {},
3609
- "description": "Run all unit tests in a workspace",
3628
+ "description": "List all unit tests in a workspace",
3610
3629
  "examples": [
3611
- "$ 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",
3612
- "$ xano unit-test run-all --obj-type function -o json"
3630
+ "$ xano unit-test list\nUnit tests in workspace 5:\n - my-test (ID: abc-123) [function: math]\n - auth-check (ID: def-456) [query: /user/login]\n",
3631
+ "$ xano unit-test list -w 5 --output json",
3632
+ "$ xano unit-test list --obj-type function"
3613
3633
  ],
3614
3634
  "flags": {
3615
3635
  "profile": {
@@ -3679,7 +3699,7 @@
3679
3699
  },
3680
3700
  "hasDynamicHelp": false,
3681
3701
  "hiddenAliases": [],
3682
- "id": "unit_test:run_all",
3702
+ "id": "unit_test:list",
3683
3703
  "pluginAlias": "@xano/cli",
3684
3704
  "pluginName": "@xano/cli",
3685
3705
  "pluginType": "core",
@@ -3690,23 +3710,23 @@
3690
3710
  "dist",
3691
3711
  "commands",
3692
3712
  "unit_test",
3693
- "run_all",
3713
+ "list",
3694
3714
  "index.js"
3695
3715
  ]
3696
3716
  },
3697
- "workflow_test:delete": {
3717
+ "unit_test:run": {
3698
3718
  "aliases": [],
3699
3719
  "args": {
3700
- "workflow_test_id": {
3701
- "description": "ID of the workflow test to delete",
3702
- "name": "workflow_test_id",
3720
+ "unit_test_id": {
3721
+ "description": "ID of the unit test to run",
3722
+ "name": "unit_test_id",
3703
3723
  "required": true
3704
3724
  }
3705
3725
  },
3706
- "description": "Delete a workflow test",
3726
+ "description": "Run a unit test",
3707
3727
  "examples": [
3708
- "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
3709
- "$ xano workflow-test delete 1 --force"
3728
+ "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
3729
+ "$ xano unit-test run abc-123 -o json"
3710
3730
  ],
3711
3731
  "flags": {
3712
3732
  "profile": {
@@ -3728,14 +3748,6 @@
3728
3748
  "allowNo": false,
3729
3749
  "type": "boolean"
3730
3750
  },
3731
- "force": {
3732
- "char": "f",
3733
- "description": "Skip confirmation prompt",
3734
- "name": "force",
3735
- "required": false,
3736
- "allowNo": false,
3737
- "type": "boolean"
3738
- },
3739
3751
  "output": {
3740
3752
  "char": "o",
3741
3753
  "description": "Output format",
@@ -3762,7 +3774,7 @@
3762
3774
  },
3763
3775
  "hasDynamicHelp": false,
3764
3776
  "hiddenAliases": [],
3765
- "id": "workflow_test:delete",
3777
+ "id": "unit_test:run",
3766
3778
  "pluginAlias": "@xano/cli",
3767
3779
  "pluginName": "@xano/cli",
3768
3780
  "pluginType": "core",
@@ -3772,8 +3784,8 @@
3772
3784
  "relativePath": [
3773
3785
  "dist",
3774
3786
  "commands",
3775
- "workflow_test",
3776
- "delete",
3787
+ "unit_test",
3788
+ "run",
3777
3789
  "index.js"
3778
3790
  ]
3779
3791
  },
@@ -3856,107 +3868,19 @@
3856
3868
  "relativePath": [
3857
3869
  "dist",
3858
3870
  "commands",
3859
- "workflow_test",
3860
- "get",
3861
- "index.js"
3862
- ]
3863
- },
3864
- "workflow_test:list": {
3865
- "aliases": [],
3866
- "args": {},
3867
- "description": "List all workflow tests in a workspace",
3868
- "examples": [
3869
- "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
3870
- "$ xano workflow-test list -w 5 --output json",
3871
- "$ xano workflow-test list --branch main"
3872
- ],
3873
- "flags": {
3874
- "profile": {
3875
- "char": "p",
3876
- "description": "Profile to use (uses default profile if not specified)",
3877
- "env": "XANO_PROFILE",
3878
- "name": "profile",
3879
- "required": false,
3880
- "hasDynamicHelp": false,
3881
- "multiple": false,
3882
- "type": "option"
3883
- },
3884
- "verbose": {
3885
- "char": "v",
3886
- "description": "Show detailed request/response information",
3887
- "env": "XANO_VERBOSE",
3888
- "name": "verbose",
3889
- "required": false,
3890
- "allowNo": false,
3891
- "type": "boolean"
3892
- },
3893
- "branch": {
3894
- "char": "b",
3895
- "description": "Filter by branch name",
3896
- "name": "branch",
3897
- "required": false,
3898
- "hasDynamicHelp": false,
3899
- "multiple": false,
3900
- "type": "option"
3901
- },
3902
- "output": {
3903
- "char": "o",
3904
- "description": "Output format",
3905
- "name": "output",
3906
- "required": false,
3907
- "default": "summary",
3908
- "hasDynamicHelp": false,
3909
- "multiple": false,
3910
- "options": [
3911
- "summary",
3912
- "json"
3913
- ],
3914
- "type": "option"
3915
- },
3916
- "workspace": {
3917
- "char": "w",
3918
- "description": "Workspace ID (uses profile workspace if not provided)",
3919
- "name": "workspace",
3920
- "required": false,
3921
- "hasDynamicHelp": false,
3922
- "multiple": false,
3923
- "type": "option"
3924
- }
3925
- },
3926
- "hasDynamicHelp": false,
3927
- "hiddenAliases": [],
3928
- "id": "workflow_test:list",
3929
- "pluginAlias": "@xano/cli",
3930
- "pluginName": "@xano/cli",
3931
- "pluginType": "core",
3932
- "strict": true,
3933
- "enableJsonFlag": false,
3934
- "isESM": true,
3935
- "relativePath": [
3936
- "dist",
3937
- "commands",
3938
- "workflow_test",
3939
- "list",
3940
- "index.js"
3941
- ]
3942
- },
3943
- "tenant:push": {
3944
- "aliases": [],
3945
- "args": {
3946
- "directory": {
3947
- "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3948
- "name": "directory",
3949
- "required": true
3950
- }
3951
- },
3952
- "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3871
+ "workflow_test",
3872
+ "get",
3873
+ "index.js"
3874
+ ]
3875
+ },
3876
+ "workflow_test:list": {
3877
+ "aliases": [],
3878
+ "args": {},
3879
+ "description": "List all workflow tests in a workspace",
3953
3880
  "examples": [
3954
- "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
3955
- "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
3956
- "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
3957
- "$ xano tenant push ./my-workspace -t my-tenant --no-records\nPush schema only, skip importing table records\n",
3958
- "$ xano tenant push ./my-workspace -t my-tenant --no-env\nPush without overwriting environment variables\n",
3959
- "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
3881
+ "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
3882
+ "$ xano workflow-test list -w 5 --output json",
3883
+ "$ xano workflow-test list --branch main"
3960
3884
  ],
3961
3885
  "flags": {
3962
3886
  "profile": {
@@ -3978,39 +3902,32 @@
3978
3902
  "allowNo": false,
3979
3903
  "type": "boolean"
3980
3904
  },
3981
- "env": {
3982
- "description": "Include environment variables in import (default: true, use --no-env to exclude)",
3983
- "name": "env",
3984
- "required": false,
3985
- "allowNo": true,
3986
- "type": "boolean"
3987
- },
3988
- "records": {
3989
- "description": "Include records in import (default: true, use --no-records to exclude)",
3990
- "name": "records",
3905
+ "branch": {
3906
+ "char": "b",
3907
+ "description": "Filter by branch name",
3908
+ "name": "branch",
3991
3909
  "required": false,
3992
- "allowNo": true,
3993
- "type": "boolean"
3994
- },
3995
- "tenant": {
3996
- "char": "t",
3997
- "description": "Tenant name to push to",
3998
- "name": "tenant",
3999
- "required": true,
4000
3910
  "hasDynamicHelp": false,
4001
3911
  "multiple": false,
4002
3912
  "type": "option"
4003
3913
  },
4004
- "truncate": {
4005
- "description": "Truncate all table records before importing",
4006
- "name": "truncate",
3914
+ "output": {
3915
+ "char": "o",
3916
+ "description": "Output format",
3917
+ "name": "output",
4007
3918
  "required": false,
4008
- "allowNo": false,
4009
- "type": "boolean"
3919
+ "default": "summary",
3920
+ "hasDynamicHelp": false,
3921
+ "multiple": false,
3922
+ "options": [
3923
+ "summary",
3924
+ "json"
3925
+ ],
3926
+ "type": "option"
4010
3927
  },
4011
3928
  "workspace": {
4012
3929
  "char": "w",
4013
- "description": "Workspace ID (optional if set in profile)",
3930
+ "description": "Workspace ID (uses profile workspace if not provided)",
4014
3931
  "name": "workspace",
4015
3932
  "required": false,
4016
3933
  "hasDynamicHelp": false,
@@ -4020,7 +3937,7 @@
4020
3937
  },
4021
3938
  "hasDynamicHelp": false,
4022
3939
  "hiddenAliases": [],
4023
- "id": "tenant:push",
3940
+ "id": "workflow_test:list",
4024
3941
  "pluginAlias": "@xano/cli",
4025
3942
  "pluginName": "@xano/cli",
4026
3943
  "pluginType": "core",
@@ -4030,24 +3947,24 @@
4030
3947
  "relativePath": [
4031
3948
  "dist",
4032
3949
  "commands",
4033
- "tenant",
4034
- "push",
3950
+ "workflow_test",
3951
+ "list",
4035
3952
  "index.js"
4036
3953
  ]
4037
3954
  },
4038
- "workflow_test:run": {
3955
+ "workflow_test:delete": {
4039
3956
  "aliases": [],
4040
3957
  "args": {
4041
3958
  "workflow_test_id": {
4042
- "description": "ID of the workflow test to run",
3959
+ "description": "ID of the workflow test to delete",
4043
3960
  "name": "workflow_test_id",
4044
3961
  "required": true
4045
3962
  }
4046
3963
  },
4047
- "description": "Run a workflow test",
3964
+ "description": "Delete a workflow test",
4048
3965
  "examples": [
4049
- "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
4050
- "$ xano workflow-test run 1 -o json"
3966
+ "$ xano workflow-test delete 1\nAre you sure you want to delete workflow test 1? (y/N) y\nDeleted workflow test 1\n",
3967
+ "$ xano workflow-test delete 1 --force"
4051
3968
  ],
4052
3969
  "flags": {
4053
3970
  "profile": {
@@ -4069,6 +3986,14 @@
4069
3986
  "allowNo": false,
4070
3987
  "type": "boolean"
4071
3988
  },
3989
+ "force": {
3990
+ "char": "f",
3991
+ "description": "Skip confirmation prompt",
3992
+ "name": "force",
3993
+ "required": false,
3994
+ "allowNo": false,
3995
+ "type": "boolean"
3996
+ },
4072
3997
  "output": {
4073
3998
  "char": "o",
4074
3999
  "description": "Output format",
@@ -4095,7 +4020,7 @@
4095
4020
  },
4096
4021
  "hasDynamicHelp": false,
4097
4022
  "hiddenAliases": [],
4098
- "id": "workflow_test:run",
4023
+ "id": "workflow_test:delete",
4099
4024
  "pluginAlias": "@xano/cli",
4100
4025
  "pluginName": "@xano/cli",
4101
4026
  "pluginType": "core",
@@ -4106,7 +4031,7 @@
4106
4031
  "dist",
4107
4032
  "commands",
4108
4033
  "workflow_test",
4109
- "run",
4034
+ "delete",
4110
4035
  "index.js"
4111
4036
  ]
4112
4037
  },
@@ -4662,6 +4587,81 @@
4662
4587
  "index.js"
4663
4588
  ]
4664
4589
  },
4590
+ "workflow_test:run": {
4591
+ "aliases": [],
4592
+ "args": {
4593
+ "workflow_test_id": {
4594
+ "description": "ID of the workflow test to run",
4595
+ "name": "workflow_test_id",
4596
+ "required": true
4597
+ }
4598
+ },
4599
+ "description": "Run a workflow test",
4600
+ "examples": [
4601
+ "$ xano workflow-test run 1\nRunning workflow test 1...\nResult: PASS (1.234s)\n",
4602
+ "$ xano workflow-test run 1 -o json"
4603
+ ],
4604
+ "flags": {
4605
+ "profile": {
4606
+ "char": "p",
4607
+ "description": "Profile to use (uses default profile if not specified)",
4608
+ "env": "XANO_PROFILE",
4609
+ "name": "profile",
4610
+ "required": false,
4611
+ "hasDynamicHelp": false,
4612
+ "multiple": false,
4613
+ "type": "option"
4614
+ },
4615
+ "verbose": {
4616
+ "char": "v",
4617
+ "description": "Show detailed request/response information",
4618
+ "env": "XANO_VERBOSE",
4619
+ "name": "verbose",
4620
+ "required": false,
4621
+ "allowNo": false,
4622
+ "type": "boolean"
4623
+ },
4624
+ "output": {
4625
+ "char": "o",
4626
+ "description": "Output format",
4627
+ "name": "output",
4628
+ "required": false,
4629
+ "default": "summary",
4630
+ "hasDynamicHelp": false,
4631
+ "multiple": false,
4632
+ "options": [
4633
+ "summary",
4634
+ "json"
4635
+ ],
4636
+ "type": "option"
4637
+ },
4638
+ "workspace": {
4639
+ "char": "w",
4640
+ "description": "Workspace ID (uses profile workspace if not provided)",
4641
+ "name": "workspace",
4642
+ "required": false,
4643
+ "hasDynamicHelp": false,
4644
+ "multiple": false,
4645
+ "type": "option"
4646
+ }
4647
+ },
4648
+ "hasDynamicHelp": false,
4649
+ "hiddenAliases": [],
4650
+ "id": "workflow_test:run",
4651
+ "pluginAlias": "@xano/cli",
4652
+ "pluginName": "@xano/cli",
4653
+ "pluginType": "core",
4654
+ "strict": true,
4655
+ "enableJsonFlag": false,
4656
+ "isESM": true,
4657
+ "relativePath": [
4658
+ "dist",
4659
+ "commands",
4660
+ "workflow_test",
4661
+ "run",
4662
+ "index.js"
4663
+ ]
4664
+ },
4665
4665
  "workspace:push": {
4666
4666
  "aliases": [],
4667
4667
  "args": {
@@ -4836,89 +4836,6 @@
4836
4836
  "index.js"
4837
4837
  ]
4838
4838
  },
4839
- "static_host:build:get": {
4840
- "aliases": [],
4841
- "args": {
4842
- "build_id": {
4843
- "description": "Build ID",
4844
- "name": "build_id",
4845
- "required": true
4846
- },
4847
- "static_host": {
4848
- "description": "Static Host name",
4849
- "name": "static_host",
4850
- "required": true
4851
- }
4852
- },
4853
- "description": "Get details of a specific build for a static host",
4854
- "examples": [
4855
- "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
4856
- "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
4857
- "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
4858
- "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
4859
- ],
4860
- "flags": {
4861
- "profile": {
4862
- "char": "p",
4863
- "description": "Profile to use (uses default profile if not specified)",
4864
- "env": "XANO_PROFILE",
4865
- "name": "profile",
4866
- "required": false,
4867
- "hasDynamicHelp": false,
4868
- "multiple": false,
4869
- "type": "option"
4870
- },
4871
- "verbose": {
4872
- "char": "v",
4873
- "description": "Show detailed request/response information",
4874
- "env": "XANO_VERBOSE",
4875
- "name": "verbose",
4876
- "required": false,
4877
- "allowNo": false,
4878
- "type": "boolean"
4879
- },
4880
- "output": {
4881
- "char": "o",
4882
- "description": "Output format",
4883
- "name": "output",
4884
- "required": false,
4885
- "default": "summary",
4886
- "hasDynamicHelp": false,
4887
- "multiple": false,
4888
- "options": [
4889
- "summary",
4890
- "json"
4891
- ],
4892
- "type": "option"
4893
- },
4894
- "workspace": {
4895
- "char": "w",
4896
- "description": "Workspace ID (optional if set in profile)",
4897
- "name": "workspace",
4898
- "required": false,
4899
- "hasDynamicHelp": false,
4900
- "multiple": false,
4901
- "type": "option"
4902
- }
4903
- },
4904
- "hasDynamicHelp": false,
4905
- "hiddenAliases": [],
4906
- "id": "static_host:build:get",
4907
- "pluginAlias": "@xano/cli",
4908
- "pluginName": "@xano/cli",
4909
- "pluginType": "core",
4910
- "strict": true,
4911
- "enableJsonFlag": false,
4912
- "isESM": true,
4913
- "relativePath": [
4914
- "dist",
4915
- "commands",
4916
- "static_host",
4917
- "build",
4918
- "get",
4919
- "index.js"
4920
- ]
4921
- },
4922
4839
  "static_host:build:create": {
4923
4840
  "aliases": [],
4924
4841
  "args": {
@@ -5119,19 +5036,13 @@
5119
5036
  "index.js"
5120
5037
  ]
5121
5038
  },
5122
- "tenant:backup:create": {
5123
- "aliases": [],
5124
- "args": {
5125
- "tenant_name": {
5126
- "description": "Tenant name to back up",
5127
- "name": "tenant_name",
5128
- "required": true
5129
- }
5130
- },
5131
- "description": "Create a backup for a tenant",
5039
+ "tenant:cluster:create": {
5040
+ "aliases": [],
5041
+ "args": {},
5042
+ "description": "Create a new tenant cluster",
5132
5043
  "examples": [
5133
- "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
5134
- "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
5044
+ "$ xano tenant cluster create --name \"us-east-1\" --credentials_file ./kubeconfig.yaml\nCreated tenant cluster: us-east-1 (standard) - ID: 3\n",
5045
+ "$ xano tenant cluster create --name \"eu-west-1\" --credentials \"...\" --type run --description \"EU run cluster\" -o json"
5135
5046
  ],
5136
5047
  "flags": {
5137
5048
  "profile": {
@@ -5153,12 +5064,50 @@
5153
5064
  "allowNo": false,
5154
5065
  "type": "boolean"
5155
5066
  },
5067
+ "credentials": {
5068
+ "description": "Kubeconfig credentials (raw text)",
5069
+ "exclusive": [
5070
+ "credentials_file"
5071
+ ],
5072
+ "name": "credentials",
5073
+ "required": false,
5074
+ "hasDynamicHelp": false,
5075
+ "multiple": false,
5076
+ "type": "option"
5077
+ },
5078
+ "credentials_file": {
5079
+ "description": "Path to kubeconfig credentials file",
5080
+ "exclusive": [
5081
+ "credentials"
5082
+ ],
5083
+ "name": "credentials_file",
5084
+ "required": false,
5085
+ "hasDynamicHelp": false,
5086
+ "multiple": false,
5087
+ "type": "option"
5088
+ },
5156
5089
  "description": {
5157
5090
  "char": "d",
5158
- "description": "Backup description",
5091
+ "description": "Cluster description",
5159
5092
  "name": "description",
5160
5093
  "required": false,
5161
- "default": "",
5094
+ "hasDynamicHelp": false,
5095
+ "multiple": false,
5096
+ "type": "option"
5097
+ },
5098
+ "domain": {
5099
+ "description": "Custom domain for the cluster",
5100
+ "name": "domain",
5101
+ "required": false,
5102
+ "hasDynamicHelp": false,
5103
+ "multiple": false,
5104
+ "type": "option"
5105
+ },
5106
+ "name": {
5107
+ "char": "n",
5108
+ "description": "Cluster name",
5109
+ "name": "name",
5110
+ "required": true,
5162
5111
  "hasDynamicHelp": false,
5163
5112
  "multiple": false,
5164
5113
  "type": "option"
@@ -5177,19 +5126,23 @@
5177
5126
  ],
5178
5127
  "type": "option"
5179
5128
  },
5180
- "workspace": {
5181
- "char": "w",
5182
- "description": "Workspace ID (uses profile workspace if not provided)",
5183
- "name": "workspace",
5129
+ "type": {
5130
+ "description": "Cluster type",
5131
+ "name": "type",
5184
5132
  "required": false,
5133
+ "default": "standard",
5185
5134
  "hasDynamicHelp": false,
5186
5135
  "multiple": false,
5136
+ "options": [
5137
+ "standard",
5138
+ "run"
5139
+ ],
5187
5140
  "type": "option"
5188
5141
  }
5189
5142
  },
5190
5143
  "hasDynamicHelp": false,
5191
5144
  "hiddenAliases": [],
5192
- "id": "tenant:backup:create",
5145
+ "id": "tenant:cluster:create",
5193
5146
  "pluginAlias": "@xano/cli",
5194
5147
  "pluginName": "@xano/cli",
5195
5148
  "pluginType": "core",
@@ -5200,25 +5153,25 @@
5200
5153
  "dist",
5201
5154
  "commands",
5202
5155
  "tenant",
5203
- "backup",
5156
+ "cluster",
5204
5157
  "create",
5205
5158
  "index.js"
5206
5159
  ]
5207
5160
  },
5208
- "tenant:backup:delete": {
5161
+ "tenant:cluster:delete": {
5209
5162
  "aliases": [],
5210
5163
  "args": {
5211
- "tenant_name": {
5212
- "description": "Tenant name that owns the backup",
5213
- "name": "tenant_name",
5164
+ "cluster_id": {
5165
+ "description": "Cluster ID to delete",
5166
+ "name": "cluster_id",
5214
5167
  "required": true
5215
5168
  }
5216
5169
  },
5217
- "description": "Delete a tenant backup permanently. This action cannot be undone.",
5170
+ "description": "Delete a tenant cluster. This action cannot be undone.",
5218
5171
  "examples": [
5219
- "$ 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",
5220
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5221
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
5172
+ "$ 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",
5173
+ "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5174
+ "$ xano tenant cluster delete 3 -f -o json"
5222
5175
  ],
5223
5176
  "flags": {
5224
5177
  "profile": {
@@ -5240,14 +5193,6 @@
5240
5193
  "allowNo": false,
5241
5194
  "type": "boolean"
5242
5195
  },
5243
- "backup_id": {
5244
- "description": "Backup ID to delete",
5245
- "name": "backup_id",
5246
- "required": true,
5247
- "hasDynamicHelp": false,
5248
- "multiple": false,
5249
- "type": "option"
5250
- },
5251
5196
  "force": {
5252
5197
  "char": "f",
5253
5198
  "description": "Skip confirmation prompt",
@@ -5269,20 +5214,11 @@
5269
5214
  "json"
5270
5215
  ],
5271
5216
  "type": "option"
5272
- },
5273
- "workspace": {
5274
- "char": "w",
5275
- "description": "Workspace ID (uses profile workspace if not provided)",
5276
- "name": "workspace",
5277
- "required": false,
5278
- "hasDynamicHelp": false,
5279
- "multiple": false,
5280
- "type": "option"
5281
5217
  }
5282
5218
  },
5283
5219
  "hasDynamicHelp": false,
5284
5220
  "hiddenAliases": [],
5285
- "id": "tenant:backup:delete",
5221
+ "id": "tenant:cluster:delete",
5286
5222
  "pluginAlias": "@xano/cli",
5287
5223
  "pluginName": "@xano/cli",
5288
5224
  "pluginType": "core",
@@ -5293,25 +5229,24 @@
5293
5229
  "dist",
5294
5230
  "commands",
5295
5231
  "tenant",
5296
- "backup",
5232
+ "cluster",
5297
5233
  "delete",
5298
5234
  "index.js"
5299
5235
  ]
5300
5236
  },
5301
- "tenant:backup:export": {
5237
+ "tenant:cluster:edit": {
5302
5238
  "aliases": [],
5303
5239
  "args": {
5304
- "tenant_name": {
5305
- "description": "Tenant name to export backup from",
5306
- "name": "tenant_name",
5240
+ "cluster_id": {
5241
+ "description": "Cluster ID to edit",
5242
+ "name": "cluster_id",
5307
5243
  "required": true
5308
5244
  }
5309
5245
  },
5310
- "description": "Export (download) a tenant backup to a local file",
5246
+ "description": "Update an existing tenant cluster",
5311
5247
  "examples": [
5312
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
5313
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
5314
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5248
+ "$ 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",
5249
+ "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5315
5250
  ],
5316
5251
  "flags": {
5317
5252
  "profile": {
@@ -5333,18 +5268,36 @@
5333
5268
  "allowNo": false,
5334
5269
  "type": "boolean"
5335
5270
  },
5336
- "backup_id": {
5337
- "description": "Backup ID to export",
5338
- "name": "backup_id",
5271
+ "description": {
5272
+ "char": "d",
5273
+ "description": "Cluster description",
5274
+ "name": "description",
5339
5275
  "required": true,
5340
5276
  "hasDynamicHelp": false,
5341
5277
  "multiple": false,
5342
5278
  "type": "option"
5343
5279
  },
5344
- "format": {
5280
+ "domain": {
5281
+ "description": "Custom domain for the cluster",
5282
+ "name": "domain",
5283
+ "required": true,
5284
+ "hasDynamicHelp": false,
5285
+ "multiple": false,
5286
+ "type": "option"
5287
+ },
5288
+ "name": {
5289
+ "char": "n",
5290
+ "description": "Cluster name",
5291
+ "name": "name",
5292
+ "required": true,
5293
+ "hasDynamicHelp": false,
5294
+ "multiple": false,
5295
+ "type": "option"
5296
+ },
5297
+ "output": {
5345
5298
  "char": "o",
5346
5299
  "description": "Output format",
5347
- "name": "format",
5300
+ "name": "output",
5348
5301
  "required": false,
5349
5302
  "default": "summary",
5350
5303
  "hasDynamicHelp": false,
@@ -5355,27 +5308,22 @@
5355
5308
  ],
5356
5309
  "type": "option"
5357
5310
  },
5358
- "output": {
5359
- "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5360
- "name": "output",
5361
- "required": false,
5362
- "hasDynamicHelp": false,
5363
- "multiple": false,
5364
- "type": "option"
5365
- },
5366
- "workspace": {
5367
- "char": "w",
5368
- "description": "Workspace ID (uses profile workspace if not provided)",
5369
- "name": "workspace",
5370
- "required": false,
5311
+ "type": {
5312
+ "description": "Cluster type",
5313
+ "name": "type",
5314
+ "required": true,
5371
5315
  "hasDynamicHelp": false,
5372
5316
  "multiple": false,
5317
+ "options": [
5318
+ "standard",
5319
+ "run"
5320
+ ],
5373
5321
  "type": "option"
5374
5322
  }
5375
5323
  },
5376
5324
  "hasDynamicHelp": false,
5377
5325
  "hiddenAliases": [],
5378
- "id": "tenant:backup:export",
5326
+ "id": "tenant:cluster:edit",
5379
5327
  "pluginAlias": "@xano/cli",
5380
5328
  "pluginName": "@xano/cli",
5381
5329
  "pluginType": "core",
@@ -5386,24 +5334,24 @@
5386
5334
  "dist",
5387
5335
  "commands",
5388
5336
  "tenant",
5389
- "backup",
5390
- "export",
5337
+ "cluster",
5338
+ "edit",
5391
5339
  "index.js"
5392
5340
  ]
5393
5341
  },
5394
- "tenant:backup:import": {
5342
+ "tenant:cluster:get": {
5395
5343
  "aliases": [],
5396
5344
  "args": {
5397
- "tenant_name": {
5398
- "description": "Tenant name to import backup into",
5399
- "name": "tenant_name",
5345
+ "cluster_id": {
5346
+ "description": "Cluster ID to retrieve",
5347
+ "name": "cluster_id",
5400
5348
  "required": true
5401
5349
  }
5402
5350
  },
5403
- "description": "Import a backup file into a tenant",
5351
+ "description": "Get details of a specific tenant cluster",
5404
5352
  "examples": [
5405
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5406
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5353
+ "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5354
+ "$ xano tenant cluster get 1 -o json"
5407
5355
  ],
5408
5356
  "flags": {
5409
5357
  "profile": {
@@ -5425,25 +5373,6 @@
5425
5373
  "allowNo": false,
5426
5374
  "type": "boolean"
5427
5375
  },
5428
- "description": {
5429
- "char": "d",
5430
- "description": "Backup description",
5431
- "name": "description",
5432
- "required": false,
5433
- "default": "",
5434
- "hasDynamicHelp": false,
5435
- "multiple": false,
5436
- "type": "option"
5437
- },
5438
- "file": {
5439
- "char": "f",
5440
- "description": "Path to the backup file (.tar.gz)",
5441
- "name": "file",
5442
- "required": true,
5443
- "hasDynamicHelp": false,
5444
- "multiple": false,
5445
- "type": "option"
5446
- },
5447
5376
  "output": {
5448
5377
  "char": "o",
5449
5378
  "description": "Output format",
@@ -5457,20 +5386,11 @@
5457
5386
  "json"
5458
5387
  ],
5459
5388
  "type": "option"
5460
- },
5461
- "workspace": {
5462
- "char": "w",
5463
- "description": "Workspace ID (uses profile workspace if not provided)",
5464
- "name": "workspace",
5465
- "required": false,
5466
- "hasDynamicHelp": false,
5467
- "multiple": false,
5468
- "type": "option"
5469
5389
  }
5470
5390
  },
5471
5391
  "hasDynamicHelp": false,
5472
5392
  "hiddenAliases": [],
5473
- "id": "tenant:backup:import",
5393
+ "id": "tenant:cluster:get",
5474
5394
  "pluginAlias": "@xano/cli",
5475
5395
  "pluginName": "@xano/cli",
5476
5396
  "pluginType": "core",
@@ -5481,24 +5401,18 @@
5481
5401
  "dist",
5482
5402
  "commands",
5483
5403
  "tenant",
5484
- "backup",
5485
- "import",
5404
+ "cluster",
5405
+ "get",
5486
5406
  "index.js"
5487
5407
  ]
5488
5408
  },
5489
- "tenant:backup:list": {
5409
+ "tenant:cluster:list": {
5490
5410
  "aliases": [],
5491
- "args": {
5492
- "tenant_name": {
5493
- "description": "Tenant name to list backups for",
5494
- "name": "tenant_name",
5495
- "required": true
5496
- }
5497
- },
5498
- "description": "List backups for a tenant",
5411
+ "args": {},
5412
+ "description": "List all tenant clusters",
5499
5413
  "examples": [
5500
- "$ 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",
5501
- "$ xano tenant backup list t1234-abcd-xyz1 -o json"
5414
+ "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
5415
+ "$ xano tenant cluster list --output json"
5502
5416
  ],
5503
5417
  "flags": {
5504
5418
  "profile": {
@@ -5530,32 +5444,14 @@
5530
5444
  "multiple": false,
5531
5445
  "options": [
5532
5446
  "summary",
5533
- "json"
5534
- ],
5535
- "type": "option"
5536
- },
5537
- "page": {
5538
- "description": "Page number for pagination",
5539
- "name": "page",
5540
- "required": false,
5541
- "default": 1,
5542
- "hasDynamicHelp": false,
5543
- "multiple": false,
5544
- "type": "option"
5545
- },
5546
- "workspace": {
5547
- "char": "w",
5548
- "description": "Workspace ID (uses profile workspace if not provided)",
5549
- "name": "workspace",
5550
- "required": false,
5551
- "hasDynamicHelp": false,
5552
- "multiple": false,
5447
+ "json"
5448
+ ],
5553
5449
  "type": "option"
5554
5450
  }
5555
5451
  },
5556
5452
  "hasDynamicHelp": false,
5557
5453
  "hiddenAliases": [],
5558
- "id": "tenant:backup:list",
5454
+ "id": "tenant:cluster:list",
5559
5455
  "pluginAlias": "@xano/cli",
5560
5456
  "pluginName": "@xano/cli",
5561
5457
  "pluginType": "core",
@@ -5566,24 +5462,25 @@
5566
5462
  "dist",
5567
5463
  "commands",
5568
5464
  "tenant",
5569
- "backup",
5465
+ "cluster",
5570
5466
  "list",
5571
5467
  "index.js"
5572
5468
  ]
5573
5469
  },
5574
- "tenant:backup:restore": {
5470
+ "tenant:backup:delete": {
5575
5471
  "aliases": [],
5576
5472
  "args": {
5577
5473
  "tenant_name": {
5578
- "description": "Tenant name to restore",
5474
+ "description": "Tenant name that owns the backup",
5579
5475
  "name": "tenant_name",
5580
5476
  "required": true
5581
5477
  }
5582
5478
  },
5583
- "description": "Restore a tenant from a backup. This replaces the current tenant data.",
5479
+ "description": "Delete a tenant backup permanently. This action cannot be undone.",
5584
5480
  "examples": [
5585
- "$ 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",
5586
- "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
5481
+ "$ 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",
5482
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5483
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
5587
5484
  ],
5588
5485
  "flags": {
5589
5486
  "profile": {
@@ -5606,7 +5503,7 @@
5606
5503
  "type": "boolean"
5607
5504
  },
5608
5505
  "backup_id": {
5609
- "description": "Backup ID to restore from",
5506
+ "description": "Backup ID to delete",
5610
5507
  "name": "backup_id",
5611
5508
  "required": true,
5612
5509
  "hasDynamicHelp": false,
@@ -5647,7 +5544,7 @@
5647
5544
  },
5648
5545
  "hasDynamicHelp": false,
5649
5546
  "hiddenAliases": [],
5650
- "id": "tenant:backup:restore",
5547
+ "id": "tenant:backup:delete",
5651
5548
  "pluginAlias": "@xano/cli",
5652
5549
  "pluginName": "@xano/cli",
5653
5550
  "pluginType": "core",
@@ -5659,17 +5556,23 @@
5659
5556
  "commands",
5660
5557
  "tenant",
5661
5558
  "backup",
5662
- "restore",
5559
+ "delete",
5663
5560
  "index.js"
5664
5561
  ]
5665
5562
  },
5666
- "tenant:cluster:create": {
5563
+ "tenant:backup:create": {
5667
5564
  "aliases": [],
5668
- "args": {},
5669
- "description": "Create a new tenant cluster",
5565
+ "args": {
5566
+ "tenant_name": {
5567
+ "description": "Tenant name to back up",
5568
+ "name": "tenant_name",
5569
+ "required": true
5570
+ }
5571
+ },
5572
+ "description": "Create a backup for a tenant",
5670
5573
  "examples": [
5671
- "$ xano tenant cluster create --name \"us-east-1\" --credentials_file ./kubeconfig.yaml\nCreated tenant cluster: us-east-1 (standard) - ID: 3\n",
5672
- "$ xano tenant cluster create --name \"eu-west-1\" --credentials \"...\" --type run --description \"EU run cluster\" -o json"
5574
+ "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
5575
+ "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
5673
5576
  ],
5674
5577
  "flags": {
5675
5578
  "profile": {
@@ -5691,50 +5594,12 @@
5691
5594
  "allowNo": false,
5692
5595
  "type": "boolean"
5693
5596
  },
5694
- "credentials": {
5695
- "description": "Kubeconfig credentials (raw text)",
5696
- "exclusive": [
5697
- "credentials_file"
5698
- ],
5699
- "name": "credentials",
5700
- "required": false,
5701
- "hasDynamicHelp": false,
5702
- "multiple": false,
5703
- "type": "option"
5704
- },
5705
- "credentials_file": {
5706
- "description": "Path to kubeconfig credentials file",
5707
- "exclusive": [
5708
- "credentials"
5709
- ],
5710
- "name": "credentials_file",
5711
- "required": false,
5712
- "hasDynamicHelp": false,
5713
- "multiple": false,
5714
- "type": "option"
5715
- },
5716
5597
  "description": {
5717
5598
  "char": "d",
5718
- "description": "Cluster description",
5599
+ "description": "Backup description",
5719
5600
  "name": "description",
5720
5601
  "required": false,
5721
- "hasDynamicHelp": false,
5722
- "multiple": false,
5723
- "type": "option"
5724
- },
5725
- "domain": {
5726
- "description": "Custom domain for the cluster",
5727
- "name": "domain",
5728
- "required": false,
5729
- "hasDynamicHelp": false,
5730
- "multiple": false,
5731
- "type": "option"
5732
- },
5733
- "name": {
5734
- "char": "n",
5735
- "description": "Cluster name",
5736
- "name": "name",
5737
- "required": true,
5602
+ "default": "",
5738
5603
  "hasDynamicHelp": false,
5739
5604
  "multiple": false,
5740
5605
  "type": "option"
@@ -5753,23 +5618,19 @@
5753
5618
  ],
5754
5619
  "type": "option"
5755
5620
  },
5756
- "type": {
5757
- "description": "Cluster type",
5758
- "name": "type",
5621
+ "workspace": {
5622
+ "char": "w",
5623
+ "description": "Workspace ID (uses profile workspace if not provided)",
5624
+ "name": "workspace",
5759
5625
  "required": false,
5760
- "default": "standard",
5761
5626
  "hasDynamicHelp": false,
5762
5627
  "multiple": false,
5763
- "options": [
5764
- "standard",
5765
- "run"
5766
- ],
5767
5628
  "type": "option"
5768
5629
  }
5769
5630
  },
5770
5631
  "hasDynamicHelp": false,
5771
5632
  "hiddenAliases": [],
5772
- "id": "tenant:cluster:create",
5633
+ "id": "tenant:backup:create",
5773
5634
  "pluginAlias": "@xano/cli",
5774
5635
  "pluginName": "@xano/cli",
5775
5636
  "pluginType": "core",
@@ -5780,25 +5641,31 @@
5780
5641
  "dist",
5781
5642
  "commands",
5782
5643
  "tenant",
5783
- "cluster",
5644
+ "backup",
5784
5645
  "create",
5785
5646
  "index.js"
5786
5647
  ]
5787
5648
  },
5788
- "tenant:cluster:delete": {
5649
+ "static_host:build:get": {
5789
5650
  "aliases": [],
5790
5651
  "args": {
5791
- "cluster_id": {
5792
- "description": "Cluster ID to delete",
5793
- "name": "cluster_id",
5652
+ "build_id": {
5653
+ "description": "Build ID",
5654
+ "name": "build_id",
5655
+ "required": true
5656
+ },
5657
+ "static_host": {
5658
+ "description": "Static Host name",
5659
+ "name": "static_host",
5794
5660
  "required": true
5795
5661
  }
5796
5662
  },
5797
- "description": "Delete a tenant cluster. This action cannot be undone.",
5663
+ "description": "Get details of a specific build for a static host",
5798
5664
  "examples": [
5799
- "$ 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",
5800
- "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5801
- "$ xano tenant cluster delete 3 -f -o json"
5665
+ "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
5666
+ "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
5667
+ "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
5668
+ "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
5802
5669
  ],
5803
5670
  "flags": {
5804
5671
  "profile": {
@@ -5820,14 +5687,6 @@
5820
5687
  "allowNo": false,
5821
5688
  "type": "boolean"
5822
5689
  },
5823
- "force": {
5824
- "char": "f",
5825
- "description": "Skip confirmation prompt",
5826
- "name": "force",
5827
- "required": false,
5828
- "allowNo": false,
5829
- "type": "boolean"
5830
- },
5831
5690
  "output": {
5832
5691
  "char": "o",
5833
5692
  "description": "Output format",
@@ -5841,11 +5700,20 @@
5841
5700
  "json"
5842
5701
  ],
5843
5702
  "type": "option"
5703
+ },
5704
+ "workspace": {
5705
+ "char": "w",
5706
+ "description": "Workspace ID (optional if set in profile)",
5707
+ "name": "workspace",
5708
+ "required": false,
5709
+ "hasDynamicHelp": false,
5710
+ "multiple": false,
5711
+ "type": "option"
5844
5712
  }
5845
5713
  },
5846
5714
  "hasDynamicHelp": false,
5847
5715
  "hiddenAliases": [],
5848
- "id": "tenant:cluster:delete",
5716
+ "id": "static_host:build:get",
5849
5717
  "pluginAlias": "@xano/cli",
5850
5718
  "pluginName": "@xano/cli",
5851
5719
  "pluginType": "core",
@@ -5855,25 +5723,26 @@
5855
5723
  "relativePath": [
5856
5724
  "dist",
5857
5725
  "commands",
5858
- "tenant",
5859
- "cluster",
5860
- "delete",
5726
+ "static_host",
5727
+ "build",
5728
+ "get",
5861
5729
  "index.js"
5862
5730
  ]
5863
5731
  },
5864
- "tenant:cluster:edit": {
5732
+ "tenant:backup:export": {
5865
5733
  "aliases": [],
5866
5734
  "args": {
5867
- "cluster_id": {
5868
- "description": "Cluster ID to edit",
5869
- "name": "cluster_id",
5735
+ "tenant_name": {
5736
+ "description": "Tenant name to export backup from",
5737
+ "name": "tenant_name",
5870
5738
  "required": true
5871
5739
  }
5872
5740
  },
5873
- "description": "Update an existing tenant cluster",
5741
+ "description": "Export (download) a tenant backup to a local file",
5874
5742
  "examples": [
5875
- "$ 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",
5876
- "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5743
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
5744
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
5745
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5877
5746
  ],
5878
5747
  "flags": {
5879
5748
  "profile": {
@@ -5895,36 +5764,18 @@
5895
5764
  "allowNo": false,
5896
5765
  "type": "boolean"
5897
5766
  },
5898
- "description": {
5899
- "char": "d",
5900
- "description": "Cluster description",
5901
- "name": "description",
5902
- "required": true,
5903
- "hasDynamicHelp": false,
5904
- "multiple": false,
5905
- "type": "option"
5906
- },
5907
- "domain": {
5908
- "description": "Custom domain for the cluster",
5909
- "name": "domain",
5910
- "required": true,
5911
- "hasDynamicHelp": false,
5912
- "multiple": false,
5913
- "type": "option"
5914
- },
5915
- "name": {
5916
- "char": "n",
5917
- "description": "Cluster name",
5918
- "name": "name",
5767
+ "backup_id": {
5768
+ "description": "Backup ID to export",
5769
+ "name": "backup_id",
5919
5770
  "required": true,
5920
5771
  "hasDynamicHelp": false,
5921
5772
  "multiple": false,
5922
5773
  "type": "option"
5923
5774
  },
5924
- "output": {
5775
+ "format": {
5925
5776
  "char": "o",
5926
5777
  "description": "Output format",
5927
- "name": "output",
5778
+ "name": "format",
5928
5779
  "required": false,
5929
5780
  "default": "summary",
5930
5781
  "hasDynamicHelp": false,
@@ -5935,22 +5786,27 @@
5935
5786
  ],
5936
5787
  "type": "option"
5937
5788
  },
5938
- "type": {
5939
- "description": "Cluster type",
5940
- "name": "type",
5941
- "required": true,
5789
+ "output": {
5790
+ "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5791
+ "name": "output",
5792
+ "required": false,
5793
+ "hasDynamicHelp": false,
5794
+ "multiple": false,
5795
+ "type": "option"
5796
+ },
5797
+ "workspace": {
5798
+ "char": "w",
5799
+ "description": "Workspace ID (uses profile workspace if not provided)",
5800
+ "name": "workspace",
5801
+ "required": false,
5942
5802
  "hasDynamicHelp": false,
5943
5803
  "multiple": false,
5944
- "options": [
5945
- "standard",
5946
- "run"
5947
- ],
5948
5804
  "type": "option"
5949
5805
  }
5950
5806
  },
5951
5807
  "hasDynamicHelp": false,
5952
5808
  "hiddenAliases": [],
5953
- "id": "tenant:cluster:edit",
5809
+ "id": "tenant:backup:export",
5954
5810
  "pluginAlias": "@xano/cli",
5955
5811
  "pluginName": "@xano/cli",
5956
5812
  "pluginType": "core",
@@ -5961,24 +5817,24 @@
5961
5817
  "dist",
5962
5818
  "commands",
5963
5819
  "tenant",
5964
- "cluster",
5965
- "edit",
5820
+ "backup",
5821
+ "export",
5966
5822
  "index.js"
5967
5823
  ]
5968
5824
  },
5969
- "tenant:cluster:get": {
5825
+ "tenant:backup:import": {
5970
5826
  "aliases": [],
5971
5827
  "args": {
5972
- "cluster_id": {
5973
- "description": "Cluster ID to retrieve",
5974
- "name": "cluster_id",
5828
+ "tenant_name": {
5829
+ "description": "Tenant name to import backup into",
5830
+ "name": "tenant_name",
5975
5831
  "required": true
5976
5832
  }
5977
5833
  },
5978
- "description": "Get details of a specific tenant cluster",
5834
+ "description": "Import a backup file into a tenant",
5979
5835
  "examples": [
5980
- "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5981
- "$ xano tenant cluster get 1 -o json"
5836
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5837
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5982
5838
  ],
5983
5839
  "flags": {
5984
5840
  "profile": {
@@ -5991,15 +5847,34 @@
5991
5847
  "multiple": false,
5992
5848
  "type": "option"
5993
5849
  },
5994
- "verbose": {
5995
- "char": "v",
5996
- "description": "Show detailed request/response information",
5997
- "env": "XANO_VERBOSE",
5998
- "name": "verbose",
5999
- "required": false,
6000
- "allowNo": false,
6001
- "type": "boolean"
6002
- },
5850
+ "verbose": {
5851
+ "char": "v",
5852
+ "description": "Show detailed request/response information",
5853
+ "env": "XANO_VERBOSE",
5854
+ "name": "verbose",
5855
+ "required": false,
5856
+ "allowNo": false,
5857
+ "type": "boolean"
5858
+ },
5859
+ "description": {
5860
+ "char": "d",
5861
+ "description": "Backup description",
5862
+ "name": "description",
5863
+ "required": false,
5864
+ "default": "",
5865
+ "hasDynamicHelp": false,
5866
+ "multiple": false,
5867
+ "type": "option"
5868
+ },
5869
+ "file": {
5870
+ "char": "f",
5871
+ "description": "Path to the backup file (.tar.gz)",
5872
+ "name": "file",
5873
+ "required": true,
5874
+ "hasDynamicHelp": false,
5875
+ "multiple": false,
5876
+ "type": "option"
5877
+ },
6003
5878
  "output": {
6004
5879
  "char": "o",
6005
5880
  "description": "Output format",
@@ -6013,11 +5888,20 @@
6013
5888
  "json"
6014
5889
  ],
6015
5890
  "type": "option"
5891
+ },
5892
+ "workspace": {
5893
+ "char": "w",
5894
+ "description": "Workspace ID (uses profile workspace if not provided)",
5895
+ "name": "workspace",
5896
+ "required": false,
5897
+ "hasDynamicHelp": false,
5898
+ "multiple": false,
5899
+ "type": "option"
6016
5900
  }
6017
5901
  },
6018
5902
  "hasDynamicHelp": false,
6019
5903
  "hiddenAliases": [],
6020
- "id": "tenant:cluster:get",
5904
+ "id": "tenant:backup:import",
6021
5905
  "pluginAlias": "@xano/cli",
6022
5906
  "pluginName": "@xano/cli",
6023
5907
  "pluginType": "core",
@@ -6028,18 +5912,24 @@
6028
5912
  "dist",
6029
5913
  "commands",
6030
5914
  "tenant",
6031
- "cluster",
6032
- "get",
5915
+ "backup",
5916
+ "import",
6033
5917
  "index.js"
6034
5918
  ]
6035
5919
  },
6036
- "tenant:cluster:list": {
5920
+ "tenant:backup:list": {
6037
5921
  "aliases": [],
6038
- "args": {},
6039
- "description": "List all tenant clusters",
5922
+ "args": {
5923
+ "tenant_name": {
5924
+ "description": "Tenant name to list backups for",
5925
+ "name": "tenant_name",
5926
+ "required": true
5927
+ }
5928
+ },
5929
+ "description": "List backups for a tenant",
6040
5930
  "examples": [
6041
- "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
6042
- "$ xano tenant cluster list --output json"
5931
+ "$ 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",
5932
+ "$ xano tenant backup list t1234-abcd-xyz1 -o json"
6043
5933
  ],
6044
5934
  "flags": {
6045
5935
  "profile": {
@@ -6074,11 +5964,29 @@
6074
5964
  "json"
6075
5965
  ],
6076
5966
  "type": "option"
5967
+ },
5968
+ "page": {
5969
+ "description": "Page number for pagination",
5970
+ "name": "page",
5971
+ "required": false,
5972
+ "default": 1,
5973
+ "hasDynamicHelp": false,
5974
+ "multiple": false,
5975
+ "type": "option"
5976
+ },
5977
+ "workspace": {
5978
+ "char": "w",
5979
+ "description": "Workspace ID (uses profile workspace if not provided)",
5980
+ "name": "workspace",
5981
+ "required": false,
5982
+ "hasDynamicHelp": false,
5983
+ "multiple": false,
5984
+ "type": "option"
6077
5985
  }
6078
5986
  },
6079
5987
  "hasDynamicHelp": false,
6080
5988
  "hiddenAliases": [],
6081
- "id": "tenant:cluster:list",
5989
+ "id": "tenant:backup:list",
6082
5990
  "pluginAlias": "@xano/cli",
6083
5991
  "pluginName": "@xano/cli",
6084
5992
  "pluginType": "core",
@@ -6089,7 +5997,7 @@
6089
5997
  "dist",
6090
5998
  "commands",
6091
5999
  "tenant",
6092
- "cluster",
6000
+ "backup",
6093
6001
  "list",
6094
6002
  "index.js"
6095
6003
  ]
@@ -6443,19 +6351,19 @@
6443
6351
  "index.js"
6444
6352
  ]
6445
6353
  },
6446
- "tenant:env:set": {
6354
+ "tenant:backup:restore": {
6447
6355
  "aliases": [],
6448
6356
  "args": {
6449
6357
  "tenant_name": {
6450
- "description": "Tenant name",
6358
+ "description": "Tenant name to restore",
6451
6359
  "name": "tenant_name",
6452
6360
  "required": true
6453
6361
  }
6454
6362
  },
6455
- "description": "Set (create or update) an environment variable for a tenant",
6363
+ "description": "Restore a tenant from a backup. This replaces the current tenant data.",
6456
6364
  "examples": [
6457
- "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb\nEnvironment variable 'DATABASE_URL' set for tenant my-tenant\n",
6458
- "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb -w 5 -o json"
6365
+ "$ 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",
6366
+ "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
6459
6367
  ],
6460
6368
  "flags": {
6461
6369
  "profile": {
@@ -6477,15 +6385,22 @@
6477
6385
  "allowNo": false,
6478
6386
  "type": "boolean"
6479
6387
  },
6480
- "name": {
6481
- "char": "n",
6482
- "description": "Environment variable name",
6483
- "name": "name",
6388
+ "backup_id": {
6389
+ "description": "Backup ID to restore from",
6390
+ "name": "backup_id",
6484
6391
  "required": true,
6485
6392
  "hasDynamicHelp": false,
6486
6393
  "multiple": false,
6487
6394
  "type": "option"
6488
6395
  },
6396
+ "force": {
6397
+ "char": "f",
6398
+ "description": "Skip confirmation prompt",
6399
+ "name": "force",
6400
+ "required": false,
6401
+ "allowNo": false,
6402
+ "type": "boolean"
6403
+ },
6489
6404
  "output": {
6490
6405
  "char": "o",
6491
6406
  "description": "Output format",
@@ -6500,14 +6415,6 @@
6500
6415
  ],
6501
6416
  "type": "option"
6502
6417
  },
6503
- "value": {
6504
- "description": "Environment variable value",
6505
- "name": "value",
6506
- "required": true,
6507
- "hasDynamicHelp": false,
6508
- "multiple": false,
6509
- "type": "option"
6510
- },
6511
6418
  "workspace": {
6512
6419
  "char": "w",
6513
6420
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6520,7 +6427,7 @@
6520
6427
  },
6521
6428
  "hasDynamicHelp": false,
6522
6429
  "hiddenAliases": [],
6523
- "id": "tenant:env:set",
6430
+ "id": "tenant:backup:restore",
6524
6431
  "pluginAlias": "@xano/cli",
6525
6432
  "pluginName": "@xano/cli",
6526
6433
  "pluginType": "core",
@@ -6531,12 +6438,12 @@
6531
6438
  "dist",
6532
6439
  "commands",
6533
6440
  "tenant",
6534
- "env",
6535
- "set",
6441
+ "backup",
6442
+ "restore",
6536
6443
  "index.js"
6537
6444
  ]
6538
6445
  },
6539
- "tenant:env:set_all": {
6446
+ "tenant:license:get": {
6540
6447
  "aliases": [],
6541
6448
  "args": {
6542
6449
  "tenant_name": {
@@ -6545,11 +6452,12 @@
6545
6452
  "required": true
6546
6453
  }
6547
6454
  },
6548
- "description": "Set all environment variables for a tenant from a YAML file (replaces all existing)",
6455
+ "description": "Get the license for a tenant",
6549
6456
  "examples": [
6550
- "$ xano tenant env set_all my-tenant\nReads from env_my-tenant.yaml\n",
6551
- "$ xano tenant env set_all my-tenant --file ./my-env.yaml",
6552
- "$ xano tenant env set_all my-tenant -o json"
6457
+ "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6458
+ "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6459
+ "$ xano tenant license get my-tenant --view",
6460
+ "$ xano tenant license get my-tenant -o json"
6553
6461
  ],
6554
6462
  "flags": {
6555
6463
  "profile": {
@@ -6571,18 +6479,103 @@
6571
6479
  "allowNo": false,
6572
6480
  "type": "boolean"
6573
6481
  },
6574
- "clean": {
6575
- "description": "Remove the source file after successful upload",
6576
- "name": "clean",
6482
+ "file": {
6483
+ "char": "f",
6484
+ "description": "Output file path (default: license_<tenant_name>.yaml)",
6485
+ "name": "file",
6486
+ "required": false,
6487
+ "hasDynamicHelp": false,
6488
+ "multiple": false,
6489
+ "type": "option"
6490
+ },
6491
+ "output": {
6492
+ "char": "o",
6493
+ "description": "Output format",
6494
+ "name": "output",
6495
+ "required": false,
6496
+ "default": "summary",
6497
+ "hasDynamicHelp": false,
6498
+ "multiple": false,
6499
+ "options": [
6500
+ "summary",
6501
+ "json"
6502
+ ],
6503
+ "type": "option"
6504
+ },
6505
+ "view": {
6506
+ "description": "Print license to stdout instead of saving to file",
6507
+ "name": "view",
6577
6508
  "required": false,
6578
6509
  "allowNo": false,
6579
6510
  "type": "boolean"
6580
6511
  },
6581
- "file": {
6582
- "char": "f",
6583
- "description": "Path to env file (default: env_<tenant_name>.yaml)",
6584
- "name": "file",
6512
+ "workspace": {
6513
+ "char": "w",
6514
+ "description": "Workspace ID (uses profile workspace if not provided)",
6515
+ "name": "workspace",
6516
+ "required": false,
6517
+ "hasDynamicHelp": false,
6518
+ "multiple": false,
6519
+ "type": "option"
6520
+ }
6521
+ },
6522
+ "hasDynamicHelp": false,
6523
+ "hiddenAliases": [],
6524
+ "id": "tenant:license:get",
6525
+ "pluginAlias": "@xano/cli",
6526
+ "pluginName": "@xano/cli",
6527
+ "pluginType": "core",
6528
+ "strict": true,
6529
+ "enableJsonFlag": false,
6530
+ "isESM": true,
6531
+ "relativePath": [
6532
+ "dist",
6533
+ "commands",
6534
+ "tenant",
6535
+ "license",
6536
+ "get",
6537
+ "index.js"
6538
+ ]
6539
+ },
6540
+ "tenant:env:set": {
6541
+ "aliases": [],
6542
+ "args": {
6543
+ "tenant_name": {
6544
+ "description": "Tenant name",
6545
+ "name": "tenant_name",
6546
+ "required": true
6547
+ }
6548
+ },
6549
+ "description": "Set (create or update) an environment variable for a tenant",
6550
+ "examples": [
6551
+ "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb\nEnvironment variable 'DATABASE_URL' set for tenant my-tenant\n",
6552
+ "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb -w 5 -o json"
6553
+ ],
6554
+ "flags": {
6555
+ "profile": {
6556
+ "char": "p",
6557
+ "description": "Profile to use (uses default profile if not specified)",
6558
+ "env": "XANO_PROFILE",
6559
+ "name": "profile",
6560
+ "required": false,
6561
+ "hasDynamicHelp": false,
6562
+ "multiple": false,
6563
+ "type": "option"
6564
+ },
6565
+ "verbose": {
6566
+ "char": "v",
6567
+ "description": "Show detailed request/response information",
6568
+ "env": "XANO_VERBOSE",
6569
+ "name": "verbose",
6585
6570
  "required": false,
6571
+ "allowNo": false,
6572
+ "type": "boolean"
6573
+ },
6574
+ "name": {
6575
+ "char": "n",
6576
+ "description": "Environment variable name",
6577
+ "name": "name",
6578
+ "required": true,
6586
6579
  "hasDynamicHelp": false,
6587
6580
  "multiple": false,
6588
6581
  "type": "option"
@@ -6601,6 +6594,14 @@
6601
6594
  ],
6602
6595
  "type": "option"
6603
6596
  },
6597
+ "value": {
6598
+ "description": "Environment variable value",
6599
+ "name": "value",
6600
+ "required": true,
6601
+ "hasDynamicHelp": false,
6602
+ "multiple": false,
6603
+ "type": "option"
6604
+ },
6604
6605
  "workspace": {
6605
6606
  "char": "w",
6606
6607
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6613,7 +6614,7 @@
6613
6614
  },
6614
6615
  "hasDynamicHelp": false,
6615
6616
  "hiddenAliases": [],
6616
- "id": "tenant:env:set_all",
6617
+ "id": "tenant:env:set",
6617
6618
  "pluginAlias": "@xano/cli",
6618
6619
  "pluginName": "@xano/cli",
6619
6620
  "pluginType": "core",
@@ -6625,11 +6626,11 @@
6625
6626
  "commands",
6626
6627
  "tenant",
6627
6628
  "env",
6628
- "set_all",
6629
+ "set",
6629
6630
  "index.js"
6630
6631
  ]
6631
6632
  },
6632
- "tenant:license:get": {
6633
+ "tenant:env:set_all": {
6633
6634
  "aliases": [],
6634
6635
  "args": {
6635
6636
  "tenant_name": {
@@ -6638,12 +6639,11 @@
6638
6639
  "required": true
6639
6640
  }
6640
6641
  },
6641
- "description": "Get the license for a tenant",
6642
+ "description": "Set all environment variables for a tenant from a YAML file (replaces all existing)",
6642
6643
  "examples": [
6643
- "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6644
- "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6645
- "$ xano tenant license get my-tenant --view",
6646
- "$ xano tenant license get my-tenant -o json"
6644
+ "$ xano tenant env set_all my-tenant\nReads from env_my-tenant.yaml\n",
6645
+ "$ xano tenant env set_all my-tenant --file ./my-env.yaml",
6646
+ "$ xano tenant env set_all my-tenant -o json"
6647
6647
  ],
6648
6648
  "flags": {
6649
6649
  "profile": {
@@ -6665,9 +6665,16 @@
6665
6665
  "allowNo": false,
6666
6666
  "type": "boolean"
6667
6667
  },
6668
+ "clean": {
6669
+ "description": "Remove the source file after successful upload",
6670
+ "name": "clean",
6671
+ "required": false,
6672
+ "allowNo": false,
6673
+ "type": "boolean"
6674
+ },
6668
6675
  "file": {
6669
6676
  "char": "f",
6670
- "description": "Output file path (default: license_<tenant_name>.yaml)",
6677
+ "description": "Path to env file (default: env_<tenant_name>.yaml)",
6671
6678
  "name": "file",
6672
6679
  "required": false,
6673
6680
  "hasDynamicHelp": false,
@@ -6688,13 +6695,6 @@
6688
6695
  ],
6689
6696
  "type": "option"
6690
6697
  },
6691
- "view": {
6692
- "description": "Print license to stdout instead of saving to file",
6693
- "name": "view",
6694
- "required": false,
6695
- "allowNo": false,
6696
- "type": "boolean"
6697
- },
6698
6698
  "workspace": {
6699
6699
  "char": "w",
6700
6700
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6707,7 +6707,7 @@
6707
6707
  },
6708
6708
  "hasDynamicHelp": false,
6709
6709
  "hiddenAliases": [],
6710
- "id": "tenant:license:get",
6710
+ "id": "tenant:env:set_all",
6711
6711
  "pluginAlias": "@xano/cli",
6712
6712
  "pluginName": "@xano/cli",
6713
6713
  "pluginType": "core",
@@ -6718,8 +6718,8 @@
6718
6718
  "dist",
6719
6719
  "commands",
6720
6720
  "tenant",
6721
- "license",
6722
- "get",
6721
+ "env",
6722
+ "set_all",
6723
6723
  "index.js"
6724
6724
  ]
6725
6725
  },
@@ -7120,5 +7120,5 @@
7120
7120
  ]
7121
7121
  }
7122
7122
  },
7123
- "version": "0.0.71-beta.0"
7123
+ "version": "0.0.73-beta.0"
7124
7124
  }