Skip to content

Routines: add catalog workflows to the bench from the page (CL-7073) - #648

Merged
TheGreatAxios merged 5 commits into
mainfrom
cl-7073-catalog-add-ui
Sep 5, 2026
Merged

TheGreatAxios merged 5 commits into
mainfrom
cl-7073-catalog-add-ui

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

Part of CL-7073

Stack: #645 → #646 → this

@linear-code

linear-code Bot commented Sep 5, 2026

Copy link
Copy Markdown

CL-7073

@TheGreatAxios
TheGreatAxios force-pushed the cl-7073-catalog-add-ui branch 2 times, most recently from f902ad0 to 68f421d Compare September 5, 2026 02:55
@TheGreatAxios
TheGreatAxios force-pushed the cl-7073-catalog-instantiate branch from 7c72dbe to 4377eff Compare September 5, 2026 03:09
Covers the pure available-list computation (deployed entries excluded,
connection satisfaction, unknown catalog names skipped), the GET
/available route (injected list, grant denial), and the Routines
page's Available section (renders entries, Add posts through the
existing template-blocks deploy route, disabled Add with a reason for
a missing connection).
Hub: GET /api/tenants/:tenantId/workflows/available lists every
CATALOG_WORKFLOWS entry with no deployed definition on the caller's
bench yet, carrying WORKFLOW_CATALOG's display name/description,
required connections, and whether the tenant satisfies them (a
provider row exists and its newest credential is active). Read-only,
grant workflow:* read; catalogAssetNames is injected from apps/hub
since @corbits/seeding already depends on @corbits/workflows.

Web: the Routines page gets an Available section listing those
entries with an Add action that POSTs the existing
/template-blocks/:assetName/deploy route, shows a busy state, and on
success invalidates both the available and scheduled queries so the
entry moves into the deployed list. A missing required connection
disables Add with a reason in consumer language and a link to
Plugins. 4xx envelopes surface with their refId.
…(CL-7073)

Covers the Available catalog critique findings: a workflow's required
connection now reads as satisfied when a parent bench (not only the
exact deploying tenant) carries it, resolved with one IN query per
table across every connector this tenant's catalog needs rather than
one round trip per connector; and each entry's own deployable flag,
false with a machine notDeployableReason for a catalog workflow this
pin cannot deploy, disabling Add in the UI with honest, non-technical
copy instead of a working-looking button.
…(CL-7073)

available-catalog.ts's connection satisfaction now walks the tenant's
ancestor chain (getAncestorChain, @intx/db) the way Plugins' own
connectorStatus and credential resolution do, so a child workbench sees
a connection its parent bench made. Every connector a tenant's catalog
might need is resolved in one provider query and one credential query
(both IN-scoped), not one round trip per connector.

Each AvailableCatalogWorkflow entry also carries deployable and, when
false, a machine notDeployableReason — apps/hub wires @corbits/seeding's
catalogWorkflowDeployableOnThisPin through the route so the six
credential-bound catalog entries answer deployable: false. The Routines
page disables Add for those with "Coming with the next platform
update." and no Plugins link, instead of a button whose click always
fails.
@TheGreatAxios
TheGreatAxios changed the base branch from cl-7073-catalog-instantiate to main September 5, 2026 03:23
@TheGreatAxios
TheGreatAxios merged commit 1a73e59 into main Sep 5, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant