Skip to content

Commit dea1cfb

Browse files
authored
feat: agent catalog foundations and migration (#14316)
* feat(catalog): add policy data model * fix(catalog): harden foundation migration * feat(catalog): add policy service and admin API (#14318) * feat(catalog): add policy service and admin API * feat(catalog): expose governance config flag (#14319) * feat(catalog): expose governance config flag * feat(catalog): filter component palette by policy (#14320) * feat(catalog): filter component palette by policy * feat(catalog): filter starter templates by policy (#14321) * feat(catalog): filter starter templates by policy * feat(catalog): enforce component policy at runtime (#14322) * feat(catalog): close remaining enforcement paths (#14364) * fix(catalog): sequence migration after provider policy * fix(catalog): remove stale authorization test mock
1 parent 15de3f2 commit dea1cfb

55 files changed

Lines changed: 4992 additions & 208 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/docs/Deployment/deployment-block-custom-components.mdx

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,23 @@ LANGFLOW_CUSTOM_COMPONENT_ADMIN_ONLY=true
3131

3232
When set to `true`, non-superusers can still view and use custom components in flows, but they cannot create new custom components or edit custom component code.
3333

34+
## Interaction with catalog governance
35+
36+
Catalog governance takes precedence over the custom-code settings on the custom-component create, update, and code-validation endpoints. A catalog block has no superuser bypass.
37+
38+
| Submitted source | Catalog policy | Custom components | Admin-only mode | Result |
39+
|---|---|---|---|---|
40+
| Known server template | Blocked | Either | Either | Denied for every user |
41+
| Known server template | Allowed | Disabled | Either | Allowed using the trusted server source |
42+
| Known server template | Allowed | Enabled | Non-superuser | Allowed using the trusted server source |
43+
| Unknown custom source | Not blocked | Disabled | Either | Denied |
44+
| Unknown custom source | Not blocked | Enabled | Non-superuser | Denied |
45+
| Unknown custom source | Not blocked | Enabled | Superuser or admin-only disabled | Allowed |
46+
47+
For `POST /api/v1/validate/code`, this policy runs before the source is parsed or imports are inspected. In a restricted custom-code mode, known templates are validated from the trusted server copy, while unknown source follows the same disabled or admin-only rule as the component editor. On custom-component create and update, known blocked template source is rejected before the component is built, and the resolved component type is checked again before request-supplied frontend updates are applied.
48+
49+
An active catalog policy fails closed with a temporary `503` response while server template identities are still initializing. An empty catalog policy preserves the default behavior and does not require template identity lookups.
50+
3451
## Configure a custom component allow-list
3552

3653
`LANGFLOW_ALLOW_CUSTOM_COMPONENTS` works together with optional paths that define which component templates the server loads, and which code hashes are trusted.
@@ -62,4 +79,4 @@ Default is `true`, which preserves existing behavior. The setting has no effect
6279
For more information, see:
6380

6481
* [Environment variables](/environment-variables#visual-editor-and-playground-behavior)
65-
* [Security](/security)
82+
* [Security](/security)

0 commit comments

Comments
 (0)