Portal Community

The Four Access Roles

Owner

Full control — design, execute, share, delete. The creator of a workflow is always its initial Owner.

Editor

Can design and execute. Cannot share (grant access to others) or delete the workflow.

Viewer

Read-only access to the canvas and execution history. Cannot change the definition or trigger execution.

Executor

Can trigger execution only. Cannot see the canvas design or edit anything.

Where Access Is Checked

Access is enforced at the API gateway layer — before any engine code runs. Every controller action that touches a workflow passes through the ProcessAccessGuard middleware, which calls IProcessAccessChecker.CheckAsync. If the check fails, the request is rejected with 403 Forbidden before the engine sees it.

Engine has no access logic: The execution engine itself does not check access. It trusts the API layer. This is by design — it keeps the engine simple and allows external systems to call the engine directly with a service account.

Tenant Isolation

Every workflow (Process) belongs to exactly one tenant. A workflow is never visible outside its owning tenant, even if actors from other tenants exist in the system. There is no cross-tenant sharing. The only exceptions are:

Role Capability Matrix

ActionOwnerEditorViewerExecutor
View canvasYesYesYesNo
Edit nodes/edgesYesYesNoNo
Execute workflowYesYesNoYes
View execution historyYesYesYesYes
Share (grant/revoke access)YesNoNoNo
Delete workflowYesNoNoNo
Export / importYesYesNoNo