Member Junction
    Preparing search index...
    interface RSUPendingWork {
        Attempts?: number;
        CompanyIntegrationID: string;
        CreatedAt: string;
        CreateDisabled?: boolean;
        CronExpression?: string;
        FullSync?: boolean;
        PromotedColumns?: {
            Columns: {
                ColumnName: string;
                Coverage: number;
                MaxLength: number;
                SchemaFieldType: string;
                SourceKey: string;
            }[];
            EntityMapID: string;
            EntityName: string;
            ExternalObjectName: string;
            IntegrationID: string;
        }[];
        ScheduleSyncDirection?: "Pull"
        | "Push"
        | "Bidirectional";
        ScheduleTimezone?: string;
        SchemaName: string;
        SourceObjectFields?: Record<string, string[] | null>;
        SourceObjectNames: string[];
        StartSync?: boolean;
        SyncDirection?: "Pull" | "Push" | "Bidirectional";
        SyncScope?: "created" | "all";
        UnselectedAction?: "disable" | "ignore";
        WorkType?: "apply-objects" | "promote-columns";
    }
    Index

    Properties

    Attempts?: number

    How many times a consumer has already tried and failed to finish this work.

    Absent means zero — every row written before this field existed has not been retried. The consumer increments it when it re-queues work that failed for a reason a later attempt could plausibly survive (a restart mid-consumption, a transient provider error), and gives up once MAX_RSU_PENDING_ATTEMPTS is reached so a genuinely broken item cannot retry forever.

    CompanyIntegrationID: string
    CreatedAt: string
    CreateDisabled?: boolean

    Refresh diff: when true, entity maps + field maps CREATED by this pending work are born DISABLED (Status='Disabled', SyncEnabled=false) — the schema-evolution default for newly-appeared objects ("we enable nothing; the user needs to go turn them on"). Existing maps are never force-disabled by this flag.

    CronExpression?: string
    FullSync?: boolean
    PromotedColumns?: {
        Columns: {
            ColumnName: string;
            Coverage: number;
            MaxLength: number;
            SchemaFieldType: string;
            SourceKey: string;
        }[];
        EntityMapID: string;
        EntityName: string;
        ExternalObjectName: string;
        IntegrationID: string;
    }[]

    promote-columns only: what to finish once the restart has loaded the regenerated entity classes — the IntegrationObjectField rows, the field maps, and the overflow→column spread.

    The destination names are carried rather than recomputed because uniqueColumnName may have suffixed one (_2) to avoid a collision; deriving it again post-restart would not know that.

    Type Declaration

    • Columns: {
          ColumnName: string;
          Coverage: number;
          MaxLength: number;
          SchemaFieldType: string;
          SourceKey: string;
      }[]
    • EntityMapID: string

      The connection's entity map — field maps hang off this.

    • EntityName: string

      MJ entity the columns were added to.

    • ExternalObjectName: string

      The connector's name for the object, for resolving its IntegrationObject.

    • IntegrationID: string

      Owning integration, for the same resolution.

    ScheduleSyncDirection?: "Pull" | "Push" | "Bidirectional"

    Override sync direction for the created schedule (stored in ScheduledJob.Configuration).

    ScheduleTimezone?: string
    SchemaName: string
    SourceObjectFields?: Record<string, string[] | null>

    Per-object field selections. Key = source object name, value = field names (null = all fields).

    SourceObjectNames: string[]
    StartSync?: boolean
    SyncDirection?: "Pull" | "Push" | "Bidirectional"

    Override sync direction for the initial sync triggered by this RSU run.

    SyncScope?: "created" | "all"
    UnselectedAction?: "disable" | "ignore"

    Remove-as-disable: what the post-restart consumer does with existing entity maps whose object is NOT in SourceObjectNames. 'disable' (default) = Status='Disabled' + SyncEnabled=false (+ field maps disabled; data kept, re-selection re-enables); 'ignore' = leave them untouched (additive/subset apply).

    WorkType?: "apply-objects" | "promote-columns"

    What the post-restart consumer should do with this row.

    Absent means 'apply-objects' — every row written before this field existed is that, and the consumer must keep treating it that way.

    'promote-columns' carries RSUPendingWork.PromotedColumns instead of relying on a fresh introspection: promotion has already decided which source keys become which columns, including any collision suffix, and re-deriving those names after the restart could produce different ones.