Wire the deploy page to the platform API - #3365
Open
dakshina99 wants to merge 1 commit into
Open
Conversation
dakshina99
requested review from
AnuGayan,
Arshardh,
CrowleyRajapakse,
HeshanSudarshana,
HiranyaKavishani,
Induwara04,
Krishanx92,
PasanT9,
Piumal1999,
RakhithaRR,
Tharsanan1,
Thushani-Jayasekera,
ashera96,
chamilaadhi,
dushaniw,
hisanhunais,
lasanthaS,
malinthaprasan,
pubudu538,
renuka-fernando,
senthuran16,
tgtshanika,
tharikaGitHub,
tharindu1st and
thivindu
as code owners
September 3, 2026 21:12
Contributor
|
Warning Review limit reachedNext included review available in 17 minutes. View limit detailsLimit details: You’ve used the included review currently available. This review ran on the open-source allowance, not this organization's plan, because the pull request author doesn't have an assigned seat. Waiting won't change this — ask an organization admin to assign them a seat, or add seats in Billing if every seat is already assigned, then retry. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (20)
Comment |
dakshina99
force-pushed
the
apip-deploy-plugin
branch
2 times, most recently
from
September 6, 2026 13:26
55e3249 to
56b7a26
Compare
Takes the revamped deploy page off its mock and onto real data, through the host-injected apiFetch. DeployFeature owns the data and the actions; the page and its cards stay as they were laid out. The page consumes the API's own vocabulary rather than translating it: a gateway's deployment state arrives as the platform's status, its endpoint and default flag arrive with it, and NOT_DEPLOYED is a state the server reports rather than one the client infers. Gateway health is kept separate from deployment state - a healthy gateway with nothing on it is exactly what a first deployment targets, so health gates Deploy and Promote while the deployment's own status drives the row. Deploy sends the API as it stands and the server snapshots it, so the build area reports what was last built instead of asking for one. What has no backing is gone rather than left showing seeded numbers: environment variables, per-gateway history, and the region label, which is now the gateway's host. The gateway row's endpoint drawer is labelled for what it opens. Registers against the page.apiDeploy slot, the same override arrangement the gateways page uses, and carries the API in scope on the Port. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
dakshina99
force-pushed
the
apip-deploy-plugin
branch
from
September 6, 2026 13:33
56b7a26 to
a092e9b
Compare
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.
Purpose
The Deploy page is a self-contained mock: it seeds its own environments, fakes a
deployment with a
setTimeout, and invents build ids. Nothing it shows is real,and nothing it does leaves the browser.
This wires it to the platform API, on top of the revamped page from #3379.
Goals
real data requires.
Approach
The page consumes the API's own vocabulary. A gateway's deployment state
arrives as the platform's own status and is rendered from that, rather than being
translated into a private set of names on the way in.
NOT_DEPLOYEDis a statethe server reports for a gateway the API has never reached, so an environment can
list every gateway it has without the client inferring anything. The endpoint a
gateway was deployed with, and which gateway is an environment's default, arrive
on the same listing — so the dialog preselects the same gateway the server would
choose and opens on the endpoint that gateway is actually serving, with no second
call and no shape of its own.
Gateway health and deployment state are kept apart. Whether a gateway can
receive a deployment is its own health, reported by the gateways resource; what is
deployed on it is a different fact. A healthy gateway with nothing on it is
exactly what a first deployment targets, so health gates Deploy and Promote while
the deployment's status drives the row and its pill. Collapsing the two would have
left a brand-new API unable to deploy anywhere.
Deploy means "ship the API as it stands". The server snapshots the definition
and deploys that snapshot, so there is no build step to perform first: the build
area reports what was last built instead of asking for one. Promote carries the
build an environment is already running forward; the server checks it against that
environment's live state, so the page cannot offer a promotion that would be
rejected.
What has no backing is gone, not left seeded. The environment-variables
drawers and per-gateway history showed numbers from the mock, and
regionwasnever anything the API knows — the gateway's host is, so that is what the row and
picker show now. The gateway row's drawer is labelled Endpoint URL, which is what
it opens.
DeployFeatureowns the data and the actions;DeployPageand its cards staypresentational. The view polls only while a deployment is settling and stops as
soon as everything has.
Wiring
Registered against a new
page.apiDeployslot — the same override arrangementpage.gatewaysalready uses, so the native nav entry and route stay in place andonly what renders there changes. The Port carries the API in scope as
apiHandle,which is what an API-scoped feature needs and what nothing else had required yet.
Not registered on the AI Workspace host: deploying is scoped to one API and that
host has no API-scoped placement, so the page could only tell the user to open an
API. The feature package is shared and unchanged.
User stories
endpoint it serves.
Documentation
N/A — no user-facing documentation exists for this page yet.
Automation tests
Security checks
Notes: every call goes through the host's
apiFetch, which is same-origin andauthenticated by the BFF — this package never sees a token, a base URL or an
organization id. The server owns every rule the page appears to enforce.
Related PRs
Builds on #3379 (the Deploy page revamp this wires up). The endpoints it calls are
added by the cloud extension.
Test environment
Node 22, macOS 15 (darwin/arm64).