Skip to content

feat(audit-logs): make occurred_at optional in the request contract - #262

Closed
swaroopThereItIs-workos wants to merge 2 commits into
mainfrom
codex/audit-logs-optional-occurred-at
Closed

swaroopThereItIs-workos wants to merge 2 commits into
mainfrom
codex/audit-logs-optional-occurred-at

Conversation

@swaroopThereItIs-workos

@swaroopThereItIs-workos swaroopThereItIs-workos commented Nov 4, 2026 •

Copy link
Copy Markdown

Make AuditLogEventDto.occurred_at optional in the request schema and preserve existing SDK constructor positions and timestamp wire strings during generation. The schema includes the official backend-generated PR1 endpoint description, organization-scoped idempotency header, 409 conflict response, and shared ErrorBodyCode enum addition, together with the PR1-to-PR2 optional-timestamp request-model delta. Only those hunks were applied to the current canonical spec, preserving unrelated content. Explicit JSON null remains invalid; output schemas are unchanged.

This PR must remain a draft. Two release blockers remain:

  • The backend optional-timestamp PR #78554 is still a draft because a reproduced delayed-recovery accounting regression is unresolved. This candidate does not authorize deployment or SDK release before that backend gate is resolved.
  • oagen-emitters #303 must merge and publish a real version containing these compatibility policies. package.json and package-lock.json still reference the existing 0.25.5 dependency. A real dependency/lockfile update and clean npm ci regeneration are required before this PR can be ready. No unpublished version or CI bypass is included.

Generation policy retains old field positions in Swift/Kotlin/PHP/Python, keeps Go/Rust string field types with empty-string omission, omits absent nonnullable fields in Ruby/PHP/Kotlin, and preserves PHP's existing RFC3339_EXTENDED strings (UTC +00:00 and non-UTC offsets). PHP/Python keep the legacy positional timestamp argument nullable-required; new callers omit it via fromArray/from_dict. Explicitly nullable fields keep their existing semantics.

Validation: canonical tests (163 passed, zero skipped), policy build, config resolution, and AST assertions that only the official PR1 endpoint/enum and PR2 request-model deltas changed. Local generator checks used the independently reviewed source from #303 through a development-only npm link; this is not evidence that the locked published dependency reproduces those outputs. The affected generated SDKs have separate constructor and wire regressions.

Provenance: PR1 endpoint/enum hunks come from reviewed backend commit 4a346a13f23cafa6fe7514a4bceb675455bcbaa7; backend PR2 official delta SHA256 784df1b355dd20b6217594b95d48929abf0d065af1f5229757705cf8ef3f2e9c; backend candidate SHA256 17e77397a7c8ce958a27b1007e15e89c9621cafd1d1f28b8609274acbe79ed18. Completed SDK PRs used the same functional request schema with a shorter server-acceptance-time field description. The actual backend-derived description explicitly names created_at and null rejection; this description-only difference is recorded rather than reopening those completed PRs. Byte-for-byte final generation remains part of the blocked clean-install release gate.

Current CI blocker on 583a4b54edad8944b080b82b1e475894df819d18: all eight SDK build jobs and policy/tests passed in run 41747137126, while the required sdk-compat status failed with 889 breaking changes. The eight diagnostics JSON artifacts contain exactly seven direct AuditLogEvent field-type flags (.NET, Go, iOS, Kotlin, PHP, Python, Rust; Ruby has zero). The other 882 flags are outside that direct subset; the report includes broad regeneration drift and this PR does not attribute all of it to timestamp optionality.

The locked 0.25.5 emitter still generates Go string → *string, Rust String → Option<String>, and moves the old timestamp constructor slot in Swift/Kotlin/PHP/Python. The code report also shows PHP replacing the existing RFC3339_EXTENDED serializer. These outputs do not implement the reviewed compatibility policies in emitter #303. After its real release, update the dependency and lockfile, use a clean npm ci, regenerate with the existing baseline rules, rerun legacy-constructor and actual-wire regressions, and rerun the full eight-language build and compatibility matrix. Any remaining nullability flags or broader drift must pass the normal compatibility gate; a release alone is not a claim that all 889 disappear. The failed status is preserved, with no waiver, suppression, or baseline change. Published code report.

github-actions Bot added a commit that referenced this pull request Nov 4, 2026
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

SDK compatibility report

📄 View full code diff

Language Breaking Soft-risk Additive
dotnet 34 170 662
go 127 94 775
ios 153 26 1064
kotlin 119 313 777
php 101 120 767
python 143 66 1850
ruby 80 102 742
rust 132 2 1088

Changes by domain

