Skip to content

Commit 3577cd6

Browse files
awalker4claude
andauthored
feat(PLU-354): remove connector config models from the SDK (#341)
## Summary - Replace the typed unions in `CreateSourceConnectorConfig`, `CreateDestinationConnectorConfig`, `UpdateSourceConnectorConfig`, `UpdateDestinationConnectorConfig`, and the `*ConnectorInformation` configs with `Dict[str, Any]`. - Delete the per-connector config models and their docs (e.g. `S3SourceConnectorConfig`, `AzureDestinationConnectorConfig`, `OpenSearchConnectorConfig`, …). - Bump version to 0.44.0 and add a breaking-change changelog entry. This decouples the SDK from backend connector schemas — adding/removing fields on a connector no longer requires an SDK release. These were deprecated in our docs last year. None of our SDK snippets use them. ## Test plan - [ ] CI green - [ ] Smoke: create a source connector with a plain dict config against SND and confirm the request goes through <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > This is a breaking change to the SDK surface area: connector `config` fields switch from typed models/unions to `Dict[str, Any]`, and many generated connector config classes/docs are removed, which may break downstream type checks and runtime imports. > > **Overview** > **Decouples connector configuration from generated SDK models.** Connector `config` fields for create/update and `*ConnectorInformation` responses now use `Dict[str, Any]` instead of per-connector typed unions/models. > > Removes the generated connector config model classes and their documentation, updates contract tests to assert `config` is a `dict`, and bumps the SDK version to `0.44.0` with a breaking-change entry in `CHANGELOG.md` (plus release metadata in `RELEASES.md`). > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit eb0ae92. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 68facfd commit 3577cd6

185 files changed

Lines changed: 49 additions & 7816 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 0.44.0
2+
3+
### Breaking changes
4+
* Removed deprecated connector config models from the SDK (e.g. `S3SourceConnectorConfig`, `AzureDestinationConnectorConfig`). Pass connector configs as plain dicts with arbitrary fields. The SDK is no longer coupled to backend connector schemas — new fields work without an SDK upgrade.
5+
16
## 0.43.4
27

38
### Enhancements

RELEASES.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,3 +1211,13 @@ Based on:
12111211
- [python v0.42.12] .
12121212
### Releases
12131213
- [PyPI v0.42.12] https://pypi.org/project/unstructured-client/0.42.12 - .
1214+
1215+
## 2026-05-07 20:30:00
1216+
### Changes
1217+
Based on:
1218+
- OpenAPI Doc
1219+
- Speakeasy CLI 1.601.0 (2.680.0) https://github.com/speakeasy-api/speakeasy
1220+
### Generated
1221+
- [python v0.44.0] .
1222+
### Releases
1223+
- [PyPI v0.44.0 ] https://pypi.org/project/unstructured-client/0.44.0 - .

_test_contract/platform_api/test_destinations.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def test_list_destinations(
5050
assert destination.id == "0c363dec-3c70-45ee-8041-481044a6e1cc"
5151
assert destination.name == "test_destination_name"
5252
assert destination.type == "s3"
53-
assert isinstance(destination.config, shared.S3DestinationConnectorConfig)
53+
assert isinstance(destination.config, dict)
5454
assert destination.created_at == datetime.fromisoformat(
5555
"2025-08-22T08:47:29.802+00:00"
5656
)
@@ -151,7 +151,7 @@ def test_get_destination(httpx_mock, platform_client: UnstructuredClient, platfo
151151
assert destination.id == "0c363dec-3c70-45ee-8041-481044a6e1cc"
152152
assert destination.name == "test_destination_name"
153153
assert destination.type == "s3"
154-
assert isinstance(destination.config, shared.S3DestinationConnectorConfig)
154+
assert isinstance(destination.config, dict)
155155
assert destination.created_at == datetime.fromisoformat(
156156
"2025-08-22T08:47:29.802+00:00"
157157
)
@@ -229,7 +229,7 @@ def test_create_destination(
229229
assert destination.id == "b25d4161-77a0-4e08-b65e-86f398ce15ad"
230230
assert destination.name == "test_destination_name"
231231
assert destination.type == "s3"
232-
assert isinstance(destination.config, shared.S3DestinationConnectorConfig)
232+
assert isinstance(destination.config, dict)
233233
assert destination.created_at == datetime.fromisoformat(
234234
"2023-09-15T01:06:53.146+00:00"
235235
)
@@ -284,7 +284,7 @@ def test_update_destination(
284284
assert updated_destination.id == "b25d4161-77a0-4e08-b65e-86f398ce15ad"
285285
assert updated_destination.name == "test_destination_name"
286286
assert updated_destination.type == "s3"
287-
assert isinstance(updated_destination.config, shared.S3DestinationConnectorConfig)
287+
assert isinstance(updated_destination.config, dict)
288288
assert updated_destination.created_at == datetime.fromisoformat(
289289
"2023-09-15T01:06:53.146+00:00"
290290
)

_test_contract/platform_api/test_sources.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def test_list_sources(httpx_mock, platform_client: UnstructuredClient, platform_
5656
assert source.id == "a15d4161-77a0-4e08-b65e-86f398ce15ad"
5757
assert source.name == "test_source_name"
5858
assert source.type == "onedrive"
59-
assert isinstance(source.config, shared.OneDriveSourceConnectorConfig)
59+
assert isinstance(source.config, dict)
6060
assert source.created_at == datetime.fromisoformat("2023-09-15T01:06:53.146+00:00")
6161

6262

@@ -154,7 +154,7 @@ def test_get_source(httpx_mock, platform_client: UnstructuredClient, platform_ap
154154
assert source.id == "a15d4161-77a0-4e08-b65e-86f398ce15ad"
155155
assert source.name == "test_source_name"
156156
assert source.type == "onedrive"
157-
assert isinstance(source.config, shared.OneDriveSourceConnectorConfig)
157+
assert isinstance(source.config, dict)
158158
assert source.created_at == datetime.fromisoformat("2023-09-15T01:06:53.146+00:00")
159159

160160

@@ -232,7 +232,7 @@ def test_create_source(httpx_mock, platform_client: UnstructuredClient, platform
232232
assert source.id == "a15d4161-77a0-4e08-b65e-86f398ce15ad"
233233
assert source.name == "test_source_name"
234234
assert source.type == "onedrive"
235-
assert isinstance(source.config, shared.OneDriveSourceConnectorConfig)
235+
assert isinstance(source.config, dict)
236236
assert source.created_at == datetime.fromisoformat("2023-09-15T01:06:53.146+00:00")
237237

238238

@@ -291,7 +291,7 @@ def test_update_source(httpx_mock, platform_client: UnstructuredClient, platform
291291
assert updated_source.id == "a15d4161-77a0-4e08-b65e-86f398ce15ad"
292292
assert updated_source.name == "test_source_name"
293293
assert updated_source.type == "onedrive"
294-
assert isinstance(updated_source.config, shared.OneDriveSourceConnectorConfig)
294+
assert isinstance(updated_source.config, dict)
295295
assert updated_source.created_at == datetime.fromisoformat(
296296
"2023-09-15T01:06:53.146+00:00"
297297
)

docs/models/shared/astradbconnectorconfig.md

Lines changed: 0 additions & 14 deletions
This file was deleted.

docs/models/shared/astradbconnectorconfiginput.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

docs/models/shared/azureaisearchconnectorconfig.md

Lines changed: 0 additions & 10 deletions
This file was deleted.

docs/models/shared/azureaisearchconnectorconfiginput.md

Lines changed: 0 additions & 10 deletions
This file was deleted.

docs/models/shared/azuredestinationconnectorconfig.md

Lines changed: 0 additions & 12 deletions
This file was deleted.

docs/models/shared/azuredestinationconnectorconfiginput.md

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)