You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(copilot): gate materialize_file writes and enforce the deploy mutation lock
materialize_file's save/extract/import all create workspace resources, but
the handler-map path has no central permission check, so a read-only member
could create files and workflows through the agent. Gate on write access
after param validation.
assertWorkflowMutable moves into performFullDeploy / performFullUndeploy /
performActivateVersion, where performRevertToVersion already had it. The
check previously lived only in the deploy routes, so the copilot deploy
tools — which call the orchestration functions directly — could deploy,
undeploy, and activate versions of a locked workflow.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@@ -504,6 +505,15 @@ export async function executeMaterializeFile(
504
505
error: `Unsupported materialize_file operation "${operation}". Use "save", "import", or "extract". For CSV/TSV/JSON → use the table subagent; for documents → use the knowledge subagent.`,
505
506
}
506
507
}
508
+
509
+
// Every operation writes: save/extract create files, import creates a workflow.
510
+
// The handler-map path has no central permission gate.
0 commit comments