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-1-1
1-1-2
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.17** - SDK operation coverage is synchronized across Python,
> **v1.1.18** - 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
26 changes: 14 additions & 12 deletions openapi/openapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4930,7 +4930,7 @@ components:
Serializer for Connection model.
Returns:
- config: Non-sensitive config from DB
- auth_config: Actual auth credentials from Secrets Manager (not the internal reference)
- auth_config: Manual credentials, or safe metadata for managed Zendesk OAuth
properties:
id:
type: string
Expand Down Expand Up @@ -5047,7 +5047,7 @@ components:
type: object
description: |-
Lightweight serializer for listing connections.
Only returns metadata, no auth_config (avoids Secrets Manager calls).
Returns metadata without fetching credentials from Secrets Manager.
properties:
id:
type: string
Expand Down Expand Up @@ -5204,6 +5204,8 @@ components:
- socure
- custom_mcp
- metabase
- slack
- smtp
type: string
description: |-
* `snowflake` - SNOWFLAKE
Expand All @@ -5228,6 +5230,8 @@ components:
* `socure` - SOCURE
* `custom_mcp` - CUSTOM_MCP
* `metabase` - METABASE
* `slack` - SLACK
* `smtp` - SMTP
CreateConnectionRequest:
type: object
description: |-
Expand Down Expand Up @@ -5920,11 +5924,10 @@ components:
description: |-
Serializer for updating connections.

Cross-state Pydantic validation (config + auth) lives in the view's
``update()`` method now -- see ``connections.views.
ConnectionRetrieveUpdateDestroyView.update``. That path is the single
source of truth for canonical validation + write, mirrors the create
path's ``service.create_connection_with_secrets``, AND correctly
Cross-state Pydantic validation (config + auth) lives in
``connections.services.connection.update_connection_with_secrets``. That
path is the single source of truth for canonical validation + write,
mirrors the create path's ``create_connection_with_secrets``, AND correctly
handles the SM-fetch-failure case for the unchanged-auth branch
(returns 502 / opportunistic backfill instead of silently corrupting
the fingerprint by hashing ``{}``). Re-running the same validation
Expand Down Expand Up @@ -6798,11 +6801,10 @@ components:
description: |-
Serializer for updating connections.

