Commit Graph
14 Commits
Author SHA1 Message Date
Hugo Durand 81d5c4e2d6 fix(cli): treat a malformed listener id like an unknown one 2026-09-22 17:19:32 -04:00
Hugo Durand 7ae82d40e3 fix(cli): look up an explicit listener by id instead of searching a page 2026-09-22 17:16:36 -04:00
Hugo Durand 80b94edd75 refactor(cli): let the client own its endpoints and split resolving from announcing 2026-09-22 16:31:38 -04:00
Hugo Durand 4ea2701a29 fix(cli): refuse a malformed listener instead of dropping it 2026-09-22 16:29:33 -04:00
Hugo Durand 1c5be315e4 fix(cli): show the control plane's reason without the HTTP envelope 2026-09-22 16:27:39 -04:00
Hugo Durand e42ab5d589 fix(cli): point a managed build at --push-to in a listener workspace 2026-09-22 16:05:15 -04:00
Hugo Durand a3a2a2e33a refactor(cli): drop listeners without an id and name the source arguments 2026-09-22 15:28:20 -04:00
Hugo Durand f89bf66d84 fix(cli): refuse listener flags for an existing deployment before any call 2026-09-22 15:27:09 -04:00
Hugo Durand 904478cbec fix(cli): look up a deployment by exact name instead of a paged search 2026-09-22 15:25:28 -04:00
Hugo Durand beb3e9c1f1 fix(cli): look up listeners only when they can change the placement 2026-09-22 15:23:36 -04:00
Hugo Durand e1156979e3 feat(cli): announce the listener a deployment is placed on 2026-09-22 15:12:10 -04:00
Hugo Durand b809832ea3 feat(cli): refuse listener flags where placement cannot apply 2026-09-22 14:44:39 -04:00
Hugo Durand 16bc576b1b feat(cli): place new self-hosted deployments on a listener 2026-09-22 14:42:58 -04:00
Randall HidajatGitHubHari Dhanushkodiopen-swe[bot] <open-swe@users.noreply.github.com>Hugo Durand
1afaca35a0 feat(cli): add --image-uri flag for self-hosted deployments (#8482)
Adds `--image-uri <uri>` to `langgraph deploy` so self-hosted LangSmith
customers can build, push, and deploy in one command without needing to
script the three steps manually.

When `--image-uri` is provided the CLI:
- Builds the image tagged to the provided URI (same Docker build path as
the local build flow)
- Pushes using whatever Docker credentials are already in the
environment (e.g. WIF, `aws ecr get-login-password`) — no auth handling
in the CLI
- PATCHes the deployment with `source_revision_config.image_uri` (no
`revision_source`, which the self-hosted control plane rejects for
`external_docker` deployments)

Also fixes two self-hosted-specific issues uncovered during testing:
- `LANGSMITH_ENDPOINT` is now used as a fallback when
`LANGGRAPH_HOST_URL` isn't set — the CLI strips the `/api/v1` path and
appends `/api-host` to reach the control plane
- The httpx client now builds full URLs via string concatenation rather
than relying on httpx base_url merging, which silently dropped the
`/api-host` path prefix when paths started with `/`
- The "Check status at" URL after a deploy now correctly points to the
self-hosted LangSmith UI instead of `smith.langchain.com`

**How did you verify your code works?**
Tested end-to-end against a self-hosted LangSmith instance using ECR as
the registry. `langgraph deploy --image-uri <ecr-uri>` successfully
built, pushed, and triggered a deployment revision. Confirmed the
existing SaaS flow (`langgraph deploy` without `--image-uri`) is
unaffected — the new flag is opt-in and the `LANGSMITH_ENDPOINT`
fallback only activates when `LANGGRAPH_HOST_URL` is unset and
`LANGSMITH_ENDPOINT` is present.

---------

Co-authored-by: Hari Dhanushkodi <hari-dhanushkodi@users.noreply.github.com>
Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
Co-authored-by: Hugo Durand <hugo.durand@langchain.dev>
2026-09-22 11:50:02 -04:00