@xano/cli 0.0.69-beta.3 → 0.0.71-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,14 +93,20 @@
93
93
  "index.js"
94
94
  ]
95
95
  },
96
- "branch:create": {
96
+ "branch:delete": {
97
97
  "aliases": [],
98
- "args": {},
99
- "description": "Create a new branch by cloning from an existing branch",
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)",
100
106
  "examples": [
101
- "$ xano branch create --label dev\nCreated branch: dev\n Cloned from: v1\n",
102
- "$ xano branch create -l feature-auth -s dev -d \"Authentication feature\"\nCreated branch: feature-auth\n Cloned from: dev\n Description: Authentication feature\n",
103
- "$ xano branch create --label staging --color \"#ebc346\" --output json\n{\n \"created_at\": \"2024-02-11T10:00:00Z\",\n \"label\": \"staging\",\n \"backup\": false,\n \"live\": false\n}\n"
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"
104
110
  ],
105
111
  "flags": {
106
112
  "profile": {
@@ -122,32 +128,13 @@
122
128
  "allowNo": false,
123
129
  "type": "boolean"
124
130
  },
125
- "color": {
126
- "char": "c",
127
- "description": "Color hex code for the branch (e.g., \"#ebc346\")",
128
- "name": "color",
129
- "required": false,
130
- "hasDynamicHelp": false,
131
- "multiple": false,
132
- "type": "option"
133
- },
134
- "description": {
135
- "char": "d",
136
- "description": "Description for the new branch",
137
- "name": "description",
131
+ "force": {
132
+ "char": "f",
133
+ "description": "Skip confirmation prompt",
134
+ "name": "force",
138
135
  "required": false,
139
- "hasDynamicHelp": false,
140
- "multiple": false,
141
- "type": "option"
142
- },
143
- "label": {
144
- "char": "l",
145
- "description": "Label for the new branch",
146
- "name": "label",
147
- "required": true,
148
- "hasDynamicHelp": false,
149
- "multiple": false,
150
- "type": "option"
136
+ "allowNo": false,
137
+ "type": "boolean"
151
138
  },
152
139
  "output": {
153
140
  "char": "o",
@@ -163,16 +150,6 @@
163
150
  ],
164
151
  "type": "option"
165
152
  },
166
- "source": {
167
- "char": "s",
168
- "description": "Source branch to clone from (defaults to \"v1\")",
169
- "name": "source",
170
- "required": false,
171
- "default": "v1",
172
- "hasDynamicHelp": false,
173
- "multiple": false,
174
- "type": "option"
175
- },
176
153
  "workspace": {
177
154
  "char": "w",
178
155
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -185,7 +162,7 @@
185
162
  },
186
163
  "hasDynamicHelp": false,
187
164
  "hiddenAliases": [],
188
- "id": "branch:create",
165
+ "id": "branch:delete",
189
166
  "pluginAlias": "@xano/cli",
190
167
  "pluginName": "@xano/cli",
191
168
  "pluginType": "core",
@@ -196,24 +173,18 @@
196
173
  "dist",
197
174
  "commands",
198
175
  "branch",
199
- "create",
176
+ "delete",
200
177
  "index.js"
201
178
  ]
202
179
  },
203
- "branch:delete": {
180
+ "branch:create": {
204
181
  "aliases": [],
205
- "args": {
206
- "branch_label": {
207
- "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
208
- "name": "branch_label",
209
- "required": true
210
- }
211
- },
212
- "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
182
+ "args": {},
183
+ "description": "Create a new branch by cloning from an existing branch",
213
184
  "examples": [
214
- "$ 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",
215
- "$ xano branch delete dev --force\nDeleted branch: dev\n",
216
- "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
185
+ "$ xano branch create --label dev\nCreated branch: dev\n Cloned from: v1\n",
186
+ "$ xano branch create -l feature-auth -s dev -d \"Authentication feature\"\nCreated branch: feature-auth\n Cloned from: dev\n Description: Authentication feature\n",
187
+ "$ xano branch create --label staging --color \"#ebc346\" --output json\n{\n \"created_at\": \"2024-02-11T10:00:00Z\",\n \"label\": \"staging\",\n \"backup\": false,\n \"live\": false\n}\n"
217
188
  ],
218
189
  "flags": {
219
190
  "profile": {
@@ -235,13 +206,32 @@
235
206
  "allowNo": false,
236
207
  "type": "boolean"
237
208
  },
238
- "force": {
239
- "char": "f",
240
- "description": "Skip confirmation prompt",
241
- "name": "force",
209
+ "color": {
210
+ "char": "c",
211
+ "description": "Color hex code for the branch (e.g., \"#ebc346\")",
212
+ "name": "color",
242
213
  "required": false,
243
- "allowNo": false,
244
- "type": "boolean"
214
+ "hasDynamicHelp": false,
215
+ "multiple": false,
216
+ "type": "option"
217
+ },
218
+ "description": {
219
+ "char": "d",
220
+ "description": "Description for the new branch",
221
+ "name": "description",
222
+ "required": false,
223
+ "hasDynamicHelp": false,
224
+ "multiple": false,
225
+ "type": "option"
226
+ },
227
+ "label": {
228
+ "char": "l",
229
+ "description": "Label for the new branch",
230
+ "name": "label",
231
+ "required": true,
232
+ "hasDynamicHelp": false,
233
+ "multiple": false,
234
+ "type": "option"
245
235
  },
246
236
  "output": {
247
237
  "char": "o",
@@ -257,6 +247,16 @@
257
247
  ],
258
248
  "type": "option"
259
249
  },
250
+ "source": {
251
+ "char": "s",
252
+ "description": "Source branch to clone from (defaults to \"v1\")",
253
+ "name": "source",
254
+ "required": false,
255
+ "default": "v1",
256
+ "hasDynamicHelp": false,
257
+ "multiple": false,
258
+ "type": "option"
259
+ },
260
260
  "workspace": {
261
261
  "char": "w",
262
262
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -269,7 +269,7 @@
269
269
  },
270
270
  "hasDynamicHelp": false,
271
271
  "hiddenAliases": [],
272
- "id": "branch:delete",
272
+ "id": "branch:create",
273
273
  "pluginAlias": "@xano/cli",
274
274
  "pluginName": "@xano/cli",
275
275
  "pluginType": "core",
@@ -280,7 +280,7 @@
280
280
  "dist",
281
281
  "commands",
282
282
  "branch",
283
- "delete",
283
+ "create",
284
284
  "index.js"
285
285
  ]
286
286
  },
@@ -387,20 +387,20 @@
387
387
  "index.js"
388
388
  ]
389
389
  },
390
- "branch:get": {
390
+ "branch:list": {
391
391
  "aliases": [],
392
392
  "args": {
393
- "branch_label": {
394
- "description": "Branch label (e.g., \"v1\", \"dev\")",
395
- "name": "branch_label",
396
- "required": true
393
+ "workspace_id": {
394
+ "description": "Workspace ID (uses profile workspace if not provided)",
395
+ "name": "workspace_id",
396
+ "required": false
397
397
  }
398
398
  },
399
- "description": "Get details for a specific branch",
399
+ "description": "List all branches in a workspace",
400
400
  "examples": [
401
- "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
402
- "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
403
- "$ 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"
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"
404
404
  ],
405
405
  "flags": {
406
406
  "profile": {
@@ -435,20 +435,11 @@
435
435
  "json"
436
436
  ],
437
437
  "type": "option"
438
- },
439
- "workspace": {
440
- "char": "w",
441
- "description": "Workspace ID (uses profile workspace if not provided)",
442
- "name": "workspace",
443
- "required": false,
444
- "hasDynamicHelp": false,
445
- "multiple": false,
446
- "type": "option"
447
438
  }
448
439
  },
449
440
  "hasDynamicHelp": false,
450
441
  "hiddenAliases": [],
451
- "id": "branch:get",
442
+ "id": "branch:list",
452
443
  "pluginAlias": "@xano/cli",
453
444
  "pluginName": "@xano/cli",
454
445
  "pluginType": "core",
@@ -459,24 +450,20 @@
459
450
  "dist",
460
451
  "commands",
461
452
  "branch",
462
- "get",
453
+ "list",
463
454
  "index.js"
464
455
  ]
465
456
  },
466
- "branch:list": {
457
+ "function:create": {
467
458
  "aliases": [],
468
- "args": {
469
- "workspace_id": {
470
- "description": "Workspace ID (uses profile workspace if not provided)",
471
- "name": "workspace_id",
472
- "required": false
473
- }
474
- },
475
- "description": "List all branches in a workspace",
459
+ "args": {},
460
+ "description": "Create a new function in a workspace",
476
461
  "examples": [
477
- "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
478
- "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
479
- "$ 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"
462
+ "$ xano function:create -w 40 -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
463
+ "$ xano function:create -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
464
+ "$ xano function:create -w 40 -f function.xs --edit\n# Opens function.xs in $EDITOR, then creates function with edited content\nFunction created successfully!\nID: 123\nName: my_function\n",
465
+ "$ cat function.xs | xano function:create -w 40 --stdin\nFunction created successfully!\nID: 123\nName: my_function\n",
466
+ "$ xano function:create -w 40 -f function.xs -o json\n{\n \"id\": 123,\n \"name\": \"my_function\",\n ...\n}\n"
480
467
  ],
481
468
  "flags": {
482
469
  "profile": {
@@ -498,6 +485,29 @@
498
485
  "allowNo": false,
499
486
  "type": "boolean"
500
487
  },
488
+ "edit": {
489
+ "char": "e",
490
+ "dependsOn": [
491
+ "file"
492
+ ],
493
+ "description": "Open file in editor before creating function (requires --file)",
494
+ "name": "edit",
495
+ "required": false,
496
+ "allowNo": false,
497
+ "type": "boolean"
498
+ },
499
+ "file": {
500
+ "char": "f",
501
+ "description": "Path to file containing XanoScript code",
502
+ "exclusive": [
503
+ "stdin"
504
+ ],
505
+ "name": "file",
506
+ "required": false,
507
+ "hasDynamicHelp": false,
508
+ "multiple": false,
509
+ "type": "option"
510
+ },
501
511
  "output": {
502
512
  "char": "o",
503
513
  "description": "Output format",
@@ -511,11 +521,31 @@
511
521
  "json"
512
522
  ],
513
523
  "type": "option"
524
+ },
525
+ "stdin": {
526
+ "char": "s",
527
+ "description": "Read XanoScript code from stdin",
528
+ "exclusive": [
529
+ "file"
530
+ ],
531
+ "name": "stdin",
532
+ "required": false,
533
+ "allowNo": false,
534
+ "type": "boolean"
535
+ },
536
+ "workspace": {
537
+ "char": "w",
538
+ "description": "Workspace ID (optional if set in profile)",
539
+ "name": "workspace",
540
+ "required": false,
541
+ "hasDynamicHelp": false,
542
+ "multiple": false,
543
+ "type": "option"
514
544
  }
515
545
  },
516
546
  "hasDynamicHelp": false,
517
547
  "hiddenAliases": [],
518
- "id": "branch:list",
548
+ "id": "function:create",
519
549
  "pluginAlias": "@xano/cli",
520
550
  "pluginName": "@xano/cli",
521
551
  "pluginType": "core",
@@ -525,8 +555,8 @@
525
555
  "relativePath": [
526
556
  "dist",
527
557
  "commands",
528
- "branch",
529
- "list",
558
+ "function",
559
+ "create",
530
560
  "index.js"
531
561
  ]
532
562
  },
@@ -614,16 +644,25 @@
614
644
  "index.js"
615
645
  ]
616
646
  },
617
- "function:create": {
647
+ "function:edit": {
618
648
  "aliases": [],
619
- "args": {},
620
- "description": "Create a new function in a workspace",
649
+ "args": {
650
+ "function_id": {
651
+ "description": "Function ID to edit",
652
+ "name": "function_id",
653
+ "required": false
654
+ }
655
+ },
656
+ "description": "Edit a function in a workspace",
621
657
  "examples": [
622
- "$ xano function:create -w 40 -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
623
- "$ xano function:create -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
624
- "$ xano function:create -w 40 -f function.xs --edit\n# Opens function.xs in $EDITOR, then creates function with edited content\nFunction created successfully!\nID: 123\nName: my_function\n",
625
- "$ cat function.xs | xano function:create -w 40 --stdin\nFunction created successfully!\nID: 123\nName: my_function\n",
626
- "$ xano function:create -w 40 -f function.xs -o json\n{\n \"id\": 123,\n \"name\": \"my_function\",\n ...\n}\n"
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"
627
666
  ],
628
667
  "flags": {
629
668
  "profile": {
@@ -647,10 +686,7 @@
647
686
  },
648
687
  "edit": {
649
688
  "char": "e",
650
- "dependsOn": [
651
- "file"
652
- ],
653
- "description": "Open file in editor before creating function (requires --file)",
689
+ "description": "Open file in editor before updating function (requires --file)",
654
690
  "name": "edit",
655
691
  "required": false,
656
692
  "allowNo": false,
@@ -682,6 +718,13 @@
682
718
  ],
683
719
  "type": "option"
684
720
  },
721
+ "publish": {
722
+ "description": "Publish the function after editing",
723
+ "name": "publish",
724
+ "required": false,
725
+ "allowNo": false,
726
+ "type": "boolean"
727
+ },
685
728
  "stdin": {
686
729
  "char": "s",
687
730
  "description": "Read XanoScript code from stdin",
@@ -705,7 +748,7 @@
705
748
  },
706
749
  "hasDynamicHelp": false,
707
750
  "hiddenAliases": [],
708
- "id": "function:create",
751
+ "id": "function:edit",
709
752
  "pluginAlias": "@xano/cli",
710
753
  "pluginName": "@xano/cli",
711
754
  "pluginType": "core",
@@ -716,29 +759,19 @@
716
759
  "dist",
717
760
  "commands",
718
761
  "function",
719
- "create",
762
+ "edit",
720
763
  "index.js"
721
764
  ]
722
765
  },
723
- "function:edit": {
766
+ "function:list": {
724
767
  "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",
768
+ "args": {},
769
+ "description": "List all functions in a workspace from the Xano Metadata API",
733
770
  "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"
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"
742
775
  ],
743
776
  "flags": {
744
777
  "profile": {
@@ -760,24 +793,31 @@
760
793
  "allowNo": false,
761
794
  "type": "boolean"
762
795
  },
763
- "edit": {
764
- "char": "e",
765
- "description": "Open file in editor before updating function (requires --file)",
766
- "name": "edit",
796
+ "include_draft": {
797
+ "description": "Include draft functions",
798
+ "name": "include_draft",
767
799
  "required": false,
768
800
  "allowNo": false,
769
801
  "type": "boolean"
770
802
  },
771
- "file": {
772
- "char": "f",
773
- "description": "Path to file containing XanoScript code",
774
- "exclusive": [
775
- "stdin"
776
- ],
777
- "name": "file",
803
+ "include_xanoscript": {
804
+ "description": "Include XanoScript in response",
805
+ "name": "include_xanoscript",
806
+ "required": false,
807
+ "allowNo": false,
808
+ "type": "boolean"
809
+ },
810
+ "order": {
811
+ "description": "Sort order",
812
+ "name": "order",
778
813
  "required": false,
814
+ "default": "desc",
779
815
  "hasDynamicHelp": false,
780
816
  "multiple": false,
817
+ "options": [
818
+ "asc",
819
+ "desc"
820
+ ],
781
821
  "type": "option"
782
822
  },
783
823
  "output": {
@@ -794,23 +834,32 @@
794
834
  ],
795
835
  "type": "option"
796
836
  },
797
- "publish": {
798
- "description": "Publish the function after editing",
799
- "name": "publish",
837
+ "page": {
838
+ "description": "Page number for pagination",
839
+ "name": "page",
800
840
  "required": false,
801
- "allowNo": false,
802
- "type": "boolean"
841
+ "default": 1,
842
+ "hasDynamicHelp": false,
843
+ "multiple": false,
844
+ "type": "option"
803
845
  },
804
- "stdin": {
805
- "char": "s",
806
- "description": "Read XanoScript code from stdin",
807
- "exclusive": [
808
- "file"
809
- ],
810
- "name": "stdin",
846
+ "per_page": {
847
+ "description": "Number of results per page",
848
+ "name": "per_page",
811
849
  "required": false,
812
- "allowNo": false,
813
- "type": "boolean"
850
+ "default": 50,
851
+ "hasDynamicHelp": false,
852
+ "multiple": false,
853
+ "type": "option"
854
+ },
855
+ "sort": {
856
+ "description": "Sort field",
857
+ "name": "sort",
858
+ "required": false,
859
+ "default": "created_at",
860
+ "hasDynamicHelp": false,
861
+ "multiple": false,
862
+ "type": "option"
814
863
  },
815
864
  "workspace": {
816
865
  "char": "w",
@@ -824,7 +873,7 @@
824
873
  },
825
874
  "hasDynamicHelp": false,
826
875
  "hiddenAliases": [],
827
- "id": "function:edit",
876
+ "id": "function:list",
828
877
  "pluginAlias": "@xano/cli",
829
878
  "pluginName": "@xano/cli",
830
879
  "pluginType": "core",
@@ -835,7 +884,7 @@
835
884
  "dist",
836
885
  "commands",
837
886
  "function",
838
- "edit",
887
+ "list",
839
888
  "index.js"
840
889
  ]
841
890
  },
@@ -933,131 +982,6 @@
933
982
  "index.js"
934
983
  ]
935
984
  },
936
- "function:list": {
937
- "aliases": [],
938
- "args": {},
939
- "description": "List all functions in a workspace from the Xano Metadata API",
940
- "examples": [
941
- "$ xano function:list -w 40\nAvailable functions:\n - function-1 (ID: 1)\n - function-2 (ID: 2)\n - function-3 (ID: 3)\n",
942
- "$ xano function:list --profile production\nAvailable functions:\n - my-function (ID: 1)\n - another-function (ID: 2)\n",
943
- "$ xano function:list -w 40 --output json\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n",
944
- "$ xano function:list -p staging -o json --include_draft\n[\n {\n \"id\": 1,\n \"name\": \"function-1\"\n }\n]\n"
945
- ],
946
- "flags": {
947
- "profile": {
948
- "char": "p",
949
- "description": "Profile to use (uses default profile if not specified)",
950
- "env": "XANO_PROFILE",
951
- "name": "profile",
952
- "required": false,
953
- "hasDynamicHelp": false,
954
- "multiple": false,
955
- "type": "option"
956
- },
957
- "verbose": {
958
- "char": "v",
959
- "description": "Show detailed request/response information",
960
- "env": "XANO_VERBOSE",
961
- "name": "verbose",
962
- "required": false,
963
- "allowNo": false,
964
- "type": "boolean"
965
- },
966
- "include_draft": {
967
- "description": "Include draft functions",
968
- "name": "include_draft",
969
- "required": false,
970
- "allowNo": false,
971
- "type": "boolean"
972
- },
973
- "include_xanoscript": {
974
- "description": "Include XanoScript in response",
975
- "name": "include_xanoscript",
976
- "required": false,
977
- "allowNo": false,
978
- "type": "boolean"
979
- },
980
- "order": {
981
- "description": "Sort order",
982
- "name": "order",
983
- "required": false,
984
- "default": "desc",
985
- "hasDynamicHelp": false,
986
- "multiple": false,
987
- "options": [
988
- "asc",
989
- "desc"
990
- ],
991
- "type": "option"
992
- },
993
- "output": {
994
- "char": "o",
995
- "description": "Output format",
996
- "name": "output",
997
- "required": false,
998
- "default": "summary",
999
- "hasDynamicHelp": false,
1000
- "multiple": false,
1001
- "options": [
1002
- "summary",
1003
- "json"
1004
- ],
1005
- "type": "option"
1006
- },
1007
- "page": {
1008
- "description": "Page number for pagination",
1009
- "name": "page",
1010
- "required": false,
1011
- "default": 1,
1012
- "hasDynamicHelp": false,
1013
- "multiple": false,
1014
- "type": "option"
1015
- },
1016
- "per_page": {
1017
- "description": "Number of results per page",
1018
- "name": "per_page",
1019
- "required": false,
1020
- "default": 50,
1021
- "hasDynamicHelp": false,
1022
- "multiple": false,
1023
- "type": "option"
1024
- },
1025
- "sort": {
1026
- "description": "Sort field",
1027
- "name": "sort",
1028
- "required": false,
1029
- "default": "created_at",
1030
- "hasDynamicHelp": false,
1031
- "multiple": false,
1032
- "type": "option"
1033
- },
1034
- "workspace": {
1035
- "char": "w",
1036
- "description": "Workspace ID (optional if set in profile)",
1037
- "name": "workspace",
1038
- "required": false,
1039
- "hasDynamicHelp": false,
1040
- "multiple": false,
1041
- "type": "option"
1042
- }
1043
- },
1044
- "hasDynamicHelp": false,
1045
- "hiddenAliases": [],
1046
- "id": "function:list",
1047
- "pluginAlias": "@xano/cli",
1048
- "pluginName": "@xano/cli",
1049
- "pluginType": "core",
1050
- "strict": true,
1051
- "enableJsonFlag": false,
1052
- "isESM": true,
1053
- "relativePath": [
1054
- "dist",
1055
- "commands",
1056
- "function",
1057
- "list",
1058
- "index.js"
1059
- ]
1060
- },
1061
985
  "platform:get": {
1062
986
  "aliases": [],
1063
987
  "args": {
@@ -1477,28 +1401,53 @@
1477
1401
  "index.js"
1478
1402
  ]
1479
1403
  },
1480
- "profile:list": {
1404
+ "profile:me": {
1481
1405
  "aliases": [],
1482
1406
  "args": {},
1483
- "description": "List all available profile configurations",
1407
+ "description": "Get information about the currently authenticated user",
1484
1408
  "examples": [
1485
- "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1486
- "$ 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",
1487
- "$ 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"
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"
1488
1412
  ],
1489
1413
  "flags": {
1490
- "details": {
1491
- "char": "d",
1492
- "description": "Show detailed information for each profile",
1493
- "name": "details",
1414
+ "profile": {
1415
+ "char": "p",
1416
+ "description": "Profile to use (uses default profile if not specified)",
1417
+ "env": "XANO_PROFILE",
1418
+ "name": "profile",
1494
1419
  "required": false,
1495
- "allowNo": false,
1496
- "type": "boolean"
1497
- }
1498
- },
1499
- "hasDynamicHelp": false,
1500
- "hiddenAliases": [],
1501
- "id": "profile:list",
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",
1429
+ "required": false,
1430
+ "allowNo": false,
1431
+ "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
+ }
1447
+ },
1448
+ "hasDynamicHelp": false,
1449
+ "hiddenAliases": [],
1450
+ "id": "profile:me",
1502
1451
  "pluginAlias": "@xano/cli",
1503
1452
  "pluginName": "@xano/cli",
1504
1453
  "pluginType": "core",
@@ -1509,18 +1458,24 @@
1509
1458
  "dist",
1510
1459
  "commands",
1511
1460
  "profile",
1512
- "list",
1461
+ "me",
1513
1462
  "index.js"
1514
1463
  ]
1515
1464
  },
