feat(management): dispatch FlowDebugRunScriptCommand (Deployer-only, long-running) on the ManagementActor
Claude-Session: https://claude.ai/code/session_01NcMG6xXdsJbmD2wYAgkK29
This commit is contained in:
@@ -343,10 +343,15 @@ public class FlowDebugRunnerTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RoleGate_TheTwoRunCommands_AreDeployerOnly()
|
||||
public void RoleGate_TheThreeRunCommands_AreDeployerOnly()
|
||||
{
|
||||
// arch-review F3: a Live run executes scripts and writes attributes, so it stays Deployer-only.
|
||||
foreach (var cmd in new object[] { new FlowDebugRunMethodCommand(1, null), new FlowDebugRunValueChangeCommand(1, "a", "b") })
|
||||
foreach (var cmd in new object[]
|
||||
{
|
||||
new FlowDebugRunMethodCommand(1, null),
|
||||
new FlowDebugRunValueChangeCommand(1, "a", "b"),
|
||||
new FlowDebugRunScriptCommand(1, "Manual", null, null),
|
||||
})
|
||||
Assert.Equal(new[] { "Deployer" }, ManagementActor.GetRequiredRoles(cmd));
|
||||
}
|
||||
|
||||
|
||||
@@ -151,6 +151,7 @@ public class RequiredRoleMatrixTests
|
||||
// for a past incident and an auditor must be able to follow them.
|
||||
["FlowDebugRunMethod"] = [Roles.Deployer],
|
||||
["FlowDebugRunValueChange"] = [Roles.Deployer],
|
||||
["FlowDebugRunScript"] = [Roles.Deployer],
|
||||
["FlowDebugReplay"] = FlowDebuggerReplayers,
|
||||
|
||||
// ---- Two-person secured write ----------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user