Domain Breaking Soft-risk Additive Languages
DataIntegration 53 9 98 all
Pipes 40 101 50 all
Connect 35 5 178 all
Events 33 18 — dotnet, go, ios, kotlin, php, python, ruby
UserManagement 19 12 21 all
ReauthorizeDataIntegrationsUpsertClientCredentialsRequest 15 — — all
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequest 12 — — all
CreateUserInviteOptionsLocale 2 91 — dotnet, go, kotlin, php, ruby, rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequest 11 — — all
ReauthorizeDataIntegrationsUpsertApiKeyRequest 11 — — all
PipeService 8 — 1 go, ios, kotlin, php, python
AsyncUserManagement 5 — — python
AsyncPipes 4 — — python
AuthorizeDataIntegrationParams 4 — — rust
UpdateDataIntegrationApiKeyParams 4 — — rust
UpdateDataIntegrationClientCredentialsParams 4 — — rust
Authorization — 34 30 all
ErrorBody — — 220 all
ApiKeys 2 — — python
AsyncApiKeys 2 — — python
AsyncAuditLogs 2 — — python
AuditLogs 2 — — python
ListEventsParams 2 — — rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeURLRequest 2 — — go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertAPIKeyRequest 2 — — go, ios, kotlin, php, python, ruby, rust
SendVerificationEmail — — 185 go, ios, kotlin, php, python, ruby, rust
Vault 1 — 30 python
Agents — 12 — kotlin
CreatePasswordResetToken — — 114 go, ios, kotlin, python, ruby, rust
CreateMagicCodeAndReturnLocale — — 112 dotnet, go, ios, kotlin, python, ruby, rust
SendEmailChangeLocale — — 112 go, ios, kotlin, php, python, rust
SSO — 10 6 all
UpdateWebhookEndpointEventsLiteral — — 106 python
AddDataIntegrationsGetDataIntegrationAuthorizeURLRequest 1 — — go, ios, kotlin, php, python, ruby, rust
AsyncEvents 1 — — python
AsyncVault 1 — — python
AuditLogEvent 1 — — dotnet, go, ios, kotlin, php, python, rust
AdminPortal — 8 — kotlin
UpdateAuditLogsRetentionWithRetentionPeriod — — 70 all
OrganizationMembershipService — 6 — kotlin
ProfileConnectionTypeLiteral — — 51 python
ResendUserInviteOptions — 1 20 kotlin, python
DsyncDeletedDataTypeLiteral — — 24 python
PatchConnectionOIDCOptionsIdTokenSignatureAlgorithmLiteral — — 14 python
ResourceExportCreatedDataResourceType — — 11 ios, python, rust
ResourceExportDownloadedDataResourceType — — 11 ios, python, rust
ResourceExportFailedDataResourceType — — 11 ios, kotlin, php, python, rust
UserConnectedAccountImportErrorBody — — 11 all
OrganizationConnectedAccountImportErrorBody — — 10 all
OrganizationSelectionRequiredErrorBody — — 10 all
SessionRevokedDataAuthMethodLiteral — — 10 python
UserSessionsAuthMethodLiteral — — 10 python
ClientCredentialsDataIntegrationVendedCredential — — 9 all
OAuthDataIntegrationVendedCredential — — 9 all
RadarStandaloneResponseBlocklistTypeLiteral — — 8 python
UpdateUserPasswordHashTypeLiteral — — 8 python
Groups — — 7 all
InvalidRequestParametersErrorBody — — 7 all
WaitlistListResponse — — 7 all
OrganizationDeletedDataDomainStateLiteral — — 6 python
OrganizationDomainCreatedDataStateLiteral — — 6 python
OrganizationDomainDeletedDataStateLiteral — — 6 python
OrganizationDomainStateLiteral — — 6 python
OrganizationDomainUpdatedDataStateLiteral — — 6 python
OrganizationDomainVerifiedDataStateLiteral — — 6 python
OrganizationUpdatedDataDomainStateLiteral — — 6 python
AgentRegistrationStatusLiteral — — 5 python
AuthenticationFactorTypeLiteral — — 5 python
ClaimViewResponseStatusLiteral — — 5 python
CreateDataIntegrationOwnership — — 5 dotnet, go, kotlin, python, ruby, rust
DsyncDeletedDataStateLiteral — — 5 python
FlagCreatedContextActorSourceLiteral — — 5 python
FlagDeletedContextActorSourceLiteral — — 5 python
FlagRuleUpdatedContextActorSourceLiteral — — 5 python
FlagUpdatedContextActorSourceLiteral — — 5 python
InvitationCreatedDataStateLiteral — — 5 python
InvitationResentDataStateLiteral — — 5 python
InvitationRevokedDataStateLiteral — — 5 python
InvitationStateLiteral — — 5 python
UserInviteStateLiteral — — 5 python
AgentRegistrationKindLiteral — — 4 python
CreateDataIntegrationAuthMethodsLiteral — — 4 python
DirectoryUserWithGroupsStateLiteral — — 4 python
DsyncUserUpdatedDataStateLiteral — — 4 python
EmailCompletionRequiredErrorBodyWithEmailCompletionToken — — 4 all
FlagRuleUpdatedContextPreviousAttributeContextAccessTypeLiteral — — 4 python
OrganizationMembershipDeletedDataStatusLiteral — — 4 python
OrganizationMembershipStatusLiteral — — 4 python
OrganizationMembershipUpdatedDataStatusLiteral — — 4 python
PasswordStrengthErrorErrorBodyWithErrors — — 4 all
PatchConnectionOIDCOptionsTokenAuthenticationMethodLiteral — — 4 python
PipeConnectedAccountAuthMethodLiteral — — 4 python
RateLimitExceededErrorBodyWithRetryAfter — — 4 all
SessionCreatedDataStatusLiteral — — 4 python
SessionRevokedDataStatusLiteral — — 4 python
SubResourceScopedRoleNotAllowedErrorBodyWithRoleSlug — — 4 all
TooManyFailedVerificationAttemptsErrorBodyWithRetryAfter — — 4 all
UpdateUserOrganizationMembershipWithRoleSlug — — 4 all
UserCreationErrorErrorBodyWithErrors — — 4 all
UserOrganizationMembershipBaseListDataStatusLiteral — — 4 python
UserOrganizationMembershipStatusLiteral — — 4 python
UserSessionsStatusLiteral — — 4 python
WaitlistEntryStateLiteral — — 4 python
WaitlistUserStateLiteral — — 4 python
WidgetSessionTokenScopes — — 4 all
AccessDeniedOAuthErrorBody — — 3 all
AccountSelectionRequiredErrorBody — — 3 go, ios, kotlin, php, rust
ActionDeniedErrorBody — — 3 all
AgentBlueprintInvocableAsInstanceTypesLiteral — — 3 python
AgentBlueprintsCreateRequestInvocableAsInstanceTypesLiteral — — 3 python
AgentBlueprintsUpdateRequestInvocableAsInstanceTypesLiteral — — 3 python
AgentBlueprintUpdatedDataInvocableAsInstanceTypesLiteral — — 3 python
AgentInstanceCreatedDataTypeLiteral — — 3 python
AgentInstanceDeletedDataTypeLiteral — — 3 python
AgentInstanceTypeLiteral — — 3 python
AlreadyClaimedErrorBody — — 3 all
ApiKeyDataIntegrationVendedCredential — — 3 all
ApplicationConsentRequiredErrorBody — — 3 all
AuthenticationMethodNotAllowedErrorBody — — 3 all
AuthenticationMethodNotAllowedOAuthErrorBody — — 3 all
AuthMethodMismatchErrorBody — — 3 go, ios, kotlin, php, rust
CodeChallengeNotFoundErrorBody — — 3 all
DailyQuotaExceededErrorBody — — 3 all
EmailAlreadyInUseErrorBody — — 3 all
EmailAlreadyVerifiedErrorBody — — 3 all
EmailChangeNotAllowedErrorBody — — 3 all
EmailDomainNotDeliverableErrorBody — — 3 all
EmailNotAvailableErrorBody — — 3 all
EmailPasswordAuthDisabledErrorBody — — 3 all
EmailVerificationRequiredErrorBody — — 3 all
EntityNotFoundErrorBody — — 3 all
ExpiredTokenOAuthErrorBody — — 3 all
ExternalAuthSessionAlreadyCompletedErrorBody — — 3 all
ExtraAttributesRequiredOAuthErrorBody — — 3 all
IdpMetadataFetchFailedErrorBody — — 3 all
InvalidClientOAuthErrorBody — — 3 all
InvalidConnectionOAuthErrorBody — — 3 all
InvalidCredentialsErrorBody — — 3 all
InvalidEmailErrorBody — — 3 all
InvalidGrantOAuthErrorBody — — 3 all
InvalidLinkAuthorizationCodeOAuthErrorBody — — 3 all
InvalidLocaleErrorBody — — 3 all
InvalidMetadataErrorBody — — 3 all
InvalidOneTimeCodeErrorBody — — 3 all
InvalidPasswordHashErrorBody — — 3 all
InvalidPendingAuthenticationTokenErrorBody — — 3 all
InvalidProfileOAuthErrorBody — — 3 all
InvalidRefreshTokenErrorBody — — 3 all
InvalidRequestOAuthErrorBody — — 3 all
InvalidRoleErrorBody — — 3 all
InvitationCannotBeUsedForEmailOAuthErrorBody — — 3 all
InvitationInvalidOAuthErrorBody — — 3 all
ListMetadata — — 3 ruby
MultipleRolesNotEnabledErrorBody — — 3 all
OAuthErrorBody — — 3 all
OneTimeCodeExpiredErrorBody — — 3 all
OneTimeCodePreviouslyUsedErrorBody — — 3 all
OneTimeCodeTooManyAttemptsErrorBody — — 3 all
OrganizationAuthenticationMethodsRequiredOAuthErrorBody — — 3 all
OrganizationConnectedAccountStateLiteral — — 3 python
OrganizationDeletedDataDomainVerificationStrategyLiteral — — 3 python
OrganizationDomainCreatedDataVerificationStrategyLiteral — — 3 python
OrganizationDomainDeletedDataVerificationStrategyLiteral — — 3 python
OrganizationDomainUpdatedDataVerificationStrategyLiteral — — 3 python
OrganizationDomainVerificationFailedDataOrganizationDomainVerificationStrategyLiteral — — 3 python
OrganizationDomainVerificationStrategyLiteral — — 3 python
OrganizationDomainVerifiedDataVerificationStrategyLiteral — — 3 python
OrganizationMembershipNotFoundOAuthErrorBody — — 3 all
OrganizationNotFoundOAuthErrorBody — — 3 all
OrganizationUpdatedDataDomainVerificationStrategyLiteral — — 3 python
PasskeyProgressiveEnrollmentErrorBody — — 3 all
PasswordAndPasswordHashProvidedErrorBody — — 3 all
PasswordAndPasswordHashTypeProvidedErrorBody — — 3 all
PasswordSaltPositionRequiresPasswordHashErrorBody — — 3 all
PatchGroupRoleAssignments — — 3 ios, kotlin, php, python, ruby, rust
PhoneNumberRequiredErrorBody — — 3 all
PipeConnectedAccountConnectionRoleLiteral — — 3 python
PipeConnectedAccountStateLiteral — — 3 python
PolicyDeniedErrorBody — — 3 all
RadarChallengeErrorBody — — 3 all
RadarSignUpChallengeErrorBody — — 3 all
RadarSmsSignInChallengeErrorBody — — 3 all
SignUpNotAllowedOAuthErrorBody — — 3 all
SlowDownOAuthErrorBody — — 3 all
SmsChallengeQuotaReachedErrorBody — — 3 all
SmsChallengeRateLimitedErrorBody — — 3 all
TokenQueryGrantTypeLiteral — — 3 python
TokenTooBigOAuthErrorBody — — 3 all
TooManyRequestsOAuthErrorBody — — 3 all
UnauthorizedClientOAuthErrorBody — — 3 all
UpdateCustomProviderDefinitionAuthenticateViaLiteral — — 3 python
UpdateUserPasswordSaltPositionLiteral — — 3 python
UserConsentOptionsNotSupportedErrorBody — — 3 all
UserMismatchErrorBody — — 3 all
WebhookEndpointStatusLiteral — — 3 python
APIKeyDataIntegrationVendedCredential — — 2 go, ios, kotlin, php, python, ruby, rust
CreateConnectedAccountStateLiteral — — 2 python
CreateOrganizationConnectedAccountStateLiteral — — 2 python
DateTimeFormat — — 2 php
ExternalIdAlreadyUsedErrorBody — — 2 all
FinishConnectionParams — — 2 rust
InvalidIdpSSOUrlErrorBody — — 2 all
InvalidOrganizationIdErrorBody — — 2 all
InvalidUrlErrorBody — — 2 all
MfaChallengeErrorBody — — 2 all
MfaEnrollmentErrorBody — — 2 all
MfaEnrollmentOAuthErrorBody — — 2 all
MustUseSSOForSelectedOrganizationMessageErrorBody — — 2 all
PkceNotSupportedOAuthErrorBody — — 2 all
ResourceExportCompletedDataResourceType — — 2 dotnet, go, ios, python, ruby, rust
UnauthorizedErrorBody — — 2 all
UpdateGroupOrganizationMembershipsParams — — 2 rust
VerificationIdRequiredErrorBody — — 2 all
CreateOAuthApplication — — 1 all
ExternalIDAlreadyUsedErrorBody — — 1 go, ios, kotlin, php, python, ruby, rust
GroupService — — 1 go, ios, kotlin
InvalidIdpSSOURLErrorBody — — 1 go, ios, kotlin, php, python, ruby, rust
InvalidOrganizationIDErrorBody — — 1 go, ios, kotlin, php, python, ruby, rust
InvalidURLErrorBody — — 1 go, ios, kotlin, php, python, ruby, rust
ItContactListListMetadata — — 1 ruby
MFAChallengeErrorBody — — 1 go, ios, kotlin, php, python, ruby, rust
MFAEnrollmentErrorBody — — 1 go, ios, kotlin, php, python, ruby, rust
MFAEnrollmentOAuthErrorBody — — 1 go, ios, kotlin, php, python, ruby, rust
PatchGroupMemberships — — 1 ios, kotlin, php, python, ruby, rust
PKCENotSupportedOAuthErrorBody — — 1 go, ios, kotlin, php, python, ruby, rust
VerificationIDRequiredErrorBody — — 1 go, ios, kotlin, php, python, ruby, rust

