mirror of
https://github.com/twentyhq/twenty
synced 2026-04-21 13:37:22 +00:00
feat: move admin panel to dedicated /admin-panel GraphQL endpoint (#19852)
Some checks are pending
CD deploy main / deploy-main (push) Waiting to run
CI Create App E2E minimal / changed-files-check (push) Waiting to run
CI Create App E2E minimal / create-app-e2e-minimal (push) Blocked by required conditions
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Blocked by required conditions
CI Emails / emails-test (push) Blocked by required conditions
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Blocked by required conditions
CI Example App Postcard / changed-files-check (push) Waiting to run
CI Example App Postcard / example-app-postcard (push) Blocked by required conditions
CI Example App Postcard / ci-example-app-postcard-status-check (push) Blocked by required conditions
Push translations to Crowdin / Extract and upload translations (push) Waiting to run
CI Create App / changed-files-check (push) Waiting to run
CI Create App / create-app-test (lint) (push) Blocked by required conditions
CI Create App / create-app-test (test) (push) Blocked by required conditions
CI Create App / create-app-test (typecheck) (push) Blocked by required conditions
CI Create App / ci-create-app-status-check (push) Blocked by required conditions
CI Docs / changed-files-check (push) Waiting to run
CI Docs / docs-lint (push) Blocked by required conditions
CI Emails / changed-files-check (push) Waiting to run
CI Emails / ci-emails-status-check (push) Blocked by required conditions
CI Example App Hello World / changed-files-check (push) Waiting to run
CI Example App Hello World / example-app-hello-world (push) Blocked by required conditions
Some checks are pending
CD deploy main / deploy-main (push) Waiting to run
CI Create App E2E minimal / changed-files-check (push) Waiting to run
CI Create App E2E minimal / create-app-e2e-minimal (push) Blocked by required conditions
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Blocked by required conditions
CI Emails / emails-test (push) Blocked by required conditions
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Blocked by required conditions
CI Example App Postcard / changed-files-check (push) Waiting to run
CI Example App Postcard / example-app-postcard (push) Blocked by required conditions
CI Example App Postcard / ci-example-app-postcard-status-check (push) Blocked by required conditions
Push translations to Crowdin / Extract and upload translations (push) Waiting to run
CI Create App / changed-files-check (push) Waiting to run
CI Create App / create-app-test (lint) (push) Blocked by required conditions
CI Create App / create-app-test (test) (push) Blocked by required conditions
CI Create App / create-app-test (typecheck) (push) Blocked by required conditions
CI Create App / ci-create-app-status-check (push) Blocked by required conditions
CI Docs / changed-files-check (push) Waiting to run
CI Docs / docs-lint (push) Blocked by required conditions
CI Emails / changed-files-check (push) Waiting to run
CI Emails / ci-emails-status-check (push) Blocked by required conditions
CI Example App Hello World / changed-files-check (push) Waiting to run
CI Example App Hello World / example-app-hello-world (push) Blocked by required conditions
## Summary Splits admin-panel resolvers off the shared `/metadata` GraphQL endpoint onto a dedicated `/admin-panel` endpoint. The backend plumbing mirrors the existing `metadata` / `core` pattern (new scope, decorator, module, factory), and admin types now live in their own `generated-admin/graphql.ts` on the frontend — dropping 877 lines of admin noise from `generated-metadata`. ## Why - **Smaller attack surface on `/metadata`** — every authenticated user hits that endpoint; admin ops don't belong there. - **Independent complexity limits and monitoring** per endpoint. - **Cleaner module boundaries** — admin is a cross-cutting concern that doesn't match the "shared-schema configuration" meaning of `/metadata`. - **Deploy / blast-radius isolation** — a broken admin query can't affect `/metadata`. Runtime behavior, auth, and authorization are unchanged — this is a relocation, not a re-permissioning. All existing guards (`WorkspaceAuthGuard`, `UserAuthGuard`, `SettingsPermissionGuard(SECURITY)` at class level; `AdminPanelGuard` / `ServerLevelImpersonateGuard` at method level) remain on `AdminPanelResolver`. ## What changed ### Backend - `@AdminResolver()` decorator with scope `'admin'`, naming parallels `CoreResolver` / `MetadataResolver`. - `AdminPanelGraphQLApiModule` + `adminPanelModuleFactory` registered at `/admin-panel`, same Yoga hook set as the metadata factory (Sentry tracing, error handler, introspection-disabling in prod, complexity validation). - Middleware chain on `/admin-panel` is identical to `/metadata`. - `@nestjs/graphql` patch extended: `resolverSchemaScope?: 'core' | 'metadata' | 'admin'`. - `AdminPanelResolver` class decorator swapped from `@MetadataResolver()` to `@AdminResolver()` — no other changes. ### Frontend - `codegen-admin.cjs` → `src/generated-admin/graphql.ts` (982 lines). - `codegen-metadata.cjs` excludes admin paths; metadata file shrinks by 877 lines. - `ApolloAdminProvider` / `useApolloAdminClient` follow the existing `ApolloCoreProvider` / `useApolloCoreClient` pattern, wired inside `AppRouterProviders` alongside the core provider. - 37 admin consumer files migrated: imports switched to `~/generated-admin/graphql` and `client: useApolloAdminClient()` is passed to `useQuery` / `useMutation`. - Three files intentionally kept on `generated-metadata` because they consume non-admin Documents: `useHandleImpersonate.ts`, `SettingsAdminApplicationRegistrationDangerZone.tsx`, `SettingsAdminApplicationRegistrationGeneralToggles.tsx`. ### CI - `ci-server.yaml` runs all three `graphql:generate` configurations and diff-checks all three generated dirs. ## Authorization (unchanged, but audited while reviewing) Every one of the 38 methods on `AdminPanelResolver` has a method-level guard: - `AdminPanelGuard` (32 methods) — requires `canAccessFullAdminPanel === true` - `ServerLevelImpersonateGuard` (6 methods: user/workspace lookup + chat thread views) — requires `canImpersonate === true` On top of the class-level guards above. No resolver method is accessible without these flags + `SECURITY` permission in the workspace. ## Test plan - [ ] Dev server boots; `/graphql`, `/metadata`, `/admin-panel` all mapped as separate GraphQL routes (confirmed locally during development). - [ ] `nx typecheck twenty-server` passes. - [ ] `nx typecheck twenty-front` passes. - [ ] `nx lint:diff-with-main twenty-server` and `twenty-front` both clean. - [ ] Manual smoke test: log in with a user who has `canAccessFullAdminPanel=true`, open the admin panel at `/settings/admin-panel`, verify each tab loads (General, Health, Config variables, AI, Apps, Workspace details, User details, chat threads). - [ ] Manual smoke test: log in with a user who has `canImpersonate=false` and `canAccessFullAdminPanel=false`, hit `/admin-panel` directly with a raw GraphQL request, confirm permission error on every operation. - [ ] Production deploy note: reverse proxy / ingress must route the new `/admin-panel` path to the Nest server. If the proxy has an explicit allowlist, infra change required before cutover. ## Follow-ups (out of scope here) - Consider cutting over the three `SettingsAdminApplicationRegistration*` components to admin-scope versions of the app-registration operations so the admin page is fully on the admin endpoint. - The `renderGraphiQL` double-assignment in `admin-panel.module-factory.ts` is copied from `metadata.module-factory.ts` — worth cleaning up in both.
This commit is contained in:
parent
90661cc821
commit
75848ff8ea
70 changed files with 1857 additions and 3844 deletions
8
.github/workflows/ci-server.yaml
vendored
8
.github/workflows/ci-server.yaml
vendored
|
|
@ -25,6 +25,7 @@ jobs:
|
||||||
packages/twenty-server/**
|
packages/twenty-server/**
|
||||||
packages/twenty-front/src/generated/**
|
packages/twenty-front/src/generated/**
|
||||||
packages/twenty-front/src/generated-metadata/**
|
packages/twenty-front/src/generated-metadata/**
|
||||||
|
packages/twenty-front/src/generated-admin/**
|
||||||
packages/twenty-client-sdk/**
|
packages/twenty-client-sdk/**
|
||||||
packages/twenty-emails/**
|
packages/twenty-emails/**
|
||||||
packages/twenty-shared/**
|
packages/twenty-shared/**
|
||||||
|
|
@ -165,13 +166,14 @@ jobs:
|
||||||
|
|
||||||
npx nx run twenty-front:graphql:generate
|
npx nx run twenty-front:graphql:generate
|
||||||
npx nx run twenty-front:graphql:generate --configuration=metadata
|
npx nx run twenty-front:graphql:generate --configuration=metadata
|
||||||
|
npx nx run twenty-front:graphql:generate --configuration=admin
|
||||||
|
|
||||||
if ! git diff --quiet -- packages/twenty-front/src/generated packages/twenty-front/src/generated-metadata; then
|
if ! git diff --quiet -- packages/twenty-front/src/generated packages/twenty-front/src/generated-metadata packages/twenty-front/src/generated-admin; then
|
||||||
echo "::error::GraphQL schema changes detected. Please run 'npx nx run twenty-front:graphql:generate' and 'npx nx run twenty-front:graphql:generate --configuration=metadata' and commit the changes."
|
echo "::error::GraphQL schema changes detected. Please run the three graphql:generate configurations ('data', 'metadata', 'admin') and commit the changes."
|
||||||
echo ""
|
echo ""
|
||||||
echo "The following GraphQL schema changes were detected:"
|
echo "The following GraphQL schema changes were detected:"
|
||||||
echo "==================================================="
|
echo "==================================================="
|
||||||
git diff -- packages/twenty-front/src/generated packages/twenty-front/src/generated-metadata
|
git diff -- packages/twenty-front/src/generated packages/twenty-front/src/generated-metadata packages/twenty-front/src/generated-admin
|
||||||
echo "==================================================="
|
echo "==================================================="
|
||||||
echo ""
|
echo ""
|
||||||
HAS_ERRORS=true
|
HAS_ERRORS=true
|
||||||
|
|
|
||||||
|
|
@ -1607,84 +1607,6 @@ type WorkspaceUrls {
|
||||||
subdomainUrl: String!
|
subdomainUrl: String!
|
||||||
}
|
}
|
||||||
|
|
||||||
type UserInfo {
|
|
||||||
id: UUID!
|
|
||||||
email: String!
|
|
||||||
firstName: String
|
|
||||||
lastName: String
|
|
||||||
createdAt: DateTime!
|
|
||||||
}
|
|
||||||
|
|
||||||
type WorkspaceInfo {
|
|
||||||
id: UUID!
|
|
||||||
name: String!
|
|
||||||
allowImpersonation: Boolean!
|
|
||||||
logo: String
|
|
||||||
totalUsers: Float!
|
|
||||||
activationStatus: WorkspaceActivationStatus!
|
|
||||||
createdAt: DateTime!
|
|
||||||
workspaceUrls: WorkspaceUrls!
|
|
||||||
users: [UserInfo!]!
|
|
||||||
featureFlags: [FeatureFlag!]!
|
|
||||||
}
|
|
||||||
|
|
||||||
type UserLookup {
|
|
||||||
user: UserInfo!
|
|
||||||
workspaces: [WorkspaceInfo!]!
|
|
||||||
}
|
|
||||||
|
|
||||||
type AdminPanelRecentUser {
|
|
||||||
id: UUID!
|
|
||||||
email: String!
|
|
||||||
firstName: String
|
|
||||||
lastName: String
|
|
||||||
createdAt: DateTime!
|
|
||||||
workspaceName: String
|
|
||||||
workspaceId: UUID
|
|
||||||
}
|
|
||||||
|
|
||||||
type AdminPanelTopWorkspace {
|
|
||||||
id: UUID!
|
|
||||||
name: String!
|
|
||||||
totalUsers: Int!
|
|
||||||
subdomain: String!
|
|
||||||
}
|
|
||||||
|
|
||||||
type AdminWorkspaceChatThread {
|
|
||||||
id: UUID!
|
|
||||||
title: String
|
|
||||||
totalInputTokens: Int!
|
|
||||||
totalOutputTokens: Int!
|
|
||||||
conversationSize: Int!
|
|
||||||
createdAt: DateTime!
|
|
||||||
updatedAt: DateTime!
|
|
||||||
}
|
|
||||||
|
|
||||||
type AdminChatMessagePart {
|
|
||||||
type: String!
|
|
||||||
textContent: String
|
|
||||||
toolName: String
|
|
||||||
}
|
|
||||||
|
|
||||||
type AdminChatMessage {
|
|
||||||
id: UUID!
|
|
||||||
role: AgentMessageRole!
|
|
||||||
parts: [AdminChatMessagePart!]!
|
|
||||||
createdAt: DateTime!
|
|
||||||
}
|
|
||||||
|
|
||||||
"""Role of a message in a chat thread"""
|
|
||||||
enum AgentMessageRole {
|
|
||||||
SYSTEM
|
|
||||||
USER
|
|
||||||
ASSISTANT
|
|
||||||
}
|
|
||||||
|
|
||||||
type AdminChatThreadMessages {
|
|
||||||
thread: AdminWorkspaceChatThread!
|
|
||||||
messages: [AdminChatMessage!]!
|
|
||||||
}
|
|
||||||
|
|
||||||
type BillingTrialPeriod {
|
type BillingTrialPeriod {
|
||||||
duration: Float!
|
duration: Float!
|
||||||
isCreditCardRequired: Boolean!
|
isCreditCardRequired: Boolean!
|
||||||
|
|
@ -1769,32 +1691,6 @@ enum ModelFamily {
|
||||||
GROK
|
GROK
|
||||||
}
|
}
|
||||||
|
|
||||||
type AdminAiModelConfig {
|
|
||||||
modelId: String!
|
|
||||||
label: String!
|
|
||||||
modelFamily: ModelFamily
|
|
||||||
modelFamilyLabel: String
|
|
||||||
sdkPackage: String
|
|
||||||
isAvailable: Boolean!
|
|
||||||
isAdminEnabled: Boolean!
|
|
||||||
isDeprecated: Boolean
|
|
||||||
isRecommended: Boolean
|
|
||||||
contextWindowTokens: Float
|
|
||||||
maxOutputTokens: Float
|
|
||||||
inputCostPerMillionTokens: Float
|
|
||||||
outputCostPerMillionTokens: Float
|
|
||||||
providerName: String
|
|
||||||
providerLabel: String
|
|
||||||
name: String
|
|
||||||
dataResidency: String
|
|
||||||
}
|
|
||||||
|
|
||||||
type AdminAiModels {
|
|
||||||
models: [AdminAiModelConfig!]!
|
|
||||||
defaultSmartModelId: String
|
|
||||||
defaultFastModelId: String
|
|
||||||
}
|
|
||||||
|
|
||||||
type Billing {
|
type Billing {
|
||||||
isBillingEnabled: Boolean!
|
isBillingEnabled: Boolean!
|
||||||
billingUrl: String
|
billingUrl: String
|
||||||
|
|
@ -1886,228 +1782,6 @@ type UsageBreakdownItem {
|
||||||
creditsUsed: Float!
|
creditsUsed: Float!
|
||||||
}
|
}
|
||||||
|
|
||||||
type ConfigVariable {
|
|
||||||
name: String!
|
|
||||||
description: String!
|
|
||||||
value: JSON
|
|
||||||
isSensitive: Boolean!
|
|
||||||
source: ConfigSource!
|
|
||||||
isEnvOnly: Boolean!
|
|
||||||
type: ConfigVariableType!
|
|
||||||
options: JSON
|
|
||||||
}
|
|
||||||
|
|
||||||
enum ConfigSource {
|
|
||||||
ENVIRONMENT
|
|
||||||
DATABASE
|
|
||||||
DEFAULT
|
|
||||||
}
|
|
||||||
|
|
||||||
enum ConfigVariableType {
|
|
||||||
BOOLEAN
|
|
||||||
NUMBER
|
|
||||||
ARRAY
|
|
||||||
STRING
|
|
||||||
ENUM
|
|
||||||
JSON
|
|
||||||
}
|
|
||||||
|
|
||||||
type ConfigVariablesGroupData {
|
|
||||||
variables: [ConfigVariable!]!
|
|
||||||
name: ConfigVariablesGroup!
|
|
||||||
description: String!
|
|
||||||
isHiddenOnLoad: Boolean!
|
|
||||||
}
|
|
||||||
|
|
||||||
enum ConfigVariablesGroup {
|
|
||||||
SERVER_CONFIG
|
|
||||||
RATE_LIMITING
|
|
||||||
STORAGE_CONFIG
|
|
||||||
GOOGLE_AUTH
|
|
||||||
MICROSOFT_AUTH
|
|
||||||
EMAIL_SETTINGS
|
|
||||||
LOGGING
|
|
||||||
ADVANCED_SETTINGS
|
|
||||||
BILLING_CONFIG
|
|
||||||
CAPTCHA_CONFIG
|
|
||||||
CLOUDFLARE_CONFIG
|
|
||||||
LLM
|
|
||||||
LOGIC_FUNCTION_CONFIG
|
|
||||||
CODE_INTERPRETER_CONFIG
|
|
||||||
SSL
|
|
||||||
SUPPORT_CHAT_CONFIG
|
|
||||||
ANALYTICS_CONFIG
|
|
||||||
TOKENS_DURATION
|
|
||||||
AWS_SES_SETTINGS
|
|
||||||
}
|
|
||||||
|
|
||||||
type ConfigVariables {
|
|
||||||
groups: [ConfigVariablesGroupData!]!
|
|
||||||
}
|
|
||||||
|
|
||||||
type JobOperationResult {
|
|
||||||
jobId: String!
|
|
||||||
success: Boolean!
|
|
||||||
error: String
|
|
||||||
}
|
|
||||||
|
|
||||||
type DeleteJobsResponse {
|
|
||||||
deletedCount: Int!
|
|
||||||
results: [JobOperationResult!]!
|
|
||||||
}
|
|
||||||
|
|
||||||
type QueueJob {
|
|
||||||
id: String!
|
|
||||||
name: String!
|
|
||||||
data: JSON
|
|
||||||
state: JobState!
|
|
||||||
timestamp: Float
|
|
||||||
failedReason: String
|
|
||||||
processedOn: Float
|
|
||||||
finishedOn: Float
|
|
||||||
attemptsMade: Float!
|
|
||||||
returnValue: JSON
|
|
||||||
logs: [String!]
|
|
||||||
stackTrace: [String!]
|
|
||||||
}
|
|
||||||
|
|
||||||
"""Job state in the queue"""
|
|
||||||
enum JobState {
|
|
||||||
COMPLETED
|
|
||||||
FAILED
|
|
||||||
ACTIVE
|
|
||||||
WAITING
|
|
||||||
DELAYED
|
|
||||||
PRIORITIZED
|
|
||||||
WAITING_CHILDREN
|
|
||||||
}
|
|
||||||
|
|
||||||
type QueueRetentionConfig {
|
|
||||||
completedMaxAge: Float!
|
|
||||||
completedMaxCount: Float!
|
|
||||||
failedMaxAge: Float!
|
|
||||||
failedMaxCount: Float!
|
|
||||||
}
|
|
||||||
|
|
||||||
type QueueJobsResponse {
|
|
||||||
jobs: [QueueJob!]!
|
|
||||||
count: Float!
|
|
||||||
totalCount: Float!
|
|
||||||
hasMore: Boolean!
|
|
||||||
retentionConfig: QueueRetentionConfig!
|
|
||||||
}
|
|
||||||
|
|
||||||
type RetryJobsResponse {
|
|
||||||
retriedCount: Int!
|
|
||||||
results: [JobOperationResult!]!
|
|
||||||
}
|
|
||||||
|
|
||||||
type SystemHealthService {
|
|
||||||
id: HealthIndicatorId!
|
|
||||||
label: String!
|
|
||||||
status: AdminPanelHealthServiceStatus!
|
|
||||||
}
|
|
||||||
|
|
||||||
enum HealthIndicatorId {
|
|
||||||
database
|
|
||||||
redis
|
|
||||||
worker
|
|
||||||
connectedAccount
|
|
||||||
app
|
|
||||||
}
|
|
||||||
|
|
||||||
enum AdminPanelHealthServiceStatus {
|
|
||||||
OPERATIONAL
|
|
||||||
OUTAGE
|
|
||||||
}
|
|
||||||
|
|
||||||
type SystemHealth {
|
|
||||||
services: [SystemHealthService!]!
|
|
||||||
}
|
|
||||||
|
|
||||||
type VersionInfo {
|
|
||||||
currentVersion: String
|
|
||||||
latestVersion: String!
|
|
||||||
}
|
|
||||||
|
|
||||||
type AdminPanelWorkerQueueHealth {
|
|
||||||
id: String!
|
|
||||||
queueName: String!
|
|
||||||
status: AdminPanelHealthServiceStatus!
|
|
||||||
}
|
|
||||||
|
|
||||||
type AdminPanelHealthServiceData {
|
|
||||||
id: HealthIndicatorId!
|
|
||||||
label: String!
|
|
||||||
description: String!
|
|
||||||
status: AdminPanelHealthServiceStatus!
|
|
||||||
errorMessage: String
|
|
||||||
details: String
|
|
||||||
queues: [AdminPanelWorkerQueueHealth!]
|
|
||||||
}
|
|
||||||
|
|
||||||
type MaintenanceMode {
|
|
||||||
startAt: DateTime!
|
|
||||||
endAt: DateTime!
|
|
||||||
link: String
|
|
||||||
}
|
|
||||||
|
|
||||||
type ModelsDevModelSuggestion {
|
|
||||||
modelId: String!
|
|
||||||
name: String!
|
|
||||||
inputCostPerMillionTokens: Float!
|
|
||||||
outputCostPerMillionTokens: Float!
|
|
||||||
cachedInputCostPerMillionTokens: Float
|
|
||||||
cacheCreationCostPerMillionTokens: Float
|
|
||||||
contextWindowTokens: Float!
|
|
||||||
maxOutputTokens: Float!
|
|
||||||
modalities: [String!]!
|
|
||||||
supportsReasoning: Boolean!
|
|
||||||
}
|
|
||||||
|
|
||||||
type ModelsDevProviderSuggestion {
|
|
||||||
id: String!
|
|
||||||
modelCount: Float!
|
|
||||||
npm: String!
|
|
||||||
}
|
|
||||||
|
|
||||||
type QueueMetricsDataPoint {
|
|
||||||
x: Float!
|
|
||||||
y: Float!
|
|
||||||
}
|
|
||||||
|
|
||||||
type QueueMetricsSeries {
|
|
||||||
id: String!
|
|
||||||
data: [QueueMetricsDataPoint!]!
|
|
||||||
}
|
|
||||||
|
|
||||||
type WorkerQueueMetrics {
|
|
||||||
failed: Float!
|
|
||||||
completed: Float!
|
|
||||||
waiting: Float!
|
|
||||||
active: Float!
|
|
||||||
delayed: Float!
|
|
||||||
failureRate: Float!
|
|
||||||
failedData: [Float!]
|
|
||||||
completedData: [Float!]
|
|
||||||
}
|
|
||||||
|
|
||||||
type QueueMetricsData {
|
|
||||||
queueName: String!
|
|
||||||
workers: Float!
|
|
||||||
timeRange: QueueMetricsTimeRange!
|
|
||||||
details: WorkerQueueMetrics
|
|
||||||
data: [QueueMetricsSeries!]!
|
|
||||||
}
|
|
||||||
|
|
||||||
enum QueueMetricsTimeRange {
|
|
||||||
SevenDays
|
|
||||||
OneDay
|
|
||||||
TwelveHours
|
|
||||||
FourHours
|
|
||||||
OneHour
|
|
||||||
}
|
|
||||||
|
|
||||||
type VersionDistributionEntry {
|
type VersionDistributionEntry {
|
||||||
version: String!
|
version: String!
|
||||||
count: Int!
|
count: Int!
|
||||||
|
|
@ -3356,27 +3030,6 @@ type Query {
|
||||||
getConnectedImapSmtpCaldavAccount(id: UUID!): ConnectedImapSmtpCaldavAccount!
|
getConnectedImapSmtpCaldavAccount(id: UUID!): ConnectedImapSmtpCaldavAccount!
|
||||||
getAutoCompleteAddress(address: String!, token: String!, country: String, isFieldCity: Boolean): [AutocompleteResult!]!
|
getAutoCompleteAddress(address: String!, token: String!, country: String, isFieldCity: Boolean): [AutocompleteResult!]!
|
||||||
getAddressDetails(placeId: String!, token: String!): PlaceDetailsResult!
|
getAddressDetails(placeId: String!, token: String!): PlaceDetailsResult!
|
||||||
userLookupAdminPanel(userIdentifier: String!): UserLookup!
|
|
||||||
adminPanelRecentUsers(searchTerm: String = ""): [AdminPanelRecentUser!]!
|
|
||||||
adminPanelTopWorkspaces(searchTerm: String = ""): [AdminPanelTopWorkspace!]!
|
|
||||||
getConfigVariablesGrouped: ConfigVariables!
|
|
||||||
getSystemHealthStatus: SystemHealth!
|
|
||||||
getIndicatorHealthStatus(indicatorId: HealthIndicatorId!): AdminPanelHealthServiceData!
|
|
||||||
getQueueMetrics(queueName: String!, timeRange: QueueMetricsTimeRange = OneHour): QueueMetricsData!
|
|
||||||
versionInfo: VersionInfo!
|
|
||||||
getAdminAiModels: AdminAiModels!
|
|
||||||
getDatabaseConfigVariable(key: String!): ConfigVariable!
|
|
||||||
getQueueJobs(queueName: String!, state: JobState!, limit: Int = 50, offset: Int = 0): QueueJobsResponse!
|
|
||||||
findAllApplicationRegistrations: [ApplicationRegistration!]!
|
|
||||||
getAiProviders: JSON!
|
|
||||||
getModelsDevProviders: [ModelsDevProviderSuggestion!]!
|
|
||||||
getModelsDevSuggestions(providerType: String!): [ModelsDevModelSuggestion!]!
|
|
||||||
getAdminAiUsageByWorkspace(periodStart: DateTime, periodEnd: DateTime): [UsageBreakdownItem!]!
|
|
||||||
getMaintenanceMode: MaintenanceMode
|
|
||||||
workspaceLookupAdminPanel(workspaceId: UUID!): UserLookup!
|
|
||||||
getAdminWorkspaceChatThreads(workspaceId: UUID!): [AdminWorkspaceChatThread!]!
|
|
||||||
getAdminChatThreadMessages(threadId: UUID!): AdminChatThreadMessages!
|
|
||||||
findOneAdminApplicationRegistration(id: String!): ApplicationRegistration!
|
|
||||||
getUsageAnalytics(input: UsageAnalyticsInput): UsageAnalytics!
|
getUsageAnalytics(input: UsageAnalyticsInput): UsageAnalytics!
|
||||||
getPostgresCredentials: PostgresCredentials
|
getPostgresCredentials: PostgresCredentials
|
||||||
findManyPublicDomains: [PublicDomain!]!
|
findManyPublicDomains: [PublicDomain!]!
|
||||||
|
|
@ -3691,23 +3344,6 @@ type Mutation {
|
||||||
startChannelSync(connectedAccountId: UUID!): ChannelSyncSuccess!
|
startChannelSync(connectedAccountId: UUID!): ChannelSyncSuccess!
|
||||||
saveImapSmtpCaldavAccount(accountOwnerId: UUID!, handle: String!, connectionParameters: EmailAccountConnectionParameters!, id: UUID): ImapSmtpCaldavConnectionSuccess!
|
saveImapSmtpCaldavAccount(accountOwnerId: UUID!, handle: String!, connectionParameters: EmailAccountConnectionParameters!, id: UUID): ImapSmtpCaldavConnectionSuccess!
|
||||||
updateLabPublicFeatureFlag(input: UpdateLabPublicFeatureFlagInput!): FeatureFlag!
|
updateLabPublicFeatureFlag(input: UpdateLabPublicFeatureFlagInput!): FeatureFlag!
|
||||||
updateWorkspaceFeatureFlag(workspaceId: UUID!, featureFlag: String!, value: Boolean!): Boolean!
|
|
||||||
setAdminAiModelEnabled(modelId: String!, enabled: Boolean!): Boolean!
|
|
||||||
setAdminAiModelsEnabled(modelIds: [String!]!, enabled: Boolean!): Boolean!
|
|
||||||
setAdminAiModelRecommended(modelId: String!, recommended: Boolean!): Boolean!
|
|
||||||
setAdminAiModelsRecommended(modelIds: [String!]!, recommended: Boolean!): Boolean!
|
|
||||||
setAdminDefaultAiModel(role: AiModelRole!, modelId: String!): Boolean!
|
|
||||||
createDatabaseConfigVariable(key: String!, value: JSON!): Boolean!
|
|
||||||
updateDatabaseConfigVariable(key: String!, value: JSON!): Boolean!
|
|
||||||
deleteDatabaseConfigVariable(key: String!): Boolean!
|
|
||||||
retryJobs(queueName: String!, jobIds: [String!]!): RetryJobsResponse!
|
|
||||||
deleteJobs(queueName: String!, jobIds: [String!]!): DeleteJobsResponse!
|
|
||||||
addAiProvider(providerName: String!, providerConfig: JSON!): Boolean!
|
|
||||||
removeAiProvider(providerName: String!): Boolean!
|
|
||||||
addModelToProvider(providerName: String!, modelConfig: JSON!): Boolean!
|
|
||||||
removeModelFromProvider(providerName: String!, modelName: String!): Boolean!
|
|
||||||
setMaintenanceMode(startAt: DateTime!, endAt: DateTime!, link: String): Boolean!
|
|
||||||
clearMaintenanceMode: Boolean!
|
|
||||||
enablePostgresProxy: PostgresCredentials!
|
enablePostgresProxy: PostgresCredentials!
|
||||||
disablePostgresProxy: PostgresCredentials!
|
disablePostgresProxy: PostgresCredentials!
|
||||||
createPublicDomain(domain: String!): PublicDomain!
|
createPublicDomain(domain: String!): PublicDomain!
|
||||||
|
|
@ -4708,11 +4344,6 @@ input UpdateLabPublicFeatureFlagInput {
|
||||||
value: Boolean!
|
value: Boolean!
|
||||||
}
|
}
|
||||||
|
|
||||||
enum AiModelRole {
|
|
||||||
FAST
|
|
||||||
SMART
|
|
||||||
}
|
|
||||||
|
|
||||||
input CreateOneAppTokenInput {
|
input CreateOneAppTokenInput {
|
||||||
"""The record to create"""
|
"""The record to create"""
|
||||||
appToken: CreateAppTokenInput!
|
appToken: CreateAppTokenInput!
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -9,6 +9,7 @@
|
||||||
"node_modules",
|
"node_modules",
|
||||||
"src/generated",
|
"src/generated",
|
||||||
"src/generated-metadata",
|
"src/generated-metadata",
|
||||||
|
"src/generated-admin",
|
||||||
"src/locales/generated",
|
"src/locales/generated",
|
||||||
"src/testing/mock-data",
|
"src/testing/mock-data",
|
||||||
"**/__mocks__/**",
|
"**/__mocks__/**",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
src/generated
|
src/generated
|
||||||
src/generated-metadata
|
src/generated-metadata
|
||||||
|
src/generated-admin
|
||||||
src/locales/generated
|
src/locales/generated
|
||||||
src/testing/mock-data/generated
|
src/testing/mock-data/generated
|
||||||
27
packages/twenty-front/codegen-admin.cjs
Normal file
27
packages/twenty-front/codegen-admin.cjs
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
module.exports = {
|
||||||
|
schema:
|
||||||
|
(process.env.REACT_APP_SERVER_BASE_URL ?? 'http://localhost:3000') +
|
||||||
|
'/admin-panel',
|
||||||
|
documents: [
|
||||||
|
'./src/modules/settings/admin-panel/**/graphql/**/*.{ts,tsx}',
|
||||||
|
'./src/modules/settings/application-registrations/graphql/fragments/*.{ts,tsx}',
|
||||||
|
|
||||||
|
'!./src/**/*.test.{ts,tsx}',
|
||||||
|
'!./src/**/*.stories.{ts,tsx}',
|
||||||
|
'!./src/**/__mocks__/*.ts',
|
||||||
|
],
|
||||||
|
overwrite: true,
|
||||||
|
generates: {
|
||||||
|
'./src/generated-admin/graphql.ts': {
|
||||||
|
plugins: ['typescript', 'typescript-operations', 'typed-document-node'],
|
||||||
|
config: {
|
||||||
|
skipTypename: false,
|
||||||
|
scalars: {
|
||||||
|
DateTime: 'string',
|
||||||
|
UUID: 'string',
|
||||||
|
},
|
||||||
|
namingConvention: { enumValues: 'keep' },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
@ -16,6 +16,7 @@ module.exports = {
|
||||||
'./src/modules/workspace-invitation/graphql/**/*.{ts,tsx}',
|
'./src/modules/workspace-invitation/graphql/**/*.{ts,tsx}',
|
||||||
|
|
||||||
'./src/modules/settings/**/graphql/**/*.{ts,tsx}',
|
'./src/modules/settings/**/graphql/**/*.{ts,tsx}',
|
||||||
|
'!./src/modules/settings/admin-panel/**/graphql/**/*.{ts,tsx}',
|
||||||
'./src/modules/logic-functions/graphql/**/*.{ts,tsx}',
|
'./src/modules/logic-functions/graphql/**/*.{ts,tsx}',
|
||||||
|
|
||||||
'./src/modules/databases/graphql/**/*.{ts,tsx}',
|
'./src/modules/databases/graphql/**/*.{ts,tsx}',
|
||||||
|
|
|
||||||
|
|
@ -275,6 +275,9 @@
|
||||||
},
|
},
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"config": "codegen-metadata.cjs"
|
"config": "codegen-metadata.cjs"
|
||||||
|
},
|
||||||
|
"admin": {
|
||||||
|
"config": "codegen-admin.cjs"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
983
packages/twenty-front/src/generated-admin/graphql.ts
Normal file
983
packages/twenty-front/src/generated-admin/graphql.ts
Normal file
|
|
@ -0,0 +1,983 @@
|
||||||
|
import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
|
||||||
|
export type Maybe<T> = T | null;
|
||||||
|
export type InputMaybe<T> = Maybe<T>;
|
||||||
|
export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
|
||||||
|
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
|
||||||
|
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
|
||||||
|
/** All built-in and custom scalars, mapped to their actual values */
|
||||||
|
export type Scalars = {
|
||||||
|
ID: string;
|
||||||
|
String: string;
|
||||||
|
Boolean: boolean;
|
||||||
|
Int: number;
|
||||||
|
Float: number;
|
||||||
|
DateTime: string;
|
||||||
|
JSON: any;
|
||||||
|
UUID: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AdminAiModelConfig = {
|
||||||
|
__typename?: 'AdminAiModelConfig';
|
||||||
|
contextWindowTokens?: Maybe<Scalars['Float']>;
|
||||||
|
dataResidency?: Maybe<Scalars['String']>;
|
||||||
|
inputCostPerMillionTokens?: Maybe<Scalars['Float']>;
|
||||||
|
isAdminEnabled: Scalars['Boolean'];
|
||||||
|
isAvailable: Scalars['Boolean'];
|
||||||
|
isDeprecated?: Maybe<Scalars['Boolean']>;
|
||||||
|
isRecommended?: Maybe<Scalars['Boolean']>;
|
||||||
|
label: Scalars['String'];
|
||||||
|
maxOutputTokens?: Maybe<Scalars['Float']>;
|
||||||
|
modelFamily?: Maybe<ModelFamily>;
|
||||||
|
modelFamilyLabel?: Maybe<Scalars['String']>;
|
||||||
|
modelId: Scalars['String'];
|
||||||
|
name?: Maybe<Scalars['String']>;
|
||||||
|
outputCostPerMillionTokens?: Maybe<Scalars['Float']>;
|
||||||
|
providerLabel?: Maybe<Scalars['String']>;
|
||||||
|
providerName?: Maybe<Scalars['String']>;
|
||||||
|
sdkPackage?: Maybe<Scalars['String']>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AdminAiModels = {
|
||||||
|
__typename?: 'AdminAiModels';
|
||||||
|
defaultFastModelId?: Maybe<Scalars['String']>;
|
||||||
|
defaultSmartModelId?: Maybe<Scalars['String']>;
|
||||||
|
models: Array<AdminAiModelConfig>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AdminChatMessage = {
|
||||||
|
__typename?: 'AdminChatMessage';
|
||||||
|
createdAt: Scalars['DateTime'];
|
||||||
|
id: Scalars['UUID'];
|
||||||
|
parts: Array<AdminChatMessagePart>;
|
||||||
|
role: AgentMessageRole;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AdminChatMessagePart = {
|
||||||
|
__typename?: 'AdminChatMessagePart';
|
||||||
|
textContent?: Maybe<Scalars['String']>;
|
||||||
|
toolName?: Maybe<Scalars['String']>;
|
||||||
|
type: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AdminChatThreadMessages = {
|
||||||
|
__typename?: 'AdminChatThreadMessages';
|
||||||
|
messages: Array<AdminChatMessage>;
|
||||||
|
thread: AdminWorkspaceChatThread;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AdminPanelHealthServiceData = {
|
||||||
|
__typename?: 'AdminPanelHealthServiceData';
|
||||||
|
description: Scalars['String'];
|
||||||
|
details?: Maybe<Scalars['String']>;
|
||||||
|
errorMessage?: Maybe<Scalars['String']>;
|
||||||
|
id: HealthIndicatorId;
|
||||||
|
label: Scalars['String'];
|
||||||
|
queues?: Maybe<Array<AdminPanelWorkerQueueHealth>>;
|
||||||
|
status: AdminPanelHealthServiceStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
export enum AdminPanelHealthServiceStatus {
|
||||||
|
OPERATIONAL = 'OPERATIONAL',
|
||||||
|
OUTAGE = 'OUTAGE'
|
||||||
|
}
|
||||||
|
|
||||||
|
export type AdminPanelRecentUser = {
|
||||||
|
__typename?: 'AdminPanelRecentUser';
|
||||||
|
createdAt: Scalars['DateTime'];
|
||||||
|
email: Scalars['String'];
|
||||||
|
firstName?: Maybe<Scalars['String']>;
|
||||||
|
id: Scalars['UUID'];
|
||||||
|
lastName?: Maybe<Scalars['String']>;
|
||||||
|
workspaceId?: Maybe<Scalars['UUID']>;
|
||||||
|
workspaceName?: Maybe<Scalars['String']>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AdminPanelTopWorkspace = {
|
||||||
|
__typename?: 'AdminPanelTopWorkspace';
|
||||||
|
id: Scalars['UUID'];
|
||||||
|
name: Scalars['String'];
|
||||||
|
subdomain: Scalars['String'];
|
||||||
|
totalUsers: Scalars['Int'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AdminPanelWorkerQueueHealth = {
|
||||||
|
__typename?: 'AdminPanelWorkerQueueHealth';
|
||||||
|
id: Scalars['String'];
|
||||||
|
queueName: Scalars['String'];
|
||||||
|
status: AdminPanelHealthServiceStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AdminWorkspaceChatThread = {
|
||||||
|
__typename?: 'AdminWorkspaceChatThread';
|
||||||
|
conversationSize: Scalars['Int'];
|
||||||
|
createdAt: Scalars['DateTime'];
|
||||||
|
id: Scalars['UUID'];
|
||||||
|
title?: Maybe<Scalars['String']>;
|
||||||
|
totalInputTokens: Scalars['Int'];
|
||||||
|
totalOutputTokens: Scalars['Int'];
|
||||||
|
updatedAt: Scalars['DateTime'];
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Role of a message in a chat thread */
|
||||||
|
export enum AgentMessageRole {
|
||||||
|
ASSISTANT = 'ASSISTANT',
|
||||||
|
SYSTEM = 'SYSTEM',
|
||||||
|
USER = 'USER'
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum AiModelRole {
|
||||||
|
FAST = 'FAST',
|
||||||
|
SMART = 'SMART'
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ApplicationRegistration = {
|
||||||
|
__typename?: 'ApplicationRegistration';
|
||||||
|
createdAt: Scalars['DateTime'];
|
||||||
|
id: Scalars['UUID'];
|
||||||
|
isFeatured: Scalars['Boolean'];
|
||||||
|
isListed: Scalars['Boolean'];
|
||||||
|
latestAvailableVersion?: Maybe<Scalars['String']>;
|
||||||
|
logoUrl?: Maybe<Scalars['String']>;
|
||||||
|
name: Scalars['String'];
|
||||||
|
oAuthClientId: Scalars['String'];
|
||||||
|
oAuthRedirectUris: Array<Scalars['String']>;
|
||||||
|
oAuthScopes: Array<Scalars['String']>;
|
||||||
|
ownerWorkspaceId?: Maybe<Scalars['UUID']>;
|
||||||
|
sourcePackage?: Maybe<Scalars['String']>;
|
||||||
|
sourceType: ApplicationRegistrationSourceType;
|
||||||
|
universalIdentifier: Scalars['String'];
|
||||||
|
updatedAt: Scalars['DateTime'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export enum ApplicationRegistrationSourceType {
|
||||||
|
LOCAL = 'LOCAL',
|
||||||
|
NPM = 'NPM',
|
||||||
|
OAUTH_ONLY = 'OAUTH_ONLY',
|
||||||
|
TARBALL = 'TARBALL'
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum ConfigSource {
|
||||||
|
DATABASE = 'DATABASE',
|
||||||
|
DEFAULT = 'DEFAULT',
|
||||||
|
ENVIRONMENT = 'ENVIRONMENT'
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ConfigVariable = {
|
||||||
|
__typename?: 'ConfigVariable';
|
||||||
|
description: Scalars['String'];
|
||||||
|
isEnvOnly: Scalars['Boolean'];
|
||||||
|
isSensitive: Scalars['Boolean'];
|
||||||
|
name: Scalars['String'];
|
||||||
|
options?: Maybe<Scalars['JSON']>;
|
||||||
|
source: ConfigSource;
|
||||||
|
type: ConfigVariableType;
|
||||||
|
value?: Maybe<Scalars['JSON']>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export enum ConfigVariableType {
|
||||||
|
ARRAY = 'ARRAY',
|
||||||
|
BOOLEAN = 'BOOLEAN',
|
||||||
|
ENUM = 'ENUM',
|
||||||
|
JSON = 'JSON',
|
||||||
|
NUMBER = 'NUMBER',
|
||||||
|
STRING = 'STRING'
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ConfigVariables = {
|
||||||
|
__typename?: 'ConfigVariables';
|
||||||
|
groups: Array<ConfigVariablesGroupData>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export enum ConfigVariablesGroup {
|
||||||
|
ADVANCED_SETTINGS = 'ADVANCED_SETTINGS',
|
||||||
|
ANALYTICS_CONFIG = 'ANALYTICS_CONFIG',
|
||||||
|
AWS_SES_SETTINGS = 'AWS_SES_SETTINGS',
|
||||||
|
BILLING_CONFIG = 'BILLING_CONFIG',
|
||||||
|
CAPTCHA_CONFIG = 'CAPTCHA_CONFIG',
|
||||||
|
CLOUDFLARE_CONFIG = 'CLOUDFLARE_CONFIG',
|
||||||
|
CODE_INTERPRETER_CONFIG = 'CODE_INTERPRETER_CONFIG',
|
||||||
|
EMAIL_SETTINGS = 'EMAIL_SETTINGS',
|
||||||
|
GOOGLE_AUTH = 'GOOGLE_AUTH',
|
||||||
|
LLM = 'LLM',
|
||||||
|
LOGGING = 'LOGGING',
|
||||||
|
LOGIC_FUNCTION_CONFIG = 'LOGIC_FUNCTION_CONFIG',
|
||||||
|
MICROSOFT_AUTH = 'MICROSOFT_AUTH',
|
||||||
|
RATE_LIMITING = 'RATE_LIMITING',
|
||||||
|
SERVER_CONFIG = 'SERVER_CONFIG',
|
||||||
|
SSL = 'SSL',
|
||||||
|
STORAGE_CONFIG = 'STORAGE_CONFIG',
|
||||||
|
SUPPORT_CHAT_CONFIG = 'SUPPORT_CHAT_CONFIG',
|
||||||
|
TOKENS_DURATION = 'TOKENS_DURATION'
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ConfigVariablesGroupData = {
|
||||||
|
__typename?: 'ConfigVariablesGroupData';
|
||||||
|
description: Scalars['String'];
|
||||||
|
isHiddenOnLoad: Scalars['Boolean'];
|
||||||
|
name: ConfigVariablesGroup;
|
||||||
|
variables: Array<ConfigVariable>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type DeleteJobsResponse = {
|
||||||
|
__typename?: 'DeleteJobsResponse';
|
||||||
|
deletedCount: Scalars['Int'];
|
||||||
|
results: Array<JobOperationResult>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type FeatureFlag = {
|
||||||
|
__typename?: 'FeatureFlag';
|
||||||
|
key: FeatureFlagKey;
|
||||||
|
value: Scalars['Boolean'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export enum FeatureFlagKey {
|
||||||
|
IS_AI_ENABLED = 'IS_AI_ENABLED',
|
||||||
|
IS_COMMAND_MENU_ITEM_ENABLED = 'IS_COMMAND_MENU_ITEM_ENABLED',
|
||||||
|
IS_CONNECTED_ACCOUNT_MIGRATED = 'IS_CONNECTED_ACCOUNT_MIGRATED',
|
||||||
|
IS_DATASOURCE_MIGRATED = 'IS_DATASOURCE_MIGRATED',
|
||||||
|
IS_EMAILING_DOMAIN_ENABLED = 'IS_EMAILING_DOMAIN_ENABLED',
|
||||||
|
IS_JSON_FILTER_ENABLED = 'IS_JSON_FILTER_ENABLED',
|
||||||
|
IS_JUNCTION_RELATIONS_ENABLED = 'IS_JUNCTION_RELATIONS_ENABLED',
|
||||||
|
IS_MARKETPLACE_SETTING_TAB_VISIBLE = 'IS_MARKETPLACE_SETTING_TAB_VISIBLE',
|
||||||
|
IS_PUBLIC_DOMAIN_ENABLED = 'IS_PUBLIC_DOMAIN_ENABLED',
|
||||||
|
IS_RECORD_PAGE_LAYOUT_EDITING_ENABLED = 'IS_RECORD_PAGE_LAYOUT_EDITING_ENABLED',
|
||||||
|
IS_RECORD_PAGE_LAYOUT_GLOBAL_EDITION_ENABLED = 'IS_RECORD_PAGE_LAYOUT_GLOBAL_EDITION_ENABLED',
|
||||||
|
IS_RICH_TEXT_V1_MIGRATED = 'IS_RICH_TEXT_V1_MIGRATED',
|
||||||
|
IS_UNIQUE_INDEXES_ENABLED = 'IS_UNIQUE_INDEXES_ENABLED'
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum HealthIndicatorId {
|
||||||
|
app = 'app',
|
||||||
|
connectedAccount = 'connectedAccount',
|
||||||
|
database = 'database',
|
||||||
|
redis = 'redis',
|
||||||
|
worker = 'worker'
|
||||||
|
}
|
||||||
|
|
||||||
|
export type JobOperationResult = {
|
||||||
|
__typename?: 'JobOperationResult';
|
||||||
|
error?: Maybe<Scalars['String']>;
|
||||||
|
jobId: Scalars['String'];
|
||||||
|
success: Scalars['Boolean'];
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Job state in the queue */
|
||||||
|
export enum JobState {
|
||||||
|
ACTIVE = 'ACTIVE',
|
||||||
|
COMPLETED = 'COMPLETED',
|
||||||
|
DELAYED = 'DELAYED',
|
||||||
|
FAILED = 'FAILED',
|
||||||
|
PRIORITIZED = 'PRIORITIZED',
|
||||||
|
WAITING = 'WAITING',
|
||||||
|
WAITING_CHILDREN = 'WAITING_CHILDREN'
|
||||||
|
}
|
||||||
|
|
||||||
|
export type MaintenanceMode = {
|
||||||
|
__typename?: 'MaintenanceMode';
|
||||||
|
endAt: Scalars['DateTime'];
|
||||||
|
link?: Maybe<Scalars['String']>;
|
||||||
|
startAt: Scalars['DateTime'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export enum ModelFamily {
|
||||||
|
CLAUDE = 'CLAUDE',
|
||||||
|
GEMINI = 'GEMINI',
|
||||||
|
GPT = 'GPT',
|
||||||
|
GROK = 'GROK',
|
||||||
|
MISTRAL = 'MISTRAL'
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ModelsDevModelSuggestion = {
|
||||||
|
__typename?: 'ModelsDevModelSuggestion';
|
||||||
|
cacheCreationCostPerMillionTokens?: Maybe<Scalars['Float']>;
|
||||||
|
cachedInputCostPerMillionTokens?: Maybe<Scalars['Float']>;
|
||||||
|
contextWindowTokens: Scalars['Float'];
|
||||||
|
inputCostPerMillionTokens: Scalars['Float'];
|
||||||
|
maxOutputTokens: Scalars['Float'];
|
||||||
|
modalities: Array<Scalars['String']>;
|
||||||
|
modelId: Scalars['String'];
|
||||||
|
name: Scalars['String'];
|
||||||
|
outputCostPerMillionTokens: Scalars['Float'];
|
||||||
|
supportsReasoning: Scalars['Boolean'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type ModelsDevProviderSuggestion = {
|
||||||
|
__typename?: 'ModelsDevProviderSuggestion';
|
||||||
|
id: Scalars['String'];
|
||||||
|
modelCount: Scalars['Float'];
|
||||||
|
npm: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type Mutation = {
|
||||||
|
__typename?: 'Mutation';
|
||||||
|
addAiProvider: Scalars['Boolean'];
|
||||||
|
addModelToProvider: Scalars['Boolean'];
|
||||||
|
clearMaintenanceMode: Scalars['Boolean'];
|
||||||
|
createDatabaseConfigVariable: Scalars['Boolean'];
|
||||||
|
deleteDatabaseConfigVariable: Scalars['Boolean'];
|
||||||
|
deleteJobs: DeleteJobsResponse;
|
||||||
|
removeAiProvider: Scalars['Boolean'];
|
||||||
|
removeModelFromProvider: Scalars['Boolean'];
|
||||||
|
retryJobs: RetryJobsResponse;
|
||||||
|
setAdminAiModelEnabled: Scalars['Boolean'];
|
||||||
|
setAdminAiModelRecommended: Scalars['Boolean'];
|
||||||
|
setAdminAiModelsEnabled: Scalars['Boolean'];
|
||||||
|
setAdminAiModelsRecommended: Scalars['Boolean'];
|
||||||
|
setAdminDefaultAiModel: Scalars['Boolean'];
|
||||||
|
setMaintenanceMode: Scalars['Boolean'];
|
||||||
|
updateDatabaseConfigVariable: Scalars['Boolean'];
|
||||||
|
updateWorkspaceFeatureFlag: Scalars['Boolean'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationAddAiProviderArgs = {
|
||||||
|
providerConfig: Scalars['JSON'];
|
||||||
|
providerName: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationAddModelToProviderArgs = {
|
||||||
|
modelConfig: Scalars['JSON'];
|
||||||
|
providerName: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationCreateDatabaseConfigVariableArgs = {
|
||||||
|
key: Scalars['String'];
|
||||||
|
value: Scalars['JSON'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationDeleteDatabaseConfigVariableArgs = {
|
||||||
|
key: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationDeleteJobsArgs = {
|
||||||
|
jobIds: Array<Scalars['String']>;
|
||||||
|
queueName: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationRemoveAiProviderArgs = {
|
||||||
|
providerName: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationRemoveModelFromProviderArgs = {
|
||||||
|
modelName: Scalars['String'];
|
||||||
|
providerName: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationRetryJobsArgs = {
|
||||||
|
jobIds: Array<Scalars['String']>;
|
||||||
|
queueName: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationSetAdminAiModelEnabledArgs = {
|
||||||
|
enabled: Scalars['Boolean'];
|
||||||
|
modelId: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationSetAdminAiModelRecommendedArgs = {
|
||||||
|
modelId: Scalars['String'];
|
||||||
|
recommended: Scalars['Boolean'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationSetAdminAiModelsEnabledArgs = {
|
||||||
|
enabled: Scalars['Boolean'];
|
||||||
|
modelIds: Array<Scalars['String']>;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationSetAdminAiModelsRecommendedArgs = {
|
||||||
|
modelIds: Array<Scalars['String']>;
|
||||||
|
recommended: Scalars['Boolean'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationSetAdminDefaultAiModelArgs = {
|
||||||
|
modelId: Scalars['String'];
|
||||||
|
role: AiModelRole;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationSetMaintenanceModeArgs = {
|
||||||
|
endAt: Scalars['DateTime'];
|
||||||
|
link?: InputMaybe<Scalars['String']>;
|
||||||
|
startAt: Scalars['DateTime'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationUpdateDatabaseConfigVariableArgs = {
|
||||||
|
key: Scalars['String'];
|
||||||
|
value: Scalars['JSON'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type MutationUpdateWorkspaceFeatureFlagArgs = {
|
||||||
|
featureFlag: Scalars['String'];
|
||||||
|
value: Scalars['Boolean'];
|
||||||
|
workspaceId: Scalars['UUID'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type Query = {
|
||||||
|
__typename?: 'Query';
|
||||||
|
adminPanelRecentUsers: Array<AdminPanelRecentUser>;
|
||||||
|
adminPanelTopWorkspaces: Array<AdminPanelTopWorkspace>;
|
||||||
|
findAllApplicationRegistrations: Array<ApplicationRegistration>;
|
||||||
|
findOneAdminApplicationRegistration: ApplicationRegistration;
|
||||||
|
getAdminAiModels: AdminAiModels;
|
||||||
|
getAdminAiUsageByWorkspace: Array<UsageBreakdownItem>;
|
||||||
|
getAdminChatThreadMessages: AdminChatThreadMessages;
|
||||||
|
getAdminWorkspaceChatThreads: Array<AdminWorkspaceChatThread>;
|
||||||
|
getAiProviders: Scalars['JSON'];
|
||||||
|
getConfigVariablesGrouped: ConfigVariables;
|
||||||
|
getDatabaseConfigVariable: ConfigVariable;
|
||||||
|
getIndicatorHealthStatus: AdminPanelHealthServiceData;
|
||||||
|
getMaintenanceMode?: Maybe<MaintenanceMode>;
|
||||||
|
getModelsDevProviders: Array<ModelsDevProviderSuggestion>;
|
||||||
|
getModelsDevSuggestions: Array<ModelsDevModelSuggestion>;
|
||||||
|
getQueueJobs: QueueJobsResponse;
|
||||||
|
getQueueMetrics: QueueMetricsData;
|
||||||
|
getSystemHealthStatus: SystemHealth;
|
||||||
|
userLookupAdminPanel: UserLookup;
|
||||||
|
versionInfo: VersionInfo;
|
||||||
|
workspaceLookupAdminPanel: UserLookup;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryAdminPanelRecentUsersArgs = {
|
||||||
|
searchTerm?: InputMaybe<Scalars['String']>;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryAdminPanelTopWorkspacesArgs = {
|
||||||
|
searchTerm?: InputMaybe<Scalars['String']>;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryFindOneAdminApplicationRegistrationArgs = {
|
||||||
|
id: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryGetAdminAiUsageByWorkspaceArgs = {
|
||||||
|
periodEnd?: InputMaybe<Scalars['DateTime']>;
|
||||||
|
periodStart?: InputMaybe<Scalars['DateTime']>;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryGetAdminChatThreadMessagesArgs = {
|
||||||
|
threadId: Scalars['UUID'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryGetAdminWorkspaceChatThreadsArgs = {
|
||||||
|
workspaceId: Scalars['UUID'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryGetDatabaseConfigVariableArgs = {
|
||||||
|
key: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryGetIndicatorHealthStatusArgs = {
|
||||||
|
indicatorId: HealthIndicatorId;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryGetModelsDevSuggestionsArgs = {
|
||||||
|
providerType: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryGetQueueJobsArgs = {
|
||||||
|
limit?: InputMaybe<Scalars['Int']>;
|
||||||
|
offset?: InputMaybe<Scalars['Int']>;
|
||||||
|
queueName: Scalars['String'];
|
||||||
|
state: JobState;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryGetQueueMetricsArgs = {
|
||||||
|
queueName: Scalars['String'];
|
||||||
|
timeRange?: InputMaybe<QueueMetricsTimeRange>;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryUserLookupAdminPanelArgs = {
|
||||||
|
userIdentifier: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export type QueryWorkspaceLookupAdminPanelArgs = {
|
||||||
|
workspaceId: Scalars['UUID'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type QueueJob = {
|
||||||
|
__typename?: 'QueueJob';
|
||||||
|
attemptsMade: Scalars['Float'];
|
||||||
|
data?: Maybe<Scalars['JSON']>;
|
||||||
|
failedReason?: Maybe<Scalars['String']>;
|
||||||
|
finishedOn?: Maybe<Scalars['Float']>;
|
||||||
|
id: Scalars['String'];
|
||||||
|
logs?: Maybe<Array<Scalars['String']>>;
|
||||||
|
name: Scalars['String'];
|
||||||
|
processedOn?: Maybe<Scalars['Float']>;
|
||||||
|
returnValue?: Maybe<Scalars['JSON']>;
|
||||||
|
stackTrace?: Maybe<Array<Scalars['String']>>;
|
||||||
|
state: JobState;
|
||||||
|
timestamp?: Maybe<Scalars['Float']>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type QueueJobsResponse = {
|
||||||
|
__typename?: 'QueueJobsResponse';
|
||||||
|
count: Scalars['Float'];
|
||||||
|
hasMore: Scalars['Boolean'];
|
||||||
|
jobs: Array<QueueJob>;
|
||||||
|
retentionConfig: QueueRetentionConfig;
|
||||||
|
totalCount: Scalars['Float'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type QueueMetricsData = {
|
||||||
|
__typename?: 'QueueMetricsData';
|
||||||
|
data: Array<QueueMetricsSeries>;
|
||||||
|
details?: Maybe<WorkerQueueMetrics>;
|
||||||
|
queueName: Scalars['String'];
|
||||||
|
timeRange: QueueMetricsTimeRange;
|
||||||
|
workers: Scalars['Float'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type QueueMetricsDataPoint = {
|
||||||
|
__typename?: 'QueueMetricsDataPoint';
|
||||||
|
x: Scalars['Float'];
|
||||||
|
y: Scalars['Float'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type QueueMetricsSeries = {
|
||||||
|
__typename?: 'QueueMetricsSeries';
|
||||||
|
data: Array<QueueMetricsDataPoint>;
|
||||||
|
id: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export enum QueueMetricsTimeRange {
|
||||||
|
FourHours = 'FourHours',
|
||||||
|
OneDay = 'OneDay',
|
||||||
|
OneHour = 'OneHour',
|
||||||
|
SevenDays = 'SevenDays',
|
||||||
|
TwelveHours = 'TwelveHours'
|
||||||
|
}
|
||||||
|
|
||||||
|
export type QueueRetentionConfig = {
|
||||||
|
__typename?: 'QueueRetentionConfig';
|
||||||
|
completedMaxAge: Scalars['Float'];
|
||||||
|
completedMaxCount: Scalars['Float'];
|
||||||
|
failedMaxAge: Scalars['Float'];
|
||||||
|
failedMaxCount: Scalars['Float'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type RetryJobsResponse = {
|
||||||
|
__typename?: 'RetryJobsResponse';
|
||||||
|
results: Array<JobOperationResult>;
|
||||||
|
retriedCount: Scalars['Int'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type SystemHealth = {
|
||||||
|
__typename?: 'SystemHealth';
|
||||||
|
services: Array<SystemHealthService>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type SystemHealthService = {
|
||||||
|
__typename?: 'SystemHealthService';
|
||||||
|
id: HealthIndicatorId;
|
||||||
|
label: Scalars['String'];
|
||||||
|
status: AdminPanelHealthServiceStatus;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type UsageBreakdownItem = {
|
||||||
|
__typename?: 'UsageBreakdownItem';
|
||||||
|
creditsUsed: Scalars['Float'];
|
||||||
|
key: Scalars['String'];
|
||||||
|
label?: Maybe<Scalars['String']>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type UserInfo = {
|
||||||
|
__typename?: 'UserInfo';
|
||||||
|
createdAt: Scalars['DateTime'];
|
||||||
|
email: Scalars['String'];
|
||||||
|
firstName?: Maybe<Scalars['String']>;
|
||||||
|
id: Scalars['UUID'];
|
||||||
|
lastName?: Maybe<Scalars['String']>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type UserLookup = {
|
||||||
|
__typename?: 'UserLookup';
|
||||||
|
user: UserInfo;
|
||||||
|
workspaces: Array<WorkspaceInfo>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type VersionInfo = {
|
||||||
|
__typename?: 'VersionInfo';
|
||||||
|
currentVersion?: Maybe<Scalars['String']>;
|
||||||
|
latestVersion: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type WorkerQueueMetrics = {
|
||||||
|
__typename?: 'WorkerQueueMetrics';
|
||||||
|
active: Scalars['Float'];
|
||||||
|
completed: Scalars['Float'];
|
||||||
|
completedData?: Maybe<Array<Scalars['Float']>>;
|
||||||
|
delayed: Scalars['Float'];
|
||||||
|
failed: Scalars['Float'];
|
||||||
|
failedData?: Maybe<Array<Scalars['Float']>>;
|
||||||
|
failureRate: Scalars['Float'];
|
||||||
|
waiting: Scalars['Float'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export enum WorkspaceActivationStatus {
|
||||||
|
ACTIVE = 'ACTIVE',
|
||||||
|
INACTIVE = 'INACTIVE',
|
||||||
|
ONGOING_CREATION = 'ONGOING_CREATION',
|
||||||
|
PENDING_CREATION = 'PENDING_CREATION',
|
||||||
|
SUSPENDED = 'SUSPENDED'
|
||||||
|
}
|
||||||
|
|
||||||
|
export type WorkspaceInfo = {
|
||||||
|
__typename?: 'WorkspaceInfo';
|
||||||
|
activationStatus: WorkspaceActivationStatus;
|
||||||
|
allowImpersonation: Scalars['Boolean'];
|
||||||
|
createdAt: Scalars['DateTime'];
|
||||||
|
featureFlags: Array<FeatureFlag>;
|
||||||
|
id: Scalars['UUID'];
|
||||||
|
logo?: Maybe<Scalars['String']>;
|
||||||
|
name: Scalars['String'];
|
||||||
|
totalUsers: Scalars['Float'];
|
||||||
|
users: Array<UserInfo>;
|
||||||
|
workspaceUrls: WorkspaceUrls;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type WorkspaceUrls = {
|
||||||
|
__typename?: 'WorkspaceUrls';
|
||||||
|
customUrl?: Maybe<Scalars['String']>;
|
||||||
|
subdomainUrl: Scalars['String'];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AddAiProviderMutationVariables = Exact<{
|
||||||
|
providerName: Scalars['String'];
|
||||||
|
providerConfig: Scalars['JSON'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type AddAiProviderMutation = { __typename?: 'Mutation', addAiProvider: boolean };
|
||||||
|
|
||||||
|
export type AddModelToProviderMutationVariables = Exact<{
|
||||||
|
providerName: Scalars['String'];
|
||||||
|
modelConfig: Scalars['JSON'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type AddModelToProviderMutation = { __typename?: 'Mutation', addModelToProvider: boolean };
|
||||||
|
|
||||||
|
export type RemoveAiProviderMutationVariables = Exact<{
|
||||||
|
providerName: Scalars['String'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type RemoveAiProviderMutation = { __typename?: 'Mutation', removeAiProvider: boolean };
|
||||||
|
|
||||||
|
export type RemoveModelFromProviderMutationVariables = Exact<{
|
||||||
|
providerName: Scalars['String'];
|
||||||
|
modelName: Scalars['String'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type RemoveModelFromProviderMutation = { __typename?: 'Mutation', removeModelFromProvider: boolean };
|
||||||
|
|
||||||
|
export type SetAdminAiModelEnabledMutationVariables = Exact<{
|
||||||
|
modelId: Scalars['String'];
|
||||||
|
enabled: Scalars['Boolean'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type SetAdminAiModelEnabledMutation = { __typename?: 'Mutation', setAdminAiModelEnabled: boolean };
|
||||||
|
|
||||||
|
export type SetAdminAiModelRecommendedMutationVariables = Exact<{
|
||||||
|
modelId: Scalars['String'];
|
||||||
|
recommended: Scalars['Boolean'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type SetAdminAiModelRecommendedMutation = { __typename?: 'Mutation', setAdminAiModelRecommended: boolean };
|
||||||
|
|
||||||
|
export type SetAdminAiModelsEnabledMutationVariables = Exact<{
|
||||||
|
modelIds: Array<Scalars['String']> | Scalars['String'];
|
||||||
|
enabled: Scalars['Boolean'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type SetAdminAiModelsEnabledMutation = { __typename?: 'Mutation', setAdminAiModelsEnabled: boolean };
|
||||||
|
|
||||||
|
export type SetAdminAiModelsRecommendedMutationVariables = Exact<{
|
||||||
|
modelIds: Array<Scalars['String']> | Scalars['String'];
|
||||||
|
recommended: Scalars['Boolean'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type SetAdminAiModelsRecommendedMutation = { __typename?: 'Mutation', setAdminAiModelsRecommended: boolean };
|
||||||
|
|
||||||
|
export type SetAdminDefaultAiModelMutationVariables = Exact<{
|
||||||
|
role: AiModelRole;
|
||||||
|
modelId: Scalars['String'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type SetAdminDefaultAiModelMutation = { __typename?: 'Mutation', setAdminDefaultAiModel: boolean };
|
||||||
|
|
||||||
|
export type GetAdminAiModelsQueryVariables = Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetAdminAiModelsQuery = { __typename?: 'Query', getAdminAiModels: { __typename?: 'AdminAiModels', defaultSmartModelId?: string | null, defaultFastModelId?: string | null, models: Array<{ __typename?: 'AdminAiModelConfig', modelId: string, label: string, modelFamily?: ModelFamily | null, sdkPackage?: string | null, isAvailable: boolean, isAdminEnabled: boolean, isDeprecated?: boolean | null, isRecommended?: boolean | null, contextWindowTokens?: number | null, maxOutputTokens?: number | null, inputCostPerMillionTokens?: number | null, outputCostPerMillionTokens?: number | null, providerName?: string | null, providerLabel?: string | null, name?: string | null, dataResidency?: string | null }> } };
|
||||||
|
|
||||||
|
export type GetAdminAiUsageByWorkspaceQueryVariables = Exact<{
|
||||||
|
periodStart?: InputMaybe<Scalars['DateTime']>;
|
||||||
|
periodEnd?: InputMaybe<Scalars['DateTime']>;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetAdminAiUsageByWorkspaceQuery = { __typename?: 'Query', getAdminAiUsageByWorkspace: Array<{ __typename?: 'UsageBreakdownItem', key: string, label?: string | null, creditsUsed: number }> };
|
||||||
|
|
||||||
|
export type GetAiProvidersQueryVariables = Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetAiProvidersQuery = { __typename?: 'Query', getAiProviders: any };
|
||||||
|
|
||||||
|
export type GetModelsDevProvidersQueryVariables = Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetModelsDevProvidersQuery = { __typename?: 'Query', getModelsDevProviders: Array<{ __typename?: 'ModelsDevProviderSuggestion', id: string, modelCount: number, npm: string }> };
|
||||||
|
|
||||||
|
export type GetModelsDevSuggestionsQueryVariables = Exact<{
|
||||||
|
providerType: Scalars['String'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetModelsDevSuggestionsQuery = { __typename?: 'Query', getModelsDevSuggestions: Array<{ __typename?: 'ModelsDevModelSuggestion', modelId: string, name: string, inputCostPerMillionTokens: number, outputCostPerMillionTokens: number, cachedInputCostPerMillionTokens?: number | null, cacheCreationCostPerMillionTokens?: number | null, contextWindowTokens: number, maxOutputTokens: number, modalities: Array<string>, supportsReasoning: boolean }> };
|
||||||
|
|
||||||
|
export type FindAllApplicationRegistrationsQueryVariables = Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
|
export type FindAllApplicationRegistrationsQuery = { __typename?: 'Query', findAllApplicationRegistrations: Array<{ __typename?: 'ApplicationRegistration', id: string, universalIdentifier: string, name: string, oAuthClientId: string, oAuthRedirectUris: Array<string>, oAuthScopes: Array<string>, sourceType: ApplicationRegistrationSourceType, sourcePackage?: string | null, latestAvailableVersion?: string | null, isListed: boolean, isFeatured: boolean, ownerWorkspaceId?: string | null, createdAt: string, updatedAt: string }> };
|
||||||
|
|
||||||
|
export type CreateDatabaseConfigVariableMutationVariables = Exact<{
|
||||||
|
key: Scalars['String'];
|
||||||
|
value: Scalars['JSON'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type CreateDatabaseConfigVariableMutation = { __typename?: 'Mutation', createDatabaseConfigVariable: boolean };
|
||||||
|
|
||||||
|
export type DeleteDatabaseConfigVariableMutationVariables = Exact<{
|
||||||
|
key: Scalars['String'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type DeleteDatabaseConfigVariableMutation = { __typename?: 'Mutation', deleteDatabaseConfigVariable: boolean };
|
||||||
|
|
||||||
|
export type UpdateDatabaseConfigVariableMutationVariables = Exact<{
|
||||||
|
key: Scalars['String'];
|
||||||
|
value: Scalars['JSON'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type UpdateDatabaseConfigVariableMutation = { __typename?: 'Mutation', updateDatabaseConfigVariable: boolean };
|
||||||
|
|
||||||
|
export type GetConfigVariablesGroupedQueryVariables = Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetConfigVariablesGroupedQuery = { __typename?: 'Query', getConfigVariablesGrouped: { __typename?: 'ConfigVariables', groups: Array<{ __typename?: 'ConfigVariablesGroupData', name: ConfigVariablesGroup, description: string, isHiddenOnLoad: boolean, variables: Array<{ __typename?: 'ConfigVariable', name: string, description: string, value?: any | null, isSensitive: boolean, isEnvOnly: boolean, type: ConfigVariableType, options?: any | null, source: ConfigSource }> }> } };
|
||||||
|
|
||||||
|
export type GetDatabaseConfigVariableQueryVariables = Exact<{
|
||||||
|
key: Scalars['String'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetDatabaseConfigVariableQuery = { __typename?: 'Query', getDatabaseConfigVariable: { __typename?: 'ConfigVariable', name: string, description: string, value?: any | null, isSensitive: boolean, isEnvOnly: boolean, type: ConfigVariableType, options?: any | null, source: ConfigSource } };
|
||||||
|
|
||||||
|
export type UserInfoFragmentFragment = { __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null, createdAt: string };
|
||||||
|
|
||||||
|
export type UpdateWorkspaceFeatureFlagMutationVariables = Exact<{
|
||||||
|
workspaceId: Scalars['UUID'];
|
||||||
|
featureFlag: Scalars['String'];
|
||||||
|
value: Scalars['Boolean'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type UpdateWorkspaceFeatureFlagMutation = { __typename?: 'Mutation', updateWorkspaceFeatureFlag: boolean };
|
||||||
|
|
||||||
|
export type AdminPanelRecentUsersQueryVariables = Exact<{
|
||||||
|
searchTerm?: InputMaybe<Scalars['String']>;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type AdminPanelRecentUsersQuery = { __typename?: 'Query', adminPanelRecentUsers: Array<{ __typename?: 'AdminPanelRecentUser', id: string, email: string, firstName?: string | null, lastName?: string | null, createdAt: string, workspaceName?: string | null, workspaceId?: string | null }> };
|
||||||
|
|
||||||
|
export type AdminPanelTopWorkspacesQueryVariables = Exact<{
|
||||||
|
searchTerm?: InputMaybe<Scalars['String']>;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type AdminPanelTopWorkspacesQuery = { __typename?: 'Query', adminPanelTopWorkspaces: Array<{ __typename?: 'AdminPanelTopWorkspace', id: string, name: string, totalUsers: number, subdomain: string }> };
|
||||||
|
|
||||||
|
export type FindOneAdminApplicationRegistrationQueryVariables = Exact<{
|
||||||
|
id: Scalars['String'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type FindOneAdminApplicationRegistrationQuery = { __typename?: 'Query', findOneAdminApplicationRegistration: { __typename?: 'ApplicationRegistration', id: string, universalIdentifier: string, name: string, oAuthClientId: string, oAuthRedirectUris: Array<string>, oAuthScopes: Array<string>, sourceType: ApplicationRegistrationSourceType, sourcePackage?: string | null, latestAvailableVersion?: string | null, isListed: boolean, isFeatured: boolean, ownerWorkspaceId?: string | null, createdAt: string, updatedAt: string } };
|
||||||
|
|
||||||
|
export type GetAdminChatThreadMessagesQueryVariables = Exact<{
|
||||||
|
threadId: Scalars['UUID'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetAdminChatThreadMessagesQuery = { __typename?: 'Query', getAdminChatThreadMessages: { __typename?: 'AdminChatThreadMessages', thread: { __typename?: 'AdminWorkspaceChatThread', id: string, title?: string | null, totalInputTokens: number, totalOutputTokens: number, conversationSize: number, createdAt: string, updatedAt: string }, messages: Array<{ __typename?: 'AdminChatMessage', id: string, role: AgentMessageRole, createdAt: string, parts: Array<{ __typename?: 'AdminChatMessagePart', type: string, textContent?: string | null, toolName?: string | null }> }> } };
|
||||||
|
|
||||||
|
export type GetAdminWorkspaceChatThreadsQueryVariables = Exact<{
|
||||||
|
workspaceId: Scalars['UUID'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetAdminWorkspaceChatThreadsQuery = { __typename?: 'Query', getAdminWorkspaceChatThreads: Array<{ __typename?: 'AdminWorkspaceChatThread', id: string, title?: string | null, totalInputTokens: number, totalOutputTokens: number, conversationSize: number, createdAt: string, updatedAt: string }> };
|
||||||
|
|
||||||
|
export type GetVersionInfoQueryVariables = Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetVersionInfoQuery = { __typename?: 'Query', versionInfo: { __typename?: 'VersionInfo', currentVersion?: string | null, latestVersion: string } };
|
||||||
|
|
||||||
|
export type UserLookupAdminPanelQueryVariables = Exact<{
|
||||||
|
userIdentifier: Scalars['String'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type UserLookupAdminPanelQuery = { __typename?: 'Query', userLookupAdminPanel: { __typename?: 'UserLookup', user: { __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null, createdAt: string }, workspaces: Array<{ __typename?: 'WorkspaceInfo', id: string, name: string, logo?: string | null, totalUsers: number, activationStatus: WorkspaceActivationStatus, createdAt: string, allowImpersonation: boolean, workspaceUrls: { __typename?: 'WorkspaceUrls', customUrl?: string | null, subdomainUrl: string }, users: Array<{ __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null }>, featureFlags: Array<{ __typename?: 'FeatureFlag', key: FeatureFlagKey, value: boolean }> }> } };
|
||||||
|
|
||||||
|
export type WorkspaceLookupAdminPanelQueryVariables = Exact<{
|
||||||
|
workspaceId: Scalars['UUID'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type WorkspaceLookupAdminPanelQuery = { __typename?: 'Query', workspaceLookupAdminPanel: { __typename?: 'UserLookup', user: { __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null, createdAt: string }, workspaces: Array<{ __typename?: 'WorkspaceInfo', id: string, name: string, allowImpersonation: boolean, logo?: string | null, totalUsers: number, activationStatus: WorkspaceActivationStatus, createdAt: string, workspaceUrls: { __typename?: 'WorkspaceUrls', customUrl?: string | null, subdomainUrl: string }, users: Array<{ __typename?: 'UserInfo', id: string, email: string, firstName?: string | null, lastName?: string | null }>, featureFlags: Array<{ __typename?: 'FeatureFlag', key: FeatureFlagKey, value: boolean }> }> } };
|
||||||
|
|
||||||
|
export type DeleteJobsMutationVariables = Exact<{
|
||||||
|
queueName: Scalars['String'];
|
||||||
|
jobIds: Array<Scalars['String']> | Scalars['String'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type DeleteJobsMutation = { __typename?: 'Mutation', deleteJobs: { __typename?: 'DeleteJobsResponse', deletedCount: number, results: Array<{ __typename?: 'JobOperationResult', jobId: string, success: boolean, error?: string | null }> } };
|
||||||
|
|
||||||
|
export type RetryJobsMutationVariables = Exact<{
|
||||||
|
queueName: Scalars['String'];
|
||||||
|
jobIds: Array<Scalars['String']> | Scalars['String'];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type RetryJobsMutation = { __typename?: 'Mutation', retryJobs: { __typename?: 'RetryJobsResponse', retriedCount: number, results: Array<{ __typename?: 'JobOperationResult', jobId: string, success: boolean, error?: string | null }> } };
|
||||||
|
|
||||||
|
export type GetIndicatorHealthStatusQueryVariables = Exact<{
|
||||||
|
indicatorId: HealthIndicatorId;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetIndicatorHealthStatusQuery = { __typename?: 'Query', getIndicatorHealthStatus: { __typename?: 'AdminPanelHealthServiceData', id: HealthIndicatorId, label: string, description: string, status: AdminPanelHealthServiceStatus, errorMessage?: string | null, details?: string | null, queues?: Array<{ __typename?: 'AdminPanelWorkerQueueHealth', id: string, queueName: string, status: AdminPanelHealthServiceStatus }> | null } };
|
||||||
|
|
||||||
|
export type GetQueueJobsQueryVariables = Exact<{
|
||||||
|
queueName: Scalars['String'];
|
||||||
|
state: JobState;
|
||||||
|
limit?: InputMaybe<Scalars['Int']>;
|
||||||
|
offset?: InputMaybe<Scalars['Int']>;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetQueueJobsQuery = { __typename?: 'Query', getQueueJobs: { __typename?: 'QueueJobsResponse', count: number, totalCount: number, hasMore: boolean, jobs: Array<{ __typename?: 'QueueJob', id: string, name: string, data?: any | null, state: JobState, timestamp?: number | null, failedReason?: string | null, processedOn?: number | null, finishedOn?: number | null, attemptsMade: number, returnValue?: any | null, logs?: Array<string> | null, stackTrace?: Array<string> | null }>, retentionConfig: { __typename?: 'QueueRetentionConfig', completedMaxAge: number, completedMaxCount: number, failedMaxAge: number, failedMaxCount: number } } };
|
||||||
|
|
||||||
|
export type GetQueueMetricsQueryVariables = Exact<{
|
||||||
|
queueName: Scalars['String'];
|
||||||
|
timeRange?: InputMaybe<QueueMetricsTimeRange>;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetQueueMetricsQuery = { __typename?: 'Query', getQueueMetrics: { __typename?: 'QueueMetricsData', queueName: string, timeRange: QueueMetricsTimeRange, workers: number, details?: { __typename?: 'WorkerQueueMetrics', failed: number, completed: number, waiting: number, active: number, delayed: number, failureRate: number } | null, data: Array<{ __typename?: 'QueueMetricsSeries', id: string, data: Array<{ __typename?: 'QueueMetricsDataPoint', x: number, y: number }> }> } };
|
||||||
|
|
||||||
|
export type GetSystemHealthStatusQueryVariables = Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetSystemHealthStatusQuery = { __typename?: 'Query', getSystemHealthStatus: { __typename?: 'SystemHealth', services: Array<{ __typename?: 'SystemHealthService', id: HealthIndicatorId, label: string, status: AdminPanelHealthServiceStatus }> } };
|
||||||
|
|
||||||
|
export type ClearMaintenanceModeMutationVariables = Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
|
export type ClearMaintenanceModeMutation = { __typename?: 'Mutation', clearMaintenanceMode: boolean };
|
||||||
|
|
||||||
|
export type SetMaintenanceModeMutationVariables = Exact<{
|
||||||
|
startAt: Scalars['DateTime'];
|
||||||
|
endAt: Scalars['DateTime'];
|
||||||
|
link?: InputMaybe<Scalars['String']>;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
|
||||||
|
export type SetMaintenanceModeMutation = { __typename?: 'Mutation', setMaintenanceMode: boolean };
|
||||||
|
|
||||||
|
export type GetMaintenanceModeQueryVariables = Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
|
export type GetMaintenanceModeQuery = { __typename?: 'Query', getMaintenanceMode?: { __typename?: 'MaintenanceMode', startAt: string, endAt: string, link?: string | null } | null };
|
||||||
|
|
||||||
|
export type ApplicationRegistrationFragmentFragment = { __typename?: 'ApplicationRegistration', id: string, universalIdentifier: string, name: string, oAuthClientId: string, oAuthRedirectUris: Array<string>, oAuthScopes: Array<string>, sourceType: ApplicationRegistrationSourceType, sourcePackage?: string | null, latestAvailableVersion?: string | null, isListed: boolean, isFeatured: boolean, ownerWorkspaceId?: string | null, createdAt: string, updatedAt: string };
|
||||||
|
|
||||||
|
export const UserInfoFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserInfoFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"UserInfo"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]} as unknown as DocumentNode<UserInfoFragmentFragment, unknown>;
|
||||||
|
export const ApplicationRegistrationFragmentFragmentDoc = {"kind":"Document","definitions":[{"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":"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":"isFeatured"}},{"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<ApplicationRegistrationFragmentFragment, unknown>;
|
||||||
|
export const AddAiProviderDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"AddAiProvider"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"providerName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"providerConfig"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"JSON"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"addAiProvider"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"providerName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"providerName"}}},{"kind":"Argument","name":{"kind":"Name","value":"providerConfig"},"value":{"kind":"Variable","name":{"kind":"Name","value":"providerConfig"}}}]}]}}]} as unknown as DocumentNode<AddAiProviderMutation, AddAiProviderMutationVariables>;
|
||||||
|
export const AddModelToProviderDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"AddModelToProvider"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"providerName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"modelConfig"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"JSON"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"addModelToProvider"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"providerName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"providerName"}}},{"kind":"Argument","name":{"kind":"Name","value":"modelConfig"},"value":{"kind":"Variable","name":{"kind":"Name","value":"modelConfig"}}}]}]}}]} as unknown as DocumentNode<AddModelToProviderMutation, AddModelToProviderMutationVariables>;
|
||||||
|
export const RemoveAiProviderDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"RemoveAiProvider"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"providerName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"removeAiProvider"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"providerName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"providerName"}}}]}]}}]} as unknown as DocumentNode<RemoveAiProviderMutation, RemoveAiProviderMutationVariables>;
|
||||||
|
export const RemoveModelFromProviderDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"RemoveModelFromProvider"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"providerName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"modelName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"removeModelFromProvider"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"providerName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"providerName"}}},{"kind":"Argument","name":{"kind":"Name","value":"modelName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"modelName"}}}]}]}}]} as unknown as DocumentNode<RemoveModelFromProviderMutation, RemoveModelFromProviderMutationVariables>;
|
||||||
|
export const SetAdminAiModelEnabledDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"SetAdminAiModelEnabled"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"modelId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"enabled"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Boolean"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"setAdminAiModelEnabled"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"modelId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"modelId"}}},{"kind":"Argument","name":{"kind":"Name","value":"enabled"},"value":{"kind":"Variable","name":{"kind":"Name","value":"enabled"}}}]}]}}]} as unknown as DocumentNode<SetAdminAiModelEnabledMutation, SetAdminAiModelEnabledMutationVariables>;
|
||||||
|
export const SetAdminAiModelRecommendedDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"SetAdminAiModelRecommended"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"modelId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"recommended"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Boolean"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"setAdminAiModelRecommended"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"modelId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"modelId"}}},{"kind":"Argument","name":{"kind":"Name","value":"recommended"},"value":{"kind":"Variable","name":{"kind":"Name","value":"recommended"}}}]}]}}]} as unknown as DocumentNode<SetAdminAiModelRecommendedMutation, SetAdminAiModelRecommendedMutationVariables>;
|
||||||
|
export const SetAdminAiModelsEnabledDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"SetAdminAiModelsEnabled"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"modelIds"}},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"enabled"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Boolean"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"setAdminAiModelsEnabled"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"modelIds"},"value":{"kind":"Variable","name":{"kind":"Name","value":"modelIds"}}},{"kind":"Argument","name":{"kind":"Name","value":"enabled"},"value":{"kind":"Variable","name":{"kind":"Name","value":"enabled"}}}]}]}}]} as unknown as DocumentNode<SetAdminAiModelsEnabledMutation, SetAdminAiModelsEnabledMutationVariables>;
|
||||||
|
export const SetAdminAiModelsRecommendedDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"SetAdminAiModelsRecommended"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"modelIds"}},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"recommended"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Boolean"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"setAdminAiModelsRecommended"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"modelIds"},"value":{"kind":"Variable","name":{"kind":"Name","value":"modelIds"}}},{"kind":"Argument","name":{"kind":"Name","value":"recommended"},"value":{"kind":"Variable","name":{"kind":"Name","value":"recommended"}}}]}]}}]} as unknown as DocumentNode<SetAdminAiModelsRecommendedMutation, SetAdminAiModelsRecommendedMutationVariables>;
|
||||||
|
export const SetAdminDefaultAiModelDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"SetAdminDefaultAiModel"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"role"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"AiModelRole"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"modelId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"setAdminDefaultAiModel"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"role"},"value":{"kind":"Variable","name":{"kind":"Name","value":"role"}}},{"kind":"Argument","name":{"kind":"Name","value":"modelId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"modelId"}}}]}]}}]} as unknown as DocumentNode<SetAdminDefaultAiModelMutation, SetAdminDefaultAiModelMutationVariables>;
|
||||||
|
export const GetAdminAiModelsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetAdminAiModels"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getAdminAiModels"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"defaultSmartModelId"}},{"kind":"Field","name":{"kind":"Name","value":"defaultFastModelId"}},{"kind":"Field","name":{"kind":"Name","value":"models"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"modelId"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"modelFamily"}},{"kind":"Field","name":{"kind":"Name","value":"sdkPackage"}},{"kind":"Field","name":{"kind":"Name","value":"isAvailable"}},{"kind":"Field","name":{"kind":"Name","value":"isAdminEnabled"}},{"kind":"Field","name":{"kind":"Name","value":"isDeprecated"}},{"kind":"Field","name":{"kind":"Name","value":"isRecommended"}},{"kind":"Field","name":{"kind":"Name","value":"contextWindowTokens"}},{"kind":"Field","name":{"kind":"Name","value":"maxOutputTokens"}},{"kind":"Field","name":{"kind":"Name","value":"inputCostPerMillionTokens"}},{"kind":"Field","name":{"kind":"Name","value":"outputCostPerMillionTokens"}},{"kind":"Field","name":{"kind":"Name","value":"providerName"}},{"kind":"Field","name":{"kind":"Name","value":"providerLabel"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"dataResidency"}}]}}]}}]}}]} as unknown as DocumentNode<GetAdminAiModelsQuery, GetAdminAiModelsQueryVariables>;
|
||||||
|
export const GetAdminAiUsageByWorkspaceDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetAdminAiUsageByWorkspace"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"periodStart"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"DateTime"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"periodEnd"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"DateTime"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getAdminAiUsageByWorkspace"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"periodStart"},"value":{"kind":"Variable","name":{"kind":"Name","value":"periodStart"}}},{"kind":"Argument","name":{"kind":"Name","value":"periodEnd"},"value":{"kind":"Variable","name":{"kind":"Name","value":"periodEnd"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"creditsUsed"}}]}}]}}]} as unknown as DocumentNode<GetAdminAiUsageByWorkspaceQuery, GetAdminAiUsageByWorkspaceQueryVariables>;
|
||||||
|
export const GetAiProvidersDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetAiProviders"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getAiProviders"}}]}}]} as unknown as DocumentNode<GetAiProvidersQuery, GetAiProvidersQueryVariables>;
|
||||||
|
export const GetModelsDevProvidersDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetModelsDevProviders"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getModelsDevProviders"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"modelCount"}},{"kind":"Field","name":{"kind":"Name","value":"npm"}}]}}]}}]} as unknown as DocumentNode<GetModelsDevProvidersQuery, GetModelsDevProvidersQueryVariables>;
|
||||||
|
export const GetModelsDevSuggestionsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetModelsDevSuggestions"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"providerType"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getModelsDevSuggestions"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"providerType"},"value":{"kind":"Variable","name":{"kind":"Name","value":"providerType"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"modelId"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"inputCostPerMillionTokens"}},{"kind":"Field","name":{"kind":"Name","value":"outputCostPerMillionTokens"}},{"kind":"Field","name":{"kind":"Name","value":"cachedInputCostPerMillionTokens"}},{"kind":"Field","name":{"kind":"Name","value":"cacheCreationCostPerMillionTokens"}},{"kind":"Field","name":{"kind":"Name","value":"contextWindowTokens"}},{"kind":"Field","name":{"kind":"Name","value":"maxOutputTokens"}},{"kind":"Field","name":{"kind":"Name","value":"modalities"}},{"kind":"Field","name":{"kind":"Name","value":"supportsReasoning"}}]}}]}}]} as unknown as DocumentNode<GetModelsDevSuggestionsQuery, GetModelsDevSuggestionsQueryVariables>;
|
||||||
|
export const FindAllApplicationRegistrationsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindAllApplicationRegistrations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"findAllApplicationRegistrations"},"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":"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":"isFeatured"}},{"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<FindAllApplicationRegistrationsQuery, FindAllApplicationRegistrationsQueryVariables>;
|
||||||
|
export const CreateDatabaseConfigVariableDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateDatabaseConfigVariable"},"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":"JSON"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createDatabaseConfigVariable"},"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"}}}]}]}}]} as unknown as DocumentNode<CreateDatabaseConfigVariableMutation, CreateDatabaseConfigVariableMutationVariables>;
|
||||||
|
export const DeleteDatabaseConfigVariableDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteDatabaseConfigVariable"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"key"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteDatabaseConfigVariable"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"Variable","name":{"kind":"Name","value":"key"}}}]}]}}]} as unknown as DocumentNode<DeleteDatabaseConfigVariableMutation, DeleteDatabaseConfigVariableMutationVariables>;
|
||||||
|
export const UpdateDatabaseConfigVariableDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateDatabaseConfigVariable"},"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":"JSON"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateDatabaseConfigVariable"},"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"}}}]}]}}]} as unknown as DocumentNode<UpdateDatabaseConfigVariableMutation, UpdateDatabaseConfigVariableMutationVariables>;
|
||||||
|
export const GetConfigVariablesGroupedDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetConfigVariablesGrouped"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getConfigVariablesGrouped"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"groups"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"isHiddenOnLoad"}},{"kind":"Field","name":{"kind":"Name","value":"variables"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"value"}},{"kind":"Field","name":{"kind":"Name","value":"isSensitive"}},{"kind":"Field","name":{"kind":"Name","value":"isEnvOnly"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"options"}},{"kind":"Field","name":{"kind":"Name","value":"source"}}]}}]}}]}}]}}]} as unknown as DocumentNode<GetConfigVariablesGroupedQuery, GetConfigVariablesGroupedQueryVariables>;
|
||||||
|
export const GetDatabaseConfigVariableDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetDatabaseConfigVariable"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"key"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getDatabaseConfigVariable"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"Variable","name":{"kind":"Name","value":"key"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"value"}},{"kind":"Field","name":{"kind":"Name","value":"isSensitive"}},{"kind":"Field","name":{"kind":"Name","value":"isEnvOnly"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"options"}},{"kind":"Field","name":{"kind":"Name","value":"source"}}]}}]}}]} as unknown as DocumentNode<GetDatabaseConfigVariableQuery, GetDatabaseConfigVariableQueryVariables>;
|
||||||
|
export const UpdateWorkspaceFeatureFlagDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateWorkspaceFeatureFlag"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"featureFlag"}},"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":"Boolean"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateWorkspaceFeatureFlag"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"workspaceId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}}},{"kind":"Argument","name":{"kind":"Name","value":"featureFlag"},"value":{"kind":"Variable","name":{"kind":"Name","value":"featureFlag"}}},{"kind":"Argument","name":{"kind":"Name","value":"value"},"value":{"kind":"Variable","name":{"kind":"Name","value":"value"}}}]}]}}]} as unknown as DocumentNode<UpdateWorkspaceFeatureFlagMutation, UpdateWorkspaceFeatureFlagMutationVariables>;
|
||||||
|
export const AdminPanelRecentUsersDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"AdminPanelRecentUsers"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"searchTerm"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"adminPanelRecentUsers"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"searchTerm"},"value":{"kind":"Variable","name":{"kind":"Name","value":"searchTerm"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"workspaceName"}},{"kind":"Field","name":{"kind":"Name","value":"workspaceId"}}]}}]}}]} as unknown as DocumentNode<AdminPanelRecentUsersQuery, AdminPanelRecentUsersQueryVariables>;
|
||||||
|
export const AdminPanelTopWorkspacesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"AdminPanelTopWorkspaces"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"searchTerm"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"adminPanelTopWorkspaces"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"searchTerm"},"value":{"kind":"Variable","name":{"kind":"Name","value":"searchTerm"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"totalUsers"}},{"kind":"Field","name":{"kind":"Name","value":"subdomain"}}]}}]}}]} as unknown as DocumentNode<AdminPanelTopWorkspacesQuery, AdminPanelTopWorkspacesQueryVariables>;
|
||||||
|
export const FindOneAdminApplicationRegistrationDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"FindOneAdminApplicationRegistration"},"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":"findOneAdminApplicationRegistration"},"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":"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":"isFeatured"}},{"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<FindOneAdminApplicationRegistrationQuery, FindOneAdminApplicationRegistrationQueryVariables>;
|
||||||
|
export const GetAdminChatThreadMessagesDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetAdminChatThreadMessages"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"threadId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getAdminChatThreadMessages"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"threadId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"threadId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"thread"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"totalInputTokens"}},{"kind":"Field","name":{"kind":"Name","value":"totalOutputTokens"}},{"kind":"Field","name":{"kind":"Name","value":"conversationSize"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"messages"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"role"}},{"kind":"Field","name":{"kind":"Name","value":"parts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"textContent"}},{"kind":"Field","name":{"kind":"Name","value":"toolName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]}}]}}]} as unknown as DocumentNode<GetAdminChatThreadMessagesQuery, GetAdminChatThreadMessagesQueryVariables>;
|
||||||
|
export const GetAdminWorkspaceChatThreadsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetAdminWorkspaceChatThreads"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getAdminWorkspaceChatThreads"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"workspaceId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"totalInputTokens"}},{"kind":"Field","name":{"kind":"Name","value":"totalOutputTokens"}},{"kind":"Field","name":{"kind":"Name","value":"conversationSize"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<GetAdminWorkspaceChatThreadsQuery, GetAdminWorkspaceChatThreadsQueryVariables>;
|
||||||
|
export const GetVersionInfoDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetVersionInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"versionInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currentVersion"}},{"kind":"Field","name":{"kind":"Name","value":"latestVersion"}}]}}]}}]} as unknown as DocumentNode<GetVersionInfoQuery, GetVersionInfoQueryVariables>;
|
||||||
|
export const UserLookupAdminPanelDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"UserLookupAdminPanel"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"userIdentifier"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"userLookupAdminPanel"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"userIdentifier"},"value":{"kind":"Variable","name":{"kind":"Name","value":"userIdentifier"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserInfoFragment"}}]}},{"kind":"Field","name":{"kind":"Name","value":"workspaces"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"logo"}},{"kind":"Field","name":{"kind":"Name","value":"totalUsers"}},{"kind":"Field","name":{"kind":"Name","value":"activationStatus"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"allowImpersonation"}},{"kind":"Field","name":{"kind":"Name","value":"workspaceUrls"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"customUrl"}},{"kind":"Field","name":{"kind":"Name","value":"subdomainUrl"}}]}},{"kind":"Field","name":{"kind":"Name","value":"users"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"featureFlags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserInfoFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"UserInfo"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]} as unknown as DocumentNode<UserLookupAdminPanelQuery, UserLookupAdminPanelQueryVariables>;
|
||||||
|
export const WorkspaceLookupAdminPanelDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"WorkspaceLookupAdminPanel"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UUID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"workspaceLookupAdminPanel"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"workspaceId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"UserInfoFragment"}}]}},{"kind":"Field","name":{"kind":"Name","value":"workspaces"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"allowImpersonation"}},{"kind":"Field","name":{"kind":"Name","value":"logo"}},{"kind":"Field","name":{"kind":"Name","value":"totalUsers"}},{"kind":"Field","name":{"kind":"Name","value":"activationStatus"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"workspaceUrls"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"customUrl"}},{"kind":"Field","name":{"kind":"Name","value":"subdomainUrl"}}]}},{"kind":"Field","name":{"kind":"Name","value":"users"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"featureFlags"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"value"}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"UserInfoFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"UserInfo"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"email"}},{"kind":"Field","name":{"kind":"Name","value":"firstName"}},{"kind":"Field","name":{"kind":"Name","value":"lastName"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}}]}}]} as unknown as DocumentNode<WorkspaceLookupAdminPanelQuery, WorkspaceLookupAdminPanelQueryVariables>;
|
||||||
|
export const DeleteJobsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteJobs"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"jobIds"}},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteJobs"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"queueName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}}},{"kind":"Argument","name":{"kind":"Name","value":"jobIds"},"value":{"kind":"Variable","name":{"kind":"Name","value":"jobIds"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deletedCount"}},{"kind":"Field","name":{"kind":"Name","value":"results"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"jobId"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"error"}}]}}]}}]}}]} as unknown as DocumentNode<DeleteJobsMutation, DeleteJobsMutationVariables>;
|
||||||
|
export const RetryJobsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"RetryJobs"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"jobIds"}},"type":{"kind":"NonNullType","type":{"kind":"ListType","type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"retryJobs"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"queueName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}}},{"kind":"Argument","name":{"kind":"Name","value":"jobIds"},"value":{"kind":"Variable","name":{"kind":"Name","value":"jobIds"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"retriedCount"}},{"kind":"Field","name":{"kind":"Name","value":"results"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"jobId"}},{"kind":"Field","name":{"kind":"Name","value":"success"}},{"kind":"Field","name":{"kind":"Name","value":"error"}}]}}]}}]}}]} as unknown as DocumentNode<RetryJobsMutation, RetryJobsMutationVariables>;
|
||||||
|
export const GetIndicatorHealthStatusDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetIndicatorHealthStatus"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"indicatorId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"HealthIndicatorId"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getIndicatorHealthStatus"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"indicatorId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"indicatorId"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"errorMessage"}},{"kind":"Field","name":{"kind":"Name","value":"details"}},{"kind":"Field","name":{"kind":"Name","value":"queues"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"queueName"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]}}]} as unknown as DocumentNode<GetIndicatorHealthStatusQuery, GetIndicatorHealthStatusQueryVariables>;
|
||||||
|
export const GetQueueJobsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQueueJobs"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"state"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"JobState"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"limit"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"offset"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getQueueJobs"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"queueName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}}},{"kind":"Argument","name":{"kind":"Name","value":"state"},"value":{"kind":"Variable","name":{"kind":"Name","value":"state"}}},{"kind":"Argument","name":{"kind":"Name","value":"limit"},"value":{"kind":"Variable","name":{"kind":"Name","value":"limit"}}},{"kind":"Argument","name":{"kind":"Name","value":"offset"},"value":{"kind":"Variable","name":{"kind":"Name","value":"offset"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"jobs"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"data"}},{"kind":"Field","name":{"kind":"Name","value":"state"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"failedReason"}},{"kind":"Field","name":{"kind":"Name","value":"processedOn"}},{"kind":"Field","name":{"kind":"Name","value":"finishedOn"}},{"kind":"Field","name":{"kind":"Name","value":"attemptsMade"}},{"kind":"Field","name":{"kind":"Name","value":"returnValue"}},{"kind":"Field","name":{"kind":"Name","value":"logs"}},{"kind":"Field","name":{"kind":"Name","value":"stackTrace"}}]}},{"kind":"Field","name":{"kind":"Name","value":"count"}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}},{"kind":"Field","name":{"kind":"Name","value":"hasMore"}},{"kind":"Field","name":{"kind":"Name","value":"retentionConfig"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"completedMaxAge"}},{"kind":"Field","name":{"kind":"Name","value":"completedMaxCount"}},{"kind":"Field","name":{"kind":"Name","value":"failedMaxAge"}},{"kind":"Field","name":{"kind":"Name","value":"failedMaxCount"}}]}}]}}]}}]} as unknown as DocumentNode<GetQueueJobsQuery, GetQueueJobsQueryVariables>;
|
||||||
|
export const GetQueueMetricsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetQueueMetrics"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"timeRange"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"QueueMetricsTimeRange"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getQueueMetrics"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"queueName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"queueName"}}},{"kind":"Argument","name":{"kind":"Name","value":"timeRange"},"value":{"kind":"Variable","name":{"kind":"Name","value":"timeRange"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"queueName"}},{"kind":"Field","name":{"kind":"Name","value":"timeRange"}},{"kind":"Field","name":{"kind":"Name","value":"workers"}},{"kind":"Field","name":{"kind":"Name","value":"details"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"failed"}},{"kind":"Field","name":{"kind":"Name","value":"completed"}},{"kind":"Field","name":{"kind":"Name","value":"waiting"}},{"kind":"Field","name":{"kind":"Name","value":"active"}},{"kind":"Field","name":{"kind":"Name","value":"delayed"}},{"kind":"Field","name":{"kind":"Name","value":"failureRate"}}]}},{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"data"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"x"}},{"kind":"Field","name":{"kind":"Name","value":"y"}}]}}]}}]}}]}}]} as unknown as DocumentNode<GetQueueMetricsQuery, GetQueueMetricsQueryVariables>;
|
||||||
|
export const GetSystemHealthStatusDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetSystemHealthStatus"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getSystemHealthStatus"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"services"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"status"}}]}}]}}]}}]} as unknown as DocumentNode<GetSystemHealthStatusQuery, GetSystemHealthStatusQueryVariables>;
|
||||||
|
export const ClearMaintenanceModeDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"ClearMaintenanceMode"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"clearMaintenanceMode"}}]}}]} as unknown as DocumentNode<ClearMaintenanceModeMutation, ClearMaintenanceModeMutationVariables>;
|
||||||
|
export const SetMaintenanceModeDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"SetMaintenanceMode"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"startAt"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"DateTime"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"endAt"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"DateTime"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"link"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"setMaintenanceMode"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"startAt"},"value":{"kind":"Variable","name":{"kind":"Name","value":"startAt"}}},{"kind":"Argument","name":{"kind":"Name","value":"endAt"},"value":{"kind":"Variable","name":{"kind":"Name","value":"endAt"}}},{"kind":"Argument","name":{"kind":"Name","value":"link"},"value":{"kind":"Variable","name":{"kind":"Name","value":"link"}}}]}]}}]} as unknown as DocumentNode<SetMaintenanceModeMutation, SetMaintenanceModeMutationVariables>;
|
||||||
|
export const GetMaintenanceModeDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetMaintenanceMode"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"getMaintenanceMode"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startAt"}},{"kind":"Field","name":{"kind":"Name","value":"endAt"}},{"kind":"Field","name":{"kind":"Name","value":"link"}}]}}]}}]} as unknown as DocumentNode<GetMaintenanceModeQuery, GetMaintenanceModeQueryVariables>;
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -18,6 +18,7 @@ import { MinimalMetadataLoadEffect } from '@/metadata-store/effect-components/Mi
|
||||||
import { UserMetadataProviderInitialEffect } from '@/metadata-store/effect-components/UserMetadataProviderInitialEffect';
|
import { UserMetadataProviderInitialEffect } from '@/metadata-store/effect-components/UserMetadataProviderInitialEffect';
|
||||||
import { ApolloCoreProvider } from '@/object-metadata/components/ApolloCoreProvider';
|
import { ApolloCoreProvider } from '@/object-metadata/components/ApolloCoreProvider';
|
||||||
import { PreComputedChipGeneratorsProvider } from '@/object-metadata/components/PreComputedChipGeneratorsProvider';
|
import { PreComputedChipGeneratorsProvider } from '@/object-metadata/components/PreComputedChipGeneratorsProvider';
|
||||||
|
import { ApolloAdminProvider } from '@/settings/admin-panel/apollo/components/ApolloAdminProvider';
|
||||||
|
|
||||||
import { CommandRunner } from '@/command-menu-item/engine-command/components/CommandRunner';
|
import { CommandRunner } from '@/command-menu-item/engine-command/components/CommandRunner';
|
||||||
import { SSEProvider } from '@/sse-db-event/components/SSEProvider';
|
import { SSEProvider } from '@/sse-db-event/components/SSEProvider';
|
||||||
|
|
@ -52,36 +53,38 @@ export const AppRouterProviders = () => {
|
||||||
<MinimalMetadataGater>
|
<MinimalMetadataGater>
|
||||||
<AuthProvider>
|
<AuthProvider>
|
||||||
<ApolloCoreProvider>
|
<ApolloCoreProvider>
|
||||||
<SSEProvider>
|
<ApolloAdminProvider>
|
||||||
<PreComputedChipGeneratorsProvider>
|
<SSEProvider>
|
||||||
<UserThemeProviderEffect />
|
<PreComputedChipGeneratorsProvider>
|
||||||
<SnackBarProvider>
|
<UserThemeProviderEffect />
|
||||||
<ErrorMessageEffect />
|
<SnackBarProvider>
|
||||||
<AgentChatProvider>
|
<ErrorMessageEffect />
|
||||||
<DialogComponentInstanceContext.Provider
|
<AgentChatProvider>
|
||||||
value={{ instanceId: 'dialog-manager' }}
|
<DialogComponentInstanceContext.Provider
|
||||||
>
|
value={{ instanceId: 'dialog-manager' }}
|
||||||
<DialogManager>
|
>
|
||||||
<StrictMode>
|
<DialogManager>
|
||||||
<PromiseRejectionEffect />
|
<StrictMode>
|
||||||
<GotoHotkeysEffectsProvider />
|
<PromiseRejectionEffect />
|
||||||
<PageTitle title={pageTitle} />
|
<GotoHotkeysEffectsProvider />
|
||||||
<PageFavicon />
|
<PageTitle title={pageTitle} />
|
||||||
<Outlet />
|
<PageFavicon />
|
||||||
<GlobalFilePreviewModal />
|
<Outlet />
|
||||||
<CommandMenuConfirmationModalManager />
|
<GlobalFilePreviewModal />
|
||||||
<CommandRunner />
|
<CommandMenuConfirmationModalManager />
|
||||||
</StrictMode>
|
<CommandRunner />
|
||||||
</DialogManager>
|
</StrictMode>
|
||||||
</DialogComponentInstanceContext.Provider>
|
</DialogManager>
|
||||||
</AgentChatProvider>
|
</DialogComponentInstanceContext.Provider>
|
||||||
</SnackBarProvider>
|
</AgentChatProvider>
|
||||||
<MainContextStoreProvider />
|
</SnackBarProvider>
|
||||||
<SupportChatEffect />
|
<MainContextStoreProvider />
|
||||||
<PageChangeEffect />
|
<SupportChatEffect />
|
||||||
<SignOutOnOtherTabSignOutEffect />
|
<PageChangeEffect />
|
||||||
</PreComputedChipGeneratorsProvider>
|
<SignOutOnOtherTabSignOutEffect />
|
||||||
</SSEProvider>
|
</PreComputedChipGeneratorsProvider>
|
||||||
|
</SSEProvider>
|
||||||
|
</ApolloAdminProvider>
|
||||||
</ApolloCoreProvider>
|
</ApolloCoreProvider>
|
||||||
</AuthProvider>
|
</AuthProvider>
|
||||||
</MinimalMetadataGater>
|
</MinimalMetadataGater>
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
||||||
import { billingState } from '@/client-config/states/billingState';
|
import { billingState } from '@/client-config/states/billingState';
|
||||||
import { useClientConfig } from '@/client-config/hooks/useClientConfig';
|
import { useClientConfig } from '@/client-config/hooks/useClientConfig';
|
||||||
import { SettingsAiModelsTable } from '@/settings/ai/components/SettingsAiModelsTable';
|
import { SettingsAiModelsTable } from '@/settings/ai/components/SettingsAiModelsTable';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { SettingsAdminAiProviderListCard } from '@/settings/admin-panel/ai/components/SettingsAdminAiProviderListCard';
|
import { SettingsAdminAiProviderListCard } from '@/settings/admin-panel/ai/components/SettingsAdminAiProviderListCard';
|
||||||
import { AI_PROVIDER_SOURCE } from '@/settings/admin-panel/ai/constants/AiProviderSource';
|
import { AI_PROVIDER_SOURCE } from '@/settings/admin-panel/ai/constants/AiProviderSource';
|
||||||
import { SET_ADMIN_AI_MODEL_RECOMMENDED } from '@/settings/admin-panel/ai/graphql/mutations/setAdminAiModelRecommended';
|
import { SET_ADMIN_AI_MODEL_RECOMMENDED } from '@/settings/admin-panel/ai/graphql/mutations/setAdminAiModelRecommended';
|
||||||
|
|
@ -42,7 +43,7 @@ import { GenericDropdownContentWidth } from '@/ui/layout/dropdown/constants/Gene
|
||||||
import {
|
import {
|
||||||
AiModelRole,
|
AiModelRole,
|
||||||
type AdminAiModelConfig,
|
type AdminAiModelConfig,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
const USAGE_TABLE_GRID_TEMPLATE_COLUMNS = '1fr 120px';
|
const USAGE_TABLE_GRID_TEMPLATE_COLUMNS = '1fr 120px';
|
||||||
|
|
||||||
|
|
@ -53,6 +54,7 @@ type UsageBreakdownItem = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export const SettingsAdminAI = () => {
|
export const SettingsAdminAI = () => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const { enqueueErrorSnackBar } = useSnackBar();
|
const { enqueueErrorSnackBar } = useSnackBar();
|
||||||
const { refetch: refetchClientConfig } = useClientConfig();
|
const { refetch: refetchClientConfig } = useClientConfig();
|
||||||
const { formatUsageValue } = useUsageValueFormatter();
|
const { formatUsageValue } = useUsageValueFormatter();
|
||||||
|
|
@ -75,18 +77,27 @@ export const SettingsAdminAI = () => {
|
||||||
defaultFastModelId?: string | null;
|
defaultFastModelId?: string | null;
|
||||||
models: AdminAiModelConfig[];
|
models: AdminAiModelConfig[];
|
||||||
};
|
};
|
||||||
}>(GET_ADMIN_AI_MODELS);
|
}>(GET_ADMIN_AI_MODELS, { client: apolloAdminClient });
|
||||||
|
|
||||||
const [setModelRecommended] = useMutation(SET_ADMIN_AI_MODEL_RECOMMENDED);
|
const [setModelRecommended] = useMutation(SET_ADMIN_AI_MODEL_RECOMMENDED, {
|
||||||
const [setModelsRecommended] = useMutation(SET_ADMIN_AI_MODELS_RECOMMENDED);
|
client: apolloAdminClient,
|
||||||
const [setDefaultModel] = useMutation(SET_ADMIN_DEFAULT_AI_MODEL);
|
});
|
||||||
|
const [setModelsRecommended] = useMutation(SET_ADMIN_AI_MODELS_RECOMMENDED, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
const [setDefaultModel] = useMutation(SET_ADMIN_DEFAULT_AI_MODEL, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
|
||||||
const { data: providersData, loading: isLoadingProviders } =
|
const { data: providersData, loading: isLoadingProviders } =
|
||||||
useQuery<GetAiProvidersResult>(GET_AI_PROVIDERS);
|
useQuery<GetAiProvidersResult>(GET_AI_PROVIDERS, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
|
||||||
const { data: usageData, previousData: previousUsageData } = useQuery<{
|
const { data: usageData, previousData: previousUsageData } = useQuery<{
|
||||||
getAdminAiUsageByWorkspace: UsageBreakdownItem[];
|
getAdminAiUsageByWorkspace: UsageBreakdownItem[];
|
||||||
}>(GET_ADMIN_AI_USAGE_BY_WORKSPACE, {
|
}>(GET_ADMIN_AI_USAGE_BY_WORKSPACE, {
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: {
|
variables: {
|
||||||
periodStart: usageDates.periodStart,
|
periodStart: usageDates.periodStart,
|
||||||
periodEnd: usageDates.periodEnd,
|
periodEnd: usageDates.periodEnd,
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import {
|
||||||
type IconComponent,
|
type IconComponent,
|
||||||
} from 'twenty-ui/display';
|
} from 'twenty-ui/display';
|
||||||
|
|
||||||
import { ModelFamily } from '~/generated-metadata/graphql';
|
import { ModelFamily } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
export type ModelIconConfigKey = ModelFamily | 'FALLBACK';
|
export type ModelIconConfigKey = ModelFamily | 'FALLBACK';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
import { useApolloFactory } from '@/apollo/hooks/useApolloFactory';
|
||||||
|
import { ApolloAdminClientContext } from '@/settings/admin-panel/apollo/contexts/ApolloAdminClientContext';
|
||||||
|
import { REACT_APP_SERVER_BASE_URL } from '~/config';
|
||||||
|
|
||||||
|
export const ApolloAdminProvider = ({
|
||||||
|
children,
|
||||||
|
}: {
|
||||||
|
children: React.ReactNode;
|
||||||
|
}) => {
|
||||||
|
const apolloAdminClient = useApolloFactory({
|
||||||
|
uri: `${REACT_APP_SERVER_BASE_URL}/admin-panel`,
|
||||||
|
});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ApolloAdminClientContext.Provider value={apolloAdminClient}>
|
||||||
|
{children}
|
||||||
|
</ApolloAdminClientContext.Provider>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
import { type ApolloClient } from '@apollo/client';
|
||||||
|
import { createContext } from 'react';
|
||||||
|
|
||||||
|
export const ApolloAdminClientContext = createContext<ApolloClient | null>(
|
||||||
|
null,
|
||||||
|
);
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
import { useApolloClient } from '@apollo/client/react';
|
||||||
|
import { useContext } from 'react';
|
||||||
|
|
||||||
|
import { ApolloAdminClientContext } from '@/settings/admin-panel/apollo/contexts/ApolloAdminClientContext';
|
||||||
|
|
||||||
|
export const useApolloAdminClient = () => {
|
||||||
|
const apolloAdminClient = useContext(ApolloAdminClientContext);
|
||||||
|
const apolloClient = useApolloClient();
|
||||||
|
|
||||||
|
if (process.env.NODE_ENV === 'test') {
|
||||||
|
return apolloClient;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!apolloAdminClient) {
|
||||||
|
throw new Error('ApolloAdminClient not found');
|
||||||
|
}
|
||||||
|
|
||||||
|
return apolloAdminClient;
|
||||||
|
};
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { Table } from '@/ui/layout/table/components/Table';
|
import { Table } from '@/ui/layout/table/components/Table';
|
||||||
import { TableBody } from '@/ui/layout/table/components/TableBody';
|
import { TableBody } from '@/ui/layout/table/components/TableBody';
|
||||||
import { TableCell } from '@/ui/layout/table/components/TableCell';
|
import { TableCell } from '@/ui/layout/table/components/TableCell';
|
||||||
|
|
@ -21,7 +22,7 @@ import {
|
||||||
type ApplicationRegistrationFragmentFragment,
|
type ApplicationRegistrationFragmentFragment,
|
||||||
ApplicationRegistrationSourceType,
|
ApplicationRegistrationSourceType,
|
||||||
FindAllApplicationRegistrationsDocument,
|
FindAllApplicationRegistrationsDocument,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
const StyledTableContainer = styled.div`
|
const StyledTableContainer = styled.div`
|
||||||
border-bottom: 1px solid ${themeCssVariables.border.color.light};
|
border-bottom: 1px solid ${themeCssVariables.border.color.light};
|
||||||
|
|
@ -32,10 +33,13 @@ const TABLE_GRID = '1fr 100px 100px 40px';
|
||||||
const TABLE_GRID_MOBILE = '3fr 3fr 1fr 40px';
|
const TABLE_GRID_MOBILE = '3fr 3fr 1fr 40px';
|
||||||
|
|
||||||
export const SettingsAdminApps = () => {
|
export const SettingsAdminApps = () => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const [searchQuery, setSearchQuery] = useState('');
|
const [searchQuery, setSearchQuery] = useState('');
|
||||||
const { theme } = useContext(ThemeContext);
|
const { theme } = useContext(ThemeContext);
|
||||||
|
|
||||||
const { data } = useQuery(FindAllApplicationRegistrationsDocument);
|
const { data } = useQuery(FindAllApplicationRegistrationsDocument, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
|
||||||
const registrations: ApplicationRegistrationFragmentFragment[] =
|
const registrations: ApplicationRegistrationFragmentFragment[] =
|
||||||
data?.findAllApplicationRegistrations ?? [];
|
data?.findAllApplicationRegistrations ?? [];
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||||
import {
|
import {
|
||||||
AgentMessageRole,
|
AgentMessageRole,
|
||||||
type GetAdminChatThreadMessagesQuery,
|
type GetAdminChatThreadMessagesQuery,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
type ChatMessage = NonNullable<
|
type ChatMessage = NonNullable<
|
||||||
GetAdminChatThreadMessagesQuery['getAdminChatThreadMessages']
|
GetAdminChatThreadMessagesQuery['getAdminChatThreadMessages']
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { canManageFeatureFlagsState } from '@/client-config/states/canManageFeatureFlagsState';
|
import { canManageFeatureFlagsState } from '@/client-config/states/canManageFeatureFlagsState';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { SettingsAdminVersionContainer } from '@/settings/admin-panel/components/SettingsAdminVersionContainer';
|
import { SettingsAdminVersionContainer } from '@/settings/admin-panel/components/SettingsAdminVersionContainer';
|
||||||
import { ADMIN_PANEL_RECENT_USERS } from '@/settings/admin-panel/graphql/queries/adminPanelRecentUsers';
|
import { ADMIN_PANEL_RECENT_USERS } from '@/settings/admin-panel/graphql/queries/adminPanelRecentUsers';
|
||||||
import { ADMIN_PANEL_TOP_WORKSPACES } from '@/settings/admin-panel/graphql/queries/adminPanelTopWorkspaces';
|
import { ADMIN_PANEL_TOP_WORKSPACES } from '@/settings/admin-panel/graphql/queries/adminPanelTopWorkspaces';
|
||||||
|
|
@ -29,6 +30,7 @@ const StyledEmptyState = styled.div`
|
||||||
`;
|
`;
|
||||||
|
|
||||||
export const SettingsAdminGeneral = () => {
|
export const SettingsAdminGeneral = () => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const [userSearchTerm, setUserSearchTerm] = useState('');
|
const [userSearchTerm, setUserSearchTerm] = useState('');
|
||||||
const [debouncedUserSearchTerm] = useDebounce(userSearchTerm, 300);
|
const [debouncedUserSearchTerm] = useDebounce(userSearchTerm, 300);
|
||||||
|
|
||||||
|
|
@ -51,6 +53,7 @@ export const SettingsAdminGeneral = () => {
|
||||||
workspaceId?: string | null;
|
workspaceId?: string | null;
|
||||||
}[];
|
}[];
|
||||||
}>(ADMIN_PANEL_RECENT_USERS, {
|
}>(ADMIN_PANEL_RECENT_USERS, {
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: { searchTerm: debouncedUserSearchTerm },
|
variables: { searchTerm: debouncedUserSearchTerm },
|
||||||
skip: !canImpersonate,
|
skip: !canImpersonate,
|
||||||
});
|
});
|
||||||
|
|
@ -63,6 +66,7 @@ export const SettingsAdminGeneral = () => {
|
||||||
subdomain: string;
|
subdomain: string;
|
||||||
}[];
|
}[];
|
||||||
}>(ADMIN_PANEL_TOP_WORKSPACES, {
|
}>(ADMIN_PANEL_TOP_WORKSPACES, {
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: { searchTerm: debouncedWorkspaceSearchTerm },
|
variables: { searchTerm: debouncedWorkspaceSearchTerm },
|
||||||
skip: !canImpersonate,
|
skip: !canImpersonate,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,16 @@
|
||||||
import { SettingsTableCard } from '@/settings/components/SettingsTableCard';
|
import { SettingsTableCard } from '@/settings/components/SettingsTableCard';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { SettingsAdminVersionDisplay } from '@/settings/admin-panel/components/SettingsAdminVersionDisplay';
|
import { SettingsAdminVersionDisplay } from '@/settings/admin-panel/components/SettingsAdminVersionDisplay';
|
||||||
import { t } from '@lingui/core/macro';
|
import { t } from '@lingui/core/macro';
|
||||||
import { IconCircleDot, IconStatusChange } from 'twenty-ui/display';
|
import { IconCircleDot, IconStatusChange } from 'twenty-ui/display';
|
||||||
import { useQuery } from '@apollo/client/react';
|
import { useQuery } from '@apollo/client/react';
|
||||||
import { GetVersionInfoDocument } from '~/generated-metadata/graphql';
|
import { GetVersionInfoDocument } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
export const SettingsAdminVersionContainer = () => {
|
export const SettingsAdminVersionContainer = () => {
|
||||||
const { data, loading } = useQuery(GetVersionInfoDocument);
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
|
const { data, loading } = useQuery(GetVersionInfoDocument, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
const { currentVersion, latestVersion } = data?.versionInfo ?? {};
|
const { currentVersion, latestVersion } = data?.versionInfo ?? {};
|
||||||
|
|
||||||
const versionItems = [
|
const versionItems = [
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import { CustomError } from 'twenty-shared/utils';
|
||||||
import { CodeEditor } from 'twenty-ui/input';
|
import { CodeEditor } from 'twenty-ui/input';
|
||||||
import { MenuItemMultiSelect } from 'twenty-ui/navigation';
|
import { MenuItemMultiSelect } from 'twenty-ui/navigation';
|
||||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||||
import { ConfigVariableType } from '~/generated-metadata/graphql';
|
import { ConfigVariableType } from '~/generated-admin/graphql';
|
||||||
import { type ConfigVariableOptions } from '@/settings/admin-panel/config-variables/types/ConfigVariableOptions';
|
import { type ConfigVariableOptions } from '@/settings/admin-panel/config-variables/types/ConfigVariableOptions';
|
||||||
|
|
||||||
const StyledJsonEditorContainer = styled.div`
|
const StyledJsonEditorContainer = styled.div`
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,7 @@ import { useLingui } from '@lingui/react/macro';
|
||||||
import { isConfigVariablesInDbEnabledState } from '@/client-config/states/isConfigVariablesInDbEnabledState';
|
import { isConfigVariablesInDbEnabledState } from '@/client-config/states/isConfigVariablesInDbEnabledState';
|
||||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||||
import {
|
import { ConfigSource, type ConfigVariable } from '~/generated-admin/graphql';
|
||||||
ConfigSource,
|
|
||||||
type ConfigVariable,
|
|
||||||
} from '~/generated-metadata/graphql';
|
|
||||||
|
|
||||||
const StyledHelpText = styled.div<{ color?: string }>`
|
const StyledHelpText = styled.div<{ color?: string }>`
|
||||||
color: ${themeCssVariables.font.color.tertiary};
|
color: ${themeCssVariables.font.color.tertiary};
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import { TextInput } from '@/ui/input/components/TextInput';
|
||||||
import { styled } from '@linaria/react';
|
import { styled } from '@linaria/react';
|
||||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||||
import { type ConfigVariableValue } from 'twenty-shared/types';
|
import { type ConfigVariableValue } from 'twenty-shared/types';
|
||||||
import { type ConfigVariable } from '~/generated-metadata/graphql';
|
import { type ConfigVariable } from '~/generated-admin/graphql';
|
||||||
import { ConfigVariableDatabaseInput } from './ConfigVariableDatabaseInput';
|
import { ConfigVariableDatabaseInput } from './ConfigVariableDatabaseInput';
|
||||||
|
|
||||||
type ConfigVariableValueInputProps = {
|
type ConfigVariableValueInputProps = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { SettingsAdminTabSkeletonLoader } from '@/settings/admin-panel/components/SettingsAdminTabSkeletonLoader';
|
import { SettingsAdminTabSkeletonLoader } from '@/settings/admin-panel/components/SettingsAdminTabSkeletonLoader';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { ConfigVariableFilterContainer } from '@/settings/admin-panel/config-variables/components/ConfigVariableFilterContainer';
|
import { ConfigVariableFilterContainer } from '@/settings/admin-panel/config-variables/components/ConfigVariableFilterContainer';
|
||||||
import { ConfigVariableFilterDropdown } from '@/settings/admin-panel/config-variables/components/ConfigVariableFilterDropdown';
|
import { ConfigVariableFilterDropdown } from '@/settings/admin-panel/config-variables/components/ConfigVariableFilterDropdown';
|
||||||
import { SettingsAdminConfigVariablesTable } from '@/settings/admin-panel/config-variables/components/SettingsAdminConfigVariablesTable';
|
import { SettingsAdminConfigVariablesTable } from '@/settings/admin-panel/config-variables/components/SettingsAdminConfigVariablesTable';
|
||||||
|
|
@ -15,7 +16,7 @@ import { useQuery } from '@apollo/client/react';
|
||||||
import {
|
import {
|
||||||
ConfigSource,
|
ConfigSource,
|
||||||
GetConfigVariablesGroupedDocument,
|
GetConfigVariablesGroupedDocument,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
import { normalizeSearchText } from '~/utils/normalizeSearchText';
|
import { normalizeSearchText } from '~/utils/normalizeSearchText';
|
||||||
import { ConfigVariableSearchInput } from './ConfigVariableSearchInput';
|
import { ConfigVariableSearchInput } from './ConfigVariableSearchInput';
|
||||||
import { useAtomState } from '@/ui/utilities/state/jotai/hooks/useAtomState';
|
import { useAtomState } from '@/ui/utilities/state/jotai/hooks/useAtomState';
|
||||||
|
|
@ -31,9 +32,11 @@ const StyledTableContainer = styled.div`
|
||||||
`;
|
`;
|
||||||
|
|
||||||
export const SettingsAdminConfigVariables = () => {
|
export const SettingsAdminConfigVariables = () => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const { data: configVariables, loading: configVariablesLoading } = useQuery(
|
const { data: configVariables, loading: configVariablesLoading } = useQuery(
|
||||||
GetConfigVariablesGroupedDocument,
|
GetConfigVariablesGroupedDocument,
|
||||||
{
|
{
|
||||||
|
client: apolloAdminClient,
|
||||||
fetchPolicy: 'network-only',
|
fetchPolicy: 'network-only',
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { type ConfigVariable } from '~/generated-metadata/graphql';
|
import { type ConfigVariable } from '~/generated-admin/graphql';
|
||||||
import { ConfigVariableTable } from '@/settings/config-variables/components/ConfigVariableTable';
|
import { ConfigVariableTable } from '@/settings/config-variables/components/ConfigVariableTable';
|
||||||
import { getSettingsPath } from 'twenty-shared/utils';
|
import { getSettingsPath } from 'twenty-shared/utils';
|
||||||
import { SettingsPath } from 'twenty-shared/types';
|
import { SettingsPath } from 'twenty-shared/types';
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { useClientConfig } from '@/client-config/hooks/useClientConfig';
|
import { useClientConfig } from '@/client-config/hooks/useClientConfig';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { GET_DATABASE_CONFIG_VARIABLE } from '@/settings/admin-panel/config-variables/graphql/queries/getDatabaseConfigVariable';
|
import { GET_DATABASE_CONFIG_VARIABLE } from '@/settings/admin-panel/config-variables/graphql/queries/getDatabaseConfigVariable';
|
||||||
import { type ConfigVariableValue } from 'twenty-shared/types';
|
import { type ConfigVariableValue } from 'twenty-shared/types';
|
||||||
import { isDefined } from 'twenty-shared/utils';
|
import { isDefined } from 'twenty-shared/utils';
|
||||||
|
|
@ -7,19 +8,23 @@ import {
|
||||||
CreateDatabaseConfigVariableDocument,
|
CreateDatabaseConfigVariableDocument,
|
||||||
DeleteDatabaseConfigVariableDocument,
|
DeleteDatabaseConfigVariableDocument,
|
||||||
UpdateDatabaseConfigVariableDocument,
|
UpdateDatabaseConfigVariableDocument,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
export const useConfigVariableActions = (variableName: string) => {
|
export const useConfigVariableActions = (variableName: string) => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const { refetch: refetchClientConfig } = useClientConfig();
|
const { refetch: refetchClientConfig } = useClientConfig();
|
||||||
|
|
||||||
const [updateDatabaseConfigVariable] = useMutation(
|
const [updateDatabaseConfigVariable] = useMutation(
|
||||||
UpdateDatabaseConfigVariableDocument,
|
UpdateDatabaseConfigVariableDocument,
|
||||||
|
{ client: apolloAdminClient },
|
||||||
);
|
);
|
||||||
const [createDatabaseConfigVariable] = useMutation(
|
const [createDatabaseConfigVariable] = useMutation(
|
||||||
CreateDatabaseConfigVariableDocument,
|
CreateDatabaseConfigVariableDocument,
|
||||||
|
{ client: apolloAdminClient },
|
||||||
);
|
);
|
||||||
const [deleteDatabaseConfigVariable] = useMutation(
|
const [deleteDatabaseConfigVariable] = useMutation(
|
||||||
DeleteDatabaseConfigVariableDocument,
|
DeleteDatabaseConfigVariableDocument,
|
||||||
|
{ client: apolloAdminClient },
|
||||||
);
|
);
|
||||||
|
|
||||||
const handleUpdateVariable = async (
|
const handleUpdateVariable = async (
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import { useContext } from 'react';
|
||||||
import { CustomError } from 'twenty-shared/utils';
|
import { CustomError } from 'twenty-shared/utils';
|
||||||
import { ThemeContext } from 'twenty-ui/theme-constants';
|
import { ThemeContext } from 'twenty-ui/theme-constants';
|
||||||
|
|
||||||
import { ConfigSource } from '~/generated-metadata/graphql';
|
import { ConfigSource } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
export const useSourceContent = (source: ConfigSource) => {
|
export const useSourceContent = (source: ConfigSource) => {
|
||||||
const { theme } = useContext(ThemeContext);
|
const { theme } = useContext(ThemeContext);
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import { styled } from '@linaria/react';
|
||||||
import { t } from '@lingui/core/macro';
|
import { t } from '@lingui/core/macro';
|
||||||
import { useContext } from 'react';
|
import { useContext } from 'react';
|
||||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||||
import { AdminPanelHealthServiceStatus } from '~/generated-metadata/graphql';
|
import { AdminPanelHealthServiceStatus } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
const StyledErrorMessage = styled.div`
|
const StyledErrorMessage = styled.div`
|
||||||
color: ${themeCssVariables.color.red};
|
color: ${themeCssVariables.color.red};
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { SettingsAdminTabSkeletonLoader } from '@/settings/admin-panel/components/SettingsAdminTabSkeletonLoader';
|
import { SettingsAdminTabSkeletonLoader } from '@/settings/admin-panel/components/SettingsAdminTabSkeletonLoader';
|
||||||
import { SettingsAdminHealthStatusListCard } from '@/settings/admin-panel/health-status/components/SettingsAdminHealthStatusListCard';
|
import { SettingsAdminHealthStatusListCard } from '@/settings/admin-panel/health-status/components/SettingsAdminHealthStatusListCard';
|
||||||
import { SettingsAdminMaintenanceModeFetchEffect } from '@/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceModeFetchEffect';
|
import { SettingsAdminMaintenanceModeFetchEffect } from '@/settings/admin-panel/health-status/maintenance-mode/components/SettingsAdminMaintenanceModeFetchEffect';
|
||||||
|
|
@ -6,12 +7,14 @@ import { t } from '@lingui/core/macro';
|
||||||
import { H2Title } from 'twenty-ui/display';
|
import { H2Title } from 'twenty-ui/display';
|
||||||
import { Section } from 'twenty-ui/layout';
|
import { Section } from 'twenty-ui/layout';
|
||||||
import { useQuery } from '@apollo/client/react';
|
import { useQuery } from '@apollo/client/react';
|
||||||
import { GetSystemHealthStatusDocument } from '~/generated-metadata/graphql';
|
import { GetSystemHealthStatusDocument } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
export const SettingsAdminHealthStatus = () => {
|
export const SettingsAdminHealthStatus = () => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const { data, loading: loadingHealthStatus } = useQuery(
|
const { data, loading: loadingHealthStatus } = useQuery(
|
||||||
GetSystemHealthStatusDocument,
|
GetSystemHealthStatusDocument,
|
||||||
{
|
{
|
||||||
|
client: apolloAdminClient,
|
||||||
fetchPolicy: 'network-only',
|
fetchPolicy: 'network-only',
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import { ThemeContext } from 'twenty-ui/theme-constants';
|
||||||
import {
|
import {
|
||||||
HealthIndicatorId,
|
HealthIndicatorId,
|
||||||
type SystemHealthService,
|
type SystemHealthService,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
import { SettingsAdminHealthStatusRightContainer } from './SettingsAdminHealthStatusRightContainer';
|
import { SettingsAdminHealthStatusRightContainer } from './SettingsAdminHealthStatusRightContainer';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { t } from '@lingui/core/macro';
|
import { t } from '@lingui/core/macro';
|
||||||
import { Status } from 'twenty-ui/display';
|
import { Status } from 'twenty-ui/display';
|
||||||
import { AdminPanelHealthServiceStatus } from '~/generated-metadata/graphql';
|
import { AdminPanelHealthServiceStatus } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
export const SettingsAdminHealthStatusRightContainer = ({
|
export const SettingsAdminHealthStatusRightContainer = ({
|
||||||
status,
|
status,
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { SettingsAdminConnectedAccountHealthStatus } from '@/settings/admin-pane
|
||||||
import { SettingsAdminJsonDataIndicatorHealthStatus } from '@/settings/admin-panel/health-status/components/SettingsAdminJsonDataIndicatorHealthStatus';
|
import { SettingsAdminJsonDataIndicatorHealthStatus } from '@/settings/admin-panel/health-status/components/SettingsAdminJsonDataIndicatorHealthStatus';
|
||||||
import { SettingsAdminWorkerHealthStatus } from '@/settings/admin-panel/health-status/components/SettingsAdminWorkerHealthStatus';
|
import { SettingsAdminWorkerHealthStatus } from '@/settings/admin-panel/health-status/components/SettingsAdminWorkerHealthStatus';
|
||||||
import { useParams } from 'react-router-dom';
|
import { useParams } from 'react-router-dom';
|
||||||
import { HealthIndicatorId } from '~/generated-metadata/graphql';
|
import { HealthIndicatorId } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
export const SettingsAdminIndicatorHealthStatusContent = () => {
|
export const SettingsAdminIndicatorHealthStatusContent = () => {
|
||||||
const { indicatorId } = useParams();
|
const { indicatorId } = useParams();
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import { t } from '@lingui/core/macro';
|
||||||
import { JsonTree } from 'twenty-ui/json-visualizer';
|
import { JsonTree } from 'twenty-ui/json-visualizer';
|
||||||
import { AnimatedExpandableContainer } from 'twenty-ui/layout';
|
import { AnimatedExpandableContainer } from 'twenty-ui/layout';
|
||||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||||
import { type QueueJob } from '~/generated-metadata/graphql';
|
import { type QueueJob } from '~/generated-admin/graphql';
|
||||||
import { useCopyToClipboard } from '~/hooks/useCopyToClipboard';
|
import { useCopyToClipboard } from '~/hooks/useCopyToClipboard';
|
||||||
|
|
||||||
type SettingsAdminJobDetailsExpandableProps = {
|
type SettingsAdminJobDetailsExpandableProps = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { styled } from '@linaria/react';
|
import { styled } from '@linaria/react';
|
||||||
import { Tag, type TagColor } from 'twenty-ui/components';
|
import { Tag, type TagColor } from 'twenty-ui/components';
|
||||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||||
import { JobState } from '~/generated-metadata/graphql';
|
import { JobState } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
type SettingsAdminJobStateBadgeProps = {
|
type SettingsAdminJobStateBadgeProps = {
|
||||||
state: JobState;
|
state: JobState;
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import { useContext } from 'react';
|
||||||
import { JsonTree } from 'twenty-ui/json-visualizer';
|
import { JsonTree } from 'twenty-ui/json-visualizer';
|
||||||
import { Section } from 'twenty-ui/layout';
|
import { Section } from 'twenty-ui/layout';
|
||||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||||
import { AdminPanelHealthServiceStatus } from '~/generated-metadata/graphql';
|
import { AdminPanelHealthServiceStatus } from '~/generated-admin/graphql';
|
||||||
import { useCopyToClipboard } from '~/hooks/useCopyToClipboard';
|
import { useCopyToClipboard } from '~/hooks/useCopyToClipboard';
|
||||||
|
|
||||||
const StyledDetailsContainer = styled.div`
|
const StyledDetailsContainer = styled.div`
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import { t } from '@lingui/core/macro';
|
||||||
import { IconDotsVertical, IconRefresh, IconTrash } from 'twenty-ui/display';
|
import { IconDotsVertical, IconRefresh, IconTrash } from 'twenty-ui/display';
|
||||||
import { LightIconButton } from 'twenty-ui/input';
|
import { LightIconButton } from 'twenty-ui/input';
|
||||||
import { MenuItem } from 'twenty-ui/navigation';
|
import { MenuItem } from 'twenty-ui/navigation';
|
||||||
import { JobState } from '~/generated-metadata/graphql';
|
import { JobState } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
type SettingsAdminQueueJobRowDropdownMenuProps = {
|
type SettingsAdminQueueJobRowDropdownMenuProps = {
|
||||||
jobId: string;
|
jobId: string;
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import { SettingsAdminJobDetailsExpandable } from '@/settings/admin-panel/health
|
||||||
import { SettingsAdminJobStateBadge } from '@/settings/admin-panel/health-status/components/SettingsAdminJobStateBadge';
|
import { SettingsAdminJobStateBadge } from '@/settings/admin-panel/health-status/components/SettingsAdminJobStateBadge';
|
||||||
import { SettingsAdminQueueJobRowDropdownMenu } from '@/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu';
|
import { SettingsAdminQueueJobRowDropdownMenu } from '@/settings/admin-panel/health-status/components/SettingsAdminQueueJobRowDropdownMenu';
|
||||||
import { SettingsAdminRetryJobsConfirmationModal } from '@/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal';
|
import { SettingsAdminRetryJobsConfirmationModal } from '@/settings/admin-panel/health-status/components/SettingsAdminRetryJobsConfirmationModal';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { useDeleteJobs } from '@/settings/admin-panel/health-status/hooks/useDeleteJobs';
|
import { useDeleteJobs } from '@/settings/admin-panel/health-status/hooks/useDeleteJobs';
|
||||||
import { useRetryJobs } from '@/settings/admin-panel/health-status/hooks/useRetryJobs';
|
import { useRetryJobs } from '@/settings/admin-panel/health-status/hooks/useRetryJobs';
|
||||||
import { Select } from '@/ui/input/components/Select';
|
import { Select } from '@/ui/input/components/Select';
|
||||||
|
|
@ -24,7 +25,7 @@ import {
|
||||||
JobState,
|
JobState,
|
||||||
type QueueJob,
|
type QueueJob,
|
||||||
GetQueueJobsDocument,
|
GetQueueJobsDocument,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
import { beautifyPastDateRelativeToNow } from '~/utils/date-utils';
|
import { beautifyPastDateRelativeToNow } from '~/utils/date-utils';
|
||||||
|
|
||||||
type SettingsAdminQueueJobsTableProps = {
|
type SettingsAdminQueueJobsTableProps = {
|
||||||
|
|
@ -74,6 +75,7 @@ export const SettingsAdminQueueJobsTable = ({
|
||||||
queueName,
|
queueName,
|
||||||
onRetentionConfigLoaded,
|
onRetentionConfigLoaded,
|
||||||
}: SettingsAdminQueueJobsTableProps) => {
|
}: SettingsAdminQueueJobsTableProps) => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const [page, setPage] = useState(0);
|
const [page, setPage] = useState(0);
|
||||||
const [stateFilter, setStateFilter] = useState<JobState>(JobState.COMPLETED);
|
const [stateFilter, setStateFilter] = useState<JobState>(JobState.COMPLETED);
|
||||||
const [expandedJobId, setExpandedJobId] = useState<string | null>(null);
|
const [expandedJobId, setExpandedJobId] = useState<string | null>(null);
|
||||||
|
|
@ -93,6 +95,7 @@ export const SettingsAdminQueueJobsTable = ({
|
||||||
const offset = page * LIMIT;
|
const offset = page * LIMIT;
|
||||||
|
|
||||||
const { data, loading, refetch } = useQuery(GetQueueJobsDocument, {
|
const { data, loading, refetch } = useQuery(GetQueueJobsDocument, {
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: {
|
variables: {
|
||||||
queueName,
|
queueName,
|
||||||
state: stateFilter,
|
state: stateFilter,
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { SettingsAdminWorkerQueueMetricsSection } from '@/settings/admin-panel/h
|
||||||
import { styled } from '@linaria/react';
|
import { styled } from '@linaria/react';
|
||||||
import { t } from '@lingui/core/macro';
|
import { t } from '@lingui/core/macro';
|
||||||
import { useContext } from 'react';
|
import { useContext } from 'react';
|
||||||
import { AdminPanelHealthServiceStatus } from '~/generated-metadata/graphql';
|
import { AdminPanelHealthServiceStatus } from '~/generated-admin/graphql';
|
||||||
import { SettingsAdminIndicatorHealthContext } from '@/settings/admin-panel/health-status/contexts/SettingsAdminIndicatorHealthContext';
|
import { SettingsAdminIndicatorHealthContext } from '@/settings/admin-panel/health-status/contexts/SettingsAdminIndicatorHealthContext';
|
||||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import { isDefined } from 'twenty-shared/utils';
|
import { isDefined } from 'twenty-shared/utils';
|
||||||
import { SettingsTableCard } from '@/settings/components/SettingsTableCard';
|
import { SettingsTableCard } from '@/settings/components/SettingsTableCard';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { SettingsAdminWorkerMetricsTooltip } from '@/settings/admin-panel/health-status/components/SettingsAdminWorkerMetricsTooltip';
|
import { SettingsAdminWorkerMetricsTooltip } from '@/settings/admin-panel/health-status/components/SettingsAdminWorkerMetricsTooltip';
|
||||||
import { useSnackBarOnQueryError } from '@/apollo/hooks/useSnackBarOnQueryError';
|
import { useSnackBarOnQueryError } from '@/apollo/hooks/useSnackBarOnQueryError';
|
||||||
import { styled } from '@linaria/react';
|
import { styled } from '@linaria/react';
|
||||||
|
|
@ -11,7 +12,7 @@ import { useQuery } from '@apollo/client/react';
|
||||||
import {
|
import {
|
||||||
QueueMetricsTimeRange,
|
QueueMetricsTimeRange,
|
||||||
GetQueueMetricsDocument,
|
GetQueueMetricsDocument,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
const StyledGraphContainer = styled.div`
|
const StyledGraphContainer = styled.div`
|
||||||
background-color: ${themeCssVariables.background.secondary};
|
background-color: ${themeCssVariables.background.secondary};
|
||||||
|
|
@ -48,9 +49,11 @@ export const SettingsAdminWorkerMetricsGraph = ({
|
||||||
queueName,
|
queueName,
|
||||||
timeRange,
|
timeRange,
|
||||||
}: SettingsAdminWorkerMetricsGraphProps) => {
|
}: SettingsAdminWorkerMetricsGraphProps) => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const { theme } = useContext(ThemeContext);
|
const { theme } = useContext(ThemeContext);
|
||||||
|
|
||||||
const { loading, data, error } = useQuery(GetQueueMetricsDocument, {
|
const { loading, data, error } = useQuery(GetQueueMetricsDocument, {
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: {
|
variables: {
|
||||||
queueName,
|
queueName,
|
||||||
timeRange,
|
timeRange,
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||||
import {
|
import {
|
||||||
type AdminPanelWorkerQueueHealth,
|
type AdminPanelWorkerQueueHealth,
|
||||||
QueueMetricsTimeRange,
|
QueueMetricsTimeRange,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
const SettingsAdminWorkerMetricsGraph = lazy(() =>
|
const SettingsAdminWorkerMetricsGraph = lazy(() =>
|
||||||
import('./SettingsAdminWorkerMetricsGraph').then((module) => ({
|
import('./SettingsAdminWorkerMetricsGraph').then((module) => ({
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { msg } from '@lingui/core/macro';
|
import { msg } from '@lingui/core/macro';
|
||||||
import { QueueMetricsTimeRange } from '~/generated-metadata/graphql';
|
import { QueueMetricsTimeRange } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
export const WORKER_QUEUE_METRICS_SELECT_OPTIONS = [
|
export const WORKER_QUEUE_METRICS_SELECT_OPTIONS = [
|
||||||
{ value: QueueMetricsTimeRange.SevenDays, label: msg`This week` },
|
{ value: QueueMetricsTimeRange.SevenDays, label: msg`This week` },
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import {
|
||||||
AdminPanelHealthServiceStatus,
|
AdminPanelHealthServiceStatus,
|
||||||
HealthIndicatorId,
|
HealthIndicatorId,
|
||||||
type AdminPanelHealthServiceData,
|
type AdminPanelHealthServiceData,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
type SettingsAdminIndicatorHealthContextType = {
|
type SettingsAdminIndicatorHealthContextType = {
|
||||||
indicatorHealth: AdminPanelHealthServiceData;
|
indicatorHealth: AdminPanelHealthServiceData;
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,20 @@
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
|
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
|
||||||
import { CombinedGraphQLErrors } from '@apollo/client/errors';
|
import { CombinedGraphQLErrors } from '@apollo/client/errors';
|
||||||
import { plural, t } from '@lingui/core/macro';
|
import { plural, t } from '@lingui/core/macro';
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import { isDefined } from 'twenty-shared/utils';
|
import { isDefined } from 'twenty-shared/utils';
|
||||||
import { useMutation } from '@apollo/client/react';
|
import { useMutation } from '@apollo/client/react';
|
||||||
import { DeleteJobsDocument } from '~/generated-metadata/graphql';
|
import { DeleteJobsDocument } from '~/generated-admin/graphql';
|
||||||
import { getErrorMessageFromApolloError } from '~/utils/get-error-message-from-apollo-error.util';
|
import { getErrorMessageFromApolloError } from '~/utils/get-error-message-from-apollo-error.util';
|
||||||
|
|
||||||
export const useDeleteJobs = (queueName: string, onSuccess?: () => void) => {
|
export const useDeleteJobs = (queueName: string, onSuccess?: () => void) => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const { enqueueSuccessSnackBar, enqueueErrorSnackBar } = useSnackBar();
|
const { enqueueSuccessSnackBar, enqueueErrorSnackBar } = useSnackBar();
|
||||||
const [isDeleting, setIsDeleting] = useState(false);
|
const [isDeleting, setIsDeleting] = useState(false);
|
||||||
const [deleteJobsMutation] = useMutation(DeleteJobsDocument);
|
const [deleteJobsMutation] = useMutation(DeleteJobsDocument, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
|
||||||
const deleteJobs = async (jobIds: string[]) => {
|
const deleteJobs = async (jobIds: string[]) => {
|
||||||
setIsDeleting(true);
|
setIsDeleting(true);
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,20 @@
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
|
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
|
||||||
import { CombinedGraphQLErrors } from '@apollo/client/errors';
|
import { CombinedGraphQLErrors } from '@apollo/client/errors';
|
||||||
import { plural, t } from '@lingui/core/macro';
|
import { plural, t } from '@lingui/core/macro';
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import { isDefined } from 'twenty-shared/utils';
|
import { isDefined } from 'twenty-shared/utils';
|
||||||
import { useMutation } from '@apollo/client/react';
|
import { useMutation } from '@apollo/client/react';
|
||||||
import { RetryJobsDocument } from '~/generated-metadata/graphql';
|
import { RetryJobsDocument } from '~/generated-admin/graphql';
|
||||||
import { getErrorMessageFromApolloError } from '~/utils/get-error-message-from-apollo-error.util';
|
import { getErrorMessageFromApolloError } from '~/utils/get-error-message-from-apollo-error.util';
|
||||||
|
|
||||||
export const useRetryJobs = (queueName: string, onSuccess?: () => void) => {
|
export const useRetryJobs = (queueName: string, onSuccess?: () => void) => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const { enqueueSuccessSnackBar, enqueueErrorSnackBar } = useSnackBar();
|
const { enqueueSuccessSnackBar, enqueueErrorSnackBar } = useSnackBar();
|
||||||
const [isRetrying, setIsRetrying] = useState(false);
|
const [isRetrying, setIsRetrying] = useState(false);
|
||||||
const [retryJobsMutation] = useMutation(RetryJobsDocument);
|
const [retryJobsMutation] = useMutation(RetryJobsDocument, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
|
||||||
const retryJobs = async (jobIds: string[]) => {
|
const retryJobs = async (jobIds: string[]) => {
|
||||||
setIsRetrying(true);
|
setIsRetrying(true);
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import { Card, CardContent, Section } from 'twenty-ui/layout';
|
||||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||||
|
|
||||||
import { maintenanceModeState } from '@/client-config/states/maintenanceModeState';
|
import { maintenanceModeState } from '@/client-config/states/maintenanceModeState';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { CLEAR_MAINTENANCE_MODE } from '@/settings/admin-panel/health-status/maintenance-mode/graphql/mutations/clearMaintenanceMode';
|
import { CLEAR_MAINTENANCE_MODE } from '@/settings/admin-panel/health-status/maintenance-mode/graphql/mutations/clearMaintenanceMode';
|
||||||
import { SET_MAINTENANCE_MODE } from '@/settings/admin-panel/health-status/maintenance-mode/graphql/mutations/setMaintenanceMode';
|
import { SET_MAINTENANCE_MODE } from '@/settings/admin-panel/health-status/maintenance-mode/graphql/mutations/setMaintenanceMode';
|
||||||
import { adminPanelMaintenanceModeState } from '@/settings/admin-panel/health-status/maintenance-mode/states/adminPanelMaintenanceModeState';
|
import { adminPanelMaintenanceModeState } from '@/settings/admin-panel/health-status/maintenance-mode/states/adminPanelMaintenanceModeState';
|
||||||
|
|
@ -34,6 +35,7 @@ const StyledStatusRow = styled.div`
|
||||||
`;
|
`;
|
||||||
|
|
||||||
export const SettingsAdminMaintenanceMode = () => {
|
export const SettingsAdminMaintenanceMode = () => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const [adminPanelMaintenanceMode, setAdminPanelMaintenanceMode] =
|
const [adminPanelMaintenanceMode, setAdminPanelMaintenanceMode] =
|
||||||
useAtomState(adminPanelMaintenanceModeState);
|
useAtomState(adminPanelMaintenanceModeState);
|
||||||
|
|
||||||
|
|
@ -43,8 +45,12 @@ export const SettingsAdminMaintenanceMode = () => {
|
||||||
const { userTimezone } = useUserTimezone();
|
const { userTimezone } = useUserTimezone();
|
||||||
const { enqueueErrorSnackBar } = useSnackBar();
|
const { enqueueErrorSnackBar } = useSnackBar();
|
||||||
|
|
||||||
const [setMaintenanceModeMutation] = useMutation(SET_MAINTENANCE_MODE);
|
const [setMaintenanceModeMutation] = useMutation(SET_MAINTENANCE_MODE, {
|
||||||
const [clearMaintenanceModeMutation] = useMutation(CLEAR_MAINTENANCE_MODE);
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
const [clearMaintenanceModeMutation] = useMutation(CLEAR_MAINTENANCE_MODE, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
|
||||||
const isEnabled = isDefined(adminPanelMaintenanceMode);
|
const isEnabled = isDefined(adminPanelMaintenanceMode);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,16 @@ import { useQuery } from '@apollo/client/react';
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { isDefined } from 'twenty-shared/utils';
|
import { isDefined } from 'twenty-shared/utils';
|
||||||
|
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { GET_MAINTENANCE_MODE } from '@/settings/admin-panel/health-status/maintenance-mode/graphql/queries/getMaintenanceMode';
|
import { GET_MAINTENANCE_MODE } from '@/settings/admin-panel/health-status/maintenance-mode/graphql/queries/getMaintenanceMode';
|
||||||
import { adminPanelMaintenanceModeState } from '@/settings/admin-panel/health-status/maintenance-mode/states/adminPanelMaintenanceModeState';
|
import { adminPanelMaintenanceModeState } from '@/settings/admin-panel/health-status/maintenance-mode/states/adminPanelMaintenanceModeState';
|
||||||
import { useSetAtomState } from '@/ui/utilities/state/jotai/hooks/useSetAtomState';
|
import { useSetAtomState } from '@/ui/utilities/state/jotai/hooks/useSetAtomState';
|
||||||
import { type GetMaintenanceModeQuery } from '~/generated-metadata/graphql';
|
import { type GetMaintenanceModeQuery } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
export const SettingsAdminMaintenanceModeFetchEffect = () => {
|
export const SettingsAdminMaintenanceModeFetchEffect = () => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const { data } = useQuery<GetMaintenanceModeQuery>(GET_MAINTENANCE_MODE, {
|
const { data } = useQuery<GetMaintenanceModeQuery>(GET_MAINTENANCE_MODE, {
|
||||||
|
client: apolloAdminClient,
|
||||||
fetchPolicy: 'network-only',
|
fetchPolicy: 'network-only',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
||||||
import { useAtomState } from '@/ui/utilities/state/jotai/hooks/useAtomState';
|
import { useAtomState } from '@/ui/utilities/state/jotai/hooks/useAtomState';
|
||||||
import { isDefined } from 'twenty-shared/utils';
|
import { isDefined } from 'twenty-shared/utils';
|
||||||
import { type FeatureFlagKey } from '~/generated-metadata/graphql';
|
import { type FeatureFlagKey } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
export const useFeatureFlagState = () => {
|
export const useFeatureFlagState = () => {
|
||||||
const [currentWorkspace, setCurrentWorkspace] = useAtomState(
|
const [currentWorkspace, setCurrentWorkspace] = useAtomState(
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { type WorkspaceLookupAdminPanelQuery } from '~/generated-metadata/graphql';
|
import { type WorkspaceLookupAdminPanelQuery } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
export type WorkspaceInfo =
|
export type WorkspaceInfo =
|
||||||
WorkspaceLookupAdminPanelQuery['workspaceLookupAdminPanel']['workspaces'][number];
|
WorkspaceLookupAdminPanelQuery['workspaceLookupAdminPanel']['workspaces'][number];
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ import { Section } from 'twenty-ui/layout';
|
||||||
import { RoundedLink, UndecoratedLink } from 'twenty-ui/navigation';
|
import { RoundedLink, UndecoratedLink } from 'twenty-ui/navigation';
|
||||||
|
|
||||||
import { useClientConfig } from '@/client-config/hooks/useClientConfig';
|
import { useClientConfig } from '@/client-config/hooks/useClientConfig';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { SettingsSkeletonLoader } from '@/settings/components/SettingsSkeletonLoader';
|
import { SettingsSkeletonLoader } from '@/settings/components/SettingsSkeletonLoader';
|
||||||
import { SettingsAiModelsTable } from '@/settings/ai/components/SettingsAiModelsTable';
|
import { SettingsAiModelsTable } from '@/settings/ai/components/SettingsAiModelsTable';
|
||||||
import { REMOVE_AI_PROVIDER } from '@/settings/admin-panel/ai/graphql/mutations/removeAiProvider';
|
import { REMOVE_AI_PROVIDER } from '@/settings/admin-panel/ai/graphql/mutations/removeAiProvider';
|
||||||
|
|
@ -43,13 +44,14 @@ import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBa
|
||||||
import {
|
import {
|
||||||
type AdminAiModelConfig,
|
type AdminAiModelConfig,
|
||||||
SetAdminAiModelEnabledDocument,
|
SetAdminAiModelEnabledDocument,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
const REMOVE_PROVIDER_MODAL_ID = 'settings-ai-provider-remove';
|
const REMOVE_PROVIDER_MODAL_ID = 'settings-ai-provider-remove';
|
||||||
const REMOVE_MODEL_MODAL_ID = 'settings-ai-model-remove';
|
const REMOVE_MODEL_MODAL_ID = 'settings-ai-model-remove';
|
||||||
|
|
||||||
export const SettingsAdminAiProviderDetail = () => {
|
export const SettingsAdminAiProviderDetail = () => {
|
||||||
const { providerName } = useParams<{ providerName: string }>();
|
const { providerName } = useParams<{ providerName: string }>();
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const { enqueueErrorSnackBar, enqueueSuccessSnackBar } = useSnackBar();
|
const { enqueueErrorSnackBar, enqueueSuccessSnackBar } = useSnackBar();
|
||||||
const { refetch: refetchClientConfig } = useClientConfig();
|
const { refetch: refetchClientConfig } = useClientConfig();
|
||||||
|
|
@ -62,7 +64,9 @@ export const SettingsAdminAiProviderDetail = () => {
|
||||||
} | null>(null);
|
} | null>(null);
|
||||||
|
|
||||||
const { data: providersData, loading: isLoadingProviders } =
|
const { data: providersData, loading: isLoadingProviders } =
|
||||||
useQuery<GetAiProvidersResult>(GET_AI_PROVIDERS);
|
useQuery<GetAiProvidersResult>(GET_AI_PROVIDERS, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
|
||||||
const {
|
const {
|
||||||
data: modelsData,
|
data: modelsData,
|
||||||
|
|
@ -72,12 +76,20 @@ export const SettingsAdminAiProviderDetail = () => {
|
||||||
getAdminAiModels: {
|
getAdminAiModels: {
|
||||||
models: AdminAiModelConfig[];
|
models: AdminAiModelConfig[];
|
||||||
};
|
};
|
||||||
}>(GET_ADMIN_AI_MODELS);
|
}>(GET_ADMIN_AI_MODELS, { client: apolloAdminClient });
|
||||||
|
|
||||||
const [setModelEnabled] = useMutation(SetAdminAiModelEnabledDocument);
|
const [setModelEnabled] = useMutation(SetAdminAiModelEnabledDocument, {
|
||||||
const [setModelsEnabled] = useMutation(SET_ADMIN_AI_MODELS_ENABLED);
|
client: apolloAdminClient,
|
||||||
const [removeAiProvider] = useMutation(REMOVE_AI_PROVIDER);
|
});
|
||||||
const [removeModelFromProvider] = useMutation(REMOVE_MODEL_FROM_PROVIDER);
|
const [setModelsEnabled] = useMutation(SET_ADMIN_AI_MODELS_ENABLED, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
const [removeAiProvider] = useMutation(REMOVE_AI_PROVIDER, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
const [removeModelFromProvider] = useMutation(REMOVE_MODEL_FROM_PROVIDER, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
|
||||||
const handleRemoveProvider = async () => {
|
const handleRemoveProvider = async () => {
|
||||||
if (!providerName) {
|
if (!providerName) {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
import { useParams } from 'react-router-dom';
|
import { useParams } from 'react-router-dom';
|
||||||
import { useQuery } from '@apollo/client/react';
|
import { useQuery } from '@apollo/client/react';
|
||||||
import { FindOneAdminApplicationRegistrationDocument } from '~/generated-metadata/graphql';
|
import { FindOneAdminApplicationRegistrationDocument } from '~/generated-admin/graphql';
|
||||||
import { getSettingsPath, isDefined } from 'twenty-shared/utils';
|
import { getSettingsPath, isDefined } from 'twenty-shared/utils';
|
||||||
import { SettingsPath } from 'twenty-shared/types';
|
import { SettingsPath } from 'twenty-shared/types';
|
||||||
import { useLingui } from '@lingui/react/macro';
|
import { useLingui } from '@lingui/react/macro';
|
||||||
import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer';
|
import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { APPLICATION_REGISTRATION_ADMIN_PATH } from '@/settings/admin-panel/apps/constants/ApplicationRegistrationAdminPath';
|
import { APPLICATION_REGISTRATION_ADMIN_PATH } from '@/settings/admin-panel/apps/constants/ApplicationRegistrationAdminPath';
|
||||||
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
||||||
import {
|
import {
|
||||||
|
|
@ -26,6 +27,7 @@ const REGISTRATION_DETAIL_TAB_LIST_ID =
|
||||||
|
|
||||||
export const SettingsAdminApplicationRegistrationDetail = () => {
|
export const SettingsAdminApplicationRegistrationDetail = () => {
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
|
|
||||||
const activeTabId = useAtomComponentStateValue(
|
const activeTabId = useAtomComponentStateValue(
|
||||||
activeTabIdComponentState,
|
activeTabIdComponentState,
|
||||||
|
|
@ -39,6 +41,7 @@ export const SettingsAdminApplicationRegistrationDetail = () => {
|
||||||
const { data, loading } = useQuery(
|
const { data, loading } = useQuery(
|
||||||
FindOneAdminApplicationRegistrationDocument,
|
FindOneAdminApplicationRegistrationDocument,
|
||||||
{
|
{
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: { id: applicationRegistrationId },
|
variables: { id: applicationRegistrationId },
|
||||||
skip: !applicationRegistrationId,
|
skip: !applicationRegistrationId,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import { useState } from 'react';
|
||||||
import { useParams } from 'react-router-dom';
|
import { useParams } from 'react-router-dom';
|
||||||
|
|
||||||
import { isConfigVariablesInDbEnabledState } from '@/client-config/states/isConfigVariablesInDbEnabledState';
|
import { isConfigVariablesInDbEnabledState } from '@/client-config/states/isConfigVariablesInDbEnabledState';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { ConfigVariableHelpText } from '@/settings/admin-panel/config-variables/components/ConfigVariableHelpText';
|
import { ConfigVariableHelpText } from '@/settings/admin-panel/config-variables/components/ConfigVariableHelpText';
|
||||||
import { ConfigVariableValueInput } from '@/settings/admin-panel/config-variables/components/ConfigVariableValueInput';
|
import { ConfigVariableValueInput } from '@/settings/admin-panel/config-variables/components/ConfigVariableValueInput';
|
||||||
import { useConfigVariableActions } from '@/settings/admin-panel/config-variables/hooks/useConfigVariableActions';
|
import { useConfigVariableActions } from '@/settings/admin-panel/config-variables/hooks/useConfigVariableActions';
|
||||||
|
|
@ -16,7 +17,7 @@ import { useQuery } from '@apollo/client/react';
|
||||||
import {
|
import {
|
||||||
ConfigSource,
|
ConfigSource,
|
||||||
GetDatabaseConfigVariableDocument,
|
GetDatabaseConfigVariableDocument,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
const hasMeaningfulValue = (value: ConfigVariableValue): boolean => {
|
const hasMeaningfulValue = (value: ConfigVariableValue): boolean => {
|
||||||
if (value === null || value === undefined) {
|
if (value === null || value === undefined) {
|
||||||
|
|
@ -33,6 +34,7 @@ const hasMeaningfulValue = (value: ConfigVariableValue): boolean => {
|
||||||
|
|
||||||
export const SettingsAdminConfigVariableDetails = () => {
|
export const SettingsAdminConfigVariableDetails = () => {
|
||||||
const { variableName } = useParams();
|
const { variableName } = useParams();
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
|
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
|
||||||
|
|
@ -45,6 +47,7 @@ export const SettingsAdminConfigVariableDetails = () => {
|
||||||
const { data: configVariableData, loading } = useQuery(
|
const { data: configVariableData, loading } = useQuery(
|
||||||
GetDatabaseConfigVariableDocument,
|
GetDatabaseConfigVariableDocument,
|
||||||
{
|
{
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: { key: variableName ?? '' },
|
variables: { key: variableName ?? '' },
|
||||||
fetchPolicy: 'network-only',
|
fetchPolicy: 'network-only',
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { SettingsAdminHealthStatusRightContainer } from '@/settings/admin-panel/health-status/components/SettingsAdminHealthStatusRightContainer';
|
import { SettingsAdminHealthStatusRightContainer } from '@/settings/admin-panel/health-status/components/SettingsAdminHealthStatusRightContainer';
|
||||||
import { SettingsAdminIndicatorHealthStatusContent } from '@/settings/admin-panel/health-status/components/SettingsAdminIndicatorHealthStatusContent';
|
import { SettingsAdminIndicatorHealthStatusContent } from '@/settings/admin-panel/health-status/components/SettingsAdminIndicatorHealthStatusContent';
|
||||||
import { SettingsAdminIndicatorHealthContext } from '@/settings/admin-panel/health-status/contexts/SettingsAdminIndicatorHealthContext';
|
import { SettingsAdminIndicatorHealthContext } from '@/settings/admin-panel/health-status/contexts/SettingsAdminIndicatorHealthContext';
|
||||||
|
|
@ -17,7 +18,7 @@ import {
|
||||||
AdminPanelHealthServiceStatus,
|
AdminPanelHealthServiceStatus,
|
||||||
HealthIndicatorId,
|
HealthIndicatorId,
|
||||||
GetIndicatorHealthStatusDocument,
|
GetIndicatorHealthStatusDocument,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
const StyledTitleContainer = styled.div`
|
const StyledTitleContainer = styled.div`
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
@ -29,9 +30,11 @@ const StyledTitleContainer = styled.div`
|
||||||
export const SettingsAdminIndicatorHealthStatus = () => {
|
export const SettingsAdminIndicatorHealthStatus = () => {
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
const { indicatorId } = useParams();
|
const { indicatorId } = useParams();
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const { data, loading: loadingIndicatorHealthStatus } = useQuery(
|
const { data, loading: loadingIndicatorHealthStatus } = useQuery(
|
||||||
GetIndicatorHealthStatusDocument,
|
GetIndicatorHealthStatusDocument,
|
||||||
{
|
{
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: {
|
variables: {
|
||||||
indicatorId: indicatorId as HealthIndicatorId,
|
indicatorId: indicatorId as HealthIndicatorId,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import { H2Title, IconPlus } from 'twenty-ui/display';
|
||||||
import { Section } from 'twenty-ui/layout';
|
import { Section } from 'twenty-ui/layout';
|
||||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||||
|
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { ADD_MODEL_TO_PROVIDER } from '@/settings/admin-panel/ai/graphql/mutations/addModelToProvider';
|
import { ADD_MODEL_TO_PROVIDER } from '@/settings/admin-panel/ai/graphql/mutations/addModelToProvider';
|
||||||
import { GET_ADMIN_AI_MODELS } from '@/settings/admin-panel/ai/graphql/queries/getAdminAiModels';
|
import { GET_ADMIN_AI_MODELS } from '@/settings/admin-panel/ai/graphql/queries/getAdminAiModels';
|
||||||
import { GET_AI_PROVIDERS } from '@/settings/admin-panel/ai/graphql/queries/getAiProviders';
|
import { GET_AI_PROVIDERS } from '@/settings/admin-panel/ai/graphql/queries/getAiProviders';
|
||||||
|
|
@ -79,14 +80,19 @@ type FormValues = {
|
||||||
|
|
||||||
export const SettingsAdminNewAiModel = () => {
|
export const SettingsAdminNewAiModel = () => {
|
||||||
const { providerName } = useParams<{ providerName: string }>();
|
const { providerName } = useParams<{ providerName: string }>();
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
const { enqueueSuccessSnackBar, enqueueErrorSnackBar } = useSnackBar();
|
const { enqueueSuccessSnackBar, enqueueErrorSnackBar } = useSnackBar();
|
||||||
const [isSubmitting, setIsSubmitting] = useState(false);
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
||||||
const [isCustomModelId, setIsCustomModelId] = useState(false);
|
const [isCustomModelId, setIsCustomModelId] = useState(false);
|
||||||
|
|
||||||
const { data: providersData } =
|
const { data: providersData } = useQuery<GetAiProvidersResult>(
|
||||||
useQuery<GetAiProvidersResult>(GET_AI_PROVIDERS);
|
GET_AI_PROVIDERS,
|
||||||
|
{
|
||||||
|
client: apolloAdminClient,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
const provider =
|
const provider =
|
||||||
providerName && providersData?.getAiProviders
|
providerName && providersData?.getAiProviders
|
||||||
|
|
@ -98,6 +104,7 @@ export const SettingsAdminNewAiModel = () => {
|
||||||
const { data: suggestionsData } = useQuery<{
|
const { data: suggestionsData } = useQuery<{
|
||||||
getModelsDevSuggestions: ModelSuggestion[];
|
getModelsDevSuggestions: ModelSuggestion[];
|
||||||
}>(GET_MODELS_DEV_SUGGESTIONS, {
|
}>(GET_MODELS_DEV_SUGGESTIONS, {
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: { providerType: modelsDevName ?? '' },
|
variables: { providerType: modelsDevName ?? '' },
|
||||||
skip: !modelsDevName,
|
skip: !modelsDevName,
|
||||||
});
|
});
|
||||||
|
|
@ -122,7 +129,9 @@ export const SettingsAdminNewAiModel = () => {
|
||||||
label: `${suggestion.name} (${suggestion.modelId})`,
|
label: `${suggestion.name} (${suggestion.modelId})`,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const [addModelToProvider] = useMutation(ADD_MODEL_TO_PROVIDER);
|
const [addModelToProvider] = useMutation(ADD_MODEL_TO_PROVIDER, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
|
||||||
const form = useForm<FormValues>({
|
const form = useForm<FormValues>({
|
||||||
mode: 'onSubmit',
|
mode: 'onSubmit',
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import { Section } from 'twenty-ui/layout';
|
||||||
|
|
||||||
import { AI_ADMIN_PATH } from '@/settings/admin-panel/ai/constants/AiAdminPath';
|
import { AI_ADMIN_PATH } from '@/settings/admin-panel/ai/constants/AiAdminPath';
|
||||||
import { DATA_RESIDENCY_OPTIONS } from '@/settings/admin-panel/ai/constants/DataResidencyOptions';
|
import { DATA_RESIDENCY_OPTIONS } from '@/settings/admin-panel/ai/constants/DataResidencyOptions';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { ADD_AI_PROVIDER } from '@/settings/admin-panel/ai/graphql/mutations/addAiProvider';
|
import { ADD_AI_PROVIDER } from '@/settings/admin-panel/ai/graphql/mutations/addAiProvider';
|
||||||
import { GET_ADMIN_AI_MODELS } from '@/settings/admin-panel/ai/graphql/queries/getAdminAiModels';
|
import { GET_ADMIN_AI_MODELS } from '@/settings/admin-panel/ai/graphql/queries/getAdminAiModels';
|
||||||
import { GET_AI_PROVIDERS } from '@/settings/admin-panel/ai/graphql/queries/getAiProviders';
|
import { GET_AI_PROVIDERS } from '@/settings/admin-panel/ai/graphql/queries/getAiProviders';
|
||||||
|
|
@ -40,6 +41,7 @@ type FormValues = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export const SettingsAdminNewAiProvider = () => {
|
export const SettingsAdminNewAiProvider = () => {
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
const { enqueueSuccessSnackBar, enqueueErrorSnackBar } = useSnackBar();
|
const { enqueueSuccessSnackBar, enqueueErrorSnackBar } = useSnackBar();
|
||||||
|
|
@ -49,11 +51,13 @@ export const SettingsAdminNewAiProvider = () => {
|
||||||
);
|
);
|
||||||
const [isCustomMode, setIsCustomMode] = useState(false);
|
const [isCustomMode, setIsCustomMode] = useState(false);
|
||||||
|
|
||||||
const [addAiProvider] = useMutation(ADD_AI_PROVIDER);
|
const [addAiProvider] = useMutation(ADD_AI_PROVIDER, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
|
||||||
const { data: modelsDevData } = useQuery<{
|
const { data: modelsDevData } = useQuery<{
|
||||||
getModelsDevProviders: ModelsDevProvider[];
|
getModelsDevProviders: ModelsDevProvider[];
|
||||||
}>(GET_MODELS_DEV_PROVIDERS);
|
}>(GET_MODELS_DEV_PROVIDERS, { client: apolloAdminClient });
|
||||||
|
|
||||||
const modelsDevProviders = useMemo(
|
const modelsDevProviders = useMemo(
|
||||||
() => modelsDevData?.getModelsDevProviders ?? [],
|
() => modelsDevData?.getModelsDevProviders ?? [],
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import { SettingsPath } from 'twenty-shared/types';
|
||||||
import { getImageAbsoluteURI, getSettingsPath } from 'twenty-shared/utils';
|
import { getImageAbsoluteURI, getSettingsPath } from 'twenty-shared/utils';
|
||||||
|
|
||||||
import { currentUserState } from '@/auth/states/currentUserState';
|
import { currentUserState } from '@/auth/states/currentUserState';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { SettingsAdminWorkspaceContent } from '@/settings/admin-panel/components/SettingsAdminWorkspaceContent';
|
import { SettingsAdminWorkspaceContent } from '@/settings/admin-panel/components/SettingsAdminWorkspaceContent';
|
||||||
import { SETTINGS_ADMIN_USER_LOOKUP_WORKSPACE_TABS_ID } from '@/settings/admin-panel/constants/SettingsAdminUserLookupWorkspaceTabsId';
|
import { SETTINGS_ADMIN_USER_LOOKUP_WORKSPACE_TABS_ID } from '@/settings/admin-panel/constants/SettingsAdminUserLookupWorkspaceTabsId';
|
||||||
import { useHandleImpersonate } from '@/settings/admin-panel/hooks/useHandleImpersonate';
|
import { useHandleImpersonate } from '@/settings/admin-panel/hooks/useHandleImpersonate';
|
||||||
|
|
@ -35,7 +36,7 @@ import { REACT_APP_SERVER_BASE_URL } from '~/config';
|
||||||
import {
|
import {
|
||||||
type UserLookupAdminPanelQuery,
|
type UserLookupAdminPanelQuery,
|
||||||
UserLookupAdminPanelDocument,
|
UserLookupAdminPanelDocument,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
const StyledButtonContainer = styled.div`
|
const StyledButtonContainer = styled.div`
|
||||||
margin-top: ${themeCssVariables.spacing[3]};
|
margin-top: ${themeCssVariables.spacing[3]};
|
||||||
|
|
@ -43,6 +44,7 @@ const StyledButtonContainer = styled.div`
|
||||||
|
|
||||||
export const SettingsAdminUserDetail = () => {
|
export const SettingsAdminUserDetail = () => {
|
||||||
const { userId } = useParams<{ userId: string }>();
|
const { userId } = useParams<{ userId: string }>();
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
|
|
||||||
const activeTabId = useAtomComponentStateValue(
|
const activeTabId = useAtomComponentStateValue(
|
||||||
activeTabIdComponentState,
|
activeTabIdComponentState,
|
||||||
|
|
@ -51,6 +53,7 @@ export const SettingsAdminUserDetail = () => {
|
||||||
|
|
||||||
const { data: userLookupData, loading: isLoading } =
|
const { data: userLookupData, loading: isLoading } =
|
||||||
useQuery<UserLookupAdminPanelQuery>(UserLookupAdminPanelDocument, {
|
useQuery<UserLookupAdminPanelQuery>(UserLookupAdminPanelDocument, {
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: { userIdentifier: userId },
|
variables: { userIdentifier: userId },
|
||||||
skip: !userId,
|
skip: !userId,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import { SettingsPath } from 'twenty-shared/types';
|
||||||
import { getSettingsPath } from 'twenty-shared/utils';
|
import { getSettingsPath } from 'twenty-shared/utils';
|
||||||
|
|
||||||
import { AI_ADMIN_PATH } from '@/settings/admin-panel/ai/constants/AiAdminPath';
|
import { AI_ADMIN_PATH } from '@/settings/admin-panel/ai/constants/AiAdminPath';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { SettingsAdminChatThreadMessageList } from '@/settings/admin-panel/components/SettingsAdminChatThreadMessageList';
|
import { SettingsAdminChatThreadMessageList } from '@/settings/admin-panel/components/SettingsAdminChatThreadMessageList';
|
||||||
import { GET_ADMIN_CHAT_THREAD_MESSAGES } from '@/settings/admin-panel/graphql/queries/getAdminChatThreadMessages';
|
import { GET_ADMIN_CHAT_THREAD_MESSAGES } from '@/settings/admin-panel/graphql/queries/getAdminChatThreadMessages';
|
||||||
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
||||||
|
|
@ -13,16 +14,18 @@ import { SettingsSkeletonLoader } from '@/settings/components/SettingsSkeletonLo
|
||||||
import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer';
|
import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer';
|
||||||
import { H2Title } from 'twenty-ui/display';
|
import { H2Title } from 'twenty-ui/display';
|
||||||
import { Section } from 'twenty-ui/layout';
|
import { Section } from 'twenty-ui/layout';
|
||||||
import { type GetAdminChatThreadMessagesQuery } from '~/generated-metadata/graphql';
|
import { type GetAdminChatThreadMessagesQuery } from '~/generated-admin/graphql';
|
||||||
|
|
||||||
export const SettingsAdminWorkspaceChatThread = () => {
|
export const SettingsAdminWorkspaceChatThread = () => {
|
||||||
const { workspaceId, threadId } = useParams<{
|
const { workspaceId, threadId } = useParams<{
|
||||||
workspaceId: string;
|
workspaceId: string;
|
||||||
threadId: string;
|
threadId: string;
|
||||||
}>();
|
}>();
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
|
|
||||||
const { data, loading: isLoading } =
|
const { data, loading: isLoading } =
|
||||||
useQuery<GetAdminChatThreadMessagesQuery>(GET_ADMIN_CHAT_THREAD_MESSAGES, {
|
useQuery<GetAdminChatThreadMessagesQuery>(GET_ADMIN_CHAT_THREAD_MESSAGES, {
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: { threadId },
|
variables: { threadId },
|
||||||
skip: !threadId,
|
skip: !threadId,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import { getSettingsPath, isDefined } from 'twenty-shared/utils';
|
||||||
import { currentUserState } from '@/auth/states/currentUserState';
|
import { currentUserState } from '@/auth/states/currentUserState';
|
||||||
import { canManageFeatureFlagsState } from '@/client-config/states/canManageFeatureFlagsState';
|
import { canManageFeatureFlagsState } from '@/client-config/states/canManageFeatureFlagsState';
|
||||||
import { AI_ADMIN_PATH } from '@/settings/admin-panel/ai/constants/AiAdminPath';
|
import { AI_ADMIN_PATH } from '@/settings/admin-panel/ai/constants/AiAdminPath';
|
||||||
|
import { useApolloAdminClient } from '@/settings/admin-panel/apollo/hooks/useApolloAdminClient';
|
||||||
import { SettingsAdminWorkspaceContent } from '@/settings/admin-panel/components/SettingsAdminWorkspaceContent';
|
import { SettingsAdminWorkspaceContent } from '@/settings/admin-panel/components/SettingsAdminWorkspaceContent';
|
||||||
import { GET_ADMIN_WORKSPACE_CHAT_THREADS } from '@/settings/admin-panel/graphql/queries/getAdminWorkspaceChatThreads';
|
import { GET_ADMIN_WORKSPACE_CHAT_THREADS } from '@/settings/admin-panel/graphql/queries/getAdminWorkspaceChatThreads';
|
||||||
import { WORKSPACE_LOOKUP_ADMIN_PANEL } from '@/settings/admin-panel/graphql/queries/workspaceLookupAdminPanel';
|
import { WORKSPACE_LOOKUP_ADMIN_PANEL } from '@/settings/admin-panel/graphql/queries/workspaceLookupAdminPanel';
|
||||||
|
|
@ -42,7 +43,7 @@ import {
|
||||||
type GetAdminWorkspaceChatThreadsQuery,
|
type GetAdminWorkspaceChatThreadsQuery,
|
||||||
type WorkspaceLookupAdminPanelQuery,
|
type WorkspaceLookupAdminPanelQuery,
|
||||||
UpdateWorkspaceFeatureFlagDocument,
|
UpdateWorkspaceFeatureFlagDocument,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-admin/graphql';
|
||||||
|
|
||||||
const WORKSPACE_DETAIL_TABS_ID = 'settings-admin-workspace-detail-tabs';
|
const WORKSPACE_DETAIL_TABS_ID = 'settings-admin-workspace-detail-tabs';
|
||||||
|
|
||||||
|
|
@ -55,6 +56,7 @@ const WORKSPACE_DETAIL_TAB_IDS = {
|
||||||
|
|
||||||
export const SettingsAdminWorkspaceDetail = () => {
|
export const SettingsAdminWorkspaceDetail = () => {
|
||||||
const { workspaceId } = useParams<{ workspaceId: string }>();
|
const { workspaceId } = useParams<{ workspaceId: string }>();
|
||||||
|
const apolloAdminClient = useApolloAdminClient();
|
||||||
|
|
||||||
const activeTabId = useAtomComponentStateValue(
|
const activeTabId = useAtomComponentStateValue(
|
||||||
activeTabIdComponentState,
|
activeTabIdComponentState,
|
||||||
|
|
@ -66,10 +68,13 @@ export const SettingsAdminWorkspaceDetail = () => {
|
||||||
const { enqueueErrorSnackBar } = useSnackBar();
|
const { enqueueErrorSnackBar } = useSnackBar();
|
||||||
const { updateFeatureFlagState } = useFeatureFlagState();
|
const { updateFeatureFlagState } = useFeatureFlagState();
|
||||||
const { handleImpersonate, impersonatingUserId } = useHandleImpersonate();
|
const { handleImpersonate, impersonatingUserId } = useHandleImpersonate();
|
||||||
const [updateFeatureFlag] = useMutation(UpdateWorkspaceFeatureFlagDocument);
|
const [updateFeatureFlag] = useMutation(UpdateWorkspaceFeatureFlagDocument, {
|
||||||
|
client: apolloAdminClient,
|
||||||
|
});
|
||||||
|
|
||||||
const { data: workspaceData, loading: isLoadingWorkspace } =
|
const { data: workspaceData, loading: isLoadingWorkspace } =
|
||||||
useQuery<WorkspaceLookupAdminPanelQuery>(WORKSPACE_LOOKUP_ADMIN_PANEL, {
|
useQuery<WorkspaceLookupAdminPanelQuery>(WORKSPACE_LOOKUP_ADMIN_PANEL, {
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: { workspaceId },
|
variables: { workspaceId },
|
||||||
skip: !workspaceId,
|
skip: !workspaceId,
|
||||||
});
|
});
|
||||||
|
|
@ -82,6 +87,7 @@ export const SettingsAdminWorkspaceDetail = () => {
|
||||||
useQuery<GetAdminWorkspaceChatThreadsQuery>(
|
useQuery<GetAdminWorkspaceChatThreadsQuery>(
|
||||||
GET_ADMIN_WORKSPACE_CHAT_THREADS,
|
GET_ADMIN_WORKSPACE_CHAT_THREADS,
|
||||||
{
|
{
|
||||||
|
client: apolloAdminClient,
|
||||||
variables: { workspaceId },
|
variables: { workspaceId },
|
||||||
skip:
|
skip:
|
||||||
!workspaceId ||
|
!workspaceId ||
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,7 @@ export default defineConfig(({ mode }) => {
|
||||||
include: [path.resolve(__dirname, 'src') + '/**/*.{ts,tsx}'],
|
include: [path.resolve(__dirname, 'src') + '/**/*.{ts,tsx}'],
|
||||||
exclude: [
|
exclude: [
|
||||||
'**/generated-metadata/**',
|
'**/generated-metadata/**',
|
||||||
|
'**/generated-admin/**',
|
||||||
'**/testing/mock-data/**',
|
'**/testing/mock-data/**',
|
||||||
'**/testing/jest/**',
|
'**/testing/jest/**',
|
||||||
'**/testing/hooks/**',
|
'**/testing/hooks/**',
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ index 72bab49dcc2b411408c75adf64c3f250cdeaa195..068dc04966e3f7ac7c7093f9ed8f29f2
|
||||||
+ /**
|
+ /**
|
||||||
+ * When set, only resolvers decorated with a matching scope will be included in this schema.
|
+ * When set, only resolvers decorated with a matching scope will be included in this schema.
|
||||||
+ */
|
+ */
|
||||||
+ resolverSchemaScope?: 'core' | 'metadata';
|
+ resolverSchemaScope?: 'core' | 'metadata' | 'admin';
|
||||||
}
|
}
|
||||||
export interface GqlOptionsFactory<T extends Record<string, any> = GqlModuleOptions> {
|
export interface GqlOptionsFactory<T extends Record<string, any> = GqlModuleOptions> {
|
||||||
createGqlOptions(): Promise<Omit<T, 'driver'>> | Omit<T, 'driver'>;
|
createGqlOptions(): Promise<Omit<T, 'driver'>> | Omit<T, 'driver'>;
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import { join } from 'path';
|
||||||
import { YogaDriver, type YogaDriverConfig } from '@graphql-yoga/nestjs';
|
import { YogaDriver, type YogaDriverConfig } from '@graphql-yoga/nestjs';
|
||||||
import { SentryModule } from '@sentry/nestjs/setup';
|
import { SentryModule } from '@sentry/nestjs/setup';
|
||||||
|
|
||||||
|
import { AdminPanelGraphQLApiModule } from 'src/engine/api/graphql/admin-panel-graphql-api.module';
|
||||||
import { CoreGraphQLApiModule } from 'src/engine/api/graphql/core-graphql-api.module';
|
import { CoreGraphQLApiModule } from 'src/engine/api/graphql/core-graphql-api.module';
|
||||||
import { GraphQLConfigModule } from 'src/engine/api/graphql/graphql-config/graphql-config.module';
|
import { GraphQLConfigModule } from 'src/engine/api/graphql/graphql-config/graphql-config.module';
|
||||||
import { GraphQLConfigService } from 'src/engine/api/graphql/graphql-config/graphql-config.service';
|
import { GraphQLConfigService } from 'src/engine/api/graphql/graphql-config/graphql-config.service';
|
||||||
|
|
@ -65,6 +66,7 @@ const MIGRATED_REST_METHODS = [
|
||||||
// Api modules
|
// Api modules
|
||||||
CoreGraphQLApiModule,
|
CoreGraphQLApiModule,
|
||||||
MetadataGraphQLApiModule,
|
MetadataGraphQLApiModule,
|
||||||
|
AdminPanelGraphQLApiModule,
|
||||||
RestApiModule,
|
RestApiModule,
|
||||||
McpModule,
|
McpModule,
|
||||||
MiddlewareModule,
|
MiddlewareModule,
|
||||||
|
|
@ -124,6 +126,13 @@ export class AppModule {
|
||||||
)
|
)
|
||||||
.forRoutes({ path: 'metadata', method: RequestMethod.ALL });
|
.forRoutes({ path: 'metadata', method: RequestMethod.ALL });
|
||||||
|
|
||||||
|
consumer
|
||||||
|
.apply(
|
||||||
|
GraphQLHydrateRequestFromTokenMiddleware,
|
||||||
|
WorkspaceAuthContextMiddleware,
|
||||||
|
)
|
||||||
|
.forRoutes({ path: 'admin-panel', method: RequestMethod.ALL });
|
||||||
|
|
||||||
consumer
|
consumer
|
||||||
.apply(McpMethodGuardMiddleware)
|
.apply(McpMethodGuardMiddleware)
|
||||||
.forRoutes({ path: 'mcp', method: RequestMethod.ALL });
|
.forRoutes({ path: 'mcp', method: RequestMethod.ALL });
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
import { Module } from '@nestjs/common';
|
||||||
|
import { GraphQLModule } from '@nestjs/graphql';
|
||||||
|
|
||||||
|
import { YogaDriver, type YogaDriverConfig } from '@graphql-yoga/nestjs';
|
||||||
|
|
||||||
|
import { adminPanelModuleFactory } from 'src/engine/api/graphql/admin-panel.module-factory';
|
||||||
|
import { GraphQLConfigModule } from 'src/engine/api/graphql/graphql-config/graphql-config.module';
|
||||||
|
import { AdminPanelModule } from 'src/engine/core-modules/admin-panel/admin-panel.module';
|
||||||
|
import { ExceptionHandlerService } from 'src/engine/core-modules/exception-handler/exception-handler.service';
|
||||||
|
import { I18nModule } from 'src/engine/core-modules/i18n/i18n.module';
|
||||||
|
import { I18nService } from 'src/engine/core-modules/i18n/i18n.service';
|
||||||
|
import { MetricsModule } from 'src/engine/core-modules/metrics/metrics.module';
|
||||||
|
import { MetricsService } from 'src/engine/core-modules/metrics/metrics.service';
|
||||||
|
import { TwentyConfigService } from 'src/engine/core-modules/twenty-config/twenty-config.service';
|
||||||
|
import { DataloaderModule } from 'src/engine/dataloaders/dataloader.module';
|
||||||
|
import { DataloaderService } from 'src/engine/dataloaders/dataloader.service';
|
||||||
|
|
||||||
|
@Module({
|
||||||
|
imports: [
|
||||||
|
GraphQLModule.forRootAsync<YogaDriverConfig>({
|
||||||
|
driver: YogaDriver,
|
||||||
|
useFactory: adminPanelModuleFactory,
|
||||||
|
imports: [
|
||||||
|
GraphQLConfigModule,
|
||||||
|
DataloaderModule,
|
||||||
|
MetricsModule,
|
||||||
|
I18nModule,
|
||||||
|
],
|
||||||
|
inject: [
|
||||||
|
TwentyConfigService,
|
||||||
|
ExceptionHandlerService,
|
||||||
|
DataloaderService,
|
||||||
|
MetricsService,
|
||||||
|
I18nService,
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
AdminPanelModule,
|
||||||
|
],
|
||||||
|
})
|
||||||
|
export class AdminPanelGraphQLApiModule {}
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
import { type YogaDriverConfig } from '@graphql-yoga/nestjs';
|
||||||
|
import * as Sentry from '@sentry/node';
|
||||||
|
import GraphQLJSON from 'graphql-type-json';
|
||||||
|
|
||||||
|
import { NodeEnvironment } from 'src/engine/core-modules/twenty-config/interfaces/node-environment.interface';
|
||||||
|
|
||||||
|
import { AdminPanelGraphQLApiModule } from 'src/engine/api/graphql/admin-panel-graphql-api.module';
|
||||||
|
import { type ExceptionHandlerService } from 'src/engine/core-modules/exception-handler/exception-handler.service';
|
||||||
|
import { useSentryTracing } from 'src/engine/core-modules/exception-handler/hooks/use-sentry-tracing';
|
||||||
|
import { useDisableIntrospectionAndSuggestionsForUnauthenticatedUsers } from 'src/engine/core-modules/graphql/hooks/use-disable-introspection-and-suggestions-for-unauthenticated-users.hook';
|
||||||
|
import { useGraphQLErrorHandlerHook } from 'src/engine/core-modules/graphql/hooks/use-graphql-error-handler.hook';
|
||||||
|
import { useValidateGraphqlQueryComplexity } from 'src/engine/core-modules/graphql/hooks/use-validate-graphql-query-complexity.hook';
|
||||||
|
import { type I18nService } from 'src/engine/core-modules/i18n/i18n.service';
|
||||||
|
import { type MetricsService } from 'src/engine/core-modules/metrics/metrics.service';
|
||||||
|
import { type TwentyConfigService } from 'src/engine/core-modules/twenty-config/twenty-config.service';
|
||||||
|
import { type DataloaderService } from 'src/engine/dataloaders/dataloader.service';
|
||||||
|
import { renderApolloPlayground } from 'src/engine/utils/render-apollo-playground.util';
|
||||||
|
|
||||||
|
export const adminPanelModuleFactory = async (
|
||||||
|
twentyConfigService: TwentyConfigService,
|
||||||
|
exceptionHandlerService: ExceptionHandlerService,
|
||||||
|
dataloaderService: DataloaderService,
|
||||||
|
metricsService: MetricsService,
|
||||||
|
i18nService: I18nService,
|
||||||
|
): Promise<YogaDriverConfig> => {
|
||||||
|
const config: YogaDriverConfig = {
|
||||||
|
autoSchemaFile: true,
|
||||||
|
include: [AdminPanelGraphQLApiModule],
|
||||||
|
resolverSchemaScope: 'admin',
|
||||||
|
buildSchemaOptions: {},
|
||||||
|
renderGraphiQL() {
|
||||||
|
return renderApolloPlayground({ path: 'admin-panel' });
|
||||||
|
},
|
||||||
|
resolvers: { JSON: GraphQLJSON },
|
||||||
|
plugins: [
|
||||||
|
...(Sentry.isInitialized() ? [useSentryTracing()] : []),
|
||||||
|
useGraphQLErrorHandlerHook({
|
||||||
|
metricsService: metricsService,
|
||||||
|
exceptionHandlerService,
|
||||||
|
i18nService,
|
||||||
|
twentyConfigService,
|
||||||
|
}),
|
||||||
|
useDisableIntrospectionAndSuggestionsForUnauthenticatedUsers(
|
||||||
|
twentyConfigService.get('NODE_ENV') === NodeEnvironment.PRODUCTION,
|
||||||
|
),
|
||||||
|
useValidateGraphqlQueryComplexity({
|
||||||
|
maximumAllowedFields: twentyConfigService.get('GRAPHQL_MAX_FIELDS'),
|
||||||
|
maximumAllowedRootResolvers: 10,
|
||||||
|
maximumAllowedNestedFields: 10,
|
||||||
|
checkDuplicateRootResolvers: true,
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
path: '/admin-panel',
|
||||||
|
context: () => ({
|
||||||
|
loaders: dataloaderService.createLoaders(),
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
|
||||||
|
if (twentyConfigService.get('NODE_ENV') === NodeEnvironment.DEVELOPMENT) {
|
||||||
|
config.renderGraphiQL = () => {
|
||||||
|
return renderApolloPlayground({ path: 'admin-panel' });
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return config;
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
import { applyDecorators, SetMetadata } from '@nestjs/common';
|
||||||
|
import { Resolver } from '@nestjs/graphql';
|
||||||
|
|
||||||
|
import { RESOLVER_SCHEMA_SCOPE_KEY } from 'src/engine/api/graphql/graphql-config/constants/resolver-schema-scope-key.constant';
|
||||||
|
import { type ResolverSchemaScope } from 'src/engine/api/graphql/graphql-config/types/resolver-schema-scope.type';
|
||||||
|
|
||||||
|
export const AdminResolver = (typeFunc?: () => unknown) =>
|
||||||
|
applyDecorators(
|
||||||
|
typeFunc ? Resolver(typeFunc) : Resolver(),
|
||||||
|
SetMetadata(RESOLVER_SCHEMA_SCOPE_KEY, 'admin' as ResolverSchemaScope),
|
||||||
|
);
|
||||||
|
|
@ -1 +1 @@
|
||||||
export type ResolverSchemaScope = 'core' | 'metadata';
|
export type ResolverSchemaScope = 'core' | 'metadata' | 'admin';
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ import { type AiProviderModelConfig } from 'src/engine/metadata-modules/ai/ai-mo
|
||||||
import { extractConfigVariableName } from 'src/engine/metadata-modules/ai/ai-models/utils/extract-config-variable-name.util';
|
import { extractConfigVariableName } from 'src/engine/metadata-modules/ai/ai-models/utils/extract-config-variable-name.util';
|
||||||
import { loadDefaultAiProviders } from 'src/engine/metadata-modules/ai/ai-models/utils/load-default-ai-providers.util';
|
import { loadDefaultAiProviders } from 'src/engine/metadata-modules/ai/ai-models/utils/load-default-ai-providers.util';
|
||||||
import { WorkspaceEntity } from 'src/engine/core-modules/workspace/workspace.entity';
|
import { WorkspaceEntity } from 'src/engine/core-modules/workspace/workspace.entity';
|
||||||
import { MetadataResolver } from 'src/engine/api/graphql/graphql-config/decorators/metadata-resolver.decorator';
|
import { AdminResolver } from 'src/engine/api/graphql/graphql-config/decorators/admin-resolver.decorator';
|
||||||
import { AdminPanelGuard } from 'src/engine/guards/admin-panel-guard';
|
import { AdminPanelGuard } from 'src/engine/guards/admin-panel-guard';
|
||||||
import { ServerLevelImpersonateGuard } from 'src/engine/guards/server-level-impersonate.guard';
|
import { ServerLevelImpersonateGuard } from 'src/engine/guards/server-level-impersonate.guard';
|
||||||
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
|
import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.guard';
|
||||||
|
|
@ -74,7 +74,7 @@ import { SetMaintenanceModeInput } from './dtos/set-maintenance-mode.input';
|
||||||
import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator';
|
import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator';
|
||||||
|
|
||||||
@UsePipes(ResolverValidationPipe)
|
@UsePipes(ResolverValidationPipe)
|
||||||
@MetadataResolver()
|
@AdminResolver()
|
||||||
@UseFilters(
|
@UseFilters(
|
||||||
AuthGraphqlApiExceptionFilter,
|
AuthGraphqlApiExceptionFilter,
|
||||||
PreventNestToAutoLogGraphqlErrorsFilter,
|
PreventNestToAutoLogGraphqlErrorsFilter,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { makeMetadataAPIRequest } from 'test/integration/metadata/suites/utils/make-metadata-api-request.util';
|
import { makeAdminPanelAPIRequest } from 'test/integration/twenty-config/utils/make-admin-panel-api-request.util';
|
||||||
import { updateFeatureFlagFactory } from 'test/integration/graphql/utils/update-feature-flag-factory.util';
|
import { updateFeatureFlagFactory } from 'test/integration/graphql/utils/update-feature-flag-factory.util';
|
||||||
import { warnIfErrorButNotExpectedToFail } from 'test/integration/metadata/utils/warn-if-error-but-not-expected-to-fail.util';
|
import { warnIfErrorButNotExpectedToFail } from 'test/integration/metadata/utils/warn-if-error-but-not-expected-to-fail.util';
|
||||||
import { warnIfNoErrorButExpectedToFail } from 'test/integration/metadata/utils/warn-if-no-error-but-expected-to-fail.util';
|
import { warnIfNoErrorButExpectedToFail } from 'test/integration/metadata/utils/warn-if-no-error-but-expected-to-fail.util';
|
||||||
|
|
@ -23,7 +23,7 @@ export const updateFeatureFlag = async ({
|
||||||
value,
|
value,
|
||||||
);
|
);
|
||||||
|
|
||||||
const response = await makeMetadataAPIRequest(enablePermissionsQuery);
|
const response = await makeAdminPanelAPIRequest(enablePermissionsQuery);
|
||||||
|
|
||||||
if (expectToFail === false) {
|
if (expectToFail === false) {
|
||||||
warnIfErrorButNotExpectedToFail({
|
warnIfErrorButNotExpectedToFail({
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ export const makeAdminPanelAPIRequest = (
|
||||||
const client = request(`http://localhost:${APP_PORT}`);
|
const client = request(`http://localhost:${APP_PORT}`);
|
||||||
|
|
||||||
return client
|
return client
|
||||||
.post('/metadata')
|
.post('/admin-panel')
|
||||||
.set('Authorization', `Bearer ${APPLE_JANE_ADMIN_ACCESS_TOKEN}`)
|
.set('Authorization', `Bearer ${APPLE_JANE_ADMIN_ACCESS_TOKEN}`)
|
||||||
.send({
|
.send({
|
||||||
query: print(graphqlOperation.query),
|
query: print(graphqlOperation.query),
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ export const makeUnauthenticatedAPIRequest = async (query: string) => {
|
||||||
const client = request(`http://localhost:${APP_PORT}`);
|
const client = request(`http://localhost:${APP_PORT}`);
|
||||||
|
|
||||||
return client
|
return client
|
||||||
.post('/metadata')
|
.post('/admin-panel')
|
||||||
.send({
|
.send({
|
||||||
query,
|
query,
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -12866,7 +12866,7 @@ __metadata:
|
||||||
|
|
||||||
"@nestjs/graphql@patch:@nestjs/graphql@12.1.1#./patches/@nestjs+graphql+12.1.1.patch::locator=twenty-server%40workspace%3Apackages%2Ftwenty-server":
|
"@nestjs/graphql@patch:@nestjs/graphql@12.1.1#./patches/@nestjs+graphql+12.1.1.patch::locator=twenty-server%40workspace%3Apackages%2Ftwenty-server":
|
||||||
version: 12.1.1
|
version: 12.1.1
|
||||||
resolution: "@nestjs/graphql@patch:@nestjs/graphql@npm%3A12.1.1#./patches/@nestjs+graphql+12.1.1.patch::version=12.1.1&hash=c6f13a&locator=twenty-server%40workspace%3Apackages%2Ftwenty-server"
|
resolution: "@nestjs/graphql@patch:@nestjs/graphql@npm%3A12.1.1#./patches/@nestjs+graphql+12.1.1.patch::version=12.1.1&hash=eaf96d&locator=twenty-server%40workspace%3Apackages%2Ftwenty-server"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@graphql-tools/merge": "npm:9.0.1"
|
"@graphql-tools/merge": "npm:9.0.1"
|
||||||
"@graphql-tools/schema": "npm:10.0.2"
|
"@graphql-tools/schema": "npm:10.0.2"
|
||||||
|
|
@ -12900,7 +12900,7 @@ __metadata:
|
||||||
optional: true
|
optional: true
|
||||||
ts-morph:
|
ts-morph:
|
||||||
optional: true
|
optional: true
|
||||||
checksum: 10c0/807541d7f7d8a3261787c04bd9456ad1a3198645b967ad68371406f5038ec5e5f3dd26912a914cce25465b828e7d1b037558c79461adb93efbc78382424444c2
|
checksum: 10c0/0d13646d982c3d18de9a5d4989edf2e8d1ef15974d41795f8b220819a8b27c4d4cb9c71bd73524978fe12457e1e955b86f47efa3a4621a571b139d1918702125
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue