@xano/cli 0.0.80-beta.0 → 0.0.81

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.
@@ -100,19 +100,14 @@
100
100
  "index.js"
101
101
  ]
102
102
  },
103
- "platform:get": {
103
+ "branch:create": {
104
104
  "aliases": [],
105
- "args": {
106
- "platform_id": {
107
- "description": "Platform ID to retrieve",
108
- "name": "platform_id",
109
- "required": true
110
- }
111
- },
112
- "description": "Get details of a specific platform",
105
+ "args": {},
106
+ "description": "Create a new branch by cloning from an existing branch",
113
107
  "examples": [
114
- "$ 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",
115
- "$ xano platform get 23629 -o json"
108
+ "$ xano branch create --label dev\nCreated branch: dev\n Cloned from: v1\n",
109
+ "$ xano branch create -l feature-auth -s dev -d \"Authentication feature\"\nCreated branch: feature-auth\n Cloned from: dev\n Description: Authentication feature\n",
110
+ "$ 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"
116
111
  ],
117
112
  "flags": {
118
113
  "profile": {
@@ -134,6 +129,33 @@
134
129
  "allowNo": false,
135
130
  "type": "boolean"
136
131
  },
132
+ "color": {
133
+ "char": "c",
134
+ "description": "Color hex code for the branch (e.g., \"#ebc346\")",
135
+ "name": "color",
136
+ "required": false,
137
+ "hasDynamicHelp": false,
138
+ "multiple": false,
139
+ "type": "option"
140
+ },
141
+ "description": {
142
+ "char": "d",
143
+ "description": "Description for the new branch",
144
+ "name": "description",
145
+ "required": false,
146
+ "hasDynamicHelp": false,
147
+ "multiple": false,
148
+ "type": "option"
149
+ },
150
+ "label": {
151
+ "char": "l",
152
+ "description": "Label for the new branch",
153
+ "name": "label",
154
+ "required": true,
155
+ "hasDynamicHelp": false,
156
+ "multiple": false,
157
+ "type": "option"
158
+ },
137
159
  "output": {
138
160
  "char": "o",
139
161
  "description": "Output format",
@@ -147,11 +169,30 @@
147
169
  "json"
148
170
  ],
149
171
  "type": "option"
172
+ },
173
+ "source": {
174
+ "char": "s",
175
+ "description": "Source branch to clone from (defaults to \"v1\")",
176
+ "name": "source",
177
+ "required": false,
178
+ "default": "v1",
179
+ "hasDynamicHelp": false,
180
+ "multiple": false,
181
+ "type": "option"
182
+ },
183
+ "workspace": {
184
+ "char": "w",
185
+ "description": "Workspace ID (uses profile workspace if not provided)",
186
+ "name": "workspace",
187
+ "required": false,
188
+ "hasDynamicHelp": false,
189
+ "multiple": false,
190
+ "type": "option"
150
191
  }
151
192
  },
152
193
  "hasDynamicHelp": false,
153
194
  "hiddenAliases": [],
154
- "id": "platform:get",
195
+ "id": "branch:create",
155
196
  "pluginAlias": "@xano/cli",
156
197
  "pluginName": "@xano/cli",
157
198
  "pluginType": "core",
@@ -161,18 +202,25 @@
161
202
  "relativePath": [
162
203
  "dist",
163
204
  "commands",
164
- "platform",
165
- "get",
205
+ "branch",
206
+ "create",
166
207
  "index.js"
167
208
  ]
168
209
  },
169
- "platform:list": {
210
+ "branch:delete": {
170
211
  "aliases": [],
171
- "args": {},
172
- "description": "List all platforms",
212
+ "args": {
213
+ "branch_label": {
214
+ "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
215
+ "name": "branch_label",
216
+ "required": true
217
+ }
218
+ },
219
+ "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
173
220
  "examples": [
174
- "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
175
- "$ xano platform list --output json"
221
+ "$ xano branch delete feature-old\nAre you sure you want to delete branch 'feature-old'? This action cannot be undone. (y/N) y\nDeleted branch: feature-old\n",
222
+ "$ xano branch delete dev --force\nDeleted branch: dev\n",
223
+ "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
176
224
  ],
177
225
  "flags": {
178
226
  "profile": {
@@ -194,6 +242,14 @@
194
242
  "allowNo": false,
195
243
  "type": "boolean"
196
244
  },
245
+ "force": {
246
+ "char": "f",
247
+ "description": "Skip confirmation prompt",
248
+ "name": "force",
249
+ "required": false,
250
+ "allowNo": false,
251
+ "type": "boolean"
252
+ },
197
253
  "output": {
198
254
  "char": "o",
199
255
  "description": "Output format",
@@ -207,11 +263,20 @@
207
263
  "json"
208
264
  ],
209
265
  "type": "option"
266
+ },
267
+ "workspace": {
268
+ "char": "w",
269
+ "description": "Workspace ID (uses profile workspace if not provided)",
270
+ "name": "workspace",
271
+ "required": false,
272
+ "hasDynamicHelp": false,
273
+ "multiple": false,
274
+ "type": "option"
210
275
  }
211
276
  },
212
277
  "hasDynamicHelp": false,
213
278
  "hiddenAliases": [],
214
- "id": "platform:list",
279
+ "id": "branch:delete",
215
280
  "pluginAlias": "@xano/cli",
216
281
  "pluginName": "@xano/cli",
217
282
  "pluginType": "core",
@@ -221,28 +286,25 @@
221
286
  "relativePath": [
222
287
  "dist",
223
288
  "commands",
224
- "platform",
225
- "list",
289
+ "branch",
290
+ "delete",
226
291
  "index.js"
227
292
  ]
228
293
  },
