staticx 0.1.5 → 0.1.7

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 CHANGED
@@ -40,13 +40,15 @@ staticx mcp
40
40
 
41
41
  ## Custom domains
42
42
 
43
- Use the CLI when you want to connect a domain without opening the dashboard.
43
+ Use the CLI when you want to start custom domain setup without opening the dashboard.
44
44
 
45
45
  ```bash
46
46
  staticx domain --site-id SITE_ID --domain app.example.com
47
47
  ```
48
48
 
49
- The command moves the site to that domain and prints the single DNS record to create. After the DNS record is added, StaticX detects it and activates SSL automatically.
49
+ The command starts the manual DNS flow and prints the single DNS record to create. After the DNS record is added, StaticX detects it and activates SSL automatically.
50
+
51
+ If you want StaticX to create the DNS record inside an external DNS account, approve DNS Connect from the dashboard. The CLI cannot authorize an external provider silently because the domain owner must approve access in a browser.
50
52
 
51
53
  Check progress any time:
52
54
 
@@ -66,10 +68,12 @@ Use these when you want the same contract that the dashboard, CLI, and agents sh
66
68
 
67
69
  StaticX enforces the same limits through the dashboard, API, CLI, MCP, URL imports, and hosted forms runtime.
68
70
 
69
- | Plan | Sites | Storage | Max upload | Form entries |
70
- | --- | ---: | ---: | ---: | ---: |
71
- | Free | 1 | 500 MB | 500 MB | 10,000 |
72
- | Unlimited | Unlimited | Unlimited | 50 GB | Unlimited |
71
+ | Plan | Sites | Storage | Max upload | Form entries | Team seats | Rollback history |
72
+ | --- | ---: | ---: | ---: | ---: | ---: | ---: |
73
+ | Free | 1 | 500 MB | 500 MB | 1,000 | 1 | Last 5 versions |
74
+ | Plus | 15 | 10 GB | 50 GB | 20,000 | 5 | Last 10 versions |
75
+ | Pro | 100 | 20 GB | 50 GB | 100,000 | 10 | Last 50 versions |
76
+ | Agency | Custom | Custom | 50 GB | Custom | Custom | Custom |
73
77
 
74
78
  If a command receives `PLAN_QUOTA_EXCEEDED`, stop and return the exact message. Clean up files/form entries or upgrade before retrying.
75
79
 
@@ -115,5 +119,5 @@ STATICX_API_TOKEN=sx_replace_with_your_token npx staticx-mcp-server http
115
119
  - `staticx login` stores the base URL and bearer token locally.
116
120
  - `staticx whoami` verifies the token with `GET /user`.
117
121
  - `staticx deploy` zips the contents of the given build directory, uploads them, and publishes a new release. The directory must contain `index.html` or `index.htm` plus `404.html` at its root.
118
- - `staticx domain` calls `POST /projects/{project}/domain` and returns the DNS record plus activation status.
122
+ - `staticx domain` calls `POST /projects/{project}/domain` and returns the manual DNS record plus activation status.
119
123
  - Golden deploy prompt: “Deploy `dist` to StaticX project `SITE_ID` using `STATICX_API_TOKEN`. Build, validate `index.html` + `404.html`, apply StaticX form rules if forms exist, zip `dist` root, upload, deploy, check logs, then return the live URL or the exact API error. If you receive `PLAN_QUOTA_EXCEEDED`, stop and return the exact quota message. Never expose the token.”
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "staticx",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Public CLI for STATICX using token-authenticated /api/v1 routes.",
5
5
  "type": "module",