Breaking (279)

AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequest

1 type, 6 fields, 2 enums, 3 enum values removed
Symbol Kind Languages
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequest type dotnet, go, ios, kotlin, php, python, ruby, rust
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.AccountDisplayName field dotnet, go, ios, kotlin, php, python, ruby, rust
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.Config field dotnet, go, ios, php, python, ruby, rust
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.ConnectionOwner field dotnet, go, ios, kotlin, php, python, ruby, rust
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.OrganizationId field dotnet, go, ios, kotlin, php, python, ruby, rust
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.ReturnTo field dotnet, go, ios, kotlin, php, python, ruby, rust
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.UserId field dotnet, go, ios, kotlin, php, python, ruby, rust
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequestConnectionOwner enum dotnet, go, ios, kotlin, ruby, rust
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequestConnectionOwner.Organization enum value dotnet, go, ios, python, ruby, rust
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequestConnectionOwner.Unknown enum value dotnet, rust
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequestConnectionOwner.User enum value dotnet, go, ios, python, ruby, rust
AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequestConnectionOwnerLiteral enum python

AddDataIntegrationsGetDataIntegrationAuthorizeURLRequest

1 field removed
Symbol Kind Languages
AddDataIntegrationsGetDataIntegrationAuthorizeURLRequest.connection_intent field go, ios, kotlin, php, python, ruby, rust

ApiKeys

Parameter changes (2)

Method Changes Languages
ApiKeys.create_api_key_expire expires_at type: str | None | NotGiven → datetime | str | None | NotGiven python
ApiKeys.create_organization_api_key expires_at type: str | None → datetime | str | None python

AsyncApiKeys

Parameter changes (2)

Method Changes Languages
AsyncApiKeys.create_api_key_expire expires_at type: str | None | NotGiven → datetime | str | None | NotGiven python
AsyncApiKeys.create_organization_api_key expires_at type: str | None → datetime | str | None python

AsyncAuditLogs

Parameter changes (2)

Method Changes Languages
AsyncAuditLogs.create_export range_start type: str → datetime | str; range_end type: str → datetime | str python

AsyncEvents

Parameter changes (1)

Method Changes Languages
AsyncEvents.list_events range_end type: str | None → datetime | str | None python

AsyncPipes

Parameter changes (4)

Method Changes Languages
AsyncPipes.create_organization_connected_account expires_at type: str | None → datetime | str | None python
AsyncPipes.create_user_connected_account expires_at type: str | None → datetime | str | None python
AsyncPipes.update_organization_connected_account expires_at type: str | None → datetime | str | None python
AsyncPipes.update_user_connected_account expires_at type: str | None → datetime | str | None python

AsyncUserManagement

Parameter changes (5)

Method Changes Languages
AsyncUserManagement.create_user_api_key expires_at type: str | None → datetime | str | None python
AsyncUserManagement.list_waitlists limit removed; before removed; after removed; order removed python

AsyncVault

Parameter changes (1)

Method Changes Languages
AsyncVault.list_kv updated_after type: str | None → datetime | str | None python

AuditLogEvent

Type changes (1)

AuditLogEvent.OccurredAt type changed (field)

Language Before After
dotnet
📄 src/WorkOS.net/Entities/AuditLogEvent.cs
AuditLogEvent.OccurredAt
type: DateTimeOffset
AuditLogEvent.OccurredAt
type: DateTimeOffset?
go
📄 models.go
AuditLogEvent.occurred_at
type: string
AuditLogEvent.occurred_at
type: *string
ios
📄 Sources/WorkOS/Models/AuditLogEvent.swift
AuditLogEvent.occurredAt
type: Date
AuditLogEvent.occurredAt
type: Date?
kotlin
📄 src/main/kotlin/com/workos/models/AuditLogEvent.kt
AuditLogEvent.occurred_at
type: OffsetDateTime
AuditLogEvent.occurred_at
type: OffsetDateTime?
php
📄 lib/Resource/AuditLogEvent.php
AuditLogEvent.occurredAt
type: \DateTimeImmutable
AuditLogEvent.occurredAt
type: ?\DateTimeImmutable
python
📄 src/workos/audit_logs/models/audit_log_event.py
AuditLogEvent.occurred_at
type: datetime
AuditLogEvent.occurred_at
type: datetime | None
rust
📄 src/models/audit_log_event.rs
AuditLogEvent.occurred_at
type: String
AuditLogEvent.occurred_at
type: Option<String>

