Repository navigation
feat(tools)!: authoring tools use stock deploy + asset git; delete workflow-authoring mount (CL-8171) - #768
Merged
Merged
Conversation
…un bearer workflow_deploy no longer posts to the Workbench-specific /api/workflow-workflow-authoring/:assetId/deploy mirror. It reads the tenant's resolved inference catalog from stock GET /api/tenants/:tenantId/models, flattens it into one priority-ordered sourceOfferingIds chain, and posts an asset/source deploy to stock POST /api/tenants/:tenantId/workflows/deployments. The run bearer authenticates both; the tenant id rides on the step env, already threaded from the hub's signed deploy frame. Flattening is the one non-trivial mapping: the deleted mirror resolved the chain server-side from listVisibleOfferings sorted by priority, while the discovery route groups its offerings under each model, so the client has to restore a single global priority order. A red/green test covers it. The mirror route, its registry operation and their tests are deleted. The hub's own workflowDeployer stays: the on-demand catalog-block deploy still drives it. What is left on the /api/workflow-workflow-authoring mount is the git half alone -- author, republish, source read, deploy preview -- which no run-bearer credential can do against stock git smart-HTTP today (CL-8171). Claude-Session: https://claude.ai/code/session_01RweuMUskU2nvcFhdckc7EG
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.
Cuts
workflow_deployover to Interchange's stock routes and reduces theWorkbench-specific
/api/workflow-workflow-authoringmount to the gitoperations alone. CL-8171.
What moved
workflow_deployno longer posts to/api/workflow-workflow-authoring/:assetId/deploy. It now:GET /api/tenants/:tenantId/models,sourceOfferingIdschain, andasset/sourcedeploy naming the commit to stockPOST /api/tenants/:tenantId/workflows/deployments.The run bearer (sidecar token +
x-workflow-run-address) authenticatesboth, through
apps/hub/src/workflow-run-tenant-auth.ts. The tenant idrides on the step env, already threaded from the hub's signed deploy
frame by #764.
The flattening is the one non-trivial mapping and has a red/green test:
the deleted mirror resolved the chain server-side from
listVisibleOfferingssorted bypriority, while the discovery routegroups its offerings under each model — so the client has to restore a
single global priority order across models, not preserve the grouping.
Deleted: the mirror route,
WorkflowAuthorRegistry.deploy, and theirtests. Kept: the hub's
workflowDeployer, which the on-demandcatalog-block deploy still drives — it did not fall unused.
Why the mount is reduced, not deleted
readSource/author/republish/deploy previewread and writegit trees. Their stock equivalent is git smart-HTTP on the asset repo,
and no run-bearer credential reaches it today:
vendor/intx/hub-api/src/middleware/git-token-auth.tsgates/api/tenants/:tenantId/assets/:kind/:name.git/*on a secret with anitx_pat_/itx_svc_prefix that hashes to agit_tokenrow. A runbearer is a
sidecarrow token and fails the prefix check outright.createTenantGitTokenRoutesinvendor/intx/hub-api/src/routes/git-tokens.ts, is reachable under thewidened run-bearer mount but returns 401 for a caller with no
c.get("user").createWorkflowRunDeployAuthsets onlytenantandprincipal, neveruser, and the handler also wants agit-token:*/creategrant the run principal does not hold.So the mount stays for the git half, with a comment naming CL-8171. The
upstream ask is recorded on CL-8171 and CL-7575.
Known delta
The deleted mirror called
recordAgentSessionAtProvisionafterprovisioning; the stock route does not, so an agent-driven deploy no
longer writes that eager
agent_sessionrow. Noted on CL-8171 — it isinherent to "tools speak stock routes only" and wants its own fix.
Verification
bun run typecheck,bun run lint,bun run check:structuralandbun testover the touched packages all pass locally. No test stack wasrunning (
docker compose -f docker-compose.test.yml psis empty), so nolive author→deploy round trip was done.
https://claude.ai/code/session_01RweuMUskU2nvcFhdckc7EG