@supacloud/cli 0.85.0 → 0.87.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  Project-scoped CLI for SupaCloud users.
4
4
 
5
- The only command-line executable is `supacloud-cli`. The bare `supacloud` name is reserved
6
- for the compiled server binary installed at `/usr/local/bin/supacloud`.
5
+ The only command-line executable is `supacloud`. The compiled server binary
6
+ installed at `/usr/local/bin/supacloud` is a separate managed-host installation.
7
7
 
8
8
  Tool adapters import `@supacloud/cli/tool-runtime` for typed registration and
9
9
  schema decoding. This side-effect-free entrypoint does not initialize the CLI.
@@ -14,7 +14,7 @@ are not supported.
14
14
  ## Application Starter
15
15
 
16
16
  ```sh
17
- supacloud-cli app init --root ./orders --name orders
17
+ supacloud app init --root ./orders --name orders
18
18
  cd orders
19
19
  bun install
20
20
  bun run check
@@ -48,16 +48,16 @@ behavior.
48
48
  ### Application delivery
49
49
 
50
50
  ```sh
51
- supacloud-cli app plan --root . --format json
52
- supacloud-cli app build --root .
53
- supacloud-cli app upload --ref PROJECT --id orders --manifest_path generated/delivery/delivery.manifest.json
54
- supacloud-cli app configure --ref PROJECT --id orders --environment_id test --configuration_path configuration.json
55
- supacloud-cli app deploy --ref PROJECT --id orders --environment_id test --release_id RELEASE_SHA256 --configuration_id CONFIG_UUID --activation_id NEW_UUID --expected_activation_id absent
56
- supacloud-cli app status --ref PROJECT --id orders --environment_id test
57
- supacloud-cli app logs --ref PROJECT --id orders --environment_id test
58
- supacloud-cli app reconcile --ref PROJECT --id orders --environment_id test --release_id RELEASE_SHA256 --activation_id ACTIVATION_UUID
59
- supacloud-cli app rollback --ref PROJECT --id orders --environment_id test --release_id OLD_RELEASE_SHA256 --configuration_id CONFIG_UUID --activation_id NEW_UUID --expected_activation_id CURRENT_UUID
60
- supacloud-cli app retire --ref PROJECT --id orders --environment_id test --activation_id ACTIVATION_UUID
51
+ supacloud app plan --root . --format json
52
+ supacloud app build --root .
53
+ supacloud app upload --ref PROJECT --id orders --manifest_path generated/delivery/delivery.manifest.json
54
+ supacloud app configure --ref PROJECT --id orders --environment_id test --configuration_path configuration.json
55
+ supacloud app deploy --ref PROJECT --id orders --environment_id test --release_id RELEASE_SHA256 --configuration_id CONFIG_UUID --activation_id NEW_UUID --expected_activation_id absent
56
+ supacloud app status --ref PROJECT --id orders --environment_id test
57
+ supacloud app logs --ref PROJECT --id orders --environment_id test
58
+ supacloud app reconcile --ref PROJECT --id orders --environment_id test --release_id RELEASE_SHA256 --activation_id ACTIVATION_UUID
59
+ supacloud app rollback --ref PROJECT --id orders --environment_id test --release_id OLD_RELEASE_SHA256 --configuration_id CONFIG_UUID --activation_id NEW_UUID --expected_activation_id CURRENT_UUID
60
+ supacloud app retire --ref PROJECT --id orders --environment_id test --activation_id ACTIVATION_UUID
61
61
  ```
62
62
 
63
63
  `plan` and `build` read `delivery` in `supacloud.config.ts`; `--root` is the
@@ -82,12 +82,12 @@ Management API credentials except local plan/build and authoring commands.
82
82
  ### Isolated Application Previews
83
83
 
84
84
  ```sh
85
- supacloud-cli app preview-plan --env test --id orders --environment_id test --release_id RELEASE_SHA256 --branch_ref preview-orders
86
- supacloud-cli app preview --env test --id orders --environment_id test --release_id RELEASE_SHA256 --configuration_id CONFIG_UUID --ttl_seconds 3600 --wait --timeout_seconds 300
87
- supacloud-cli app previews --env test --id orders --environment_id test
88
- supacloud-cli app preview-status --env test --id orders --environment_id test --preview_id PREVIEW_UUID --wait --timeout_seconds 300
89
- supacloud-cli app preview-reconcile --env test --id orders --environment_id test --preview_id PREVIEW_UUID
90
- supacloud-cli app preview-cleanup --env test --id orders --environment_id test --preview_id PREVIEW_UUID
85
+ supacloud app preview-plan --env test --id orders --environment_id test --release_id RELEASE_SHA256 --branch_ref preview-orders
86
+ supacloud app preview --env test --id orders --environment_id test --release_id RELEASE_SHA256 --configuration_id CONFIG_UUID --ttl_seconds 3600 --wait --timeout_seconds 300
87
+ supacloud app previews --env test --id orders --environment_id test
88
+ supacloud app preview-status --env test --id orders --environment_id test --preview_id PREVIEW_UUID --wait --timeout_seconds 300
89
+ supacloud app preview-reconcile --env test --id orders --environment_id test --preview_id PREVIEW_UUID
90
+ supacloud app preview-cleanup --env test --id orders --environment_id test --preview_id PREVIEW_UUID
91
91
  ```
92
92
 
93
93
  The platform owns branch provisioning, queue/Storage namespaces, test Secrets,
@@ -194,32 +194,32 @@ Install:
194
194
 
195
195
  ```bash
196
196
  npm install -g @supacloud/cli
197
- supacloud-cli status
197
+ supacloud status
198
198
  ```
199
199
 
200
200
  Bun users can run the same package explicitly with Bun, including on Windows,
201
201
  without installing Node.js or a separate wrapper:
202
202
 
203
203
  ```bash
204
- bunx --bun --package @supacloud/cli supacloud-cli status
204
+ bunx --bun --package @supacloud/cli supacloud status
205
205
  ```
206
206
 
207
207
  One-off execution:
208
208
 
209
209
  ```bash
210
- npm exec --package @supacloud/cli -- supacloud-cli status
210
+ npm exec --package @supacloud/cli -- supacloud status
211
211
  ```
212
212
 
213
213
  Install the packaged AI Skill:
214
214
 
215
215
  ```bash
216
- supacloud-cli ai show_skill
217
- supacloud-cli ai install_skill --dry_run
218
- supacloud-cli ai install_skill
216
+ supacloud ai show_skill
217
+ supacloud ai install_skill --dry_run
218
+ supacloud ai install_skill
219
219
  ```
220
220
 
221
- The default destination is `$CODEX_HOME/skills/supacloud-cli` or
222
- `~/.codex/skills/supacloud-cli`. Use `--target /path/to/skills` for an explicit
221
+ The default destination is `$CODEX_HOME/skills/supacloud` or
222
+ `~/.codex/skills/supacloud`. Use `--target /path/to/skills` for an explicit
223
223
  Skill root. Different existing content is preserved unless `--force` is passed;
224
224
  forced replacement creates a timestamped adjacent backup first.
225
225
 
@@ -241,6 +241,9 @@ SUPACLOUD_ENV=test
241
241
  SUPACLOUD_API_URL=https://management.test.example.com
242
242
  SUPACLOUD_API_TOKEN=<test-management-api-token>
243
243
  SUPACLOUD_PROJECT_REF=test-ref
244
+ SUPACLOUD_APPLICATION_ID=orders
245
+ SUPACLOUD_APPLICATION_ENVIRONMENT_ID=test
246
+ SUPACLOUD_APPLICATION_CONFIGURATION_PATH=deploy/configuration.test.json
244
247
  ```
245
248
 
246
249
  ```dotenv
@@ -249,8 +252,26 @@ SUPACLOUD_ENV=production
249
252
  SUPACLOUD_API_URL=https://management.example.com
250
253
  SUPACLOUD_API_TOKEN=<production-management-api-token>
251
254
  SUPACLOUD_PROJECT_REF=production-ref
255
+ SUPACLOUD_APPLICATION_ID=orders
256
+ SUPACLOUD_APPLICATION_ENVIRONMENT_ID=production
257
+ SUPACLOUD_APPLICATION_CONFIGURATION_PATH=deploy/configuration.production.json
252
258
  ```
253
259
 
260
+ When `SUPACLOUD_APPLICATION_ID` is present, the top-level deployment command
261
+ uses the application release workflow automatically:
262
+
263
+ ```bash
264
+ supacloud --env test deploy
265
+ supacloud --env production deploy --confirm-production production-ref
266
+ ```
267
+
268
+ Test and production use the same workflow. Production safety is enforced by the
269
+ CLI confirmation gate; immutable releases, configuration revisions, backups,
270
+ readiness, CAS activation, rollback artifacts and uncertain-result
271
+ reconciliation belong to SupaCloud. The application layer only supplies its
272
+ build output and configuration file; it does not implement backup, activation
273
+ or downgrade orchestration.
274
+
254
275
  CLI requests (including `status`) default to `SUPACLOUD_TLS_VERIFY=false`, skipping HTTPS certificate verification so that
255
276
  air-gapped installations using private or self-signed certificates work
256
277
  without extra configuration. To enable strict certificate verification, set:
@@ -276,9 +297,9 @@ where identity authentication is required.
276
297
  Run commands with the selected profile:
277
298
 
278
299
  ```bash
279
- supacloud-cli --env test status
280
- supacloud-cli project get --env test
281
- supacloud-cli status --env-file ./config/supacloud.staging.env
300
+ supacloud --env test status
301
+ supacloud project get --env test
302
+ supacloud status --env-file ./config/supacloud.staging.env
282
303
  ```
283
304
 
284
305
  Global flags may appear before or after the command. Both `--key value` and
@@ -301,7 +322,7 @@ SUPACLOUD_ENV=test \
301
322
  SUPACLOUD_API_URL=https://management.test.example.com \
302
323
  SUPACLOUD_API_TOKEN="$CI_SUPACLOUD_API_TOKEN" \
303
324
  SUPACLOUD_PROJECT_REF=test-ref \
304
- supacloud-cli status
325
+ supacloud status
305
326
  ```
306
327
 
307
328
  Project context is resolved from one atomic source: a named profile selected by
@@ -310,6 +331,26 @@ legacy `.env` fallback. Core URL, credential, and project-ref values are not
310
331
  filled by mixing sources. If `SUPACLOUD_ENV` is set without a complete process
311
332
  context, it strictly selects `.env.supacloud.<value>`.
312
333
 
334
+ For one-command deployments, declare public build variables explicitly in the
335
+ target configuration:
336
+
337
+ ```json
338
+ {
339
+ "targets": {
340
+ "web": {
341
+ "type": "frontend",
342
+ "root": "apps/web",
343
+ "id": "web",
344
+ "buildEnv": ["VITE_API_URL", "VITE_SUPABASE_ANON_KEY"]
345
+ }
346
+ }
347
+ }
348
+ ```
349
+
350
+ `buildEnv` is an allowlist. The selected profile values are injected only into
351
+ the local build command; values are never printed, undeclared values are not
352
+ passed through, and platform credentials or runtime secrets are rejected.
353
+
313
354
  The two credential scopes are separate. Management-backed remote commands use
314
355
  only `SUPACLOUD_API_URL` + `SUPACLOUD_API_TOKEN`. An application profile using
315
356
  `SUPABASE_URL` + `SUPABASE_SERVICE_ROLE_KEY` can be auto-linked for `status`,
@@ -326,17 +367,17 @@ The `frontend` command keeps the existing deployment, Git, and tar.zst
326
367
  actions and also exposes the immutable prebuilt release workflow:
327
368
 
328
369
  ```bash
329
- supacloud-cli frontend list_releases --ref abc123 --id web
330
- supacloud-cli frontend get_active_release --ref abc123 --id web
331
- supacloud-cli frontend get_release --ref abc123 --id web --release_id <sha256>
332
- supacloud-cli frontend upload_release --ref abc123 --id web --archive_path ./dist.tar.zst
333
- supacloud-cli frontend activate_release --ref abc123 --id web \
370
+ supacloud frontend list_releases --ref abc123 --id web
371
+ supacloud frontend get_active_release --ref abc123 --id web
372
+ supacloud frontend get_release --ref abc123 --id web --release_id <sha256>
373
+ supacloud frontend upload_release --ref abc123 --id web --archive_path ./dist.tar.zst
374
+ supacloud frontend activate_release --ref abc123 --id web \
334
375
  --release_id <sha256> \
335
376
  --expected_active_release_id absent \
336
377
  --expected_activation_id absent \
337
378
  --mutation_id <retry-stable-uuid-v4>
338
- supacloud-cli frontend rollback --ref abc123 --id web --release_id <retained-sha256>
339
- supacloud-cli frontend rollback --ref abc123 --id web
379
+ supacloud frontend rollback --ref abc123 --id web --release_id <retained-sha256>
380
+ supacloud frontend rollback --ref abc123 --id web
340
381
  ```
341
382
 
342
383
  `upload_release` hashes and streams an existing regular tar.zst file without
@@ -365,11 +406,11 @@ must not be blindly retried.
365
406
  Store a compiler-built HTTP/Worker application as one immutable release:
366
407
 
367
408
  ```bash
368
- supacloud-cli applications upload_release --ref abc123 --id reviews \
409
+ supacloud applications upload_release --ref abc123 --id reviews \
369
410
  --manifest_path ./generated/delivery/delivery.manifest.json
370
- supacloud-cli applications list_releases --ref abc123 --id reviews --limit 50
371
- supacloud-cli applications get_release --ref abc123 --id reviews --release_id <sha256>
372
- supacloud-cli applications get_runtime --ref abc123 --id reviews --environment_id test
411
+ supacloud applications list_releases --ref abc123 --id reviews --limit 50
412
+ supacloud applications get_release --ref abc123 --id reviews --release_id <sha256>
413
+ supacloud applications get_runtime --ref abc123 --id reviews --environment_id test
373
414
  ```
374
415
 
375
416
  Upload verifies executable objects, transfers their inventory with multipart
@@ -407,10 +448,10 @@ environment. Saving a revision does not allocate ports, start processes, change
407
448
  traffic or migrate data:
408
449
 
409
450
  ```bash
410
- supacloud-cli applications get_configuration --ref abc123 --id reviews --environment_id test
411
- supacloud-cli applications put_configuration --ref abc123 --id reviews --environment_id test \
451
+ supacloud applications get_configuration --ref abc123 --id reviews --environment_id test
452
+ supacloud applications put_configuration --ref abc123 --id reviews --environment_id test \
412
453
  --configuration_path ./application.test.json
