Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .roe-main-release-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1-0-90
1-0-91
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
A Python SDK for the [Roe](https://www.roe-ai.com/) API.

<!-- ROE-SDK:RELEASE-BANNER:START -->
> **v1.1.6** - SDK operation coverage is synchronized across Python,
> **v1.1.7** - SDK operation coverage is synchronized across Python,
> TypeScript, and Go. See `SDK_EXAMPLES.md` for copy-ready examples and
> use cases.
<!-- ROE-SDK:RELEASE-BANNER:END -->
Expand Down
14 changes: 14 additions & 0 deletions openapi/openapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2314,6 +2314,12 @@ paths:
schema:
type: string
description: Filter by connector type (e.g., 'snowflake', 'postgres')
- name: ordering
required: false
in: query
description: Which field to use when ordering the results.
schema:
type: string
- in: query
name: organization_id
schema:
Expand Down Expand Up @@ -4809,6 +4815,9 @@ components:
description:
type: string
config: {}
credentials_configured:
type: boolean
readOnly: true
dynamic_inputs:
type: object
additionalProperties:
Expand Down Expand Up @@ -4838,6 +4847,7 @@ components:
- connector_display_name
- connector_type
- created_at
- credentials_configured
- dynamic_input_test_disabled_reason
- dynamic_inputs
- id
Expand Down Expand Up @@ -4883,6 +4893,9 @@ components:
description:
type: string
config: {}
credentials_configured:
type: boolean
readOnly: true
dynamic_inputs:
type: object
additionalProperties:
Expand All @@ -4907,6 +4920,7 @@ components:
- connector_display_name
- connector_type
- created_at
- credentials_configured
- dynamic_input_test_disabled_reason
- dynamic_inputs
- id
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "roe-ai"
version = "1.1.6"
version = "1.1.7"
authors = [
{ name = "Roe", email = "founders@roe-ai.com" },
]
Expand Down
15 changes: 15 additions & 0 deletions src/roe/_generated/api/connections/connections_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
def _get_kwargs(
*,
connector_type: str | Unset = UNSET,
ordering: str | Unset = UNSET,
organization_id: UUID | Unset = UNSET,
page: int | Unset = UNSET,
page_size: int | Unset = UNSET,
Expand All @@ -34,6 +35,8 @@ def _get_kwargs(

params["connector_type"] = connector_type

params["ordering"] = ordering

json_organization_id: str | Unset = UNSET
if not isinstance(organization_id, Unset):
json_organization_id = str(organization_id)
Expand Down Expand Up @@ -108,6 +111,7 @@ def sync_detailed(
*,
client: AuthenticatedClient,
connector_type: str | Unset = UNSET,
ordering: str | Unset = UNSET,
organization_id: UUID | Unset = UNSET,
page: int | Unset = UNSET,
page_size: int | Unset = UNSET,
Expand All @@ -118,6 +122,7 @@ def sync_detailed(

Args:
connector_type (str | Unset):
ordering (str | Unset):
organization_id (UUID | Unset):
page (int | Unset):
page_size (int | Unset):
Expand All @@ -134,6 +139,7 @@ def sync_detailed(

kwargs = _get_kwargs(
connector_type=connector_type,
ordering=ordering,
organization_id=organization_id,
page=page,
page_size=page_size,
Expand All @@ -151,6 +157,7 @@ def sync(
*,
client: AuthenticatedClient,
connector_type: str | Unset = UNSET,
ordering: str | Unset = UNSET,
organization_id: UUID | Unset = UNSET,
page: int | Unset = UNSET,
page_size: int | Unset = UNSET,
Expand All @@ -161,6 +168,7 @@ def sync(

Args:
connector_type (str | Unset):
ordering (str | Unset):
organization_id (UUID | Unset):
page (int | Unset):
page_size (int | Unset):
Expand All @@ -178,6 +186,7 @@ def sync(
return sync_detailed(
client=client,
connector_type=connector_type,
ordering=ordering,
organization_id=organization_id,
page=page,
page_size=page_size,
Expand All @@ -189,6 +198,7 @@ async def asyncio_detailed(
*,
client: AuthenticatedClient,
connector_type: str | Unset = UNSET,
ordering: str | Unset = UNSET,
organization_id: UUID | Unset = UNSET,
page: int | Unset = UNSET,
page_size: int | Unset = UNSET,
Expand All @@ -199,6 +209,7 @@ async def asyncio_detailed(

Args:
connector_type (str | Unset):
ordering (str | Unset):
organization_id (UUID | Unset):
page (int | Unset):
page_size (int | Unset):
Expand All @@ -215,6 +226,7 @@ async def asyncio_detailed(

kwargs = _get_kwargs(
connector_type=connector_type,
ordering=ordering,
organization_id=organization_id,
page=page,
page_size=page_size,
Expand All @@ -232,6 +244,7 @@ async def asyncio(
*,
client: AuthenticatedClient,
connector_type: str | Unset = UNSET,
ordering: str | Unset = UNSET,
organization_id: UUID | Unset = UNSET,
page: int | Unset = UNSET,
page_size: int | Unset = UNSET,
Expand All @@ -242,6 +255,7 @@ async def asyncio(

Args:
connector_type (str | Unset):
ordering (str | Unset):
organization_id (UUID | Unset):
page (int | Unset):
page_size (int | Unset):
Expand All @@ -259,6 +273,7 @@ async def asyncio(
return (await asyncio_detailed(
client=client,
connector_type=connector_type,
ordering=ordering,
organization_id=organization_id,
page=page,
page_size=page_size,
Expand Down
8 changes: 8 additions & 0 deletions src/roe/_generated/models/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ class Connection:
connector_type (str):
connector_display_name (str): Get the display name for the connector type.
name (str):
credentials_configured (bool):
dynamic_inputs (ConnectionDynamicInputs):
dynamic_input_test_disabled_reason (None | str):
auth_config (ConnectionAuthConfig):
Expand All @@ -58,6 +59,7 @@ class Connection:
connector_type: str
connector_display_name: str
name: str
credentials_configured: bool
dynamic_inputs: ConnectionDynamicInputs
dynamic_input_test_disabled_reason: None | str
auth_config: ConnectionAuthConfig
Expand Down Expand Up @@ -88,6 +90,8 @@ def to_dict(self) -> dict[str, Any]:

name = self.name

credentials_configured = self.credentials_configured

dynamic_inputs = self.dynamic_inputs.to_dict()

dynamic_input_test_disabled_reason: None | str
Expand Down Expand Up @@ -118,6 +122,7 @@ def to_dict(self) -> dict[str, Any]:
"connector_type": connector_type,
"connector_display_name": connector_display_name,
"name": name,
"credentials_configured": credentials_configured,
"dynamic_inputs": dynamic_inputs,
"dynamic_input_test_disabled_reason": dynamic_input_test_disabled_reason,
"auth_config": auth_config,
Expand Down Expand Up @@ -164,6 +169,8 @@ def _parse_user(data: object) -> int | None:

name = d.pop("name")

credentials_configured = d.pop("credentials_configured")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Connection response fixture omits credential state

Connection.from_dict() now requires credentials_configured, but the shared _connection_json() fixture used by the create, update, and replace transport tests does not provide it. Each response is therefore rejected with KeyError before its transport assertions complete. Update the fixture to include the required response field so these regression tests pass against the new model contract.

Artifacts

Focused connection wrapper test failures when credentials_configured is absent

  • Ran the requested uv pytest command against the existing fixture; it captures three KeyError failures at the unconditional credentials_configured pop, confirming the bug.

View artifacts

T-Rex Ran code and verified through T-Rex

Fix in Claude Code


dynamic_inputs = ConnectionDynamicInputs.from_dict(d.pop("dynamic_inputs"))


Expand Down Expand Up @@ -213,6 +220,7 @@ def _parse_dynamic_input_test_disabled_reason(data: object) -> None | str:
connector_type=connector_type,
connector_display_name=connector_display_name,
name=name,
credentials_configured=credentials_configured,
dynamic_inputs=dynamic_inputs,
dynamic_input_test_disabled_reason=dynamic_input_test_disabled_reason,
auth_config=auth_config,
Expand Down
8 changes: 8 additions & 0 deletions src/roe/_generated/models/connection_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ class ConnectionList:
connector_type (str):
connector_display_name (str): Get the display name for the connector type.
name (str):
credentials_configured (bool):
dynamic_inputs (ConnectionListDynamicInputs):
dynamic_input_test_disabled_reason (None | str):
created_at (datetime.datetime):
Expand All @@ -54,6 +55,7 @@ class ConnectionList:
connector_type: str
connector_display_name: str
name: str
credentials_configured: bool
dynamic_inputs: ConnectionListDynamicInputs
dynamic_input_test_disabled_reason: None | str
created_at: datetime.datetime
Expand Down Expand Up @@ -82,6 +84,8 @@ def to_dict(self) -> dict[str, Any]:

name = self.name

credentials_configured = self.credentials_configured

dynamic_inputs = self.dynamic_inputs.to_dict()

dynamic_input_test_disabled_reason: None | str
Expand Down Expand Up @@ -110,6 +114,7 @@ def to_dict(self) -> dict[str, Any]:
"connector_type": connector_type,
"connector_display_name": connector_display_name,
"name": name,
"credentials_configured": credentials_configured,
"dynamic_inputs": dynamic_inputs,
"dynamic_input_test_disabled_reason": dynamic_input_test_disabled_reason,
"created_at": created_at,
Expand Down Expand Up @@ -154,6 +159,8 @@ def _parse_user(data: object) -> int | None:

name = d.pop("name")

credentials_configured = d.pop("credentials_configured")

dynamic_inputs = ConnectionListDynamicInputs.from_dict(d.pop("dynamic_inputs"))


Expand Down Expand Up @@ -198,6 +205,7 @@ def _parse_dynamic_input_test_disabled_reason(data: object) -> None | str:
connector_type=connector_type,
connector_display_name=connector_display_name,
name=name,
credentials_configured=credentials_configured,
dynamic_inputs=dynamic_inputs,
dynamic_input_test_disabled_reason=dynamic_input_test_disabled_reason,
created_at=created_at,
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading