recovery
Which Disaster Recovery facets a connector performs — the five flags, the RecoverySupport methods behind each, and how the block and the recovery capabilities work together.
The Disaster Recovery Program is one core subsystem: incidents, an operations ledger with undo, a readiness checklist, quotas, member notices by e-mail. What a platform lets a connector do about an outage differs, so the program has five facets a connector may or may not have. The recovery block says which are real.
"recovery": {
"probes": true,
"standby_installations": true,
"resource_standby": true,
"mirror": true,
"identity_relink": true
}The block is optional; every flag defaults to false. The core never calls a facet the block denies, and a connector implements the corresponding RecoverySupport methods for the facets it denies by throwing Subscriby\Connector\Exceptions\UnsupportedByConnector.
The five facets
| Flag | Capability | RecoverySupport methods the core calls | What it gives a creator |
|---|---|---|---|
probes | recovery_probes | probeInstallation(), probeSpace(), probeIdentity(), healthReasonText() | Health badges on the installation, every resource and the creator's own account, and the incident that opens when one goes dark. |
standby_installations | recovery_standby_installations | registerStandbyInstallation(), removeStandbyInstallation() | A second installation kept ready; a failover writes it into the live one's place. |
resource_standby | recovery_resource_standby | failOver() | A standby place per resource, with every holder re-admitted into it when the live place is lost. |
mirror | recovery_mirror | mirror() | The standby place receives a live copy of every post, so it is never empty on the day it is needed. Needs mirrorable kinds. |
identity_relink | recovery_identity_relink | beginIdentityHandshake() | Proving a new account after the old one is banned, and a backup account registered in advance. |
Whatever the flags say, a connector that binds RecoverySupport at all must answer vocabulary() and readinessChecks() (recovery.vocabulary_and_readiness): the core's recovery pages describe the connector's world in its nouns ("bot", "channel", "Telegram account") and list its lines of the readiness checklist.
The block and the capabilities
Two places name the same facets on purpose:
- A
recovery_*capability binds theRecoverySupportport and puts the facet on the marketplace's capability matrix. It is what the registry checks against theConnectorclass. - A
recoveryflag tells the core, at call time, whether it may invoke that facet on this connector.
Declare both for every facet the platform has. A capability without its flag binds a port the core never calls; a flag without its capability is a facet nobody can see on the marketplace and, if the port is not bound, one the core cannot reach. Telegram declares all five in both places; the fake connector declares probes in both.
What a platform without a facet does
A platform with no invite links has no resource_standby in the Telegram sense, a platform whose bots cannot be banned has no identity_relink to speak of, and a platform whose posts cannot be copied cannot mirror. Leave those flags out, throw UnsupportedByConnector::facet($key, 'what was asked') from the methods, and the recovery pages render only what the connector can do; a creator with a Telegram installation and yours installed sees two cards saying different things, which is the point.
What the kit checks
recovery.vocabulary_and_readiness: every noun of the RecoveryVocabulary is non-empty and every ReadinessItem has a unique key. The loader refuses an unknown key inside the block and a non-boolean flag. The kit does not yet reconcile the block with the capabilities; review does.
How is this guide?
relay_modes
The support relay modes a connector offers — what a mode is, the two the core knows today, and how the manifest and the SupportRelay port must agree.
listing
What the marketplace shows — category, tagline, overview, screenshots, links, dates — plus the words the marketing site borrows and the button the member portal shows.