413
- supacloud-cli applications get_configuration --ref abc123 --id reviews --environment_id test \
454
+ supacloud applications get_configuration --ref abc123 --id reviews --environment_id test \
414
455
  --configuration_id <uuid>
415
456
  ```
416
457
 
@@ -473,12 +514,12 @@ The default Management API instance does not yet enable these endpoints.
473
514
  For an explicitly composed test host:
474
515
 
475
516
  ```bash
476
- supacloud-cli applications activate_release --ref abc123 --id reviews --environment_id test \
517
+ supacloud applications activate_release --ref abc123 --id reviews --environment_id test \
477
518
  --release_id <release-sha256> --configuration_id <configuration-uuid> \
478
519
  --activation_id <new-uuid> --expected_activation_id absent
479
- supacloud-cli applications reconcile_activation --ref abc123 --id reviews --environment_id test \
520
+ supacloud applications reconcile_activation --ref abc123 --id reviews --environment_id test \
480
521
  --release_id <release-sha256> --activation_id <same-uuid>
481
- supacloud-cli applications retire_activation --ref abc123 --id reviews --environment_id test \
522
+ supacloud applications retire_activation --ref abc123 --id reviews --environment_id test \
482
523
  --activation_id <stopped-and-unrouted-uuid>
483
524
  ```
484
525
 
@@ -510,26 +551,26 @@ missing, the platform begins project re-provisioning instead. It does not
510
551
  restore a database backup and is never invoked automatically by the CLI.
511
552
 
512
553
  ```bash
513
- supacloud-cli project pause --ref abc123
514
- supacloud-cli release logical_backup_restore --ref abc123 \
554
+ supacloud project pause --ref abc123
555
+ supacloud release logical_backup_restore --ref abc123 \
515
556
  --backup_id logical-full_abc123_<backup-id-suffix> \
516
557
  --expected_sha256 <64-lowercase-hex> \
517
558
  --restore_confirmation RESTORE_PROJECT:abc123:logical-full_abc123_<backup-id-suffix>:<64-lowercase-hex>
518
- supacloud-cli project restore --ref abc123
559
+ supacloud project restore --ref abc123
519
560
  ```
520
561
 
521
562
  ```bash
522
- supacloud-cli release logical_backup_list --ref abc123
523
- supacloud-cli release logical_backup_create --ref abc123
524
- supacloud-cli release logical_backup_restore --ref abc123 \
563
+ supacloud release logical_backup_list --ref abc123
564
+ supacloud release logical_backup_create --ref abc123
565
+ supacloud release logical_backup_restore --ref abc123 \
525
566
  --backup_id logical-full_abc123_<backup-id-suffix> \
526
567
  --expected_sha256 <64-lowercase-hex> \
527
568
  --restore_confirmation RESTORE_PROJECT:abc123:logical-full_abc123_<backup-id-suffix>:<64-lowercase-hex>
528
- supacloud-cli release postgrest_status --ref abc123
529
- supacloud-cli release postgrest_restart --ref abc123
530
- supacloud-cli release release_canary_fixture_stage_replay --ref abc123 \
569
+ supacloud release postgrest_status --ref abc123
570
+ supacloud release postgrest_restart --ref abc123
571
+ supacloud release release_canary_fixture_stage_replay --ref abc123 \
531
572
  --subject <central-subject-uuid> --request_id <stage-request-uuid>
532
- supacloud-cli release release_canary_fixture_disable_replay --ref abc123 \
573
+ supacloud release release_canary_fixture_disable_replay --ref abc123 \
533
574
  --fixture_id <fixture-uuid> --disable_request_id <disable-request-uuid> \
534
575
  --issuer <issuer-url> --subject <central-subject-uuid>
535
576
  ```
@@ -581,25 +622,25 @@ base commit without manual JSON editing or risk of dirtying non-manifest fields.
581
622
 
582
623
  ```bash
583
624
  # Rebind a single scope manifest to latest git main (or origin/main)
584
- supacloud-cli release scope_rebind --file supacloud/fa/release-scopes/20260907-intake-p1-production.json
625
+ supacloud release scope_rebind --file supacloud/fa/release-scopes/20260907-intake-p1-production.json
585
626
 
586
627
  # Rebind multiple files (e.g. production and staging together)
587
- supacloud-cli release scope_rebind --files "20260907-intake-p1-production.json,20260907-intake-p1-staging.json"
628
+ supacloud release scope_rebind --files "20260907-intake-p1-production.json,20260907-intake-p1-staging.json"
588
629
 
589
630
  # Rebind all scopes matching a task ID or filename prefix in standard directories
590
- supacloud-cli release scope_rebind --task 20260907-intake-p1
631
+ supacloud release scope_rebind --task 20260907-intake-p1
591
632
 
592
633
  # Specify an explicit base commit SHA or git ref
593
- supacloud-cli release scope_rebind --task 20260907-intake-p1 --base_commit origin/main
634
+ supacloud release scope_rebind --task 20260907-intake-p1 --base_commit origin/main
594
635
 
595
636
  # Preview changes without modifying files
596
- supacloud-cli release scope_rebind --task 20260907-intake-p1 --dry_run
637
+ supacloud release scope_rebind --task 20260907-intake-p1 --dry_run
597
638
 
598
639
  # Inspect scope status, SHA-256 hash, and alignment with git HEAD / origin/main
599
- supacloud-cli release scope_inspect --file 20260907-intake-p1-production.json
640
+ supacloud release scope_inspect --file 20260907-intake-p1-production.json
600
641
 
601
642
  # Scaffold a new canonical release scope
602
- supacloud-cli release scope_create \
643
+ supacloud release scope_create \
603
644
  --file supacloud/fa/release-scopes/20260907-intake-p1.json \
604
645
  --task FA-INTAKE-P1 \
605
646
  --ref abc123 \
@@ -622,7 +663,7 @@ Production writes require an explicit confirmation equal to the selected
622
663
  profile's project ref:
623
664
 
624
665
  ```bash
625
- supacloud-cli database push_migrations --env prod \
666
+ supacloud database push_migrations --env prod \
626
667
  --ref production-ref --dir supabase/migrations \
627
668
  --confirm-production production-ref
628
669
  ```
@@ -647,44 +688,44 @@ API token or service-role key.
647
688
  Examples:
648
689
 
649
690
  ```bash
650
- supacloud-cli status
651
- supacloud-cli project get
652
- supacloud-cli project logs --log_type database
653
- supacloud-cli project task_stats
654
- supacloud-cli project task_detail --task_id task_123
655
- supacloud-cli queue stats --queue emails
656
- supacloud-cli queue dlq --queue emails --limit 20
657
- supacloud-cli task_events inspect_webhook --ref abc123
658
- supacloud-cli database query --sql "select now()"
659
- supacloud-cli database query --ref abc123 --file ./queries/vector-search.sql
660
- supacloud-cli database migration_inventory --ref abc123
661
- supacloud-cli database lint_migrations --dir supabase/migrations
662
- supacloud-cli database rebase_migrations --dir supabase/migrations --baseline_file backups/schema.sql --baseline_version 20261008000000 --output_dir supabase/migrations-rebased
663
- supacloud-cli database push_migrations --ref abc123 --dir supabase/migrations --dry_run
664
- supacloud-cli supabase migration_new --name add_accounts
665
- supacloud-cli supabase db_diff --schema public --name add_accounts
666
- supacloud-cli supabase push --ref abc123 --dir supabase/migrations --dry_run
667
- supacloud-cli frontend list --ref abc123
668
- supacloud-cli branch create --name feature-orders --data_mode schema_only
669
- supacloud-cli branch promotion_plan --branch_ref preview123
670
- supacloud-cli branch promote --branch_ref preview123 --plan_checksum <sha256>
671
- supacloud-cli edge_functions get_config --ref abc123 --slug hello
672
- supacloud-cli edge_functions deploy --ref abc123 --slug hello --path ./supabase/functions/hello --expected-active-version absent --expected-activation-id legacy
673
- supacloud-cli edge_functions deploy --ref abc123 --slug hello --prebundled-path ./dist/hello.js --expected-sha256 <sha256> --expected-active-version 4 --expected-activation-id <uuid>
674
- supacloud-cli edge_functions deploy_bundle --ref abc123 --slug hello --files '{"index.ts":"export default { fetch: () => new Response(\"ok\") }"}' --expected-active-version 7 --expected-activation-id <uuid>
675
- supacloud-cli edge_functions source --ref abc123 --slug hello --version 7 --output ./hello-v7.ts
676
- supacloud-cli edge_functions activate --ref abc123 --slug hello --version 3 --expected-active-version 8 --expected-activation-id <uuid>
677
- supacloud-cli edge_functions delete --ref abc123 --slug hello --expected-activation-id <uuid>
678
- supacloud-cli scheduled_functions list --ref abc123
679
- supacloud-cli secrets upsert --ref abc123 --from-env API_KEY,WEBHOOK_SECRET
680
- supacloud-cli storage list_buckets --ref abc123
681
- supacloud-cli storage get_bucket --ref abc123 --bucket reports
682
- supacloud-cli storage create_bucket --ref abc123 --bucket reports --public false \
691
+ supacloud status
692
+ supacloud project get
693
+ supacloud project logs --log_type database
694
+ supacloud project task_stats
695
+ supacloud project task_detail --task_id task_123
696
+ supacloud queue stats --queue emails
697
+ supacloud queue dlq --queue emails --limit 20
698
+ supacloud task_events inspect_webhook --ref abc123
699
+ supacloud database query --sql "select now()"
700
+ supacloud database query --ref abc123 --file ./queries/vector-search.sql
701
+ supacloud database migration_inventory --ref abc123
702
+ supacloud database lint_migrations --dir supabase/migrations
703
+ supacloud database rebase_migrations --dir supabase/migrations --baseline_file backups/schema.sql --baseline_version 20261008000000 --output_dir supabase/migrations-rebased
704
+ supacloud database push_migrations --ref abc123 --dir supabase/migrations --dry_run
705
+ supacloud supabase migration_new --name add_accounts
706
+ supacloud supabase db_diff --schema public --name add_accounts
707
+ supacloud supabase push --ref abc123 --dir supabase/migrations --dry_run
708
+ supacloud frontend list --ref abc123
709
+ supacloud branch create --name feature-orders --data_mode schema_only
710
+ supacloud branch promotion_plan --branch_ref preview123
711
+ supacloud branch promote --branch_ref preview123 --plan_checksum <sha256>
712
+ supacloud edge_functions get_config --ref abc123 --slug hello
713
+ supacloud edge_functions deploy --ref abc123 --slug hello --path ./supabase/functions/hello --expected-active-version absent --expected-activation-id legacy
714
+ supacloud edge_functions deploy --ref abc123 --slug hello --prebundled-path ./dist/hello.js --expected-sha256 <sha256> --expected-active-version 4 --expected-activation-id <uuid>
715
+ supacloud edge_functions deploy_bundle --ref abc123 --slug hello --files '{"index.ts":"export default { fetch: () => new Response(\"ok\") }"}' --expected-active-version 7 --expected-activation-id <uuid>
716
+ supacloud edge_functions source --ref abc123 --slug hello --version 7 --output ./hello-v7.ts
717
+ supacloud edge_functions activate --ref abc123 --slug hello --version 3 --expected-active-version 8 --expected-activation-id <uuid>
718
+ supacloud edge_functions delete --ref abc123 --slug hello --expected-activation-id <uuid>
719
+ supacloud scheduled_functions list --ref abc123
720
+ supacloud secrets upsert --ref abc123 --from-env API_KEY,WEBHOOK_SECRET
721
+ supacloud storage list_buckets --ref abc123
722
+ supacloud storage get_bucket --ref abc123 --bucket reports
723
+ supacloud storage create_bucket --ref abc123 --bucket reports --public false \
683
724
  --file_size_limit 10485760 --allowed_mime_types "application/pdf,image/png"
684
- supacloud-cli storage update_bucket --ref abc123 --bucket reports \
725
+ supacloud storage update_bucket --ref abc123 --bucket reports \
685
726
  --expected_revision <revision-from-get_bucket> \
686
727
  --allowed_mime_types '["application/pdf"]'
687
- supacloud-cli storage delete_bucket --ref abc123 --bucket reports \
728
+ supacloud storage delete_bucket --ref abc123 --bucket reports \
688
729
  --expected_revision <revision-from-get_bucket> --require_empty true
689
730
  ```
