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
Modify an existing interactive-form override.
Behavior is driven by the
VersionBumpKindinput and the source Override's status (Override is the canonical "is this live" signal — Component.Status can drift independently):in-place(default)patch/minor/majorin-placeINVALID_BUMP_FOR_STATUS.patch/minor(default) /majorin-placepatch(default) /minor/majorDefaults preserve historical behavior: omit
VersionBumpKindand Pending sources stay in-place, Active sources bump minor, Inactive sources bump patch (the conservative branch-from-historical case).Ownership. Only the caller's own User-scope overrides can be modified. 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. A new Pending Override is written User-scope, as Create writes it.Atomicity. The in-place Component and Override writes run in one entity transaction, and so do the new-version Component and Override inserts, so a refused Override save leaves no Component change behind.
Inputs:
OverrideID(required, string) — the override to modifySpec(required, ComponentSpec | string) — the new form specNotes(optional, string) — appended to the override's Notes columnVersionBumpKind(optional, 'in-place' | 'patch' | 'minor' | 'major') — see table aboveOutputs:
ComponentID— the Component row that now holds the spec (new for snapshots, same for in-place)OverrideID— the Override row that points at itMode— 'in-place' or 'new-version'Version— the Component's resulting Version string