OptionalCatalogOptionalCompanyThe connection this discovery belongs to. Required to write the per-connection catalog; the IntegrationID stays alongside it because the declared floor a discovery overlays is still looked up by connector, and because a per-connection row carries it denormalised.
OptionalDeactivateWhen true, declared IntegrationObjects that are ABSENT from this discovery are deactivated (Status='Disabled') so ApplyAll never materializes a table for them — avoiding thousands of phantom empty tables and the per-entity CodeGen/advancedGen cost they incur. Set ONLY by a COMPREHENSIVE refresh that probed every object (endpoint 404/empty = confidently absent); a requested-subset ApplyAll must leave it false, or it would deactivate objects it never checked. Object-level only — field-level absence (a field null across the data sample is NOT proof of absence) is deliberately not deactivated here. Deactivate, never delete: the IO + its column are preserved, and the CustomColumnPromoter reactivates them if the object reappears.
OptionalDeactivateThe FIELD half of DeactivateAbsent, separately gateable. Defaults to DeactivateAbsent.
Per object the field list is complete, so absent fields may retire there; the final name pass
carries name stubs with no fields, so retiring fields there would disable every column of
every object. Still gated on an authoritative source, exactly as DeactivateAbsent is.
OptionalDeactivateThe OBJECT half of DeactivateAbsent, separately gateable. Defaults to DeactivateAbsent.
A streaming discovery persists one object at a time and then the complete set of object NAMES,
and the two retirements belong to opposite moments: per object, the object's own field list is
complete but every OTHER object looks absent, so objects must not retire there; in the final
name pass the whole name set is known, so absent objects may retire. Still gated on an
authoritative source, exactly as DeactivateAbsent is.
OptionalProviderOptionalUseWhen true, persistence runs through a TransactionGroup batch — substantially faster on large schemas (Salesforce ~1,800 sobjects). Set false for diagnostic runs where per-record error visibility matters. Default: true.
Which catalog this discovery persists into.
'Shared' is the default and is bytes-identical to the behaviour before the per-connection catalog existed, so the tables can be created, backfilled and verified against live traffic before anything reads or writes them.
'PerConnection' requires CompanyIntegrationID and REFUSES rather than falling back: a silent shared write would put one connection's discovery into every other connection's catalog, which is the failure the whole design exists to remove, and it would report success.