AuditLogs

Parameter changes (2)

Method Changes Languages
AuditLogs.create_export range_start type: str → datetime | str; range_end type: str → datetime | str python

AuthorizeDataIntegrationParams

1 enum, 2 enum values removed
Symbol Kind Languages
AuthorizeDataIntegrationParamsBodyOneOf enum rust
AuthorizeDataIntegrationParamsBodyOneOf.AddDataIntegrationsGetDataIntegrationAuthorizeUrlRequest enum value rust
AuthorizeDataIntegrationParamsBodyOneOf.ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequest enum value rust

Parameter changes (1)

Method Changes Languages
AuthorizeDataIntegrationParams.new body type: AuthorizeDataIntegrationParamsBodyOneOf → DataIntegrationsGetDataIntegrationAuthorizeUrlRequest rust

Connect

5 types, 19 fields, 10 enum values removed
Symbol Kind Languages
ConnectedAccountWriteResponse type dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.AccountDisplayName field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.AccountIdentifier field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.api_key_last_4 field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.AuthMethod field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.client_secret_last_4 field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.ClientId field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.Config field dotnet, go, ios, php, python, ruby, rust
ConnectedAccountWriteResponse.ConnectionRole field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.CreatedAt field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.EstablishedByUserId field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.Id field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.object field go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.OrganizationId field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.Scopes field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.State field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.StateReason field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.UpdatedAt field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.UserId field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponse.Warnings field dotnet, go, ios, kotlin, php, python, ruby, rust
ConnectedAccountWriteResponseAuthMethod type go, ios, kotlin, rust
ConnectedAccountWriteResponseAuthMethod.apiKey enum value ios, rust
ConnectedAccountWriteResponseAuthMethod.clientCredentials enum value ios, rust
ConnectedAccountWriteResponseAuthMethod.oauth enum value ios, rust
ConnectedAccountWriteResponseConnectionRole type go, ios, kotlin, rust
ConnectedAccountWriteResponseConnectionRole.compatibility enum value ios, rust
ConnectedAccountWriteResponseConnectionRole.standard enum value ios, rust
ConnectedAccountWriteResponseConnectionRole.Unknown enum value rust
ConnectedAccountWriteResponseState type go, ios, kotlin, rust
ConnectedAccountWriteResponseState.connected enum value ios, rust
ConnectedAccountWriteResponseState.disconnected enum value ios, rust
ConnectedAccountWriteResponseState.needsReauthorization enum value ios, rust
ConnectedAccountWriteResponseState.Unknown enum value rust
ConnectedAccountWriteResponseWarning type dotnet, go, ios, kotlin, php, python, ruby, rust

Parameter changes (1)

Method Changes Languages
Connect.updateApplication requestOptions moved 5→6 ios

CreateUserInviteOptionsLocale

1 enum, 1 enum value removed
Symbol Kind Languages
CreateUserInviteOptionsLocale enum dotnet, php, ruby
CreateUserInviteOptionsLocale.Unknown enum value dotnet, kotlin, rust

DataIntegration

7 types, 36 fields, 6 enum values removed
Symbol Kind Languages
DataIntegrationsGetDataIntegrationAuthorizeUrlRequest type dotnet, go, rust
DataIntegrationsGetDataIntegrationAuthorizeUrlRequest.AccountDisplayName field dotnet, go
DataIntegrationsGetDataIntegrationAuthorizeUrlRequest.Config field dotnet, go, python
DataIntegrationsGetDataIntegrationAuthorizeUrlRequest.ConnectionOwner field dotnet, go
DataIntegrationsGetDataIntegrationAuthorizeUrlRequest.OrganizationId field dotnet, go
DataIntegrationsGetDataIntegrationAuthorizeUrlRequest.ReturnTo field dotnet, go
DataIntegrationsGetDataIntegrationAuthorizeUrlRequest.UserId field dotnet, go
DataIntegrationsUpsertApiKeyRequest type dotnet, go, rust
DataIntegrationsUpsertApiKeyRequest.AccountDisplayName field dotnet, go
DataIntegrationsUpsertApiKeyRequest.AccountIdentifier field dotnet, go
DataIntegrationsUpsertApiKeyRequest.ConnectionOwner field dotnet, go
DataIntegrationsUpsertApiKeyRequest.OrganizationId field dotnet, go
DataIntegrationsUpsertApiKeyRequest.Secret field dotnet, go
DataIntegrationsUpsertApiKeyRequest.UserId field dotnet, go
DataIntegrationsUpsertApiKeyRequest2 type dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertApiKeyRequest2.AccountDisplayName field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertApiKeyRequest2.AccountIdentifier field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertApiKeyRequest2.ConnectedAccountId field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertApiKeyRequest2.ConnectionOwner field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertApiKeyRequest2.OrganizationId field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertApiKeyRequest2.Secret field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertApiKeyRequest2.UserId field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertAPIKeyRequest2ConnectionOwner type go, ios, kotlin, rust
DataIntegrationsUpsertApiKeyRequest2ConnectionOwner.organization enum value ios, rust
DataIntegrationsUpsertApiKeyRequest2ConnectionOwner.Unknown enum value rust
DataIntegrationsUpsertApiKeyRequest2ConnectionOwner.user enum value ios, rust
DataIntegrationsUpsertClientCredentialsRequest type dotnet, go, rust
DataIntegrationsUpsertClientCredentialsRequest.AccountDisplayName field dotnet, go
DataIntegrationsUpsertClientCredentialsRequest.AccountIdentifier field dotnet, go
DataIntegrationsUpsertClientCredentialsRequest.ClientId field dotnet, go
DataIntegrationsUpsertClientCredentialsRequest.ClientSecret field dotnet, go
DataIntegrationsUpsertClientCredentialsRequest.Config field dotnet, go
DataIntegrationsUpsertClientCredentialsRequest.ConnectionOwner field dotnet, go
DataIntegrationsUpsertClientCredentialsRequest.OrganizationId field dotnet, go
DataIntegrationsUpsertClientCredentialsRequest.UserId field dotnet, go
DataIntegrationsUpsertClientCredentialsRequest2 type dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertClientCredentialsRequest2.AccountDisplayName field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertClientCredentialsRequest2.AccountIdentifier field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertClientCredentialsRequest2.ClientId field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertClientCredentialsRequest2.ClientSecret field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertClientCredentialsRequest2.Config field dotnet, go, ios, php, python, ruby, rust
DataIntegrationsUpsertClientCredentialsRequest2.ConnectedAccountId field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertClientCredentialsRequest2.ConnectionOwner field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertClientCredentialsRequest2.OrganizationId field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertClientCredentialsRequest2.UserId field dotnet, go, ios, kotlin, php, python, ruby, rust
DataIntegrationsUpsertClientCredentialsRequest2ConnectionOwner type go, ios, kotlin, rust
DataIntegrationsUpsertClientCredentialsRequest2ConnectionOwner.organization enum value ios, rust
DataIntegrationsUpsertClientCredentialsRequest2ConnectionOwner.Unknown enum value rust
DataIntegrationsUpsertClientCredentialsRequest2ConnectionOwner.user enum value ios, rust

Type changes (4)

DataIntegrationCredentialsResponse.credential type changed (field)

Language Before After
python
📄 src/workos/pipes/models/data_integration_credentials_response.py
DataIntegrationCredentialsResponse.credential
type: DataIntegrationVendedCredential | None
DataIntegrationCredentialsResponse.credential
type: DataIntegrationVendedCredentialVariant | None