Cross-state Pydantic validation (config + auth) lives in the view's
``update()`` method now -- see ``connections.views.
ConnectionRetrieveUpdateDestroyView.update``. That path is the single
source of truth for canonical validation + write, mirrors the create
path's ``service.create_connection_with_secrets``, AND correctly
Cross-state Pydantic validation (config + auth) lives in
``connections.services.connection.update_connection_with_secrets``. That
path is the single source of truth for canonical validation + write,
mirrors the create path's ``create_connection_with_secrets``, AND correctly
handles the SM-fetch-failure case for the unchanged-auth branch
(returns 502 / opportunistic backfill instead of silently corrupting
the fingerprint by hashing ``{}``). Re-running the same validation
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.17"
version = "1.1.18"
authors = [
{ name = "Roe", email = "founders@roe-ai.com" },
]
Expand Down
36 changes: 16 additions & 20 deletions src/roe/_generated/api/connections/connections_partial_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +145,10 @@ def sync_detailed(
organization_id (UUID | Unset):
body (PatchedUpdateConnectionRequest | Unset): Serializer for updating connections.

Cross-state Pydantic validation (config + auth) lives in the view's
``update()`` method now -- see ``connections.views.
ConnectionRetrieveUpdateDestroyView.update``. That path is the single
source of truth for canonical validation + write, mirrors the create
path's ``service.create_connection_with_secrets``, AND correctly
Cross-state Pydantic validation (config + auth) lives in
``connections.services.connection.update_connection_with_secrets``. That
path is the single source of truth for canonical validation + write,
mirrors the create path's ``create_connection_with_secrets``, AND correctly
handles the SM-fetch-failure case for the unchanged-auth branch
(returns 502 / opportunistic backfill instead of silently corrupting
the fingerprint by hashing ``{}``). Re-running the same validation
Expand Down Expand Up @@ -194,11 +193,10 @@ def sync(
organization_id (UUID | Unset):
body (PatchedUpdateConnectionRequest | Unset): Serializer for updating connections.

Cross-state Pydantic validation (config + auth) lives in the view's
``update()`` method now -- see ``connections.views.
ConnectionRetrieveUpdateDestroyView.update``. That path is the single
source of truth for canonical validation + write, mirrors the create
path's ``service.create_connection_with_secrets``, AND correctly
Cross-state Pydantic validation (config + auth) lives in
``connections.services.connection.update_connection_with_secrets``. That
path is the single source of truth for canonical validation + write,
mirrors the create path's ``create_connection_with_secrets``, AND correctly
handles the SM-fetch-failure case for the unchanged-auth branch
(returns 502 / opportunistic backfill instead of silently corrupting
the fingerprint by hashing ``{}``). Re-running the same validation
Expand Down Expand Up @@ -238,11 +236,10 @@ async def asyncio_detailed(
organization_id (UUID | Unset):
body (PatchedUpdateConnectionRequest | Unset): Serializer for updating connections.

Cross-state Pydantic validation (config + auth) lives in the view's
``update()`` method now -- see ``connections.views.
ConnectionRetrieveUpdateDestroyView.update``. That path is the single
source of truth for canonical validation + write, mirrors the create
path's ``service.create_connection_with_secrets``, AND correctly
Cross-state Pydantic validation (config + auth) lives in
``connections.services.connection.update_connection_with_secrets``. That
path is the single source of truth for canonical validation + write,
mirrors the create path's ``create_connection_with_secrets``, AND correctly
handles the SM-fetch-failure case for the unchanged-auth branch
(returns 502 / opportunistic backfill instead of silently corrupting
the fingerprint by hashing ``{}``). Re-running the same validation
Expand Down Expand Up @@ -287,11 +284,10 @@ async def asyncio(
organization_id (UUID | Unset):
body (PatchedUpdateConnectionRequest | Unset): Serializer for updating connections.

Cross-state Pydantic validation (config + auth) lives in the view's
``update()`` method now -- see ``connections.views.
ConnectionRetrieveUpdateDestroyView.update``. That path is the single
source of truth for canonical validation + write, mirrors the create
path's ``service.create_connection_with_secrets``, AND correctly
Cross-state Pydantic validation (config + auth) lives in
``connections.services.connection.update_connection_with_secrets``. That
path is the single source of truth for canonical validation + write,
mirrors the create path's ``create_connection_with_secrets``, AND correctly
handles the SM-fetch-failure case for the unchanged-auth branch
(returns 502 / opportunistic backfill instead of silently corrupting
the fingerprint by hashing ``{}``). Re-running the same validation
Expand Down
36 changes: 16 additions & 20 deletions src/roe/_generated/api/connections/connections_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +145,10 @@ def sync_detailed(
organization_id (UUID | Unset):
body (UpdateConnectionRequest | Unset): Serializer for updating connections.

Cross-state Pydantic validation (config + auth) lives in the view's
``update()`` method now -- see ``connections.views.
ConnectionRetrieveUpdateDestroyView.update``. That path is the single
source of truth for canonical validation + write, mirrors the create
path's ``service.create_connection_with_secrets``, AND correctly
Cross-state Pydantic validation (config + auth) lives in
``connections.services.connection.update_connection_with_secrets``. That
path is the single source of truth for canonical validation + write,
mirrors the create path's ``create_connection_with_secrets``, AND correctly
handles the SM-fetch-failure case for the unchanged-auth branch
(returns 502 / opportunistic backfill instead of silently corrupting
the fingerprint by hashing ``{}``). Re-running the same validation
Expand Down Expand Up @@ -194,11 +193,10 @@ def sync(
organization_id (UUID | Unset):
body (UpdateConnectionRequest | Unset): Serializer for updating connections.

Cross-state Pydantic validation (config + auth) lives in the view's
``update()`` method now -- see ``connections.views.
ConnectionRetrieveUpdateDestroyView.update``. That path is the single
source of truth for canonical validation + write, mirrors the create
path's ``service.create_connection_with_secrets``, AND correctly
Cross-state Pydantic validation (config + auth) lives in
``connections.services.connection.update_connection_with_secrets``. That
path is the single source of truth for canonical validation + write,
mirrors the create path's ``create_connection_with_secrets``, AND correctly
handles the SM-fetch-failure case for the unchanged-auth branch
(returns 502 / opportunistic backfill instead of silently corrupting
the fingerprint by hashing ``{}``). Re-running the same validation
Expand Down Expand Up @@ -238,11 +236,10 @@ async def asyncio_detailed(
organization_id (UUID | Unset):
body (UpdateConnectionRequest | Unset): Serializer for updating connections.

Cross-state Pydantic validation (config + auth) lives in the view's
``update()`` method now -- see ``connections.views.
ConnectionRetrieveUpdateDestroyView.update``. That path is the single
source of truth for canonical validation + write, mirrors the create
path's ``service.create_connection_with_secrets``, AND correctly
Cross-state Pydantic validation (config + auth) lives in
``connections.services.connection.update_connection_with_secrets``. That
path is the single source of truth for canonical validation + write,
mirrors the create path's ``create_connection_with_secrets``, AND correctly
handles the SM-fetch-failure case for the unchanged-auth branch
(returns 502 / opportunistic backfill instead of silently corrupting
the fingerprint by hashing ``{}``). Re-running the same validation
Expand Down Expand Up @@ -287,11 +284,10 @@ async def asyncio(
organization_id (UUID | Unset):
body (UpdateConnectionRequest | Unset): Serializer for updating connections.

Cross-state Pydantic validation (config + auth) lives in the view's
``update()`` method now -- see ``connections.views.
ConnectionRetrieveUpdateDestroyView.update``. That path is the single
source of truth for canonical validation + write, mirrors the create
path's ``service.create_connection_with_secrets``, AND correctly
Cross-state Pydantic validation (config + auth) lives in
``connections.services.connection.update_connection_with_secrets``. That
path is the single source of truth for canonical validation + write,
mirrors the create path's ``create_connection_with_secrets``, AND correctly
handles the SM-fetch-failure case for the unchanged-auth branch
(returns 502 / opportunistic backfill instead of silently corrupting
the fingerprint by hashing ``{}``). Re-running the same validation
Expand Down
2 changes: 1 addition & 1 deletion src/roe/_generated/models/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class Connection:
""" Serializer for Connection model.
Returns:
- config: Non-sensitive config from DB
- auth_config: Actual auth credentials from Secrets Manager (not the internal reference)
- auth_config: Manual credentials, or safe metadata for managed Zendesk OAuth

Attributes:
id (UUID):
Expand Down
2 changes: 1 addition & 1 deletion src/roe/_generated/models/connection_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
@_attrs_define
class ConnectionList:
""" Lightweight serializer for listing connections.
Only returns metadata, no auth_config (avoids Secrets Manager calls).
Returns metadata without fetching credentials from Secrets Manager.

Attributes:
id (UUID):
Expand Down
2 changes: 2 additions & 0 deletions src/roe/_generated/models/connector_type_enum.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ class ConnectorTypeEnum(str, Enum):
SHIELD = "shield"
SIFT = "sift"
SIFT_API = "sift_api"
SLACK = "slack"
SMTP = "smtp"
SNOWFLAKE = "snowflake"
SOCURE = "socure"
STRIPE = "stripe"
Expand Down
2 changes: 2 additions & 0 deletions src/roe/_generated/models/create_connection_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ class CreateConnectionRequest:
* `socure` - SOCURE
* `custom_mcp` - CUSTOM_MCP
* `metabase` - METABASE
* `slack` - SLACK
* `smtp` - SMTP
name (str):
config (CreateConnectionRequestConfig):
description (str | Unset):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,10 @@
class PatchedUpdateConnectionRequest:
""" Serializer for updating connections.

Cross-state Pydantic validation (config + auth) lives in the view's
``update()`` method now -- see ``connections.views.
ConnectionRetrieveUpdateDestroyView.update``. That path is the single
source of truth for canonical validation + write, mirrors the create
path's ``service.create_connection_with_secrets``, AND correctly
Cross-state Pydantic validation (config + auth) lives in
``connections.services.connection.update_connection_with_secrets``. That
path is the single source of truth for canonical validation + write,
mirrors the create path's ``create_connection_with_secrets``, AND correctly
handles the SM-fetch-failure case for the unchanged-auth branch
(returns 502 / opportunistic backfill instead of silently corrupting
the fingerprint by hashing ``{}``). Re-running the same validation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ class TestConnectionCredentialsRequest:
* `socure` - SOCURE
* `custom_mcp` - CUSTOM_MCP
* `metabase` - METABASE
* `slack` - SLACK
* `smtp` - SMTP
config (TestConnectionCredentialsRequestConfig):
auth_config (TestConnectionCredentialsRequestAuthConfig | Unset):
dynamic_inputs (TestConnectionCredentialsRequestDynamicInputs | Unset):
Expand Down
9 changes: 4 additions & 5 deletions src/roe/_generated/models/update_connection_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,10 @@
class UpdateConnectionRequest:
""" Serializer for updating connections.

Cross-state Pydantic validation (config + auth) lives in the view's
``update()`` method now -- see ``connections.views.
ConnectionRetrieveUpdateDestroyView.update``. That path is the single
source of truth for canonical validation + write, mirrors the create
path's ``service.create_connection_with_secrets``, AND correctly
Cross-state Pydantic validation (config + auth) lives in
``connections.services.connection.update_connection_with_secrets``. That
path is the single source of truth for canonical validation + write,
mirrors the create path's ``create_connection_with_secrets``, AND correctly
handles the SM-fetch-failure case for the unchanged-auth branch
(returns 502 / opportunistic backfill instead of silently corrupting
the fingerprint by hashing ``{}``). Re-running the same validation
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