|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## [9.1.0](https://github.com/workos/workos-go/compare/v9.0.0...v9.1.0) (2026-05-27) |
| 4 | + |
| 5 | +### Features |
| 6 | + |
| 7 | +* add generated events constants package ([#560](https://github.com/workos/workos-go/issues/560)) ([4a57b0d](https://github.com/workos/workos-go/commit/4a57b0de2653001bd1c7abe7c8806626cada35e8)) |
| 8 | + |
| 9 | + |
| 10 | +### Bug Fixes |
| 11 | + |
| 12 | +* v9 module path release workflow ([#559](https://github.com/workos/workos-go/issues/559)) ([b89d38d](https://github.com/workos/workos-go/commit/b89d38d5fe3959a23a6f348424582513ca4bccbc)) |
| 13 | + |
| 14 | +* [#554](https://github.com/workos/workos-go/pull/554) feat(generated)!: regenerate from spec (11 changes) |
| 15 | + |
| 16 | + **⚠️ Breaking** |
| 17 | + * **audit_logs:** Rename audit log model types (breaking) |
| 18 | + * Rename `AuditLogExportJSON` to `AuditLogExport` |
| 19 | + * Rename `AuditLogsRetentionJSON` to `AuditLogsRetention` |
| 20 | + * Rename `AuditLogActionJSON` to `AuditLogAction` |
| 21 | + * Rename `AuditLogExportJSONState` to `AuditLogExportState` |
| 22 | + * Update method signatures to use new type names |
| 23 | + * **authorization:** Remove `Search` parameter from `AuthorizationListResourcesParams` |
| 24 | + * **radar:** Remove device_fingerprint and bot_score parameters |
| 25 | + * Remove `DeviceFingerprint` field from `RadarCreateAttemptParams` |
| 26 | + * Remove `BotScore` field from `RadarCreateAttemptParams` |
| 27 | + * Remove enum values `CREDENTIAL_STUFFING` and `IP_SIGN_UP_RATE_LIMIT` from `RadarStandaloneResponseControl` |
| 28 | + * Remove and update enum values in `RadarStandaloneAssessRequestAction` (keep only `SignUp` and `SignIn` with updated values) |
| 29 | + * **user_management:** Refactor organization membership to dedicated service |
| 30 | + * Move organization membership operations from `UserManagementService` to new `OrganizationMembershipService` |
| 31 | + * Remove `ListOrganizationMemberships`, `CreateOrganizationMembership`, `GetOrganizationMembership`, `UpdateOrganizationMembership`, `DeleteOrganizationMembership`, `DeactivateOrganizationMembership`, `ReactivateOrganizationMembership` methods from user management |
| 32 | + * Remove role helper types (`UserManagementRole`, `UserManagementRoleSingle`, `UserManagementRoleMultiple`) from user management (now in organization_membership) |
| 33 | + * Add `ExpiresAt` field to `UserManagementCreateAPIKeyParams` |
| 34 | + * Remove `UserManagementOrganizationMembershipGroups()` client accessor (replaced by `OrganizationMembership()`) |
| 35 | + * Remove `UserManagementOrganizationMembershipGroupService` type and `ListOrganizationMembershipGroups` method |
| 36 | + * **vault:** Rewrite vault service with breaking API changes |
| 37 | + * Remove `KeyContext` struct (replaced by `map[string]string`) |
| 38 | + * Remove `DataKeyPair` struct (replaced by `CreateDataKeyResponse`) |
| 39 | + * Remove `DataKey` struct (replaced by `DecryptResponse`) |
| 40 | + * Remove hand-written types: `VaultObject`, `VaultObjectDigest`, `VaultObjectVersion`, `VaultListObjectsParams`, `VaultListObjectsResponse`, `VaultCreateObjectParams`, `VaultUpdateObjectParams`, `VaultDecryptDataKeyParams` |
| 41 | + * Rename methods: `ListObjects`→`ListKv`, `CreateObject`→`CreateKv`, `ReadObject`→`GetKv`, `ReadObjectByName`→`GetName`, `UpdateObject`→`UpdateKv`, `DeleteObject`→`DeleteKv`, `ListObjectVersions`→`ListKvVersions`, `DescribeObject`→`ListKvMetadata`, `DecryptDataKey`→`CreateDecrypt` |
| 42 | + * Change `LocalEncrypt` signature: second param from `DataKeyPair` to `CreateDataKeyResponse` |
| 43 | + * Change `LocalDecrypt` signature: second param from `DataKey` to `DecryptResponse` |
| 44 | + * Change `Encrypt` method: `KeyContext` param type to `map[string]string` |
| 45 | + * Change `VaultEncryptResult.KeyContext` field type from `KeyContext` to `map[string]string` |
| 46 | + |
| 47 | + **Features** |
| 48 | + * **api_keys:** Add expires_at field to API key models |
| 49 | + * Add optional `expires_at` field to `APIKeysCreateOrganizationAPIKeyParams` |
| 50 | + * Add optional `expires_at` field to `UserManagementCreateAPIKeyParams` |
| 51 | + * Add optional `expires_at` field to `APIKey`, `APIKeyCreatedData`, `APIKeyRevokedData`, `OrganizationAPIKey`, `OrganizationAPIKeyWithValue`, `UserAPIKey`, and `UserAPIKeyWithValue` models |
| 52 | + * **authorization:** Add filter parameters to role/resource assignment list |
| 53 | + * Add `ResourceID`, `ResourceExternalID`, `ResourceTypeSlug` parameters to `AuthorizationListRoleAssignmentsParams` |
| 54 | + * Add `RoleSlug` parameter to `AuthorizationListRoleAssignmentsForResourceByExternalIDParams` and `AuthorizationListRoleAssignmentsForResourceParams` |
| 55 | + * **organization_membership:** Add new organization membership service |
| 56 | + * Add new `OrganizationMembershipService` with methods: `List`, `Create`, `Get`, `Update`, `Delete`, `Deactivate`, `Reactivate`, `ListGroups` |
| 57 | + * Define `OrganizationMembershipRole` interface with single and multiple variants for flexible role assignment |
| 58 | + * Add corresponding parameter types for all service methods |
| 59 | + * **vault:** Add new generated vault methods |
| 60 | + * Add `CreateRekey` method for re-encrypting data keys under a new context |
| 61 | + * Add `ListKvMetadata` method for retrieving object metadata |
| 62 | + * Add object CRUD operations via generated service: `CreateKv`, `GetKv`, `GetName`, `UpdateKv`, `DeleteKv`, `ListKv`, `ListKvVersions` |
| 63 | + * **webhooks:** Rename webhook endpoint model type |
| 64 | + * Rename `WebhookEndpointJSON` to `WebhookEndpoint` |
| 65 | + * Rename `WebhookEndpointJSONStatus` to `WebhookEndpointStatus` |
| 66 | + * Update method signatures and return types accordingly |
| 67 | + * **pipes:** Add pipes connected account event models |
| 68 | + * Add `PipeConnectedAccount` model with state tracking |
| 69 | + * Add `PipesConnectedAccountConnected`, `PipesConnectedAccountDisconnected`, `PipesConnectedAccountReauthorizationNeeded` event models |
| 70 | + * Add `PipeConnectedAccountState` enum with `connected` and `needs_reauthorization` values |
| 71 | + * Add webhook event types for pipes integration events |
| 72 | + * **generated:** Add new vault-related model types |
| 73 | + * Add `Actor` model for audit log actor representation |
| 74 | + * Add vault encryption models: `CreateDataKeyResponse`, `DecryptResponse`, `DeleteObjectResponse` |
| 75 | + * Add vault object models: `Object`, `ObjectMetadata`, `ObjectSummary`, `ObjectVersion`, `ObjectWithoutValue` |
| 76 | + * Add vault request models: `CreateDataKeyRequest`, `DecryptRequest`, `RekeyRequest`, `CreateObjectRequest`, `UpdateObjectRequest` |
| 77 | + * Add error and metadata models: `Error`, `ListMetadata`, `VersionListResponse` |
| 78 | + |
| 79 | +* **session:** `Session.Refresh` now returns a non-nil error alongside the result on authentication-level failures (`refresh_token_revoked`, `refresh_failed`). The `RefreshSessionResult.Err` field has been removed — use the second return value instead. Callers should check `result.Authenticated` (not `err == nil`) as the success signal. |
| 80 | + |
| 81 | + **Migration:** replace `result.Err` with the `err` return value from `Refresh`: |
| 82 | + |
| 83 | + ```go |
| 84 | + // Before (v8) |
| 85 | + result, _ := session.Refresh(ctx) |
| 86 | + if !result.Authenticated { |
| 87 | + if result.Err != nil { |
| 88 | + var apiErr *workos.APIError |
| 89 | + errors.As(result.Err, &apiErr) |
| 90 | + } |
| 91 | + } |
| 92 | + |
| 93 | + // After (v9) |
| 94 | + result, err := session.Refresh(ctx) |
| 95 | + if !result.Authenticated { |
| 96 | + if err != nil { |
| 97 | + var apiErr *workos.APIError |
| 98 | + errors.As(err, &apiErr) |
| 99 | + } |
| 100 | + } |
| 101 | + ``` |
| 102 | + |
3 | 103 | ## [9.0.0](https://github.com/workos/workos-go/compare/v8.0.1...v9.0.0) (2026-05-26) |
4 | 104 |
|
5 | 105 |
|
|
0 commit comments