229
- "function:get": {
294
+ "branch:edit": {
230
295
  "aliases": [],
231
296
  "args": {
232
- "function_id": {
233
- "description": "Function ID",
234
- "name": "function_id",
235
- "required": false
297
+ "branch_label": {
298
+ "description": "Branch label to edit (cannot edit \"v1\" label)",
299
+ "name": "branch_label",
300
+ "required": true
236
301
  }
237
302
  },
238
- "description": "Get a specific function from a workspace",
303
+ "description": "Update an existing branch (cannot update \"v1\" label)",
239
304
  "examples": [
240
- "$ xano function:get 145 -w 40\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\nDescription: Sample function\n",
241
- "$ xano function:get 145 --profile production\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\n",
242
- "$ xano function:get\nSelect a function:\n ❯ yo (ID: 145) - Sample function\n another-func (ID: 146)\n",
243
- "$ xano function:get 145 -w 40 --output json\n{\n \"id\": 145,\n \"name\": \"yo\",\n \"description\": \"Sample function\"\n}\n",
244
- "$ xano function:get 145 -p staging -o json --include_draft\n{\n \"id\": 145,\n \"name\": \"yo\"\n}\n",
245
- "$ xano function:get 145 -p staging -o xs\nfunction yo {\n input {\n }\n stack {\n }\n response = null\n}\n"
305
+ "$ xano branch edit dev --label development\nUpdated branch: development\n",
306
+ "$ xano branch edit feature-auth -l feature-authentication --color \"#ff5733\"\nUpdated branch: feature-authentication\n Color: #ff5733\n",
307
+ "$ 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"
246
308
  ],
247
309
  "flags": {
248
310
  "profile": {
@@ -264,19 +326,32 @@
264
326
  "allowNo": false,
265
327
  "type": "boolean"
266
328
  },
267
- "include_draft": {
268
- "description": "Include draft version",
269
- "name": "include_draft",
329
+ "color": {
330
+ "char": "c",
331
+ "description": "New color hex code for the branch (e.g., \"#ff5733\")",
332
+ "name": "color",
270
333
  "required": false,
271
- "allowNo": false,
272
- "type": "boolean"
334
+ "hasDynamicHelp": false,
335
+ "multiple": false,
336
+ "type": "option"
273
337
  },
274
- "include_xanoscript": {
275
- "description": "Include XanoScript in response",
276
- "name": "include_xanoscript",
338
+ "description": {
339
+ "char": "d",
340
+ "description": "New description for the branch",
341
+ "name": "description",
277
342
  "required": false,
278
- "allowNo": false,
279
- "type": "boolean"
343
+ "hasDynamicHelp": false,
344
+ "multiple": false,
345
+ "type": "option"
346
+ },
347
+ "label": {
348
+ "char": "l",
349
+ "description": "New label for the branch",
350
+ "name": "label",
351
+ "required": false,
352
+ "hasDynamicHelp": false,
353
+ "multiple": false,
354
+ "type": "option"
280
355
  },
281
356
  "output": {
282
357
  "char": "o",
@@ -288,14 +363,13 @@
288
363
  "multiple": false,
289
364
  "options": [
290
365
  "summary",
291
- "json",
292
- "xs"
366
+ "json"
293
367
  ],
294
368
  "type": "option"
295
369
  },
296
370
  "workspace": {
297
371
  "char": "w",
298
- "description": "Workspace ID (optional if set in profile)",
372
+ "description": "Workspace ID (uses profile workspace if not provided)",
299
373
  "name": "workspace",
300
374
  "required": false,
301
375
  "hasDynamicHelp": false,
@@ -305,7 +379,7 @@
305
379
  },
306
380
  "hasDynamicHelp": false,
307
381
  "hiddenAliases": [],
308
- "id": "function:get",
382
+ "id": "branch:edit",
309
383
  "pluginAlias": "@xano/cli",
310
384
  "pluginName": "@xano/cli",
311
385
  "pluginType": "core",
@@ -315,21 +389,25 @@
315
389
  "relativePath": [
316
390
  "dist",
317
391
  "commands",
318
- "function",
319
- "get",
392
+ "branch",
393
+ "edit",
320
394
  "index.js"
321
395
  ]
322
396
  },
323
- "function:create": {
397
+ "branch:list": {
324
398
  "aliases": [],
325
- "args": {},
326
- "description": "Create a new function in a workspace",
399
+ "args": {
400
+ "workspace_id": {
401
+ "description": "Workspace ID (uses profile workspace if not provided)",
402
+ "name": "workspace_id",
403
+ "required": false
404
+ }
405
+ },
406
+ "description": "List all branches in a workspace",
327
407
  "examples": [
328
- "$ xano function:create -w 40 -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
329
- "$ xano function:create -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
330
- "$ 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",
331
- "$ cat function.xs | xano function:create -w 40 --stdin\nFunction created successfully!\nID: 123\nName: my_function\n",
332
- "$ xano function:create -w 40 -f function.xs -o json\n{\n \"id\": 123,\n \"name\": \"my_function\",\n ...\n}\n"
408
+ "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
409
+ "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
410
+ "$ xano branch list --output json\n[\n {\n \"created_at\": \"2024-01-15T10:30:00Z\",\n \"label\": \"v1\",\n \"backup\": false,\n \"live\": true\n }\n]\n"
333
411
  ],
334
412
  "flags": {
335
413
  "profile": {
@@ -351,29 +429,6 @@
351
429
  "allowNo": false,
352
430
  "type": "boolean"
353
431
  },
354
- "edit": {
355
- "char": "e",
356
- "dependsOn": [
357
- "file"
358
- ],
359
- "description": "Open file in editor before creating function (requires --file)",
360
- "name": "edit",
361
- "required": false,
362
- "allowNo": false,
363
- "type": "boolean"
364
- },
365
- "file": {
366
- "char": "f",
367
- "description": "Path to file containing XanoScript code",
368
- "exclusive": [
369
- "stdin"
370
- ],
371
- "name": "file",
372
- "required": false,
373
- "hasDynamicHelp": false,
374
- "multiple": false,
375
- "type": "option"
376
- },
377
432
  "output": {
378
433
  "char": "o",
379
434
  "description": "Output format",
@@ -387,31 +442,11 @@
387
442
  "json"
388
443
  ],
389
444
  "type": "option"
390
- },
391
- "stdin": {
392
- "char": "s",
393
- "description": "Read XanoScript code from stdin",
394
- "exclusive": [
395
- "file"
396
- ],
397
- "name": "stdin",
398
- "required": false,
399
- "allowNo": false,
400
- "type": "boolean"
401
- },
402
- "workspace": {
403
- "char": "w",
404
- "description": "Workspace ID (optional if set in profile)",
405
- "name": "workspace",
406
- "required": false,
407
- "hasDynamicHelp": false,
408
- "multiple": false,
409
- "type": "option"
410
445
  }
411
446
  },
412
447
  "hasDynamicHelp": false,
413
448
  "hiddenAliases": [],
414
- "id": "function:create",
449
+ "id": "branch:list",
415
450
  "pluginAlias": "@xano/cli",
416
451
  "pluginName": "@xano/cli",
417
452
  "pluginType": "core",
@@ -421,30 +456,25 @@
421
456
  "relativePath": [
422
457
  "dist",
423
458
  "commands",
424
- "function",
425
- "create",
459
+ "branch",
460
+ "list",
426
461
  "index.js"
427
462
  ]
428
463
  },
429
- "function:edit": {
464
+ "branch:set_live": {
430
465
  "aliases": [],
431
466
  "args": {
432
- "function_id": {
433
- "description": "Function ID to edit",
434
- "name": "function_id",
435
- "required": false
467
+ "branch_label": {
468
+ "description": "Branch label to set as live (use \"v1\" for default branch)",
469
+ "name": "branch_label",
470
+ "required": true
436
471
  }
437
472
  },
438
- "description": "Edit a function in a workspace",
473
+ "description": "Set a branch as the live (active) branch for API requests",
439
474
  "examples": [
440
- "$ 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",
441
- "$ 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",
442
- "$ xano function:edit 163 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
443
- "$ xano function:edit 163 -w 40 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
444
- "$ xano function:edit -f function.xs\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
445
- "$ 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",
446
- "$ cat function.xs | xano function:edit 163 --stdin\nFunction updated successfully!\nID: 163\nName: my_function\n",
447
- "$ xano function:edit 163 -f function.xs -o json\n{\n \"id\": 163,\n \"name\": \"my_function\",\n ...\n}\n"
475
+ "$ xano branch set-live staging\nAre you sure you want to set 'staging' as the live branch? (y/N) y\nBranch 'staging' is now live\n",
476
+ "$ xano branch set-live v1 --force\nBranch 'v1' is now live\n",
477
+ "$ xano branch set-live production -f -o json\n{\n \"created_at\": \"2024-02-10T09:15:00Z\",\n \"label\": \"production\",\n \"backup\": false,\n \"live\": true\n}\n"
448
478
  ],
449
479
  "flags": {
450
480
  "profile": {
@@ -466,26 +496,14 @@
466
496
  "allowNo": false,
467
497
  "type": "boolean"
468
498
  },
469
- "edit": {
470
- "char": "e",
471
- "description": "Open file in editor before updating function (requires --file)",
472
- "name": "edit",
499
+ "force": {
500
+ "char": "f",
501
+ "description": "Skip confirmation prompt",
502
+ "name": "force",
473
503
  "required": false,
474
504
  "allowNo": false,
475
505
  "type": "boolean"
476
506
  },
477
- "file": {
478
- "char": "f",
479
- "description": "Path to file containing XanoScript code",
480
- "exclusive": [
481
- "stdin"
482
- ],
483
- "name": "file",
484
- "required": false,
485
- "hasDynamicHelp": false,
486
- "multiple": false,
487
- "type": "option"
488
- },
489
507
  "output": {
490
508
  "char": "o",
491
509
  "description": "Output format",
@@ -500,27 +518,9 @@
500
518
  ],
501
519
  "type": "option"
502
520
  },
503
- "publish": {
504
- "description": "Publish the function after editing",
505
- "name": "publish",
506
- "required": false,
507
- "allowNo": false,
508
- "type": "boolean"
509
- },
510
- "stdin": {
511
- "char": "s",
512
- "description": "Read XanoScript code from stdin",
513
- "exclusive": [
514
- "file"
515
- ],
516
- "name": "stdin",
517
- "required": false,
518
- "allowNo": false,
519
- "type": "boolean"
520
- },
521
521
  "workspace": {
522
522
  "char": "w",
523
- "description": "Workspace ID (optional if set in profile)",
523
+ "description": "Workspace ID (uses profile workspace if not provided)",
524
524
  "name": "workspace",
525
525
  "required": false,
526
526
  "hasDynamicHelp": false,
@@ -530,7 +530,7 @@
530
530
  },
531
531
  "hasDynamicHelp": false,
532
532
  "hiddenAliases": [],
533
- "id": "function:edit",
533
+ "id": "branch:set_live",
534
534
  "pluginAlias": "@xano/cli",
535
535
  "pluginName": "@xano/cli",
536
536
  "pluginType": "core",
@@ -540,19 +540,21 @@
540
540
  "relativePath": [
541
541
  "dist",
542
542
  "commands",
543
- "function",
544
- "edit",
543
+ "branch",
544
+ "set_live",
545
545
  "index.js"
546
546
  ]
547
547
  },
548
- "branch:create": {
548
+ "function:create": {
549
549
  "aliases": [],
550
550
  "args": {},
551
- "description": "Create a new branch by cloning from an existing branch",
551
+ "description": "Create a new function in a workspace",
552
552
  "examples": [
553
- "$ xano branch create --label dev\nCreated branch: dev\n Cloned from: v1\n",
554
- "$ xano branch create -l feature-auth -s dev -d \"Authentication feature\"\nCreated branch: feature-auth\n Cloned from: dev\n Description: Authentication feature\n",
555
- "$ 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"
553
+ "$ xano function:create -w 40 -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
554
+ "$ xano function:create -f function.xs\nFunction created successfully!\nID: 123\nName: my_function\n",
555
+ "$ xano function:create -w 40 -f function.xs --edit\n# Opens function.xs in $EDITOR, then creates function with edited content\nFunction created successfully!\nID: 123\nName: my_function\n",
556
+ "$ cat function.xs | xano function:create -w 40 --stdin\nFunction created successfully!\nID: 123\nName: my_function\n",
557
+ "$ xano function:create -w 40 -f function.xs -o json\n{\n \"id\": 123,\n \"name\": \"my_function\",\n ...\n}\n"
556
558
  ],
557
559
  "flags": {
558
560
  "profile": {
@@ -574,33 +576,29 @@
574
576
  "allowNo": false,
575
577
  "type": "boolean"
576
578
  },
577
- "color": {
578
- "char": "c",
579
- "description": "Color hex code for the branch (e.g., \"#ebc346\")",
580
- "name": "color",
579
+ "edit": {
580
+ "char": "e",
581
+ "dependsOn": [
582
+ "file"
583
+ ],
584
+ "description": "Open file in editor before creating function (requires --file)",
585
+ "name": "edit",
581
586
  "required": false,
582
- "hasDynamicHelp": false,
583
- "multiple": false,
584
- "type": "option"
587
+ "allowNo": false,
588
+ "type": "boolean"
585
589
  },
586
- "description": {
587
- "char": "d",
588
- "description": "Description for the new branch",
589
- "name": "description",
590
+ "file": {
591
+ "char": "f",
592
+ "description": "Path to file containing XanoScript code",
593
+ "exclusive": [
594
+ "stdin"
595
+ ],
596
+ "name": "file",
590
597
  "required": false,
591
598
  "hasDynamicHelp": false,
592
599
  "multiple": false,
593
600
  "type": "option"
594
601
  },
595
- "label": {
596
- "char": "l",
597
- "description": "Label for the new branch",
598
- "name": "label",
599
- "required": true,
600
- "hasDynamicHelp": false,
601
- "multiple": false,
602
- "type": "option"
603
- },
604
602
  "output": {
605
603
  "char": "o",
606
604
  "description": "Output format",
@@ -615,19 +613,20 @@
615
613
  ],
616
614
  "type": "option"
617
615
  },
618
- "source": {
619
- "char": "s",
620
- "description": "Source branch to clone from (defaults to \"v1\")",
621
- "name": "source",
622
- "required": false,
623
- "default": "v1",
624
- "hasDynamicHelp": false,
625
- "multiple": false,
626
- "type": "option"
627
- },
616
+ "stdin": {
617
+ "char": "s",
618
+ "description": "Read XanoScript code from stdin",
619
+ "exclusive": [
620
+ "file"
621
+ ],
622
+ "name": "stdin",
623
+ "required": false,
624
+ "allowNo": false,
625
+ "type": "boolean"
626
+ },
628
627
  "workspace": {
629
628
  "char": "w",
630
- "description": "Workspace ID (uses profile workspace if not provided)",
629
+ "description": "Workspace ID (optional if set in profile)",
631
630
  "name": "workspace",
632
631
  "required": false,
633
632
  "hasDynamicHelp": false,
@@ -637,7 +636,7 @@
637
636
  },
638
637
  "hasDynamicHelp": false,
639
638
  "hiddenAliases": [],
640
- "id": "branch:create",
639
+ "id": "function:create",
641
640
  "pluginAlias": "@xano/cli",
642
641
  "pluginName": "@xano/cli",
643
642
  "pluginType": "core",
@@ -647,25 +646,30 @@
647
646
  "relativePath": [
648
647
  "dist",
649
648
  "commands",
650
- "branch",
649
+ "function",
651
650
  "create",
652
651
  "index.js"
653
652
  ]
654
653
  },
655
- "branch:delete": {
654
+ "function:edit": {
656
655
  "aliases": [],
657
656
  "args": {
658
- "branch_label": {
659
- "description": "Branch label to delete (cannot delete \"v1\" or the live branch)",
660
- "name": "branch_label",
661
- "required": true
657
+ "function_id": {
658
+ "description": "Function ID to edit",
659
+ "name": "function_id",
660
+ "required": false
662
661
  }
663
662
  },
664
- "description": "Delete a branch (cannot delete \"v1\" or the live branch)",
663
+ "description": "Edit a function in a workspace",
665
664
  "examples": [
666
- "$ 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",
667
- "$ xano branch delete dev --force\nDeleted branch: dev\n",
668
- "$ xano branch delete staging -f -o json\n{\n \"deleted\": true,\n \"branch_label\": \"staging\"\n}\n"
665
+ "$ xano function:edit 163\n# Fetches the function code and opens it in $EDITOR for editing\nFunction updated successfully!\nID: 163\nName: my_function\n",
666
+ "$ xano function:edit\n# Prompts for function, fetches the code and opens it in $EDITOR for editing\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
667
+ "$ xano function:edit 163 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
668
+ "$ xano function:edit 163 -w 40 -f function.xs\nFunction updated successfully!\nID: 163\nName: my_function\n",
669
+ "$ xano function:edit -f function.xs\nSelect a function to edit:\n ❯ my_function (ID: 163) - Sample function\n another-func (ID: 164)\n",
670
+ "$ xano function:edit 163 -f function.xs --edit\n# Opens function.xs in $EDITOR, then updates function with edited content\nFunction updated successfully!\nID: 163\nName: my_function\n",
671
+ "$ cat function.xs | xano function:edit 163 --stdin\nFunction updated successfully!\nID: 163\nName: my_function\n",
672
+ "$ xano function:edit 163 -f function.xs -o json\n{\n \"id\": 163,\n \"name\": \"my_function\",\n ...\n}\n"
669
673
  ],
670
674
  "flags": {
671
675
  "profile": {
@@ -687,14 +691,26 @@
687
691
  "allowNo": false,
688
692
  "type": "boolean"
689
693
  },
690
- "force": {
691
- "char": "f",
692
- "description": "Skip confirmation prompt",
693
- "name": "force",
694
+ "edit": {
695
+ "char": "e",
696
+ "description": "Open file in editor before updating function (requires --file)",
697
+ "name": "edit",
694
698
  "required": false,
695
699
  "allowNo": false,
696
700
  "type": "boolean"
697
701
  },
702
+ "file": {
703
+ "char": "f",
704
+ "description": "Path to file containing XanoScript code",
705
+ "exclusive": [
706
+ "stdin"
707
+ ],
708
+ "name": "file",
709
+ "required": false,
710
+ "hasDynamicHelp": false,
711
+ "multiple": false,
712
+ "type": "option"
713
+ },
698
714
  "output": {
699
715
  "char": "o",
700
716
  "description": "Output format",
@@ -709,9 +725,27 @@
709
725
  ],
710
726
  "type": "option"
711
727
  },
728
+ "publish": {
729
+ "description": "Publish the function after editing",
730
+ "name": "publish",
731
+ "required": false,
732
+ "allowNo": false,
733
+ "type": "boolean"
734
+ },
735
+ "stdin": {
736
+ "char": "s",
737
+ "description": "Read XanoScript code from stdin",
738
+ "exclusive": [
739
+ "file"
740
+ ],
741
+ "name": "stdin",
742
+ "required": false,
743
+ "allowNo": false,
744
+ "type": "boolean"
745
+ },
712
746
  "workspace": {
713
747
  "char": "w",
714
- "description": "Workspace ID (uses profile workspace if not provided)",
748
+ "description": "Workspace ID (optional if set in profile)",
715
749
  "name": "workspace",
716
750
  "required": false,
717
751
  "hasDynamicHelp": false,
@@ -721,7 +755,7 @@
721
755
  },
722
756
  "hasDynamicHelp": false,
723
757
  "hiddenAliases": [],
724
- "id": "branch:delete",
758
+ "id": "function:edit",
725
759
  "pluginAlias": "@xano/cli",
726
760
  "pluginName": "@xano/cli",
727
761
  "pluginType": "core",
@@ -731,25 +765,28 @@
731
765
  "relativePath": [
732
766
  "dist",
733
767
  "commands",
734
- "branch",
735
- "delete",
768
+ "function",
769
+ "edit",
736
770
  "index.js"
737
771
  ]
738
772
  },
739
- "branch:edit": {
773
+ "function:get": {
740
774
  "aliases": [],
741
775
  "args": {
742
- "branch_label": {
743
- "description": "Branch label to edit (cannot edit \"v1\" label)",
744
- "name": "branch_label",
745
- "required": true
776
+ "function_id": {
777
+ "description": "Function ID",
778
+ "name": "function_id",
779
+ "required": false
746
780
  }
747
781
  },
748
- "description": "Update an existing branch (cannot update \"v1\" label)",
782
+ "description": "Get a specific function from a workspace",
749
783
  "examples": [
750
- "$ xano branch edit dev --label development\nUpdated branch: development\n",
751
- "$ xano branch edit feature-auth -l feature-authentication --color \"#ff5733\"\nUpdated branch: feature-authentication\n Color: #ff5733\n",
752
- "$ 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"
784
+ "$ xano function:get 145 -w 40\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\nDescription: Sample function\n",
785
+ "$ xano function:get 145 --profile production\nFunction: yo (ID: 145)\nCreated: 2025-10-10 10:30:00\n",
786
+ "$ xano function:get\nSelect a function:\n ❯ yo (ID: 145) - Sample function\n another-func (ID: 146)\n",
787
+ "$ xano function:get 145 -w 40 --output json\n{\n \"id\": 145,\n \"name\": \"yo\",\n \"description\": \"Sample function\"\n}\n",
788
+ "$ xano function:get 145 -p staging -o json --include_draft\n{\n \"id\": 145,\n \"name\": \"yo\"\n}\n",
789
+ "$ xano function:get 145 -p staging -o xs\nfunction yo {\n input {\n }\n stack {\n }\n response = null\n}\n"
753
790
  ],
754
791
  "flags": {
755
792
  "profile": {
@@ -771,32 +808,19 @@
771
808
  "allowNo": false,
772
809
  "type": "boolean"
773
810
  },
774
- "color": {
775
- "char": "c",
776
- "description": "New color hex code for the branch (e.g., \"#ff5733\")",
777
- "name": "color",
778
- "required": false,
779
- "hasDynamicHelp": false,
780
- "multiple": false,
781
- "type": "option"
782
- },
783
- "description": {
784
- "char": "d",
785
- "description": "New description for the branch",
786
- "name": "description",
811
+ "include_draft": {
812
+ "description": "Include draft version",
813
+ "name": "include_draft",
787
814
  "required": false,
788
- "hasDynamicHelp": false,
789
- "multiple": false,
790
- "type": "option"
815
+ "allowNo": false,
816
+ "type": "boolean"
791
817
  },
792
- "label": {
793
- "char": "l",
794
- "description": "New label for the branch",
795
- "name": "label",
818
+ "include_xanoscript": {
819
+ "description": "Include XanoScript in response",
820
+ "name": "include_xanoscript",
796
821
  "required": false,
797
- "hasDynamicHelp": false,
798
- "multiple": false,
799
- "type": "option"
822
+ "allowNo": false,
823
+ "type": "boolean"
800
824
  },
801
825
  "output": {
802
826
  "char": "o",
@@ -808,13 +832,14 @@
808
832
  "multiple": false,
809
833
  "options": [
810
834
  "summary",
811
- "json"
835
+ "json",
836
+ "xs"
812
837
  ],
813
838
  "type": "option"
814
839
  },
815
840
  "workspace": {
816
841
  "char": "w",
817
- "description": "Workspace ID (uses profile workspace if not provided)",
842
+ "description": "Workspace ID (optional if set in profile)",
818
843
  "name": "workspace",
819
844
  "required": false,
820
845
  "hasDynamicHelp": false,
@@ -824,7 +849,7 @@
824
849
  },
825
850
  "hasDynamicHelp": false,
826
851
  "hiddenAliases": [],
827
- "id": "branch:edit",
852
+ "id": "function:get",
828
853
  "pluginAlias": "@xano/cli",
829
854
  "pluginName": "@xano/cli",
830
855
  "pluginType": "core",
@@ -834,8 +859,8 @@
834
859
  "relativePath": [
835
860
  "dist",
836
861
  "commands",
837
- "branch",
838
- "edit",
862
+ "function",
863
+ "get",
839
864
  "index.js"
840
865
  ]
841
866
  },
@@ -964,20 +989,19 @@
964
989
  "index.js"
965
990
  ]
966
991
  },
967
- "branch:set_live": {
992
+ "platform:get": {
968
993
  "aliases": [],
969
994
  "args": {
970
- "branch_label": {
971
- "description": "Branch label to set as live (use \"v1\" for default branch)",
972
- "name": "branch_label",
995
+ "platform_id": {
996
+ "description": "Platform ID to retrieve",
997
+ "name": "platform_id",
973
998
  "required": true
974
999
  }
975
1000
  },
976
- "description": "Set a branch as the live (active) branch for API requests",
1001
+ "description": "Get details of a specific platform",
977
1002
  "examples": [
978
- "$ 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",
979
- "$ xano branch set-live v1 --force\nBranch 'v1' is now live\n",
980
- "$ 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"
1003
+ "$ 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",
1004
+ "$ xano platform get 23629 -o json"
981
1005
  ],
982
1006
  "flags": {
983
1007
  "profile": {
@@ -999,14 +1023,6 @@
999
1023
  "allowNo": false,
1000
1024
  "type": "boolean"
1001
1025
  },
1002
- "force": {
1003
- "char": "f",
1004
- "description": "Skip confirmation prompt",
1005
- "name": "force",
1006
- "required": false,
1007
- "allowNo": false,
1008
- "type": "boolean"
1009
- },
1010
1026
  "output": {
1011
1027
  "char": "o",
1012
1028
  "description": "Output format",
@@ -1020,20 +1036,11 @@
1020
1036
  "json"
1021
1037
  ],
1022
1038
  "type": "option"
1023
- },
1024
- "workspace": {
1025
- "char": "w",
1026
- "description": "Workspace ID (uses profile workspace if not provided)",
1027
- "name": "workspace",
1028
- "required": false,
1029
- "hasDynamicHelp": false,
1030
- "multiple": false,
1031
- "type": "option"
1032
1039
  }
1033
1040
  },
1034
1041
  "hasDynamicHelp": false,
1035
1042
  "hiddenAliases": [],
1036
- "id": "branch:set_live",
1043
+ "id": "platform:get",
1037
1044
  "pluginAlias": "@xano/cli",
1038
1045
  "pluginName": "@xano/cli",
1039
1046
  "pluginType": "core",
@@ -1043,8 +1050,8 @@
1043
1050
  "relativePath": [
1044
1051
  "dist",
1045
1052
  "commands",
1046
- "branch",
1047
- "set_live",
1053
+ "platform",
1054
+ "get",
1048
1055
  "index.js"
1049
1056
  ]
1050
1057
  },
@@ -1144,6 +1151,66 @@
1144
1151
  "index.js"
1145
1152
  ]
1146
1153
  },
1154
+ "platform:list": {
1155
+ "aliases": [],
1156
+ "args": {},
1157
+ "description": "List all platforms",
1158
+ "examples": [
1159
+ "$ xano platform list\nPlatforms:\n ID: 23629 | Helm: 0.1.356 | Created: 2025-11-28\n",
1160
+ "$ xano platform list --output json"
1161
+ ],
1162
+ "flags": {
1163
+ "profile": {
1164
+ "char": "p",
1165
+ "description": "Profile to use (uses default profile if not specified)",
1166
+ "env": "XANO_PROFILE",
1167
+ "name": "profile",
1168
+ "required": false,
1169
+ "hasDynamicHelp": false,
1170
+ "multiple": false,
1171
+ "type": "option"
1172
+ },
1173
+ "verbose": {
1174
+ "char": "v",
1175
+ "description": "Show detailed request/response information",
1176
+ "env": "XANO_VERBOSE",
1177
+ "name": "verbose",
1178
+ "required": false,
1179
+ "allowNo": false,
1180
+ "type": "boolean"
1181
+ },
1182
+ "output": {
1183
+ "char": "o",
1184
+ "description": "Output format",
1185
+ "name": "output",
1186
+ "required": false,
1187
+ "default": "summary",
1188
+ "hasDynamicHelp": false,
1189
+ "multiple": false,
1190
+ "options": [
1191
+ "summary",
1192
+ "json"
1193
+ ],
1194
+ "type": "option"
1195
+ }
1196
+ },
1197
+ "hasDynamicHelp": false,
1198
+ "hiddenAliases": [],
1199
+ "id": "platform:list",
1200
+ "pluginAlias": "@xano/cli",
1201
+ "pluginName": "@xano/cli",
1202
+ "pluginType": "core",
1203
+ "strict": true,
1204
+ "enableJsonFlag": false,
1205
+ "isESM": true,
1206
+ "relativePath": [
1207
+ "dist",
1208
+ "commands",
1209
+ "platform",
1210
+ "list",
1211
+ "index.js"
1212
+ ]
1213
+ },
1147
1214
  "profile:delete": {
1148
1215
  "aliases": [],
1149
1216
  "args": {
@@ -1186,20 +1253,20 @@
1186
1253
  "index.js"
1187
1254
  ]
1188
1255
  },
1189
- "branch:list": {
1256
+ "branch:get": {
1190
1257
  "aliases": [],
1191
- "args": {
1192
- "workspace_id": {
1193
- "description": "Workspace ID (uses profile workspace if not provided)",
1194
- "name": "workspace_id",
1195
- "required": false
1258
+ "args": {
1259
+ "branch_label": {
1260
+ "description": "Branch label (e.g., \"v1\", \"dev\")",
1261
+ "name": "branch_label",
1262
+ "required": true
1196
1263
  }
1197
1264
  },
1198
- "description": "List all branches in a workspace",
1265
+ "description": "Get details for a specific branch",
1199
1266
  "examples": [
1200
- "$ xano branch list\nAvailable branches:\n - v1 (live)\n - dev\n - staging\n",
1201
- "$ xano branch list 123\nAvailable branches:\n - v1 (live)\n - feature-auth\n",
1202
- "$ 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"
1267
+ "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
1268
+ "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
1269
+ "$ 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"
1203
1270
  ],
1204
1271
  "flags": {
1205
1272
  "profile": {
@@ -1234,11 +1301,20 @@
1234
1301
  "json"
1235
1302
  ],
1236
1303
  "type": "option"
1304
+ },
1305
+ "workspace": {
1306
+ "char": "w",
1307
+ "description": "Workspace ID (uses profile workspace if not provided)",
1308
+ "name": "workspace",
1309
+ "required": false,
1310
+ "hasDynamicHelp": false,
1311
+ "multiple": false,
1312
+ "type": "option"
1237
1313
  }
1238
1314
  },
1239
1315
  "hasDynamicHelp": false,
1240
1316
  "hiddenAliases": [],
1241
- "id": "branch:list",
1317
+ "id": "branch:get",
1242
1318
  "pluginAlias": "@xano/cli",
1243
1319
  "pluginName": "@xano/cli",
1244
1320
  "pluginType": "core",
@@ -1249,7 +1325,7 @@
1249
1325
  "dist",
1250
1326
  "commands",
1251
1327
  "branch",
1252
- "list",
1328
+ "get",
1253
1329
  "index.js"
1254
1330
  ]
1255
1331
  },
@@ -1408,129 +1484,28 @@
1408
1484
  "index.js"
1409
1485
  ]
1410
1486
  },
1411
- "branch:get": {
1412
- "aliases": [],
1413
- "args": {
1414
- "branch_label": {
1415
- "description": "Branch label (e.g., \"v1\", \"dev\")",
1416
- "name": "branch_label",
1417
- "required": true
1418
- }
1419
- },
1420
- "description": "Get details for a specific branch",
1421
- "examples": [
1422
- "$ xano branch get v1\nBranch: v1 (live)\n Created: 2024-01-15\n",
1423
- "$ xano branch get dev -w 123\nBranch: dev\n Created: 2024-02-01\n",
1424
- "$ 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"
1425
- ],
1426
- "flags": {
1427
- "profile": {
1428
- "char": "p",
1429
- "description": "Profile to use (uses default profile if not specified)",
1430
- "env": "XANO_PROFILE",
1431
- "name": "profile",
1432
- "required": false,
1433
- "hasDynamicHelp": false,
1434
- "multiple": false,
1435
- "type": "option"
1436
- },
1437
- "verbose": {
1438
- "char": "v",
1439
- "description": "Show detailed request/response information",
1440
- "env": "XANO_VERBOSE",
1441
- "name": "verbose",
1442
- "required": false,
1443
- "allowNo": false,
1444
- "type": "boolean"
1445
- },
1446
- "output": {
1447
- "char": "o",
1448
- "description": "Output format",
1449
- "name": "output",
1450
- "required": false,
1451
- "default": "summary",
1452
- "hasDynamicHelp": false,
1453
- "multiple": false,
1454
- "options": [
1455
- "summary",
1456
- "json"
1457
- ],
1458
- "type": "option"
1459
- },
1460
- "workspace": {
1461
- "char": "w",
1462
- "description": "Workspace ID (uses profile workspace if not provided)",
1463
- "name": "workspace",
1464
- "required": false,
1465
- "hasDynamicHelp": false,
1466
- "multiple": false,
1467
- "type": "option"
1468
- }
1469
- },
1470
- "hasDynamicHelp": false,
1471
- "hiddenAliases": [],
1472
- "id": "branch:get",
1473
- "pluginAlias": "@xano/cli",
1474
- "pluginName": "@xano/cli",
1475
- "pluginType": "core",
1476
- "strict": true,
1477
- "enableJsonFlag": false,
1478
- "isESM": true,
1479
- "relativePath": [
1480
- "dist",
1481
- "commands",
1482
- "branch",
1483
- "get",
1484
- "index.js"
1485
- ]
1486
- },
1487
- "profile:me": {
1487
+ "profile:list": {
1488
1488
  "aliases": [],
1489
1489
  "args": {},
1490
- "description": "Get information about the currently authenticated user",
1490
+ "description": "List all available profile configurations",
1491
1491
  "examples": [
1492
- "$ xano profile:me\nUser Information:\n ID: 1\n Name: John Doe\n Email: john@example.com\n",
1493
- "$ xano profile:me --profile production\nUser Information:\n ID: 42\n Name: Admin User\n Email: admin@example.com\n",
1494
- "$ xano profile:me --output json\n{\n \"id\": 1,\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\"\n}\n"
1492
+ "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1493
+ "$ 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",
1494
+ "$ 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"
1495
1495
  ],
1496
1496
  "flags": {
1497
- "profile": {
1498
- "char": "p",
1499
- "description": "Profile to use (uses default profile if not specified)",
1500
- "env": "XANO_PROFILE",
1501
- "name": "profile",
1502
- "required": false,
1503
- "hasDynamicHelp": false,
1504
- "multiple": false,
1505
- "type": "option"
1506
- },
1507
- "verbose": {
1508
- "char": "v",
1509
- "description": "Show detailed request/response information",
1510
- "env": "XANO_VERBOSE",
1511
- "name": "verbose",
1497
+ "details": {
1498
+ "char": "d",
1499
+ "description": "Show detailed information for each profile",
1500
+ "name": "details",
1512
1501
  "required": false,
1513
1502
  "allowNo": false,
1514
1503
  "type": "boolean"
1515
- },
1516
- "output": {
1517
- "char": "o",
1518
- "description": "Output format",
1519
- "name": "output",
1520
- "required": false,
1521
- "default": "summary",
1522
- "hasDynamicHelp": false,
1523
- "multiple": false,
1524
- "options": [
1525
- "summary",
1526
- "json"
1527
- ],
1528
- "type": "option"
1529
1504
  }
1530
1505
  },
1531
1506
  "hasDynamicHelp": false,
1532
1507
  "hiddenAliases": [],
1533
- "id": "profile:me",
1508
+ "id": "profile:list",
1534
1509
  "pluginAlias": "@xano/cli",
1535
1510
  "pluginName": "@xano/cli",
1536
1511
  "pluginType": "core",
@@ -1541,7 +1516,7 @@
1541
1516
  "dist",
1542
1517
  "commands",
1543
1518
  "profile",
1544
- "me",
1519
+ "list",
1545
1520
  "index.js"
1546
1521
  ]
1547
1522
  },
@@ -1576,28 +1551,45 @@
1576
1551
  "index.js"
1577
1552
  ]
1578
1553
  },
1579
- "profile:list": {
1554
+ "profile:wizard": {
1580
1555
  "aliases": [],
1581
1556
  "args": {},
1582
- "description": "List all available profile configurations",
1557
+ "description": "Create a new profile configuration using an interactive wizard",
1583
1558
  "examples": [
1584
- "$ xano profile:list\nAvailable profiles:\n - default\n - production\n - staging\n - development\n",
1585
- "$ 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",
1586
- "$ 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"
1559
+ "$ 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"
1587
1560
  ],
1588
1561
  "flags": {
1589
- "details": {
1590
- "char": "d",
1591
- "description": "Show detailed information for each profile",
1592
- "name": "details",
1562
+ "insecure": {
1563
+ "char": "k",
1564
+ "description": "Skip TLS certificate verification (for self-signed certificates)",
1565
+ "name": "insecure",
1593
1566
  "required": false,
1594
1567
  "allowNo": false,
1595
1568
  "type": "boolean"
1569
+ },
1570
+ "name": {
1571
+ "char": "n",
1572
+ "description": "Profile name (skip prompt if provided)",
1573
+ "name": "name",
1574
+ "required": false,
1575
+ "hasDynamicHelp": false,
1576
+ "multiple": false,
1577
+ "type": "option"
1578
+ },
1579
+ "origin": {
1580
+ "char": "o",
1581
+ "description": "Xano instance origin URL",
1582
+ "name": "origin",
1583
+ "required": false,
1584
+ "default": "https://app.xano.com",
1585
+ "hasDynamicHelp": false,
1586
+ "multiple": false,
1587
+ "type": "option"
1596
1588
  }
1597
1589
  },
1598
1590
  "hasDynamicHelp": false,
1599
1591
  "hiddenAliases": [],
1600
- "id": "profile:list",
1592
+ "id": "profile:wizard",
1601
1593
  "pluginAlias": "@xano/cli",
1602
1594
  "pluginName": "@xano/cli",
1603
1595
  "pluginType": "core",
@@ -1608,49 +1600,83 @@
1608
1600
  "dist",
1609
1601
  "commands",
1610
1602
  "profile",
1611
- "list",
1603
+ "wizard",
1612
1604
  "index.js"
1613
1605
  ]
1614
1606
  },
1615
- "profile:wizard": {
1607
+ "profile:token": {
1616
1608
  "aliases": [],
1617
1609
  "args": {},
1618
- "description": "Create a new profile configuration using an interactive wizard",
1610
+ "description": "Print the access token for the default profile",
1619
1611
  "examples": [
1620
- "$ 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"
1612
+ "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1613
+ "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1614
+ ],
1615
+ "flags": {},
1616
+ "hasDynamicHelp": false,
1617
+ "hiddenAliases": [],
1618
+ "id": "profile:token",
1619
+ "pluginAlias": "@xano/cli",
1620
+ "pluginName": "@xano/cli",
1621
+ "pluginType": "core",
1622
+ "strict": true,
1623
+ "enableJsonFlag": false,
1624
+ "isESM": true,
1625
+ "relativePath": [
1626
+ "dist",
1627
+ "commands",
1628
+ "profile",
1629
+ "token",
1630
+ "index.js"
1631
+ ]
1632
+ },
1633
+ "profile:me": {
1634
+ "aliases": [],
1635
+ "args": {},
1636
+ "description": "Get information about the currently authenticated user",
1637
+ "examples": [
1638
+ "$ xano profile:me\nUser Information:\n ID: 1\n Name: John Doe\n Email: john@example.com\n",
1639
+ "$ xano profile:me --profile production\nUser Information:\n ID: 42\n Name: Admin User\n Email: admin@example.com\n",
1640
+ "$ xano profile:me --output json\n{\n \"id\": 1,\n \"name\": \"John Doe\",\n \"email\": \"john@example.com\"\n}\n"
1621
1641
  ],
1622
1642
  "flags": {
1623
- "insecure": {
1624
- "char": "k",
1625
- "description": "Skip TLS certificate verification (for self-signed certificates)",
1626
- "name": "insecure",
1627
- "required": false,
1628
- "allowNo": false,
1629
- "type": "boolean"
1630
- },
1631
- "name": {
1632
- "char": "n",
1633
- "description": "Profile name (skip prompt if provided)",
1634
- "name": "name",
1643
+ "profile": {
1644
+ "char": "p",
1645
+ "description": "Profile to use (uses default profile if not specified)",
1646
+ "env": "XANO_PROFILE",
1647
+ "name": "profile",
1635
1648
  "required": false,
1636
1649
  "hasDynamicHelp": false,
1637
1650
  "multiple": false,
1638
1651
  "type": "option"
1639
1652
  },
1640
- "origin": {
1653
+ "verbose": {
1654
+ "char": "v",
1655
+ "description": "Show detailed request/response information",
1656
+ "env": "XANO_VERBOSE",
1657
+ "name": "verbose",
1658
+ "required": false,
1659
+ "allowNo": false,
1660
+ "type": "boolean"
1661
+ },
1662
+ "output": {
1641
1663
  "char": "o",
1642
- "description": "Xano instance origin URL",
1643
- "name": "origin",
1664
+ "description": "Output format",
1665
+ "name": "output",
1644
1666
  "required": false,
1645
- "default": "https://app.xano.com",
1667
+ "default": "summary",
1646
1668
  "hasDynamicHelp": false,
1647
1669
  "multiple": false,
1670
+ "options": [
1671
+ "summary",
1672
+ "json"
1673
+ ],
1648
1674
  "type": "option"
1649
1675
  }
1650
1676
  },
1651
1677
  "hasDynamicHelp": false,
1652
1678
  "hiddenAliases": [],
1653
- "id": "profile:wizard",
1679
+ "id": "profile:me",
1654
1680
  "pluginAlias": "@xano/cli",
1655
1681
  "pluginName": "@xano/cli",
1656
1682
  "pluginType": "core",
@@ -1661,7 +1687,7 @@
1661
1687
  "dist",
1662
1688
  "commands",
1663
1689
  "profile",
1664
- "wizard",
1690
+ "me",
1665
1691
  "index.js"
1666
1692
  ]
1667
1693
  },
@@ -1691,15 +1717,20 @@
1691
1717
  "index.js"
1692
1718
  ]
1693
1719
  },
1694
- "static_host:list": {
1720
+ "release:delete": {
1695
1721
  "aliases": [],
1696
- "args": {},
1697
- "description": "List all static hosts in a workspace from the Xano Metadata API",
1722
+ "args": {
1723
+ "release_name": {
1724
+ "description": "Release name to delete",
1725
+ "name": "release_name",
1726
+ "required": true
1727
+ }
1728
+ },
1729
+ "description": "Delete a release permanently. This action cannot be undone.",
1698
1730
  "examples": [
1699
- "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
1700
- "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
1701
- "$ 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",
1702
- "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
1731
+ "$ 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",
1732
+ "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
1733
+ "$ xano release delete v1.0 -f -o json"
1703
1734
  ],
1704
1735
  "flags": {
1705
1736
  "profile": {
@@ -1721,6 +1752,14 @@
1721
1752
  "allowNo": false,
1722
1753
  "type": "boolean"
1723
1754
  },
1755
+ "force": {
1756
+ "char": "f",
1757
+ "description": "Skip confirmation prompt",
1758
+ "name": "force",
1759
+ "required": false,
1760
+ "allowNo": false,
1761
+ "type": "boolean"
1762
+ },
1724
1763
  "output": {
1725
1764
  "char": "o",
1726
1765
  "description": "Output format",
@@ -1735,27 +1774,9 @@
1735
1774
  ],
1736
1775
  "type": "option"
1737
1776
  },
1738
- "page": {
1739
- "description": "Page number for pagination",
1740
- "name": "page",
1741
- "required": false,
1742
- "default": 1,
1743
- "hasDynamicHelp": false,
1744
- "multiple": false,
1745
- "type": "option"
1746
- },
1747
- "per_page": {
1748
- "description": "Number of results per page",
1749
- "name": "per_page",
1750
- "required": false,
1751
- "default": 50,
1752
- "hasDynamicHelp": false,
1753
- "multiple": false,
1754
- "type": "option"
1755
- },
1756
1777
  "workspace": {
1757
1778
  "char": "w",
1758
- "description": "Workspace ID (optional if set in profile)",
1779
+ "description": "Workspace ID (uses profile workspace if not provided)",
1759
1780
  "name": "workspace",
1760
1781
  "required": false,
1761
1782
  "hasDynamicHelp": false,
@@ -1765,7 +1786,7 @@
1765
1786
  },
1766
1787
  "hasDynamicHelp": false,
1767
1788
  "hiddenAliases": [],
1768
- "id": "static_host:list",
1789
+ "id": "release:delete",
1769
1790
  "pluginAlias": "@xano/cli",
1770
1791
  "pluginName": "@xano/cli",
1771
1792
  "pluginType": "core",
@@ -1775,8 +1796,8 @@
1775
1796
  "relativePath": [
1776
1797
  "dist",
1777
1798
  "commands",
1778
- "static_host",
1779
- "list",
1799
+ "release",
1800
+ "delete",
1780
1801
  "index.js"
1781
1802
  ]
1782
1803
  },
@@ -1891,32 +1912,6 @@
1891
1912
  "index.js"
1892
1913
  ]
1893
1914
  },
1894
- "profile:token": {
1895
- "aliases": [],
1896
- "args": {},
1897
- "description": "Print the access token for the default profile",
1898
- "examples": [
1899
- "$ xano profile:token\neyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\n",
1900
- "$ xano profile:token | pbcopy\n# Copies the token to clipboard on macOS\n"
1901
- ],
1902
- "flags": {},
1903
- "hasDynamicHelp": false,
1904
- "hiddenAliases": [],
1905
- "id": "profile:token",
1906
- "pluginAlias": "@xano/cli",
1907
- "pluginName": "@xano/cli",
1908
- "pluginType": "core",
1909
- "strict": true,
1910
- "enableJsonFlag": false,
1911
- "isESM": true,
1912
- "relativePath": [
1913
- "dist",
1914
- "commands",
1915
- "profile",
1916
- "token",
1917
- "index.js"
1918
- ]
1919
- },
1920
1915
  "release:edit": {
1921
1916
  "aliases": [],
1922
1917
  "args": {
@@ -1965,177 +1960,9 @@
1965
1960
  "description": "New name for the release",
1966
1961
  "name": "name",
1967
1962
  "required": false,
1968
- "hasDynamicHelp": false,
1969
- "multiple": false,
1970
- "type": "option"
1971
- },
1972
- "output": {
1973
- "char": "o",
1974
- "description": "Output format",
1975
- "name": "output",
1976
- "required": false,
1977
- "default": "summary",
1978
- "hasDynamicHelp": false,
1979
- "multiple": false,
1980
- "options": [
1981
- "summary",
1982
- "json"
1983
- ],
1984
- "type": "option"
1985
- },
1986
- "workspace": {
1987
- "char": "w",
1988
- "description": "Workspace ID (uses profile workspace if not provided)",
1989
- "name": "workspace",
1990
- "required": false,
1991
- "hasDynamicHelp": false,
1992
- "multiple": false,
1993
- "type": "option"
1994
- }
1995
- },
1996
- "hasDynamicHelp": false,
1997
- "hiddenAliases": [],
1998
- "id": "release:edit",
1999
- "pluginAlias": "@xano/cli",
2000
- "pluginName": "@xano/cli",
2001
- "pluginType": "core",
2002
- "strict": true,
2003
- "enableJsonFlag": false,
2004
- "isESM": true,
2005
- "relativePath": [
2006
- "dist",
2007
- "commands",
2008
- "release",
2009
- "edit",
2010
- "index.js"
2011
- ]
2012
- },
2013
- "release:export": {
2014
- "aliases": [],
2015
- "args": {
2016
- "release_name": {
2017
- "description": "Release name to export",
2018
- "name": "release_name",
2019
- "required": true
2020
- }
2021
- },
2022
- "description": "Export (download) a release to a local file",
2023
- "examples": [
2024
- "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
2025
- "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
2026
- "$ xano release export v1.0 -o json"
2027
- ],
2028
- "flags": {
2029
- "profile": {
2030
- "char": "p",
2031
- "description": "Profile to use (uses default profile if not specified)",
2032
- "env": "XANO_PROFILE",
2033
- "name": "profile",
2034
- "required": false,
2035
- "hasDynamicHelp": false,
2036
- "multiple": false,
2037
- "type": "option"
2038
- },
2039
- "verbose": {
2040
- "char": "v",
2041
- "description": "Show detailed request/response information",
2042
- "env": "XANO_VERBOSE",
2043
- "name": "verbose",
2044
- "required": false,
2045
- "allowNo": false,
2046
- "type": "boolean"
2047
- },
2048
- "format": {
2049
- "char": "o",
2050
- "description": "Output format",
2051
- "name": "format",
2052
- "required": false,
2053
- "default": "summary",
2054
- "hasDynamicHelp": false,
2055
- "multiple": false,
2056
- "options": [
2057
- "summary",
2058
- "json"
2059
- ],
2060
- "type": "option"
2061
- },
2062
- "output": {
2063
- "description": "Output file path (defaults to ./release-{name}.tar.gz)",
2064
- "name": "output",
2065
- "required": false,
2066
- "hasDynamicHelp": false,
2067
- "multiple": false,
2068
- "type": "option"
2069
- },
2070
- "workspace": {
2071
- "char": "w",
2072
- "description": "Workspace ID (uses profile workspace if not provided)",
2073
- "name": "workspace",
2074
- "required": false,
2075
- "hasDynamicHelp": false,
2076
- "multiple": false,
2077
- "type": "option"
2078
- }
2079
- },
2080
- "hasDynamicHelp": false,
2081
- "hiddenAliases": [],
2082
- "id": "release:export",
2083
- "pluginAlias": "@xano/cli",
2084
- "pluginName": "@xano/cli",
2085
- "pluginType": "core",
2086
- "strict": true,
2087
- "enableJsonFlag": false,
2088
- "isESM": true,
2089
- "relativePath": [
2090
- "dist",
2091
- "commands",
2092
- "release",
2093
- "export",
2094
- "index.js"
2095
- ]
2096
- },
2097
- "release:delete": {
2098
- "aliases": [],
2099
- "args": {
2100
- "release_name": {
2101
- "description": "Release name to delete",
2102
- "name": "release_name",
2103
- "required": true
2104
- }
2105
- },
2106
- "description": "Delete a release permanently. This action cannot be undone.",
2107
- "examples": [
2108
- "$ 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",
2109
- "$ xano release delete v1.0 --force\nDeleted release 'v1.0'\n",
2110
- "$ xano release delete v1.0 -f -o json"
2111
- ],
2112
- "flags": {
2113
- "profile": {
2114
- "char": "p",
2115
- "description": "Profile to use (uses default profile if not specified)",
2116
- "env": "XANO_PROFILE",
2117
- "name": "profile",
2118
- "required": false,
2119
- "hasDynamicHelp": false,
2120
- "multiple": false,
2121
- "type": "option"
2122
- },
2123
- "verbose": {
2124
- "char": "v",
2125
- "description": "Show detailed request/response information",
2126
- "env": "XANO_VERBOSE",
2127
- "name": "verbose",
2128
- "required": false,
2129
- "allowNo": false,
2130
- "type": "boolean"
2131
- },
2132
- "force": {
2133
- "char": "f",
2134
- "description": "Skip confirmation prompt",
2135
- "name": "force",
2136
- "required": false,
2137
- "allowNo": false,
2138
- "type": "boolean"
1963
+ "hasDynamicHelp": false,
1964
+ "multiple": false,
1965
+ "type": "option"
2139
1966
  },
2140
1967
  "output": {
2141
1968
  "char": "o",
@@ -2163,7 +1990,7 @@
2163
1990
  },
2164
1991
  "hasDynamicHelp": false,
2165
1992
  "hiddenAliases": [],
2166
- "id": "release:delete",
1993
+ "id": "release:edit",
2167
1994
  "pluginAlias": "@xano/cli",
2168
1995
  "pluginName": "@xano/cli",
2169
1996
  "pluginType": "core",
@@ -2174,7 +2001,7 @@
2174
2001
  "dist",
2175
2002
  "commands",
2176
2003
  "release",
2177
- "delete",
2004
+ "edit",
2178
2005
  "index.js"
2179
2006
  ]
2180
2007
  },
@@ -2603,19 +2430,20 @@
2603
2430
  "index.js"
2604
2431
  ]
2605
2432
  },
2606
- "tenant:create": {
2433
+ "release:export": {
2607
2434
  "aliases": [],
2608
2435
  "args": {
2609
- "display": {
2610
- "description": "Display name for the tenant",
2611
- "name": "display",
2436
+ "release_name": {
2437
+ "description": "Release name to export",
2438
+ "name": "release_name",
2612
2439
  "required": true
2613
2440
  }
2614
2441
  },
2615
- "description": "Create a new tenant in a workspace",
2442
+ "description": "Export (download) a release to a local file",
2616
2443
  "examples": [
2617
- "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
2618
- "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
2444
+ "$ xano release export v1.0\nDownloaded release 'v1.0' to ./release-v1.0.tar.gz\n",
2445
+ "$ xano release export v1.0 --output ./backups/my-release.tar.gz",
2446
+ "$ xano release export v1.0 -o json"
2619
2447
  ],
2620
2448
  "flags": {
2621
2449
  "profile": {
@@ -2637,57 +2465,85 @@
2637
2465
  "allowNo": false,
2638
2466
  "type": "boolean"
2639
2467
  },
2640
- "cluster_id": {
2641
- "description": "Cluster ID to deploy to (required for tier2/tier3)",
2642
- "name": "cluster_id",
2468
+ "format": {
2469
+ "char": "o",
2470
+ "description": "Output format",
2471
+ "name": "format",
2643
2472
  "required": false,
2473
+ "default": "summary",
2644
2474
  "hasDynamicHelp": false,
2645
2475
  "multiple": false,
2476
+ "options": [
2477
+ "summary",
2478
+ "json"
2479
+ ],
2646
2480
  "type": "option"
2647
2481
  },
2648
- "description": {
2649
- "char": "d",
2650
- "description": "Tenant description",
2651
- "name": "description",
2482
+ "output": {
2483
+ "description": "Output file path (defaults to ./release-{name}.tar.gz)",
2484
+ "name": "output",
2652
2485
  "required": false,
2653
2486
  "hasDynamicHelp": false,
2654
2487
  "multiple": false,
2655
2488
  "type": "option"
2656
2489
  },
2657
- "domain": {
2658
- "description": "Custom domain for the tenant",
2659
- "name": "domain",
2490
+ "workspace": {
2491
+ "char": "w",
2492
+ "description": "Workspace ID (uses profile workspace if not provided)",
2493
+ "name": "workspace",
2660
2494
  "required": false,
2661
2495
  "hasDynamicHelp": false,
2662
2496
  "multiple": false,
2663
2497
  "type": "option"
2664
- },
2665
- "ephemeral": {
2666
- "description": "Mark tenant as ephemeral (allows push operations)",
2667
- "name": "ephemeral",
2668
- "allowNo": false,
2669
- "type": "boolean"
2670
- },
2671
- "ingress": {
2672
- "description": "Enable ingress",
2673
- "name": "ingress",
2674
- "allowNo": true,
2675
- "type": "boolean"
2676
- },
2677
- "license": {
2678
- "description": "License tier",
2679
- "name": "license",
2498
+ }
2499
+ },
2500
+ "hasDynamicHelp": false,
2501
+ "hiddenAliases": [],
2502
+ "id": "release:export",
2503
+ "pluginAlias": "@xano/cli",
2504
+ "pluginName": "@xano/cli",
2505
+ "pluginType": "core",
2506
+ "strict": true,
2507
+ "enableJsonFlag": false,
2508
+ "isESM": true,
2509
+ "relativePath": [
2510
+ "dist",
2511
+ "commands",
2512
+ "release",
2513
+ "export",
2514
+ "index.js"
2515
+ ]
2516
+ },
2517
+ "static_host:list": {
2518
+ "aliases": [],
2519
+ "args": {},
2520
+ "description": "List all static hosts in a workspace from the Xano Metadata API",
2521
+ "examples": [
2522
+ "$ xano static_host:list -w 40\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2523
+ "$ xano static_host:list --profile production\nAvailable static hosts:\n - my-static-host (ID: 1)\n - another-host (ID: 2)\n",
2524
+ "$ 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",
2525
+ "$ xano static_host:list -p staging -o json --page 2\n[\n {\n \"id\": 3,\n \"name\": \"static-host-3\"\n }\n]\n"
2526
+ ],
2527
+ "flags": {
2528
+ "profile": {
2529
+ "char": "p",
2530
+ "description": "Profile to use (uses default profile if not specified)",
2531
+ "env": "XANO_PROFILE",
2532
+ "name": "profile",
2680
2533
  "required": false,
2681
- "default": "tier1",
2682
2534
  "hasDynamicHelp": false,
2683
2535
  "multiple": false,
2684
- "options": [
2685
- "tier1",
2686
- "tier2",
2687
- "tier3"
2688
- ],
2689
2536
  "type": "option"
2690
2537
  },
2538
+ "verbose": {
2539
+ "char": "v",
2540
+ "description": "Show detailed request/response information",
2541
+ "env": "XANO_VERBOSE",
2542
+ "name": "verbose",
2543
+ "required": false,
2544
+ "allowNo": false,
2545
+ "type": "boolean"
2546
+ },
2691
2547
  "output": {
2692
2548
  "char": "o",
2693
2549
  "description": "Output format",
@@ -2702,23 +2558,27 @@
2702
2558
  ],
2703
2559
  "type": "option"
2704
2560
  },
2705
- "platform_id": {
2706
- "description": "Platform ID to use",
2707
- "name": "platform_id",
2561
+ "page": {
2562
+ "description": "Page number for pagination",
2563
+ "name": "page",
2708
2564
  "required": false,
2565
+ "default": 1,
2709
2566
  "hasDynamicHelp": false,
2710
2567
  "multiple": false,
2711
2568
  "type": "option"
2712
2569
  },
2713
- "tasks": {
2714
- "description": "Enable background tasks",
2715
- "name": "tasks",
2716
- "allowNo": true,
2717
- "type": "boolean"
2570
+ "per_page": {
2571
+ "description": "Number of results per page",
2572
+ "name": "per_page",
2573
+ "required": false,
2574
+ "default": 50,
2575
+ "hasDynamicHelp": false,
2576
+ "multiple": false,
2577
+ "type": "option"
2718
2578
  },
2719
2579
  "workspace": {
2720
2580
  "char": "w",
2721
- "description": "Workspace ID (uses profile workspace if not provided)",
2581
+ "description": "Workspace ID (optional if set in profile)",
2722
2582
  "name": "workspace",
2723
2583
  "required": false,
2724
2584
  "hasDynamicHelp": false,
@@ -2728,7 +2588,7 @@
2728
2588
  },
2729
2589
  "hasDynamicHelp": false,
2730
2590
  "hiddenAliases": [],
2731
- "id": "tenant:create",
2591
+ "id": "static_host:list",
2732
2592
  "pluginAlias": "@xano/cli",
2733
2593
  "pluginName": "@xano/cli",
2734
2594
  "pluginType": "core",
@@ -2738,8 +2598,8 @@
2738
2598
  "relativePath": [
2739
2599
  "dist",
2740
2600
  "commands",
2741
- "tenant",
2742
- "create",
2601
+ "static_host",
2602
+ "list",
2743
2603
  "index.js"
2744
2604
  ]
2745
2605
  },
@@ -2895,7 +2755,136 @@
2895
2755
  },
2896
2756
  "hasDynamicHelp": false,
2897
2757
  "hiddenAliases": [],
2898
- "id": "tenant:deploy_platform",
2758
+ "id": "tenant:deploy_platform",
2759
+ "pluginAlias": "@xano/cli",
2760
+ "pluginName": "@xano/cli",
2761
+ "pluginType": "core",
2762
+ "strict": true,
2763
+ "enableJsonFlag": false,
2764
+ "isESM": true,
2765
+ "relativePath": [
2766
+ "dist",
2767
+ "commands",
2768
+ "tenant",
2769
+ "deploy_platform",
2770
+ "index.js"
2771
+ ]
2772
+ },
2773
+ "tenant:edit": {
2774
+ "aliases": [],
2775
+ "args": {
2776
+ "tenant_name": {
2777
+ "description": "Tenant name to edit",
2778
+ "name": "tenant_name",
2779
+ "required": true
2780
+ }
2781
+ },
2782
+ "description": "Edit an existing tenant",
2783
+ "examples": [
2784
+ "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
2785
+ "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
2786
+ ],
2787
+ "flags": {
2788
+ "profile": {
2789
+ "char": "p",
2790
+ "description": "Profile to use (uses default profile if not specified)",
2791
+ "env": "XANO_PROFILE",
2792
+ "name": "profile",
2793
+ "required": false,
2794
+ "hasDynamicHelp": false,
2795
+ "multiple": false,
2796
+ "type": "option"
2797
+ },
2798
+ "verbose": {
2799
+ "char": "v",
2800
+ "description": "Show detailed request/response information",
2801
+ "env": "XANO_VERBOSE",
2802
+ "name": "verbose",
2803
+ "required": false,
2804
+ "allowNo": false,
2805
+ "type": "boolean"
2806
+ },
2807
+ "description": {
2808
+ "char": "d",
2809
+ "description": "New description",
2810
+ "name": "description",
2811
+ "required": false,
2812
+ "hasDynamicHelp": false,
2813
+ "multiple": false,
2814
+ "type": "option"
2815
+ },
2816
+ "display": {
2817
+ "description": "New display name",
2818
+ "name": "display",
2819
+ "required": false,
2820
+ "hasDynamicHelp": false,
2821
+ "multiple": false,
2822
+ "type": "option"
2823
+ },
2824
+ "domain": {
2825
+ "description": "Custom domain",
2826
+ "name": "domain",
2827
+ "required": false,
2828
+ "hasDynamicHelp": false,
2829
+ "multiple": false,
2830
+ "type": "option"
2831
+ },
2832
+ "ingress": {
2833
+ "description": "Enable/disable ingress",
2834
+ "name": "ingress",
2835
+ "required": false,
2836
+ "allowNo": true,
2837
+ "type": "boolean"
2838
+ },
2839
+ "output": {
2840
+ "char": "o",
2841
+ "description": "Output format",
2842
+ "name": "output",
2843
+ "required": false,
2844
+ "default": "summary",
2845
+ "hasDynamicHelp": false,
2846
+ "multiple": false,
2847
+ "options": [
2848
+ "summary",
2849
+ "json"
2850
+ ],
2851
+ "type": "option"
2852
+ },
2853
+ "proxy": {
2854
+ "description": "Proxy URL",
2855
+ "name": "proxy",
2856
+ "required": false,
2857
+ "hasDynamicHelp": false,
2858
+ "multiple": false,
2859
+ "type": "option"
2860
+ },
2861
+ "rbac": {
2862
+ "description": "Enable/disable RBAC",
2863
+ "name": "rbac",
2864
+ "required": false,
2865
+ "allowNo": true,
2866
+ "type": "boolean"
2867
+ },
2868
+ "tasks": {
2869
+ "description": "Enable/disable background tasks",
2870
+ "name": "tasks",
2871
+ "required": false,
2872
+ "allowNo": true,
2873
+ "type": "boolean"
2874
+ },
2875
+ "workspace": {
2876
+ "char": "w",
2877
+ "description": "Workspace ID (uses profile workspace if not provided)",
2878
+ "name": "workspace",
2879
+ "required": false,
2880
+ "hasDynamicHelp": false,
2881
+ "multiple": false,
2882
+ "type": "option"
2883
+ }
2884
+ },
2885
+ "hasDynamicHelp": false,
2886
+ "hiddenAliases": [],
2887
+ "id": "tenant:edit",
2899
2888
  "pluginAlias": "@xano/cli",
2900
2889
  "pluginName": "@xano/cli",
2901
2890
  "pluginType": "core",
@@ -2906,7 +2895,7 @@
2906
2895
  "dist",
2907
2896
  "commands",
2908
2897
  "tenant",
2909
- "deploy_platform",
2898
+ "edit",
2910
2899
  "index.js"
2911
2900
  ]
2912
2901
  },
@@ -2994,19 +2983,19 @@
2994
2983
  "index.js"
2995
2984
  ]
2996
2985
  },
2997
- "tenant:edit": {
2986
+ "tenant:get": {
2998
2987
  "aliases": [],
2999
2988
  "args": {
3000
2989
  "tenant_name": {
3001
- "description": "Tenant name to edit",
2990
+ "description": "Tenant name to retrieve",
3002
2991
  "name": "tenant_name",
3003
2992
  "required": true
3004
2993
  }
3005
2994
  },
3006
- "description": "Edit an existing tenant",
2995
+ "description": "Get details of a specific tenant",
3007
2996
  "examples": [
3008
- "$ xano tenant edit t1234-abcd-xyz1 --display \"New Name\" --description \"Updated description\"\nUpdated tenant: New Name (my-tenant) - ID: 42\n",
3009
- "$ xano tenant edit t1234-abcd-xyz1 --no-tasks --no-ingress -o json"
2997
+ "$ xano tenant get t1234-abcd-xyz1\nTenant: My Tenant (my-tenant)\n State: ok\n License: tier1\n Domain: my-tenant.xano.io\n Cluster: default\n Release: v1.0\n",
2998
+ "$ xano tenant get t1234-abcd-xyz1 -w 5 -o json"
3010
2999
  ],
3011
3000
  "flags": {
3012
3001
  "profile": {
@@ -3028,38 +3017,6 @@
3028
3017
  "allowNo": false,
3029
3018
  "type": "boolean"
3030
3019
  },
3031
- "description": {
3032
- "char": "d",
3033
- "description": "New description",
3034
- "name": "description",
3035
- "required": false,
3036
- "hasDynamicHelp": false,
3037
- "multiple": false,
3038
- "type": "option"
3039
- },
3040
- "display": {
3041
- "description": "New display name",
3042
- "name": "display",
3043
- "required": false,
3044
- "hasDynamicHelp": false,
3045
- "multiple": false,
3046
- "type": "option"
3047
- },
3048
- "domain": {
3049
- "description": "Custom domain",
3050
- "name": "domain",
3051
- "required": false,
3052
- "hasDynamicHelp": false,
3053
- "multiple": false,
3054
- "type": "option"
3055
- },
3056
- "ingress": {
3057
- "description": "Enable/disable ingress",
3058
- "name": "ingress",
3059
- "required": false,
3060
- "allowNo": true,
3061
- "type": "boolean"
3062
- },
3063
3020
  "output": {
3064
3021
  "char": "o",
3065
3022
  "description": "Output format",
@@ -3074,28 +3031,6 @@
3074
3031
  ],
3075
3032
  "type": "option"
3076
3033
  },
3077
- "proxy": {
3078
- "description": "Proxy URL",
3079
- "name": "proxy",
3080
- "required": false,
3081
- "hasDynamicHelp": false,
3082
- "multiple": false,
3083
- "type": "option"
3084
- },
3085
- "rbac": {
3086
- "description": "Enable/disable RBAC",
3087
- "name": "rbac",
3088
- "required": false,
3089
- "allowNo": true,
3090
- "type": "boolean"
3091
- },
3092
- "tasks": {
3093
- "description": "Enable/disable background tasks",
3094
- "name": "tasks",
3095
- "required": false,
3096
- "allowNo": true,
3097
- "type": "boolean"
3098
- },
3099
3034
  "workspace": {
3100
3035
  "char": "w",
3101
3036
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3108,7 +3043,7 @@
3108
3043
  },
3109
3044
  "hasDynamicHelp": false,
3110
3045
  "hiddenAliases": [],
3111
- "id": "tenant:edit",
3046
+ "id": "tenant:get",
3112
3047
  "pluginAlias": "@xano/cli",
3113
3048
  "pluginName": "@xano/cli",
3114
3049
  "pluginType": "core",
@@ -3119,23 +3054,23 @@
3119
3054
  "dist",
3120
3055
  "commands",
3121
3056
  "tenant",
3122
- "edit",
3057
+ "get",
3123
3058
  "index.js"
3124
3059
  ]
3125
3060
  },
3126
- "tenant:get": {
3061
+ "tenant:impersonate": {
3127
3062
  "aliases": [],
3128
3063
  "args": {
3129
3064
  "tenant_name": {
3130
- "description": "Tenant name to retrieve",
3065
+ "description": "Tenant name to impersonate",
3131
3066
  "name": "tenant_name",
3132
3067
  "required": true
3133
3068
  }
3134
3069
  },
3135
- "description": "Get details of a specific tenant",
3070
+ "description": "Impersonate a tenant and open it in the browser",
3136
3071
  "examples": [
3137
- "$ xano tenant get t1234-abcd-xyz1\nTenant: My Tenant (my-tenant)\n State: ok\n License: tier1\n Domain: my-tenant.xano.io\n Cluster: default\n Release: v1.0\n",
3138
- "$ xano tenant get t1234-abcd-xyz1 -w 5 -o json"
3072
+ "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
3073
+ "$ xano tenant impersonate my-tenant -o json"
3139
3074
  ],
3140
3075
  "flags": {
3141
3076
  "profile": {
@@ -3171,6 +3106,14 @@
3171
3106
  ],
3172
3107
  "type": "option"
3173
3108
  },
3109
+ "url-only": {
3110
+ "char": "u",
3111
+ "description": "Print the URL without opening the browser",
3112
+ "name": "url-only",
3113
+ "required": false,
3114
+ "allowNo": false,
3115
+ "type": "boolean"
3116
+ },
3174
3117
  "workspace": {
3175
3118
  "char": "w",
3176
3119
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -3183,7 +3126,7 @@
3183
3126
  },
3184
3127
  "hasDynamicHelp": false,
3185
3128
  "hiddenAliases": [],
3186
- "id": "tenant:get",
3129
+ "id": "tenant:impersonate",
3187
3130
  "pluginAlias": "@xano/cli",
3188
3131
  "pluginName": "@xano/cli",
3189
3132
  "pluginType": "core",
@@ -3194,23 +3137,23 @@
3194
3137
  "dist",
3195
3138
  "commands",
3196
3139
  "tenant",
3197
- "get",
3140
+ "impersonate",
3198
3141
  "index.js"
3199
3142
  ]
3200
3143
  },
3201
- "tenant:impersonate": {
3144
+ "tenant:create": {
3202
3145
  "aliases": [],
3203
3146
  "args": {
3204
- "tenant_name": {
3205
- "description": "Tenant name to impersonate",
3206
- "name": "tenant_name",
3147
+ "display": {
3148
+ "description": "Display name for the tenant",
3149
+ "name": "display",
3207
3150
  "required": true
3208
3151
  }
3209
3152
  },
3210
- "description": "Impersonate a tenant and open it in the browser",
3153
+ "description": "Create a new tenant in a workspace",
3211
3154
  "examples": [
3212
- "$ xano tenant impersonate my-tenant\nOpening browser...\nImpersonation successful!\n",
3213
- "$ xano tenant impersonate my-tenant -o json"
3155
+ "$ xano tenant create \"Production\"\nCreated tenant: Production (production) - ID: 42\n",
3156
+ "$ xano tenant create \"Staging\" --description \"Staging env\" --cluster_id 1 --platform_id 1 --license tier2 -o json"
3214
3157
  ],
3215
3158
  "flags": {
3216
3159
  "profile": {
@@ -3232,6 +3175,57 @@
3232
3175
  "allowNo": false,
3233
3176
  "type": "boolean"
3234
3177
  },
3178
+ "cluster_id": {
3179
+ "description": "Cluster ID to deploy to (required for tier2/tier3)",
3180
+ "name": "cluster_id",
3181
+ "required": false,
3182
+ "hasDynamicHelp": false,
3183
+ "multiple": false,
3184
+ "type": "option"
3185
+ },
3186
+ "description": {
3187
+ "char": "d",
3188
+ "description": "Tenant description",
3189
+ "name": "description",
3190
+ "required": false,
3191
+ "hasDynamicHelp": false,
3192
+ "multiple": false,
3193
+ "type": "option"
3194
+ },
3195
+ "domain": {
3196
+ "description": "Custom domain for the tenant",
3197
+ "name": "domain",
3198
+ "required": false,
3199
+ "hasDynamicHelp": false,
3200
+ "multiple": false,
3201
+ "type": "option"
3202
+ },
3203
+ "ephemeral": {
3204
+ "description": "Mark tenant as ephemeral (allows push operations)",
3205
+ "name": "ephemeral",
3206
+ "allowNo": false,
3207
+ "type": "boolean"
3208
+ },
3209
+ "ingress": {
3210
+ "description": "Enable ingress",
3211
+ "name": "ingress",
3212
+ "allowNo": true,
3213
+ "type": "boolean"
3214
+ },
3215
+ "license": {
3216
+ "description": "License tier",
3217
+ "name": "license",
3218
+ "required": false,
3219
+ "default": "tier1",
3220
+ "hasDynamicHelp": false,
3221
+ "multiple": false,
3222
+ "options": [
3223
+ "tier1",
3224
+ "tier2",
3225
+ "tier3"
3226
+ ],
3227
+ "type": "option"
3228
+ },
3235
3229
  "output": {
3236
3230
  "char": "o",
3237
3231
  "description": "Output format",
@@ -3246,12 +3240,18 @@
3246
3240
  ],
3247
3241
  "type": "option"
3248
3242
  },
3249
- "url-only": {
3250
- "char": "u",
3251
- "description": "Print the URL without opening the browser",
3252
- "name": "url-only",
3243
+ "platform_id": {
3244
+ "description": "Platform ID to use",
3245
+ "name": "platform_id",
3253
3246
  "required": false,
3254
- "allowNo": false,
3247
+ "hasDynamicHelp": false,
3248
+ "multiple": false,
3249
+ "type": "option"
3250
+ },
3251
+ "tasks": {
3252
+ "description": "Enable background tasks",
3253
+ "name": "tasks",
3254
+ "allowNo": true,
3255
3255
  "type": "boolean"
3256
3256
  },
3257
3257
  "workspace": {
@@ -3266,7 +3266,7 @@
3266
3266
  },
3267
3267
  "hasDynamicHelp": false,
3268
3268
  "hiddenAliases": [],
3269
- "id": "tenant:impersonate",
3269
+ "id": "tenant:create",
3270
3270
  "pluginAlias": "@xano/cli",
3271
3271
  "pluginName": "@xano/cli",
3272
3272
  "pluginType": "core",
@@ -3277,7 +3277,7 @@
3277
3277
  "dist",
3278
3278
  "commands",
3279
3279
  "tenant",
3280
- "impersonate",
3280
+ "create",
3281
3281
  "index.js"
3282
3282
  ]
3283
3283
  },
@@ -3443,23 +3443,19 @@
3443
3443
  "index.js"
3444
3444
  ]
3445
3445
  },
3446
- "tenant:push": {
3446
+ "unit_test:run": {
3447
3447
  "aliases": [],
3448
3448
  "args": {
3449
- "directory": {
3450
- "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3451
- "name": "directory",
3449
+ "unit_test_id": {
3450
+ "description": "ID of the unit test to run",
3451
+ "name": "unit_test_id",
3452
3452
  "required": true
3453
3453
  }
3454
3454
  },
3455
- "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3455
+ "description": "Run a unit test",
3456
3456
  "examples": [
3457
- "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
3458
- "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
3459
- "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
3460
- "$ xano tenant push ./my-workspace -t my-tenant --records\nInclude table records in import\n",
3461
- "$ xano tenant push ./my-workspace -t my-tenant --env\nInclude environment variables in import\n",
3462
- "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
3457
+ "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
3458
+ "$ xano unit-test run abc-123 -o json"
3463
3459
  ],
3464
3460
  "flags": {
3465
3461
  "profile": {
@@ -3468,59 +3464,36 @@
3468
3464
  "env": "XANO_PROFILE",
3469
3465
  "name": "profile",
3470
3466
  "required": false,
3471
- "hasDynamicHelp": false,
3472
- "multiple": false,
3473
- "type": "option"
3474
- },
3475
- "verbose": {
3476
- "char": "v",
3477
- "description": "Show detailed request/response information",
3478
- "env": "XANO_VERBOSE",
3479
- "name": "verbose",
3480
- "required": false,
3481
- "allowNo": false,
3482
- "type": "boolean"
3483
- },
3484
- "env": {
3485
- "description": "Include environment variables in import",
3486
- "name": "env",
3487
- "required": false,
3488
- "allowNo": false,
3489
- "type": "boolean"
3490
- },
3491
- "records": {
3492
- "description": "Include records in import",
3493
- "name": "records",
3494
- "required": false,
3495
- "allowNo": false,
3496
- "type": "boolean"
3497
- },
3498
- "tenant": {
3499
- "char": "t",
3500
- "description": "Tenant name to push to",
3501
- "name": "tenant",
3502
- "required": true,
3503
- "hasDynamicHelp": false,
3504
- "multiple": false,
3505
- "type": "option"
3506
- },
3507
- "transaction": {
3508
- "description": "Wrap import in a database transaction (use --no-transaction for debugging purposes)",
3509
- "name": "transaction",
3510
- "required": false,
3511
- "allowNo": true,
3512
- "type": "boolean"
3467
+ "hasDynamicHelp": false,
3468
+ "multiple": false,
3469
+ "type": "option"
3513
3470
  },
3514
- "truncate": {
3515
- "description": "Truncate all table records before importing",
3516
- "name": "truncate",
3471
+ "verbose": {
3472
+ "char": "v",
3473
+ "description": "Show detailed request/response information",
3474
+ "env": "XANO_VERBOSE",
3475
+ "name": "verbose",
3517
3476
  "required": false,
3518
3477
  "allowNo": false,
3519
3478
  "type": "boolean"
3520
3479
  },
3480
+ "output": {
3481
+ "char": "o",
3482
+ "description": "Output format",
3483
+ "name": "output",
3484
+ "required": false,
3485
+ "default": "summary",
3486
+ "hasDynamicHelp": false,
3487
+ "multiple": false,
3488
+ "options": [
3489
+ "summary",
3490
+ "json"
3491
+ ],
3492
+ "type": "option"
3493
+ },
3521
3494
  "workspace": {
3522
3495
  "char": "w",
3523
- "description": "Workspace ID (optional if set in profile)",
3496
+ "description": "Workspace ID (uses profile workspace if not provided)",
3524
3497
  "name": "workspace",
3525
3498
  "required": false,
3526
3499
  "hasDynamicHelp": false,
@@ -3530,7 +3503,7 @@
3530
3503
  },
3531
3504
  "hasDynamicHelp": false,
3532
3505
  "hiddenAliases": [],
3533
- "id": "tenant:push",
3506
+ "id": "unit_test:run",
3534
3507
  "pluginAlias": "@xano/cli",
3535
3508
  "pluginName": "@xano/cli",
3536
3509
  "pluginType": "core",
@@ -3540,8 +3513,8 @@
3540
3513
  "relativePath": [
3541
3514
  "dist",
3542
3515
  "commands",
3543
- "tenant",
3544
- "push",
3516
+ "unit_test",
3517
+ "run",
3545
3518
  "index.js"
3546
3519
  ]
3547
3520
  },
@@ -3637,19 +3610,13 @@
3637
3610
  "index.js"
3638
3611
  ]
3639
3612
  },
3640
- "unit_test:run": {
3613
+ "unit_test:run_all": {
3641
3614
  "aliases": [],
3642
- "args": {
3643
- "unit_test_id": {
3644
- "description": "ID of the unit test to run",
3645
- "name": "unit_test_id",
3646
- "required": true
3647
- }
3648
- },
3649
- "description": "Run a unit test",
3615
+ "args": {},
3616
+ "description": "Run all unit tests in a workspace",
3650
3617
  "examples": [
3651
- "$ xano unit-test run abc-123\nRunning unit test abc-123...\nResult: PASS\n",
3652
- "$ xano unit-test run abc-123 -o json"
3618
+ "$ 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",
3619
+ "$ xano unit-test run-all --obj-type function -o json"
3653
3620
  ],
3654
3621
  "flags": {
3655
3622
  "profile": {
@@ -3671,6 +3638,28 @@
3671
3638
  "allowNo": false,
3672
3639
  "type": "boolean"
3673
3640
  },
3641
+ "branch": {
3642
+ "char": "b",
3643
+ "description": "Filter by branch name",
3644
+ "name": "branch",
3645
+ "required": false,
3646
+ "hasDynamicHelp": false,
3647
+ "multiple": false,
3648
+ "type": "option"
3649
+ },
3650
+ "obj-type": {
3651
+ "description": "Filter by object type",
3652
+ "name": "obj-type",
3653
+ "required": false,
3654
+ "hasDynamicHelp": false,
3655
+ "multiple": false,
3656
+ "options": [
3657
+ "function",
3658
+ "query",
3659
+ "middleware"
3660
+ ],
3661
+ "type": "option"
3662
+ },
3674
3663
  "output": {
3675
3664
  "char": "o",
3676
3665
  "description": "Output format",
@@ -3697,7 +3686,7 @@
3697
3686
  },
3698
3687
  "hasDynamicHelp": false,
3699
3688
  "hiddenAliases": [],
3700
- "id": "unit_test:run",
3689
+ "id": "unit_test:run_all",
3701
3690
  "pluginAlias": "@xano/cli",
3702
3691
  "pluginName": "@xano/cli",
3703
3692
  "pluginType": "core",
@@ -3708,17 +3697,27 @@
3708
3697
  "dist",
3709
3698
  "commands",
3710
3699
  "unit_test",
3711
- "run",
3700
+ "run_all",
3712
3701
  "index.js"
3713
3702
  ]
3714
3703
  },
3715
- "unit_test:run_all": {
3704
+ "tenant:push": {
3716
3705
  "aliases": [],
3717
- "args": {},
3718
- "description": "Run all unit tests in a workspace",
3706
+ "args": {
3707
+ "directory": {
3708
+ "description": "Directory containing documents to push (as produced by tenant pull or workspace pull)",
3709
+ "name": "directory",
3710
+ "required": true
3711
+ }
3712
+ },
3713
+ "description": "Push local documents to a tenant via the Xano Metadata API multidoc endpoint",
3719
3714
  "examples": [
3720
- "$ 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",
3721
- "$ xano unit-test run-all --obj-type function -o json"
3715
+ "$ xano tenant push ./my-workspace -t my-tenant\nPushed 42 documents to tenant my-tenant from ./my-workspace\n",
3716
+ "$ xano tenant push ./output -t my-tenant -w 40\nPushed 15 documents to tenant my-tenant from ./output\n",
3717
+ "$ xano tenant push ./backup -t my-tenant --profile production\nPushed 58 documents to tenant my-tenant from ./backup\n",
3718
+ "$ xano tenant push ./my-workspace -t my-tenant --records\nInclude table records in import\n",
3719
+ "$ xano tenant push ./my-workspace -t my-tenant --env\nInclude environment variables in import\n",
3720
+ "$ xano tenant push ./my-workspace -t my-tenant --truncate\nTruncate all table records before importing\n"
3722
3721
  ],
3723
3722
  "flags": {
3724
3723
  "profile": {
@@ -3740,45 +3739,46 @@
3740
3739
  "allowNo": false,
3741
3740
  "type": "boolean"
3742
3741
  },
3743
- "branch": {
3744
- "char": "b",
3745
- "description": "Filter by branch name",
3746
- "name": "branch",
3742
+ "env": {
3743
+ "description": "Include environment variables in import",
3744
+ "name": "env",
3747
3745
  "required": false,
3748
- "hasDynamicHelp": false,
3749
- "multiple": false,
3750
- "type": "option"
3746
+ "allowNo": false,
3747
+ "type": "boolean"
3751
3748
  },
3752
- "obj-type": {
3753
- "description": "Filter by object type",
3754
- "name": "obj-type",
3749
+ "records": {
3750
+ "description": "Include records in import",
3751
+ "name": "records",
3755
3752
  "required": false,
3753
+ "allowNo": false,
3754
+ "type": "boolean"
3755
+ },
3756
+ "tenant": {
3757
+ "char": "t",
3758
+ "description": "Tenant name to push to",
3759
+ "name": "tenant",
3760
+ "required": true,
3756
3761
  "hasDynamicHelp": false,
3757
3762
  "multiple": false,
3758
- "options": [
3759
- "function",
3760
- "query",
3761
- "middleware"
3762
- ],
3763
3763
  "type": "option"
3764
3764
  },
3765
- "output": {
3766
- "char": "o",
3767
- "description": "Output format",
3768
- "name": "output",
3765
+ "transaction": {
3766
+ "description": "Wrap import in a database transaction (use --no-transaction for debugging purposes)",
3767
+ "name": "transaction",
3769
3768
  "required": false,
3770
- "default": "summary",
3771
- "hasDynamicHelp": false,
3772
- "multiple": false,
3773
- "options": [
3774
- "summary",
3775
- "json"
3776
- ],
3777
- "type": "option"
3769
+ "allowNo": true,
3770
+ "type": "boolean"
3771
+ },
3772
+ "truncate": {
3773
+ "description": "Truncate all table records before importing",
3774
+ "name": "truncate",
3775
+ "required": false,
3776
+ "allowNo": false,
3777
+ "type": "boolean"
3778
3778
  },
3779
3779
  "workspace": {
3780
3780
  "char": "w",
3781
- "description": "Workspace ID (uses profile workspace if not provided)",
3781
+ "description": "Workspace ID (optional if set in profile)",
3782
3782
  "name": "workspace",
3783
3783
  "required": false,
3784
3784
  "hasDynamicHelp": false,
@@ -3788,7 +3788,7 @@
3788
3788
  },
3789
3789
  "hasDynamicHelp": false,
3790
3790
  "hiddenAliases": [],
3791
- "id": "unit_test:run_all",
3791
+ "id": "tenant:push",
3792
3792
  "pluginAlias": "@xano/cli",
3793
3793
  "pluginName": "@xano/cli",
3794
3794
  "pluginType": "core",
@@ -3798,8 +3798,8 @@
3798
3798
  "relativePath": [
3799
3799
  "dist",
3800
3800
  "commands",
3801
- "unit_test",
3802
- "run_all",
3801
+ "tenant",
3802
+ "push",
3803
3803
  "index.js"
3804
3804
  ]
3805
3805
  },
@@ -3970,14 +3970,13 @@
3970
3970
  "index.js"
3971
3971
  ]
3972
3972
  },
3973
- "workflow_test:list": {
3973
+ "workflow_test:run_all": {
3974
3974
  "aliases": [],
3975
3975
  "args": {},
3976
- "description": "List all workflow tests in a workspace",
3976
+ "description": "Run all workflow tests in a workspace",
3977
3977
  "examples": [
3978
- "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
3979
- "$ xano workflow-test list -w 5 --output json",
3980
- "$ xano workflow-test list --branch main"
3978
+ "$ xano workflow-test run-all\nRunning 3 workflow tests...\n\nPASS my-test (1.234s)\nPASS auth-flow (0.567s)\nFAIL data-validation (0.890s)\n Error: assertion failed at step 3\n\nResults: 2 passed, 1 failed (2.691s total)\n",
3979
+ "$ xano workflow-test run-all --branch main -o json"
3981
3980
  ],
3982
3981
  "flags": {
3983
3982
  "profile": {
@@ -4034,7 +4033,7 @@
4034
4033
  },
4035
4034
  "hasDynamicHelp": false,
4036
4035
  "hiddenAliases": [],
4037
- "id": "workflow_test:list",
4036
+ "id": "workflow_test:run_all",
4038
4037
  "pluginAlias": "@xano/cli",
4039
4038
  "pluginName": "@xano/cli",
4040
4039
  "pluginType": "core",
@@ -4045,7 +4044,7 @@
4045
4044
  "dist",
4046
4045
  "commands",
4047
4046
  "workflow_test",
4048
- "list",
4047
+ "run_all",
4049
4048
  "index.js"
4050
4049
  ]
4051
4050
  },
@@ -4124,13 +4123,20 @@
4124
4123
  "index.js"
4125
4124
  ]
4126
4125
  },
4127
- "workflow_test:run_all": {
4126
+ "workspace:create": {
4128
4127
  "aliases": [],
4129
- "args": {},
4130
- "description": "Run all workflow tests in a workspace",
4128
+ "args": {
4129
+ "name": {
4130
+ "description": "Name of the workspace",
4131
+ "name": "name",
4132
+ "required": true
4133
+ }
4134
+ },
4135
+ "description": "Create a new workspace via the Xano Metadata API",
4131
4136
  "examples": [
4132
- "$ xano workflow-test run-all\nRunning 3 workflow tests...\n\nPASS my-test (1.234s)\nPASS auth-flow (0.567s)\nFAIL data-validation (0.890s)\n Error: assertion failed at step 3\n\nResults: 2 passed, 1 failed (2.691s total)\n",
4133
- "$ xano workflow-test run-all --branch main -o json"
4137
+ "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
4138
+ "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
4139
+ "$ xano workspace create new-project -d \"New project workspace\" -o json\n{\n \"id\": 789,\n \"name\": \"new-project\",\n \"description\": \"New project workspace\"\n}\n"
4134
4140
  ],
4135
4141
  "flags": {
4136
4142
  "profile": {
@@ -4152,10 +4158,10 @@
4152
4158
  "allowNo": false,
4153
4159
  "type": "boolean"
4154
4160
  },
4155
- "branch": {
4156
- "char": "b",
4157
- "description": "Filter by branch name",
4158
- "name": "branch",
4161
+ "description": {
4162
+ "char": "d",
4163
+ "description": "Description for the workspace",
4164
+ "name": "description",
4159
4165
  "required": false,
4160
4166
  "hasDynamicHelp": false,
4161
4167
  "multiple": false,
@@ -4174,20 +4180,11 @@
4174
4180
  "json"
4175
4181
  ],
4176
4182
  "type": "option"
4177
- },
4178
- "workspace": {
4179
- "char": "w",
4180
- "description": "Workspace ID (uses profile workspace if not provided)",
4181
- "name": "workspace",
4182
- "required": false,
4183
- "hasDynamicHelp": false,
4184
- "multiple": false,
4185
- "type": "option"
4186
4183
  }
4187
4184
  },
4188
4185
  "hasDynamicHelp": false,
4189
4186
  "hiddenAliases": [],
4190
- "id": "workflow_test:run_all",
4187
+ "id": "workspace:create",
4191
4188
  "pluginAlias": "@xano/cli",
4192
4189
  "pluginName": "@xano/cli",
4193
4190
  "pluginType": "core",
@@ -4197,25 +4194,25 @@
4197
4194
  "relativePath": [
4198
4195
  "dist",
4199
4196
  "commands",
4200
- "workflow_test",
4201
- "run_all",
4197
+ "workspace",
4198
+ "create",
4202
4199
  "index.js"
4203
4200
  ]
4204
4201
  },
4205
- "workspace:create": {
4202
+ "workspace:delete": {
4206
4203
  "aliases": [],
4207
4204
  "args": {
4208
- "name": {
4209
- "description": "Name of the workspace",
4210
- "name": "name",
4205
+ "workspace_id": {
4206
+ "description": "Workspace ID to delete",
4207
+ "name": "workspace_id",
4211
4208
  "required": true
4212
4209
  }
4213
4210
  },
4214
- "description": "Create a new workspace via the Xano Metadata API",
4211
+ "description": "Delete a workspace via the Xano Metadata API. Cannot delete workspaces with active tenants.",
4215
4212
  "examples": [
4216
- "$ xano workspace create my-workspace\nCreated workspace: my-workspace (ID: 123)\n",
4217
- "$ xano workspace create my-app --description \"My application workspace\"\nCreated workspace: my-app (ID: 456)\n Description: My application workspace\n",
4218
- "$ xano workspace create new-project -d \"New project workspace\" -o json\n{\n \"id\": 789,\n \"name\": \"new-project\",\n \"description\": \"New project workspace\"\n}\n"
4213
+ "$ xano workspace delete 123\nAre you sure you want to delete workspace 123? This action cannot be undone. (y/N) y\nDeleted workspace 123\n",
4214
+ "$ xano workspace delete 123 --force\nDeleted workspace 123\n",
4215
+ "$ xano workspace delete 123 -f -o json\n{\n \"deleted\": true,\n \"workspace_id\": 123\n}\n"
4219
4216
  ],
4220
4217
  "flags": {
4221
4218
  "profile": {
@@ -4237,14 +4234,13 @@
4237
4234
  "allowNo": false,
4238
4235
  "type": "boolean"
4239
4236
  },
4240
- "description": {
4241
- "char": "d",
4242
- "description": "Description for the workspace",
4243
- "name": "description",
4237
+ "force": {
4238
+ "char": "f",
4239
+ "description": "Skip confirmation prompt",
4240
+ "name": "force",
4244
4241
  "required": false,
4245
- "hasDynamicHelp": false,
4246
- "multiple": false,
4247
- "type": "option"
4242
+ "allowNo": false,
4243
+ "type": "boolean"
4248
4244
  },
4249
4245
  "output": {
4250
4246
  "char": "o",
@@ -4263,7 +4259,7 @@
4263
4259
  },
4264
4260
  "hasDynamicHelp": false,
4265
4261
  "hiddenAliases": [],
4266
- "id": "workspace:create",
4262
+ "id": "workspace:delete",
4267
4263
  "pluginAlias": "@xano/cli",
4268
4264
  "pluginName": "@xano/cli",
4269
4265
  "pluginType": "core",
@@ -4274,24 +4270,24 @@
4274
4270
  "dist",
4275
4271
  "commands",
4276
4272
  "workspace",
4277
- "create",
4273
+ "delete",
4278
4274
  "index.js"
4279
4275
  ]
4280
4276
  },
4281
- "workspace:delete": {
4277
+ "workspace:get": {
4282
4278
  "aliases": [],
4283
4279
  "args": {
4284
4280
  "workspace_id": {
4285
- "description": "Workspace ID to delete",
4281
+ "description": "Workspace ID to get details for (uses profile workspace if not provided)",
4286
4282
  "name": "workspace_id",
4287
- "required": true
4283
+ "required": false
4288
4284
  }
4289
4285
  },
4290
- "description": "Delete a workspace via the Xano Metadata API. Cannot delete workspaces with active tenants.",
4291
- "examples": [
4292
- "$ xano workspace delete 123\nAre you sure you want to delete workspace 123? This action cannot be undone. (y/N) y\nDeleted workspace 123\n",
4293
- "$ xano workspace delete 123 --force\nDeleted workspace 123\n",
4294
- "$ xano workspace delete 123 -f -o json\n{\n \"deleted\": true,\n \"workspace_id\": 123\n}\n"
4286
+ "description": "Get details of a specific workspace from the Xano Metadata API",
4287
+ "examples": [
4288
+ "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
4289
+ "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
4290
+ "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
4295
4291
  ],
4296
4292
  "flags": {
4297
4293
  "profile": {
@@ -4313,14 +4309,6 @@
4313
4309
  "allowNo": false,
4314
4310
  "type": "boolean"
4315
4311
  },
4316
- "force": {
4317
- "char": "f",
4318
- "description": "Skip confirmation prompt",
4319
- "name": "force",
4320
- "required": false,
4321
- "allowNo": false,
4322
- "type": "boolean"
4323
- },
4324
4312
  "output": {
4325
4313
  "char": "o",
4326
4314
  "description": "Output format",
@@ -4338,7 +4326,7 @@
4338
4326
  },
4339
4327
  "hasDynamicHelp": false,
4340
4328
  "hiddenAliases": [],
4341
- "id": "workspace:delete",
4329
+ "id": "workspace:get",
4342
4330
  "pluginAlias": "@xano/cli",
4343
4331
  "pluginName": "@xano/cli",
4344
4332
  "pluginType": "core",
@@ -4349,7 +4337,7 @@
4349
4337
  "dist",
4350
4338
  "commands",
4351
4339
  "workspace",
4352
- "delete",
4340
+ "get",
4353
4341
  "index.js"
4354
4342
  ]
4355
4343
  },
@@ -4453,20 +4441,14 @@
4453
4441
  "index.js"
4454
4442
  ]
4455
4443
  },
4456
- "workspace:get": {
4444
+ "workflow_test:list": {
4457
4445
  "aliases": [],
4458
- "args": {
4459
- "workspace_id": {
4460
- "description": "Workspace ID to get details for (uses profile workspace if not provided)",
4461
- "name": "workspace_id",
4462
- "required": false
4463
- }
4464
- },
4465
- "description": "Get details of a specific workspace from the Xano Metadata API",
4446
+ "args": {},
4447
+ "description": "List all workflow tests in a workspace",
4466
4448
  "examples": [
4467
- "$ xano workspace get 123\nWorkspace: my-workspace (ID: 123)\n Description: My workspace description\n Created: 2024-01-15\n",
4468
- "$ xano workspace get --output json\n{\n \"id\": 123,\n \"name\": \"my-workspace\",\n \"description\": \"My workspace description\"\n}\n",
4469
- "$ xano workspace get 456 -p production -o json\n{\n \"id\": 456,\n \"name\": \"production-workspace\"\n}\n"
4449
+ "$ xano workflow-test list\nWorkflow tests in workspace 5:\n - my-test (ID: 1)\n - auth-flow (ID: 2) - Validates auth endpoints\n",
4450
+ "$ xano workflow-test list -w 5 --output json",
4451
+ "$ xano workflow-test list --branch main"
4470
4452
  ],
4471
4453
  "flags": {
4472
4454
  "profile": {
@@ -4488,6 +4470,15 @@
4488
4470
  "allowNo": false,
4489
4471
  "type": "boolean"
4490
4472
  },
4473
+ "branch": {
4474
+ "char": "b",
4475
+ "description": "Filter by branch name",
4476
+ "name": "branch",
4477
+ "required": false,
4478
+ "hasDynamicHelp": false,
4479
+ "multiple": false,
4480
+ "type": "option"
4481
+ },
4491
4482
  "output": {
4492
4483
  "char": "o",
4493
4484
  "description": "Output format",
@@ -4501,11 +4492,20 @@
4501
4492
  "json"
4502
4493
  ],
4503
4494
  "type": "option"
4495
+ },
4496
+ "workspace": {
4497
+ "char": "w",
4498
+ "description": "Workspace ID (uses profile workspace if not provided)",
4499
+ "name": "workspace",
4500
+ "required": false,
4501
+ "hasDynamicHelp": false,
4502
+ "multiple": false,
4503
+ "type": "option"
4504
4504
  }
4505
4505
  },
4506
4506
  "hasDynamicHelp": false,
4507
4507
  "hiddenAliases": [],
4508
- "id": "workspace:get",
4508
+ "id": "workflow_test:list",
4509
4509
  "pluginAlias": "@xano/cli",
4510
4510
  "pluginName": "@xano/cli",
4511
4511
  "pluginType": "core",
@@ -4515,8 +4515,8 @@
4515
4515
  "relativePath": [
4516
4516
  "dist",
4517
4517
  "commands",
4518
- "workspace",
4519
- "get",
4518
+ "workflow_test",
4519
+ "list",
4520
4520
  "index.js"
4521
4521
  ]
4522
4522
  },
@@ -5148,13 +5148,19 @@
5148
5148
  "index.js"
5149
5149
  ]
5150
5150
  },
5151
- "tenant:cluster:create": {
5151
+ "tenant:backup:create": {
5152
5152
  "aliases": [],
5153
- "args": {},
5154
- "description": "Create a new tenant cluster",
5153
+ "args": {
5154
+ "tenant_name": {
5155
+ "description": "Tenant name to back up",
5156
+ "name": "tenant_name",
5157
+ "required": true
5158
+ }
5159
+ },
5160
+ "description": "Create a backup for a tenant",
5155
5161
  "examples": [
5156
- "$ xano tenant cluster create --name \"us-east-1\" --credentials_file ./kubeconfig.yaml\nCreated tenant cluster: us-east-1 (standard) - ID: 3\n",
5157
- "$ xano tenant cluster create --name \"eu-west-1\" --credentials \"...\" --type run --description \"EU run cluster\" -o json"
5162
+ "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
5163
+ "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
5158
5164
  ],
5159
5165
  "flags": {
5160
5166
  "profile": {
@@ -5176,50 +5182,12 @@
5176
5182
  "allowNo": false,
5177
5183
  "type": "boolean"
5178
5184
  },
5179
- "credentials": {
5180
- "description": "Kubeconfig credentials (raw text)",
5181
- "exclusive": [
5182
- "credentials_file"
5183
- ],
5184
- "name": "credentials",
5185
- "required": false,
5186
- "hasDynamicHelp": false,
5187
- "multiple": false,
5188
- "type": "option"
5189
- },
5190
- "credentials_file": {
5191
- "description": "Path to kubeconfig credentials file",
5192
- "exclusive": [
5193
- "credentials"
5194
- ],
5195
- "name": "credentials_file",
5196
- "required": false,
5197
- "hasDynamicHelp": false,
5198
- "multiple": false,
5199
- "type": "option"
5200
- },
5201
5185
  "description": {
5202
5186
  "char": "d",
5203
- "description": "Cluster description",
5187
+ "description": "Backup description",
5204
5188
  "name": "description",
5205
5189
  "required": false,
5206
- "hasDynamicHelp": false,
5207
- "multiple": false,
5208
- "type": "option"
5209
- },
5210
- "domain": {
5211
- "description": "Custom domain for the cluster",
5212
- "name": "domain",
5213
- "required": false,
5214
- "hasDynamicHelp": false,
5215
- "multiple": false,
5216
- "type": "option"
5217
- },
5218
- "name": {
5219
- "char": "n",
5220
- "description": "Cluster name",
5221
- "name": "name",
5222
- "required": true,
5190
+ "default": "",
5223
5191
  "hasDynamicHelp": false,
5224
5192
  "multiple": false,
5225
5193
  "type": "option"
@@ -5238,23 +5206,19 @@
5238
5206
  ],
5239
5207
  "type": "option"
5240
5208
  },
5241
- "type": {
5242
- "description": "Cluster type",
5243
- "name": "type",
5209
+ "workspace": {
5210
+ "char": "w",
5211
+ "description": "Workspace ID (uses profile workspace if not provided)",
5212
+ "name": "workspace",
5244
5213
  "required": false,
5245
- "default": "standard",
5246
5214
  "hasDynamicHelp": false,
5247
5215
  "multiple": false,
5248
- "options": [
5249
- "standard",
5250
- "run"
5251
- ],
5252
5216
  "type": "option"
5253
5217
  }
5254
5218
  },
5255
5219
  "hasDynamicHelp": false,
5256
5220
  "hiddenAliases": [],
5257
- "id": "tenant:cluster:create",
5221
+ "id": "tenant:backup:create",
5258
5222
  "pluginAlias": "@xano/cli",
5259
5223
  "pluginName": "@xano/cli",
5260
5224
  "pluginType": "core",
@@ -5265,25 +5229,25 @@
5265
5229
  "dist",
5266
5230
  "commands",
5267
5231
  "tenant",
5268
- "cluster",
5232
+ "backup",
5269
5233
  "create",
5270
5234
  "index.js"
5271
5235
  ]
5272
5236
  },
5273
- "tenant:cluster:delete": {
5237
+ "tenant:backup:delete": {
5274
5238
  "aliases": [],
5275
5239
  "args": {
5276
- "cluster_id": {
5277
- "description": "Cluster ID to delete",
5278
- "name": "cluster_id",
5240
+ "tenant_name": {
5241
+ "description": "Tenant name that owns the backup",
5242
+ "name": "tenant_name",
5279
5243
  "required": true
5280
5244
  }
5281
5245
  },
5282
- "description": "Delete a tenant cluster. This action cannot be undone.",
5246
+ "description": "Delete a tenant backup permanently. This action cannot be undone.",
5283
5247
  "examples": [
5284
- "$ 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",
5285
- "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5286
- "$ xano tenant cluster delete 3 -f -o json"
5248
+ "$ 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",
5249
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
5250
+ "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
5287
5251
  ],
5288
5252
  "flags": {
5289
5253
  "profile": {
@@ -5305,6 +5269,14 @@
5305
5269
  "allowNo": false,
5306
5270
  "type": "boolean"
5307
5271
  },
5272
+ "backup_id": {
5273
+ "description": "Backup ID to delete",
5274
+ "name": "backup_id",
5275
+ "required": true,
5276
+ "hasDynamicHelp": false,
5277
+ "multiple": false,
5278
+ "type": "option"
5279
+ },
5308
5280
  "force": {
5309
5281
  "char": "f",
5310
5282
  "description": "Skip confirmation prompt",
@@ -5326,11 +5298,20 @@
5326
5298
  "json"
5327
5299
  ],
5328
5300
  "type": "option"
5301
+ },
5302
+ "workspace": {
5303
+ "char": "w",
5304
+ "description": "Workspace ID (uses profile workspace if not provided)",
5305
+ "name": "workspace",
5306
+ "required": false,
5307
+ "hasDynamicHelp": false,
5308
+ "multiple": false,
5309
+ "type": "option"
5329
5310
  }
5330
5311
  },
5331
5312
  "hasDynamicHelp": false,
5332
5313
  "hiddenAliases": [],
5333
- "id": "tenant:cluster:delete",
5314
+ "id": "tenant:backup:delete",
5334
5315
  "pluginAlias": "@xano/cli",
5335
5316
  "pluginName": "@xano/cli",
5336
5317
  "pluginType": "core",
@@ -5341,18 +5322,25 @@
5341
5322
  "dist",
5342
5323
  "commands",
5343
5324
  "tenant",
5344
- "cluster",
5325
+ "backup",
5345
5326
  "delete",
5346
5327
  "index.js"
5347
5328
  ]
5348
5329
  },
5349
- "tenant:cluster:list": {
5330
+ "tenant:backup:export": {
5350
5331
  "aliases": [],
5351
- "args": {},
5352
- "description": "List all tenant clusters",
5332
+ "args": {
5333
+ "tenant_name": {
5334
+ "description": "Tenant name to export backup from",
5335
+ "name": "tenant_name",
5336
+ "required": true
5337
+ }
5338
+ },
5339
+ "description": "Export (download) a tenant backup to a local file",
5353
5340
  "examples": [
5354
- "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
5355
- "$ xano tenant cluster list --output json"
5341
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
5342
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
5343
+ "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
5356
5344
  ],
5357
5345
  "flags": {
5358
5346
  "profile": {
@@ -5374,10 +5362,18 @@
5374
5362
  "allowNo": false,
5375
5363
  "type": "boolean"
5376
5364
  },
5377
- "output": {
5365
+ "backup_id": {
5366
+ "description": "Backup ID to export",
5367
+ "name": "backup_id",
5368
+ "required": true,
5369
+ "hasDynamicHelp": false,
5370
+ "multiple": false,
5371
+ "type": "option"
5372
+ },
5373
+ "format": {
5378
5374
  "char": "o",
5379
5375
  "description": "Output format",
5380
- "name": "output",
5376
+ "name": "format",
5381
5377
  "required": false,
5382
5378
  "default": "summary",
5383
5379
  "hasDynamicHelp": false,
@@ -5387,11 +5383,28 @@
5387
5383
  "json"
5388
5384
  ],
5389
5385
  "type": "option"
5386
+ },
5387
+ "output": {
5388
+ "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
5389
+ "name": "output",
5390
+ "required": false,
5391
+ "hasDynamicHelp": false,
5392
+ "multiple": false,
5393
+ "type": "option"
5394
+ },
5395
+ "workspace": {
5396
+ "char": "w",
5397
+ "description": "Workspace ID (uses profile workspace if not provided)",
5398
+ "name": "workspace",
5399
+ "required": false,
5400
+ "hasDynamicHelp": false,
5401
+ "multiple": false,
5402
+ "type": "option"
5390
5403
  }
5391
5404
  },
5392
5405
  "hasDynamicHelp": false,
5393
5406
  "hiddenAliases": [],
5394
- "id": "tenant:cluster:list",
5407
+ "id": "tenant:backup:export",
5395
5408
  "pluginAlias": "@xano/cli",
5396
5409
  "pluginName": "@xano/cli",
5397
5410
  "pluginType": "core",
@@ -5402,25 +5415,24 @@
5402
5415
  "dist",
5403
5416
  "commands",
5404
5417
  "tenant",
5405
- "cluster",
5406
- "list",
5418
+ "backup",
5419
+ "export",
5407
5420
  "index.js"
5408
5421
  ]
5409
5422
  },
5410
- "tenant:env:delete": {
5423
+ "tenant:backup:import": {
5411
5424
  "aliases": [],
5412
5425
  "args": {
5413
5426
  "tenant_name": {
5414
- "description": "Tenant name",
5427
+ "description": "Tenant name to import backup into",
5415
5428
  "name": "tenant_name",
5416
5429
  "required": true
5417
5430
  }
5418
5431
  },
5419
- "description": "Delete an environment variable from a tenant",
5432
+ "description": "Import a backup file into a tenant",
5420
5433
  "examples": [
5421
- "$ xano tenant env delete my-tenant --name DATABASE_URL\nAre you sure you want to delete environment variable 'DATABASE_URL' from tenant my-tenant? (y/N) y\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
5422
- "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
5423
- "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
5434
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
5435
+ "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
5424
5436
  ],
5425
5437
  "flags": {
5426
5438
  "profile": {
@@ -5442,18 +5454,20 @@
5442
5454
  "allowNo": false,
5443
5455
  "type": "boolean"
5444
5456
  },
5445
- "force": {
5446
- "char": "f",
5447
- "description": "Skip confirmation prompt",
5448
- "name": "force",
5457
+ "description": {
5458
+ "char": "d",
5459
+ "description": "Backup description",
5460
+ "name": "description",
5449
5461
  "required": false,
5450
- "allowNo": false,
5451
- "type": "boolean"
5462
+ "default": "",
5463
+ "hasDynamicHelp": false,
5464
+ "multiple": false,
5465
+ "type": "option"
5452
5466
  },
5453
- "name": {
5454
- "char": "n",
5455
- "description": "Environment variable name",
5456
- "name": "name",
5467
+ "file": {
5468
+ "char": "f",
5469
+ "description": "Path to the backup file (.tar.gz)",
5470
+ "name": "file",
5457
5471
  "required": true,
5458
5472
  "hasDynamicHelp": false,
5459
5473
  "multiple": false,
@@ -5485,7 +5499,7 @@
5485
5499
  },
5486
5500
  "hasDynamicHelp": false,
5487
5501
  "hiddenAliases": [],
5488
- "id": "tenant:env:delete",
5502
+ "id": "tenant:backup:import",
5489
5503
  "pluginAlias": "@xano/cli",
5490
5504
  "pluginName": "@xano/cli",
5491
5505
  "pluginType": "core",
@@ -5496,24 +5510,24 @@
5496
5510
  "dist",
5497
5511
  "commands",
5498
5512
  "tenant",
5499
- "env",
5500
- "delete",
5513
+ "backup",
5514
+ "import",
5501
5515
  "index.js"
5502
5516
  ]
5503
5517
  },
5504
- "tenant:env:get": {
5518
+ "tenant:backup:list": {
5505
5519
  "aliases": [],
5506
5520
  "args": {
5507
5521
  "tenant_name": {
5508
- "description": "Tenant name",
5522
+ "description": "Tenant name to list backups for",
5509
5523
  "name": "tenant_name",
5510
5524
  "required": true
5511
5525
  }
5512
5526
  },
5513
- "description": "Get a single environment variable for a tenant",
5527
+ "description": "List backups for a tenant",
5514
5528
  "examples": [
5515
- "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
5516
- "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
5529
+ "$ 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",
5530
+ "$ xano tenant backup list t1234-abcd-xyz1 -o json"
5517
5531
  ],
5518
5532
  "flags": {
5519
5533
  "profile": {
@@ -5535,15 +5549,6 @@
5535
5549
  "allowNo": false,
5536
5550
  "type": "boolean"
5537
5551
  },
5538
- "name": {
5539
- "char": "n",
5540
- "description": "Environment variable name",
5541
- "name": "name",
5542
- "required": true,
5543
- "hasDynamicHelp": false,
5544
- "multiple": false,
5545
- "type": "option"
5546
- },
5547
5552
  "output": {
5548
5553
  "char": "o",
5549
5554
  "description": "Output format",
@@ -5558,6 +5563,15 @@
5558
5563
  ],
5559
5564
  "type": "option"
5560
5565
  },
5566
+ "page": {
5567
+ "description": "Page number for pagination",
5568
+ "name": "page",
5569
+ "required": false,
5570
+ "default": 1,
5571
+ "hasDynamicHelp": false,
5572
+ "multiple": false,
5573
+ "type": "option"
5574
+ },
5561
5575
  "workspace": {
5562
5576
  "char": "w",
5563
5577
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -5570,7 +5584,7 @@
5570
5584
  },
5571
5585
  "hasDynamicHelp": false,
5572
5586
  "hiddenAliases": [],
5573
- "id": "tenant:env:get",
5587
+ "id": "tenant:backup:list",
5574
5588
  "pluginAlias": "@xano/cli",
5575
5589
  "pluginName": "@xano/cli",
5576
5590
  "pluginType": "core",
@@ -5581,26 +5595,24 @@
5581
5595
  "dist",
5582
5596
  "commands",
5583
5597
  "tenant",
5584
- "env",
5585
- "get",
5598
+ "backup",
5599
+ "list",
5586
5600
  "index.js"
5587
5601
  ]
5588
5602
  },
5589
- "tenant:env:get_all": {
5603
+ "tenant:backup:restore": {
5590
5604
  "aliases": [],
5591
5605
  "args": {
5592
5606
  "tenant_name": {
5593
- "description": "Tenant name",
5607
+ "description": "Tenant name to restore",
5594
5608
  "name": "tenant_name",
5595
5609
  "required": true
5596
5610
  }
5597
5611
  },
5598
- "description": "Get all environment variables for a tenant and save to a YAML file",
5612
+ "description": "Restore a tenant from a backup. This replaces the current tenant data.",
5599
5613
  "examples": [
5600
- "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
5601
- "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
5602
- "$ xano tenant env get_all my-tenant --view",
5603
- "$ xano tenant env get_all my-tenant -o json"
5614
+ "$ 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",
5615
+ "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
5604
5616
  ],
5605
5617
  "flags": {
5606
5618
  "profile": {
@@ -5622,15 +5634,22 @@
5622
5634
  "allowNo": false,
5623
5635
  "type": "boolean"
5624
5636
  },
5625
- "file": {
5626
- "char": "f",
5627
- "description": "Output file path (default: env_<tenant_name>.yaml)",
5628
- "name": "file",
5629
- "required": false,
5637
+ "backup_id": {
5638
+ "description": "Backup ID to restore from",
5639
+ "name": "backup_id",
5640
+ "required": true,
5630
5641
  "hasDynamicHelp": false,
5631
5642
  "multiple": false,
5632
5643
  "type": "option"
5633
5644
  },
5645
+ "force": {
5646
+ "char": "f",
5647
+ "description": "Skip confirmation prompt",
5648
+ "name": "force",
5649
+ "required": false,
5650
+ "allowNo": false,
5651
+ "type": "boolean"
5652
+ },
5634
5653
  "output": {
5635
5654
  "char": "o",
5636
5655
  "description": "Output format",
@@ -5645,13 +5664,6 @@
5645
5664
  ],
5646
5665
  "type": "option"
5647
5666
  },
5648
- "view": {
5649
- "description": "Print environment variables to stdout instead of saving to file",
5650
- "name": "view",
5651
- "required": false,
5652
- "allowNo": false,
5653
- "type": "boolean"
5654
- },
5655
5667
  "workspace": {
5656
5668
  "char": "w",
5657
5669
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -5664,7 +5676,7 @@
5664
5676
  },
5665
5677
  "hasDynamicHelp": false,
5666
5678
  "hiddenAliases": [],
5667
- "id": "tenant:env:get_all",
5679
+ "id": "tenant:backup:restore",
5668
5680
  "pluginAlias": "@xano/cli",
5669
5681
  "pluginName": "@xano/cli",
5670
5682
  "pluginType": "core",
@@ -5675,24 +5687,18 @@
5675
5687
  "dist",
5676
5688
  "commands",
5677
5689
  "tenant",
5678
- "env",
5679
- "get_all",
5690
+ "backup",
5691
+ "restore",
5680
5692
  "index.js"
5681
5693
  ]
5682
5694
  },
5683
- "tenant:env:list": {
5695
+ "tenant:cluster:create": {
5684
5696
  "aliases": [],
5685
- "args": {
5686
- "tenant_name": {
5687
- "description": "Tenant name",
5688
- "name": "tenant_name",
5689
- "required": true
5690
- }
5691
- },
5692
- "description": "List environment variable keys for a tenant",
5697
+ "args": {},
5698
+ "description": "Create a new tenant cluster",
5693
5699
  "examples": [
5694
- "$ xano tenant env list my-tenant\nEnvironment variables for tenant my-tenant:\n - DATABASE_URL\n - API_KEY\n - SECRET_TOKEN\n",
5695
- "$ xano tenant env list my-tenant -w 5 -o json"
5700
+ "$ xano tenant cluster create --name \"us-east-1\" --credentials_file ./kubeconfig.yaml\nCreated tenant cluster: us-east-1 (standard) - ID: 3\n",
5701
+ "$ xano tenant cluster create --name \"eu-west-1\" --credentials \"...\" --type run --description \"EU run cluster\" -o json"
5696
5702
  ],
5697
5703
  "flags": {
5698
5704
  "profile": {
@@ -5714,6 +5720,54 @@
5714
5720
  "allowNo": false,
5715
5721
  "type": "boolean"
5716
5722
  },
5723
+ "credentials": {
5724
+ "description": "Kubeconfig credentials (raw text)",
5725
+ "exclusive": [
5726
+ "credentials_file"
5727
+ ],
5728
+ "name": "credentials",
5729
+ "required": false,
5730
+ "hasDynamicHelp": false,
5731
+ "multiple": false,
5732
+ "type": "option"
5733
+ },
5734
+ "credentials_file": {
5735
+ "description": "Path to kubeconfig credentials file",
5736
+ "exclusive": [
5737
+ "credentials"
5738
+ ],
5739
+ "name": "credentials_file",
5740
+ "required": false,
5741
+ "hasDynamicHelp": false,
5742
+ "multiple": false,
5743
+ "type": "option"
5744
+ },
5745
+ "description": {
5746
+ "char": "d",
5747
+ "description": "Cluster description",
5748
+ "name": "description",
5749
+ "required": false,
5750
+ "hasDynamicHelp": false,
5751
+ "multiple": false,
5752
+ "type": "option"
5753
+ },
5754
+ "domain": {
5755
+ "description": "Custom domain for the cluster",
5756
+ "name": "domain",
5757
+ "required": false,
5758
+ "hasDynamicHelp": false,
5759
+ "multiple": false,
5760
+ "type": "option"
5761
+ },
5762
+ "name": {
5763
+ "char": "n",
5764
+ "description": "Cluster name",
5765
+ "name": "name",
5766
+ "required": true,
5767
+ "hasDynamicHelp": false,
5768
+ "multiple": false,
5769
+ "type": "option"
5770
+ },
5717
5771
  "output": {
5718
5772
  "char": "o",
5719
5773
  "description": "Output format",
@@ -5728,19 +5782,23 @@
5728
5782
  ],
5729
5783
  "type": "option"
5730
5784
  },
5731
- "workspace": {
5732
- "char": "w",
5733
- "description": "Workspace ID (uses profile workspace if not provided)",
5734
- "name": "workspace",
5785
+ "type": {
5786
+ "description": "Cluster type",
5787
+ "name": "type",
5735
5788
  "required": false,
5789
+ "default": "standard",
5736
5790
  "hasDynamicHelp": false,
5737
5791
  "multiple": false,
5792
+ "options": [
5793
+ "standard",
5794
+ "run"
5795
+ ],
5738
5796
  "type": "option"
5739
5797
  }
5740
5798
  },
5741
5799
  "hasDynamicHelp": false,
5742
5800
  "hiddenAliases": [],
5743
- "id": "tenant:env:list",
5801
+ "id": "tenant:cluster:create",
5744
5802
  "pluginAlias": "@xano/cli",
5745
5803
  "pluginName": "@xano/cli",
5746
5804
  "pluginType": "core",
@@ -5751,24 +5809,25 @@
5751
5809
  "dist",
5752
5810
  "commands",
5753
5811
  "tenant",
5754
- "env",
5755
- "list",
5812
+ "cluster",
5813
+ "create",
5756
5814
  "index.js"
5757
5815
  ]
5758
5816
  },
5759
- "tenant:cluster:get": {
5817
+ "tenant:cluster:delete": {
5760
5818
  "aliases": [],
5761
5819
  "args": {
5762
5820
  "cluster_id": {
5763
- "description": "Cluster ID to retrieve",
5821
+ "description": "Cluster ID to delete",
5764
5822
  "name": "cluster_id",
5765
5823
  "required": true
5766
5824
  }
5767
5825
  },
5768
- "description": "Get details of a specific tenant cluster",
5826
+ "description": "Delete a tenant cluster. This action cannot be undone.",
5769
5827
  "examples": [
5770
- "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
5771
- "$ xano tenant cluster get 1 -o json"
5828
+ "$ 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",
5829
+ "$ xano tenant cluster delete 3 --force\nTenant cluster 3 deleted successfully\n",
5830
+ "$ xano tenant cluster delete 3 -f -o json"
5772
5831
  ],
5773
5832
  "flags": {
5774
5833
  "profile": {
@@ -5790,6 +5849,14 @@
5790
5849
  "allowNo": false,
5791
5850
  "type": "boolean"
5792
5851
  },
5852
+ "force": {
5853
+ "char": "f",
5854
+ "description": "Skip confirmation prompt",
5855
+ "name": "force",
5856
+ "required": false,
5857
+ "allowNo": false,
5858
+ "type": "boolean"
5859
+ },
5793
5860
  "output": {
5794
5861
  "char": "o",
5795
5862
  "description": "Output format",
@@ -5807,7 +5874,7 @@
5807
5874
  },
5808
5875
  "hasDynamicHelp": false,
5809
5876
  "hiddenAliases": [],
5810
- "id": "tenant:cluster:get",
5877
+ "id": "tenant:cluster:delete",
5811
5878
  "pluginAlias": "@xano/cli",
5812
5879
  "pluginName": "@xano/cli",
5813
5880
  "pluginType": "core",
@@ -5819,23 +5886,23 @@
5819
5886
  "commands",
5820
5887
  "tenant",
5821
5888
  "cluster",
5822
- "get",
5889
+ "delete",
5823
5890
  "index.js"
5824
5891
  ]
5825
5892
  },
5826
- "tenant:env:set": {
5893
+ "tenant:cluster:edit": {
5827
5894
  "aliases": [],
5828
5895
  "args": {
5829
- "tenant_name": {
5830
- "description": "Tenant name",
5831
- "name": "tenant_name",
5896
+ "cluster_id": {
5897
+ "description": "Cluster ID to edit",
5898
+ "name": "cluster_id",
5832
5899
  "required": true
5833
5900
  }
5834
5901
  },
5835
- "description": "Set (create or update) an environment variable for a tenant",
5902
+ "description": "Update an existing tenant cluster",
5836
5903
  "examples": [
5837
- "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb\nEnvironment variable 'DATABASE_URL' set for tenant my-tenant\n",
5838
- "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb -w 5 -o json"
5904
+ "$ 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",
5905
+ "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
5839
5906
  ],
5840
5907
  "flags": {
5841
5908
  "profile": {
@@ -5857,9 +5924,26 @@
5857
5924
  "allowNo": false,
5858
5925
  "type": "boolean"
5859
5926
  },
5927
+ "description": {
5928
+ "char": "d",
5929
+ "description": "Cluster description",
5930
+ "name": "description",
5931
+ "required": true,
5932
+ "hasDynamicHelp": false,
5933
+ "multiple": false,
5934
+ "type": "option"
5935
+ },
5936
+ "domain": {
5937
+ "description": "Custom domain for the cluster",
5938
+ "name": "domain",
5939
+ "required": true,
5940
+ "hasDynamicHelp": false,
5941
+ "multiple": false,
5942
+ "type": "option"
5943
+ },
5860
5944
  "name": {
5861
5945
  "char": "n",
5862
- "description": "Environment variable name",
5946
+ "description": "Cluster name",
5863
5947
  "name": "name",
5864
5948
  "required": true,
5865
5949
  "hasDynamicHelp": false,
@@ -5880,27 +5964,22 @@
5880
5964
  ],
5881
5965
  "type": "option"
5882
5966
  },
5883
- "value": {
5884
- "description": "Environment variable value",
5885
- "name": "value",
5967
+ "type": {
5968
+ "description": "Cluster type",
5969
+ "name": "type",
5886
5970
  "required": true,
5887
5971
  "hasDynamicHelp": false,
5888
5972
  "multiple": false,
5889
- "type": "option"
5890
- },
5891
- "workspace": {
5892
- "char": "w",
5893
- "description": "Workspace ID (uses profile workspace if not provided)",
5894
- "name": "workspace",
5895
- "required": false,
5896
- "hasDynamicHelp": false,
5897
- "multiple": false,
5973
+ "options": [
5974
+ "standard",
5975
+ "run"
5976
+ ],
5898
5977
  "type": "option"
5899
5978
  }
5900
5979
  },
5901
5980
  "hasDynamicHelp": false,
5902
5981
  "hiddenAliases": [],
5903
- "id": "tenant:env:set",
5982
+ "id": "tenant:cluster:edit",
5904
5983
  "pluginAlias": "@xano/cli",
5905
5984
  "pluginName": "@xano/cli",
5906
5985
  "pluginType": "core",
@@ -5911,25 +5990,24 @@
5911
5990
  "dist",
5912
5991
  "commands",
5913
5992
  "tenant",
5914
- "env",
5915
- "set",
5993
+ "cluster",
5994
+ "edit",
5916
5995
  "index.js"
5917
5996
  ]
5918
5997
  },
5919
- "tenant:env:set_all": {
5998
+ "tenant:cluster:get": {
5920
5999
  "aliases": [],
5921
6000
  "args": {
5922
- "tenant_name": {
5923
- "description": "Tenant name",
5924
- "name": "tenant_name",
6001
+ "cluster_id": {
6002
+ "description": "Cluster ID to retrieve",
6003
+ "name": "cluster_id",
5925
6004
  "required": true
5926
6005
  }
5927
6006
  },
5928
- "description": "Set all environment variables for a tenant from a YAML file (replaces all existing)",
5929
- "examples": [
5930
- "$ xano tenant env set_all my-tenant\nReads from env_my-tenant.yaml\n",
5931
- "$ xano tenant env set_all my-tenant --file ./my-env.yaml",
5932
- "$ xano tenant env set_all my-tenant -o json"
6007
+ "description": "Get details of a specific tenant cluster",
6008
+ "examples": [
6009
+ "$ xano tenant cluster get 1\nCluster: us-east-1\n ID: 1\n Type: standard\n Domain: us-east-1.xano.io\n",
6010
+ "$ xano tenant cluster get 1 -o json"
5933
6011
  ],
5934
6012
  "flags": {
5935
6013
  "profile": {
@@ -5951,22 +6029,6 @@
5951
6029
  "allowNo": false,
5952
6030
  "type": "boolean"
5953
6031
  },
5954
- "clean": {
5955
- "description": "Remove the source file after successful upload",
5956
- "name": "clean",
5957
- "required": false,
5958
- "allowNo": false,
5959
- "type": "boolean"
5960
- },
5961
- "file": {
5962
- "char": "f",
5963
- "description": "Path to env file (default: env_<tenant_name>.yaml)",
5964
- "name": "file",
5965
- "required": false,
5966
- "hasDynamicHelp": false,
5967
- "multiple": false,
5968
- "type": "option"
5969
- },
5970
6032
  "output": {
5971
6033
  "char": "o",
5972
6034
  "description": "Output format",
@@ -5980,20 +6042,11 @@
5980
6042
  "json"
5981
6043
  ],
5982
6044
  "type": "option"
5983
- },
5984
- "workspace": {
5985
- "char": "w",
5986
- "description": "Workspace ID (uses profile workspace if not provided)",
5987
- "name": "workspace",
5988
- "required": false,
5989
- "hasDynamicHelp": false,
5990
- "multiple": false,
5991
- "type": "option"
5992
6045
  }
5993
6046
  },
5994
6047
  "hasDynamicHelp": false,
5995
6048
  "hiddenAliases": [],
5996
- "id": "tenant:env:set_all",
6049
+ "id": "tenant:cluster:get",
5997
6050
  "pluginAlias": "@xano/cli",
5998
6051
  "pluginName": "@xano/cli",
5999
6052
  "pluginType": "core",
@@ -6004,24 +6057,18 @@
6004
6057
  "dist",
6005
6058
  "commands",
6006
6059
  "tenant",
6007
- "env",
6008
- "set_all",
6060
+ "cluster",
6061
+ "get",
6009
6062
  "index.js"
6010
6063
  ]
6011
6064
  },
6012
- "tenant:cluster:edit": {
6065
+ "tenant:cluster:list": {
6013
6066
  "aliases": [],
6014
- "args": {
6015
- "cluster_id": {
6016
- "description": "Cluster ID to edit",
6017
- "name": "cluster_id",
6018
- "required": true
6019
- }
6020
- },
6021
- "description": "Update an existing tenant cluster",
6067
+ "args": {},
6068
+ "description": "List all tenant clusters",
6022
6069
  "examples": [
6023
- "$ 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",
6024
- "$ xano tenant cluster edit 1 --name \"eu-west\" --description \"\" --domain \"\" --type run -o json"
6070
+ "$ xano tenant cluster list\nTenant clusters:\n - us-east-1 (standard) [ID: 1]\n - eu-west-1 (run) [ID: 2]\n",
6071
+ "$ xano tenant cluster list --output json"
6025
6072
  ],
6026
6073
  "flags": {
6027
6074
  "profile": {
@@ -6043,32 +6090,6 @@
6043
6090
  "allowNo": false,
6044
6091
  "type": "boolean"
6045
6092
  },
6046
- "description": {
6047
- "char": "d",
6048
- "description": "Cluster description",
6049
- "name": "description",
6050
- "required": true,
6051
- "hasDynamicHelp": false,
6052
- "multiple": false,
6053
- "type": "option"
6054
- },
6055
- "domain": {
6056
- "description": "Custom domain for the cluster",
6057
- "name": "domain",
6058
- "required": true,
6059
- "hasDynamicHelp": false,
6060
- "multiple": false,
6061
- "type": "option"
6062
- },
6063
- "name": {
6064
- "char": "n",
6065
- "description": "Cluster name",
6066
- "name": "name",
6067
- "required": true,
6068
- "hasDynamicHelp": false,
6069
- "multiple": false,
6070
- "type": "option"
6071
- },
6072
6093
  "output": {
6073
6094
  "char": "o",
6074
6095
  "description": "Output format",
@@ -6082,23 +6103,11 @@
6082
6103
  "json"
6083
6104
  ],
6084
6105
  "type": "option"
6085
- },
6086
- "type": {
6087
- "description": "Cluster type",
6088
- "name": "type",
6089
- "required": true,
6090
- "hasDynamicHelp": false,
6091
- "multiple": false,
6092
- "options": [
6093
- "standard",
6094
- "run"
6095
- ],
6096
- "type": "option"
6097
6106
  }
6098
6107
  },
6099
6108
  "hasDynamicHelp": false,
6100
6109
  "hiddenAliases": [],
6101
- "id": "tenant:cluster:edit",
6110
+ "id": "tenant:cluster:list",
6102
6111
  "pluginAlias": "@xano/cli",
6103
6112
  "pluginName": "@xano/cli",
6104
6113
  "pluginType": "core",
@@ -6110,11 +6119,11 @@
6110
6119
  "commands",
6111
6120
  "tenant",
6112
6121
  "cluster",
6113
- "edit",
6122
+ "list",
6114
6123
  "index.js"
6115
6124
  ]
6116
6125
  },
6117
- "tenant:license:set": {
6126
+ "tenant:env:delete": {
6118
6127
  "aliases": [],
6119
6128
  "args": {
6120
6129
  "tenant_name": {
@@ -6123,12 +6132,11 @@
6123
6132
  "required": true
6124
6133
  }
6125
6134
  },
6126
- "description": "Set/update the license for a tenant",
6135
+ "description": "Delete an environment variable from a tenant",
6127
6136
  "examples": [
6128
- "$ xano tenant license set my-tenant\nReads from license_my-tenant.yaml\n",
6129
- "$ xano tenant license set my-tenant --file ./license.yaml",
6130
- "$ xano tenant license set my-tenant --value 'key: value'",
6131
- "$ xano tenant license set my-tenant -o json"
6137
+ "$ xano tenant env delete my-tenant --name DATABASE_URL\nAre you sure you want to delete environment variable 'DATABASE_URL' from tenant my-tenant? (y/N) y\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
6138
+ "$ xano tenant env delete my-tenant --name DATABASE_URL --force\nEnvironment variable 'DATABASE_URL' deleted from tenant my-tenant\n",
6139
+ "$ xano tenant env delete my-tenant --name DATABASE_URL -f -w 5 -o json"
6132
6140
  ],
6133
6141
  "flags": {
6134
6142
  "profile": {
@@ -6150,24 +6158,19 @@
6150
6158
  "allowNo": false,
6151
6159
  "type": "boolean"
6152
6160
  },
6153
- "clean": {
6154
- "description": "Remove the source file after successful upload",
6155
- "exclusive": [
6156
- "value"
6157
- ],
6158
- "name": "clean",
6161
+ "force": {
6162
+ "char": "f",
6163
+ "description": "Skip confirmation prompt",
6164
+ "name": "force",
6159
6165
  "required": false,
6160
6166
  "allowNo": false,
6161
6167
  "type": "boolean"
6162
6168
  },
6163
- "file": {
6164
- "char": "f",
6165
- "description": "Path to license file (default: license_<tenant_name>.yaml)",
6166
- "exclusive": [
6167
- "value"
6168
- ],
6169
- "name": "file",
6170
- "required": false,
6169
+ "name": {
6170
+ "char": "n",
6171
+ "description": "Environment variable name",
6172
+ "name": "name",
6173
+ "required": true,
6171
6174
  "hasDynamicHelp": false,
6172
6175
  "multiple": false,
6173
6176
  "type": "option"
@@ -6186,18 +6189,6 @@
6186
6189
  ],
6187
6190
  "type": "option"
6188
6191
  },
6189
- "value": {
6190
- "description": "Inline license value",
6191
- "exclusive": [
6192
- "file",
6193
- "clean"
6194
- ],
6195
- "name": "value",
6196
- "required": false,
6197
- "hasDynamicHelp": false,
6198
- "multiple": false,
6199
- "type": "option"
6200
- },
6201
6192
  "workspace": {
6202
6193
  "char": "w",
6203
6194
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6210,7 +6201,7 @@
6210
6201
  },
6211
6202
  "hasDynamicHelp": false,
6212
6203
  "hiddenAliases": [],
6213
- "id": "tenant:license:set",
6204
+ "id": "tenant:env:delete",
6214
6205
  "pluginAlias": "@xano/cli",
6215
6206
  "pluginName": "@xano/cli",
6216
6207
  "pluginType": "core",
@@ -6221,29 +6212,24 @@
6221
6212
  "dist",
6222
6213
  "commands",
6223
6214
  "tenant",
6224
- "license",
6225
- "set",
6215
+ "env",
6216
+ "delete",
6226
6217
  "index.js"
6227
6218
  ]
6228
6219
  },
6229
- "workspace:git:pull": {
6220
+ "tenant:env:get": {
6230
6221
  "aliases": [],
6231
6222
  "args": {
6232
- "directory": {
6233
- "description": "Output directory for imported files",
6234
- "name": "directory",
6223
+ "tenant_name": {
6224
+ "description": "Tenant name",
6225
+ "name": "tenant_name",
6235
6226
  "required": true
6236
6227
  }
6237
6228
  },
6238
- "description": "Pull XanoScript files from a git repository into a local directory",
6229
+ "description": "Get a single environment variable for a tenant",
6239
6230
  "examples": [
6240
- "$ xano workspace git pull ./output -r https://github.com/owner/repo",
6241
- "$ xano workspace git pull ./output -r https://github.com/owner/repo/tree/main/path/to/dir",
6242
- "$ xano workspace git pull ./output -r https://github.com/owner/repo/blob/main/path/to/file.xs",
6243
- "$ xano workspace git pull ./output -r git@github.com:owner/repo.git",
6244
- "$ xano workspace git pull ./output -r https://github.com/owner/private-repo -t ghp_xxx",
6245
- "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo/-/tree/master/path",
6246
- "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo -b main"
6231
+ "$ xano tenant env get my-tenant --name DATABASE_URL\npostgres://localhost:5432/mydb\n",
6232
+ "$ xano tenant env get my-tenant --name DATABASE_URL -w 5 -o json"
6247
6233
  ],
6248
6234
  "flags": {
6249
6235
  "profile": {
@@ -6265,37 +6251,33 @@
6265
6251
  "allowNo": false,
6266
6252
  "type": "boolean"
6267
6253
  },
6268
- "branch": {
6269
- "char": "b",
6270
- "description": "Branch, tag, or ref to fetch (defaults to repository default branch)",
6271
- "name": "branch",
6272
- "required": false,
6254
+ "name": {
6255
+ "char": "n",
6256
+ "description": "Environment variable name",
6257
+ "name": "name",
6258
+ "required": true,
6273
6259
  "hasDynamicHelp": false,
6274
6260
  "multiple": false,
6275
6261
  "type": "option"
6276
6262
  },
6277
- "path": {
6278
- "description": "Subdirectory within the repo to import from",
6279
- "name": "path",
6263
+ "output": {
6264
+ "char": "o",
6265
+ "description": "Output format",
6266
+ "name": "output",
6280
6267
  "required": false,
6268
+ "default": "summary",
6281
6269
  "hasDynamicHelp": false,
6282
6270
  "multiple": false,
6271
+ "options": [
6272
+ "summary",
6273
+ "json"
6274
+ ],
6283
6275
  "type": "option"
6284
6276
  },
6285
- "repo": {
6286
- "char": "r",
6287
- "description": "Git repository URL (GitHub HTTPS, SSH, or any git URL)",
6288
- "name": "repo",
6289
- "required": true,
6290
- "hasDynamicHelp": false,
6291
- "multiple": false,
6292
- "type": "option"
6293
- },
6294
- "token": {
6295
- "char": "t",
6296
- "description": "Personal access token for private repos (falls back to GITHUB_TOKEN env var)",
6297
- "env": "GITHUB_TOKEN",
6298
- "name": "token",
6277
+ "workspace": {
6278
+ "char": "w",
6279
+ "description": "Workspace ID (uses profile workspace if not provided)",
6280
+ "name": "workspace",
6299
6281
  "required": false,
6300
6282
  "hasDynamicHelp": false,
6301
6283
  "multiple": false,
@@ -6304,7 +6286,7 @@
6304
6286
  },
6305
6287
  "hasDynamicHelp": false,
6306
6288
  "hiddenAliases": [],
6307
- "id": "workspace:git:pull",
6289
+ "id": "tenant:env:get",
6308
6290
  "pluginAlias": "@xano/cli",
6309
6291
  "pluginName": "@xano/cli",
6310
6292
  "pluginType": "core",
@@ -6314,25 +6296,27 @@
6314
6296
  "relativePath": [
6315
6297
  "dist",
6316
6298
  "commands",
6317
- "workspace",
6318
- "git",
6319
- "pull",
6299
+ "tenant",
6300
+ "env",
6301
+ "get",
6320
6302
  "index.js"
6321
6303
  ]
6322
6304
  },
6323
- "tenant:backup:create": {
6305
+ "tenant:env:get_all": {
6324
6306
  "aliases": [],
6325
6307
  "args": {
6326
6308
  "tenant_name": {
6327
- "description": "Tenant name to back up",
6309
+ "description": "Tenant name",
6328
6310
  "name": "tenant_name",
6329
6311
  "required": true
6330
6312
  }
6331
6313
  },
6332
- "description": "Create a backup for a tenant",
6314
+ "description": "Get all environment variables for a tenant and save to a YAML file",
6333
6315
  "examples": [
6334
- "$ xano tenant backup create t1234-abcd-xyz1 --description \"Pre-deploy backup\"\nCreated backup #15 for tenant t1234-abcd-xyz1\n",
6335
- "$ xano tenant backup create t1234-abcd-xyz1 -d \"Daily backup\" -o json"
6316
+ "$ xano tenant env get_all my-tenant\nEnvironment variables saved to env_my-tenant.yaml\n",
6317
+ "$ xano tenant env get_all my-tenant --file ./my-env.yaml",
6318
+ "$ xano tenant env get_all my-tenant --view",
6319
+ "$ xano tenant env get_all my-tenant -o json"
6336
6320
  ],
6337
6321
  "flags": {
6338
6322
  "profile": {
@@ -6354,12 +6338,11 @@
6354
6338
  "allowNo": false,
6355
6339
  "type": "boolean"
6356
6340
  },
6357
- "description": {
6358
- "char": "d",
6359
- "description": "Backup description",
6360
- "name": "description",
6341
+ "file": {
6342
+ "char": "f",
6343
+ "description": "Output file path (default: env_<tenant_name>.yaml)",
6344
+ "name": "file",
6361
6345
  "required": false,
6362
- "default": "",
6363
6346
  "hasDynamicHelp": false,
6364
6347
  "multiple": false,
6365
6348
  "type": "option"
@@ -6378,6 +6361,13 @@
6378
6361
  ],
6379
6362
  "type": "option"
6380
6363
  },
6364
+ "view": {
6365
+ "description": "Print environment variables to stdout instead of saving to file",
6366
+ "name": "view",
6367
+ "required": false,
6368
+ "allowNo": false,
6369
+ "type": "boolean"
6370
+ },
6381
6371
  "workspace": {
6382
6372
  "char": "w",
6383
6373
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6390,7 +6380,7 @@
6390
6380
  },
6391
6381
  "hasDynamicHelp": false,
6392
6382
  "hiddenAliases": [],
6393
- "id": "tenant:backup:create",
6383
+ "id": "tenant:env:get_all",
6394
6384
  "pluginAlias": "@xano/cli",
6395
6385
  "pluginName": "@xano/cli",
6396
6386
  "pluginType": "core",
@@ -6401,25 +6391,24 @@
6401
6391
  "dist",
6402
6392
  "commands",
6403
6393
  "tenant",
6404
- "backup",
6405
- "create",
6394
+ "env",
6395
+ "get_all",
6406
6396
  "index.js"
6407
6397
  ]
6408
6398
  },
6409
- "tenant:backup:delete": {
6399
+ "tenant:env:set": {
6410
6400
  "aliases": [],
6411
6401
  "args": {
6412
6402
  "tenant_name": {
6413
- "description": "Tenant name that owns the backup",
6403
+ "description": "Tenant name",
6414
6404
  "name": "tenant_name",
6415
6405
  "required": true
6416
6406
  }
6417
6407
  },
6418
- "description": "Delete a tenant backup permanently. This action cannot be undone.",
6408
+ "description": "Set (create or update) an environment variable for a tenant",
6419
6409
  "examples": [
6420
- "$ 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",
6421
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 --force",
6422
- "$ xano tenant backup delete t1234-abcd-xyz1 --backup_id 10 -o json"
6410
+ "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb\nEnvironment variable 'DATABASE_URL' set for tenant my-tenant\n",
6411
+ "$ xano tenant env set my-tenant --name DATABASE_URL --value postgres://localhost:5432/mydb -w 5 -o json"
6423
6412
  ],
6424
6413
  "flags": {
6425
6414
  "profile": {
@@ -6441,22 +6430,15 @@
6441
6430
  "allowNo": false,
6442
6431
  "type": "boolean"
6443
6432
  },
6444
- "backup_id": {
6445
- "description": "Backup ID to delete",
6446
- "name": "backup_id",
6433
+ "name": {
6434
+ "char": "n",
6435
+ "description": "Environment variable name",
6436
+ "name": "name",
6447
6437
  "required": true,
6448
6438
  "hasDynamicHelp": false,
6449
6439
  "multiple": false,
6450
6440
  "type": "option"
6451
6441
  },
6452
- "force": {
6453
- "char": "f",
6454
- "description": "Skip confirmation prompt",
6455
- "name": "force",
6456
- "required": false,
6457
- "allowNo": false,
6458
- "type": "boolean"
6459
- },
6460
6442
  "output": {
6461
6443
  "char": "o",
6462
6444
  "description": "Output format",
@@ -6471,6 +6453,14 @@
6471
6453
  ],
6472
6454
  "type": "option"
6473
6455
  },
6456
+ "value": {
6457
+ "description": "Environment variable value",
6458
+ "name": "value",
6459
+ "required": true,
6460
+ "hasDynamicHelp": false,
6461
+ "multiple": false,
6462
+ "type": "option"
6463
+ },
6474
6464
  "workspace": {
6475
6465
  "char": "w",
6476
6466
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6483,7 +6473,7 @@
6483
6473
  },
6484
6474
  "hasDynamicHelp": false,
6485
6475
  "hiddenAliases": [],
6486
- "id": "tenant:backup:delete",
6476
+ "id": "tenant:env:set",
6487
6477
  "pluginAlias": "@xano/cli",
6488
6478
  "pluginName": "@xano/cli",
6489
6479
  "pluginType": "core",
@@ -6494,12 +6484,12 @@
6494
6484
  "dist",
6495
6485
  "commands",
6496
6486
  "tenant",
6497
- "backup",
6498
- "delete",
6487
+ "env",
6488
+ "set",
6499
6489
  "index.js"
6500
6490
  ]
6501
6491
  },
6502
- "tenant:license:get": {
6492
+ "tenant:env:list": {
6503
6493
  "aliases": [],
6504
6494
  "args": {
6505
6495
  "tenant_name": {
@@ -6508,12 +6498,10 @@
6508
6498
  "required": true
6509
6499
  }
6510
6500
  },
6511
- "description": "Get the license for a tenant",
6501
+ "description": "List environment variable keys for a tenant",
6512
6502
  "examples": [
6513
- "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6514
- "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6515
- "$ xano tenant license get my-tenant --view",
6516
- "$ xano tenant license get my-tenant -o json"
6503
+ "$ xano tenant env list my-tenant\nEnvironment variables for tenant my-tenant:\n - DATABASE_URL\n - API_KEY\n - SECRET_TOKEN\n",
6504
+ "$ xano tenant env list my-tenant -w 5 -o json"
6517
6505
  ],
6518
6506
  "flags": {
6519
6507
  "profile": {
@@ -6535,15 +6523,6 @@
6535
6523
  "allowNo": false,
6536
6524
  "type": "boolean"
6537
6525
  },
6538
- "file": {
6539
- "char": "f",
6540
- "description": "Output file path (default: license_<tenant_name>.yaml)",
6541
- "name": "file",
6542
- "required": false,
6543
- "hasDynamicHelp": false,
6544
- "multiple": false,
6545
- "type": "option"
6546
- },
6547
6526
  "output": {
6548
6527
  "char": "o",
6549
6528
  "description": "Output format",
@@ -6558,13 +6537,6 @@
6558
6537
  ],
6559
6538
  "type": "option"
6560
6539
  },
6561
- "view": {
6562
- "description": "Print license to stdout instead of saving to file",
6563
- "name": "view",
6564
- "required": false,
6565
- "allowNo": false,
6566
- "type": "boolean"
6567
- },
6568
6540
  "workspace": {
6569
6541
  "char": "w",
6570
6542
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6577,7 +6549,7 @@
6577
6549
  },
6578
6550
  "hasDynamicHelp": false,
6579
6551
  "hiddenAliases": [],
6580
- "id": "tenant:license:get",
6552
+ "id": "tenant:env:list",
6581
6553
  "pluginAlias": "@xano/cli",
6582
6554
  "pluginName": "@xano/cli",
6583
6555
  "pluginType": "core",
@@ -6588,24 +6560,25 @@
6588
6560
  "dist",
6589
6561
  "commands",
6590
6562
  "tenant",
6591
- "license",
6592
- "get",
6563
+ "env",
6564
+ "list",
6593
6565
  "index.js"
6594
6566
  ]
6595
6567
  },
6596
- "tenant:backup:import": {
6568
+ "tenant:env:set_all": {
6597
6569
  "aliases": [],
6598
6570
  "args": {
6599
6571
  "tenant_name": {
6600
- "description": "Tenant name to import backup into",
6572
+ "description": "Tenant name",
6601
6573
  "name": "tenant_name",
6602
6574
  "required": true
6603
6575
  }
6604
6576
  },
6605
- "description": "Import a backup file into a tenant",
6577
+ "description": "Set all environment variables for a tenant from a YAML file (replaces all existing)",
6606
6578
  "examples": [
6607
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz\nImported backup as #15 for tenant t1234-abcd-xyz1\n",
6608
- "$ xano tenant backup import t1234-abcd-xyz1 --file ./my-backup.tar.gz --description \"Restored from production\" -o json"
6579
+ "$ xano tenant env set_all my-tenant\nReads from env_my-tenant.yaml\n",
6580
+ "$ xano tenant env set_all my-tenant --file ./my-env.yaml",
6581
+ "$ xano tenant env set_all my-tenant -o json"
6609
6582
  ],
6610
6583
  "flags": {
6611
6584
  "profile": {
@@ -6627,21 +6600,18 @@
6627
6600
  "allowNo": false,
6628
6601
  "type": "boolean"
6629
6602
  },
6630
- "description": {
6631
- "char": "d",
6632
- "description": "Backup description",
6633
- "name": "description",
6603
+ "clean": {
6604
+ "description": "Remove the source file after successful upload",
6605
+ "name": "clean",
6634
6606
  "required": false,
6635
- "default": "",
6636
- "hasDynamicHelp": false,
6637
- "multiple": false,
6638
- "type": "option"
6607
+ "allowNo": false,
6608
+ "type": "boolean"
6639
6609
  },
6640
6610
  "file": {
6641
6611
  "char": "f",
6642
- "description": "Path to the backup file (.tar.gz)",
6612
+ "description": "Path to env file (default: env_<tenant_name>.yaml)",
6643
6613
  "name": "file",
6644
- "required": true,
6614
+ "required": false,
6645
6615
  "hasDynamicHelp": false,
6646
6616
  "multiple": false,
6647
6617
  "type": "option"
@@ -6672,7 +6642,7 @@
6672
6642
  },
6673
6643
  "hasDynamicHelp": false,
6674
6644
  "hiddenAliases": [],
6675
- "id": "tenant:backup:import",
6645
+ "id": "tenant:env:set_all",
6676
6646
  "pluginAlias": "@xano/cli",
6677
6647
  "pluginName": "@xano/cli",
6678
6648
  "pluginType": "core",
@@ -6683,24 +6653,26 @@
6683
6653
  "dist",
6684
6654
  "commands",
6685
6655
  "tenant",
6686
- "backup",
6687
- "import",
6656
+ "env",
6657
+ "set_all",
6688
6658
  "index.js"
6689
6659
  ]
6690
6660
  },
6691
- "tenant:backup:list": {
6661
+ "tenant:license:set": {
6692
6662
  "aliases": [],
6693
6663
  "args": {
6694
6664
  "tenant_name": {
6695
- "description": "Tenant name to list backups for",
6665
+ "description": "Tenant name",
6696
6666
  "name": "tenant_name",
6697
6667
  "required": true
6698
6668
  }
6699
6669
  },
6700
- "description": "List backups for a tenant",
6670
+ "description": "Set/update the license for a tenant",
6701
6671
  "examples": [
6702
- "$ 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",
6703
- "$ xano tenant backup list t1234-abcd-xyz1 -o json"
6672
+ "$ xano tenant license set my-tenant\nReads from license_my-tenant.yaml\n",
6673
+ "$ xano tenant license set my-tenant --file ./license.yaml",
6674
+ "$ xano tenant license set my-tenant --value 'key: value'",
6675
+ "$ xano tenant license set my-tenant -o json"
6704
6676
  ],
6705
6677
  "flags": {
6706
6678
  "profile": {
@@ -6722,6 +6694,28 @@
6722
6694
  "allowNo": false,
6723
6695
  "type": "boolean"
6724
6696
  },
6697
+ "clean": {
6698
+ "description": "Remove the source file after successful upload",
6699
+ "exclusive": [
6700
+ "value"
6701
+ ],
6702
+ "name": "clean",
6703
+ "required": false,
6704
+ "allowNo": false,
6705
+ "type": "boolean"
6706
+ },
6707
+ "file": {
6708
+ "char": "f",
6709
+ "description": "Path to license file (default: license_<tenant_name>.yaml)",
6710
+ "exclusive": [
6711
+ "value"
6712
+ ],
6713
+ "name": "file",
6714
+ "required": false,
6715
+ "hasDynamicHelp": false,
6716
+ "multiple": false,
6717
+ "type": "option"
6718
+ },
6725
6719
  "output": {
6726
6720
  "char": "o",
6727
6721
  "description": "Output format",
@@ -6736,11 +6730,14 @@
6736
6730
  ],
6737
6731
  "type": "option"
6738
6732
  },
6739
- "page": {
6740
- "description": "Page number for pagination",
6741
- "name": "page",
6733
+ "value": {
6734
+ "description": "Inline license value",
6735
+ "exclusive": [
6736
+ "file",
6737
+ "clean"
6738
+ ],
6739
+ "name": "value",
6742
6740
  "required": false,
6743
- "default": 1,
6744
6741
  "hasDynamicHelp": false,
6745
6742
  "multiple": false,
6746
6743
  "type": "option"
@@ -6757,7 +6754,7 @@
6757
6754
  },
6758
6755
  "hasDynamicHelp": false,
6759
6756
  "hiddenAliases": [],
6760
- "id": "tenant:backup:list",
6757
+ "id": "tenant:license:set",
6761
6758
  "pluginAlias": "@xano/cli",
6762
6759
  "pluginName": "@xano/cli",
6763
6760
  "pluginType": "core",
@@ -6768,25 +6765,29 @@
6768
6765
  "dist",
6769
6766
  "commands",
6770
6767
  "tenant",
6771
- "backup",
6772
- "list",
6768
+ "license",
6769
+ "set",
6773
6770
  "index.js"
6774
6771
  ]
6775
6772
  },
6776
- "tenant:backup:export": {
6773
+ "workspace:git:pull": {
6777
6774
  "aliases": [],
6778
6775
  "args": {
6779
- "tenant_name": {
6780
- "description": "Tenant name to export backup from",
6781
- "name": "tenant_name",
6776
+ "directory": {
6777
+ "description": "Output directory for imported files",
6778
+ "name": "directory",
6782
6779
  "required": true
6783
6780
  }
6784
6781
  },
6785
- "description": "Export (download) a tenant backup to a local file",
6782
+ "description": "Pull XanoScript files from a git repository into a local directory",
6786
6783
  "examples": [
6787
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10\nDownloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz\n",
6788
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 --output ./backups/my-backup.tar.gz",
6789
- "$ xano tenant backup export t1234-abcd-xyz1 --backup_id 10 -o json"
6784
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo",
6785
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo/tree/main/path/to/dir",
6786
+ "$ xano workspace git pull ./output -r https://github.com/owner/repo/blob/main/path/to/file.xs",
6787
+ "$ xano workspace git pull ./output -r git@github.com:owner/repo.git",
6788
+ "$ xano workspace git pull ./output -r https://github.com/owner/private-repo -t ghp_xxx",
6789
+ "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo/-/tree/master/path",
6790
+ "$ xano workspace git pull ./output -r https://gitlab.com/owner/repo -b main"
6790
6791
  ],
6791
6792
  "flags": {
6792
6793
  "profile": {
@@ -6808,40 +6809,37 @@
6808
6809
  "allowNo": false,
6809
6810
  "type": "boolean"
6810
6811
  },
6811
- "backup_id": {
6812
- "description": "Backup ID to export",
6813
- "name": "backup_id",
6814
- "required": true,
6812
+ "branch": {
6813
+ "char": "b",
6814
+ "description": "Branch, tag, or ref to fetch (defaults to repository default branch)",
6815
+ "name": "branch",
6816
+ "required": false,
6815
6817
  "hasDynamicHelp": false,
6816
6818
  "multiple": false,
6817
6819
  "type": "option"
6818
6820
  },
6819
- "format": {
6820
- "char": "o",
6821
- "description": "Output format",
6822
- "name": "format",
6821
+ "path": {
6822
+ "description": "Subdirectory within the repo to import from",
6823
+ "name": "path",
6823
6824
  "required": false,
6824
- "default": "summary",
6825
6825
  "hasDynamicHelp": false,
6826
6826
  "multiple": false,
6827
- "options": [
6828
- "summary",
6829
- "json"
6830
- ],
6831
6827
  "type": "option"
6832
6828
  },
6833
- "output": {
6834
- "description": "Output file path (defaults to ./tenant-{name}-backup-{backup_id}.tar.gz)",
6835
- "name": "output",
6836
- "required": false,
6829
+ "repo": {
6830
+ "char": "r",
6831
+ "description": "Git repository URL (GitHub HTTPS, SSH, or any git URL)",
6832
+ "name": "repo",
6833
+ "required": true,
6837
6834
  "hasDynamicHelp": false,
6838
6835
  "multiple": false,
6839
6836
  "type": "option"
6840
6837
  },
6841
- "workspace": {
6842
- "char": "w",
6843
- "description": "Workspace ID (uses profile workspace if not provided)",
6844
- "name": "workspace",
6838
+ "token": {
6839
+ "char": "t",
6840
+ "description": "Personal access token for private repos (falls back to GITHUB_TOKEN env var)",
6841
+ "env": "GITHUB_TOKEN",
6842
+ "name": "token",
6845
6843
  "required": false,
6846
6844
  "hasDynamicHelp": false,
6847
6845
  "multiple": false,
@@ -6850,7 +6848,7 @@
6850
6848
  },
6851
6849
  "hasDynamicHelp": false,
6852
6850
  "hiddenAliases": [],
6853
- "id": "tenant:backup:export",
6851
+ "id": "workspace:git:pull",
6854
6852
  "pluginAlias": "@xano/cli",
6855
6853
  "pluginName": "@xano/cli",
6856
6854
  "pluginType": "core",
@@ -6860,25 +6858,27 @@
6860
6858
  "relativePath": [
6861
6859
  "dist",
6862
6860
  "commands",
6863
- "tenant",
6864
- "backup",
6865
- "export",
6861
+ "workspace",
6862
+ "git",
6863
+ "pull",
6866
6864
  "index.js"
6867
6865
  ]
6868
6866
  },
6869
- "tenant:backup:restore": {
6867
+ "tenant:license:get": {
6870
6868
  "aliases": [],
6871
6869
  "args": {
6872
6870
  "tenant_name": {
6873
- "description": "Tenant name to restore",
6871
+ "description": "Tenant name",
6874
6872
  "name": "tenant_name",
6875
6873
  "required": true
6876
6874
  }
6877
6875
  },
6878
- "description": "Restore a tenant from a backup. This replaces the current tenant data.",
6876
+ "description": "Get the license for a tenant",
6879
6877
  "examples": [
6880
- "$ 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",
6881
- "$ xano tenant backup restore t1234-abcd-xyz1 --backup_id 10 --force -o json"
6878
+ "$ xano tenant license get my-tenant\nLicense saved to license_my-tenant.yaml\n",
6879
+ "$ xano tenant license get my-tenant --file ./my-license.yaml\nLicense saved to my-license.yaml\n",
6880
+ "$ xano tenant license get my-tenant --view",
6881
+ "$ xano tenant license get my-tenant -o json"
6882
6882
  ],
6883
6883
  "flags": {
6884
6884
  "profile": {
@@ -6900,22 +6900,15 @@
6900
6900
  "allowNo": false,
6901
6901
  "type": "boolean"
6902
6902
  },
6903
- "backup_id": {
6904
- "description": "Backup ID to restore from",
6905
- "name": "backup_id",
6906
- "required": true,
6903
+ "file": {
6904
+ "char": "f",
6905
+ "description": "Output file path (default: license_<tenant_name>.yaml)",
6906
+ "name": "file",
6907
+ "required": false,
6907
6908
  "hasDynamicHelp": false,
6908
6909
  "multiple": false,
6909
6910
  "type": "option"
6910
6911
  },
6911
- "force": {
6912
- "char": "f",
6913
- "description": "Skip confirmation prompt",
6914
- "name": "force",
6915
- "required": false,
6916
- "allowNo": false,
6917
- "type": "boolean"
6918
- },
6919
6912
  "output": {
6920
6913
  "char": "o",
6921
6914
  "description": "Output format",
@@ -6930,6 +6923,13 @@
6930
6923
  ],
6931
6924
  "type": "option"
6932
6925
  },
6926
+ "view": {
6927
+ "description": "Print license to stdout instead of saving to file",
6928
+ "name": "view",
6929
+ "required": false,
6930
+ "allowNo": false,
6931
+ "type": "boolean"
6932
+ },
6933
6933
  "workspace": {
6934
6934
  "char": "w",
6935
6935
  "description": "Workspace ID (uses profile workspace if not provided)",
@@ -6942,7 +6942,7 @@
6942
6942
  },
6943
6943
  "hasDynamicHelp": false,
6944
6944
  "hiddenAliases": [],
6945
- "id": "tenant:backup:restore",
6945
+ "id": "tenant:license:get",
6946
6946
  "pluginAlias": "@xano/cli",
6947
6947
  "pluginName": "@xano/cli",
6948
6948
  "pluginType": "core",
@@ -6953,8 +6953,8 @@
6953
6953
  "dist",
6954
6954
  "commands",
6955
6955
  "tenant",
6956
- "backup",
6957
- "restore",
6956
+ "license",
6957
+ "get",
6958
6958
  "index.js"
6959
6959
  ]
6960
6960
  },
@@ -7149,5 +7149,5 @@
7149
7149
  ]
7150
7150
  }
7151
7151
  },
7152
- "version": "0.0.80-beta.0"
7152
+ "version": "0.0.81"
7153
7153
  }