DataIntegrationVendedCredential.auth_method type changed (field)

Language Before After
go
📄 models.go
DataIntegrationVendedCredential.auth_method
type: *string
DataIntegrationVendedCredential.auth_method
type: string

DataIntegrationVendedCredential.object type changed (field)

Language Before After
go
📄 models.go
DataIntegrationVendedCredential.object
type: *string
DataIntegrationVendedCredential.object
type: string

DataIntegrationVendedCredential.value type changed (field)

Language Before After
go
📄 models.go
DataIntegrationVendedCredential.value
type: *string
DataIntegrationVendedCredential.value
type: string

Events

Renamed (1)

Symbol Before After Languages
EventsListParams.PaginationParams EventsListParams.PaginationParams EventsListParams.Limit go

Parameter changes (30)

Method Changes Languages
Events.list before removed; order removed; after moved 1→0; limit moved 2→1; events moved 4→2; rangeStart moved 5→3; rangeEnd moved 6→4; organizationId moved 7→5; requestOptions moved 8→6; rangeStart type: String? → Date?; rangeEnd type: String? → Date? ios, kotlin
Events.list_events order type: PaginationOrder | str | None → str | None; range_start type: str | None → datetime | str | None; range_end type: str | None → datetime | str | None python
Events.listAutoPaging before removed; order removed; limit moved 1→0; events moved 3→1; rangeStart moved 4→2; rangeEnd moved 5→3; organizationId moved 6→4; requestOptions moved 7→5; rangeStart type: String? → Date?; rangeEnd type: String? → Date? ios
Events.listEvents before removed; order removed; rangeStart type: ?string → ?\DateTimeImmutable; rangeEnd type: ?string → ?\DateTimeImmutable php, python, ruby
Events.listSuspend before removed; order removed kotlin

Type changes (2)

EventsListOptions.RangeEnd type changed (field)

Language Before After
dotnet
📄 src/WorkOS.net/Services/Events/_interfaces/EventsOptions.cs
EventsListOptions.RangeEnd
type: string?
EventsListOptions.RangeEnd
type: DateTimeOffset?

EventsListOptions.RangeStart type changed (field)

Language Before After
dotnet
📄 src/WorkOS.net/Services/Events/_interfaces/EventsOptions.cs
EventsListOptions.RangeStart
type: string?
EventsListOptions.RangeStart
type: DateTimeOffset?

ListEventsParams

2 propertys removed
Symbol Kind Languages
ListEventsParams.before property rust
ListEventsParams.order property rust

Pipes

3 fields removed
Symbol Kind Languages
PipesAuthorizeDataIntegrationParams.Body field go
PipesUpdateDataIntegrationAPIKeyParams.Body field go
PipesUpdateDataIntegrationClientCredentialsParams.Body field go

Parameter changes (21)

Method Changes Languages
Pipes.authorize_data_integration body → user_id python
Pipes.authorizeDataIntegration body → accountDisplayName; requestOptions moved 2→11; userId now required ios, kotlin, php, python
Pipes.authorizeDataIntegrationSuspend userId now required kotlin
Pipes.create_organization_connected_account expires_at type: str | None → datetime | str | None python
Pipes.create_user_connected_account expires_at type: str | None → datetime | str | None python
Pipes.update_data_integration_api_key body → user_id; secret now required python
Pipes.update_data_integration_client_credentials body → user_id; client_secret now required python
Pipes.update_organization_connected_account expires_at type: str | None → datetime | str | None python
Pipes.update_user_connected_account expires_at type: str | None → datetime | str | None python
Pipes.updateDataIntegrationApiKey body → accountDisplayName; requestOptions moved 2→9; secret now required ios, kotlin, php, python
Pipes.updateDataIntegrationApiKeySuspend secret now required kotlin
Pipes.updateDataIntegrationClientCredentials body → accountDisplayName; requestOptions moved 2→11; clientSecret now required ios, kotlin, php, python
Pipes.updateDataIntegrationClientCredentialsSuspend clientSecret now required kotlin

Type changes (16)

Pipes.create_data_integration_api_key return type changed (function)

Language Before After
python
📄 src/workos/pipes/_resource.py
Pipes.create_data_integration_api_key(slug, user_id, secret, connection_intent, …)
returnType: ConnectedAccountWriteResponse
Pipes.create_data_integration_api_key(slug, user_id, secret, connection_intent, …)
returnType: ConnectedAccount

Pipes.create_data_integration_client_credential return type changed (function)

Language Before After
python
📄 src/workos/pipes/_resource.py
Pipes.create_data_integration_client_credential(slug, user_id, client_id, client_secret, …)
returnType: ConnectedAccountWriteResponse
Pipes.create_data_integration_client_credential(slug, user_id, client_id, client_secret, …)
returnType: ConnectedAccount

Pipes.create_organization_connected_account return type changed (function)

Language Before After
python
📄 src/workos/pipes/_resource.py
Pipes.create_organization_connected_account(organization_id, slug, user_id, account_display_name?, …)
returnType: ConnectedAccountWriteResponse
Pipes.create_organization_connected_account(organization_id, slug, user_id, account_display_name?, …)
returnType: ConnectedAccount

Pipes.create_user_connected_account return type changed (function)

Language Before After
python
📄 src/workos/pipes/_resource.py
Pipes.create_user_connected_account(user_id, slug, account_display_name?, account_identifier?, …)
returnType: ConnectedAccountWriteResponse
Pipes.create_user_connected_account(user_id, slug, account_display_name?, account_identifier?, …)
returnType: ConnectedAccount

Pipes.createDataIntegrationApiKeySuspend return type changed (function)

Language Before After
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.createDataIntegrationApiKeySuspend(slug, userId, secret, connectionIntent, …)
returnType: ConnectedAccountWriteResponse
Pipes.createDataIntegrationApiKeySuspend(slug, userId, secret, connectionIntent, …)
returnType: ConnectedAccount

Pipes.createDataIntegrationClientCredentialSuspend return type changed (function)

Language Before After
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.createDataIntegrationClientCredentialSuspend(slug, userId, clientId, clientSecret, …)
returnType: ConnectedAccountWriteResponse
Pipes.createDataIntegrationClientCredentialSuspend(slug, userId, clientId, clientSecret, …)
returnType: ConnectedAccount

Pipes.createOrganizationConnectedAccountSuspend return type changed (function)

Language Before After
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.createOrganizationConnectedAccountSuspend(organizationId, slug, userId, accountDisplayName?, …)
returnType: ConnectedAccountWriteResponse
Pipes.createOrganizationConnectedAccountSuspend(organizationId, slug, accessToken?, refreshToken?, …)
returnType: ConnectedAccount

Pipes.createUserConnectedAccountSuspend return type changed (function)

Language Before After
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.createUserConnectedAccountSuspend(userId, slug, organizationId?, accountDisplayName?, …)
returnType: ConnectedAccountWriteResponse
Pipes.createUserConnectedAccountSuspend(userId, slug, organizationId?, accessToken?, …)
returnType: ConnectedAccount

Pipes.update_data_integration_api_key return type changed (function)

Language Before After
python
📄 src/workos/pipes/_resource.py
Pipes.update_data_integration_api_key(slug, body, request_options?)
returnType: ConnectedAccountWriteResponse
Pipes.update_data_integration_api_key(slug, user_id, secret, account_display_name?, …)
returnType: ConnectedAccount

Pipes.update_data_integration_client_credentials return type changed (function)

Language Before After
python
📄 src/workos/pipes/_resource.py
Pipes.update_data_integration_client_credentials(slug, body, request_options?)
returnType: ConnectedAccountWriteResponse
Pipes.update_data_integration_client_credentials(slug, user_id, client_id, client_secret, …)
returnType: ConnectedAccount

Pipes.update_organization_connected_account return type changed (function)

Language Before After
python
📄 src/workos/pipes/_resource.py
Pipes.update_organization_connected_account(organization_id, slug, user_id, account_display_name?, …)
returnType: ConnectedAccountWriteResponse
Pipes.update_organization_connected_account(organization_id, slug, user_id, account_display_name?, …)
returnType: ConnectedAccount

Pipes.update_user_connected_account return type changed (function)

Language Before After
python
📄 src/workos/pipes/_resource.py
Pipes.update_user_connected_account(user_id, slug, account_display_name?, account_identifier?, …)
returnType: ConnectedAccountWriteResponse
Pipes.update_user_connected_account(user_id, slug, account_display_name?, account_identifier?, …)
returnType: ConnectedAccount

Pipes.updateDataIntegrationApiKeySuspend return type changed (function)

Language Before After
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.updateDataIntegrationApiKeySuspend(slug, requestOptions?)
returnType: ConnectedAccountWriteResponse
Pipes.updateDataIntegrationApiKeySuspend(slug, userId, secret, organizationId?, …)
returnType: ConnectedAccount

Pipes.updateDataIntegrationClientCredentialsSuspend return type changed (function)

Language Before After
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.updateDataIntegrationClientCredentialsSuspend(slug, requestOptions?)
returnType: ConnectedAccountWriteResponse
Pipes.updateDataIntegrationClientCredentialsSuspend(slug, userId, clientId, clientSecret, …)
returnType: ConnectedAccount

Pipes.updateOrganizationConnectedAccountSuspend return type changed (function)

Language Before After
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.updateOrganizationConnectedAccountSuspend(organizationId, slug, userId, supportsMultipleConnections?, …)
returnType: ConnectedAccountWriteResponse
Pipes.updateOrganizationConnectedAccountSuspend(organizationId, slug, supportsMultipleConnections?, connectedAccountId?, …)
returnType: ConnectedAccount

Pipes.updateUserConnectedAccountSuspend return type changed (function)

Language Before After
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.updateUserConnectedAccountSuspend(userId, slug, organizationId?, supportsMultipleConnections?, …)
returnType: ConnectedAccountWriteResponse
Pipes.updateUserConnectedAccountSuspend(userId, slug, organizationId?, supportsMultipleConnections?, …)
returnType: ConnectedAccount

PipeService

Type changes (8)

PipeService.CreateDataIntegrationAPIKey return type changed (function)

Language Before After
go
📄 pipes.go
PipeService.CreateDataIntegrationAPIKey(slug, params, opts)
returnType: *ConnectedAccountWriteResponse
PipeService.CreateDataIntegrationAPIKey(slug, params, opts)
returnType: *ConnectedAccount
ios
📄 Sources/WorkOS/Resources/Pipes.swift
Pipes.createDataIntegrationApiKey(slug, accountDisplayName?, accountIdentifier?, userId, …)
returnType: ConnectedAccountWriteResponse
Pipes.createDataIntegrationApiKey(slug, accountDisplayName?, accountIdentifier?, userId, …)
returnType: ConnectedAccount
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.createDataIntegrationApiKey(slug, userId, secret, connectionIntent, …)
returnType: ConnectedAccountWriteResponse
Pipes.createDataIntegrationApiKey(slug, userId, secret, connectionIntent, …)
returnType: ConnectedAccount
php
📄 lib/Service/Pipes.php
Pipes.createDataIntegrationApiKey(slug, userId, secret, connectionIntent, …)
returnType: \WorkOS\Resource\ConnectedAccountWriteResponse
Pipes.createDataIntegrationApiKey(slug, userId, secret, connectionIntent, …)
returnType: \WorkOS\Resource\ConnectedAccount
python
📄 src/workos/pipes/_resource.py
AsyncPipes.create_data_integration_api_key(slug, user_id, secret, connection_intent, …)
returnType: ConnectedAccountWriteResponse
AsyncPipes.create_data_integration_api_key(slug, user_id, secret, connection_intent, …)
returnType: ConnectedAccount

PipeService.CreateDataIntegrationClientCredential return type changed (function)

Language Before After
go
📄 pipes.go
PipeService.CreateDataIntegrationClientCredential(slug, params, opts)
returnType: *ConnectedAccountWriteResponse
PipeService.CreateDataIntegrationClientCredential(slug, params, opts)
returnType: *ConnectedAccount
ios
📄 Sources/WorkOS/Resources/Pipes.swift
Pipes.createDataIntegrationClientCredential(slug, accountDisplayName?, accountIdentifier?, userId, …)
returnType: ConnectedAccountWriteResponse
Pipes.createDataIntegrationClientCredential(slug, accountDisplayName?, accountIdentifier?, userId, …)
returnType: ConnectedAccount
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.createDataIntegrationClientCredential(slug, userId, clientId, clientSecret, …)
returnType: ConnectedAccountWriteResponse
Pipes.createDataIntegrationClientCredential(slug, userId, clientId, clientSecret, …)
returnType: ConnectedAccount
php
📄 lib/Service/Pipes.php
Pipes.createDataIntegrationClientCredential(slug, userId, clientId, clientSecret, …)
returnType: \WorkOS\Resource\ConnectedAccountWriteResponse
Pipes.createDataIntegrationClientCredential(slug, userId, clientId, clientSecret, …)
returnType: \WorkOS\Resource\ConnectedAccount
python
📄 src/workos/pipes/_resource.py
AsyncPipes.create_data_integration_client_credential(slug, user_id, client_id, client_secret, …)
returnType: ConnectedAccountWriteResponse
AsyncPipes.create_data_integration_client_credential(slug, user_id, client_id, client_secret, …)
returnType: ConnectedAccount

PipeService.CreateOrganizationConnectedAccount return type changed (function)

Language Before After
go
📄 pipes.go
PipeService.CreateOrganizationConnectedAccount(organizationID, slug, params, opts)
returnType: *ConnectedAccountWriteResponse
PipeService.CreateOrganizationConnectedAccount(organizationID, slug, params, opts)
returnType: *ConnectedAccount
ios
📄 Sources/WorkOS/Resources/Pipes.swift
Pipes.createOrganizationConnectedAccount(organizationId, slug, accountDisplayName?, accountIdentifier?, …)
returnType: ConnectedAccountWriteResponse
Pipes.createOrganizationConnectedAccount(organizationId, slug, accountDisplayName?, accountIdentifier?, …)
returnType: ConnectedAccount
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.createOrganizationConnectedAccount(organizationId, slug, userId, accountDisplayName?, …)
returnType: ConnectedAccountWriteResponse
Pipes.createOrganizationConnectedAccount(organizationId, slug, accessToken?, refreshToken?, …)
returnType: ConnectedAccount
php
📄 lib/Service/Pipes.php
Pipes.createOrganizationConnectedAccount(organizationId, slug, userId, accountDisplayName?, …)
returnType: \WorkOS\Resource\ConnectedAccountWriteResponse
Pipes.createOrganizationConnectedAccount(organizationId, slug, userId, accountDisplayName?, …)
returnType: \WorkOS\Resource\ConnectedAccount
python
📄 src/workos/pipes/_resource.py
AsyncPipes.create_organization_connected_account(organization_id, slug, user_id, account_display_name?, …)
returnType: ConnectedAccountWriteResponse
AsyncPipes.create_organization_connected_account(organization_id, slug, user_id, account_display_name?, …)
returnType: ConnectedAccount

PipeService.CreateUserConnectedAccount return type changed (function)

