Skip to content

feat(catalog): add policy service and admin API - #14318

Merged
erichare merged 3 commits into
feat/agent-catalogfrom
feat/agent-catalog-policy
Jul 31, 2026
Merged

feat(catalog): add policy service and admin API#14318
erichare merged 3 commits into
feat/agent-catalogfrom
feat/agent-catalog-policy

Conversation

@erichare

@erichare erichare commented Jul 29, 2026

Copy link
Copy Markdown
Member

Summary

Adds the central catalog-policy decision service, process-local snapshot cache, and superuser administration API on top of the catalog-policy schema PR.

  • add an LFX policy contract with immutable component/template block snapshots and default-allow single/batch decisions
  • add the Langflow database-backed implementation with startup hydration and post-commit atomic snapshot publication
  • add whole-set GET/PUT endpoints for /api/v1/catalog-policy/components and /api/v1/catalog-policy/templates
  • require an active superuser for every catalog-policy read/write
  • normalize, deduplicate, and deterministically order keys while preserving case and accepting not-yet-installed catalog keys
  • emit one post-commit catalog:block / catalog:unblock audit event per changed key
  • keep standalone LFX and unavailable/broken policy implementations fail-open with a stable allow-all fallback

Jira

Validation

  • backend catalog policy service/API tests — 18 passed
  • isolated LFX catalog policy tests — 3 passed
  • Ruff and pre-commit hooks — passed
  • code review — no findings after fail-open fallback hardening
  • API security review — superuser gating and input/SQL handling clean

Operational note

The ticket specifies an in-process cache. A successful write invalidates and replaces the snapshot in the worker handling that request; sibling workers hydrate at startup and require a future distributed invalidation/version-polling mechanism for immediate cross-worker coherence. The API uses the existing audit_decision pipeline, so persistence follows the existing AUTHZ_AUDIT_ENABLED setting.

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (1)
  • release-.*

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 95d09b34-5078-492f-9489-a7829a1ad2dd

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jul 29, 2026
* 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)
@erichare
erichare marked this pull request as ready for review July 31, 2026 19:31
@erichare
erichare merged commit 7c0a754 into feat/agent-catalog Jul 31, 2026
19 of 21 checks passed
@erichare
erichare deleted the feat/agent-catalog-policy branch July 31, 2026 19:31
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jul 31, 2026
@github-actions

Copy link
Copy Markdown
Contributor

✅ Test Coverage Advisor

No source changes detected without accompanying tests. Thanks for keeping coverage up! 🎉

Advisory check only — never blocks merge.

erichare added a commit that referenced this pull request Jul 31, 2026
* 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)
erichare added a commit that referenced this pull request Jul 31, 2026
* 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant