Skip to content

feat(authorization)!: own the Authorization service via oagen#1636

Draft
gjtorikian wants to merge 1 commit into
mainfrom
oagen/own-authorization
Draft

feat(authorization)!: own the Authorization service via oagen#1636
gjtorikian wants to merge 1 commit into
mainfrom
oagen/own-authorization

Conversation

@gjtorikian

Copy link
Copy Markdown
Contributor

Description

This PR brings the Authorization module under oagen ownership.

The method names remain largely unchanged, but input arguments have been converted over from positional style to the more modern object style:

  ┌───────────────────────────────┬─────────────────────────────────┬─────────────────────────────────┐
  │            Method             │          Old signature          │          New signature          │
  ├────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ getEnvironmentRole             │ (slug)                          │ ({ slug })                      │
  ├────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ updateEnvironmentRole          │ (slug, options)                 │ ({ slug, ...options })          │
  ├────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ setEnvironmentRolePermissions  │ (slug, options)                 │ ({ slug, ... })                 │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ addEnvironmentRolePermission     │ (slug, options)                 │ ({ slug, ... })                 │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ listOrganizationRoles            │ (organizationId)                │ ({ organizationId })            │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ createOrganizationRole           │ (organizationId, options)       │ ({ organizationId, ... })       │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ getOrganizationRole              │ (organizationId, slug)          │ ({ organizationId, slug })      │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ updateOrganizationRole           │ (organizationId, slug, options) │ ({ organizationId, slug, ... }) │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ deleteOrganizationRole           │ (organizationId, slug)          │ ({ organizationId, slug })      │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ setOrganizationRolePermissions   │ (organizationId, slug, options) │ ({ organizationId, slug, ... }) │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ addOrganizationRolePermission    │ (organizationId, slug, options) │ ({ organizationId, slug, ... }) │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ removeOrganizationRolePermission │ (organizationId, slug, options) │ ({ organizationId, slug, ... }) │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ getPermission                    │ (slug)                          │ ({ slug })                      │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ updatePermission                 │ (slug, options)                 │ ({ slug, ... })                 │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ deletePermission                 │ (slug)                          │ ({ slug })                      │
  ├──────────────────────────────────┼─────────────────────────────────┼─────────────────────────────────┤
  │ getResource                      │ (resourceId)                    │ ({ resourceId })                │
  └──────────────────────────────────┴─────────────────────────────────┴─────────────────────────────────┘

Because of this, this is considered a breaking change.

Bring Authorization under oagen ownership, regenerated from the published
baseline (10.2.0) so the public surface is preserved:

- Role CRUD responses use the full OrganizationRole / EnvironmentRole wire
  types (org-scoped vs top-level); the slim Role/RoleResponse stays reserved
  for SSO/UserManagement. RoleList shim lives under src/roles.
- Role-assignment methods keep their published names and RoleAssignment
  (string-timestamp) return types: listResourceRoleAssignments is preserved
  (not renamed), and assignRole stays on RoleAssignment.
- Hand-owned option interfaces, fixtures, and the relocated
  UpdateAuthorizationResourceOptions fill gaps oagen can't express; dead
  per-options serializers are removed in favor of inline wire serializers.

Generated with the instability-1 extractor/emitter fixes so options-type
names stay stable across regenerations. (Manifest tracks 94 generated files.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gjtorikian gjtorikian added the autogenerated Autogenerated code or content label Jun 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autogenerated Autogenerated code or content

Development

Successfully merging this pull request may close these issues.

1 participant