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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1,050 changes: 1,050 additions & 0 deletions .oagen-manifest.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "5.46.0"
".": "6.0.0"
}
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Changelog

## [6.0.0](https://github.com/workos/workos-python/compare/v5.46.0...v6.0.0) (2026-04-13)


### Top-level notices

- v6 is a breaking release and now requires Python 3.10 or newer.
- The SDK now uses generated sync and async clients with top-level imports from `workos`.
- `client.portal` has been renamed to `client.admin_portal`, and `client.fga` is not available in v6.

### What's changed

- Rebuilt the Python SDK around a generated client/runtime with updated request handling, pagination, typed models, and error surfaces.
- Reorganized package exports and service modules to support the new v6 client shape across the SDK.
- Added release validation coverage, including package smoke tests and the runtime dependency updates needed for packaged installs.

See the [V6 migration guide](docs/V6_MIGRATION_GUIDE.md) before upgrading from v5.

## [5.46.0](https://github.com/workos/workos-python/compare/v5.45.0...v5.46.0) (2026-03-16)


Expand Down
9 changes: 7 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
[project]
name = "workos"
version = "5.46.0"
version = "6.0.0"
description = "WorkOS Python Client"
readme = "README.md"
license = "MIT"
authors = [{ name = "WorkOS", email = "sdk@workos.com" }]
requires-python = ">=3.10"

dependencies = ["cryptography~=46.0", "httpx~=0.28", "pyjwt~=2.12"]
dependencies = [
"cryptography~=46.0",
"httpx~=0.28",
"pyjwt~=2.12",
"typing_extensions~=4.0; python_version < '3.11'",
]

[project.urls]
Homepage = "https://workos.com/docs/sdks/python"
Expand Down
8 changes: 6 additions & 2 deletions src/workos/_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,12 @@
import sys
from datetime import datetime
from enum import Enum
from typing import Any, Dict, NoReturn, Protocol, TypeVar
from typing_extensions import Self, TypedDict
from typing import Any, Dict, NoReturn, Protocol, TypedDict, TypeVar

if sys.version_info >= (3, 11):
from typing import Self
else:
from typing_extensions import Self


class RequestOptions(TypedDict, total=False):
Expand Down
2 changes: 1 addition & 1 deletion src/workos/api_keys/models/api_key_owner.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from workos.common.models.api_key_created_data_owner import ApiKeyCreatedDataOwner

ApiKeyOwner: TypeAlias = ApiKeyCreatedDataOwner
2 changes: 1 addition & 1 deletion src/workos/api_keys/models/api_key_with_value_owner.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from workos.common.models.api_key_created_data_owner import ApiKeyCreatedDataOwner

ApiKeyWithValueOwner: TypeAlias = ApiKeyCreatedDataOwner
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from workos.connect.models.applications_order import ApplicationsOrder

OrganizationsApiKeysOrder: TypeAlias = ApplicationsOrder
Expand Down
2 changes: 1 addition & 1 deletion src/workos/audit_logs/models/audit_log_event_target.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from .audit_log_event_actor import AuditLogEventActor

AuditLogEventTarget: TypeAlias = AuditLogEventActor
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from .audit_log_schema_actor import AuditLogSchemaActor

AuditLogSchemaJsonActor: TypeAlias = AuditLogSchemaActor
2 changes: 1 addition & 1 deletion src/workos/audit_logs/models/audit_log_schema_target.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from .audit_log_schema_json_target import AuditLogSchemaJsonTarget

AuditLogSchemaTarget: TypeAlias = AuditLogSchemaJsonTarget
2 changes: 1 addition & 1 deletion src/workos/audit_logs/models/audit_logs_order.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from workos.connect.models.applications_order import ApplicationsOrder

AuditLogsOrder: TypeAlias = ApplicationsOrder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from enum import Enum
from typing import Optional
from typing_extensions import Literal, TypeAlias
from typing import Literal, TypeAlias


class AuthorizationAssignment(str, Enum):
Expand Down
2 changes: 1 addition & 1 deletion src/workos/authorization/models/authorization_order.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from workos.connect.models.applications_order import ApplicationsOrder

AuthorizationOrder: TypeAlias = ApplicationsOrder
Expand Down
2 changes: 1 addition & 1 deletion src/workos/authorization/models/create_role.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from .create_authorization_permission import CreateAuthorizationPermission

CreateRole: TypeAlias = CreateAuthorizationPermission
40 changes: 0 additions & 40 deletions src/workos/authorization/models/list.py

This file was deleted.

6 changes: 0 additions & 6 deletions src/workos/authorization/models/list_data.py

This file was deleted.

2 changes: 1 addition & 1 deletion src/workos/authorization/models/permission.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from .authorization_permission import AuthorizationPermission

Permission: TypeAlias = AuthorizationPermission
2 changes: 1 addition & 1 deletion src/workos/authorization/models/permissions_order.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from workos.connect.models.applications_order import ApplicationsOrder

PermissionsOrder: TypeAlias = ApplicationsOrder
Expand Down
2 changes: 1 addition & 1 deletion src/workos/authorization/models/remove_role.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from .assign_role import AssignRole

RemoveRole: TypeAlias = AssignRole
2 changes: 1 addition & 1 deletion src/workos/authorization/models/slim_role.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from .add_role_permission import AddRolePermission

SlimRole: TypeAlias = AddRolePermission
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from .update_authorization_permission import UpdateAuthorizationPermission

UpdateOrganizationRole: TypeAlias = UpdateAuthorizationPermission
2 changes: 1 addition & 1 deletion src/workos/authorization/models/update_role.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is auto-generated by oagen. Do not edit.

from typing_extensions import TypeAlias
from typing import TypeAlias
from .update_authorization_permission import UpdateAuthorizationPermission

UpdateRole: TypeAlias = UpdateAuthorizationPermission

This file was deleted.

This file was deleted.

Loading
Loading