diff --git a/packages/create-twenty-app/src/constants/template/README.md b/packages/create-twenty-app/src/constants/template/README.md
index 7d815cdd4a..0b5463eb0f 100644
--- a/packages/create-twenty-app/src/constants/template/README.md
+++ b/packages/create-twenty-app/src/constants/template/README.md
@@ -14,6 +14,15 @@ List the top things your app does, for example:
Setup instructions live in [SETUP.md](SETUP.md).
+## Publishing
+
+The `Publish` workflow (`.github/workflows/publish.yml`) publishes the app to npm with provenance using [npm trusted publishing](https://docs.npmjs.com/trusted-publishers). To publish:
+
+1. On npmjs.com register this repository as a trusted publisher of your package, pointing at the `publish.yml` workflow.
+2. Bump the version in `package.json`, then push a version tag (e.g. `git tag v1.0.0 && git push --tags`) or run the workflow manually from the Actions tab.
+
+Publishing with provenance is also how you prove ownership when claiming your app in a Twenty marketplace.
+
## Changelog
Notable changes are documented in [CHANGELOG.md](CHANGELOG.md).
diff --git a/packages/create-twenty-app/src/constants/template/github/workflows/publish.yml b/packages/create-twenty-app/src/constants/template/github/workflows/publish.yml
new file mode 100644
index 0000000000..5297e3598b
--- /dev/null
+++ b/packages/create-twenty-app/src/constants/template/github/workflows/publish.yml
@@ -0,0 +1,48 @@
+# Publishes the app to npm with provenance (npm trusted publishing).
+#
+# One-time setup:
+# 1. On npmjs.com open your package > Settings > Trusted Publisher and register
+# this repository and this workflow file (publish.yml).
+# See https://docs.npmjs.com/trusted-publishers
+# 2. Push a version tag (e.g. `git tag v1.0.0 && git push --tags`) or run the
+# workflow manually from the Actions tab.
+#
+# Publishing with provenance certifies which GitHub repository the package is
+# built from. This is also how you claim ownership of your app in a Twenty
+# marketplace: the claim flow verifies you own the GitHub account or
+# organization the provenance points to.
+name: Publish
+
+on:
+ push:
+ tags:
+ - 'v*'
+ workflow_dispatch:
+
+permissions:
+ contents: read
+ # Required for npm trusted publishing (OIDC provenance).
+ id-token: write
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 24
+ registry-url: https://registry.npmjs.org
+
+ - name: Update npm
+ # Trusted publishing requires npm 11.5.1 or later.
+ run: npm install -g npm@latest
+
+ - name: Install dependencies
+ run: yarn install --immutable
+
+ - name: Publish to npm
+ run: yarn twenty app:publish
diff --git a/packages/twenty-client-sdk/src/metadata/generated/schema.graphql b/packages/twenty-client-sdk/src/metadata/generated/schema.graphql
index 8c659d2bb3..3f6d537c74 100644
--- a/packages/twenty-client-sdk/src/metadata/generated/schema.graphql
+++ b/packages/twenty-client-sdk/src/metadata/generated/schema.graphql
@@ -1727,6 +1727,7 @@ type FeatureFlag {
}
enum FeatureFlagKey {
+ IS_APP_CLAIMING_ENABLED
IS_UNIQUE_INDEXES_ENABLED
IS_JSON_FILTER_ENABLED
IS_CALENDAR_WEEK_VIEW_ENABLED
@@ -1947,6 +1948,17 @@ type UsageBreakdownItem {
creditsUsed: Float!
}
+type ClaimableApplicationRegistration {
+ id: String!
+ universalIdentifier: String!
+ name: String!
+ sourcePackage: String
+ logoUrl: String
+ description: String
+ author: String
+ isOwned: Boolean!
+}
+
type CreateApplicationRegistration {
applicationRegistration: ApplicationRegistration!
clientSecret: String!
@@ -3116,6 +3128,8 @@ type Query {
findApplicationRegistrationStats(id: String!): ApplicationRegistrationStats!
findApplicationRegistrationVariables(applicationRegistrationId: String!): [ApplicationRegistrationVariableDTO!]!
applicationRegistrationTarballUrl(id: String!): String
+ findClaimableApplicationRegistration(sourcePackage: String, universalIdentifier: String): ClaimableApplicationRegistration
+ githubClaimAuthorizationUrl(applicationRegistrationId: String!): String!
getRoles: [Role!]!
previewMessageCampaignAudience(input: PreviewMessageCampaignAudienceInput!): CampaignAudiencePreviewDTO!
unsubscribeTopics: [UnsubscribeTopic!]!
diff --git a/packages/twenty-client-sdk/src/metadata/generated/schema.ts b/packages/twenty-client-sdk/src/metadata/generated/schema.ts
index 2dad25e73f..59501011f5 100644
--- a/packages/twenty-client-sdk/src/metadata/generated/schema.ts
+++ b/packages/twenty-client-sdk/src/metadata/generated/schema.ts
@@ -1390,7 +1390,7 @@ export interface FeatureFlag {
__typename: 'FeatureFlag'
}
-export type FeatureFlagKey = 'IS_UNIQUE_INDEXES_ENABLED' | 'IS_JSON_FILTER_ENABLED' | 'IS_CALENDAR_WEEK_VIEW_ENABLED' | 'IS_EMAIL_GROUP_ENABLED' | 'IS_JUNCTION_RELATIONS_ENABLED' | 'IS_REST_METADATA_API_NEW_FORMAT_DIRECT' | 'IS_LOGIC_FUNCTION_PREBUILT_MODE_ENABLED' | 'IS_SETTINGS_DISCOVERY_HERO_ENABLED' | 'IS_WORKFLOW_VERSION_IN_CORE_ENABLED'
+export type FeatureFlagKey = 'IS_APP_CLAIMING_ENABLED' | 'IS_UNIQUE_INDEXES_ENABLED' | 'IS_JSON_FILTER_ENABLED' | 'IS_CALENDAR_WEEK_VIEW_ENABLED' | 'IS_EMAIL_GROUP_ENABLED' | 'IS_JUNCTION_RELATIONS_ENABLED' | 'IS_REST_METADATA_API_NEW_FORMAT_DIRECT' | 'IS_LOGIC_FUNCTION_PREBUILT_MODE_ENABLED' | 'IS_SETTINGS_DISCOVERY_HERO_ENABLED' | 'IS_WORKFLOW_VERSION_IN_CORE_ENABLED'
export interface WorkspaceUrls {
customUrl?: Scalars['String']
@@ -1604,6 +1604,18 @@ export interface UsageBreakdownItem {
__typename: 'UsageBreakdownItem'
}
+export interface ClaimableApplicationRegistration {
+ id: Scalars['String']
+ universalIdentifier: Scalars['String']
+ name: Scalars['String']
+ sourcePackage?: Scalars['String']
+ logoUrl?: Scalars['String']
+ description?: Scalars['String']
+ author?: Scalars['String']
+ isOwned: Scalars['Boolean']
+ __typename: 'ClaimableApplicationRegistration'
+}
+
export interface CreateApplicationRegistration {
applicationRegistration: ApplicationRegistration
clientSecret: Scalars['String']
@@ -2756,6 +2768,8 @@ export interface Query {
findApplicationRegistrationStats: ApplicationRegistrationStats
findApplicationRegistrationVariables: ApplicationRegistrationVariableDTO[]
applicationRegistrationTarballUrl?: Scalars['String']
+ findClaimableApplicationRegistration?: ClaimableApplicationRegistration
+ githubClaimAuthorizationUrl: Scalars['String']
getRoles: Role[]
previewMessageCampaignAudience: CampaignAudiencePreviewDTO
unsubscribeTopics: UnsubscribeTopic[]
@@ -4699,6 +4713,19 @@ export interface UsageBreakdownItemGenqlSelection{
__scalar?: boolean | number
}
+export interface ClaimableApplicationRegistrationGenqlSelection{
+ id?: boolean | number
+ universalIdentifier?: boolean | number
+ name?: boolean | number
+ sourcePackage?: boolean | number
+ logoUrl?: boolean | number
+ description?: boolean | number
+ author?: boolean | number
+ isOwned?: boolean | number
+ __typename?: boolean | number
+ __scalar?: boolean | number
+}
+
export interface CreateApplicationRegistrationGenqlSelection{
applicationRegistration?: ApplicationRegistrationGenqlSelection
clientSecret?: boolean | number
@@ -5946,6 +5973,8 @@ export interface QueryGenqlSelection{
findApplicationRegistrationStats?: (ApplicationRegistrationStatsGenqlSelection & { __args: {id: Scalars['String']} })
findApplicationRegistrationVariables?: (ApplicationRegistrationVariableDTOGenqlSelection & { __args: {applicationRegistrationId: Scalars['String']} })
applicationRegistrationTarballUrl?: { __args: {id: Scalars['String']} }
+ findClaimableApplicationRegistration?: (ClaimableApplicationRegistrationGenqlSelection & { __args?: {sourcePackage?: (Scalars['String'] | null), universalIdentifier?: (Scalars['String'] | null)} })
+ githubClaimAuthorizationUrl?: { __args: {applicationRegistrationId: Scalars['String']} }
getRoles?: RoleGenqlSelection
previewMessageCampaignAudience?: (CampaignAudiencePreviewDTOGenqlSelection & { __args: {input: PreviewMessageCampaignAudienceInput} })
unsubscribeTopics?: UnsubscribeTopicGenqlSelection
@@ -7702,6 +7731,14 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
+ const ClaimableApplicationRegistration_possibleTypes: string[] = ['ClaimableApplicationRegistration']
+ export const isClaimableApplicationRegistration = (obj?: { __typename?: any } | null): obj is ClaimableApplicationRegistration => {
+ if (!obj?.__typename) throw new Error('__typename is missing in "isClaimableApplicationRegistration"')
+ return ClaimableApplicationRegistration_possibleTypes.includes(obj.__typename)
+ }
+
+
+
const CreateApplicationRegistration_possibleTypes: string[] = ['CreateApplicationRegistration']
export const isCreateApplicationRegistration = (obj?: { __typename?: any } | null): obj is CreateApplicationRegistration => {
if (!obj?.__typename) throw new Error('__typename is missing in "isCreateApplicationRegistration"')
@@ -9162,6 +9199,7 @@ export const enumLogicFunctionExecutionStatus = {
}
export const enumFeatureFlagKey = {
+ IS_APP_CLAIMING_ENABLED: 'IS_APP_CLAIMING_ENABLED' as const,
IS_UNIQUE_INDEXES_ENABLED: 'IS_UNIQUE_INDEXES_ENABLED' as const,
IS_JSON_FILTER_ENABLED: 'IS_JSON_FILTER_ENABLED' as const,
IS_CALENDAR_WEEK_VIEW_ENABLED: 'IS_CALENDAR_WEEK_VIEW_ENABLED' as const,
diff --git a/packages/twenty-client-sdk/src/metadata/generated/types.ts b/packages/twenty-client-sdk/src/metadata/generated/types.ts
index 4f5d86b174..6f621f53f7 100644
--- a/packages/twenty-client-sdk/src/metadata/generated/types.ts
+++ b/packages/twenty-client-sdk/src/metadata/generated/types.ts
@@ -59,30 +59,30 @@ export default {
183,
186,
189,
- 200,
- 213,
- 230,
- 236,
- 270,
- 272,
+ 201,
+ 214,
+ 231,
+ 237,
+ 271,
273,
274,
275,
276,
277,
278,
- 285,
- 325,
+ 279,
+ 286,
326,
327,
328,
- 330,
- 332,
- 344,
- 351,
- 358,
+ 329,
+ 331,
+ 333,
+ 345,
+ 352,
359,
- 486
+ 360,
+ 487
],
"types": {
"BillingProductDTO": {
@@ -954,10 +954,10 @@ export default {
3
],
"relation": [
- 199
+ 200
],
"morphRelations": [
- 199
+ 200
],
"object": [
47
@@ -993,7 +993,7 @@ export default {
4
],
"indexFieldMetadataList": [
- 201
+ 202
],
"__typename": [
1
@@ -1080,10 +1080,10 @@ export default {
45
],
"searchFieldMetadataList": [
- 203
+ 204
],
"fields": [
- 210,
+ 211,
{
"paging": [
48,
@@ -1096,7 +1096,7 @@ export default {
}
],
"indexMetadatas": [
- 208,
+ 209,
{
"paging": [
48,
@@ -1801,7 +1801,7 @@ export default {
142
],
"billingEntitlements": [
- 229
+ 230
],
"hasValidSignedEnterpriseKey": [
6
@@ -1880,7 +1880,7 @@ export default {
20
],
"deletedWorkspaceMembers": [
- 223
+ 224
],
"hasPassword": [
6
@@ -1892,7 +1892,7 @@ export default {
17
],
"availableWorkspaces": [
- 222
+ 223
],
"__typename": [
1
@@ -3789,6 +3789,35 @@ export default {
1
]
},
+ "ClaimableApplicationRegistration": {
+ "id": [
+ 1
+ ],
+ "universalIdentifier": [
+ 1
+ ],
+ "name": [
+ 1
+ ],
+ "sourcePackage": [
+ 1
+ ],
+ "logoUrl": [
+ 1
+ ],
+ "description": [
+ 1
+ ],
+ "author": [
+ 1
+ ],
+ "isOwned": [
+ 6
+ ],
+ "__typename": [
+ 1
+ ]
+ },
"CreateApplicationRegistration": {
"applicationRegistration": [
8
@@ -3830,7 +3859,7 @@ export default {
},
"Relation": {
"type": [
- 200
+ 201
],
"sourceObjectMetadata": [
47
@@ -3936,10 +3965,10 @@ export default {
},
"ObjectConnection": {
"pageInfo": [
- 205
+ 206
],
"edges": [
- 204
+ 205
],
"__typename": [
1
@@ -3958,10 +3987,10 @@ export default {
},
"ObjectIndexMetadatasConnection": {
"pageInfo": [
- 205
+ 206
],
"edges": [
- 207
+ 208
],
"__typename": [
1
@@ -3980,10 +4009,10 @@ export default {
},
"ObjectFieldsConnection": {
"pageInfo": [
- 205
+ 206
],
"edges": [
- 209
+ 210
],
"__typename": [
1
@@ -3991,10 +4020,10 @@ export default {
},
"FieldConnection": {
"pageInfo": [
- 205
+ 206
],
"edges": [
- 209
+ 210
],
"__typename": [
1
@@ -4002,7 +4031,7 @@ export default {
},
"AppConnection": {
"id": [
- 213
+ 214
],
"providerName": [
1
@@ -4097,7 +4126,7 @@ export default {
176
],
"workspace": [
- 217
+ 218
],
"__typename": [
1
@@ -4166,7 +4195,7 @@ export default {
1
],
"sso": [
- 220
+ 221
],
"__typename": [
1
@@ -4174,10 +4203,10 @@ export default {
},
"AvailableWorkspaces": {
"availableWorkspacesForSignIn": [
- 221
+ 222
],
"availableWorkspacesForSignUp": [
- 221
+ 222
],
"__typename": [
1
@@ -4310,10 +4339,10 @@ export default {
1
],
"objectPermissions": [
- 225
+ 226
],
"fieldPermissions": [
- 226
+ 227
],
"__typename": [
1
@@ -4381,7 +4410,7 @@ export default {
1
],
"roles": [
- 227
+ 228
],
"manifest": [
7
@@ -4392,7 +4421,7 @@ export default {
},
"BillingEntitlement": {
"key": [
- 230
+ 231
],
"value": [
6
@@ -4430,7 +4459,7 @@ export default {
1
],
"records": [
- 231
+ 232
],
"isCustomDomainEnabled": [
6
@@ -4469,7 +4498,7 @@ export default {
1
],
"connectionSecurity": [
- 236
+ 237
],
"__typename": [
1
@@ -4478,13 +4507,13 @@ export default {
"EmailConnectionSecurity": {},
"PublicImapSmtpCaldavConnectionParameters": {
"IMAP": [
- 235
+ 236
],
"SMTP": [
- 235
+ 236
],
"CALDAV": [
- 235
+ 236
],
"__typename": [
1
@@ -4540,7 +4569,7 @@ export default {
4
],
"connectionParameters": [
- 237
+ 238
],
"__typename": [
1
@@ -4591,10 +4620,10 @@ export default {
},
"AvailableWorkspacesAndAccessTokens": {
"tokens": [
- 243
+ 244
],
"availableWorkspaces": [
- 222
+ 223
],
"__typename": [
1
@@ -4646,7 +4675,7 @@ export default {
32
],
"workspace": [
- 248
+ 249
],
"__typename": [
1
@@ -4723,7 +4752,7 @@ export default {
},
"AuthTokens": {
"tokens": [
- 243
+ 244
],
"__typename": [
1
@@ -4764,7 +4793,7 @@ export default {
32
],
"workspace": [
- 248
+ 249
],
"__typename": [
1
@@ -4786,7 +4815,7 @@ export default {
1
],
"dailyUsage": [
- 261
+ 262
],
"__typename": [
1
@@ -4803,7 +4832,7 @@ export default {
195
],
"timeSeries": [
- 261
+ 262
],
"periodStart": [
4
@@ -4812,7 +4841,7 @@ export default {
4
],
"userDailyUsage": [
- 262
+ 263
],
"__typename": [
1
@@ -4911,10 +4940,10 @@ export default {
1
],
"status": [
- 270
+ 271
],
"verificationRecords": [
- 268
+ 269
],
"verifiedAt": [
4
@@ -4929,22 +4958,22 @@ export default {
3
],
"visibility": [
- 272
+ 273
],
"handle": [
1
],
"type": [
- 273
+ 274
],
"isContactAutoCreationEnabled": [
6
],
"contactAutoCreationPolicy": [
- 274
+ 275
],
"messageFolderImportPolicy": [
- 275
+ 276
],
"excludeNonProfessionalEmails": [
6
@@ -4953,7 +4982,7 @@ export default {
6
],
"pendingGroupEmailsAction": [
- 276
+ 277
],
"isSyncEnabled": [
6
@@ -4962,10 +4991,10 @@ export default {
4
],
"syncStatus": [
- 277
+ 278
],
"syncStage": [
- 278
+ 279
],
"syncStageStartedAt": [
4
@@ -4986,7 +5015,7 @@ export default {
4
],
"connectedAccount": [
- 238
+ 239
],
"__typename": [
1
@@ -5001,7 +5030,7 @@ export default {
"MessageChannelSyncStage": {},
"CreateEmailGroupChannelOutput": {
"messageChannel": [
- 271
+ 272
],
"forwardingAddress": [
1
@@ -5063,7 +5092,7 @@ export default {
21
],
"skipped": [
- 282
+ 283
],
"__typename": [
1
@@ -5086,7 +5115,7 @@ export default {
1
],
"visibility": [
- 285
+ 286
],
"__typename": [
1
@@ -5132,7 +5161,7 @@ export default {
1
],
"location": [
- 287
+ 288
],
"__typename": [
1
@@ -5149,7 +5178,7 @@ export default {
1
],
"connectionSecurity": [
- 236
+ 237
],
"__typename": [
1
@@ -5160,13 +5189,13 @@ export default {
1
],
"IMAP": [
- 289
+ 290
],
"SMTP": [
- 289
+ 290
],
"CALDAV": [
- 289
+ 290
],
"__typename": [
1
@@ -5186,7 +5215,7 @@ export default {
3
],
"connectionParameters": [
- 290
+ 291
],
"__typename": [
1
@@ -5408,7 +5437,7 @@ export default {
1
],
"series": [
- 299
+ 300
],
"xAxisLabel": [
1
@@ -5457,7 +5486,7 @@ export default {
1
],
"data": [
- 301
+ 302
],
"__typename": [
1
@@ -5465,7 +5494,7 @@ export default {
},
"LineChartData": {
"series": [
- 302
+ 303
],
"xAxisLabel": [
1
@@ -5502,7 +5531,7 @@ export default {
},
"PieChartData": {
"data": [
- 304
+ 305
],
"showLegend": [
6
@@ -5607,13 +5636,13 @@ export default {
},
"EventLogQueryResult": {
"records": [
- 309
+ 310
],
"totalCount": [
21
],
"pageInfo": [
- 310
+ 311
],
"__typename": [
1
@@ -5677,7 +5706,7 @@ export default {
1
],
"parts": [
- 295
+ 296
],
"processedAt": [
4
@@ -5691,7 +5720,7 @@ export default {
},
"AgentChatThread": {
"id": [
- 213
+ 214
],
"title": [
1
@@ -5746,7 +5775,7 @@ export default {
},
"AiSystemPromptPreview": {
"sections": [
- 315
+ 316
],
"estimatedTokenCount": [
21
@@ -5774,7 +5803,7 @@ export default {
21
],
"error": [
- 317
+ 318
],
"__typename": [
1
@@ -5836,10 +5865,10 @@ export default {
3
],
"evaluations": [
- 321
+ 322
],
"messages": [
- 313
+ 314
],
"createdAt": [
4
@@ -5870,19 +5899,19 @@ export default {
1
],
"syncStatus": [
- 325
- ],
- "syncStage": [
326
],
- "visibility": [
+ "syncStage": [
327
],
+ "visibility": [
+ 328
+ ],
"isContactAutoCreationEnabled": [
6
],
"contactAutoCreationPolicy": [
- 328
+ 329
],
"isSyncEnabled": [
6
@@ -5933,7 +5962,7 @@ export default {
1
],
"pendingSyncAction": [
- 330
+ 331
],
"messageChannelId": [
3
@@ -5951,7 +5980,7 @@ export default {
"MessageFolderPendingSyncAction": {},
"CollectionHash": {
"collectionName": [
- 332
+ 333
],
"hash": [
1
@@ -6015,13 +6044,13 @@ export default {
},
"MinimalMetadata": {
"objectMetadataItems": [
- 333
- ],
- "views": [
334
],
+ "views": [
+ 335
+ ],
"collectionHashes": [
- 331
+ 332
],
"__typename": [
1
@@ -6174,7 +6203,7 @@ export default {
2,
{
"input": [
- 337,
+ 338,
"GetApiKeyInput!"
]
}
@@ -6277,13 +6306,13 @@ export default {
25,
{
"input": [
- 338,
+ 339,
"AgentIdInput!"
]
}
],
"objectRecordCounts": [
- 202
+ 203
],
"mostlyEmptyFieldMetadataIds": [
3,
@@ -6304,14 +6333,14 @@ export default {
}
],
"objects": [
- 206,
+ 207,
{
"paging": [
48,
"CursorPaging!"
],
"filter": [
- 339,
+ 340,
"ObjectFilter!"
]
}
@@ -6320,7 +6349,7 @@ export default {
41,
{
"input": [
- 340,
+ 341,
"LogicFunctionIdInput!"
]
}
@@ -6332,7 +6361,7 @@ export default {
7,
{
"input": [
- 340,
+ 341,
"LogicFunctionIdInput!"
]
}
@@ -6341,7 +6370,7 @@ export default {
1,
{
"input": [
- 340,
+ 341,
"LogicFunctionIdInput!"
]
}
@@ -6400,7 +6429,7 @@ export default {
}
],
"fields": [
- 211,
+ 212,
{
"paging": [
48,
@@ -6444,7 +6473,7 @@ export default {
}
],
"findManyMarketplaceApps": [
- 224,
+ 225,
{
"universalIdentifiers": [
1,
@@ -6453,7 +6482,7 @@ export default {
}
],
"findMarketplaceAppDetail": [
- 228,
+ 229,
{
"universalIdentifier": [
1,
@@ -6462,7 +6491,7 @@ export default {
}
],
"publicMarketplaceApps": [
- 224,
+ 225,
{
"isVetted": [
6,
@@ -6471,7 +6500,7 @@ export default {
}
],
"publicMarketplaceAppDetail": [
- 228,
+ 229,
{
"universalIdentifier": [
1,
@@ -6480,7 +6509,7 @@ export default {
}
],
"findApplicationRegistrationByClientId": [
- 197,
+ 198,
{
"clientId": [
1,
@@ -6536,26 +6565,46 @@ export default {
]
}
],
+ "findClaimableApplicationRegistration": [
+ 196,
+ {
+ "sourcePackage": [
+ 1
+ ],
+ "universalIdentifier": [
+ 1
+ ]
+ }
+ ],
+ "githubClaimAuthorizationUrl": [
+ 1,
+ {
+ "applicationRegistrationId": [
+ 1,
+ "String!"
+ ]
+ }
+ ],
"getRoles": [
29
],
"previewMessageCampaignAudience": [
- 280,
+ 281,
{
"input": [
- 341,
+ 342,
"PreviewMessageCampaignAudienceInput!"
]
}
],
"unsubscribeTopics": [
- 284
+ 285
],
"unsubscribePagePreviewUrl": [
1
],
"myMessageChannels": [
- 271,
+ 272,
{
"connectedAccountId": [
3
@@ -6563,13 +6612,13 @@ export default {
}
],
"getEmailingDomains": [
- 269
+ 270
],
"myConnectedAccounts": [
- 238
+ 239
],
"getToolIndex": [
- 294
+ 295
],
"getToolInputSchema": [
7,
@@ -6581,10 +6630,10 @@ export default {
}
],
"webhooks": [
- 293
+ 294
],
"webhook": [
- 293,
+ 294,
{
"id": [
3,
@@ -6593,7 +6642,7 @@ export default {
}
],
"myMessageFolders": [
- 329,
+ 330,
{
"messageChannelId": [
3
@@ -6601,7 +6650,7 @@ export default {
}
],
"myCalendarChannels": [
- 324,
+ 325,
{
"connectedAccountId": [
3
@@ -6609,33 +6658,33 @@ export default {
}
],
"minimalMetadata": [
- 335
+ 336
],
"appConnections": [
- 212,
+ 213,
{
"filter": [
- 342
+ 343
]
}
],
"appConnection": [
- 212,
+ 213,
{
"id": [
- 213,
+ 214,
"ID!"
]
}
],
"findWorkspaceAiStats": [
- 323
+ 324
],
"chatThreads": [
- 314
+ 315
],
"chatThread": [
- 314,
+ 315,
{
"id": [
3,
@@ -6644,7 +6693,7 @@ export default {
}
],
"chatMessages": [
- 313,
+ 314,
{
"threadId": [
3,
@@ -6653,7 +6702,7 @@ export default {
}
],
"chatStreamCatchupChunks": [
- 318,
+ 319,
{
"threadId": [
3,
@@ -6662,13 +6711,13 @@ export default {
}
],
"getAiSystemPromptPreview": [
- 316
+ 317
],
"skills": [
- 312
+ 313
],
"skill": [
- 312,
+ 313,
{
"id": [
3,
@@ -6677,7 +6726,7 @@ export default {
}
],
"agentTurns": [
- 322,
+ 323,
{
"agentId": [
3,
@@ -6686,7 +6735,7 @@ export default {
}
],
"checkUserExists": [
- 258,
+ 259,
{
"email": [
1,
@@ -6698,7 +6747,7 @@ export default {
}
],
"checkWorkspaceInviteHashIsValid": [
- 259,
+ 260,
{
"inviteHash": [
1,
@@ -6716,7 +6765,7 @@ export default {
}
],
"checkWorkspaceSubdomainAvailability": [
- 253,
+ 254,
{
"subdomain": [
1,
@@ -6725,10 +6774,10 @@ export default {
}
],
"getWorkspaceCreationDefaults": [
- 254
+ 255
],
"validatePasswordResetToken": [
- 251,
+ 252,
{
"passwordResetToken": [
1,
@@ -6740,46 +6789,46 @@ export default {
74
],
"getSSOIdentityProviders": [
- 218
+ 219
],
"eventLogs": [
- 311,
+ 312,
{
"input": [
- 343,
+ 344,
"EventLogQueryInput!"
]
}
],
"pieChartData": [
- 305,
+ 306,
{
"input": [
- 347,
+ 348,
"PieChartDataInput!"
]
}
],
"lineChartData": [
- 303,
+ 304,
{
"input": [
- 348,
+ 349,
"LineChartDataInput!"
]
}
],
"barChartData": [
- 300,
+ 301,
{
"input": [
- 349,
+ 350,
"BarChartDataInput!"
]
}
],
"getConnectedImapSmtpCaldavAccount": [
- 291,
+ 292,
{
"id": [
3,
@@ -6788,7 +6837,7 @@ export default {
}
],
"getAutoCompleteAddress": [
- 286,
+ 287,
{
"address": [
1,
@@ -6807,7 +6856,7 @@ export default {
}
],
"getAddressDetails": [
- 288,
+ 289,
{
"placeId": [
1,
@@ -6820,15 +6869,15 @@ export default {
}
],
"getUsageAnalytics": [
- 263,
+ 264,
{
"input": [
- 350
+ 351
]
}
],
"findManyPublicDomains": [
- 267
+ 268
],
"__typename": [
1
@@ -6852,10 +6901,10 @@ export default {
},
"ObjectFilter": {
"and": [
- 339
+ 340
],
"or": [
- 339
+ 340
],
"id": [
51
@@ -6887,7 +6936,7 @@ export default {
},
"LogicFunctionIdInput": {
"id": [
- 213
+ 214
],
"__typename": [
1
@@ -6920,10 +6969,10 @@ export default {
},
"EventLogQueryInput": {
"table": [
- 344
+ 345
],
"filters": [
- 345
+ 346
],
"first": [
21
@@ -6944,7 +6993,7 @@ export default {
1
],
"dateRange": [
- 346
+ 347
],
"recordId": [
1
@@ -7011,7 +7060,7 @@ export default {
1
],
"operationTypes": [
- 351
+ 352
],
"__typename": [
1
@@ -7023,7 +7072,7 @@ export default {
6,
{
"input": [
- 353,
+ 354,
"AddQuerySubscriptionInput!"
]
}
@@ -7032,7 +7081,7 @@ export default {
6,
{
"input": [
- 354,
+ 355,
"RemoveQueryFromEventStreamInput!"
]
}
@@ -7041,7 +7090,7 @@ export default {
156,
{
"inputs": [
- 355,
+ 356,
"[CreateNavigationMenuItemInput!]!"
]
}
@@ -7050,7 +7099,7 @@ export default {
156,
{
"input": [
- 355,
+ 356,
"CreateNavigationMenuItemInput!"
]
}
@@ -7059,7 +7108,7 @@ export default {
156,
{
"inputs": [
- 356,
+ 357,
"[UpdateOneNavigationMenuItemInput!]!"
]
}
@@ -7068,7 +7117,7 @@ export default {
156,
{
"input": [
- 356,
+ 357,
"UpdateOneNavigationMenuItemInput!"
]
}
@@ -7103,7 +7152,7 @@ export default {
"Float!"
],
"fileFolder": [
- 358,
+ 359,
"FileFolder!"
],
"fieldMetadataId": [
@@ -7142,7 +7191,7 @@ export default {
126,
{
"file": [
- 359,
+ 360,
"Upload!"
]
}
@@ -7151,7 +7200,7 @@ export default {
126,
{
"file": [
- 359,
+ 360,
"Upload!"
]
}
@@ -7160,7 +7209,7 @@ export default {
126,
{
"file": [
- 359,
+ 360,
"Upload!"
]
}
@@ -7169,7 +7218,7 @@ export default {
126,
{
"file": [
- 359,
+ 360,
"Upload!"
]
}
@@ -7178,7 +7227,7 @@ export default {
126,
{
"file": [
- 359,
+ 360,
"Upload!"
]
}
@@ -7187,7 +7236,7 @@ export default {
126,
{
"file": [
- 359,
+ 360,
"Upload!"
],
"fieldMetadataId": [
@@ -7200,7 +7249,7 @@ export default {
126,
{
"file": [
- 359,
+ 360,
"Upload!"
],
"fieldMetadataUniversalIdentifier": [
@@ -7213,7 +7262,7 @@ export default {
57,
{
"input": [
- 360,
+ 361,
"CreateViewFilterGroupInput!"
]
}
@@ -7226,7 +7275,7 @@ export default {
"String!"
],
"input": [
- 361,
+ 362,
"UpdateViewFilterGroupInput!"
]
}
@@ -7253,7 +7302,7 @@ export default {
59,
{
"input": [
- 362,
+ 363,
"CreateViewFilterInput!"
]
}
@@ -7262,7 +7311,7 @@ export default {
59,
{
"input": [
- 363,
+ 364,
"UpdateViewFilterInput!"
]
}
@@ -7271,7 +7320,7 @@ export default {
59,
{
"input": [
- 365,
+ 366,
"DeleteViewFilterInput!"
]
}
@@ -7280,7 +7329,7 @@ export default {
59,
{
"input": [
- 366,
+ 367,
"DestroyViewFilterInput!"
]
}
@@ -7289,7 +7338,7 @@ export default {
65,
{
"input": [
- 367,
+ 368,
"CreateViewInput!"
]
}
@@ -7302,7 +7351,7 @@ export default {
"String!"
],
"input": [
- 368,
+ 369,
"UpdateViewInput!"
]
}
@@ -7329,7 +7378,7 @@ export default {
65,
{
"input": [
- 369,
+ 370,
"UpsertViewWidgetInput!"
]
}
@@ -7338,7 +7387,7 @@ export default {
62,
{
"input": [
- 374,
+ 375,
"CreateViewSortInput!"
]
}
@@ -7347,7 +7396,7 @@ export default {
62,
{
"input": [
- 375,
+ 376,
"UpdateViewSortInput!"
]
}
@@ -7356,7 +7405,7 @@ export default {
6,
{
"input": [
- 377,
+ 378,
"DeleteViewSortInput!"
]
}
@@ -7365,7 +7414,7 @@ export default {
6,
{
"input": [
- 378,
+ 379,
"DestroyViewSortInput!"
]
}
@@ -7374,7 +7423,7 @@ export default {
55,
{
"input": [
- 379,
+ 380,
"UpdateViewFieldInput!"
]
}
@@ -7383,7 +7432,7 @@ export default {
55,
{
"input": [
- 381,
+ 382,
"CreateViewFieldInput!"
]
}
@@ -7392,7 +7441,7 @@ export default {
55,
{
"inputs": [
- 381,
+ 382,
"[CreateViewFieldInput!]!"
]
}
@@ -7401,7 +7450,7 @@ export default {
55,
{
"input": [
- 382,
+ 383,
"DeleteViewFieldInput!"
]
}
@@ -7410,7 +7459,7 @@ export default {
55,
{
"input": [
- 383,
+ 384,
"DestroyViewFieldInput!"
]
}
@@ -7419,7 +7468,7 @@ export default {
64,
{
"input": [
- 384,
+ 385,
"UpdateViewFieldGroupInput!"
]
}
@@ -7428,7 +7477,7 @@ export default {
64,
{
"input": [
- 386,
+ 387,
"CreateViewFieldGroupInput!"
]
}
@@ -7437,7 +7486,7 @@ export default {
64,
{
"inputs": [
- 386,
+ 387,
"[CreateViewFieldGroupInput!]!"
]
}
@@ -7446,7 +7495,7 @@ export default {
64,
{
"input": [
- 387,
+ 388,
"DeleteViewFieldGroupInput!"
]
}
@@ -7455,7 +7504,7 @@ export default {
64,
{
"input": [
- 388,
+ 389,
"DestroyViewFieldGroupInput!"
]
}
@@ -7464,7 +7513,7 @@ export default {
65,
{
"input": [
- 389,
+ 390,
"UpsertFieldsWidgetInput!"
]
}
@@ -7473,7 +7522,7 @@ export default {
2,
{
"input": [
- 392,
+ 393,
"CreateApiKeyInput!"
]
}
@@ -7482,7 +7531,7 @@ export default {
2,
{
"input": [
- 393,
+ 394,
"UpdateApiKeyInput!"
]
}
@@ -7491,7 +7540,7 @@ export default {
2,
{
"input": [
- 394,
+ 395,
"RevokeApiKeyInput!"
]
}
@@ -7646,7 +7695,7 @@ export default {
125,
{
"input": [
- 395,
+ 396,
"CreateApprovedAccessDomainInput!"
]
}
@@ -7655,7 +7704,7 @@ export default {
6,
{
"input": [
- 396,
+ 397,
"DeleteApprovedAccessDomainInput!"
]
}
@@ -7664,7 +7713,7 @@ export default {
125,
{
"input": [
- 397,
+ 398,
"ValidateApprovedAccessDomainInput!"
]
}
@@ -7673,7 +7722,7 @@ export default {
118,
{
"input": [
- 398,
+ 399,
"CreatePageLayoutTabInput!"
]
}
@@ -7686,7 +7735,7 @@ export default {
"String!"
],
"input": [
- 399,
+ 400,
"UpdatePageLayoutTabInput!"
]
}
@@ -7704,7 +7753,7 @@ export default {
119,
{
"input": [
- 400,
+ 401,
"CreatePageLayoutInput!"
]
}
@@ -7717,7 +7766,7 @@ export default {
"String!"
],
"input": [
- 401,
+ 402,
"UpdatePageLayoutInput!"
]
}
@@ -7739,7 +7788,7 @@ export default {
"String!"
],
"input": [
- 402,
+ 403,
"UpdatePageLayoutWithTabsInput!"
]
}
@@ -7775,7 +7824,7 @@ export default {
80,
{
"input": [
- 406,
+ 407,
"CreatePageLayoutWidgetInput!"
]
}
@@ -7788,7 +7837,7 @@ export default {
"String!"
],
"input": [
- 407,
+ 408,
"UpdatePageLayoutWidgetInput!"
]
}
@@ -7806,7 +7855,7 @@ export default {
25,
{
"input": [
- 408,
+ 409,
"CreateAgentInput!"
]
}
@@ -7815,7 +7864,7 @@ export default {
25,
{
"input": [
- 409,
+ 410,
"UpdateAgentInput!"
]
}
@@ -7824,7 +7873,7 @@ export default {
25,
{
"input": [
- 338,
+ 339,
"AgentIdInput!"
]
}
@@ -7833,7 +7882,7 @@ export default {
47,
{
"input": [
- 410,
+ 411,
"CreateOneObjectInput!"
]
}
@@ -7842,7 +7891,7 @@ export default {
47,
{
"input": [
- 412,
+ 413,
"DeleteOneObjectInput!"
]
}
@@ -7851,7 +7900,7 @@ export default {
47,
{
"input": [
- 413,
+ 414,
"UpdateOneObjectInput!"
]
}
@@ -7860,7 +7909,7 @@ export default {
45,
{
"input": [
- 415,
+ 416,
"CreateOneIndexInput!"
]
}
@@ -7869,7 +7918,7 @@ export default {
45,
{
"input": [
- 418,
+ 419,
"DeleteOneIndexInput!"
]
}
@@ -7878,7 +7927,7 @@ export default {
41,
{
"input": [
- 340,
+ 341,
"LogicFunctionIdInput!"
]
}
@@ -7887,7 +7936,7 @@ export default {
41,
{
"input": [
- 419,
+ 420,
"CreateLogicFunctionFromSourceInput!"
]
}
@@ -7896,7 +7945,7 @@ export default {
165,
{
"input": [
- 420,
+ 421,
"ExecuteOneLogicFunctionInput!"
]
}
@@ -7905,7 +7954,7 @@ export default {
6,
{
"input": [
- 421,
+ 422,
"UpdateLogicFunctionFromSourceInput!"
]
}
@@ -7914,7 +7963,7 @@ export default {
35,
{
"input": [
- 423,
+ 424,
"CreateCommandMenuItemInput!"
]
}
@@ -7923,7 +7972,7 @@ export default {
35,
{
"input": [
- 424,
+ 425,
"UpdateCommandMenuItemInput!"
]
}
@@ -7950,7 +7999,7 @@ export default {
34,
{
"input": [
- 425,
+ 426,
"CreateFrontComponentInput!"
]
}
@@ -7959,7 +8008,7 @@ export default {
34,
{
"input": [
- 426,
+ 427,
"UpdateFrontComponentInput!"
]
}
@@ -7977,7 +8026,7 @@ export default {
71,
{
"data": [
- 428,
+ 429,
"ActivateWorkspaceInput!"
]
}
@@ -7986,7 +8035,7 @@ export default {
71,
{
"data": [
- 429,
+ 430,
"UpdateWorkspaceInput!"
]
}
@@ -7995,13 +8044,13 @@ export default {
71
],
"checkCustomDomainValidRecords": [
- 232
+ 233
],
"createOneField": [
43,
{
"input": [
- 430,
+ 431,
"CreateOneFieldMetadataInput!"
]
}
@@ -8010,7 +8059,7 @@ export default {
43,
{
"input": [
- 432,
+ 433,
"UpdateOneFieldMetadataInput!"
]
}
@@ -8019,7 +8068,7 @@ export default {
43,
{
"input": [
- 434,
+ 435,
"DeleteOneFieldInput!"
]
}
@@ -8028,7 +8077,7 @@ export default {
61,
{
"input": [
- 435,
+ 436,
"CreateViewGroupInput!"
]
}
@@ -8037,7 +8086,7 @@ export default {
61,
{
"inputs": [
- 435,
+ 436,
"[CreateViewGroupInput!]!"
]
}
@@ -8046,7 +8095,7 @@ export default {
61,
{
"input": [
- 436,
+ 437,
"UpdateViewGroupInput!"
]
}
@@ -8055,7 +8104,7 @@ export default {
61,
{
"inputs": [
- 436,
+ 437,
"[UpdateViewGroupInput!]!"
]
}
@@ -8064,7 +8113,7 @@ export default {
61,
{
"input": [
- 438,
+ 439,
"DeleteViewGroupInput!"
]
}
@@ -8073,7 +8122,7 @@ export default {
61,
{
"input": [
- 439,
+ 440,
"DestroyViewGroupInput!"
]
}
@@ -8110,7 +8159,7 @@ export default {
"UUID!"
],
"input": [
- 440,
+ 441,
"UpdateApplicationInput!"
]
}
@@ -8128,10 +8177,10 @@ export default {
6
],
"createApplicationRegistration": [
- 196,
+ 197,
{
"input": [
- 441,
+ 442,
"CreateApplicationRegistrationInput!"
]
}
@@ -8140,7 +8189,7 @@ export default {
8,
{
"input": [
- 442,
+ 443,
"UpdateApplicationRegistrationInput!"
]
}
@@ -8155,7 +8204,7 @@ export default {
}
],
"rotateApplicationRegistrationClientSecret": [
- 198,
+ 199,
{
"id": [
1,
@@ -8167,7 +8216,7 @@ export default {
5,
{
"input": [
- 444,
+ 445,
"CreateApplicationRegistrationVariableInput!"
]
}
@@ -8176,7 +8225,7 @@ export default {
5,
{
"input": [
- 445,
+ 446,
"UpdateApplicationRegistrationVariableInput!"
]
}
@@ -8194,7 +8243,7 @@ export default {
8,
{
"file": [
- 359,
+ 360,
"Upload!"
],
"universalIdentifier": [
@@ -8241,7 +8290,7 @@ export default {
29,
{
"createRoleInput": [
- 447,
+ 448,
"CreateRoleInput!"
]
}
@@ -8250,7 +8299,7 @@ export default {
29,
{
"updateRoleInput": [
- 448,
+ 449,
"UpdateRoleInput!"
]
}
@@ -8268,7 +8317,7 @@ export default {
16,
{
"upsertObjectPermissionsInput": [
- 450,
+ 451,
"UpsertObjectPermissionsInput!"
]
}
@@ -8277,7 +8326,7 @@ export default {
27,
{
"upsertPermissionFlagsInput": [
- 452,
+ 453,
"UpsertPermissionFlagsInput!"
]
}
@@ -8286,16 +8335,16 @@ export default {
26,
{
"upsertFieldPermissionsInput": [
- 453,
+ 454,
"UpsertFieldPermissionsInput!"
]
}
],
"upsertRowLevelPermissionPredicates": [
- 233,
+ 234,
{
"input": [
- 455,
+ 456,
"UpsertRowLevelPermissionPredicatesInput!"
]
}
@@ -8323,37 +8372,37 @@ export default {
}
],
"sendEmailViaEmailingDomain": [
- 281,
+ 282,
{
"input": [
- 458,
+ 459,
"SendEmailViaDomainInput!"
]
}
],
"sendMessageCampaign": [
- 283,
+ 284,
{
"input": [
- 459,
+ 460,
"SendMessageCampaignInput!"
]
}
],
"createUnsubscribeTopic": [
- 284,
+ 285,
{
"input": [
- 460,
+ 461,
"CreateUnsubscribeTopicInput!"
]
}
],
"updateUnsubscribeTopic": [
- 284,
+ 285,
{
"input": [
- 461,
+ 462,
"UpdateUnsubscribeTopicInput!"
]
}
@@ -8368,25 +8417,25 @@ export default {
}
],
"updateMessageChannel": [
- 271,
+ 272,
{
"input": [
- 462,
+ 463,
"UpdateMessageChannelInput!"
]
}
],
"createEmailGroupChannel": [
- 279,
+ 280,
{
"input": [
- 464,
+ 465,
"CreateEmailGroupChannelInput!"
]
}
],
"deleteEmailGroupChannel": [
- 271,
+ 272,
{
"id": [
3,
@@ -8395,10 +8444,10 @@ export default {
}
],
"createEmailingDomain": [
- 269,
+ 270,
{
"input": [
- 465,
+ 466,
"CreateEmailingDomainInput!"
]
}
@@ -8413,7 +8462,7 @@ export default {
}
],
"verifyEmailingDomain": [
- 269,
+ 270,
{
"id": [
1,
@@ -8422,7 +8471,7 @@ export default {
}
],
"deleteConnectedAccount": [
- 238,
+ 239,
{
"id": [
3,
@@ -8431,34 +8480,34 @@ export default {
}
],
"runAgent": [
- 296,
+ 297,
{
"input": [
- 466,
+ 467,
"RunAgentInput!"
]
}
],
"createWebhook": [
- 293,
+ 294,
{
"input": [
- 467,
+ 468,
"CreateWebhookInput!"
]
}
],
"updateWebhook": [
- 293,
+ 294,
{
"input": [
- 468,
+ 469,
"UpdateWebhookInput!"
]
}
],
"deleteWebhook": [
- 293,
+ 294,
{
"id": [
3,
@@ -8467,37 +8516,37 @@ export default {
}
],
"updateMessageFolder": [
- 329,
+ 330,
{
"input": [
- 470,
+ 471,
"UpdateMessageFolderInput!"
]
}
],
"updateMessageFolders": [
- 329,
+ 330,
{
"input": [
- 472,
+ 473,
"UpdateMessageFoldersInput!"
]
}
],
"updateCalendarChannel": [
- 324,
+ 325,
{
"input": [
- 473,
+ 474,
"UpdateCalendarChannelInput!"
]
}
],
"createChatThread": [
- 314
+ 315
],
"sendChatMessage": [
- 319,
+ 320,
{
"threadId": [
3,
@@ -8518,13 +8567,13 @@ export default {
1
],
"fileAttachments": [
- 475,
+ 476,
"[FileAttachmentInput!]"
]
}
],
"retryChatMessage": [
- 319,
+ 320,
{
"threadId": [
3,
@@ -8536,7 +8585,7 @@ export default {
}
],
"answerAgentChatQuestion": [
- 319,
+ 320,
{
"threadId": [
3,
@@ -8547,7 +8596,7 @@ export default {
"UUID!"
],
"answers": [
- 476,
+ 477,
"[AgentChatQuestionAnswerInput!]!"
],
"modelId": [
@@ -8565,7 +8614,7 @@ export default {
}
],
"renameChatThread": [
- 314,
+ 315,
{
"id": [
3,
@@ -8578,7 +8627,7 @@ export default {
}
],
"archiveChatThread": [
- 314,
+ 315,
{
"id": [
3,
@@ -8587,7 +8636,7 @@ export default {
}
],
"unarchiveChatThread": [
- 314,
+ 315,
{
"id": [
3,
@@ -8614,25 +8663,25 @@ export default {
}
],
"createSkill": [
- 312,
+ 313,
{
"input": [
- 477,
+ 478,
"CreateSkillInput!"
]
}
],
"updateSkill": [
- 312,
+ 313,
{
"input": [
- 478,
+ 479,
"UpdateSkillInput!"
]
}
],
"deleteSkill": [
- 312,
+ 313,
{
"id": [
3,
@@ -8641,7 +8690,7 @@ export default {
}
],
"activateSkill": [
- 312,
+ 313,
{
"id": [
3,
@@ -8650,7 +8699,7 @@ export default {
}
],
"deactivateSkill": [
- 312,
+ 313,
{
"id": [
3,
@@ -8659,7 +8708,7 @@ export default {
}
],
"evaluateAgentTurn": [
- 321,
+ 322,
{
"turnId": [
3,
@@ -8668,7 +8717,7 @@ export default {
}
],
"runEvaluationInput": [
- 322,
+ 323,
{
"agentId": [
3,
@@ -8681,16 +8730,16 @@ export default {
}
],
"getAuthorizationUrlForSSO": [
- 246,
+ 247,
{
"input": [
- 479,
+ 480,
"GetAuthorizationUrlForSSOInput!"
]
}
],
"getLoginTokenFromCredentials": [
- 257,
+ 258,
{
"email": [
1,
@@ -8716,7 +8765,7 @@ export default {
}
],
"signIn": [
- 244,
+ 245,
{
"email": [
1,
@@ -8738,7 +8787,7 @@ export default {
}
],
"verifyEmailAndGetLoginToken": [
- 252,
+ 253,
{
"emailVerificationToken": [
1,
@@ -8758,7 +8807,7 @@ export default {
}
],
"verifyEmailAndGetWorkspaceAgnosticToken": [
- 244,
+ 245,
{
"emailVerificationToken": [
1,
@@ -8774,7 +8823,7 @@ export default {
}
],
"getAuthTokensFromOTP": [
- 256,
+ 257,
{
"otp": [
1,
@@ -8794,7 +8843,7 @@ export default {
}
],
"signUp": [
- 244,
+ 245,
{
"email": [
1,
@@ -8816,7 +8865,7 @@ export default {
}
],
"signUpInWorkspace": [
- 249,
+ 250,
{
"email": [
1,
@@ -8847,10 +8896,10 @@ export default {
}
],
"signUpInNewWorkspace": [
- 249,
+ 250,
{
"input": [
- 480
+ 481
]
}
],
@@ -8862,16 +8911,16 @@ export default {
"String!"
],
"file": [
- 359,
+ 360,
"Upload!"
]
}
],
"generateTransientToken": [
- 250
+ 251
],
"getAuthTokensFromLoginToken": [
- 256,
+ 257,
{
"loginToken": [
1,
@@ -8884,7 +8933,7 @@ export default {
}
],
"authorizeApp": [
- 242,
+ 243,
{
"clientId": [
1,
@@ -8906,7 +8955,7 @@ export default {
}
],
"renewToken": [
- 256,
+ 257,
{
"appToken": [
1,
@@ -8915,7 +8964,7 @@ export default {
}
],
"generateApiKeyToken": [
- 255,
+ 256,
{
"apiKeyId": [
3,
@@ -8931,7 +8980,7 @@ export default {
32
],
"emailPasswordResetLink": [
- 245,
+ 246,
{
"email": [
1,
@@ -8943,7 +8992,7 @@ export default {
}
],
"updatePasswordViaResetToken": [
- 247,
+ 248,
{
"passwordResetToken": [
1,
@@ -8956,7 +9005,7 @@ export default {
}
],
"initiateOTPProvisioning": [
- 240,
+ 241,
{
"loginToken": [
1,
@@ -8969,10 +9018,10 @@ export default {
}
],
"initiateOTPProvisioningForAuthenticatedUser": [
- 240
+ 241
],
"deleteTwoFactorAuthenticationMethod": [
- 239,
+ 240,
{
"twoFactorAuthenticationMethodId": [
3,
@@ -8981,7 +9030,7 @@ export default {
}
],
"verifyTwoFactorAuthenticationMethodForAuthenticatedUser": [
- 241,
+ 242,
{
"otp": [
1,
@@ -9005,7 +9054,7 @@ export default {
6,
{
"input": [
- 481,
+ 482,
"UpdateWorkspaceMemberSettingsInput!"
]
}
@@ -9023,7 +9072,7 @@ export default {
}
],
"resendEmailVerificationToken": [
- 214,
+ 215,
{
"email": [
1,
@@ -9036,43 +9085,43 @@ export default {
}
],
"createOIDCIdentityProvider": [
- 219,
+ 220,
{
"input": [
- 482,
+ 483,
"SetupOIDCSsoInput!"
]
}
],
"createSAMLIdentityProvider": [
- 219,
+ 220,
{
"input": [
- 483,
+ 484,
"SetupSAMLSsoInput!"
]
}
],
"deleteSSOIdentityProvider": [
- 215,
+ 216,
{
"input": [
- 484,
+ 485,
"DeleteSsoInput!"
]
}
],
"editSSOIdentityProvider": [
- 216,
+ 217,
{
"input": [
- 485,
+ 486,
"EditSsoInput!"
]
}
],
"createObjectEvent": [
- 308,
+ 309,
{
"event": [
1,
@@ -9092,10 +9141,10 @@ export default {
}
],
"trackAnalytics": [
- 308,
+ 309,
{
"type": [
- 486,
+ 487,
"AnalyticsType!"
],
"name": [
@@ -9110,7 +9159,7 @@ export default {
}
],
"duplicateDashboard": [
- 306,
+ 307,
{
"id": [
3,
@@ -9119,7 +9168,7 @@ export default {
}
],
"impersonate": [
- 260,
+ 261,
{
"userId": [
3,
@@ -9132,25 +9181,25 @@ export default {
}
],
"createCalendarEvent": [
- 298,
+ 299,
{
"input": [
- 487,
+ 488,
"CreateCalendarEventInput!"
]
}
],
"sendEmail": [
- 307,
+ 308,
{
"input": [
- 488,
+ 489,
"SendEmailInput!"
]
}
],
"startChannelSync": [
- 297,
+ 298,
{
"connectedAccountId": [
3,
@@ -9159,14 +9208,14 @@ export default {
}
],
"saveImapSmtpCaldavAccount": [
- 292,
+ 293,
{
"handle": [
1,
"String!"
],
"connectionParameters": [
- 490,
+ 491,
"EmailAccountConnectionParameters!"
],
"id": [
@@ -9178,13 +9227,13 @@ export default {
167,
{
"input": [
- 492,
+ 493,
"UpdateLabPublicFeatureFlagInput!"
]
}
],
"createPublicDomain": [
- 267,
+ 268,
{
"domain": [
1,
@@ -9206,7 +9255,7 @@ export default {
}
],
"checkPublicDomainValidRecords": [
- 232,
+ 233,
{
"domain": [
1,
@@ -9215,7 +9264,7 @@ export default {
}
],
"createDevelopmentApplication": [
- 264,
+ 265,
{
"universalIdentifier": [
1,
@@ -9228,7 +9277,7 @@ export default {
}
],
"syncApplication": [
- 265,
+ 266,
{
"manifest": [
7,
@@ -9240,10 +9289,10 @@ export default {
}
],
"uploadApplicationFile": [
- 266,
+ 267,
{
"file": [
- 359,
+ 360,
"Upload!"
],
"applicationUniversalIdentifier": [
@@ -9251,7 +9300,7 @@ export default {
"String!"
],
"fileFolder": [
- 358,
+ 359,
"FileFolder!"
],
"filePath": [
@@ -9369,7 +9418,7 @@ export default {
3
],
"update": [
- 357
+ 358
],
"__typename": [
1
@@ -9480,7 +9529,7 @@ export default {
3
],
"update": [
- 364
+ 365
],
"__typename": [
1
@@ -9651,17 +9700,17 @@ export default {
3
],
"viewFields": [
- 370
- ],
- "viewFilters": [
371
],
- "viewFilterGroups": [
+ "viewFilters": [
372
],
- "viewSorts": [
+ "viewFilterGroups": [
373
],
+ "viewSorts": [
+ 374
+ ],
"__typename": [
1
]
@@ -9771,7 +9820,7 @@ export default {
3
],
"update": [
- 376
+ 377
],
"__typename": [
1
@@ -9809,7 +9858,7 @@ export default {
3
],
"update": [
- 380
+ 381
],
"__typename": [
1
@@ -9885,7 +9934,7 @@ export default {
3
],
"update": [
- 385
+ 386
],
"__typename": [
1
@@ -9949,10 +9998,10 @@ export default {
3
],
"groups": [
- 390
+ 391
],
"fields": [
- 391
+ 392
],
"__typename": [
1
@@ -9972,7 +10021,7 @@ export default {
6
],
"fields": [
- 391
+ 392
],
"__typename": [
1
@@ -10140,7 +10189,7 @@ export default {
3
],
"tabs": [
- 403
+ 404
],
"__typename": [
1
@@ -10163,7 +10212,7 @@ export default {
84
],
"widgets": [
- 404
+ 405
],
"__typename": [
1
@@ -10186,7 +10235,7 @@ export default {
3
],
"gridPosition": [
- 405
+ 406
],
"position": [
7
@@ -10235,7 +10284,7 @@ export default {
3
],
"gridPosition": [
- 405
+ 406
],
"position": [
7
@@ -10261,7 +10310,7 @@ export default {
3
],
"gridPosition": [
- 405
+ 406
],
"position": [
7
@@ -10354,7 +10403,7 @@ export default {
},
"CreateOneObjectInput": {
"object": [
- 411
+ 412
],
"__typename": [
1
@@ -10414,7 +10463,7 @@ export default {
},
"UpdateOneObjectInput": {
"update": [
- 414
+ 415
],
"id": [
3
@@ -10469,7 +10518,7 @@ export default {
},
"CreateOneIndexInput": {
"index": [
- 416
+ 417
],
"__typename": [
1
@@ -10480,7 +10529,7 @@ export default {
3
],
"fields": [
- 417
+ 418
],
"indexType": [
46
@@ -10565,7 +10614,7 @@ export default {
3
],
"update": [
- 422
+ 423
],
"__typename": [
1
@@ -10725,7 +10774,7 @@ export default {
3
],
"update": [
- 427
+ 428
],
"__typename": [
1
@@ -10832,7 +10881,7 @@ export default {
},
"CreateOneFieldMetadataInput": {
"field": [
- 431
+ 432
],
"__typename": [
1
@@ -10905,7 +10954,7 @@ export default {
3
],
"update": [
- 433
+ 434
],
"__typename": [
1
@@ -11000,7 +11049,7 @@ export default {
3
],
"update": [
- 437
+ 438
],
"__typename": [
1
@@ -11069,7 +11118,7 @@ export default {
1
],
"update": [
- 443
+ 444
],
"__typename": [
1
@@ -11123,7 +11172,7 @@ export default {
1
],
"update": [
- 446
+ 447
],
"__typename": [
1
@@ -11189,7 +11238,7 @@ export default {
},
"UpdateRoleInput": {
"update": [
- 449
+ 450
],
"id": [
3
@@ -11244,7 +11293,7 @@ export default {
3
],
"objectPermissions": [
- 451
+ 452
],
"__typename": [
1
@@ -11286,7 +11335,7 @@ export default {
3
],
"fieldPermissions": [
- 454
+ 455
],
"__typename": [
1
@@ -11317,10 +11366,10 @@ export default {
3
],
"predicates": [
- 456
+ 457
],
"predicateGroups": [
- 457
+ 458
],
"__typename": [
1
@@ -11438,7 +11487,7 @@ export default {
1
],
"visibility": [
- 285
+ 286
],
"__typename": [
1
@@ -11455,7 +11504,7 @@ export default {
1
],
"visibility": [
- 285
+ 286
],
"__typename": [
1
@@ -11466,7 +11515,7 @@ export default {
3
],
"update": [
- 463
+ 464
],
"__typename": [
1
@@ -11474,16 +11523,16 @@ export default {
},
"UpdateMessageChannelInputUpdates": {
"visibility": [
- 272
+ 273
],
"isContactAutoCreationEnabled": [
6
],
"contactAutoCreationPolicy": [
- 274
+ 275
],
"messageFolderImportPolicy": [
- 275
+ 276
],
"isSyncEnabled": [
6
@@ -11550,7 +11599,7 @@ export default {
3
],
"update": [
- 469
+ 470
],
"__typename": [
1
@@ -11578,7 +11627,7 @@ export default {
3
],
"update": [
- 471
+ 472
],
"__typename": [
1
@@ -11597,7 +11646,7 @@ export default {
3
],
"update": [
- 471
+ 472
],
"__typename": [
1
@@ -11608,7 +11657,7 @@ export default {
3
],
"update": [
- 474
+ 475
],
"__typename": [
1
@@ -11616,13 +11665,13 @@ export default {
},
"UpdateCalendarChannelInputUpdates": {
"visibility": [
- 327
+ 328
],
"isContactAutoCreationEnabled": [
6
],
"contactAutoCreationPolicy": [
- 328
+ 329
],
"isSyncEnabled": [
6
@@ -11862,7 +11911,7 @@ export default {
1
],
"files": [
- 489
+ 490
],
"__typename": [
1
@@ -11884,13 +11933,13 @@ export default {
1
],
"IMAP": [
- 491
+ 492
],
"SMTP": [
- 491
+ 492
],
"CALDAV": [
- 491
+ 492
],
"__typename": [
1
@@ -11910,7 +11959,7 @@ export default {
1
],
"connectionSecurity": [
- 236
+ 237
],
"__typename": [
1
@@ -11938,16 +11987,16 @@ export default {
}
],
"logicFunctionLogs": [
- 234,
+ 235,
{
"input": [
- 494,
+ 495,
"LogicFunctionLogsInput!"
]
}
],
"onAgentChatEvent": [
- 320,
+ 321,
{
"threadId": [
3,
@@ -11956,10 +12005,10 @@ export default {
}
],
"eventLogsLive": [
- 309,
+ 310,
{
"table": [
- 344,
+ 345,
"EventLogTable!"
]
}
diff --git a/packages/twenty-docs/developers/extend/apps/getting-started/project-structure.mdx b/packages/twenty-docs/developers/extend/apps/getting-started/project-structure.mdx
index 233317b49c..8acb8eeb31 100644
--- a/packages/twenty-docs/developers/extend/apps/getting-started/project-structure.mdx
+++ b/packages/twenty-docs/developers/extend/apps/getting-started/project-structure.mdx
@@ -27,6 +27,7 @@ my-twenty-app/
.github/workflows/
ci.yml # Lint, typecheck, unit + integration tests
cd.yml # Deploy + install on push to main
+ publish.yml # Publish to npm on version tags (with provenance)
public/
logo.svg # Static assets
vitest.config.ts # Integration test runner config
diff --git a/packages/twenty-docs/developers/extend/apps/operations/publishing.mdx b/packages/twenty-docs/developers/extend/apps/operations/publishing.mdx
index ec7e95d8cd..6b31f18508 100644
--- a/packages/twenty-docs/developers/extend/apps/operations/publishing.mdx
+++ b/packages/twenty-docs/developers/extend/apps/operations/publishing.mdx
@@ -112,7 +112,7 @@ The server is the authoritative check — it validates `engines.twenty` on both
## Automated CI/CD (scaffolded workflows)
-Apps generated with `create-twenty-app` ship with two GitHub Actions workflows out of the box, under `.github/workflows/`. They are ready to run as soon as you push the repo to GitHub — no extra setup is needed for CI, and CD only requires a single secret.
+Apps generated with `create-twenty-app` ship with three GitHub Actions workflows out of the box, under `.github/workflows/`. CI runs with no setup, CD requires a single secret, and publishing to npm requires a one-time npm trusted-publisher setup.
### CI — `ci.yml`
@@ -157,9 +157,22 @@ The default `TWENTY_DEPLOY_URL` of `http://localhost:3000` is a placeholder —
Add the `deploy` label to a pull request. The `if:` guard in `cd.yml` will run the job for that PR using the PR's head commit, letting you validate a change on the target server before merging.
+### Publish — `publish.yml`
+
+Publishes your app to npm with provenance when you push a version tag (e.g. `v1.0.0`), or when you run the workflow manually from the Actions tab.
+
+**What it does:**
+
+1. Checks out your app, sets up Node.js, and updates npm (trusted publishing requires npm 11.5.1 or later).
+2. Runs `yarn twenty app:publish`, which builds the app and publishes `.twenty/output` to npm. In CI it automatically adds `--provenance` and `--access public`, so no flags are needed in the workflow.
+
+**One-time setup:**
+
+On npmjs.com open your package > **Settings → Trusted Publisher** and register this repository with the `publish.yml` workflow (see the [npm trusted publishing docs](https://docs.npmjs.com/trusted-publishers)). Publishing with provenance certifies which GitHub repository built the package, which is also how you claim ownership of your app in a Twenty marketplace.
+
### Pinning the reusable actions
-Both workflows reference reusable actions at `@main`, so action updates in the `twentyhq/twenty` repo are picked up automatically. If you want deterministic builds, replace `@main` with a commit SHA or release tag on each `uses:` line.
+The `ci.yml` and `cd.yml` workflows reference reusable actions at `@main`, so action updates in the `twentyhq/twenty` repo are picked up automatically. If you want deterministic builds, replace `@main` with a commit SHA or release tag on each `uses:` line.
## Publishing to npm
@@ -241,37 +254,12 @@ If your app does not define an `aboutDescription` in `defineApplication()`, the
### CI publishing
-Use this GitHub Actions workflow to publish automatically on every release (uses [OIDC](https://docs.npmjs.com/trusted-publishers)):
+The scaffolded `publish.yml` workflow described above publishes to npm automatically on version tags, with provenance. Because `yarn twenty app:publish` adds `--provenance` and `--access public` for you when it runs in CI, the workflow needs no npm flags — only the one-time trusted-publisher setup.
-```yaml filename=".github/workflows/publish.yml"
-name: Publish
-on:
- release:
- types: [published]
-
-permissions:
- contents: read
- id-token: write
-
-jobs:
- publish:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with:
- node-version: "24"
- registry-url: https://registry.npmjs.org
- - run: yarn install --immutable
- - run: npx twenty dev:build
- - run: npm publish --provenance --access public
- working-directory: .twenty/output
-```
-
-For other CI systems (GitLab CI, CircleCI, etc.), the same three commands apply: `yarn install`, `yarn twenty dev:build`, then `npm publish` from `.twenty/output`.
+For other CI systems (GitLab CI, CircleCI, etc.), run `yarn install` then `yarn twenty app:publish`. Provenance is emitted when the environment can mint an OIDC token and skipped automatically otherwise.
-**npm provenance** is optional but recommended. Publishing with `--provenance` adds a trust badge to your npm listing, letting users verify the package was built from a specific commit in a public CI pipeline. See the [npm provenance docs](https://docs.npmjs.com/generating-provenance-statements) for setup instructions.
+**npm provenance** adds a trust badge to your npm listing, letting users verify the package was built from a specific commit in a public CI pipeline. It is also what lets you claim ownership of your app in a Twenty marketplace. See the [npm provenance docs](https://docs.npmjs.com/generating-provenance-statements) for details.
## Installing apps
diff --git a/packages/twenty-docs/developers/extend/apps/operations/testing.mdx b/packages/twenty-docs/developers/extend/apps/operations/testing.mdx
index ee784aa022..c4afb380f2 100644
--- a/packages/twenty-docs/developers/extend/apps/operations/testing.mdx
+++ b/packages/twenty-docs/developers/extend/apps/operations/testing.mdx
@@ -259,4 +259,4 @@ This runs `tsc --noEmit` against your app's `tsconfig.json` and reports any type
The scaffolder generates a ready-to-use workflow at `.github/workflows/ci.yml`. On every push to `main` and every pull request, it spawns an ephemeral Twenty server in the runner (via the `twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test` action), then runs `yarn lint`, `yarn typecheck`, `yarn test:unit`, and `yarn test` with `TWENTY_API_URL` / `TWENTY_API_KEY` pointing at that server. No secrets are required, and you can pin the server version via the `TWENTY_VERSION` env at the top of the workflow.
-See [Publishing → Automated CI/CD](/developers/extend/apps/operations/publishing#automated-cicd-scaffolded-workflows) for a full walkthrough of both scaffolded workflows (`ci.yml` and the `cd.yml` deploy pipeline).
+See [Publishing → Automated CI/CD](/developers/extend/apps/operations/publishing#automated-cicd-scaffolded-workflows) for a full walkthrough of the three scaffolded workflows (`ci.yml`, the `cd.yml` deploy pipeline, and `publish.yml` for npm publishing).
diff --git a/packages/twenty-front/src/generated-admin/graphql.ts b/packages/twenty-front/src/generated-admin/graphql.ts
index 5a620fb458..465fbf8ea9 100644
--- a/packages/twenty-front/src/generated-admin/graphql.ts
+++ b/packages/twenty-front/src/generated-admin/graphql.ts
@@ -46,6 +46,12 @@ export type AdminAiModels = {
models: Array;
};
+export type AdminApplicationRegistrationClaim = {
+ __typename?: 'AdminApplicationRegistrationClaim';
+ workspaceDisplayName?: Maybe;
+ workspaceId: Scalars['String']['output'];
+};
+
export type AdminChatMessage = {
__typename?: 'AdminChatMessage';
createdAt: Scalars['DateTime']['output'];
@@ -314,6 +320,7 @@ export type FeatureFlag = {
};
export enum FeatureFlagKey {
+ IS_APP_CLAIMING_ENABLED = 'IS_APP_CLAIMING_ENABLED',
IS_CALENDAR_WEEK_VIEW_ENABLED = 'IS_CALENDAR_WEEK_VIEW_ENABLED',
IS_EMAIL_GROUP_ENABLED = 'IS_EMAIL_GROUP_ENABLED',
IS_JSON_FILTER_ENABLED = 'IS_JSON_FILTER_ENABLED',
@@ -596,6 +603,7 @@ export type Query = {
__typename?: 'Query';
adminPanelRecentUsers: Array;
adminPanelTopWorkspaces: Array;
+ findAdminApplicationRegistrationClaims: Array;
findAdminApplicationRegistrationInstalledWorkspaces: ApplicationRegistrationInstalledWorkspaces;
findAdminApplicationRegistrationStats: ApplicationRegistrationStats;
findAdminApplicationRegistrationVariables: Array;
@@ -636,6 +644,11 @@ export type QueryAdminPanelTopWorkspacesArgs = {
};
+export type QueryFindAdminApplicationRegistrationClaimsArgs = {
+ applicationRegistrationId: Scalars['String']['input'];
+};
+
+
export type QueryFindAdminApplicationRegistrationInstalledWorkspacesArgs = {
input: FindApplicationRegistrationInstalledWorkspacesInput;
};
@@ -1107,6 +1120,13 @@ export type UpgradeRegistrationApplicationsMutationVariables = Exact<{
export type UpgradeRegistrationApplicationsMutation = { __typename?: 'Mutation', upgradeRegistrationApplications: boolean };
+export type FindAdminApplicationRegistrationClaimsQueryVariables = Exact<{
+ applicationRegistrationId: Scalars['String']['input'];
+}>;
+
+
+export type FindAdminApplicationRegistrationClaimsQuery = { __typename?: 'Query', findAdminApplicationRegistrationClaims: Array<{ __typename?: 'AdminApplicationRegistrationClaim', workspaceId: string, workspaceDisplayName?: string | null }> };
+
export type FindAdminApplicationRegistrationInstalledWorkspacesQueryVariables = Exact<{
input: FindApplicationRegistrationInstalledWorkspacesInput;
}>;
@@ -1377,6 +1397,7 @@ export const SyncMarketplaceCatalogDocument = {"kind":"Document","definitions":[
export const UpdateAdminApplicationRegistrationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateAdminApplicationRegistration"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateApplicationRegistrationInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateAdminApplicationRegistration"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ApplicationRegistrationFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ApplicationRegistrationFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ApplicationRegistration"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"universalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"logoUrl"}},{"kind":"Field","name":{"kind":"Name","value":"galleryImagesUrls"}},{"kind":"Field","name":{"kind":"Name","value":"oAuthClientId"}},{"kind":"Field","name":{"kind":"Name","value":"oAuthRedirectUris"}},{"kind":"Field","name":{"kind":"Name","value":"oAuthScopes"}},{"kind":"Field","name":{"kind":"Name","value":"sourceType"}},{"kind":"Field","name":{"kind":"Name","value":"sourcePackage"}},{"kind":"Field","name":{"kind":"Name","value":"latestAvailableVersion"}},{"kind":"Field","name":{"kind":"Name","value":"isListed"}},{"kind":"Field","name":{"kind":"Name","value":"isVetted"}},{"kind":"Field","name":{"kind":"Name","value":"isPreInstalled"}},{"kind":"Field","name":{"kind":"Name","value":"isConfigured"}},{"kind":"Field","name":{"kind":"Name","value":"ownerWorkspaceId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode;
export const UpdateAdminApplicationRegistrationVariableDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateAdminApplicationRegistrationVariable"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateApplicationRegistrationVariableInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateAdminApplicationRegistrationVariable"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"isSecret"}},{"kind":"Field","name":{"kind":"Name","value":"isRequired"}},{"kind":"Field","name":{"kind":"Name","value":"isFilled"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode;
export const UpgradeRegistrationApplicationsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpgradeRegistrationApplications"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"applicationRegistrationId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"upgradeRegistrationApplications"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"applicationRegistrationId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"applicationRegistrationId"}}}]}]}}]} as unknown as DocumentNode;
+export const FindAdminApplicationRegistrationClaimsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindAdminApplicationRegistrationClaims"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"applicationRegistrationId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findAdminApplicationRegistrationClaims"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"applicationRegistrationId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"applicationRegistrationId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"workspaceId"}},{"kind":"Field","name":{"kind":"Name","value":"workspaceDisplayName"}}]}}]}}]} as unknown as DocumentNode;
export const FindAdminApplicationRegistrationInstalledWorkspacesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindAdminApplicationRegistrationInstalledWorkspaces"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"FindApplicationRegistrationInstalledWorkspacesInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findAdminApplicationRegistrationInstalledWorkspaces"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"totalCount"}},{"kind":"Field","name":{"kind":"Name","value":"hasMore"}},{"kind":"Field","name":{"kind":"Name","value":"workspaces"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"displayName"}},{"kind":"Field","name":{"kind":"Name","value":"logo"}},{"kind":"Field","name":{"kind":"Name","value":"version"}}]}}]}}]}}]} as unknown as DocumentNode;
export const FindAdminApplicationRegistrationStatsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindAdminApplicationRegistrationStats"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findAdminApplicationRegistrationStats"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"activeInstalls"}},{"kind":"Field","name":{"kind":"Name","value":"mostInstalledVersion"}},{"kind":"Field","name":{"kind":"Name","value":"versionDistribution"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"version"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}}]}}]} as unknown as DocumentNode;
export const FindAdminApplicationRegistrationVariablesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindAdminApplicationRegistrationVariables"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"applicationRegistrationId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findAdminApplicationRegistrationVariables"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"applicationRegistrationId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"applicationRegistrationId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"isSecret"}},{"kind":"Field","name":{"kind":"Name","value":"isRequired"}},{"kind":"Field","name":{"kind":"Name","value":"isFilled"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"options"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode;
diff --git a/packages/twenty-front/src/generated-metadata/graphql.ts b/packages/twenty-front/src/generated-metadata/graphql.ts
index e348b8a555..2ad93994ec 100644
--- a/packages/twenty-front/src/generated-metadata/graphql.ts
+++ b/packages/twenty-front/src/generated-metadata/graphql.ts
@@ -886,6 +886,18 @@ export type CheckUserExist = {
isEmailVerified: Scalars['Boolean']['output'];
};
+export type ClaimableApplicationRegistration = {
+ __typename?: 'ClaimableApplicationRegistration';
+ author?: Maybe;
+ description?: Maybe;
+ id: Scalars['String']['output'];
+ isOwned: Scalars['Boolean']['output'];
+ logoUrl?: Maybe;
+ name: Scalars['String']['output'];
+ sourcePackage?: Maybe;
+ universalIdentifier: Scalars['String']['output'];
+};
+
export type ClientAiModelConfig = {
__typename?: 'ClientAiModelConfig';
contextWindowTokens?: Maybe;
@@ -1739,6 +1751,7 @@ export type FeatureFlag = {
};
export enum FeatureFlagKey {
+ IS_APP_CLAIMING_ENABLED = 'IS_APP_CLAIMING_ENABLED',
IS_CALENDAR_WEEK_VIEW_ENABLED = 'IS_CALENDAR_WEEK_VIEW_ENABLED',
IS_EMAIL_GROUP_ENABLED = 'IS_EMAIL_GROUP_ENABLED',
IS_JSON_FILTER_ENABLED = 'IS_JSON_FILTER_ENABLED',
@@ -4355,6 +4368,7 @@ export type Query = {
findApplicationRegistrationByUniversalIdentifier?: Maybe;
findApplicationRegistrationStats: ApplicationRegistrationStats;
findApplicationRegistrationVariables: Array;
+ findClaimableApplicationRegistration?: Maybe;
findManyAgents: Array;
findManyApplicationRegistrations: Array;
findManyApplications: Array;
@@ -4409,6 +4423,7 @@ export type Query = {
getViewSorts: Array;
getViews: Array;
getWorkspaceCreationDefaults: WorkspaceCreationDefaultsDto;
+ githubClaimAuthorizationUrl: Scalars['String']['output'];
lineChartData: LineChartData;
listPlans: Array;
minimalMetadata: MinimalMetadata;
@@ -4559,6 +4574,12 @@ export type QueryFindApplicationRegistrationVariablesArgs = {
};
+export type QueryFindClaimableApplicationRegistrationArgs = {
+ sourcePackage?: InputMaybe;
+ universalIdentifier?: InputMaybe;
+};
+
+
export type QueryFindManyMarketplaceAppsArgs = {
universalIdentifiers?: InputMaybe>;
};
@@ -4751,6 +4772,11 @@ export type QueryGetViewsArgs = {
};
+export type QueryGithubClaimAuthorizationUrlArgs = {
+ applicationRegistrationId: Scalars['String']['input'];
+};
+
+
export type QueryLineChartDataArgs = {
input: LineChartDataInput;
};
@@ -7224,6 +7250,11 @@ export type InstallApplicationMutationVariables = Exact<{
export type InstallApplicationMutation = { __typename?: 'Mutation', installApplication: { __typename?: 'Application', id: string } };
+export type SyncMarketplaceCatalogMutationVariables = Exact<{ [key: string]: never; }>;
+
+
+export type SyncMarketplaceCatalogMutation = { __typename?: 'Mutation', syncMarketplaceCatalog: boolean };
+
export type UpgradeApplicationMutationVariables = Exact<{
appRegistrationId: Scalars['String']['input'];
targetVersion: Scalars['String']['input'];
@@ -7813,6 +7844,14 @@ export type FindApplicationRegistrationVariablesQueryVariables = Exact<{
export type FindApplicationRegistrationVariablesQuery = { __typename?: 'Query', findApplicationRegistrationVariables: Array<{ __typename?: 'ApplicationRegistrationVariableDTO', id: string, key: string, value?: string | null, description: string, isSecret: boolean, isRequired: boolean, isFilled: boolean, type: string, options?: any | null, createdAt: string, updatedAt: string }> };
+export type FindClaimableApplicationRegistrationQueryVariables = Exact<{
+ sourcePackage?: InputMaybe;
+ universalIdentifier?: InputMaybe;
+}>;
+
+
+export type FindClaimableApplicationRegistrationQuery = { __typename?: 'Query', findClaimableApplicationRegistration?: { __typename?: 'ClaimableApplicationRegistration', id: string, universalIdentifier: string, name: string, sourcePackage?: string | null, logoUrl?: string | null, description?: string | null, author?: string | null, isOwned: boolean } | null };
+
export type ApplicationRegistrationListItemFragment = { __typename?: 'ApplicationRegistration', id: string, universalIdentifier: string, name: string, sourceType: ApplicationRegistrationSourceType, logoUrl?: string | null };
export type FindManyApplicationRegistrationsQueryVariables = Exact<{ [key: string]: never; }>;
@@ -7827,6 +7866,13 @@ export type FindOneApplicationRegistrationQueryVariables = Exact<{
export type FindOneApplicationRegistrationQuery = { __typename?: 'Query', findOneApplicationRegistration: { __typename?: 'ApplicationRegistration', id: string, universalIdentifier: string, name: string, logoUrl?: string | null, galleryImagesUrls: Array, oAuthClientId: string, oAuthRedirectUris: Array, oAuthScopes: Array, sourceType: ApplicationRegistrationSourceType, sourcePackage?: string | null, latestAvailableVersion?: string | null, isListed: boolean, isVetted: boolean, isPreInstalled: boolean, isConfigured: boolean, ownerWorkspaceId?: string | null, createdAt: string, updatedAt: string } };
+export type GithubClaimAuthorizationUrlQueryVariables = Exact<{
+ applicationRegistrationId: Scalars['String']['input'];
+}>;
+
+
+export type GithubClaimAuthorizationUrlQuery = { __typename?: 'Query', githubClaimAuthorizationUrl: string };
+
export type UninstallApplicationMutationVariables = Exact<{
universalIdentifier: Scalars['String']['input'];
}>;
@@ -8940,6 +8986,7 @@ export const FindManyLogicFunctionsDocument = {"kind":"Document","definitions":[
export const FindOneLogicFunctionDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindOneLogicFunction"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"LogicFunctionIdInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findOneLogicFunction"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"LogicFunctionFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"LogicFunctionFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"LogicFunction"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"runtime"}},{"kind":"Field","name":{"kind":"Name","value":"timeoutSeconds"}},{"kind":"Field","name":{"kind":"Name","value":"executionMode"}},{"kind":"Field","name":{"kind":"Name","value":"sourceHandlerPath"}},{"kind":"Field","name":{"kind":"Name","value":"handlerName"}},{"kind":"Field","name":{"kind":"Name","value":"cronTriggerSettings"}},{"kind":"Field","name":{"kind":"Name","value":"databaseEventTriggerSettings"}},{"kind":"Field","name":{"kind":"Name","value":"httpRouteTriggerSettings"}},{"kind":"Field","name":{"kind":"Name","value":"toolTriggerSettings"}},{"kind":"Field","name":{"kind":"Name","value":"workflowActionTriggerSettings"}},{"kind":"Field","name":{"kind":"Name","value":"applicationId"}},{"kind":"Field","name":{"kind":"Name","value":"universalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode;
export const GetLogicFunctionSourceCodeDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetLogicFunctionSourceCode"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"LogicFunctionIdInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getLogicFunctionSourceCode"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}]}]}}]} as unknown as DocumentNode;
export const InstallApplicationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"InstallApplication"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"universalIdentifier"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"installApplication"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"universalIdentifier"},"value":{"kind":"Variable","name":{"kind":"Name","value":"universalIdentifier"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}}]}}]}}]} as unknown as DocumentNode;
+export const SyncMarketplaceCatalogDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"SyncMarketplaceCatalog"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"syncMarketplaceCatalog"}}]}}]} as unknown as DocumentNode;
export const UpgradeApplicationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpgradeApplication"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"appRegistrationId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"targetVersion"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"upgradeApplication"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"appRegistrationId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"appRegistrationId"}}},{"kind":"Argument","name":{"kind":"Name","value":"targetVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"targetVersion"}}}]}]}}]} as unknown as DocumentNode;
export const FindManyMarketplaceAppsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindManyMarketplaceApps"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"universalIdentifiers"}},"type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findManyMarketplaceApps"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"universalIdentifiers"},"value":{"kind":"Variable","name":{"kind":"Name","value":"universalIdentifiers"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"MarketplaceAppFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"MarketplaceAppFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"MarketplaceApp"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"author"}},{"kind":"Field","name":{"kind":"Name","value":"category"}},{"kind":"Field","name":{"kind":"Name","value":"logo"}},{"kind":"Field","name":{"kind":"Name","value":"sourcePackage"}},{"kind":"Field","name":{"kind":"Name","value":"isVetted"}}]}}]} as unknown as DocumentNode;
export const FindMarketplaceAppDetailDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindMarketplaceAppDetail"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"universalIdentifier"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findMarketplaceAppDetail"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"universalIdentifier"},"value":{"kind":"Variable","name":{"kind":"Name","value":"universalIdentifier"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"MarketplaceAppDetailFields"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"MarketplaceAppDetailFields"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"MarketplaceAppDetail"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"universalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"sourceType"}},{"kind":"Field","name":{"kind":"Name","value":"sourcePackage"}},{"kind":"Field","name":{"kind":"Name","value":"latestAvailableVersion"}},{"kind":"Field","name":{"kind":"Name","value":"isListed"}},{"kind":"Field","name":{"kind":"Name","value":"isVetted"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"author"}},{"kind":"Field","name":{"kind":"Name","value":"category"}},{"kind":"Field","name":{"kind":"Name","value":"logo"}},{"kind":"Field","name":{"kind":"Name","value":"websiteUrl"}},{"kind":"Field","name":{"kind":"Name","value":"aboutDescription"}},{"kind":"Field","name":{"kind":"Name","value":"termsUrl"}},{"kind":"Field","name":{"kind":"Name","value":"emailSupport"}},{"kind":"Field","name":{"kind":"Name","value":"issueReportUrl"}},{"kind":"Field","name":{"kind":"Name","value":"galleryImages"}},{"kind":"Field","name":{"kind":"Name","value":"defaultRoleUniversalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"roles"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"universalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"canUpdateAllSettings"}},{"kind":"Field","name":{"kind":"Name","value":"canAccessAllTools"}},{"kind":"Field","name":{"kind":"Name","value":"canReadAllObjectRecords"}},{"kind":"Field","name":{"kind":"Name","value":"canUpdateAllObjectRecords"}},{"kind":"Field","name":{"kind":"Name","value":"canSoftDeleteAllObjectRecords"}},{"kind":"Field","name":{"kind":"Name","value":"canDestroyAllObjectRecords"}},{"kind":"Field","name":{"kind":"Name","value":"permissionFlagUniversalIdentifiers"}},{"kind":"Field","name":{"kind":"Name","value":"objectPermissions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"universalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"objectUniversalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"canReadObjectRecords"}},{"kind":"Field","name":{"kind":"Name","value":"canUpdateObjectRecords"}},{"kind":"Field","name":{"kind":"Name","value":"canSoftDeleteObjectRecords"}},{"kind":"Field","name":{"kind":"Name","value":"canDestroyObjectRecords"}}]}},{"kind":"Field","name":{"kind":"Name","value":"fieldPermissions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"universalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"objectUniversalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"fieldUniversalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"canReadFieldValue"}},{"kind":"Field","name":{"kind":"Name","value":"canUpdateFieldValue"}}]}}]}}]}}]} as unknown as DocumentNode;
@@ -8997,8 +9044,10 @@ export const UpdateApplicationRegistrationVariableDocument = {"kind":"Document",
export const ApplicationRegistrationTarballUrlDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ApplicationRegistrationTarballUrl"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"applicationRegistrationTarballUrl"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}]}]}}]} as unknown as DocumentNode;
export const FindApplicationRegistrationStatsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindApplicationRegistrationStats"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findApplicationRegistrationStats"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"activeInstalls"}},{"kind":"Field","name":{"kind":"Name","value":"mostInstalledVersion"}},{"kind":"Field","name":{"kind":"Name","value":"versionDistribution"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"version"}},{"kind":"Field","name":{"kind":"Name","value":"count"}}]}}]}}]}}]} as unknown as DocumentNode;
export const FindApplicationRegistrationVariablesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindApplicationRegistrationVariables"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"applicationRegistrationId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findApplicationRegistrationVariables"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"applicationRegistrationId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"applicationRegistrationId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"isSecret"}},{"kind":"Field","name":{"kind":"Name","value":"isRequired"}},{"kind":"Field","name":{"kind":"Name","value":"isFilled"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"options"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode;
+export const FindClaimableApplicationRegistrationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindClaimableApplicationRegistration"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"sourcePackage"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"universalIdentifier"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findClaimableApplicationRegistration"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"sourcePackage"},"value":{"kind":"Variable","name":{"kind":"Name","value":"sourcePackage"}}},{"kind":"Argument","name":{"kind":"Name","value":"universalIdentifier"},"value":{"kind":"Variable","name":{"kind":"Name","value":"universalIdentifier"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"universalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"sourcePackage"}},{"kind":"Field","name":{"kind":"Name","value":"logoUrl"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"author"}},{"kind":"Field","name":{"kind":"Name","value":"isOwned"}}]}}]}}]} as unknown as DocumentNode;
export const FindManyApplicationRegistrationsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindManyApplicationRegistrations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findManyApplicationRegistrations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ApplicationRegistrationListItem"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ApplicationRegistrationListItem"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ApplicationRegistration"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"universalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"sourceType"}},{"kind":"Field","name":{"kind":"Name","value":"logoUrl"}}]}}]} as unknown as DocumentNode;
export const FindOneApplicationRegistrationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindOneApplicationRegistration"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findOneApplicationRegistration"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ApplicationRegistrationFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ApplicationRegistrationFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"ApplicationRegistration"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"universalIdentifier"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"logoUrl"}},{"kind":"Field","name":{"kind":"Name","value":"galleryImagesUrls"}},{"kind":"Field","name":{"kind":"Name","value":"oAuthClientId"}},{"kind":"Field","name":{"kind":"Name","value":"oAuthRedirectUris"}},{"kind":"Field","name":{"kind":"Name","value":"oAuthScopes"}},{"kind":"Field","name":{"kind":"Name","value":"sourceType"}},{"kind":"Field","name":{"kind":"Name","value":"sourcePackage"}},{"kind":"Field","name":{"kind":"Name","value":"latestAvailableVersion"}},{"kind":"Field","name":{"kind":"Name","value":"isListed"}},{"kind":"Field","name":{"kind":"Name","value":"isVetted"}},{"kind":"Field","name":{"kind":"Name","value":"isPreInstalled"}},{"kind":"Field","name":{"kind":"Name","value":"isConfigured"}},{"kind":"Field","name":{"kind":"Name","value":"ownerWorkspaceId"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]} as unknown as DocumentNode;
+export const GithubClaimAuthorizationUrlDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GithubClaimAuthorizationUrl"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"applicationRegistrationId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"githubClaimAuthorizationUrl"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"applicationRegistrationId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"applicationRegistrationId"}}}]}]}}]} as unknown as DocumentNode;
export const UninstallApplicationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UninstallApplication"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"universalIdentifier"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"uninstallApplication"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"universalIdentifier"},"value":{"kind":"Variable","name":{"kind":"Name","value":"universalIdentifier"}}}]}]}}]} as unknown as DocumentNode;
export const UpdateApplicationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateApplication"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateApplicationInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateApplication"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}},{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"autoUpgrade"}}]}}]}}]} as unknown as DocumentNode;
export const UpdateOneApplicationVariableDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateOneApplicationVariable"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"key"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"value"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"applicationId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateOneApplicationVariable"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"Variable","name":{"kind":"Name","value":"key"}}},{"kind":"Argument","name":{"kind":"Name","value":"value"},"value":{"kind":"Variable","name":{"kind":"Name","value":"value"}}},{"kind":"Argument","name":{"kind":"Name","value":"applicationId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"applicationId"}}}]}]}}]} as unknown as DocumentNode;
diff --git a/packages/twenty-front/src/modules/marketplace/graphql/mutations/syncMarketplaceCatalog.ts b/packages/twenty-front/src/modules/marketplace/graphql/mutations/syncMarketplaceCatalog.ts
new file mode 100644
index 0000000000..071334e41b
--- /dev/null
+++ b/packages/twenty-front/src/modules/marketplace/graphql/mutations/syncMarketplaceCatalog.ts
@@ -0,0 +1,7 @@
+import { gql } from '@apollo/client';
+
+export const SYNC_MARKETPLACE_CATALOG = gql`
+ mutation SyncMarketplaceCatalog {
+ syncMarketplaceCatalog
+ }
+`;
diff --git a/packages/twenty-front/src/modules/settings/admin-panel/apps/graphql/queries/findAdminApplicationRegistrationClaims.ts b/packages/twenty-front/src/modules/settings/admin-panel/apps/graphql/queries/findAdminApplicationRegistrationClaims.ts
new file mode 100644
index 0000000000..19734c4428
--- /dev/null
+++ b/packages/twenty-front/src/modules/settings/admin-panel/apps/graphql/queries/findAdminApplicationRegistrationClaims.ts
@@ -0,0 +1,14 @@
+import { gql } from '@apollo/client';
+
+export const FIND_ADMIN_APPLICATION_REGISTRATION_CLAIMS = gql`
+ query FindAdminApplicationRegistrationClaims(
+ $applicationRegistrationId: String!
+ ) {
+ findAdminApplicationRegistrationClaims(
+ applicationRegistrationId: $applicationRegistrationId
+ ) {
+ workspaceId
+ workspaceDisplayName
+ }
+ }
+`;
diff --git a/packages/twenty-front/src/modules/settings/application-registrations/graphql/queries/findClaimableApplicationRegistration.ts b/packages/twenty-front/src/modules/settings/application-registrations/graphql/queries/findClaimableApplicationRegistration.ts
new file mode 100644
index 0000000000..0e48518948
--- /dev/null
+++ b/packages/twenty-front/src/modules/settings/application-registrations/graphql/queries/findClaimableApplicationRegistration.ts
@@ -0,0 +1,22 @@
+import { gql } from '@apollo/client';
+
+export const FIND_CLAIMABLE_APPLICATION_REGISTRATION = gql`
+ query FindClaimableApplicationRegistration(
+ $sourcePackage: String
+ $universalIdentifier: String
+ ) {
+ findClaimableApplicationRegistration(
+ sourcePackage: $sourcePackage
+ universalIdentifier: $universalIdentifier
+ ) {
+ id
+ universalIdentifier
+ name
+ sourcePackage
+ logoUrl
+ description
+ author
+ isOwned
+ }
+ }
+`;
diff --git a/packages/twenty-front/src/modules/settings/application-registrations/graphql/queries/githubClaimAuthorizationUrl.ts b/packages/twenty-front/src/modules/settings/application-registrations/graphql/queries/githubClaimAuthorizationUrl.ts
new file mode 100644
index 0000000000..f66183b0bc
--- /dev/null
+++ b/packages/twenty-front/src/modules/settings/application-registrations/graphql/queries/githubClaimAuthorizationUrl.ts
@@ -0,0 +1,9 @@
+import { gql } from '@apollo/client';
+
+export const GITHUB_CLAIM_AUTHORIZATION_URL = gql`
+ query GithubClaimAuthorizationUrl($applicationRegistrationId: String!) {
+ githubClaimAuthorizationUrl(
+ applicationRegistrationId: $applicationRegistrationId
+ )
+ }
+`;
diff --git a/packages/twenty-front/src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationClaims.tsx b/packages/twenty-front/src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationClaims.tsx
new file mode 100644
index 0000000000..23d08a54cd
--- /dev/null
+++ b/packages/twenty-front/src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationClaims.tsx
@@ -0,0 +1,64 @@
+import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
+import { Table } from '@/ui/layout/table/components/Table';
+import { TableBody } from '@/ui/layout/table/components/TableBody';
+import { TableCell } from '@/ui/layout/table/components/TableCell';
+import { TableHeader } from '@/ui/layout/table/components/TableHeader';
+import { TableRow } from '@/ui/layout/table/components/TableRow';
+import { useQuery } from '@apollo/client/react';
+import { useLingui } from '@lingui/react/macro';
+import { Tag } from 'twenty-ui/data-display';
+import { Section } from 'twenty-ui/layout';
+import { H2Title } from 'twenty-ui/typography';
+import { FindAdminApplicationRegistrationClaimsDocument } from '~/generated-admin/graphql';
+
+const CLAIMS_TABLE_GRID = '1fr 140px';
+
+export const SettingsAdminApplicationRegistrationClaims = ({
+ applicationRegistrationId,
+}: {
+ applicationRegistrationId: string;
+}) => {
+ const { t } = useLingui();
+ const apolloAdminClient = useApolloAdminClient();
+
+ const { data } = useQuery(FindAdminApplicationRegistrationClaimsDocument, {
+ client: apolloAdminClient,
+ variables: { applicationRegistrationId },
+ });
+
+ const claims = data?.findAdminApplicationRegistrationClaims ?? [];
+
+ if (claims.length === 0) {
+ return null;
+ }
+
+ return (
+
+
+
+
+ {t`Workspace`}
+ {t`Status`}
+
+
+ {claims.map((claim) => (
+
+
+ {claim.workspaceDisplayName ?? claim.workspaceId}
+
+
+
+
+
+ ))}
+
+
+
+ );
+};
diff --git a/packages/twenty-front/src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx b/packages/twenty-front/src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
index dcede53fd7..79be9887f0 100644
--- a/packages/twenty-front/src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
+++ b/packages/twenty-front/src/pages/settings/admin-panel/SettingsAdminApplicationRegistrationDangerZone.tsx
@@ -215,23 +215,25 @@ export const SettingsAdminApplicationRegistrationDangerZone = ({
delay={TooltipDelay.shortDelay}
/>
)}
- {isUnclaimed ? (
-