Skip to content

Scope tool policies to the account they are set under - #2062

Merged
RhysSullivan merged 1 commit into
mainfrom
replo-policy-scope
Sep 18, 2026
Merged

RhysSullivan merged 1 commit into
mainfrom
replo-policy-scope

Conversation

@RhysSullivan

Copy link
Copy Markdown
Collaborator

On the integration Tools tab, a policy set from a row inside an account section used to write a connection-wildcarded pattern (integration.*.*.tool). With two connections of one integration, blocking a tool under one account blocked it under the other too.

  • Rows inside an account section now write integration.<owner>.<connection>.tool; category rows write integration.<owner>.<connection>.group.*.
  • Each account header gets a menu that sets a rule for the whole connection (integration.<owner>.<connection>.*).
  • The tool detail badge uses the same account-pinned pattern, so it recognizes its own rule.
  • Members no longer see policy menus they cannot use. The server refuses org policy writes from non-admins.
  • messageFromExit now reads message from error instances whose message is a getter, so a refused write shows the server's reason instead of a generic failure. The duplicate decoder in integration-add.tsx reuses it.

The flat Tools page keeps the connection-agnostic form.

Verified: react unit tests, policies-ui and selfhost integration-creation-permissions e2e scenarios.

@RhysSullivan
RhysSullivan marked this pull request as ready for review September 18, 2026 19:18
@RhysSullivan
RhysSullivan merged commit 29413d8 into main Sep 18, 2026
41 of 42 checks passed
@RhysSullivan
RhysSullivan deleted the replo-policy-scope branch September 18, 2026 19:18
@github-actions

github-actions Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Cloudflare preview

Torn down — the PR is closed.

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