690
731
 
@@ -700,7 +741,7 @@ human-readable behavior.
700
741
  with the separate read-only `/database/migrations/inventory` endpoint:
701
742
 
702
743
  ```bash
703
- supacloud-cli database delivery_migration_plan --ref abc123 \
744
+ supacloud database delivery_migration_plan --ref abc123 \
704
745
  --delivery_manifest /archive/delivery/delivery.manifest.json --delivery_target api
705
746
  ```
706
747
 
@@ -858,12 +899,12 @@ activation targets still require a positive version.
858
899
  Scheduled Function lifecycle operations are also project-scoped:
859
900
 
860
901
  ```bash
861
- supacloud-cli scheduled_functions create --ref abc123 --name nightly \
902
+ supacloud scheduled_functions create --ref abc123 --name nightly \
862
903
  --slug cleanup --cron "0 2 * * *" --method POST
863
- supacloud-cli scheduled_functions get --ref abc123 --schedule_id <id>
864
- supacloud-cli scheduled_functions update --ref abc123 --schedule_id <id> \
904
+ supacloud scheduled_functions get --ref abc123 --schedule_id <id>
905
+ supacloud scheduled_functions update --ref abc123 --schedule_id <id> \
865
906
  --expected_updated_at <updated_at-from-list> --cron "0 3 * * *"
866
- supacloud-cli scheduled_functions delete --ref abc123 --schedule_id <id> \
907
+ supacloud scheduled_functions delete --ref abc123 --schedule_id <id> \
867
908
  --expected_updated_at <updated_at-from-list>
868
909
  ```
869
910
 
@@ -884,11 +925,12 @@ whether the body is empty and the configured header names. Update receipts bind
884
925
  delete receipts return the matched revision as `deleted_updated_at`.
885
926
 
886
927
  For secret writes, `--from-env` accepts a comma-separated list of environment
887
- variable names. The CLI reads each non-empty value from its own process
888
- environment, so command arguments contain names only and values are never
889
- printed. Names must be unique shell-style identifiers (`[A-Za-z_][A-Za-z0-9_]*`,
890
- up to 256 characters). Missing or empty values fail before any HTTP request.
891
- Do not combine `--from-env` with the compatibility `--secrets` input.
928
+ variable names. The CLI reads each non-empty value from the currently selected
929
+ profile source, such as `.env.supacloud.test` selected by `--env test`; command
930
+ arguments contain names only and values are never printed. Names must be unique
931
+ shell-style identifiers (`[A-Za-z_][A-Za-z0-9_]*`, up to 256 characters).
932
+ Missing or empty values fail before any HTTP request. Do not combine
933
+ `--from-env` with the compatibility `--secrets` input.
892
934
 
893
935
  Branch promotion is migration-first. `branch promotion_plan` prints pending
894
936
  versions, names, statement counts, and checksums without echoing SQL into terminal
@@ -902,20 +944,20 @@ break-glass API mode and is intentionally not exposed by this project CLI.
902
944
  ## SupaCloud Lite CLI adapter
903
945
 
904
946
  Lite can be used from its standalone `supacloud-lite` CLI and from the main
905
- `supacloud-cli` through the local-only `lite` module. The adapter never calls
947
+ `supacloud` through the local-only `lite` module. The adapter never calls
906
948
  the Management API, never invokes the official Supabase CLI, and never treats a
907
949
  PGlite data directory as a Postgres DSN.
908
950
 
909
951
  ```bash
910
- supacloud-cli lite migrate --project_dir .
911
- supacloud-cli lite status --project_dir .
912
- supacloud-cli lite db_diff --project_dir . --file add_accounts
913
- supacloud-cli lite db_pull --project_dir . --file remote_schema
914
- supacloud-cli lite db_pull --project_dir . --file reviewed_schema --baseline
915
- supacloud-cli lite gen_types --project_dir . --output src/database.types.ts
916
- supacloud-cli lite snapshot_create --project_dir . --output backups/lite.tar.gz
917
- supacloud-cli lite doctor --project_dir . --json
918
- supacloud-cli lite start --project_dir . --port 54321
952
+ supacloud lite migrate --project_dir .
953
+ supacloud lite status --project_dir .
954
+ supacloud lite db_diff --project_dir . --file add_accounts
955
+ supacloud lite db_pull --project_dir . --file remote_schema
956
+ supacloud lite db_pull --project_dir . --file reviewed_schema --baseline
957
+ supacloud lite gen_types --project_dir . --output src/database.types.ts
958
+ supacloud lite snapshot_create --project_dir . --output backups/lite.tar.gz
959
+ supacloud lite doctor --project_dir . --json
960
+ supacloud lite start --project_dir . --port 54321
919
961
  ```
920
962
 
921
963
  The adapter resolves the executable in this order:
@@ -943,29 +985,29 @@ open-source Supabase CLI. It is not a fork. Local authoring commands work withou
943
985
  SupaCloud credentials:
944
986
 
945
987
  ```bash
946
- supacloud-cli supabase version
947
- supacloud-cli supabase init --workdir .
948
- supacloud-cli supabase migration_new --name add_accounts
949
- supacloud-cli supabase db_diff --schema public --name add_accounts
950
- supacloud-cli supabase db_reset --no_seed
988
+ supacloud supabase version
989
+ supacloud supabase init --workdir .
990
+ supacloud supabase migration_new --name add_accounts
991
+ supacloud supabase db_diff --schema public --name add_accounts
992
+ supacloud supabase db_reset --no_seed
951
993
  ```
952
994
 
953
995
  Remote inspection and backup commands require an explicit, percent-encoded
954
996
  Postgres DSN:
955
997
 
956
998
  ```bash
957
- supacloud-cli supabase db_pull --db_url "$SUPACLOUD_DB_URL" --declarative
958
- supacloud-cli supabase migration_list --db_url "$SUPACLOUD_DB_URL"
959
- supacloud-cli supabase db_dump --db_url "$SUPACLOUD_DB_URL" --file backups/schema.sql
960
- supacloud-cli supabase gen_types --db_url "$SUPACLOUD_DB_URL" --schema public --file src/database.types.ts
999
+ supacloud supabase db_pull --db_url "$SUPACLOUD_DB_URL" --declarative
1000
+ supacloud supabase migration_list --db_url "$SUPACLOUD_DB_URL"
1001
+ supacloud supabase db_dump --db_url "$SUPACLOUD_DB_URL" --file backups/schema.sql
1002
+ supacloud supabase gen_types --db_url "$SUPACLOUD_DB_URL" --schema public --file src/database.types.ts
961
1003
  ```
962
1004
 
963
1005
  Remote migration application intentionally stays on SupaCloud's existing
964
1006
  project-authenticated API:
965
1007
 
966
1008
  ```bash
967
- supacloud-cli supabase push --ref abc123 --dir supabase/migrations --dry_run
968
- supacloud-cli supabase push --ref abc123 --dir supabase/migrations
1009
+ supacloud supabase push --ref abc123 --dir supabase/migrations --dry_run
1010
+ supacloud supabase push --ref abc123 --dir supabase/migrations
969
1011
  ```
970
1012
 
971
1013
  `push` uses only `SUPACLOUD_API_TOKEN` for the SupaCloud Management API. That
@@ -982,17 +1024,17 @@ the adapter does not install a new CLI or replace an existing schema authority.
982
1024
  `init` preserves existing configuration and inherits the installed CLI's defaults.