1516
- "profile:me": {
1465
+ "branch:get": {
1517
1466
  "aliases": [],
1518
- "args": {},
1519
- "description": "Get information about the currently authenticated user",
1467
+ "args": {
1468
+ "branch_label": {
1469
+ "description": "Branch label (e.g., \"v1\", \"dev\")",
1470
+ "name": "branch_label",
1471
+ "required": true
1472
+ }
1473
+ },
1474
+ "description": "Get details for a specific branch",
1520
1475
  "examples": [
1521
- "$ xano profile:me\nUser Information:\n ID: 1\n Name: John Doe\n Email: john@example.com\n",
1522
- "$ xano profile:me --profile production\nUser Information:\n ID: 42\n Name: Admin User\n Email: admin@example.com\n",
1523
- "$ xano profile:me --output json\n{\n \"id\": 1,\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\"\n}\n"
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"
1524
1479
  ],
1525
1480
  "flags": {
1526
1481
  "profile": {
@@ -1555,11 +1510,20 @@
1555
1510
  "json"
1556
1511
  ],
1557
1512
  "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"
1558
1522
  }
1559
1523
  },
1560
1524
  "hasDynamicHelp": false,
1561
1525
  "hiddenAliases": [],
1562
- "id": "profile:me",
1526
+ "id": "branch:get",
1563
1527
  "pluginAlias": "@xano/cli",
1564
1528
  "pluginName": "@xano/cli",
1565
1529
  "pluginType": "core",
@@ -1569,8 +1533,8 @@
1569
1533
  "relativePath": [
1570
1534
  "dist",
1571
1535
  "commands",
1572
- "profile",
1573
- "me",
1536
+ "branch",
1537
+ "get",
1574
1538
  "index.js"
1575
1539
  ]
1576
1540
  },
@@ -1605,18 +1569,28 @@
1605
1569
  "index.js"
1606
1570
  ]
1607
1571
  },
1608
- "profile:token": {
1572
+ "profile:list": {
1609
1573
  "aliases": [],
1610
1574
  "args": {},
1611
- "description": "Print the access token for the default profile",
1575
+ "description": "List all available profile configurations",
1612
1576
  "examples": [
1613
- "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1614
- "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
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"
1615
1580
  ],
1616
- "flags": {},
1581
+ "flags": {
1582
+ "details": {
1583
+ "char": "d",
1584
+ "description": "Show detailed information for each profile",
1585
+ "name": "details",
1586
+ "required": false,
1587
+ "allowNo": false,
1588
+ "type": "boolean"
1589
+ }
1590
+ },
1617
1591
  "hasDynamicHelp": false,
1618
1592
  "hiddenAliases": [],
1619
- "id": "profile:token",
1593
+ "id": "profile:list",
1620
1594
  "pluginAlias": "@xano/cli",
1621
1595
  "pluginName": "@xano/cli",
1622
1596
  "pluginType": "core",
@@ -1627,49 +1601,22 @@
1627
1601
  "dist",
1628
1602
  "commands",
1629
1603
  "profile",
1630
- "token",
1604
+ "list",
1631
1605
  "index.js"
1632
1606
  ]
1633
1607
  },
1634
- "profile:wizard": {
1608
+ "profile:token": {
1635
1609
  "aliases": [],
1636
1610
  "args": {},
1637
- "description": "Create a new profile configuration using an interactive wizard",
1611
+ "description": "Print the access token for the default profile",
1638
1612
  "examples": [
1639
- "$ 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"
1613
+ "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1614
+ "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1640
1615
  ],
1641
- "flags": {
1642
- "insecure": {
1643
- "char": "k",
1644
- "description": "Skip TLS certificate verification (for self-signed certificates)",
1645
- "name": "insecure",
1646
- "required": false,
1647
- "allowNo": false,
1648
- "type": "boolean"
1649
- },
1650
- "name": {
1651
- "char": "n",
1652
- "description": "Profile name (skip prompt if provided)",
1653
- "name": "name",
1654
- "required": false,
1655
- "hasDynamicHelp": false,
1656
- "multiple": false,
1657
- "type": "option"
1658
- },
1659
- "origin": {
1660
- "char": "o",
1661
- "description": "Xano instance origin URL",
1662
- "name": "origin",
1663
- "required": false,
1664
- "default": "https://app.xano.com",
1665
- "hasDynamicHelp": false,
1666
- "multiple": false,
1667
- "type": "option"
1668
- }
1669
- },
1616
+ "flags": {},
1670
1617
  "hasDynamicHelp": false,
1671
1618
  "hiddenAliases": [],
1672
- "id": "profile:wizard",
1619
+ "id": "profile:token",
1673
1620
  "pluginAlias": "@xano/cli",
1674
1621
  "pluginName": "@xano/cli",
1675
1622
  "pluginType": "core",
@@ -1680,7 +1627,7 @@
1680
1627
  "dist",
1681
1628
  "commands",
1682
1629
  "profile",
1683
- "wizard",
1630
+ "token",
1684
1631
  "index.js"
1685
1632
  ]
1686
1633
  },
@@ -1821,90 +1768,6 @@
1821
1768
  "index.js"
1822
1769
  ]
1823
1770
  },
