diff --git a/.changeset/swift-rocks-nail.md b/.changeset/swift-rocks-nail.md deleted file mode 100644 index b37f9affbc..0000000000 --- a/.changeset/swift-rocks-nail.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@clerk/clerk-sdk-node': patch -'@clerk/backend': patch -'@clerk/nextjs': patch ---- - -Add OrganizationPermissionAPI for CRUD operations regarding instance level organization permissions. diff --git a/packages/backend/src/api/endpoints/OrganizationPermissionApi.ts b/packages/backend/src/api/endpoints/OrganizationPermissionApi.ts index 82296f3b88..e69de29bb2 100644 --- a/packages/backend/src/api/endpoints/OrganizationPermissionApi.ts +++ b/packages/backend/src/api/endpoints/OrganizationPermissionApi.ts @@ -1,69 +0,0 @@ -import type { ClerkPaginationRequest } from '@clerk/types'; - -import { joinPaths } from '../../util/path'; -import type { DeletedObject, Permission } from '../resources'; -import { AbstractAPI } from './AbstractApi'; - -const basePath = '/organizations_permissions'; - -type GetOrganizationPermissionListParams = ClerkPaginationRequest<{ - query?: string; - orderBy?: string; -}>; - -type CreateParams = { - name: string; - key: string; - description: string; -}; - -type GetOrganizationPermissionParams = { permissionId: string }; - -type UpdateParams = { - name?: string; - key?: string; - description?: string; -}; - -export class OrganizationPermissionAPI extends AbstractAPI { - public async getOrganizationPermissionList(params?: GetOrganizationPermissionListParams) { - return this.request({ - method: 'GET', - path: basePath, - queryParams: params, - }); - } - - public async createOrganizationPermission(params: CreateParams) { - return this.request({ - method: 'POST', - path: basePath, - bodyParams: params, - }); - } - - public async getOrganizationPermission(params: GetOrganizationPermissionParams) { - this.requireId(params.permissionId); - - return this.request({ - method: 'GET', - path: joinPaths(basePath, params.permissionId), - }); - } - - public async updateOrganizationPermission(permissionId: string, params: UpdateParams) { - this.requireId(permissionId); - return this.request({ - method: 'PATCH', - path: joinPaths(basePath, permissionId), - bodyParams: params, - }); - } - - public async deleteOrganizationPermission(permissionId: string) { - return this.request({ - method: 'DELETE', - path: joinPaths(basePath, permissionId), - }); - } -} diff --git a/packages/backend/src/api/endpoints/index.ts b/packages/backend/src/api/endpoints/index.ts index 4e377f290e..e4f743550a 100644 --- a/packages/backend/src/api/endpoints/index.ts +++ b/packages/backend/src/api/endpoints/index.ts @@ -7,7 +7,6 @@ export * from './EmailApi'; export * from './InterstitialApi'; export * from './InvitationApi'; export * from './OrganizationApi'; -export * from './OrganizationPermissionApi'; export * from './PhoneNumberApi'; export * from './RedirectUrlApi'; export * from './SessionApi'; diff --git a/packages/backend/src/api/factory.ts b/packages/backend/src/api/factory.ts index a503ffc236..aa8f94c5c4 100644 --- a/packages/backend/src/api/factory.ts +++ b/packages/backend/src/api/factory.ts @@ -7,7 +7,6 @@ import { InterstitialAPI, InvitationAPI, OrganizationAPI, - OrganizationPermissionAPI, PhoneNumberAPI, RedirectUrlAPI, SessionAPI, @@ -22,6 +21,7 @@ export type ApiClient = ReturnType; export function createBackendApiClient(options: CreateBackendApiOptions) { const request = buildRequest(options); + return { allowlistIdentifiers: new AllowlistIdentifierAPI(request), clients: new ClientAPI(request), @@ -30,7 +30,6 @@ export function createBackendApiClient(options: CreateBackendApiOptions) { interstitial: new InterstitialAPI(request), invitations: new InvitationAPI(request), organizations: new OrganizationAPI(request), - organizationPermissions: new OrganizationPermissionAPI(request), phoneNumbers: new PhoneNumberAPI(request), redirectUrls: new RedirectUrlAPI(request), sessions: new SessionAPI(request), diff --git a/packages/backend/src/api/resources/Enums.ts b/packages/backend/src/api/resources/Enums.ts index 160514d4e3..7cc6005377 100644 --- a/packages/backend/src/api/resources/Enums.ts +++ b/packages/backend/src/api/resources/Enums.ts @@ -20,11 +20,6 @@ export type OAuthStrategy = `oauth_${OAuthProvider}`; export type OrganizationInvitationStatus = 'pending' | 'accepted' | 'revoked'; -export type PermissionType = 'system' | 'user'; - -/** - * @deprecated In the next major release this type will change to string - */ export type OrganizationMembershipRole = 'basic_member' | 'guest_member' | 'admin'; export type SignInStatus = 'needs_identifier' | 'needs_factor_one' | 'needs_factor_two' | 'complete'; diff --git a/packages/backend/src/api/resources/JSON.ts b/packages/backend/src/api/resources/JSON.ts index d8265cda62..3e7a0647ab 100644 --- a/packages/backend/src/api/resources/JSON.ts +++ b/packages/backend/src/api/resources/JSON.ts @@ -2,7 +2,6 @@ import type { InvitationStatus, OrganizationInvitationStatus, OrganizationMembershipRole, - PermissionType, SignInStatus, SignUpAttributeRequirements, SignUpStatus, @@ -21,7 +20,6 @@ export enum ObjectType { Organization = 'organization', OrganizationInvitation = 'organization_invitation', OrganizationMembership = 'organization_membership', - Permission = 'permission', PhoneNumber = 'phone_number', RedirectUrl = 'redirect_url', Session = 'session', @@ -174,17 +172,6 @@ export interface OrganizationMembershipPublicUserDataJSON { user_id: string; } -export interface PermissionJSON extends ClerkResourceJSON { - object: ObjectType.Permission; - id: string; - name: string; - key: string; - description: string; - type: PermissionType; - created_at: number; - updated_at: number; -} - export interface PhoneNumberJSON extends ClerkResourceJSON { object: ObjectType.PhoneNumber; phone_number: string; diff --git a/packages/backend/src/api/resources/Permission.ts b/packages/backend/src/api/resources/Permission.ts deleted file mode 100644 index 7124643801..0000000000 --- a/packages/backend/src/api/resources/Permission.ts +++ /dev/null @@ -1,18 +0,0 @@ -import type { PermissionType } from './Enums'; -import type { PermissionJSON } from './JSON'; - -export class Permission { - constructor( - readonly id: string, - readonly name: string, - readonly key: string, - readonly description: string, - readonly type: PermissionType, - readonly createdAt: number, - readonly updatedAt: number, - ) {} - - static fromJSON(data: PermissionJSON) { - return new Permission(data.id, data.name, data.key, data.description, data.type, data.created_at, data.updated_at); - } -} diff --git a/packages/backend/src/api/resources/index.ts b/packages/backend/src/api/resources/index.ts index 14d0367f98..936494c56e 100644 --- a/packages/backend/src/api/resources/index.ts +++ b/packages/backend/src/api/resources/index.ts @@ -22,7 +22,6 @@ export * from './Invitation'; export * from './JSON'; export * from './OauthAccessToken'; export * from './Organization'; -export * from './Permission'; export * from './OrganizationInvitation'; export * from './OrganizationMembership'; export * from './PhoneNumber'; diff --git a/packages/backend/src/exports.test.ts b/packages/backend/src/exports.test.ts index 8ad994591b..5201a7d2eb 100644 --- a/packages/backend/src/exports.test.ts +++ b/packages/backend/src/exports.test.ts @@ -24,7 +24,6 @@ export default (QUnit: QUnit) => { 'OrganizationInvitation', 'OrganizationMembership', 'OrganizationMembershipPublicUserData', - 'Permission', 'PhoneNumber', 'RedirectUrl', 'SMSMessage', diff --git a/packages/nextjs/src/server/__tests__/__snapshots__/exports.test.ts.snap b/packages/nextjs/src/server/__tests__/__snapshots__/exports.test.ts.snap index 03027bdabb..5c587ad57e 100644 --- a/packages/nextjs/src/server/__tests__/__snapshots__/exports.test.ts.snap +++ b/packages/nextjs/src/server/__tests__/__snapshots__/exports.test.ts.snap @@ -18,7 +18,6 @@ exports[`/server public exports should not include a breaking change 1`] = ` "OrganizationInvitation", "OrganizationMembership", "OrganizationMembershipPublicUserData", - "Permission", "PhoneNumber", "RedirectUrl", "SMSMessage", diff --git a/packages/sdk-node/src/__tests__/__snapshots__/exports.test.ts.snap b/packages/sdk-node/src/__tests__/__snapshots__/exports.test.ts.snap index 2db4328b5f..6aee95acee 100644 --- a/packages/sdk-node/src/__tests__/__snapshots__/exports.test.ts.snap +++ b/packages/sdk-node/src/__tests__/__snapshots__/exports.test.ts.snap @@ -20,7 +20,6 @@ exports[`module exports should not change unless explicitly set 1`] = ` "OrganizationInvitation", "OrganizationMembership", "OrganizationMembershipPublicUserData", - "Permission", "PhoneNumber", "RedirectUrl", "SMSMessage", @@ -53,7 +52,6 @@ exports[`module exports should not change unless explicitly set 1`] = ` "invitations", "loadInterstitialFromLocal", "makeAuthObjectSerializable", - "organizationPermissions", "organizations", "phoneNumbers", "prunePrivateMetadata", diff --git a/packages/sdk-node/src/index.ts b/packages/sdk-node/src/index.ts index d7ed849ec6..98483e5a29 100644 --- a/packages/sdk-node/src/index.ts +++ b/packages/sdk-node/src/index.ts @@ -28,7 +28,6 @@ const { emails, invitations, organizations, - organizationPermissions, clients, allowlistIdentifiers, domains, @@ -42,7 +41,6 @@ export { emails, invitations, organizations, - organizationPermissions, phoneNumbers, sessions, users,