Static ReadonlyAuthorizesChanges only the caller's own User-scope forms and panels, with the caller's permissions.
Whether this action can bound what it returns to an audience (RunActionParams.Audience): everyone
besides the caller who will see its output, such as the other participants of a shared conversation.
false by default, and the engine enforces it: when a run's audience adds a reader beyond the caller,
ActionEngineServer.RunAction refuses the action with result code AUDIENCE_UNSUPPORTED, without running
it. Override to return true only when the action honours the audience in full — every record, snippet
and count it returns is something every reader may see (pass the audience to the search engine, check each
reader's entitlement to anything it scopes by, and leave out aggregates computed before that filtering).
ProtectedInternalInternal method that must be implemented by derived action classes. This is where the actual action logic should be implemented.
The action execution parameters including typed context
Promise resolving to the action result
Executes the action with the provided parameters.
The action execution parameters including context
Promise resolving to the action result
Revert the user's Active override to an older Component version. Pure re-point: no new Component is created, no new Override row is created.
Behaviour:
ActiveOverrideIDif supplied, or look it up using the target Component's EntityID.TargetComponentIDor byTargetVersionSequence(relative to the Component lineage sharing the same Name as the currently-active Component).ComponentIDto the target → save.The override is saved first. Both Component status saves are then tried, even when the first fails. If either fails, or the target Component cannot be loaded for its status save, the action returns
PERSIST_FAILEDthat names every Component whose status was not updated; the override stays re-pointed. The override then already points at the target, so a retry with the same target returns SUCCESS from the no-op path and the Component statuses stay as they are.Old Component rows are never deleted — they remain as immutable history. A subsequent revert can move forward again to any version.
Only the caller's own User-scope overrides can be reverted. A Role or Global override, or another user's, returns FORBIDDEN for every caller (see
CheckPersonalWritein_shared.ts): shared forms are managed from Form Builder or the form's Manage drawer.Inputs:
ActiveOverrideID(required, string) — the Active override to re-pointTargetComponentID(string) — explicit Component to revert to, orTargetVersionSequence(number) — pick the Component with this VersionSequence in the same Name lineageOutputs:
OverrideID— echoedComponentID— the newly-Active componentPreviousComponentID— the component we demotedVersion— version string of the now-Active component