1824
- "release:delete": {
1825
- "aliases": [],
1826
- "args": {
1827
- "release_name": {
1828
- "description": "Release name to delete",
1829
- "name": "release_name",
1830
- "required": true
1831
- }
1832
- },
1833
- "description": "Delete a release permanently. This action cannot be undone.",
1834
- "examples": [
1835
- "$ 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",
1836
- "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1837
- "$ xano release delete v1.0 -f -o json"
1838
- ],
1839
- "flags": {
1840
- "profile": {
1841
- "char": "p",
1842
- "description": "Profile to use (uses default profile if not specified)",
1843
- "env": "XANO_PROFILE",
1844
- "name": "profile",
1845
- "required": false,
1846
- "hasDynamicHelp": false,
1847
- "multiple": false,
1848
- "type": "option"
1849
- },
1850
- "verbose": {
1851
- "char": "v",
1852
- "description": "Show detailed request/response information",
1853
- "env": "XANO_VERBOSE",
1854
- "name": "verbose",
1855
- "required": false,
1856
- "allowNo": false,
1857
- "type": "boolean"
1858
- },
1859
- "force": {
1860
- "char": "f",
1861
- "description": "Skip confirmation prompt",
1862
- "name": "force",
1863
- "required": false,
1864
- "allowNo": false,
1865
- "type": "boolean"
1866
- },
1867
- "output": {
1868
- "char": "o",
1869
- "description": "Output format",
1870
- "name": "output",
1871
- "required": false,
1872
- "default": "summary",
1873
- "hasDynamicHelp": false,
1874
- "multiple": false,
1875
- "options": [
1876
- "summary",
1877
- "json"
1878
- ],
1879
- "type": "option"
1880
- },
1881
- "workspace": {
1882
- "char": "w",
1883
- "description": "Workspace ID (uses profile workspace if not provided)",
1884
- "name": "workspace",
1885
- "required": false,
1886
- "hasDynamicHelp": false,
1887
- "multiple": false,
1888
- "type": "option"
1889
- }
1890
- },
1891
- "hasDynamicHelp": false,
1892
- "hiddenAliases": [],
1893
- "id": "release:delete",
1894
- "pluginAlias": "@xano/cli",
1895
- "pluginName": "@xano/cli",
1896
- "pluginType": "core",
1897
- "strict": true,
1898
- "enableJsonFlag": false,
1899
- "isESM": true,
1900
- "relativePath": [
1901
- "dist",
1902
- "commands",
1903
- "release",
1904
- "delete",
1905
- "index.js"
1906
- ]
1907
- },
1908
1771
  "release:edit": {
1909
1772
  "aliases": [],
1910
1773
  "args": {
@@ -2082,19 +1945,20 @@
2082
1945
  "index.js"
2083
1946
  ]
2084
1947
  },
