Removed connectors
Removed connectors
flowchart TD A["indra.toml or state.toml"] --> B{"Type is s3_tables, s3tables or iceberg?"} B -- "New record" --> C["400 BAD_REQUEST<br/>nothing stored"] B -- "Stored record" --> D["Record kept unchanged"] D --> E["GET /connectors and GET /actions<br/>status disconnected"] D --> F["connector_unavailable or action_unavailable alarm"] D --> G["Rule stays enabled<br/>forward counts failed"]The S3 Tables connector is not part of the MVP. The broker refuses every spelling of its kind (s3_tables, s3tables and iceberg) on connector, action and source create, update and probe with 400 and the message connector type s3_tables is not available in this broker. Nothing is stored. A refused update leaves the existing record unchanged.
The kind is absent from the connector, action and schema listings. A direct request for its schema answers like any other unknown schema name.
Stored state from an earlier version
A state.toml written by an earlier version still starts. The broker keeps the stored connector, action and rule unchanged so an operator can inspect and delete them.
GET /connectorsandGET /actionsstill show the stored records. The connector and action reportdisconnectedwith astatus_reasonnaming the removal.- The broker raises
connector_unavailable:<id>andaction_unavailable:<id>. - Rules that use the removed connector stay enabled. A matching message runs the rule: a forward to the removed connector counts a failed action, and the other actions of the same rule still deliver.
- A new rule that names an unknown connector behaves as it does today.
Delete old records
Deletion follows the existing dependency rules. An earlier delete is refused while a reference remains:
- Delete the rule.
- Delete the action.
- Delete the connector.
The alarms are removed when the connector and action are deleted.
Fresh configuration files
A configuration file that names the kind fails to load with a native error that names the file, the key and the kind. The broker does not panic and does not silently skip the record. The API refusal above applies to a new record.