983
1025
 
984
1026
  ```bash
985
- supacloud-cli supabase db_schema_declarative_generate --db_url "$SUPACLOUD_DB_URL"
986
- supacloud-cli supabase db_schema_declarative_sync --name add_accounts --strict_coverage
987
- supacloud-cli supabase db_diff --diff_engine pg-delta --name add_accounts
988
- supacloud-cli supabase config_pull --ref upstream-project
989
- supacloud-cli supabase config_pull --ref upstream-project --dry_run=false --yes
990
- supacloud-cli supabase stack_start --workdir .
991
- supacloud-cli supabase stack_status --workdir .
992
- SUPACLOUD_ENABLE_NATIVE_STACK=1 supacloud-cli supabase stack_prepare --workdir . --runtime native
993
- SUPACLOUD_ENABLE_NATIVE_STACK=1 supacloud-cli supabase stack_start --workdir . --runtime native --preparation on-demand
994
- supacloud-cli supabase stack_stop --workdir .
995
- supacloud-cli supabase stack_destroy --workdir . --confirm_destroy --yes
1027
+ supacloud supabase db_schema_declarative_generate --db_url "$SUPACLOUD_DB_URL"
1028
+ supacloud supabase db_schema_declarative_sync --name add_accounts --strict_coverage
1029
+ supacloud supabase db_diff --diff_engine pg-delta --name add_accounts
1030
+ supacloud supabase config_pull --ref upstream-project
1031
+ supacloud supabase config_pull --ref upstream-project --dry_run=false --yes
1032
+ supacloud supabase stack_start --workdir .
1033
+ supacloud supabase stack_status --workdir .
1034
+ SUPACLOUD_ENABLE_NATIVE_STACK=1 supacloud supabase stack_prepare --workdir . --runtime native
1035
+ SUPACLOUD_ENABLE_NATIVE_STACK=1 supacloud supabase stack_start --workdir . --runtime native --preparation on-demand
1036
+ supacloud supabase stack_stop --workdir .
1037
+ supacloud supabase stack_destroy --workdir . --confirm_destroy --yes
996
1038
  ```
997
1039
 
998
1040
  Declarative sync generates without applying unless `--apply` is explicit.
@@ -1030,7 +1072,7 @@ If the live database already contains reviewed historical changes, first pull,
1030
1072
  back up, and prove schema equivalence. Then preview the controlled tracking sync:
1031
1073
 
1032
1074
  ```bash
1033
- supacloud-cli database baseline_migrations --ref abc123 --dir supabase/migrations --dry_run
1075
+ supacloud database baseline_migrations --ref abc123 --dir supabase/migrations --dry_run
1034
1076
  ```
1035
1077
 
1036
1078
  Only after explicit approval, rerun without `--dry_run`. This records migration
@@ -1058,9 +1100,9 @@ Transaction boundary: SupaCloud supports transaction blocks inside one SQL reque
1058
1100
  Auth configuration commands accept a JSON object from the CLI:
1059
1101
 
1060
1102
  ```bash
1061
- supacloud-cli auth update_settings --ref abc123 \
1103
+ supacloud auth update_settings --ref abc123 \
1062
1104
  --config '{"disable_signup":true,"enable_signup":false}'
1063
- supacloud-cli auth update_config --ref abc123 \
1105
+ supacloud auth update_config --ref abc123 \
1064
1106
  --config '{"third_party_auth":{"enabled":true}}'
1065
1107
  ```
1066
1108
 
@@ -1135,14 +1177,14 @@ Gateway / Caddy commands (require admin privileges; config is injected via the C
1135
1177
  - `gateway verify_custom_hostname` — verify a custom hostname
1136
1178
 
1137
1179
  ```bash
1138
- supacloud-cli gateway routes --ref abc123
1139
- supacloud-cli gateway upsert_route --ref abc123 --route_id webhook \
1180
+ supacloud gateway routes --ref abc123
1181
+ supacloud gateway upsert_route --ref abc123 --route_id webhook \
1140
1182
  --hosts "api.example.com" --paths "/webhook/*" --upstream 10.0.0.5:8080
1141
- supacloud-cli gateway upsert_route --ref abc123 --route_id canonical-https \
1183
+ supacloud gateway upsert_route --ref abc123 --route_id canonical-https \
1142
1184
  --hosts "www.example.com" --paths "/*" --protocol http \
1143
1185
  --redirect_to 'https://www.example.com{http.request.uri}' --redirect_status 308
1144
- supacloud-cli gateway config --ref abc123 --rate_limit_tier pro
1145
- supacloud-cli gateway rebuild --ref abc123 --clean
1186
+ supacloud gateway config --ref abc123 --rate_limit_tier pro
1187
+ supacloud gateway rebuild --ref abc123 --clean
1146
1188
  ```
1147
1189
 
1148
1190
  For server installation, SSH diagnostics, and tenant administration, use `@supacloud/admin`.