2085
- "release:get": {
1948
+ "release:delete": {
2086
1949
  "aliases": [],
2087
1950
  "args": {
2088
1951
  "release_name": {
2089
- "description": "Release name to retrieve",
1952
+ "description": "Release name to delete",
2090
1953
  "name": "release_name",
2091
1954
  "required": true
2092
1955
  }
2093
1956
  },
2094
- "description": "Get details of a specific release",
1957
+ "description": "Delete a release permanently. This action cannot be undone.",
2095
1958
  "examples": [
2096
- "$ xano release get v1.0\nRelease: v1.0 - ID: 10\n Branch: main\n Description: Initial release\n Hotfix: false\n",
2097
- "$ xano release get v1.0 -w 5 -o json"
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"
2098
1962
  ],
2099
1963
  "flags": {
2100
1964
  "profile": {
@@ -2116,6 +1980,14 @@
2116
1980
  "allowNo": false,
2117
1981
  "type": "boolean"
2118
1982
  },
1983
+ "force": {
1984
+ "char": "f",
1985
+ "description": "Skip confirmation prompt",
1986
+ "name": "force",
1987
+ "required": false,
1988
+ "allowNo": false,
1989
+ "type": "boolean"
1990
+ },
2119
1991
  "output": {
2120
1992
  "char": "o",
2121
1993
  "description": "Output format",
@@ -2142,7 +2014,7 @@
2142
2014
  },
2143
2015
  "hasDynamicHelp": false,
2144
2016
  "hiddenAliases": [],
2145
- "id": "release:get",
2017
+ "id": "release:delete",
2146
2018
  "pluginAlias": "@xano/cli",
2147
2019
  "pluginName": "@xano/cli",
2148
2020
  "pluginType": "core",
@@ -2153,27 +2025,80 @@
2153
2025
  "dist",
2154
2026
  "commands",
2155
2027
  "release",
2156
- "get",
2028
+ "delete",
2157
2029
  "index.js"
2158
2030
  ]
2159
2031
  },
2160
- "release:import": {
2032
+ "profile:wizard": {
2161
2033
  "aliases": [],
2162
2034
  "args": {},
2163
- "description": "Import a release file into a workspace",
2035
+ "description": "Create a new profile configuration using an interactive wizard",
2164
2036
  "examples": [
2165
- "$ xano release import --file ./my-release.tar.gz\nImported release as #15\n",
2166
- "$ xano release import --file ./my-release.tar.gz -o json"
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"
2167
2038
  ],
2168
2039
  "flags": {
2169
- "profile": {
2170
- "char": "p",
2171
- "description": "Profile to use (uses default profile if not specified)",
2172
- "env": "XANO_PROFILE",
2173
- "name": "profile",
2040
+ "insecure": {
2041
+ "char": "k",
2042
+ "description": "Skip TLS certificate verification (for self-signed certificates)",
2043
+ "name": "insecure",
2174
2044
  "required": false,
2175
- "hasDynamicHelp": false,
2176
- "multiple": false,
2045
+ "allowNo": false,
2046
+ "type": "boolean"
2047
+ },
2048
+ "name": {
2049
+ "char": "n",
2050
+ "description": "Profile name (skip prompt if provided)",
2051
+ "name": "name",
2052
+ "required": false,
2053
+ "hasDynamicHelp": false,
2054
+ "multiple": false,
2055
+ "type": "option"
2056
+ },
2057
+ "origin": {
2058
+ "char": "o",
2059
+ "description": "Xano instance origin URL",
2060
+ "name": "origin",
2061
+ "required": false,
2062
+ "default": "https://app.xano.com",
2063
+ "hasDynamicHelp": false,
2064
+ "multiple": false,
2065
+ "type": "option"
2066
+ }
2067
+ },
2068
+ "hasDynamicHelp": false,
2069
+ "hiddenAliases": [],
2070
+ "id": "profile:wizard",
2071
+ "pluginAlias": "@xano/cli",
2072
+ "pluginName": "@xano/cli",
2073
+ "pluginType": "core",
2074
+ "strict": true,
2075
+ "enableJsonFlag": false,
2076
+ "isESM": true,
2077
+ "relativePath": [
2078
+ "dist",
2079
+ "commands",
2080
+ "profile",
2081
+ "wizard",
2082
+ "index.js"
2083
+ ]
2084
+ },
2085
+ "release:import": {
2086
+ "aliases": [],
2087
+ "args": {},
2088
+ "description": "Import a release file into a workspace",
2089
+ "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"
2092
+ ],
2093
+ "flags": {
2094
+ "profile": {
2095
+ "char": "p",
2096
+ "description": "Profile to use (uses default profile if not specified)",
2097
+ "env": "XANO_PROFILE",
2098
+ "name": "profile",
2099
+ "required": false,
2100
+ "hasDynamicHelp": false,
2101
+ "multiple": false,
2177
2102
  "type": "option"
2178
2103
  },
2179
2104
  "verbose": {
@@ -2235,13 +2160,19 @@
2235
2160
  "index.js"
2236
2161
  ]
2237
2162
  },
2238
- "release:list": {
2163
+ "release:get": {
2239
2164
  "aliases": [],
2240
- "args": {},
2241
- "description": "List all releases in a workspace",
2165
+ "args": {
2166
+ "release_name": {
2167
+ "description": "Release name to retrieve",
2168
+ "name": "release_name",
2169
+ "required": true
2170
+ }
2171
+ },
2172
+ "description": "Get details of a specific release",
2242
2173
  "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"
2174
+ "$ xano release get v1.0\nRelease: v1.0 - ID: 10\n Branch: main\n Description: Initial release\n Hotfix: false\n",
2175
+ "$ xano release get v1.0 -w 5 -o json"
2245
2176
  ],
2246
2177
  "flags": {
2247
2178
  "profile": {
@@ -2289,7 +2220,7 @@
2289
2220
  },
2290
2221
  "hasDynamicHelp": false,
2291
2222
  "hiddenAliases": [],
2292
- "id": "release:list",
2223
+ "id": "release:get",
2293
2224
  "pluginAlias": "@xano/cli",
2294
2225
  "pluginName": "@xano/cli",
2295
2226
  "pluginType": "core",
@@ -2300,24 +2231,17 @@
2300
2231
  "dist",
2301
2232
  "commands",
2302
2233
  "release",
2303
- "list",
2234
+ "get",
2304
2235
  "index.js"
2305
2236
  ]
2306
2237
  },
2307
- "release:pull": {
2238
+ "release:list": {
2308
2239
  "aliases": [],
2309
- "args": {
2310
- "directory": {
2311
- "description": "Output directory for pulled documents",
2312
- "name": "directory",
2313
- "required": true
2314
- }
2315
- },
2316
- "description": "Pull a release multidoc from the Xano Metadata API and split into individual files",
2240
+ "args": {},
2241
+ "description": "List all releases in a workspace",
2317
2242
  "examples": [
2318
- "$ xano release pull ./my-release -r v1.0\nPulled 42 documents from release 'v1.0' to ./my-release\n",
2319
- "$ xano release pull ./output -r v1.0 -w 40\nPulled 15 documents from release 'v1.0' to ./output\n",
2320
- "$ xano release pull ./backup -r v1.0 --profile production --env --records\nPulled 58 documents from release 'v1.0' to ./backup\n"
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"
2321
2245
  ],
2322
2246
  "flags": {
2323
2247
  "profile": {
@@ -2339,32 +2263,23 @@
2339
2263
  "allowNo": false,
2340
2264
  "type": "boolean"
2341
2265
  },
2342
- "env": {
2343
- "description": "Include environment variables",
2344
- "name": "env",
2345
- "required": false,
2346
- "allowNo": false,
2347
- "type": "boolean"
2348
- },
2349
- "records": {
2350
- "description": "Include records",
2351
- "name": "records",
2266
+ "output": {
2267
+ "char": "o",
2268
+ "description": "Output format",
2269
+ "name": "output",
2352
2270
  "required": false,
2353
- "allowNo": false,
2354
- "type": "boolean"
2355
- },
2356
- "release": {
2357
- "char": "r",
2358
- "description": "Release name to pull from",
2359
- "name": "release",
2360
- "required": true,
2271
+ "default": "summary",
2361
2272
  "hasDynamicHelp": false,
2362
2273
  "multiple": false,
2274
+ "options": [
2275
+ "summary",
2276
+ "json"
2277
+ ],
2363
2278
  "type": "option"
2364
2279
  },
2365
2280
  "workspace": {
2366
2281
  "char": "w",
2367
- "description": "Workspace ID (optional if set in profile)",
2282
+ "description": "Workspace ID (uses profile workspace if not provided)",
2368
2283
  "name": "workspace",
2369
2284
  "required": false,
2370
2285
  "hasDynamicHelp": false,
@@ -2374,7 +2289,7 @@
2374
2289
  },
2375
2290
  "hasDynamicHelp": false,
2376
2291
  "hiddenAliases": [],
2377
- "id": "release:pull",
2292
+ "id": "release:list",
2378
2293
  "pluginAlias": "@xano/cli",
2379
2294
  "pluginName": "@xano/cli",
2380
2295
  "pluginType": "core",
@@ -2385,7 +2300,7 @@
2385
2300
  "dist",
2386
2301
  "commands",
2387
2302
  "release",
2388
- "pull",
2303
+ "list",
2389
2304
  "index.js"
2390
2305
  ]
2391
2306
  },
@@ -2736,20 +2651,20 @@
2736
2651
  "index.js"
2737
2652
  ]
2738
2653
  },
2739
- "tenant:delete": {
2654
+ "release:pull": {
2740
2655
  "aliases": [],
2741
2656
  "args": {
2742
- "tenant_name": {
2743
- "description": "Tenant name to delete",
2744
- "name": "tenant_name",
2657
+ "directory": {
2658
+ "description": "Output directory for pulled documents",
2659
+ "name": "directory",
2745
2660
  "required": true
2746
2661
  }
2747
2662
  },
2748
- "description": "Delete a tenant permanently. This destroys all associated infrastructure and cannot be undone.",
2663
+ "description": "Pull a release multidoc from the Xano Metadata API and split into individual files",
2749
2664
  "examples": [
2750
- "$ xano tenant delete t1234-abcd-xyz1\nAre you sure you want to delete tenant t1234-abcd-xyz1? This action cannot be undone. (y/N) y\nDeleted tenant t1234-abcd-xyz1\n",
2751
- "$ xano tenant delete t1234-abcd-xyz1 --force\nDeleted tenant t1234-abcd-xyz1\n",
2752
- "$ xano tenant delete t1234-abcd-xyz1 -f -o json"
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"
2753
2668
  ],
2754
2669
  "flags": {
2755
2670
  "profile": {
@@ -2771,31 +2686,32 @@
2771
2686
  "allowNo": false,
2772
2687
  "type": "boolean"
2773
2688
  },
2774
- "force": {
2775
- "char": "f",
2776
- "description": "Skip confirmation prompt",
2777
- "name": "force",
2689
+ "env": {
2690
+ "description": "Include environment variables",
2691
+ "name": "env",
2778
2692
  "required": false,
2779
2693
  "allowNo": false,
2780
2694
  "type": "boolean"
2781
2695
  },
2782
- "output": {
2783
- "char": "o",
2784
- "description": "Output format",
2785
- "name": "output",
2696
+ "records": {
2697
+ "description": "Include records",
2698
+ "name": "records",
2786
2699
  "required": false,
2787
- "default": "summary",
2700
+ "allowNo": false,
2701
+ "type": "boolean"
2702
+ },
2703
+ "release": {
2704
+ "char": "r",
2705
+ "description": "Release name to pull from",
2706
+ "name": "release",
2707
+ "required": true,
2788
2708
  "hasDynamicHelp": false,
2789
2709
  "multiple": false,
2790
- "options": [
2791
- "summary",
2792
- "json"
2793
- ],
2794
2710
  "type": "option"
2795
2711
  },
2796
2712
  "workspace": {
2797
2713
  "char": "w",
2798
- "description": "Workspace ID (uses profile workspace if not provided)",
2714
+ "description": "Workspace ID (optional if set in profile)",
2799
2715
  "name": "workspace",
2800
2716
  "required": false,
2801
2717
  "hasDynamicHelp": false,
@@ -2805,7 +2721,7 @@
2805
2721
  },
2806
2722
  "hasDynamicHelp": false,
2807
2723
  "hiddenAliases": [],
2808
- "id": "tenant:delete",
2724
+ "id": "release:pull",
2809
2725
  "pluginAlias": "@xano/cli",
2810
2726
  "pluginName": "@xano/cli",
2811
2727
  "pluginType": "core",
@@ -2815,8 +2731,8 @@
2815
2731
  "relativePath": [
2816
2732
  "dist",
2817
2733
  "commands",
2818
- "tenant",
2819
- "delete",
2734
+ "release",
2735
+ "pull",
2820
2736
  "index.js"
2821
2737
  ]
2822
2738
  },
@@ -2987,19 +2903,20 @@
2987
2903
  "index.js"
2988
2904
  ]
2989
2905
  },
2990
- "tenant:edit": {
2906
+ "tenant:delete": {
2991
2907
  "aliases": [],
2992
2908
  "args": {
2993
2909
  "tenant_name": {
2994
- "description": "Tenant name to edit",
2910
+ "description": "Tenant name to delete",
2995
2911
  "name": "tenant_name",
2996
2912
  "required": true
2997
2913
  }
2998
2914
  },
2999
- "description": "Edit an existing tenant",
2915
+ "description": "Delete a tenant permanently. This destroys all associated infrastructure and cannot be undone.",
3000
2916
  "examples": [
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"
2917
+ "$ xano tenant delete t1234-abcd-xyz1\nAre you sure you want to delete tenant t1234-abcd-xyz1? This action cannot be undone. (y/N) y\nDeleted tenant t1234-abcd-xyz1\n",
2918
+ "$ xano tenant delete t1234-abcd-xyz1 --force\nDeleted tenant t1234-abcd-xyz1\n",
2919
+ "$ xano tenant delete t1234-abcd-xyz1 -f -o json"
3003
2920
  ],
3004
2921
  "flags": {
3005
2922
  "profile": {
@@ -3021,36 +2938,87 @@
3021
2938
  "allowNo": false,
3022
2939
  "type": "boolean"
3023
2940
  },
3024
- "description": {
3025
- "char": "d",
3026
- "description": "New description",
3027
- "name": "description",
2941
+ "force": {
2942
+ "char": "f",
2943
+ "description": "Skip confirmation prompt",
2944
+ "name": "force",
2945
+ "required": false,
2946
+ "allowNo": false,
2947
+ "type": "boolean"
2948
+ },
2949
+ "output": {
2950
+ "char": "o",
2951
+ "description": "Output format",
2952
+ "name": "output",
3028
2953
  "required": false,
2954
+ "default": "summary",
3029
2955
  "hasDynamicHelp": false,
3030
2956
  "multiple": false,
2957
+ "options": [
2958
+ "summary",
2959
+ "json"
2960
+ ],
3031
2961
  "type": "option"
3032
2962
  },
3033
- "display": {
3034
- "description": "New display name",
3035
- "name": "display",
2963
+ "workspace": {
2964
+ "char": "w",
2965
+ "description": "Workspace ID (uses profile workspace if not provided)",
2966
+ "name": "workspace",
3036
2967
  "required": false,
3037
2968
  "hasDynamicHelp": false,
3038
2969
  "multiple": false,
3039
2970
  "type": "option"
3040
- },
3041
- "domain": {
3042
- "description": "Custom domain",
3043
- "name": "domain",
2971
+ }
2972
+ },
2973
+ "hasDynamicHelp": false,
2974
+ "hiddenAliases": [],
2975
+ "id": "tenant:delete",
2976
+ "pluginAlias": "@xano/cli",
2977
+ "pluginName": "@xano/cli",
2978
+ "pluginType": "core",
2979
+ "strict": true,
2980
+ "enableJsonFlag": false,
2981
+ "isESM": true,
2982
+ "relativePath": [
2983
+ "dist",
2984
+ "commands",
2985
+ "tenant",
2986
+ "delete",
2987
+ "index.js"
2988
+ ]
2989
+ },
2990
+ "tenant:impersonate": {
2991
+ "aliases": [],
2992
+ "args": {
2993
+ "tenant_name": {
2994
+ "description": "Tenant name to impersonate",
2995
+ "name": "tenant_name",
2996
+ "required": true
2997
+ }
2998
+ },
2999
+ "description": "Impersonate a tenant and open it in the browser",
3000
+ "examples": [
3001
+ "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
3002
+ "$ xano tenant impersonate my-tenant -o json"
3003
+ ],
3004
+ "flags": {
3005
+ "profile": {
3006
+ "char": "p",
3007
+ "description": "Profile to use (uses default profile if not specified)",
3008
+ "env": "XANO_PROFILE",
3009
+ "name": "profile",
3044
3010
  "required": false,
3045
3011
  "hasDynamicHelp": false,
3046
3012
  "multiple": false,
3047
3013
  "type": "option"
3048
3014
  },
3049
- "ingress": {
3050
- "description": "Enable/disable ingress",
3051
- "name": "ingress",
3015
+ "verbose": {
3016
+ "char": "v",
3017
+ "description": "Show detailed request/response information",
3018
+ "env": "XANO_VERBOSE",
3019
+ "name": "verbose",
3052
3020
  "required": false,
3053
- "allowNo": true,
3021
+ "allowNo": false,
3054
3022
  "type": "boolean"
3055
3023
  },
3056
3024
  "output": {
@@ -3067,26 +3035,12 @@
3067
3035
  ],
3068
3036
  "type": "option"
3069
3037
  },
3070
- "proxy": {
3071
- "description": "Proxy URL",
3072
- "name": "proxy",
3073
- "required": 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",
3038
+ "url-only": {
3039
+ "char": "u",
3040
+ "description": "Print the URL without opening the browser",
3041
+ "name": "url-only",
3088
3042
  "required": false,
3089
- "allowNo": true,
3043
+ "allowNo": false,
3090
3044
  "type": "boolean"
3091
3045
  },
3092
3046
  "workspace": {
@@ -3101,7 +3055,7 @@
3101
3055
  },
3102
3056
  "hasDynamicHelp": false,
3103
3057
  "hiddenAliases": [],
3104
- "id": "tenant:edit",
3058
+ "id": "tenant:impersonate",
3105
3059
  "pluginAlias": "@xano/cli",
3106
3060
  "pluginName": "@xano/cli",
3107
3061
  "pluginType": "core",
@@ -3112,7 +3066,7 @@
3112
3066
  "dist",
3113
3067
  "commands",
3114
3068
  "tenant",
3115
- "edit",
3069
+ "impersonate",
3116
3070
  "index.js"
3117
3071
  ]
3118
3072
  },
@@ -3191,19 +3145,19 @@
3191
3145
  "index.js"
3192
3146
  ]
3193
3147
  },
3194
- "tenant:impersonate": {
3148
+ "tenant:edit": {
3195
3149
  "aliases": [],
3196
3150
  "args": {
3197
3151
  "tenant_name": {
3198
- "description": "Tenant name to impersonate",
3152
+ "description": "Tenant name to edit",
3199
3153
  "name": "tenant_name",
3200
3154
  "required": true
3201
3155
  }
3202
3156
  },
3203
- "description": "Impersonate a tenant and open it in the browser",
3157
+ "description": "Edit an existing tenant",
3204
3158
  "examples": [
3205
- "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
3206
- "$ xano tenant impersonate my-tenant -o json"
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"
3207
3161
  ],
3208
3162
  "flags": {
3209
3163
  "profile": {
@@ -3225,6 +3179,38 @@
3225
3179
  "allowNo": false,
3226
3180
  "type": "boolean"
3227
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",
3202
+ "required": false,
3203
+ "hasDynamicHelp": false,
3204
+ "multiple": false,
3205
+ "type": "option"
3206
+ },
3207
+ "ingress": {
3208
+ "description": "Enable/disable ingress",
3209
+ "name": "ingress",
3210
+ "required": false,
3211
+ "allowNo": true,
3212
+ "type": "boolean"
3213
+ },
3228
3214
  "output": {
3229
3215
  "char": "o",
3230
3216
  "description": "Output format",
@@ -3239,12 +3225,26 @@
3239
3225
  ],
3240
3226
  "type": "option"
3241
3227
  },
3242
- "url-only": {
3243
- "char": "u",
3244
- "description": "Print the URL without opening the browser",
3245
- "name": "url-only",
3228
+ "proxy": {
3229
+ "description": "Proxy URL",
3230
+ "name": "proxy",
3246
3231
  "required": false,
3247
- "allowNo": 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",
3246
+ "required": false,
3247
+ "allowNo": true,
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:impersonate",
3262
+ "id": "tenant:edit",
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
- "impersonate",
3273
+ "edit",
3274
3274
  "index.js"
3275
3275
  ]
3276
3276
  },
@@ -3403,106 +3403,11 @@
3403
3403
  "tenant": {
3404
3404
  "char": "t",
3405
3405
  "description": "Tenant name to pull from",
3406
- "name": "tenant",
3407
- "required": true,
3408
- "hasDynamicHelp": false,
3409
- "multiple": false,
3410
- "type": "option"
3411
- },
3412
- "workspace": {
3413
- "char": "w",
3414
- "description": "Workspace ID (optional if set in profile)",
3415
- "name": "workspace",
3416
- "required": false,
3417
- "hasDynamicHelp": false,
3418
- "multiple": false,
3419
- "type": "option"
3420
- }
3421
- },
3422
- "hasDynamicHelp": false,
3423
- "hiddenAliases": [],
3424
- "id": "tenant:pull",
3425
- "pluginAlias": "@xano/cli",
3426
- "pluginName": "@xano/cli",
3427
- "pluginType": "core",
3428
- "strict": true,
3429
- "enableJsonFlag": false,
3430
- "isESM": true,
3431
- "relativePath": [
3432
- "dist",
3433
- "commands",
3434
- "tenant",
3435
- "pull",
3436
- "index.js"
3437
- ]
3438
- },
3439
- "tenant:push": {
3440
- "aliases": [],
3441
- "args": {
3442
- "directory": {
3443
- "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3444
- "name": "directory",
3445
- "required": true
3446
- }
3447
- },
3448
- "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3449
- "examples": [
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"
3456
- ],
3457
- "flags": {
3458
- "profile": {
3459
- "char": "p",
3460
- "description": "Profile to use (uses default profile if not specified)",
3461
- "env": "XANO_PROFILE",
3462
- "name": "profile",
3463
- "required": false,
3464
- "hasDynamicHelp": false,
3465
- "multiple": false,
3466
- "type": "option"
3467
- },
3468
- "verbose": {
3469
- "char": "v",
3470
- "description": "Show detailed request/response information",
3471
- "env": "XANO_VERBOSE",
3472
- "name": "verbose",
3473
- "required": false,
3474
- "allowNo": false,
3475
- "type": "boolean"
3476
- },
3477
- "env": {
3478
- "description": "Include environment variables in import (default: true, use --no-env to exclude)",
3479
- "name": "env",
3480
- "required": false,
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,
3496
- "hasDynamicHelp": false,
3497
- "multiple": false,
3498
- "type": "option"
3499
- },
3500
- "truncate": {
3501
- "description": "Truncate all table records before importing",
3502
- "name": "truncate",
3503
- "required": false,
3504
- "allowNo": false,
3505
- "type": "boolean"
3406
+ "name": "tenant",
3407
+ "required": true,
3408
+ "hasDynamicHelp": false,
3409
+ "multiple": false,
3410
+ "type": "option"
3506
3411
  },
3507
3412
  "workspace": {
3508
3413
  "char": "w",
@@ -3516,7 +3421,7 @@
3516
3421
  },
3517
3422
  "hasDynamicHelp": false,
3518
3423
  "hiddenAliases": [],
3519
- "id": "tenant:push",
3424
+ "id": "tenant:pull",
3520
3425
  "pluginAlias": "@xano/cli",
3521
3426
  "pluginName": "@xano/cli",
3522
3427
  "pluginType": "core",
@@ -3527,18 +3432,23 @@
3527
3432
  "dist",
3528
3433
  "commands",
3529
3434
  "tenant",
3530
- "push",
3435
+ "pull",
3531
3436
  "index.js"
3532
3437
  ]
3533
3438
  },
3534
- "unit_test:list": {
3439
+ "unit_test:run": {
3535
3440
  "aliases": [],
3536
- "args": {},
3537
- "description": "List all unit tests in a workspace",
3441
+ "args": {
3442
+ "unit_test_id": {
3443
+ "description": "ID of the unit test to run",
3444
+ "name": "unit_test_id",
3445
+ "required": true
3446
+ }
3447
+ },
3448
+ "description": "Run a unit test",
3538
3449
  "examples": [
3539
- "$ 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",
3540
- "$ xano unit-test list -w 5 --output json",
3541
- "$ xano unit-test list --obj-type function"
3450
+ "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
3451
+ "$ xano unit-test run abc-123 -o json"
3542
3452
  ],
3543
3453
  "flags": {
3544
3454
  "profile": {
@@ -3560,28 +3470,6 @@
3560
3470
  "allowNo": false,
3561
3471
  "type": "boolean"
3562
3472
  },
3563
- "branch": {
3564
- "char": "b",
3565
- "description": "Filter by branch name",
3566
- "name": "branch",
3567
- "required": false,
3568
- "hasDynamicHelp": false,
3569
- "multiple": false,
3570
- "type": "option"
3571
- },
3572
- "obj-type": {
3573
- "description": "Filter by object type",
3574
- "name": "obj-type",
3575
- "required": false,
3576
- "hasDynamicHelp": false,
3577
- "multiple": false,
3578
- "options": [
3579
- "function",
3580
- "query",
3581
- "middleware"
3582
- ],
3583
- "type": "option"
3584
- },
3585
3473
  "output": {
3586
3474
  "char": "o",
3587
3475
  "description": "Output format",
@@ -3608,7 +3496,7 @@
3608
3496
  },
3609
3497
  "hasDynamicHelp": false,
3610
3498
  "hiddenAliases": [],
3611
- "id": "unit_test:list",
3499
+ "id": "unit_test:run",
3612
3500
  "pluginAlias": "@xano/cli",
3613
3501
  "pluginName": "@xano/cli",
3614
3502
  "pluginType": "core",
@@ -3619,23 +3507,18 @@
3619
3507
  "dist",
3620
3508
  "commands",
3621
3509
  "unit_test",
3622
- "list",
3510
+ "run",
3623
3511
  "index.js"
3624
3512
  ]
3625
3513
  },
3626
- "unit_test:run": {
3514
+ "unit_test:list": {
3627
3515
  "aliases": [],
3628
- "args": {
3629
- "unit_test_id": {
3630
- "description": "ID of the unit test to run",
3631
- "name": "unit_test_id",
3632
- "required": true
3633
- }
3634
- },
3635
- "description": "Run a unit test",
3516
+ "args": {},
3517
+ "description": "List all unit tests in a workspace",
3636
3518
  "examples": [
3637
- "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
3638
- "$ xano unit-test run abc-123 -o json"
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"
3639
3522
  ],
3640
3523
  "flags": {
3641
3524
  "profile": {
@@ -3657,6 +3540,28 @@
3657
3540
  "allowNo": false,
3658
3541
  "type": "boolean"
3659
3542
  },
3543
+ "branch": {
3544
+ "char": "b",
3545
+ "description": "Filter by branch name",
3546
+ "name": "branch",
3547
+ "required": false,
3548
+ "hasDynamicHelp": false,
3549
+ "multiple": false,
3550
+ "type": "option"
3551
+ },
3552
+ "obj-type": {
3553
+ "description": "Filter by object type",
3554
+ "name": "obj-type",
3555
+ "required": false,
3556
+ "hasDynamicHelp": false,
3557
+ "multiple": false,
3558
+ "options": [
3559
+ "function",
3560
+ "query",
3561
+ "middleware"
3562
+ ],
3563
+ "type": "option"
3564
+ },
3660
3565
  "output": {
3661
3566
  "char": "o",
3662
3567
  "description": "Output format",
@@ -3683,7 +3588,7 @@
3683
3588
  },
3684
3589
  "hasDynamicHelp": false,
3685
3590
  "hiddenAliases": [],
3686
- "id": "unit_test:run",
3591
+ "id": "unit_test:list",
3687
3592
  "pluginAlias": "@xano/cli",
3688
3593
  "pluginName": "@xano/cli",
3689
3594
  "pluginType": "core",
@@ -3694,7 +3599,7 @@
3694
3599
  "dist",
3695
3600
  "commands",
3696
3601
  "unit_test",
3697
- "run",
3602
+ "list",
3698
3603
  "index.js"
3699
3604
  ]
3700
3605
  },
@@ -4035,6 +3940,101 @@
4035
3940
  "index.js"
4036
3941
  ]
4037
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",
3953
+ "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"
3960
+ ],
3961
+ "flags": {
3962
+ "profile": {
3963
+ "char": "p",
3964
+ "description": "Profile to use (uses default profile if not specified)",
3965
+ "env": "XANO_PROFILE",
3966
+ "name": "profile",
3967
+ "required": false,
3968
+ "hasDynamicHelp": false,
3969
+ "multiple": false,
3970
+ "type": "option"
3971
+ },
3972
+ "verbose": {
3973
+ "char": "v",
3974
+ "description": "Show detailed request/response information",
3975
+ "env": "XANO_VERBOSE",
3976
+ "name": "verbose",
3977
+ "required": false,
3978
+ "allowNo": false,
3979
+ "type": "boolean"
3980
+ },
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",
3991
+ "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
+ "hasDynamicHelp": false,
4001
+ "multiple": false,
4002
+ "type": "option"
4003
+ },
4004
+ "truncate": {
4005
+ "description": "Truncate all table records before importing",
4006
+ "name": "truncate",
4007
+ "required": false,
4008
+ "allowNo": false,
4009
+ "type": "boolean"
4010
+ },
4011
+ "workspace": {
4012
+ "char": "w",
4013
+ "description": "Workspace ID (optional if set in profile)",
4014
+ "name": "workspace",
4015
+ "required": false,
4016
+ "hasDynamicHelp": false,
4017
+ "multiple": false,
4018
+ "type": "option"
4019
+ }
4020
+ },
4021
+ "hasDynamicHelp": false,
4022
+ "hiddenAliases": [],
4023
+ "id": "tenant:push",
4024
+ "pluginAlias": "@xano/cli",
4025
+ "pluginName": "@xano/cli",
4026
+ "pluginType": "core",
4027
+ "strict": true,
4028
+ "enableJsonFlag": false,
4029
+ "isESM": true,
4030
+ "relativePath": [
4031
+ "dist",
4032
+ "commands",
4033
+ "tenant",
4034
+ "push",
4035
+ "index.js"
4036
+ ]
4037
+ },
4038
4038
  "workflow_test:run": {
4039
4039
  "aliases": [],
4040
4040
  "args": {
@@ -4714,17 +4714,17 @@
4714
4714
  "type": "option"
4715
4715
  },
4716
4716
  "delete": {
4717
- "description": "Delete workspace objects not included in the push (default: false)",
4717
+ "description": "Delete workspace objects not included in the push",
4718
4718
  "name": "delete",
4719
4719
  "required": false,
4720
- "allowNo": true,
4720
+ "allowNo": false,
4721
4721
  "type": "boolean"
4722
4722
  },
4723
4723
  "env": {
4724
- "description": "Include environment variables in import (default: true, use --no-env to exclude)",
4724
+ "description": "Include environment variables in import",
4725
4725
  "name": "env",
4726
4726
  "required": false,
4727
- "allowNo": true,
4727
+ "allowNo": false,
4728
4728
  "type": "boolean"
4729
4729
  },
4730
4730
  "partial": {
@@ -4735,10 +4735,10 @@
4735
4735
  "type": "boolean"
4736
4736
  },
4737
4737
  "records": {
4738
- "description": "Include records in import (default: true, use --no-records to exclude)",
4738
+ "description": "Include records in import",
4739
4739
  "name": "records",
4740
4740
  "required": false,
4741
- "allowNo": true,
4741
+ "allowNo": false,
4742
4742
  "type": "boolean"
4743
4743
  },
4744
4744
  "sync-guids": {
@@ -4836,68 +4836,47 @@
4836
4836
  "index.js"
4837
4837
  ]
4838
4838
  },
4839
- "static_host:build:create": {
4839
+ "static_host:build:get": {
4840
4840
  "aliases": [],
4841
4841
  "args": {
4842
+ "build_id": {
4843
+ "description": "Build ID",
4844
+ "name": "build_id",
4845
+ "required": true
4846
+ },
4842
4847
  "static_host": {
4843
4848
  "description": "Static Host name",
4844
4849
  "name": "static_host",
4845
4850
  "required": true
4846
4851
  }
4847
4852
  },
4848
- "description": "Create a new build for a static host",
4853
+ "description": "Get details of a specific build for a static host",
4849
4854
  "examples": [
4850
- "$ xano static_host:build:create default -f ./build.zip -n \"v1.0.0\"\nBuild created successfully!\nID: 123\nName: v1.0.0\nStatus: pending\n",
4851
- "$ xano static_host:build:create default -w 40 -f ./dist.zip -n \"production\" -d \"Production build\"\nBuild created successfully!\nID: 124\nName: production\nDescription: Production build\n",
4852
- "$ xano static_host:build:create myhost -f ./app.zip -n \"release-1.2\" -o json\n{\n \"id\": 125,\n \"name\": \"release-1.2\",\n \"status\": \"pending\"\n}\n"
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"
4853
4859
  ],
4854
4860
  "flags": {
4855
- "profile": {
4856
- "char": "p",
4857
- "description": "Profile to use (uses default profile if not specified)",
4858
- "env": "XANO_PROFILE",
4859
- "name": "profile",
4860
- "required": false,
4861
- "hasDynamicHelp": false,
4862
- "multiple": false,
4863
- "type": "option"
4864
- },
4865
- "verbose": {
4866
- "char": "v",
4867
- "description": "Show detailed request/response information",
4868
- "env": "XANO_VERBOSE",
4869
- "name": "verbose",
4870
- "required": false,
4871
- "allowNo": false,
4872
- "type": "boolean"
4873
- },
4874
- "description": {
4875
- "char": "d",
4876
- "description": "Build description",
4877
- "name": "description",
4878
- "required": false,
4879
- "hasDynamicHelp": false,
4880
- "multiple": false,
4881
- "type": "option"
4882
- },
4883
- "file": {
4884
- "char": "f",
4885
- "description": "Path to zip file to upload",
4886
- "name": "file",
4887
- "required": true,
4888
- "hasDynamicHelp": false,
4889
- "multiple": false,
4890
- "type": "option"
4891
- },
4892
- "name": {
4893
- "char": "n",
4894
- "description": "Build name",
4895
- "name": "name",
4896
- "required": true,
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,
4897
4867
  "hasDynamicHelp": false,
4898
4868
  "multiple": false,
4899
4869
  "type": "option"
4900
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
+ },
4901
4880
  "output": {
4902
4881
  "char": "o",
4903
4882
  "description": "Output format",
@@ -4924,7 +4903,7 @@
4924
4903
  },
4925
4904
  "hasDynamicHelp": false,
4926
4905
  "hiddenAliases": [],
4927
- "id": "static_host:build:create",
4906
+ "id": "static_host:build:get",
4928
4907
  "pluginAlias": "@xano/cli",
4929
4908
  "pluginName": "@xano/cli",
4930
4909
  "pluginType": "core",
@@ -4936,30 +4915,24 @@
4936
4915
  "commands",
4937
4916
  "static_host",
4938
4917
  "build",
4939
- "create",
4918
+ "get",
4940
4919
  "index.js"
4941
4920
  ]
4942
4921
  },
4943
- "static_host:build:get": {
4922
+ "static_host:build:create": {
4944
4923
  "aliases": [],
4945
4924
  "args": {
4946
- "build_id": {
4947
- "description": "Build ID",
4948
- "name": "build_id",
4949
- "required": true
4950
- },
4951
4925
  "static_host": {
4952
4926
  "description": "Static Host name",
4953
4927
  "name": "static_host",
4954
4928
  "required": true
4955
4929
  }
4956
4930
  },
4957
- "description": "Get details of a specific build for a static host",
4931
+ "description": "Create a new build for a static host",
4958
4932
  "examples": [
4959
- "$ xano static_host:build:get default 52\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
4960
- "$ xano static_host:build:get default 52 -w 40\nBuild Details:\nID: 52\nName: v1.0.0\nStatus: completed\n",
4961
- "$ xano static_host:build:get myhost 123 --profile production\nBuild Details:\nID: 123\nName: production-build\n",
4962
- "$ xano static_host:build:get default 52 -o json\n{\n \"id\": 52,\n \"name\": \"v1.0.0\",\n \"status\": \"completed\"\n}\n"
4933
+ "$ xano static_host:build:create default -f ./build.zip -n \"v1.0.0\"\nBuild created successfully!\nID: 123\nName: v1.0.0\nStatus: pending\n",
4934
+ "$ xano static_host:build:create default -w 40 -f ./dist.zip -n \"production\" -d \"Production build\"\nBuild created successfully!\nID: 124\nName: production\nDescription: Production build\n",
4935
+ "$ xano static_host:build:create myhost -f ./app.zip -n \"release-1.2\" -o json\n{\n \"id\": 125,\n \"name\": \"release-1.2\",\n \"status\": \"pending\"\n}\n"
4963
4936
  ],
4964
4937
  "flags": {
4965
4938
  "profile": {
@@ -4981,6 +4954,33 @@
4981
4954
  "allowNo": false,
4982
4955
  "type": "boolean"
4983
4956
  },
4957
+ "description": {
4958
+ "char": "d",
4959
+ "description": "Build description",
4960
+ "name": "description",
4961
+ "required": false,
4962
+ "hasDynamicHelp": false,
4963
+ "multiple": false,
4964
+ "type": "option"
4965
+ },
4966
+ "file": {
4967
+ "char": "f",
4968
+ "description": "Path to zip file to upload",
4969
+ "name": "file",
4970
+ "required": true,
4971
+ "hasDynamicHelp": false,
4972
+ "multiple": false,
4973
+ "type": "option"
4974
+ },
4975
+ "name": {
4976
+ "char": "n",
4977
+ "description": "Build name",
4978
+ "name": "name",
4979
+ "required": true,
4980
+ "hasDynamicHelp": false,
4981
+ "multiple": false,
4982
+ "type": "option"
4983
+ },
4984
4984
  "output": {
4985
4985
  "char": "o",
4986
4986
  "description": "Output format",
@@ -5007,7 +5007,7 @@
5007
5007
  },
5008
5008
  "hasDynamicHelp": false,
5009
5009
  "hiddenAliases": [],
5010
- "id": "static_host:build:get",
5010
+ "id": "static_host:build:create",
5011
5011
  "pluginAlias": "@xano/cli",
5012
5012
  "pluginName": "@xano/cli",
5013
5013
  "pluginType": "core",
@@ -5019,7 +5019,7 @@
5019
5019
  "commands",
5020
5020
  "static_host",
5021
5021
  "build",
5022
- "get",
5022
+ "create",
5023
5023
  "index.js"
5024
5024
  ]
5025
5025
  },
@@ -5391,6 +5391,101 @@
5391
5391
  "index.js"
5392
5392
  ]
5393
5393
  },
5394
+ "tenant:backup:import": {
5395
+ "aliases": [],
5396
+ "args": {
5397
+ "tenant_name": {
5398
+ "description": "Tenant name to import backup into",
5399
+ "name": "tenant_name",
5400
+ "required": true
5401
+ }
5402
+ },
5403
+ "description": "Import a backup file into a tenant",
5404
+ "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"
5407
+ ],
5408
+ "flags": {
5409
+ "profile": {
5410
+ "char": "p",
5411
+ "description": "Profile to use (uses default profile if not specified)",
5412
+ "env": "XANO_PROFILE",
5413
+ "name": "profile",
5414
+ "required": false,
5415
+ "hasDynamicHelp": false,
5416
+ "multiple": false,
5417
+ "type": "option"
5418
+ },
5419
+ "verbose": {
5420
+ "char": "v",
5421
+ "description": "Show detailed request/response information",
5422
+ "env": "XANO_VERBOSE",
5423
+ "name": "verbose",
5424
+ "required": false,
5425
+ "allowNo": false,
5426
+ "type": "boolean"
5427
+ },
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
+ "output": {
5448
+ "char": "o",
5449
+ "description": "Output format",
5450
+ "name": "output",
5451
+ "required": false,
5452
+ "default": "summary",
5453
+ "hasDynamicHelp": false,
5454
+ "multiple": false,
5455
+ "options": [
5456
+ "summary",
5457
+ "json"
5458
+ ],
5459
+ "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
+ }
5470
+ },
5471
+ "hasDynamicHelp": false,
5472
+ "hiddenAliases": [],
5473
+ "id": "tenant:backup:import",
5474
+ "pluginAlias": "@xano/cli",
5475
+ "pluginName": "@xano/cli",
5476
+ "pluginType": "core",
5477
+ "strict": true,
5478
+ "enableJsonFlag": false,
5479
+ "isESM": true,
5480
+ "relativePath": [
5481
+ "dist",
5482
+ "commands",
5483
+ "tenant",
5484
+ "backup",
5485
+ "import",
5486
+ "index.js"
5487
+ ]
5488
+ },
5394
5489
  "tenant:backup:list": {
5395
5490
  "aliases": [],
5396
5491
  "args": {
@@ -5690,101 +5785,6 @@
5690
5785
  "index.js"
5691
5786
  ]
5692
5787
  },
5693
- "tenant:backup:import": {
5694
- "aliases": [],
5695
- "args": {
5696
- "tenant_name": {
5697
- "description": "Tenant name to import backup into",
5698
- "name": "tenant_name",
5699
- "required": true
5700
- }
5701
- },
5702
- "description": "Import a backup file into a tenant",
5703
- "examples": [
5704
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5705
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5706
- ],
5707
- "flags": {
5708
- "profile": {
5709
- "char": "p",
5710
- "description": "Profile to use (uses default profile if not specified)",
5711
- "env": "XANO_PROFILE",
5712
- "name": "profile",
5713
- "required": false,
5714
- "hasDynamicHelp": false,
5715
- "multiple": false,
5716
- "type": "option"
5717
- },
5718
- "verbose": {
5719
- "char": "v",
5720
- "description": "Show detailed request/response information",
5721
- "env": "XANO_VERBOSE",
5722
- "name": "verbose",
5723
- "required": false,
5724
- "allowNo": false,
5725
- "type": "boolean"
5726
- },
5727
- "description": {
5728
- "char": "d",
5729
- "description": "Backup description",
5730
- "name": "description",
5731
- "required": false,
5732
- "default": "",
5733
- "hasDynamicHelp": false,
5734
- "multiple": false,
5735
- "type": "option"
5736
- },
5737
- "file": {
5738
- "char": "f",
5739
- "description": "Path to the backup file (.tar.gz)",
5740
- "name": "file",
5741
- "required": true,
5742
- "hasDynamicHelp": false,
5743
- "multiple": false,
5744
- "type": "option"
5745
- },
5746
- "output": {
5747
- "char": "o",
5748
- "description": "Output format",
5749
- "name": "output",
5750
- "required": false,
5751
- "default": "summary",
5752
- "hasDynamicHelp": false,
5753
- "multiple": false,
5754
- "options": [
5755
- "summary",
5756
- "json"
5757
- ],
5758
- "type": "option"
5759
- },
5760
- "workspace": {
5761
- "char": "w",
5762
- "description": "Workspace ID (uses profile workspace if not provided)",
5763
- "name": "workspace",
5764
- "required": false,
5765
- "hasDynamicHelp": false,
5766
- "multiple": false,
5767
- "type": "option"
5768
- }
5769
- },
5770
- "hasDynamicHelp": false,
5771
- "hiddenAliases": [],
5772
- "id": "tenant:backup:import",
5773
- "pluginAlias": "@xano/cli",
5774
- "pluginName": "@xano/cli",
5775
- "pluginType": "core",
5776
- "strict": true,
5777
- "enableJsonFlag": false,
5778
- "isESM": true,
5779
- "relativePath": [
5780
- "dist",
5781
- "commands",
5782
- "tenant",
5783
- "backup",
5784
- "import",
5785
- "index.js"
5786
- ]
5787
- },
5788
5788
  "tenant:cluster:delete": {
5789
5789
  "aliases": [],
5790
5790
  "args": {
@@ -7120,5 +7120,5 @@
7120
7120
  ]
7121
7121
  }
7122
7122
  },
7123
- "version": "0.0.69-beta.3"
7123
+ "version": "0.0.71-beta.0"
7124
7124
  }