fix(generated): No changes detected in API specification#240
fix(generated): No changes detected in API specification#240workos-sdk-automation[bot] wants to merge 1 commit intomainfrom
Conversation
Greptile SummaryDespite the PR description claiming "No changes detected in API specification," this auto-generated PR introduces several breaking public API changes alongside additive features (new
Confidence Score: 3/5Not safe to merge without confirming these are intentional breaking changes and that the version bump reflects a major/breaking release. Three distinct P1 breaking changes (gutted EventSchema, 8+ AuthorizationService method renames, AdminEmails property rename) that will cause compile failures for existing consumers. The PR description claiming zero spec changes while introducing these renames warrants extra scrutiny. Additive changes (Groups service, WaitlistUser, new enum values) are clean. src/WorkOS.net/Entities/EventSchema.cs, src/WorkOS.net/Services/Authorization/AuthorizationService.cs, src/WorkOS.net/Entities/GenerateLink.cs, src/WorkOS.net/Services/AdminPortal/_interfaces/AdminPortalOptions.cs Important Files Changed
Class Diagram%%{init: {'theme': 'neutral'}}%%
classDiagram
class WorkOSClient {
+Groups GroupsService
+UserManagementOrganizationMembershipGroups UMOMGService
}
class GroupsService {
+ListOrganizationGroupsAsync()
+CreateOrganizationGroupAsync()
+GetOrganizationGroupAsync()
+UpdateOrganizationGroupAsync()
+DeleteOrganizationGroupAsync()
+ListOrganizationMembershipsAsync()
+CreateOrganizationMembershipAsync()
+DeleteOrganizationMembershipAsync()
}
class AuthorizationService {
-ListOrganizationMembershipResourcesAsync() REMOVED
+ListResourcesForMembershipAsync()
-ListResourcePermissionsAsync() REMOVED
+ListEffectivePermissionsAsync()
-ListOrganizationMembershipRoleAssignmentsAsync() REMOVED
+ListRoleAssignmentsAsync()
-DeleteOrganizationMembershipRoleAssignmentAsync() REMOVED
+RemoveRoleAssignmentAsync()
}
class EventSchema {
<<empty - all properties removed>>
}
class WaitlistUser {
+string Object
+string Id
+string Email
+WaitlistUserState State
+DateTimeOffset ApprovedAt
+DateTimeOffset CreatedAt
+DateTimeOffset UpdatedAt
}
class WaitlistUserState {
<<enum>>
Unknown
Pending
Approved
Denied
}
WorkOSClient --> GroupsService
WorkOSClient --> AuthorizationService
WaitlistUser --> WaitlistUserState
Reviews (1): Last reviewed commit: "fix(generated): No changes detected in A..." | Re-trigger Greptile |
| /// <summary>An event emitted by WorkOS.</summary> | ||
| public class EventSchema | ||
| { |
There was a problem hiding this comment.
EventSchema class body completely removed
All public properties (Object, Id, Event, Data, CreatedAt, Context) and utility methods (GetDataAttribute<T>, GetContextAttribute<T>) have been stripped from this class, leaving it empty. Any existing consumer that accesses eventSchema.Data, eventSchema.Id, or calls GetDataAttribute<T> will receive a compile-time error. If this class is still referenced as a typed event envelope, removing its entire contract is a breaking API change that deserves explicit mention regardless of what the spec diff reports.
| /// <param name="cancellationToken">Cancellation token.</param> | ||
| /// <returns>A page of <see cref="AuthorizationResource"/> results.</returns> | ||
| public virtual async Task<WorkOSList<AuthorizationResource>> ListOrganizationMembershipResourcesAsync(string organizationMembershipId, AuthorizationListOrganizationMembershipResourcesOptions? options = null, RequestOptions? requestOptions = null, CancellationToken cancellationToken = default) | ||
| public virtual async Task<WorkOSList<AuthorizationResource>> ListResourcesForMembershipAsync(string organizationMembershipId, AuthorizationListResourcesForMembershipOptions? options = null, RequestOptions? requestOptions = null, CancellationToken cancellationToken = default) |
There was a problem hiding this comment.
Multiple breaking public method renames
Several public methods were renamed without preserving the old names as overloaded or [Obsolete] wrappers, breaking existing callers:
ListOrganizationMembershipResourcesAsync→ListResourcesForMembershipAsyncListResourcePermissionsAsync→ListEffectivePermissionsAsyncListOrganizationMembershipRoleAssignmentsAsync→ListRoleAssignmentsAsyncDeleteOrganizationMembershipRoleAssignmentAsync→RemoveRoleAssignmentAsyncCreateRolePermissionAsync→AddOrganizationRolePermissionAsyncUpdateRolePermissionsAsync→SetOrganizationRolePermissionsAsyncDeleteRolePermissionAsync→RemoveOrganizationRolePermissionAsyncGetOrganizationResourceAsync→GetResourceByExternalIdAsync
The synchronous compatibility wrappers (non-Async suffixed) were also renamed, so both call sites break. If this is a minor/patch release, existing code calling these methods will fail to compile after upgrading.
|
|
||
| /// <summary>The email addresses of the IT admins to grant access to the Admin Portal for the given organization. Accepts up to 20 emails.</summary> | ||
| public List<string>? AdminEmails { get; set; } | ||
| /// <summary>The email addresses of the IT contacts to grant access to the Admin Portal for the given organization. Accepts up to 20 emails.</summary> |
There was a problem hiding this comment.
Breaking property rename:
AdminEmails → ItContactEmails
AdminEmails has been renamed to ItContactEmails in both GenerateLink and AdminPortalOptions. Any existing code that sets AdminEmails will fail to compile. The same rename occurs in AdminPortalOptions.cs line 37. If consumers are currently passing admin email lists when generating links, their builds will break silently (JSON serialization would also silently drop the old key if the consumer assembles the request object manually).
|
|
||
| /// <summary>Additional context about the event.</summary> | ||
| public EventSchemaContext Context { get; set; } = default!; | ||
| public FlagCreatedContext Context { get; set; } = default!; |
There was a problem hiding this comment.
FlagDeleted.Context uses FlagCreatedContext type
The Context property on FlagDeleted is typed as FlagCreatedContext, which was introduced for the flag.created event. If the context schema really is shared between create and delete events, a more neutral name like FlagEventContext would avoid confusion. If they differ, this may be a generator error where the wrong type was reused for the delete event.
Summary
No changes detected in API specification
Spec Diff
Triggered by openapi-spec commit: 608a735533a6afbb21e58bd1f1b05b94e8b1c162