ReadonlyContractOptional structural contract fingerprint emitted by CodeGen (or set by a hand-authored
operation). Automatically forwarded on Execute when the caller didn't override
options.contractFingerprint, allowing the server resolver to detect stale client bundles.
ReadonlyExecutionWhether this operation is a plain Sync request/response or a LongRunning run.
Optional ReadonlyExposeWhen true, exposes this operation for automatic discovery by MJ AI Agent tool adapters.
Optional ReadonlyExposeWhen true, exposes this operation for automatic discovery by MJ MCP server tool adapters.
ReadonlyOperationStable registry key and wire token for this operation (e.g. RecordProcess.RunNow).
ReadonlyRequiredOptional API-key scope string (e.g. recordprocess:execute) enforced for API-key / MCP
callers by the server resolver. undefined means no scope gate; interactive users remain
bounded by their entity permissions. Informational here — the server applies it.
ReadonlyRequiresWhen true, the server only permits the system user to invoke this operation.
Optional ReadonlyToolHuman/LLM-readable description when exposed as an Agent or MCP tool.
Optional ReadonlyToolOptional JSON-Schema object describing TInput when exposed as an Agent or MCP tool.
ProtectedAuthorizePer-operation authorization hook, composed with (and applied after) the framework gates that
the server resolver runs. Returns true by default. Override to enforce operation-specific
rules against the input, acting user, and server transport context (e.g. context.requestOrigin).
The typed input payload.
The acting user.
True if the operation may proceed.
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.
Optionaloptions: RemoteOpInvokeOptionsOptional 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, HTTP metadata).
The wrapped result; logical failures are returned, not thrown.
ProtectedInternalThe operation's server-side work. The default throws — a routable operation must supply a
body (CodeGen-emitted AI/default plumbing, or a hand-authored override). Implementations must
use context.provider / context.user for data access (never new Metadata()), per the
multi-provider rule.
The typed input payload.
The owning provider for data access.
The acting user.
The full server execution context (provider, user, progress emitter, handle, origin, IP).
The typed output payload.
StaticGetDiscovers all ClassFactory-registered BaseRemotableOperation subclasses that opt into
AI Agent (ExposeAsAgentTool) and/or MCP (ExposeAsMCPTool) tool exposure.
Optionalfilter: { agentOnly?: boolean; mcpOnly?: boolean }
Server implementation of the
Query.RefreshExtractionremote operation: refreshes one saved query, or a selection, through QueryExtractionService, reporting each query as a progress event as it finishes.Authorizerefuses a caller without Update onMJ: Queriesand Create, Update and Delete on its child entities; the service applies the same check and the per-query non-disclosure guard for every entry point. An API-key caller also needs the operation'squery:refreshscope. A request for exactly one query ID, and nothing else, reports a query that does not exist and one the caller may not refresh with the same message.