Repository navigation
Conversation
The cantelop section now uses the owner's `cantelop login` credential to create or reuse the juiced Fleet, register the active App release as the package, and issue API and worker principals, writing the tokens to Vercel without printing them. It refuses a release whose runtime differs from this CLI build and revokes the one-off publisher principal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The cantelop section is a shell function of the same name, so its `cantelop releases` call recursed into itself. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
OWNER_FROM_VERCEL=1 pulls JUICED_OWNER_DATABASE_URL from the development environment, where the Neon resource is connected only for the setup, into a temporary file that is removed straight away. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Main's Fleet SDK migration (#38) replaced the individual Fleet variables with one CANTELOP_APP_CONFIG integration document and moved package publication into `cantelop deploy`. Keep main's `cantelop` section and drop cantelop-fleet.mjs, which wrote the retired variables. Keep the OWNER_FROM_VERCEL database option and document it instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Follow-up to #21. I used
service/deploy/production-env.shto set up hosted production. Two of its steps still needed hand-copied credentials:Running it also exposed a recursion bug.
What changed
cantelopsection is automatic (newservice/deploy/cantelop-fleet.mjs). It uses the owner credential fromcantelop loginto:juicedFleet;Safeguards:
npm run build:runtime) and disables the package it just registered.<cli version>-r<App release number>, since a version can't be reused once registered.Fix: the
cantelopshell function shadowed the CLI, so itscantelop releasescall recursed into itself. It now usescommand cantelop.databasesection can read the owner URL from Vercel. WithOWNER_FROM_VERCEL=1, it readsJUICED_OWNER_DATABASE_URLfrom the development environment into a temporary file and deletes the file straight away.vercel integration resource connect juiced-db juiced -e development --prefix JUICED_OWNER_).docs/managed-service.mddescribes the automated Fleet step.For reviewers
/api/cli/token. Cantelop's Fleet route returns 503control_unavailablefor an expired or invalid owner token rather than 401, so an unexpected 503 there usually means auth.cantelopsection issues new API and worker principals and leaves the old ones active. Revoke them viaDELETE /v1/fleets/{flt}/principals/{id}after redeploying.mainwith the three commits cherry-picked, because Make Stripe optional so hosted sign-in can launch without billing #21 was squash-merged.Testing
All three sections ran against production in this setup:
cantelopcreated Fleetflt_01e88a7c…, registered package0.2.0-r24with runtimert_c50272…(matching CLI 0.2.0), issued both principals and revoked the publisher. A check of the log found no tokens.databaseran the migrations, created both roles, confirmed both can connect, and stored their URLs. The Neon resource was then disconnected.After redeploying,
/readyreturns 200, GitHub browser sign-in reaches/account, andjuiced loginwithjuiced whoamishows an active account. Before that, I dry-ran thedatabasesection twice against a local PostgreSQL (withDRY_RUN=1), confirming it's safe to repeat.🤖 Generated with Claude Code