ReadonlyExecutionWhether this operation is a plain Sync request/response or a LongRunning run.
ReadonlyOperationStable registry key and wire token for this operation (e.g. RecordProcess.RunNow).
ReadonlyRequiredAPI-key scope required to invoke this operation.
entity:update is the ceiling applied at the resolver; per-record Create vs Update
permissions are enforced inside each node's own Save().
Optional ReadonlyRequiresWhen true, the server only permits the system user to invoke this operation.
ProtectedAuthorizeValidates the shape of the incoming payload.
Deliberately not where entity permissions are checked. Two other layers already own that, and duplicating it here would need a provider this hook is not given:
TransactionGroupResolver was patched for.BaseEntity.Save() calls CheckPermissions() for Create or Update as
appropriate, per record, against the acting user — including children the caller never
named explicitly.The graph payload.
The acting user.
True when the payload is well-formed enough to attempt.
The universal entry point — identical on client and server. Routes the operation through the active (or explicitly supplied) provider's IRemoteOperationProvider.RouteOperation.
The typed input payload.
Optional invocation options (mode, progress callback, explicit provider/user).
The result; never throws for logical failures — inspect Success / ErrorMessage.
Server-side execution entry point, invoked in-process by a server provider / resolver after it has resolved this operation by key and applied the framework authorization gates (scope / system-user / entity permissions). It runs the per-operation Authorize hook and then InternalExecute, wrapping the outcome in a RemoteOpResult.
The typed input payload.
The server execution context (provider, acting user, progress emitter).
The wrapped result; logical failures are returned, not thrown.
ProtectedInternalRebuilds the graph server-side and saves it.
The graph payload.
The provider to build entity objects from.
The acting user.
The server execution context.
The post-save root fields and re-serialised companions.
Saves a parent record and its companion-contributed children atomically, server-side.
Invoked automatically by
BaseEntity.Save()when the entity has companion work to do and the active provider cannot open a local transaction. Application code does not normally call this directly — the point of the design is thatorder.Save()is the whole API on both tiers.