Member Junction
    Preparing search index...
    CompanyIntegrationObjectRow: Pick<
        MJIntegrationObjectEntity,
        | "ID"
        | "IntegrationID"
        | "Name"
        | "DisplayName"
        | "Description"
        | "Category"
        | "APIPath"
        | "ResponseDataKey"
        | "DefaultPageSize"
        | "SupportsPagination"
        | "PaginationType"
        | "SupportsIncrementalSync"
        | "SupportsWrite"
        | "DefaultQueryParams"
        | "Configuration"
        | "Sequence"
        | "Status"
        | "WriteAPIPath"
        | "WriteMethod"
        | "DeleteMethod"
        | "IsCustom"
        | "CreateAPIPath"
        | "CreateMethod"
        | "CreateBodyShape"
        | "CreateBodyKey"
        | "CreateIDLocation"
        | "UpdateAPIPath"
        | "UpdateMethod"
        | "UpdateBodyShape"
        | "UpdateBodyKey"
        | "UpdateIDLocation"
        | "DeleteAPIPath"
        | "DeleteIDLocation"
        | "IncrementalWatermarkField"
        | "MetadataSource"
        | "SupportsCreate"
        | "SupportsUpdate"
        | "SupportsDelete"
        | "SyncStrategy"
        | "ContentHashApplicable"
        | "StableOrderingKey",
    > & {
        CompanyIntegrationID: string;
        FirstSeenAt: Date
        | null;
        IntegrationObjectID: string | null;
        IsSelected: boolean;
        LastSampledAt: Date | null;
        LastSeenAt: Date | null;
        Provenance: CatalogProvenance;
        ProvenanceDetail: string | null;
        SelectedAt: Date | null;
    }

    A per-connection object as read sites see it: every IntegrationObject property, plus the per-connection additions. Structurally assignable to MJIntegrationObjectEntity for the property reads connectors perform, which is what makes the swap invisible to them.

    Type Declaration

    • CompanyIntegrationID: string

      The connection this row belongs to. The axis the whole design exists for.

    • FirstSeenAt: Date | null
    • IntegrationObjectID: string | null

      The declared row this was matched to, or null when the object exists only for this connection.

    • IsSelected: boolean

      Catalog membership and sync selection are separate axes. Conflating them is what made a newly-discovered object arrive Disabled and therefore vanish from schema introspection, key inference and migration — the customer saw it in the picker, selected it, and got nothing.

    • LastSampledAt: Date | null
    • LastSeenAt: Date | null
    • Provenance: CatalogProvenance
    • ProvenanceDetail: string | null

      Per-attribute merge log the persist already computes and currently discards.

    • SelectedAt: Date | null