Language Before After
go
📄 pipes.go
PipeService.CreateUserConnectedAccount(userID, slug, params, opts)
returnType: *ConnectedAccountWriteResponse
PipeService.CreateUserConnectedAccount(userID, slug, params, opts)
returnType: *ConnectedAccount
ios
📄 Sources/WorkOS/Resources/Pipes.swift
Pipes.createUserConnectedAccount(userId, slug, accountDisplayName?, accountIdentifier?, …)
returnType: ConnectedAccountWriteResponse
Pipes.createUserConnectedAccount(userId, slug, accountDisplayName?, accountIdentifier?, …)
returnType: ConnectedAccount
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.createUserConnectedAccount(userId, slug, organizationId?, accountDisplayName?, …)
returnType: ConnectedAccountWriteResponse
Pipes.createUserConnectedAccount(userId, slug, organizationId?, accessToken?, …)
returnType: ConnectedAccount
php
📄 lib/Service/Pipes.php
Pipes.createUserConnectedAccount(userId, slug, accountDisplayName?, accountIdentifier?, …)
returnType: \WorkOS\Resource\ConnectedAccountWriteResponse
Pipes.createUserConnectedAccount(userId, slug, accountDisplayName?, accountIdentifier?, …)
returnType: \WorkOS\Resource\ConnectedAccount
python
📄 src/workos/pipes/_resource.py
AsyncPipes.create_user_connected_account(user_id, slug, account_display_name?, account_identifier?, …)
returnType: ConnectedAccountWriteResponse
AsyncPipes.create_user_connected_account(user_id, slug, account_display_name?, account_identifier?, …)
returnType: ConnectedAccount

PipeService.UpdateDataIntegrationAPIKey return type changed (function)

Language Before After
go
📄 pipes.go
PipeService.UpdateDataIntegrationAPIKey(slug, params, opts)
returnType: *ConnectedAccountWriteResponse
PipeService.UpdateDataIntegrationAPIKey(slug, params, opts)
returnType: *ConnectedAccount
ios
📄 Sources/WorkOS/Resources/Pipes.swift
Pipes.updateDataIntegrationApiKey(slug, body, requestOptions?)
returnType: ConnectedAccountWriteResponse
Pipes.updateDataIntegrationApiKey(slug, accountDisplayName?, accountIdentifier?, userId, …)
returnType: ConnectedAccount
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.updateDataIntegrationApiKey(slug, requestOptions?)
returnType: ConnectedAccountWriteResponse
Pipes.updateDataIntegrationApiKey(slug, userId, secret, organizationId?, …)
returnType: ConnectedAccount
php
📄 lib/Service/Pipes.php
Pipes.updateDataIntegrationApiKey(slug, options?)
returnType: \WorkOS\Resource\ConnectedAccountWriteResponse
Pipes.updateDataIntegrationApiKey(slug, userId, secret, organizationId?, …)
returnType: \WorkOS\Resource\ConnectedAccount
python
📄 src/workos/pipes/_resource.py
AsyncPipes.update_data_integration_api_key(slug, body, request_options?)
returnType: ConnectedAccountWriteResponse
AsyncPipes.update_data_integration_api_key(slug, user_id, secret, account_display_name?, …)
returnType: ConnectedAccount

PipeService.UpdateDataIntegrationClientCredentials return type changed (function)

Language Before After
go
📄 pipes.go
PipeService.UpdateDataIntegrationClientCredentials(slug, params, opts)
returnType: *ConnectedAccountWriteResponse
PipeService.UpdateDataIntegrationClientCredentials(slug, params, opts)
returnType: *ConnectedAccount
ios
📄 Sources/WorkOS/Resources/Pipes.swift
Pipes.updateDataIntegrationClientCredentials(slug, body, requestOptions?)
returnType: ConnectedAccountWriteResponse
Pipes.updateDataIntegrationClientCredentials(slug, accountDisplayName?, accountIdentifier?, userId, …)
returnType: ConnectedAccount
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.updateDataIntegrationClientCredentials(slug, requestOptions?)
returnType: ConnectedAccountWriteResponse
Pipes.updateDataIntegrationClientCredentials(slug, userId, clientId, clientSecret, …)
returnType: ConnectedAccount
php
📄 lib/Service/Pipes.php
Pipes.updateDataIntegrationClientCredentials(slug, options?)
returnType: \WorkOS\Resource\ConnectedAccountWriteResponse
Pipes.updateDataIntegrationClientCredentials(slug, userId, clientId, clientSecret, …)
returnType: \WorkOS\Resource\ConnectedAccount
python
📄 src/workos/pipes/_resource.py
AsyncPipes.update_data_integration_client_credentials(slug, body, request_options?)
returnType: ConnectedAccountWriteResponse
AsyncPipes.update_data_integration_client_credentials(slug, user_id, client_id, client_secret, …)
returnType: ConnectedAccount

PipeService.UpdateOrganizationConnectedAccount return type changed (function)

Language Before After
go
📄 pipes.go
PipeService.UpdateOrganizationConnectedAccount(organizationID, slug, params, opts)
returnType: *ConnectedAccountWriteResponse
PipeService.UpdateOrganizationConnectedAccount(organizationID, slug, params, opts)
returnType: *ConnectedAccount
ios
📄 Sources/WorkOS/Resources/Pipes.swift
Pipes.updateOrganizationConnectedAccount(organizationId, slug, accountDisplayName?, accountIdentifier?, …)
returnType: ConnectedAccountWriteResponse
Pipes.updateOrganizationConnectedAccount(organizationId, slug, accountDisplayName?, accountIdentifier?, …)
returnType: ConnectedAccount
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.updateOrganizationConnectedAccount(organizationId, slug, userId, supportsMultipleConnections?, …)
returnType: ConnectedAccountWriteResponse
Pipes.updateOrganizationConnectedAccount(organizationId, slug, supportsMultipleConnections?, connectedAccountId?, …)
returnType: ConnectedAccount
php
📄 lib/Service/Pipes.php
Pipes.updateOrganizationConnectedAccount(organizationId, slug, userId, accountDisplayName?, …)
returnType: \WorkOS\Resource\ConnectedAccountWriteResponse
Pipes.updateOrganizationConnectedAccount(organizationId, slug, userId, accountDisplayName?, …)
returnType: \WorkOS\Resource\ConnectedAccount
python
📄 src/workos/pipes/_resource.py
AsyncPipes.update_organization_connected_account(organization_id, slug, user_id, account_display_name?, …)
returnType: ConnectedAccountWriteResponse
AsyncPipes.update_organization_connected_account(organization_id, slug, user_id, account_display_name?, …)
returnType: ConnectedAccount

PipeService.UpdateUserConnectedAccount return type changed (function)

Language Before After
go
📄 pipes.go
PipeService.UpdateUserConnectedAccount(userID, slug, params, opts)
returnType: *ConnectedAccountWriteResponse
PipeService.UpdateUserConnectedAccount(userID, slug, params, opts)
returnType: *ConnectedAccount
ios
📄 Sources/WorkOS/Resources/Pipes.swift
Pipes.updateUserConnectedAccount(userId, slug, accountDisplayName?, accountIdentifier?, …)
returnType: ConnectedAccountWriteResponse
Pipes.updateUserConnectedAccount(userId, slug, accountDisplayName?, accountIdentifier?, …)
returnType: ConnectedAccount
kotlin
📄 src/main/kotlin/com/workos/pipes/Pipes.kt
Pipes.updateUserConnectedAccount(userId, slug, organizationId?, supportsMultipleConnections?, …)
returnType: ConnectedAccountWriteResponse
Pipes.updateUserConnectedAccount(userId, slug, organizationId?, supportsMultipleConnections?, …)
returnType: ConnectedAccount
php
📄 lib/Service/Pipes.php
Pipes.updateUserConnectedAccount(userId, slug, accountDisplayName?, accountIdentifier?, …)
returnType: \WorkOS\Resource\ConnectedAccountWriteResponse
Pipes.updateUserConnectedAccount(userId, slug, accountDisplayName?, accountIdentifier?, …)
returnType: \WorkOS\Resource\ConnectedAccount
python
📄 src/workos/pipes/_resource.py
AsyncPipes.update_user_connected_account(user_id, slug, account_display_name?, account_identifier?, …)
returnType: ConnectedAccountWriteResponse
AsyncPipes.update_user_connected_account(user_id, slug, account_display_name?, account_identifier?, …)
returnType: ConnectedAccount

ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequest

1 type, 7 fields, 3 enum values removed
Symbol Kind Languages
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequest type dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.AccountDisplayName field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.Config field dotnet, go, ios, php, python, ruby, rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.ConnectedAccountId field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.ConnectionOwner field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.OrganizationId field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.ReturnTo field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequest.UserId field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequestConnectionOwner.organization enum value ios, rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequestConnectionOwner.Unknown enum value rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeUrlRequestConnectionOwner.user enum value ios, rust

ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeURLRequest

1 field, 1 type removed
Symbol Kind Languages
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeURLRequest.connection_intent field go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsGetDataIntegrationAuthorizeURLRequestConnectionOwner type go, ios, kotlin, rust

ReauthorizeDataIntegrationsUpsertApiKeyRequest

1 type, 7 fields, 3 enum values removed
Symbol Kind Languages
ReauthorizeDataIntegrationsUpsertApiKeyRequest type dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertApiKeyRequest.AccountDisplayName field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertApiKeyRequest.AccountIdentifier field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertApiKeyRequest.ConnectedAccountId field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertApiKeyRequest.ConnectionOwner field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertApiKeyRequest.OrganizationId field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertApiKeyRequest.Secret field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertApiKeyRequest.UserId field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertApiKeyRequestConnectionOwner.organization enum value ios, rust
ReauthorizeDataIntegrationsUpsertApiKeyRequestConnectionOwner.Unknown enum value rust
ReauthorizeDataIntegrationsUpsertApiKeyRequestConnectionOwner.user enum value ios, rust

ReauthorizeDataIntegrationsUpsertAPIKeyRequest

1 field, 1 type removed
Symbol Kind Languages
ReauthorizeDataIntegrationsUpsertAPIKeyRequest.connection_intent field go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertAPIKeyRequestConnectionOwner type go, ios, kotlin, rust

ReauthorizeDataIntegrationsUpsertClientCredentialsRequest

2 types, 10 fields, 3 enum values removed
Symbol Kind Languages
ReauthorizeDataIntegrationsUpsertClientCredentialsRequest type dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequest.AccountDisplayName field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequest.AccountIdentifier field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequest.ClientId field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequest.ClientSecret field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequest.Config field dotnet, go, ios, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequest.ConnectedAccountId field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequest.connection_intent field go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequest.ConnectionOwner field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequest.OrganizationId field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequest.UserId field dotnet, go, ios, kotlin, php, python, ruby, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequestConnectionOwner type go, ios, kotlin, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequestConnectionOwner.organization enum value ios, rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequestConnectionOwner.Unknown enum value rust
ReauthorizeDataIntegrationsUpsertClientCredentialsRequestConnectionOwner.user enum value ios, rust

UpdateDataIntegrationApiKeyParams

1 enum, 2 enum values removed
Symbol Kind Languages
UpdateDataIntegrationApiKeyParamsBodyOneOf enum rust
UpdateDataIntegrationApiKeyParamsBodyOneOf.DataIntegrationsUpsertApiKeyRequest2 enum value rust
UpdateDataIntegrationApiKeyParamsBodyOneOf.ReauthorizeDataIntegrationsUpsertApiKeyRequest enum value rust

Parameter changes (1)

Method Changes Languages
UpdateDataIntegrationApiKeyParams.new body type: UpdateDataIntegrationApiKeyParamsBodyOneOf → DataIntegrationsUpsertApiKeyRequest rust

UpdateDataIntegrationClientCredentialsParams

1 enum, 2 enum values removed
Symbol Kind Languages
UpdateDataIntegrationClientCredentialsParamsBodyOneOf enum rust
UpdateDataIntegrationClientCredentialsParamsBodyOneOf.DataIntegrationsUpsertClientCredentialsRequest2 enum value rust
UpdateDataIntegrationClientCredentialsParamsBodyOneOf.ReauthorizeDataIntegrationsUpsertClientCredentialsRequest enum value rust

Parameter changes (1)

Method Changes Languages
UpdateDataIntegrationClientCredentialsParams.new body type: UpdateDataIntegrationClientCredentialsParamsBodyOneOf → DataIntegrationsUpsertClientCredentialsRequest rust

UserManagement

Parameter changes (14)

Method Changes Languages
UserManagement.create_user_api_key expires_at type: str | None → datetime | str | None python
UserManagement.createMagicAuth requestOptions moved 6→7 ios
UserManagement.list_waitlists limit removed; before removed; after removed; order removed python
UserManagement.resendInvitation locale type: CreateUserInviteOptionsLocale? → SendEmailChangeLocale? kotlin, php
UserManagement.resendInvitationSuspend locale type: CreateUserInviteOptionsLocale? → SendEmailChangeLocale? kotlin
UserManagement.resetPassword requestOptions moved 1→2 ios
UserManagement.sendEmailChange requestOptions moved 2→3 ios
UserManagement.sendInvitation locale type: CreateUserInviteOptionsLocale? → SendEmailChangeLocale? kotlin, php
UserManagement.sendInvitationSuspend locale type: CreateUserInviteOptionsLocale? → SendEmailChangeLocale? kotlin
> [!NOTE] > This report was truncated because it exceeded GitHub's 65,536-character comment limit. See [the full SDK diff report](https://workos.github.io/openapi-spec/pr-262/sdk-diff-report.html) for the complete details.

Copy link
Copy Markdown
Author

Compatibility blocker verified against the eight diagnostics JSON artifacts for run 41747137126, head 583a4b54edad8944b080b82b1e475894df819d18. The status job posts sdk-compat: failure (889 breaking SDK change(s) detected); all eight SDK builds and policy/tests passed.

Exactly seven of those 889 flags directly name AuditLogEvent.occurred_at (one conceptual field change across seven languages):

SDK Reported type change
.NET DateTimeOffset → DateTimeOffset?
Go string → *string
iOS Date → Date?
Kotlin OffsetDateTime → OffsetDateTime?
PHP DateTimeImmutable → ?DateTimeImmutable
Python datetime → datetime \| None
Rust String → Option<String>

Ruby has zero direct AuditLogEvent compatibility flags; its RBI becoming nilable does not establish wire omission. The remaining 882 flags are outside this direct subset and include broad template/regeneration drift; they are not all attributed to this feature.

The published code report confirms specific missing-policy effects from the locked 0.25.5 emitter: Go/Rust lose their shipped string types; Swift/Kotlin/PHP/Python move the timestamp from its old constructor slot; PHP replaces RFC3339_EXTENDED formatting and includes the absent timestamp entry. The reviewed #303 fixes are not available through this clean-install dependency yet.

Required next gate: publish a real release containing reviewed emitter head b66056fa78c4126e1485c266bdc11f1c0bc4d01a, update the actual dependency/lockfile, clean-install, regenerate under the existing baseline rules, prove old constructor/factory calls and HTTP-body omission/exact explicit timestamps, then rerun all eight SDK build and compatibility checks. Remaining nullable-type flags and wider drift must be assessed under the existing compatibility gate; upgrading the emitter is necessary, not a promise that the 889 become zero.

This PR remains a blocked draft. The failed check is preserved. No exception, baseline change, check suppression, unrelated regeneration repair, merge, or release was performed.

@gjtorikian

Copy link
Copy Markdown
Collaborator

not the right source

@gjtorikian gjtorikian closed this Nov 4, 2026
github-actions Bot added a commit that referenced this pull request Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants