Separate system operations from core objects in GraphQL endpoints (#12977)

Moves system-level operations (auth, billing, admin) to use the
/metadata endpoint instead of /graphql.

This cleans up the endpoint separation so /graphql is purely for core
objects (Company, People, etc.) and /metadata handles all system
operations.

Part of prep work for webhook/API key core migration.
This commit is contained in:
nitin
2025-07-01 21:59:32 +05:30
committed by GitHub
parent 76c517aa29
commit d2ddd6f473
229 changed files with 9425 additions and 8804 deletions

View File

@ -1,10 +1,10 @@
import { commandMenuNavigationMorphItemByPageState } from '@/command-menu/states/commandMenuNavigationMorphItemsState';
import { commandMenuNavigationRecordsState } from '@/command-menu/states/commandMenuNavigationRecordsState';
import { commandMenuNavigationStackState } from '@/command-menu/states/commandMenuNavigationStackState';
import { useApolloCoreClient } from '@/object-metadata/hooks/useApolloCoreClient';
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
import { getRecordFromCache } from '@/object-record/cache/utils/getRecordFromCache';
import { useObjectPermissions } from '@/object-record/hooks/useObjectPermissions';
import { useApolloClient } from '@apollo/client';
import { useEffect } from 'react';
import { useRecoilValue, useSetRecoilState } from 'recoil';
import { isDefined } from 'twenty-shared/utils';
@ -25,7 +25,7 @@ export const CommandMenuContextChipRecordSetterEffect = () => {
commandMenuNavigationStackState,
);
const apolloClient = useApolloClient();
const apolloCoreClient = useApolloCoreClient();
useEffect(() => {
if (commandMenuNavigationStack.length > 1) {
@ -45,7 +45,7 @@ export const CommandMenuContextChipRecordSetterEffect = () => {
const record = getRecordFromCache({
recordId: morphItem.recordId,
cache: apolloClient.cache,
cache: apolloCoreClient.cache,
objectMetadataItems,
objectMetadataItem,
objectPermissionsByObjectMetadataId,
@ -65,7 +65,7 @@ export const CommandMenuContextChipRecordSetterEffect = () => {
setCommandMenuNavigationRecords(records);
}
}, [
apolloClient.cache,
apolloCoreClient.cache,
commandMenuNavigationMorphItemByPage,
commandMenuNavigationStack,
commandMenuNavigationStack.length,

View File

@ -7,6 +7,7 @@ import { useOpenRecordInCommandMenu } from '@/command-menu/hooks/useOpenRecordIn
import { commandMenuSearchState } from '@/command-menu/states/commandMenuSearchState';
import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems';
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useApolloCoreClient } from '@/object-metadata/hooks/useApolloCoreClient';
import { useObjectPermissions } from '@/object-record/hooks/useObjectPermissions';
import { AppPath } from '@/types/AppPath';
import { t } from '@lingui/core/macro';
@ -19,6 +20,7 @@ import { useSearchQuery } from '~/generated/graphql';
export const useCommandMenuSearchRecords = () => {
const commandMenuSearch = useRecoilValue(commandMenuSearchState);
const coreClient = useApolloCoreClient();
const [deferredCommandMenuSearch] = useDebounce(commandMenuSearch, 300);
const { objectPermissionsByObjectMetadataId } = useObjectPermissions();
@ -36,6 +38,7 @@ export const useCommandMenuSearchRecords = () => {
}, [objectMetadataItems, objectPermissionsByObjectMetadataId]);
const { data: searchData, loading } = useSearchQuery({
client: coreClient,
variables: {
searchInput: deferredCommandMenuSearch ?? '',
limit: MAX_SEARCH_RESULTS,