6
6
  "publishConfig": {
package/src/index.js CHANGED
@@ -19,7 +19,7 @@ import {
19
19
  mcpGuideJson,
20
20
  } from './output.js';
21
21
 
22
- const CLI_VERSION = '0.1.5';
22
+ const CLI_VERSION = '0.1.7';
23
23
 
24
24
  export async function run(argv) {
25
25
  const program = new Command();
@@ -296,7 +296,7 @@ Deploy rule:
296
296
 
297
297
  program
298
298
  .command('domain')
299
- .description('Move a site to a custom domain and print the one DNS record to create.')
299
+ .description('Start manual custom domain setup and print the one DNS record to create.')
300
300
  .requiredOption('--site-id <id>', 'Site ID')
301
301
  .requiredOption('--domain <domain>', 'Custom domain, for example app.example.com')
302
302
  .option('--json', 'Print JSON output')
package/src/output.js CHANGED
@@ -65,7 +65,7 @@ export function printLoginSuccess({ baseUrl, user, token }) {
65
65
  ['staticx guide', 'Show the complete CLI workflow.'],
66
66
  ['staticx sites', 'List the sites visible to this token.'],
67
67
  ['staticx deploy --site-id SITE_ID --dir dist', 'Upload and publish a build folder.'],
68
- ['staticx domain --site-id SITE_ID --domain app.example.com', 'Move a site to a custom domain.'],
68
+ ['staticx domain --site-id SITE_ID --domain app.example.com', 'Start manual custom domain setup.'],
69
69
  ]);
70
70
  console.log('');
71
71
  console.log('Build rule: deploy folders must include index.html or index.htm and 404.html at the root.');
@@ -95,7 +95,7 @@ export function printCliGuide() {
95
95
  ]);
96
96
  console.log('');
97
97
  printCommandGroup('Custom domains', [
98
- ['staticx domain --site-id SITE_ID --domain app.example.com', 'Move a site to a custom domain and print the DNS record.'],
98
+ ['staticx domain --site-id SITE_ID --domain app.example.com', 'Start manual custom domain setup and print the DNS record.'],
99
99
  ['staticx domain-status --site-id SITE_ID', 'Check DNS, SSL, and activation status.'],
100
100
  ]);
101
101
  console.log('');
@@ -112,7 +112,8 @@ export function printCliGuide() {
112
112
  console.log('');
113
113
  console.log('Token scopes: use Site tokens for one-site deploys, Workspace tokens for client workspaces, and Global tokens only for broad operator workflows.');
114
114
  console.log('Build rule: deploy folders must include index.html or index.htm and 404.html at the root.');
115
- console.log('Plan limits: Free includes 1 site, 500 MB storage, 500 MB uploads, and 10,000 form entries. Unlimited includes 50 GB uploads with unlimited sites, storage, and form entries.');
115
+ console.log('Domain rule: CLI custom domains use the one-record manual DNS flow. DNS Connect requires browser approval in the dashboard.');
116
+ console.log('Plan limits: Free includes 1 site, 500 MB storage, 500 MB uploads, 1,000 form entries, 1 seat, and 5 rollback versions. Plus and Pro raise capacity. Agency uses custom capacity.');
116
117
  console.log('Quota rule: stop on PLAN_QUOTA_EXCEEDED and return the exact API message before retrying.');
117
118
  }
118
119
 
@@ -195,8 +196,10 @@ export function cliGuideJson() {
195
196
  build_rule: 'Deploy folders must include index.html or index.htm and 404.html at the root.',
196
197
  token_scopes: 'Use Site tokens for one-site deploys, Workspace tokens for client workspaces, and Global tokens only for broad operator workflows.',
197
198
  plan_limits: {
198
- free: '1 site, 500 MB storage, 500 MB max upload, 10,000 form entries.',
199
- unlimited: 'Unlimited sites, unlimited storage, 50 GB max upload, unlimited form entries.',
199
+ free: '1 site, 500 MB storage, 500 MB max upload, 1,000 form entries, 1 team seat, last 5 rollback versions.',
200
+ plus: '15 sites, 10 GB storage, 50 GB max upload, 20,000 form entries, 5 team seats, last 10 rollback versions.',
201
+ pro: '100 sites, 20 GB storage, 50 GB max upload, 100,000 form entries, 10 team seats, last 50 rollback versions.',
202
+ agency: 'Custom sites, storage, form entries, seats, and rollback history, with 50 GB max upload.',
200
203
  },
201
204
  quota_rule: 'Stop on PLAN_QUOTA_EXCEEDED and return the exact API message.',
202
205
  };