@xano/developer-mcp 1.0.59 → 1.0.61
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.
- package/README.md +8 -1
- package/dist/cli_docs/index.js +16 -1
- package/dist/cli_docs/topics/auth.d.ts +2 -0
- package/dist/cli_docs/topics/auth.js +62 -0
- package/dist/cli_docs/topics/branch.js +1 -1
- package/dist/cli_docs/topics/function.js +9 -3
- package/dist/cli_docs/topics/integration.js +6 -1
- package/dist/cli_docs/topics/platform.d.ts +2 -0
- package/dist/cli_docs/topics/platform.js +41 -0
- package/dist/cli_docs/topics/profile.js +66 -31
- package/dist/cli_docs/topics/release.d.ts +2 -0
- package/dist/cli_docs/topics/release.js +215 -0
- package/dist/cli_docs/topics/run.js +1 -1
- package/dist/cli_docs/topics/start.js +20 -13
- package/dist/cli_docs/topics/static_host.js +1 -1
- package/dist/cli_docs/topics/tenant.d.ts +2 -0
- package/dist/cli_docs/topics/tenant.js +472 -0
- package/dist/cli_docs/topics/unit_test.d.ts +2 -0
- package/dist/cli_docs/topics/unit_test.js +88 -0
- package/dist/cli_docs/topics/update.d.ts +2 -0
- package/dist/cli_docs/topics/update.js +29 -0
- package/dist/cli_docs/topics/workflow_test.d.ts +2 -0
- package/dist/cli_docs/topics/workflow_test.js +119 -0
- package/dist/cli_docs/topics/workspace.js +56 -9
- package/dist/xanoscript_docs/README.md +4 -1
- package/dist/xanoscript_docs/branch.md +10 -0
- package/dist/xanoscript_docs/debugging.md +10 -0
- package/dist/xanoscript_docs/functions.md +1 -1
- package/dist/xanoscript_docs/middleware.md +11 -0
- package/dist/xanoscript_docs/realtime.md +10 -0
- package/dist/xanoscript_docs/schema.md +10 -0
- package/dist/xanoscript_docs/survival.md +1 -1
- package/dist/xanoscript_docs/workspace.md +10 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -500,12 +500,19 @@ Use this tool to understand CLI commands for local development, code synchroniza
|
|
|
500
500
|
| Topic | Description |
|
|
501
501
|
|-------|-------------|
|
|
502
502
|
| `start` | Getting started with the CLI - installation and setup |
|
|
503
|
+
| `auth` | Browser-based OAuth authentication |
|
|
503
504
|
| `profile` | Profile management - credentials and multi-environment setup |
|
|
504
|
-
| `workspace` | Workspace operations - pull/push code sync |
|
|
505
|
+
| `workspace` | Workspace operations - pull/push code sync, git integration |
|
|
505
506
|
| `branch` | Branch management - list, switch, create, and delete branches |
|
|
506
507
|
| `function` | Function management - list, get, create, edit |
|
|
508
|
+
| `release` | Release management - create, export, import, pull, push |
|
|
509
|
+
| `tenant` | Tenant management - CRUD, deployments, env vars, backups, clusters |
|
|
510
|
+
| `unit_test` | Unit test management - list and run unit tests |
|
|
511
|
+
| `workflow_test` | Workflow test management - list, run, and manage workflow tests |
|
|
507
512
|
| `run` | Run API commands - execute code, manage projects/sessions |
|
|
513
|
+
| `platform` | Platform management - list and view platform versions |
|
|
508
514
|
| `static_host` | Static hosting - deploy frontend builds |
|
|
515
|
+
| `update` | Update the CLI to the latest version |
|
|
509
516
|
| `integration` | CLI + Meta API integration guide - when to use each |
|
|
510
517
|
|
|
511
518
|
**Examples:**
|
package/dist/cli_docs/index.js
CHANGED
|
@@ -6,25 +6,39 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { formatDocumentation } from "./format.js";
|
|
8
8
|
// Import all topic documentation
|
|
9
|
+
import { authDoc } from "./topics/auth.js";
|
|
9
10
|
import { startDoc } from "./topics/start.js";
|
|
10
11
|
import { profileDoc } from "./topics/profile.js";
|
|
11
12
|
import { workspaceDoc } from "./topics/workspace.js";
|
|
12
13
|
import { branchDoc } from "./topics/branch.js";
|
|
13
14
|
import { functionDoc } from "./topics/function.js";
|
|
15
|
+
import { releaseDoc } from "./topics/release.js";
|
|
16
|
+
import { tenantDoc } from "./topics/tenant.js";
|
|
17
|
+
import { unitTestDoc } from "./topics/unit_test.js";
|
|
18
|
+
import { workflowTestDoc } from "./topics/workflow_test.js";
|
|
14
19
|
import { runDoc } from "./topics/run.js";
|
|
20
|
+
import { platformDoc } from "./topics/platform.js";
|
|
15
21
|
import { staticHostDoc } from "./topics/static_host.js";
|
|
22
|
+
import { updateDoc } from "./topics/update.js";
|
|
16
23
|
import { integrationDoc } from "./topics/integration.js";
|
|
17
24
|
/**
|
|
18
25
|
* All available documentation topics
|
|
19
26
|
*/
|
|
20
27
|
export const topics = {
|
|
28
|
+
auth: authDoc,
|
|
21
29
|
start: startDoc,
|
|
22
30
|
profile: profileDoc,
|
|
23
31
|
workspace: workspaceDoc,
|
|
24
32
|
branch: branchDoc,
|
|
25
33
|
function: functionDoc,
|
|
34
|
+
release: releaseDoc,
|
|
35
|
+
tenant: tenantDoc,
|
|
36
|
+
unit_test: unitTestDoc,
|
|
37
|
+
workflow_test: workflowTestDoc,
|
|
26
38
|
run: runDoc,
|
|
39
|
+
platform: platformDoc,
|
|
27
40
|
static_host: staticHostDoc,
|
|
41
|
+
update: updateDoc,
|
|
28
42
|
integration: integrationDoc,
|
|
29
43
|
};
|
|
30
44
|
/**
|
|
@@ -72,8 +86,9 @@ ${getTopicDescriptions()}
|
|
|
72
86
|
|
|
73
87
|
## Usage
|
|
74
88
|
- Start with "start" topic for installation and setup
|
|
89
|
+
- Use "auth" or "profile" to understand authentication options
|
|
75
90
|
- Use "integration" to understand when to use CLI vs Meta API
|
|
76
|
-
- Use specific topics (
|
|
91
|
+
- Use specific topics for command reference (workspace, branch, release, tenant, function, run, etc.)`,
|
|
77
92
|
inputSchema: {
|
|
78
93
|
type: "object",
|
|
79
94
|
properties: {
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export const authDoc = {
|
|
2
|
+
topic: "auth",
|
|
3
|
+
title: "Xano CLI - Authentication",
|
|
4
|
+
description: `The \`auth\` command provides browser-based OAuth authentication for the Xano CLI. It opens your browser, lets you log in to your Xano account, and automatically creates a profile with your credentials.
|
|
5
|
+
|
|
6
|
+
## How It Works
|
|
7
|
+
|
|
8
|
+
1. CLI starts a local HTTP server on a random port
|
|
9
|
+
2. Opens your browser to the Xano login page
|
|
10
|
+
3. After login, Xano redirects back to the local server with your token
|
|
11
|
+
4. CLI validates the token, lets you select instance/workspace/branch
|
|
12
|
+
5. Saves the profile to \`~/.xano/credentials.yaml\`
|
|
13
|
+
|
|
14
|
+
The authentication flow has a 5-minute timeout.`,
|
|
15
|
+
ai_hints: `**auth vs profile:wizard:**
|
|
16
|
+
- \`xano auth\` - Browser-based OAuth login (recommended for interactive use)
|
|
17
|
+
- \`xano profile:wizard\` - Token-based interactive setup (requires manually copying token)
|
|
18
|
+
- \`xano profile:create\` - Non-interactive, requires all flags
|
|
19
|
+
|
|
20
|
+
**When to suggest auth:**
|
|
21
|
+
- User is setting up CLI for the first time
|
|
22
|
+
- User doesn't have an access token handy
|
|
23
|
+
- User prefers browser-based login
|
|
24
|
+
|
|
25
|
+
**When to suggest profile:wizard instead:**
|
|
26
|
+
- User already has an access token
|
|
27
|
+
- User is in a headless/SSH environment without browser access
|
|
28
|
+
- User needs non-interactive setup (CI/CD)`,
|
|
29
|
+
related_topics: ["profile", "start"],
|
|
30
|
+
commands: [
|
|
31
|
+
{
|
|
32
|
+
name: "auth",
|
|
33
|
+
description: "Authenticate with Xano via browser login. Opens your browser to log in and automatically creates a CLI profile.",
|
|
34
|
+
usage: "xano auth [options]",
|
|
35
|
+
flags: [
|
|
36
|
+
{ name: "origin", type: "string", required: false, description: "Xano account origin URL (e.g., https://app.xano.com)" },
|
|
37
|
+
{ name: "insecure", short: "k", type: "boolean", required: false, description: "Skip TLS certificate verification (for self-signed certs)" }
|
|
38
|
+
],
|
|
39
|
+
examples: [
|
|
40
|
+
"xano auth",
|
|
41
|
+
"xano auth --origin https://app.xano.com",
|
|
42
|
+
"xano auth -k # for self-signed certificates"
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
workflows: [
|
|
47
|
+
{
|
|
48
|
+
name: "First-Time Setup with Browser Login",
|
|
49
|
+
description: "Set up the CLI using browser-based authentication",
|
|
50
|
+
steps: [
|
|
51
|
+
"Install CLI: `npm install -g @xano/cli`",
|
|
52
|
+
"Run: `xano auth`",
|
|
53
|
+
"Log in via your browser when it opens",
|
|
54
|
+
"Select your instance, workspace, and branch",
|
|
55
|
+
"Verify: `xano profile:me`"
|
|
56
|
+
],
|
|
57
|
+
example: `npm install -g @xano/cli
|
|
58
|
+
xano auth
|
|
59
|
+
xano profile:me`
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
};
|
|
@@ -29,7 +29,7 @@ Branches are identified by their **label** (e.g., "v1", "dev", "staging"), not n
|
|
|
29
29
|
- Most commands need a workspace ID
|
|
30
30
|
- Pass via \`--workspace\` flag or configure in profile
|
|
31
31
|
- Use \`xano workspace:list\` to find workspace IDs`,
|
|
32
|
-
related_topics: ["workspace", "profile", "integration"],
|
|
32
|
+
related_topics: ["workspace", "release", "profile", "integration"],
|
|
33
33
|
commands: [
|
|
34
34
|
{
|
|
35
35
|
name: "branch:list",
|
|
@@ -29,7 +29,8 @@ export const functionDoc = {
|
|
|
29
29
|
{ name: "search", type: "string", required: false, description: "Search by name" },
|
|
30
30
|
{ name: "sort", type: "string", required: false, description: "Sort field" },
|
|
31
31
|
{ name: "order", type: "string", required: false, description: "Sort order: asc, desc" },
|
|
32
|
-
{ name: "include_draft", type: "boolean", required: false, description: "Include draft versions" }
|
|
32
|
+
{ name: "include_draft", type: "boolean", required: false, description: "Include draft versions" },
|
|
33
|
+
{ name: "include_xanoscript", type: "boolean", required: false, description: "Include XanoScript source in output" }
|
|
33
34
|
],
|
|
34
35
|
examples: [
|
|
35
36
|
"xano function:list",
|
|
@@ -81,11 +82,16 @@ export const functionDoc = {
|
|
|
81
82
|
],
|
|
82
83
|
flags: [
|
|
83
84
|
{ name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID" },
|
|
84
|
-
{ name: "file", short: "f", type: "string", required: false, description: "Path to .xs file with updated code" }
|
|
85
|
+
{ name: "file", short: "f", type: "string", required: false, description: "Path to .xs file with updated code" },
|
|
86
|
+
{ name: "stdin", type: "boolean", required: false, description: "Read updated code from stdin" },
|
|
87
|
+
{ name: "edit", type: "boolean", required: false, description: "Open current code in $EDITOR before updating" },
|
|
88
|
+
{ name: "no-publish", type: "boolean", required: false, description: "Save as draft without publishing" }
|
|
85
89
|
],
|
|
86
90
|
examples: [
|
|
87
91
|
"xano function:edit 145",
|
|
88
|
-
"xano function:edit 145 -f ./updated_function.xs"
|
|
92
|
+
"xano function:edit 145 -f ./updated_function.xs",
|
|
93
|
+
"xano function:edit 145 --edit",
|
|
94
|
+
"xano function:edit 145 --no-publish"
|
|
89
95
|
]
|
|
90
96
|
}
|
|
91
97
|
],
|
|
@@ -21,8 +21,13 @@ npm install -g @xano/cli
|
|
|
21
21
|
| Local development | Yes | - |
|
|
22
22
|
| Code sync (pull/push) | Yes | - |
|
|
23
23
|
| Quick function edits | Yes | - |
|
|
24
|
+
| Branch management | Yes | Yes |
|
|
25
|
+
| Release management | Yes | Yes |
|
|
26
|
+
| Tenant management | Yes | Yes |
|
|
27
|
+
| Run unit/workflow tests | Yes | - |
|
|
24
28
|
| Execute XanoScript | Yes | Yes (Run API) |
|
|
25
29
|
| CI/CD automation | Both | Both |
|
|
30
|
+
| Deploy static sites | Yes | - |
|
|
26
31
|
| Programmatic management | - | Yes |
|
|
27
32
|
| Create tables/schemas | - | Yes |
|
|
28
33
|
| Manage API groups | - | Yes |
|
|
@@ -82,7 +87,7 @@ TOKEN=$(xano profile:token)
|
|
|
82
87
|
# Use with Meta API
|
|
83
88
|
curl -H "Authorization: Bearer $TOKEN" https://instance.xano.io/api:meta/workspace
|
|
84
89
|
\`\`\``,
|
|
85
|
-
related_topics: ["start", "profile", "workspace"],
|
|
90
|
+
related_topics: ["start", "auth", "profile", "workspace", "release", "tenant"],
|
|
86
91
|
workflows: [
|
|
87
92
|
{
|
|
88
93
|
name: "Local Development with Version Control",
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export const platformDoc = {
|
|
2
|
+
topic: "platform",
|
|
3
|
+
title: "Xano CLI - Platform Management",
|
|
4
|
+
description: `Platform commands let you view available Xano platform versions. Platforms define the runtime environment for tenants and can be deployed to tenants using \`tenant:deploy_platform\`.`,
|
|
5
|
+
ai_hints: `**Platforms are read-only in the CLI** - you can list and view them but not create/modify.
|
|
6
|
+
|
|
7
|
+
**Use cases:**
|
|
8
|
+
- Check available platform versions before deploying to a tenant
|
|
9
|
+
- Get platform details (version, features, etc.)
|
|
10
|
+
- Used with \`tenant:deploy_platform\` to update a tenant's runtime`,
|
|
11
|
+
related_topics: ["tenant"],
|
|
12
|
+
commands: [
|
|
13
|
+
{
|
|
14
|
+
name: "platform:list",
|
|
15
|
+
description: "List all available platform versions",
|
|
16
|
+
usage: "xano platform:list [options]",
|
|
17
|
+
flags: [
|
|
18
|
+
{ name: "output", short: "o", type: "string", required: false, default: "summary", description: "Output format: summary or json" }
|
|
19
|
+
],
|
|
20
|
+
examples: [
|
|
21
|
+
"xano platform:list",
|
|
22
|
+
"xano platform:list -o json"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "platform:get",
|
|
27
|
+
description: "Get details of a specific platform version",
|
|
28
|
+
usage: "xano platform:get <platform_id> [options]",
|
|
29
|
+
args: [
|
|
30
|
+
{ name: "platform_id", required: true, description: "Platform ID" }
|
|
31
|
+
],
|
|
32
|
+
flags: [
|
|
33
|
+
{ name: "output", short: "o", type: "string", required: false, default: "summary", description: "Output format: summary or json" }
|
|
34
|
+
],
|
|
35
|
+
examples: [
|
|
36
|
+
"xano platform:get 5",
|
|
37
|
+
"xano platform:get 5 -o json"
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
};
|
|
@@ -38,18 +38,28 @@ default: production
|
|
|
38
38
|
**Switching contexts:**
|
|
39
39
|
- Use \`-p <profile>\` flag on any command
|
|
40
40
|
- Or set \`XANO_PROFILE\` environment variable
|
|
41
|
-
- Or use \`profile:set
|
|
42
|
-
|
|
41
|
+
- Or use \`profile:set\` to change default
|
|
42
|
+
|
|
43
|
+
**Alternative auth methods:**
|
|
44
|
+
- \`xano auth\` - Browser-based OAuth login (no token needed)
|
|
45
|
+
- \`xano profile:wizard\` - Interactive token-based setup
|
|
46
|
+
- \`xano profile:create\` - Non-interactive (for CI/CD)`,
|
|
47
|
+
related_topics: ["auth", "start", "integration"],
|
|
43
48
|
commands: [
|
|
44
49
|
{
|
|
45
50
|
name: "profile:wizard",
|
|
46
|
-
description: "Interactive setup wizard for creating a profile",
|
|
47
|
-
usage: "xano profile:wizard",
|
|
48
|
-
|
|
51
|
+
description: "Interactive setup wizard for creating a profile. Prompts for token, instance, workspace, and branch.",
|
|
52
|
+
usage: "xano profile:wizard [options]",
|
|
53
|
+
flags: [
|
|
54
|
+
{ name: "name", short: "n", type: "string", required: false, description: "Profile name (prompted if not provided)" },
|
|
55
|
+
{ name: "origin", short: "o", type: "string", required: false, description: "Xano account origin URL" },
|
|
56
|
+
{ name: "insecure", short: "k", type: "boolean", required: false, description: "Skip TLS certificate verification" }
|
|
57
|
+
],
|
|
58
|
+
examples: ["xano profile:wizard", "xano profile:wizard -n myprofile"]
|
|
49
59
|
},
|
|
50
60
|
{
|
|
51
61
|
name: "profile:create",
|
|
52
|
-
description: "Create a new profile with explicit flags",
|
|
62
|
+
description: "Create a new profile with explicit flags (non-interactive)",
|
|
53
63
|
usage: "xano profile:create <name> -i <instance_origin> -t <token> [options]",
|
|
54
64
|
args: [
|
|
55
65
|
{ name: "name", required: true, description: "Profile name" }
|
|
@@ -57,13 +67,15 @@ default: production
|
|
|
57
67
|
flags: [
|
|
58
68
|
{ name: "instance_origin", short: "i", type: "string", required: true, description: "Xano instance URL" },
|
|
59
69
|
{ name: "access_token", short: "t", type: "string", required: true, description: "Access token" },
|
|
70
|
+
{ name: "account_origin", short: "a", type: "string", required: false, description: "Xano account origin URL" },
|
|
60
71
|
{ name: "workspace", short: "w", type: "string", required: false, description: "Default workspace ID" },
|
|
61
|
-
{ name: "branch", short: "b", type: "string", required: false, description: "Default branch
|
|
62
|
-
{ name: "
|
|
72
|
+
{ name: "branch", short: "b", type: "string", required: false, description: "Default branch label" },
|
|
73
|
+
{ name: "default", type: "boolean", required: false, description: "Set as the default profile" },
|
|
74
|
+
{ name: "insecure", short: "k", type: "boolean", required: false, description: "Skip TLS certificate verification" }
|
|
63
75
|
],
|
|
64
76
|
examples: [
|
|
65
77
|
"xano profile:create production -i https://x8ki.xano.io -t mytoken123",
|
|
66
|
-
"xano profile:create staging -i https://x8ki.xano.io -t mytoken -w 1 -b
|
|
78
|
+
"xano profile:create staging -i https://x8ki.xano.io -t mytoken -w 1 -b dev --default"
|
|
67
79
|
]
|
|
68
80
|
},
|
|
69
81
|
{
|
|
@@ -71,71 +83,94 @@ default: production
|
|
|
71
83
|
description: "List all configured profiles",
|
|
72
84
|
usage: "xano profile:list [--details]",
|
|
73
85
|
flags: [
|
|
74
|
-
{ name: "details", type: "boolean", required: false, description: "Show masked tokens and
|
|
86
|
+
{ name: "details", short: "d", type: "boolean", required: false, description: "Show masked tokens, origins, workspace, branch, and insecure status" }
|
|
75
87
|
],
|
|
76
88
|
examples: ["xano profile:list", "xano profile:list --details"]
|
|
77
89
|
},
|
|
78
90
|
{
|
|
79
91
|
name: "profile:edit",
|
|
80
92
|
description: "Edit an existing profile",
|
|
81
|
-
usage: "xano profile:edit
|
|
93
|
+
usage: "xano profile:edit [name] [options]",
|
|
82
94
|
args: [
|
|
83
|
-
{ name: "name", required:
|
|
95
|
+
{ name: "name", required: false, description: "Profile name to edit (uses default if not provided)" }
|
|
84
96
|
],
|
|
85
97
|
flags: [
|
|
98
|
+
{ name: "access_token", short: "t", type: "string", required: false, description: "Update access token" },
|
|
99
|
+
{ name: "instance_origin", short: "i", type: "string", required: false, description: "Update instance URL" },
|
|
100
|
+
{ name: "account_origin", short: "a", type: "string", required: false, description: "Update account origin URL" },
|
|
86
101
|
{ name: "workspace", short: "w", type: "string", required: false, description: "Set workspace ID" },
|
|
87
|
-
{ name: "branch", short: "b", type: "string", required: false, description: "Set branch
|
|
88
|
-
{ name: "
|
|
102
|
+
{ name: "branch", short: "b", type: "string", required: false, description: "Set branch label" },
|
|
103
|
+
{ name: "insecure", type: "boolean", required: false, description: "Enable insecure mode for self-signed certs" },
|
|
89
104
|
{ name: "remove-workspace", type: "boolean", required: false, description: "Remove workspace setting" },
|
|
90
|
-
{ name: "remove-branch", type: "boolean", required: false, description: "Remove branch setting" }
|
|
105
|
+
{ name: "remove-branch", type: "boolean", required: false, description: "Remove branch setting" },
|
|
106
|
+
{ name: "remove-insecure", type: "boolean", required: false, description: "Remove insecure setting" }
|
|
91
107
|
],
|
|
92
108
|
examples: [
|
|
93
109
|
"xano profile:edit production -w 2",
|
|
94
|
-
"xano profile:edit staging --remove-branch"
|
|
110
|
+
"xano profile:edit staging --remove-branch",
|
|
111
|
+
"xano profile:edit production -t new-token-here"
|
|
95
112
|
]
|
|
96
113
|
},
|
|
97
114
|
{
|
|
98
115
|
name: "profile:delete",
|
|
99
|
-
description: "Delete a profile",
|
|
116
|
+
description: "Delete a profile. Auto-updates default if deleting the current default.",
|
|
100
117
|
usage: "xano profile:delete <name> [--force]",
|
|
101
118
|
args: [
|
|
102
119
|
{ name: "name", required: true, description: "Profile name to delete" }
|
|
103
120
|
],
|
|
104
121
|
flags: [
|
|
105
|
-
{ name: "force", type: "boolean", required: false, description: "Skip confirmation prompt" }
|
|
122
|
+
{ name: "force", short: "f", type: "boolean", required: false, description: "Skip confirmation prompt" }
|
|
106
123
|
],
|
|
107
124
|
examples: ["xano profile:delete old-profile", "xano profile:delete test --force"]
|
|
108
125
|
},
|
|
109
126
|
{
|
|
110
|
-
name: "profile:set
|
|
127
|
+
name: "profile:set",
|
|
111
128
|
description: "Set the default profile",
|
|
112
|
-
usage: "xano profile:set
|
|
129
|
+
usage: "xano profile:set <name>",
|
|
113
130
|
args: [
|
|
114
131
|
{ name: "name", required: true, description: "Profile to set as default" }
|
|
115
132
|
],
|
|
116
|
-
examples: ["xano profile:set
|
|
133
|
+
examples: ["xano profile:set production"]
|
|
117
134
|
},
|
|
118
135
|
{
|
|
119
|
-
name: "profile:get
|
|
120
|
-
description: "
|
|
121
|
-
usage: "xano profile:get
|
|
122
|
-
examples: ["xano profile:get
|
|
136
|
+
name: "profile:get",
|
|
137
|
+
description: "Print the current default profile name",
|
|
138
|
+
usage: "xano profile:get",
|
|
139
|
+
examples: ["xano profile:get"]
|
|
123
140
|
},
|
|
124
141
|
{
|
|
125
142
|
name: "profile:me",
|
|
126
|
-
description: "Display current authenticated user info",
|
|
127
|
-
usage: "xano profile:me [
|
|
128
|
-
|
|
143
|
+
description: "Display current authenticated user info (ID, name, email, instance)",
|
|
144
|
+
usage: "xano profile:me [options]",
|
|
145
|
+
flags: [
|
|
146
|
+
{ name: "output", short: "o", type: "string", required: false, default: "summary", description: "Output format: summary or json" }
|
|
147
|
+
],
|
|
148
|
+
examples: ["xano profile:me", "xano profile:me -p staging", "xano profile:me -o json"]
|
|
129
149
|
},
|
|
130
150
|
{
|
|
131
151
|
name: "profile:token",
|
|
132
|
-
description: "Print the access token (for piping
|
|
133
|
-
usage: "xano profile:token
|
|
152
|
+
description: "Print the access token for the default profile (useful for piping)",
|
|
153
|
+
usage: "xano profile:token",
|
|
134
154
|
examples: [
|
|
135
155
|
"xano profile:token",
|
|
136
156
|
"xano profile:token | pbcopy # macOS",
|
|
137
157
|
"xano profile:token | xclip # Linux"
|
|
138
158
|
]
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: "profile:workspace",
|
|
162
|
+
description: "Print the workspace ID for the default profile",
|
|
163
|
+
usage: "xano profile:workspace",
|
|
164
|
+
examples: ["xano profile:workspace"]
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: "profile:workspace:set",
|
|
168
|
+
description: "Interactively select and set the workspace for a profile",
|
|
169
|
+
usage: "xano profile:workspace:set [-p <profile>]",
|
|
170
|
+
examples: [
|
|
171
|
+
"xano profile:workspace:set",
|
|
172
|
+
"xano profile:workspace:set -p staging"
|
|
173
|
+
]
|
|
139
174
|
}
|
|
140
175
|
],
|
|
141
176
|
workflows: [
|
|
@@ -145,7 +180,7 @@ default: production
|
|
|
145
180
|
steps: [
|
|
146
181
|
"Create production profile: `xano profile:create prod -i <url> -t <token> -b 1`",
|
|
147
182
|
"Create staging profile: `xano profile:create staging -i <url> -t <token> -b 2`",
|
|
148
|
-
"Set default: `xano profile:set
|
|
183
|
+
"Set default: `xano profile:set prod`",
|
|
149
184
|
"Use staging when needed: `xano workspace:pull ./code -p staging`"
|
|
150
185
|
]
|
|
151
186
|
}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
export const releaseDoc = {
|
|
2
|
+
topic: "release",
|
|
3
|
+
title: "Xano CLI - Release Management",
|
|
4
|
+
description: `Release commands let you manage named releases in a Xano workspace. Releases are versioned snapshots of a branch, used for deploying specific versions to tenants.
|
|
5
|
+
|
|
6
|
+
## Key Concepts
|
|
7
|
+
|
|
8
|
+
- **Release**: A named snapshot of a branch at a point in time, used for versioned deployments.
|
|
9
|
+
- **Hotfix release**: A release that bypasses the normal release flow for urgent production fixes.
|
|
10
|
+
- **Export/Import**: Releases can be exported as portable files and imported into other workspaces.
|
|
11
|
+
- **Pull/Push**: Similar to \`workspace:pull\` and \`workspace:push\`, but scoped to a release in multidoc format.
|
|
12
|
+
|
|
13
|
+
## Release Identification
|
|
14
|
+
|
|
15
|
+
Releases are identified by their **name** (e.g., "v1.0.0", "2024-03-hotfix").`,
|
|
16
|
+
ai_hints: `**Key concepts:**
|
|
17
|
+
- Releases are versioned snapshots of a branch, created for deployment to tenants
|
|
18
|
+
- Created from branches and deployed to tenants as part of the release lifecycle
|
|
19
|
+
- \`release:pull\` and \`release:push\` work like \`workspace:pull\` and \`workspace:push\` but scoped to releases
|
|
20
|
+
- \`release:export\` and \`release:import\` allow portable release files for moving between workspaces
|
|
21
|
+
- Hotfix releases bypass the normal release flow for urgent production fixes
|
|
22
|
+
- Use \`--table-ids\` on \`release:create\` to include only specific tables in the release
|
|
23
|
+
|
|
24
|
+
**Typical workflow:**
|
|
25
|
+
1. \`xano release:list\` - see available releases
|
|
26
|
+
2. \`xano release:create -n v1.0.0 -b dev\` - create release from branch
|
|
27
|
+
3. Deploy release to tenant (see tenant topic)
|
|
28
|
+
4. \`xano release:export v1.0.0 --output ./release.tar.gz\` - export for portability`,
|
|
29
|
+
related_topics: ["branch", "tenant", "workspace"],
|
|
30
|
+
commands: [
|
|
31
|
+
{
|
|
32
|
+
name: "release:list",
|
|
33
|
+
description: "List all releases in a workspace",
|
|
34
|
+
usage: "xano release:list [options]",
|
|
35
|
+
flags: [
|
|
36
|
+
{ name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile workspace if not provided)" },
|
|
37
|
+
{ name: "output", short: "o", type: "string", required: false, default: "summary", description: "Output format: summary or json" }
|
|
38
|
+
],
|
|
39
|
+
examples: [
|
|
40
|
+
"xano release:list",
|
|
41
|
+
"xano release:list -w 123",
|
|
42
|
+
"xano release:list --output json"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "release:get",
|
|
47
|
+
description: "Get details for a specific release",
|
|
48
|
+
usage: "xano release:get <release_name> [options]",
|
|
49
|
+
args: [
|
|
50
|
+
{ name: "release_name", required: true, description: "Name of the release to retrieve" }
|
|
51
|
+
],
|
|
52
|
+
flags: [
|
|
53
|
+
{ name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile workspace if not provided)" },
|
|
54
|
+
{ name: "output", short: "o", type: "string", required: false, default: "summary", description: "Output format: summary or json" }
|
|
55
|
+
],
|
|
56
|
+
examples: [
|
|
57
|
+
"xano release:get v1.0.0",
|
|
58
|
+
"xano release:get v1.0.0 --output json"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "release:create",
|
|
63
|
+
description: "Create a named release from a branch",
|
|
64
|
+
usage: "xano release:create --name <name> --branch <branch> [options]",
|
|
65
|
+
flags: [
|
|
66
|
+
{ name: "name", short: "n", type: "string", required: true, description: "Name for the new release" },
|
|
67
|
+
{ name: "branch", short: "b", type: "string", required: true, description: "Branch to create the release from" },
|
|
68
|
+
{ name: "description", short: "d", type: "string", required: false, description: "Description for the release" },
|
|
69
|
+
{ name: "hotfix", type: "boolean", required: false, description: "Mark this release as a hotfix" },
|
|
70
|
+
{ name: "table-ids", type: "string", required: false, description: "Comma-separated table IDs to include in the release" },
|
|
71
|
+
{ name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile workspace if not provided)" },
|
|
72
|
+
{ name: "output", short: "o", type: "string", required: false, default: "summary", description: "Output format: summary or json" }
|
|
73
|
+
],
|
|
74
|
+
examples: [
|
|
75
|
+
"xano release:create -n v1.0.0 -b dev",
|
|
76
|
+
'xano release:create --name v1.1.0 --branch staging -d "Staging release"',
|
|
77
|
+
"xano release:create -n hotfix-auth -b v1 --hotfix"
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: "release:edit",
|
|
82
|
+
description: "Edit release metadata",
|
|
83
|
+
usage: "xano release:edit <release_name> [options]",
|
|
84
|
+
args: [
|
|
85
|
+
{ name: "release_name", required: true, description: "Name of the release to edit" }
|
|
86
|
+
],
|
|
87
|
+
flags: [
|
|
88
|
+
{ name: "name", short: "n", type: "string", required: false, description: "New name for the release" },
|
|
89
|
+
{ name: "description", short: "d", type: "string", required: false, description: "New description for the release" },
|
|
90
|
+
{ name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile workspace if not provided)" }
|
|
91
|
+
],
|
|
92
|
+
examples: [
|
|
93
|
+
"xano release:edit v1.0.0 --name v1.0.1",
|
|
94
|
+
'xano release:edit v1.0.0 -d "Updated description"'
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: "release:delete",
|
|
99
|
+
description: "Delete a release",
|
|
100
|
+
usage: "xano release:delete <release_name> [options]",
|
|
101
|
+
args: [
|
|
102
|
+
{ name: "release_name", required: true, description: "Name of the release to delete" }
|
|
103
|
+
],
|
|
104
|
+
flags: [
|
|
105
|
+
{ name: "force", type: "boolean", required: false, description: "Skip confirmation prompt" },
|
|
106
|
+
{ name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile workspace if not provided)" }
|
|
107
|
+
],
|
|
108
|
+
examples: [
|
|
109
|
+
"xano release:delete v1.0.0",
|
|
110
|
+
"xano release:delete v1.0.0 --force"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
name: "release:export",
|
|
115
|
+
description: "Download a release as a portable file",
|
|
116
|
+
usage: "xano release:export <release_name> [options]",
|
|
117
|
+
args: [
|
|
118
|
+
{ name: "release_name", required: true, description: "Name of the release to export" }
|
|
119
|
+
],
|
|
120
|
+
flags: [
|
|
121
|
+
{ name: "output", type: "string", required: false, description: "File path for the downloaded release file" },
|
|
122
|
+
{ name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile workspace if not provided)" }
|
|
123
|
+
],
|
|
124
|
+
examples: [
|
|
125
|
+
"xano release:export v1.0.0",
|
|
126
|
+
"xano release:export v1.0.0 --output ./releases/v1.0.0.tar.gz"
|
|
127
|
+
]
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: "release:import",
|
|
131
|
+
description: "Import a release from a file",
|
|
132
|
+
usage: "xano release:import --file <path> [options]",
|
|
133
|
+
flags: [
|
|
134
|
+
{ name: "file", type: "string", required: true, description: "Path to the release file to import" },
|
|
135
|
+
{ name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile workspace if not provided)" }
|
|
136
|
+
],
|
|
137
|
+
examples: [
|
|
138
|
+
"xano release:import --file ./releases/v1.0.0.tar.gz",
|
|
139
|
+
"xano release:import --file ./release.tar.gz -w 123"
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: "release:pull",
|
|
144
|
+
description: "Pull release contents to local files in multidoc format",
|
|
145
|
+
usage: "xano release:pull <directory> --release <name> [options]",
|
|
146
|
+
args: [
|
|
147
|
+
{ name: "directory", required: true, description: "Local directory to pull release contents into" }
|
|
148
|
+
],
|
|
149
|
+
flags: [
|
|
150
|
+
{ name: "release", short: "r", type: "string", required: true, description: "Name of the release to pull" },
|
|
151
|
+
{ name: "env", type: "boolean", required: false, description: "Include environment variables" },
|
|
152
|
+
{ name: "records", type: "boolean", required: false, description: "Include table records" },
|
|
153
|
+
{ name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile workspace if not provided)" }
|
|
154
|
+
],
|
|
155
|
+
examples: [
|
|
156
|
+
"xano release:pull ./release-v1 -r v1.0.0",
|
|
157
|
+
"xano release:pull ./release-v1 --release v1.0.0 --env --records"
|
|
158
|
+
]
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: "release:push",
|
|
162
|
+
description: "Push local files as a new release",
|
|
163
|
+
usage: "xano release:push <directory> --name <name> [options]",
|
|
164
|
+
args: [
|
|
165
|
+
{ name: "directory", required: true, description: "Local directory containing files to push as a release" }
|
|
166
|
+
],
|
|
167
|
+
flags: [
|
|
168
|
+
{ name: "name", short: "n", type: "string", required: true, description: "Name for the new release" },
|
|
169
|
+
{ name: "branch", short: "b", type: "string", required: false, description: "Branch to associate the release with" },
|
|
170
|
+
{ name: "hotfix", type: "boolean", required: false, description: "Mark this release as a hotfix" },
|
|
171
|
+
{ name: "description", short: "d", type: "string", required: false, description: "Description for the release" },
|
|
172
|
+
{ name: "records", type: "boolean", required: false, description: "Include records (--no-records to exclude)" },
|
|
173
|
+
{ name: "env", type: "boolean", required: false, description: "Include environment variables (--no-env to exclude)" },
|
|
174
|
+
{ name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile workspace if not provided)" }
|
|
175
|
+
],
|
|
176
|
+
examples: [
|
|
177
|
+
"xano release:push ./release-v1 -n v1.0.0",
|
|
178
|
+
"xano release:push ./release-v1 --name v1.1.0 -b dev --records --env",
|
|
179
|
+
"xano release:push ./release-v1 -n hotfix-1 --hotfix --no-records"
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
workflows: [
|
|
184
|
+
{
|
|
185
|
+
name: "Create and Deploy Release",
|
|
186
|
+
description: "Create a release from a branch and deploy it to a tenant",
|
|
187
|
+
steps: [
|
|
188
|
+
"List branches to find the source: `xano branch:list`",
|
|
189
|
+
"Create a release: `xano release:create -n v1.0.0 -b dev`",
|
|
190
|
+
"Verify the release: `xano release:get v1.0.0`",
|
|
191
|
+
"Deploy to tenant: `xano tenant:deploy_release my-tenant -r v1.0.0`"
|
|
192
|
+
],
|
|
193
|
+
example: `xano branch:list
|
|
194
|
+
xano release:create -n v1.0.0 -b dev -d "Initial release"
|
|
195
|
+
xano release:get v1.0.0
|
|
196
|
+
xano tenant:deploy_release my-tenant -r v1.0.0`
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
name: "Export and Import Release",
|
|
200
|
+
description: "Export a release from one workspace and import it into another",
|
|
201
|
+
steps: [
|
|
202
|
+
"Export the release: `xano release:export v1.0.0 --output ./v1.0.0.tar.gz`",
|
|
203
|
+
"Transfer the file to the target environment",
|
|
204
|
+
"Import into another workspace: `xano release:import --file ./v1.0.0.tar.gz -w 456`",
|
|
205
|
+
"Verify: `xano release:list -w 456`"
|
|
206
|
+
],
|
|
207
|
+
example: `# Export from source workspace
|
|
208
|
+
xano release:export v1.0.0 --output ./v1.0.0.tar.gz
|
|
209
|
+
|
|
210
|
+
# Import into target workspace
|
|
211
|
+
xano release:import --file ./v1.0.0.tar.gz -w 456
|
|
212
|
+
xano release:list -w 456`
|
|
213
|
+
}
|
|
214
|
+
]
|
|
215
|
+
};
|