Skip to content

Update OpenAPI spec (bee28a8) - #182

Open
workos-sdk-automation[bot] wants to merge 1 commit into
mainfrom
update-spec-20260918-215046-35398704820
Open

workos-sdk-automation[bot] wants to merge 1 commit into
mainfrom
update-spec-20260918-215046-35398704820

Conversation

@workos-sdk-automation

Copy link
Copy Markdown
Contributor

🤖 I see new OpenAPI changes beep boop

Automated update from https://github.com/workos/workos/tree/bee28a898e7067d23e29b2a6f37c8897d5413611

Source PRs

  • workos/workos#72909
Changes



├─┬Paths
│ ├─┬/organizations/{organization_id}/connected_accounts/{slug}
│ │ ├─┬PUT
│ │ │ ├─┬Responses
│ │ │ │ ├──[➕] 403 (15247:11)
│ │ │ │ └─┬404
│ │ │ │   └──[🔀] description (15260:24)
│ │ │ └─┬Request Body
│ │ │   └─┬Content
│ │ │     └─┬application/json
│ │ │       └─┬Schema
│ │ │         └──[🔀] $ref (28185:13)
│ │ └─┬POST
│ │   ├─┬Responses
│ │   │ ├──[➕] 403 (15048:11)
│ │   │ └─┬404
│ │   │   └──[🔀] description (15061:24)
│ │   └─┬Request Body
│ │     └─┬Content
│ │       └─┬application/json
│ │         └─┬Schema
│ │           └──[🔀] $ref (28185:13)
│ ├─┬/user_management/users/{id}
│ │ └─┬PUT
│ │   └─┬Extensions
│ │     └──[🔀] x-mutually-exclusive-body-groups (22100:41)
│ ├─┬/user_management/organization_memberships/{id}
│ │ └─┬PUT
│ │   └─┬Extensions
│ │     └──[🔀] x-mutually-exclusive-body-groups (20487:41)
│ ├─┬/user_management/users
│ │ └─┬POST
│ │   └─┬Extensions
│ │     └──[🔀] x-mutually-exclusive-body-groups (21807:41)
│ └─┬/user_management/organization_memberships
│   └─┬POST
│     └─┬Extensions
│       └──[🔀] x-mutually-exclusive-body-groups (20303:41)
└─┬Components
  ├──[➕] schemas/OrganizationConnectedAccountDto (28185:7)
  └─┬Schemas
    ├─┬CreateUserlandUserOrganizationMembershipDto
    │ └─┬Extensions
    │   └──[🔀] x-mutually-exclusive-body-groups (20303:41)
    ├─┬UpdateUserlandUserOrganizationMembershipDto
    │ └─┬Extensions
    │   └──[🔀] x-mutually-exclusive-body-groups (20487:41)
    ├─┬CreateUserlandUserDto
    │ ├─┬ALLOF
    │ │ └─┬Properties
    │ │   └─┬metadata
    │ │     └──[🔀] example (28892:24)
    │ └─┬Extensions
    │   └──[🔀] x-mutually-exclusive-body-groups (21807:41)
    ├─┬EventSchema
    │ ├──[🔀] example (33337:20)
    │ └─┬ALLOF
    │   ├──[🔀] example (33337:20)
    │   ├─┬Properties
    │   │ └─┬data
    │   │   └──[🔀] example (33302:24)
    │   └─┬ONEOF
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     ├─┬invocable_by
    │     │     │ └─┬Properties
    │     │     │   ├─┬organization_ids
    │     │     │   │ └──[🔀] example (33563:36)
    │     │     │   └─┬role_slugs
    │     │     │     └──[🔀] example (33554:36)
    │     │     └─┬permissions
    │     │       └──[🔀] example (33541:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     ├─┬invocable_by
    │     │     │ └─┬Properties
    │     │     │   ├─┬organization_ids
    │     │     │   │ └──[🔀] example (33563:36)
    │     │     │   └─┬role_slugs
    │     │     │     └──[🔀] example (33554:36)
    │     │     └─┬permissions
    │     │       └──[🔀] example (33541:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬permissions
    │     │       └──[🔀] example (34777:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬permissions
    │     │       └──[🔀] example (34777:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬permissions
    │     │       └──[🔀] example (34777:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬custom_attributes
    │     │       └──[🔀] example (33063:20)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬tags
    │     │       └──[🔀] example (38084:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬tags
    │     │       └──[🔀] example (38084:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬tags
    │     │       └──[🔀] example (38084:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬tags
    │     │       └──[🔀] example (38084:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬metadata
    │     │       └──[🔀] example (39673:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬metadata
    │     │       └──[🔀] example (39673:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬permissions
    │     │       └──[🔀] example (40650:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬permissions
    │     │       └──[🔀] example (40650:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬permissions
    │     │       └──[🔀] example (40650:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬metadata
    │     │       └──[🔀] example (39673:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬permissions
    │     │       └──[🔀] example (42145:32)
    │     ├─┬Properties
    │     │ └─┬data
    │     │   └─┬Properties
    │     │     └─┬permissions
    │     │       └──[🔀] example (42145:32)
    │     └─┬Properties
    │       └─┬data
    │         └─┬Properties
    │           └─┬permissions
    │             └──[🔀] example (42145:32)
    ├─┬DataIntegrationsListResponse
    │ └─┬Properties
    │   └─┬data
    │     └─┬Schema
    │       └─┬Properties
    │         ├─┬connected_accounts
    │         │ └─┬Schema
    │         │   └─┬Properties
    │         │     ├─┬config
    │         │     │ └──[🔀] example (45461:34)
    │         │     └─┬scopes
    │         │       └──[🔀] example (45411:34)
    │         └─┬connected_account
    │           └─┬ONEOF
    │             └─┬Properties
    │               ├─┬scopes
    │               │ └──[🔀] example (45411:34)
    │               └─┬config
    │                 └──[🔀] example (45461:34)
    ├─┬ConnectedAccountDto
    │ └─┬Properties
    │   └─┬scopes
    │     └──[🔀] example (28204:20)
    ├─┬UpdateUserlandUserDto
    │ ├─┬ALLOF
    │ │ └─┬Properties
    │ │   └─┬metadata
    │ │     └──[🔀] example (28892:24)
    │ └─┬Extensions
    │   └──[🔀] x-mutually-exclusive-body-groups (22100:41)
    ├─┬EventList
    │ └──[🔀] example (43448:9)
    └─┬DirectoryUser
      └─┬Properties
        └─┬custom_attributes
          └──[🔀] example (33063:20)


| Document Element | Total Changes | Breaking Changes |
|------------------|---------------|------------------|
| paths            | 10            | 0                |
| components       | 40            | 0                |

Date: 09/18/26 | Commit: Update OpenAPI spec from workos/workos@bee28a898e7067d23e29b2a6f37c8897d5413611

- **Total Changes**: _50_
- **Modifications**: _47_
- **Additions**: _3_

@greptile-apps

greptile-apps Bot commented Sep 18, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

The PR appears safe to merge after the non-blocking 403 example inconsistency is corrected.

Findings

  1. P2 403 Example Describes 404
Fix with agent prompt
### Issue 1
spec/open-api-spec.yaml:15057
The new `403` response documents an inactive organization member, but its example says the organization was not found. Generated documentation will therefore show clients a different failure from the status being described. Use an example that represents an inactive membership here and in the PUT response at line 15256.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

This automated synchronization updates the canonical OpenAPI contract to require an active organization member when importing or updating organization-scoped connected accounts.

  • Adds OrganizationConnectedAccountDto with required user_id and preserves the generic DTO for user-scoped operations.
  • Documents new 403 outcomes and expands the corresponding 404 descriptions.
  • Mechanically renumbers YAML anchors affected by the added shared schema values.
  • Advances .last-synced-sha to the upstream source revision.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
  OrgCreate[Organization connected-account POST] --> OrgDTO[OrganizationConnectedAccountDto]
  OrgUpdate[Organization connected-account PUT] --> OrgDTO
  OrgDTO --> RequiredUser[Required user_id]
  RequiredUser --> ActiveMember[Active organization membership]
  ActiveMember -->|Missing or inactive| Forbidden[403 response]
  UserCreate[User-scoped POST] --> GenericDTO[ConnectedAccountDto]
  UserUpdate[User-scoped PUT] --> GenericDTO
Loading

Reviews (1) · Last reviewed commit: "Update OpenAPI spec from workos/workos@b..."

Comment thread spec/open-api-spec.yaml
message:
type: string
description: A human-readable description of the error.
example: 'Organization not found: ''org_01EHQMYV6MBK39QC5PZXHY59C3''.'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 403 Example Describes 404

The new 403 response documents an inactive organization member, but its example says the organization was not found. Generated documentation will therefore show clients a different failure from the status being described. Use an example that represents an inactive membership here and in the PUT response at line 15256.

Knowledge Base Used:

Prompt To Fix With AI
This is a comment left during a code review.
Path: spec/open-api-spec.yaml
Line: 15057

Comment:
**403 Example Describes 404**

The new `403` response documents an inactive organization member, but its example says the organization was not found. Generated documentation will therefore show clients a different failure from the status being described. Use an example that represents an inactive membership here and in the PUT response at line 15256.

**Knowledge Base Used:**
- [OpenAPI service contract](https://app.greptile.com/workos/-/custom-context/knowledge-base/workos/openapi-spec/-/docs/openapi-contract.md)
- [API resource surface](https://app.greptile.com/workos/-/custom-context/knowledge-base/workos/openapi-spec/-/docs/api-resource-surface.md)

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

github-actions Bot added a commit that referenced this pull request Sep 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

SDK compatibility report

❌ Matrix result: failure

📄 View full code diff

Language Breaking Soft-risk Additive
dotnet 0 0 2
go 2 0 3
ios 8 0 10
kotlin n/a n/a n/a
php 2 14 7
python 8 0 7
ruby 2 0 7
rust 2 0 11

Missing diagnostics

  • kotlin: compat-report.json missing

Changes by domain

Domain Breaking Soft-risk Additive Languages
Pipes 14 14 2 dotnet, go, ios, php, python, ruby, rust
CreateOrganizationConnectedAccountParams 1 rust
UpdateOrganizationConnectedAccountParams 1 rust
OrganizationConnectedAccount 10 go, ios, php, python, ruby, rust

Breaking (16)

CreateOrganizationConnectedAccountParams

Parameter changes (1)

Method Changes Languages
CreateOrganizationConnectedAccountParams.new body type: ConnectedAccountInputOrganizationConnectedAccount rust

Pipes

Parameter changes (12)

Method Changes Languages
Pipes.create_organization_connected_account state type: ConnectedAccountInputState | str | NoneOrganizationConnectedAccountState | str | None; user_id now required python, ruby
Pipes.createOrganizationConnectedAccount state type: ConnectedAccountInputState?OrganizationConnectedAccountState?; requestOptions moved 7→8; userId now required ios, php, python
Pipes.update_organization_connected_account state type: ConnectedAccountInputState | str | NoneOrganizationConnectedAccountState | str | None; user_id now required python, ruby
Pipes.updateOrganizationConnectedAccount state type: ConnectedAccountInputState?OrganizationConnectedAccountState?; supportsMultipleConnections moved 7→8; connectedAccountId moved 8→9; requestOptions moved 9→10; userId now required ios, php, python

Type changes (2)

PipesCreateOrganizationConnectedAccountParams.state type changed (field)

Language Before After
go
📄 pipes.go
PipesCreateOrganizationConnectedAccountParams.state
type: *ConnectedAccountInputState
PipesCreateOrganizationConnectedAccountParams.state
type: *OrganizationConnectedAccountState

PipesUpdateOrganizationConnectedAccountParams.state type changed (field)

Language Before After
go
📄 pipes.go
PipesUpdateOrganizationConnectedAccountParams.state
type: *ConnectedAccountInputState
PipesUpdateOrganizationConnectedAccountParams.state
type: *OrganizationConnectedAccountState

UpdateOrganizationConnectedAccountParams

Parameter changes (1)

Method Changes Languages
UpdateOrganizationConnectedAccountParams.new body type: ConnectedAccountInputOrganizationConnectedAccount rust

Soft-risk (14)

Pipes

Parameter changes (14)

Method Changes Languages
Pipes.createOrganizationConnectedAccount accessToken moved 2→3; refreshToken moved 3→4; expiresAt moved 4→5; scopes moved 5→6; state moved 6→7; options moved 7→8 php
Pipes.updateOrganizationConnectedAccount accessToken moved 2→3; refreshToken moved 3→4; expiresAt moved 4→5; scopes moved 5→6; state moved 6→7; supportsMultipleConnections moved 7→8; connectedAccountId moved 8→9; options moved 9→10 php

Additive (12)

OrganizationConnectedAccount

Change Languages
OrganizationConnectedAccount added (type) ios
📄 Sources/WorkOS/Models/OrganizationConnectedAccount.swift
php
📄 lib/Resource/OrganizationConnectedAccount.php
python
📄 src/workos/pipes/models/organization_connected_account.py
ruby
📄 lib/workos/pipes/organization_connected_account.rb
rust
📄 src/models/organization_connected_account.rs
OrganizationConnectedAccount.accessToken added (field) ios
📄 Sources/WorkOS/Models/OrganizationConnectedAccount.swift
php
📄 lib/Resource/OrganizationConnectedAccount.php
python
📄 src/workos/pipes/models/organization_connected_account.py
ruby
📄 lib/workos/pipes/organization_connected_account.rb
rust
📄 src/models/organization_connected_account.rs
OrganizationConnectedAccount.expiresAt added (field) ios
📄 Sources/WorkOS/Models/OrganizationConnectedAccount.swift
php
📄 lib/Resource/OrganizationConnectedAccount.php
python
📄 src/workos/pipes/models/organization_connected_account.py
ruby
📄 lib/workos/pipes/organization_connected_account.rb
rust
📄 src/models/organization_connected_account.rs
OrganizationConnectedAccount.refreshToken added (field) ios
📄 Sources/WorkOS/Models/OrganizationConnectedAccount.swift
php
📄 lib/Resource/OrganizationConnectedAccount.php
python
📄 src/workos/pipes/models/organization_connected_account.py
ruby
📄 lib/workos/pipes/organization_connected_account.rb
rust
📄 src/models/organization_connected_account.rs
OrganizationConnectedAccount.scopes added (field) ios
📄 Sources/WorkOS/Models/OrganizationConnectedAccount.swift
php
📄 lib/Resource/OrganizationConnectedAccount.php
python
📄 src/workos/pipes/models/organization_connected_account.py
ruby
📄 lib/workos/pipes/organization_connected_account.rb
rust
📄 src/models/organization_connected_account.rs
OrganizationConnectedAccount.state added (field) ios
📄 Sources/WorkOS/Models/OrganizationConnectedAccount.swift
php
📄 lib/Resource/OrganizationConnectedAccount.php
python
📄 src/workos/pipes/models/organization_connected_account.py
ruby
📄 lib/workos/pipes/organization_connected_account.rb
rust
📄 src/models/organization_connected_account.rs
OrganizationConnectedAccountState added (type) go
📄 enums.go
ios
📄 Sources/WorkOS/Enums/OrganizationConnectedAccountState.swift
rust
📄 src/enums/organization_connected_account_state.rs
OrganizationConnectedAccountState.connected added (enum value) ios
📄 Sources/WorkOS/Enums/OrganizationConnectedAccountState.swift
rust
📄 src/enums/organization_connected_account_state.rs
OrganizationConnectedAccountState.needsReauthorization added (enum value) ios
📄 Sources/WorkOS/Enums/OrganizationConnectedAccountState.swift
rust
📄 src/enums/organization_connected_account_state.rs
OrganizationConnectedAccountState.Unknown added (enum value) rust
📄 src/enums/organization_connected_account_state.rs

Pipes

Change Languages
PipesCreateOrganizationConnectedAccountOptions.UserId added (field) dotnet
📄 src/WorkOS.net/Services/Pipes/_interfaces/PipesOptions.cs
go
📄 pipes.go
ios
📄 Sources/WorkOS/Models/OrganizationConnectedAccount.swift
php
📄 lib/Resource/OrganizationConnectedAccount.php
python
📄 src/workos/pipes/models/organization_connected_account.py
ruby
📄 lib/workos/pipes/organization_connected_account.rb
rust
📄 src/models/organization_connected_account.rs
PipesUpdateOrganizationConnectedAccountOptions.UserId added (field) dotnet
📄 src/WorkOS.net/Services/Pipes/_interfaces/PipesOptions.cs
go
📄 pipes.go

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

0 participants