Restrict workspace writes to admins - #1919
Merged
Merged
Conversation
8 tasks
Contributor
Cloudflare previewTorn down — the PR is closed. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
executor-marketing | 322dc6b | Commit Preview URL Branch Preview URL |
Sep 02 2026, 10:33 AM |
Co-authored-by: Max schwenk <maschwenk@gmail.com>
@executor-js/cli
@executor-js/config
@executor-js/execution
@executor-js/sdk
@executor-js/codemode-core
@executor-js/runtime-quickjs
@executor-js/plugin-file-secrets
@executor-js/plugin-graphql
@executor-js/plugin-keychain
@executor-js/plugin-mcp
@executor-js/plugin-onepassword
@executor-js/plugin-openapi
executor
commit: |
RhysSullivan
force-pushed
the
workspace-admin-writes
branch
from
September 1, 2026 18:42
6d1d838 to
1a0e196
Compare
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
executor-cloud | 322dc6b | Sep 02 2026, 10:34 AM |
RhysSullivan
marked this pull request as ready for review
September 2, 2026 10:40
Merged
2 tasks
ra-co88
pushed a commit
to ra-co88/executor
that referenced
this pull request
Sep 13, 2026
Brings the fork up to upstream 2dc399e (Version Packages UsefulSoftwareCo#1906): UsefulSoftwareCo#1949 workspace-write release patch, UsefulSoftwareCo#1834 selfhost Google SSO, UsefulSoftwareCo#1947 Google OAuth listing gate, UsefulSoftwareCo#1934/UsefulSoftwareCo#1931/UsefulSoftwareCo#1933 rate-limit and pricing, UsefulSoftwareCo#1932 pricing nav, UsefulSoftwareCo#1919 admin-restricted workspace writes, plus release tooling and package bumps. Conflict resolution (packages/core/sdk/src/executor.ts, policy paths): upstream UsefulSoftwareCo#1919 landed its own transaction wrap of policiesCreate/ policiesUpdate — kept upstream's wrap verbatim and kept the fork's discriminating it.live concurrent-creates regression test in policies.test.ts. The fork's 8 security/hardening fixes (PRs UsefulSoftwareCo#1886-UsefulSoftwareCo#1893) remain the fork's delta; each has a posted verdict. Housekeeping in the same merge: .oxlintrc.jsonc ignorePatterns gains ".agents/" (local workflow files, gitignored, previously linted as stray errors during gates). executor.ts re-run through oxfmt after hand-resolution. Gates: format:check, lint, typecheck green; test — package suites green (sdk, openapi, keychain, deno-subprocess verified; full parallel turbo run shows rotating SIGINT contention failures on this loaded machine, each "failed" package passes in isolation).
ra-co88
pushed a commit
to ra-co88/executor
that referenced
this pull request
Sep 13, 2026
Regression guard for the tool-policy position race: two equally specific policies created concurrently must land distinct positions. Upstream UsefulSoftwareCo#1919 wrapped policiesCreate/policiesUpdate in a transaction; this pins that guarantee with a discriminating it.live test. Verified load-bearing both directions: passes with the transaction wrap (upstream/main), fails with the pre-UsefulSoftwareCo#1919 unwrapped executor (duplicate positions: Set size 1 vs 2).
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.
Summary
In an organization workspace, only admins can change workspace settings. Members keep read access and their personal resources. The server enforces the rule at every write path: the dashboard API, MCP sessions, and browser approvals. First of two stacked PRs split from #1786.
Restricted writes:
Roles come from live membership at each decision point, including resume of a paused execution and browser-approval polls. Session metadata carries an explicit role model, and legacy metadata fails closed. Connection replacement uses versioned credential references, so a crash mid-write leaves a detectable retryable state with a trace id.
Verification
bun run format:checkbun run lintbun run typecheckbun run testworkspace-write-permissions(cloud and selfhost),mcp-workspace-write-permissions(cloud),admin-users-console(cloud and selfhost),connect-link-multi-org(cloud). Member writes are rejected, and readbacks prove they did not persist. Admin writes succeed.Checklist
bun run changeset), or this change needs none.