remove nestjs-query from app-token and drop unused createOneAppToken mutation (#22765)

## What

Migrates `app-token` off `@ptc-org/nestjs-query` and removes the
auto-generated `createOneAppToken` mutation, which was unused dead API
surface.

## Why

The `createOneAppToken` mutation was reachable only from the schema — no
frontend query, SDK caller, or test used it. It was also non-functional
(its input couldn't set the token `value`), a leftover from
nestjs-query's default `create.one` being left enabled. Real app tokens
(refresh, password-reset, email-verification, invitation, OAuth,
enterprise) are all created directly via the repository in ~14 services,
none of which touched this mutation.

## Notes

- ⚠️ This removes `AppToken`, `createOneAppToken`,
`CreateAppTokenInput`, and `CreateOneAppTokenInput` from the `/metadata`
schema, so the **api-breaking-changes check will flag it**


<!-- This is an auto-generated description by cubic. -->
<a
href="https://cubic.dev/pr/twentyhq/twenty/pull/22765?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>
<!-- End of auto-generated description by cubic. -->

Co-authored-by: Weiko <corentin@twenty.com>
This commit is contained in:
Abdul Rahman
2026-07-10 16:14:13 +05:30
committed by GitHub
parent 9e20e2222a
commit 4ab36a630b
13 changed files with 701 additions and 980 deletions
@@ -952,14 +952,6 @@ enum WorkspaceActivationStatus {
SUSPENDED
}
type AppToken {
id: UUID!
type: String!
expiresAt: DateTime!
createdAt: DateTime!
updatedAt: DateTime!
}
type User {
id: UUID!
firstName: String!
@@ -3512,7 +3504,6 @@ type Mutation {
createPublicDomain(domain: String!, applicationId: String!): PublicDomain!
deletePublicDomain(domain: String!): Boolean!
checkPublicDomainValidRecords(domain: String!): DomainValidRecords
createOneAppToken(input: CreateOneAppTokenInput!): AppToken!
createDevelopmentApplication(universalIdentifier: String!, name: String!): DevelopmentApplication!
syncApplication(manifest: JSON!, dryRun: Boolean): WorkspaceMigration!
uploadApplicationFile(file: Upload!, applicationUniversalIdentifier: String!, fileFolder: FileFolder!, filePath: String!): File!
@@ -4682,15 +4673,6 @@ input UpdateLabPublicFeatureFlagInput {
value: Boolean!
}
input CreateOneAppTokenInput {
"""The record to create"""
appToken: CreateAppTokenInput!
}
input CreateAppTokenInput {
expiresAt: DateTime!
}
type Subscription {
onEventSubscription(eventStreamId: String!): EventSubscription
logicFunctionLogs(input: LogicFunctionLogsInput!): LogicFunctionLogs!
@@ -669,15 +669,6 @@ export type WorkspaceDiscoverability = 'PUBLIC' | 'MEMBERS_AND_INVITEES' | 'HIDD
export type WorkspaceActivationStatus = 'ONGOING_CREATION' | 'PENDING_CREATION' | 'ACTIVE' | 'INACTIVE' | 'SUSPENDED'
export interface AppToken {
id: Scalars['UUID']
type: Scalars['String']
expiresAt: Scalars['DateTime']
createdAt: Scalars['DateTime']
updatedAt: Scalars['DateTime']
__typename: 'AppToken'
}
export interface User {
id: Scalars['UUID']
firstName: Scalars['String']
@@ -3048,7 +3039,6 @@ export interface Mutation {
createPublicDomain: PublicDomain
deletePublicDomain: Scalars['Boolean']
checkPublicDomainValidRecords?: DomainValidRecords
createOneAppToken: AppToken
createDevelopmentApplication: DevelopmentApplication
syncApplication: WorkspaceMigration
uploadApplicationFile: File
@@ -3751,16 +3741,6 @@ export interface WorkspaceGenqlSelection{
__scalar?: boolean | number
}
export interface AppTokenGenqlSelection{
id?: boolean | number
type?: boolean | number
expiresAt?: boolean | number
createdAt?: boolean | number
updatedAt?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
export interface UserGenqlSelection{
id?: boolean | number
firstName?: boolean | number
@@ -6300,7 +6280,6 @@ export interface MutationGenqlSelection{
createPublicDomain?: (PublicDomainGenqlSelection & { __args: {domain: Scalars['String'], applicationId: Scalars['String']} })
deletePublicDomain?: { __args: {domain: Scalars['String']} }
checkPublicDomainValidRecords?: (DomainValidRecordsGenqlSelection & { __args: {domain: Scalars['String']} })
createOneAppToken?: (AppTokenGenqlSelection & { __args: {input: CreateOneAppTokenInput} })
createDevelopmentApplication?: (DevelopmentApplicationGenqlSelection & { __args: {universalIdentifier: Scalars['String'], name: Scalars['String']} })
syncApplication?: (WorkspaceMigrationGenqlSelection & { __args: {manifest: Scalars['JSON'], dryRun?: (Scalars['Boolean'] | null)} })
uploadApplicationFile?: (FileGenqlSelection & { __args: {file: Scalars['Upload'], applicationUniversalIdentifier: Scalars['String'], fileFolder: FileFolder, filePath: Scalars['String']} })
@@ -6689,12 +6668,6 @@ export interface ConnectionParametersInput {host: Scalars['String'],port: Scalar
export interface UpdateLabPublicFeatureFlagInput {publicFeatureFlag: Scalars['String'],value: Scalars['Boolean']}
export interface CreateOneAppTokenInput {
/** The record to create */
appToken: CreateAppTokenInput}
export interface CreateAppTokenInput {expiresAt: Scalars['DateTime']}
export interface SubscriptionGenqlSelection{
onEventSubscription?: (EventSubscriptionGenqlSelection & { __args: {eventStreamId: Scalars['String']} })
logicFunctionLogs?: (LogicFunctionLogsGenqlSelection & { __args: {input: LogicFunctionLogsInput} })
@@ -7011,14 +6984,6 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
const AppToken_possibleTypes: string[] = ['AppToken']
export const isAppToken = (obj?: { __typename?: any } | null): obj is AppToken => {
if (!obj?.__typename) throw new Error('__typename is missing in "isAppToken"')
return AppToken_possibleTypes.includes(obj.__typename)
}
const User_possibleTypes: string[] = ['User']
export const isUser = (obj?: { __typename?: any } | null): obj is User => {
if (!obj?.__typename) throw new Error('__typename is missing in "isUser"')
File diff suppressed because it is too large Load Diff