Member Junction
    Preparing search index...

    Modify an existing interactive-form override.

    Behavior is driven by the VersionBumpKind input and the source Override's status (Override is the canonical "is this live" signal — Component.Status can drift independently):

    Source Status VersionBumpKind Behavior
    Pending in-place (default) Overwrite the existing Pending Component row in place. No new version. Iteration-loop behavior.
    Pending patch / minor / major Demote the existing Pending → Inactive, then insert a new Pending Component v(bumped) + new Pending Override pointing at it. Creates rollback.
    Active in-place Rejected — would corrupt the live Active row. Returns INVALID_BUMP_FOR_STATUS.
    Active patch / minor (default) / major Insert new Pending Component v(bumped) + new Pending Override. Active is untouched — user explicitly Activates later.
    Inactive in-place Rejected — overwriting a dead row achieves nothing. Use 'Revert Interactive Form' to re-activate first, or supply a bump kind.
    Inactive patch (default) / minor / major Branch-from-historical. Insert new Pending Component v(bumped) sourced from this Inactive spec. The Inactive source is left alone (already historical).

    Defaults preserve historical behavior: omit VersionBumpKind and 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 CheckPersonalWrite in _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 modify
    • Spec (required, ComponentSpec | string) — the new form spec
    • Notes (optional, string) — appended to the override's Notes column
    • VersionBumpKind (optional, 'in-place' | 'patch' | 'minor' | 'major') — see table above

    Outputs:

    • ComponentID — the Component row that now holds the spec (new for snapshots, same for in-place)
    • OverrideID — the Override row that points at it
    • Mode — 'in-place' or 'new-version'
    • Version — the Component's resulting Version string

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Accessors

    Methods

    Constructors

    Properties

    AuthorizesCaller: true

    Changes only the caller's own User-scope forms and panels, with the caller's permissions.

    Accessors

    • get SupportsAudience(): boolean

      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).

      Returns boolean

    Methods