@xano/cli 0.0.95-beta.17 → 0.0.95-beta.19

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
@@ -145,6 +145,8 @@ xano workspace git pull ./output -r https://github.com/owner/repo --path subdir
145
145
 
146
146
  All branch commands use **branch labels** (e.g., `v1`, `dev`), not IDs.
147
147
 
148
+ The `v1` branch is the default branch and always exists. It cannot be created, edited, or deleted.
149
+
148
150
  ```bash
149
151
  # List branches
150
152
  xano branch list
@@ -153,9 +155,9 @@ xano branch list
153
155
  xano branch get <branch_label>
154
156
 
155
157
  # Create a branch
156
- xano branch create --label dev
157
- xano branch create -l feature-auth -s dev -d "Auth feature"
158
- xano branch create -l staging --color "#ebc346"
158
+ xano branch create dev
159
+ xano branch create feature-auth -s dev -d "Auth feature"
160
+ xano branch create staging --color "#ebc346"
159
161
 
160
162
  # Edit a branch
161
163
  xano branch edit <branch_label> --label "new-label"
@@ -159,8 +159,7 @@ Pushed 42 documents to sandbox environment from ./my-workspace
159
159
  this.log('');
160
160
  this.log(ux.colorize('red', ux.colorize('bold', '=== CRITICAL: Invalid Indexes ===')));
161
161
  this.log('');
162
- this.log(ux.colorize('red', 'The following tables have indexes referencing fields that do not exist in the schema.'));
163
- this.log(ux.colorize('red', 'These will cause the import to fail.'));
162
+ this.log(ux.colorize('red', 'The following tables have indexed referencing fields that do not exist in the schema, which may cause related issues.'));
164
163
  this.log('');
165
164
  for (const idx of badIndexes) {
166
165
  this.log(` ${ux.colorize('red', 'CRITICAL'.padEnd(16))} ${'table'.padEnd(18)} ${idx.table}`);
@@ -288,13 +288,16 @@ Push functions but exclude test files
288
288
  const errorJson = JSON.parse(errorText);
289
289
  if (errorJson.message?.includes('Push is disabled')) {
290
290
  this.log('');
291
- this.log(ux.colorize('red', ux.colorize('bold', 'Direct push to this workspace is disabled.')));
291
+ this.log(ux.colorize('red', ux.colorize('bold', 'Direct push is disabled to protect your production workspace from unintended changes.')));
292
+ this.log(ux.colorize('dim', 'Use your sandbox environment to test and review changes before applying them to your production workspace.'));
293
+ this.log('');
292
294
  this.log(ux.colorize('dim', 'To apply changes to the workspace, use the sandbox review flow:'));
293
295
  this.log(` ${ux.colorize('cyan', 'xano sandbox push')} ${ux.colorize('dim', '— push changes to your sandbox')}`);
294
296
  this.log(` ${ux.colorize('cyan', 'xano sandbox review')} ${ux.colorize('dim', '— edit any logic, inspect the snapshot diff, and promote changes to the workspace')}`);
295
297
  this.log('');
296
298
  this.log(ux.colorize('dim', 'To enable direct push, go to Workspace Settings → CLI → Allow Direct Workspace Push.'));
297
- this.log(ux.colorize('dim', 'Note: This setting does not apply to Free plan instances.'));
299
+ this.log('');
300
+ this.log(ux.colorize('dim', "Note: Free plan instances don't include sandbox environments, so direct push is always enabled."));
298
301
  this.log('');
299
302
  return;
300
303
  }
@@ -505,12 +508,13 @@ Push functions but exclude test files
505
508
  }
506
509
  // Provide clear guidance when push is disabled
507
510
  if (errorJson.message?.includes('Push is disabled')) {
508
- this.error(`Push is disabled for this workspace.\n\n` +
509
- `To enable, go to Workspace Settings and turn on "Allow Push".\n` +
510
- `Note: This setting does not apply to Free plan instances.\n\n` +
511
+ this.error(`Direct push is disabled to protect your production workspace from unintended changes.\n` +
512
+ `Use your sandbox environment to test and review changes before applying them to your production workspace.\n\n` +
511
513
  `Alternatively, use sandbox commands:\n` +
512
514
  ` xano sandbox push ${args.directory}\n` +
513
- ` xano sandbox impersonate`);
515
+ ` xano sandbox review\n\n` +
516
+ `To enable direct push, go to Workspace Settings → CLI → Allow Direct Workspace Push.\n\n` +
517
+ `Note: Free plan instances don't include sandbox environments, so direct push is always enabled.`);
514
518
  }
515
519
  }
516
520
  catch {
@@ -760,8 +764,7 @@ Push functions but exclude test files
760
764
  this.log('');
761
765
  this.log(ux.colorize('red', ux.colorize('bold', '=== CRITICAL: Invalid Indexes ===')));
762
766
  this.log('');
763
- this.log(ux.colorize('red', 'The following tables have indexes referencing fields that do not exist in the schema.'));
764
- this.log(ux.colorize('red', 'These will cause the import to fail.'));
767
+ this.log(ux.colorize('red', 'The following tables have indexed referencing fields that do not exist in the schema, which may cause related issues.'));
765
768
  this.log('');
766
769
  for (const idx of badIndexes) {
767
770
  this.log(` ${ux.colorize('red', 'CRITICAL'.padEnd(16))} ${'table'.padEnd(18)} ${idx.table}`);