diff --git a/controlplane/src/core/repositories/OrganizationRepository.ts b/controlplane/src/core/repositories/OrganizationRepository.ts index f5ce99a74b..4879a81a9d 100644 --- a/controlplane/src/core/repositories/OrganizationRepository.ts +++ b/controlplane/src/core/repositories/OrganizationRepository.ts @@ -26,6 +26,7 @@ import { users, } from '../../db/schema.js'; import { + COMPOSITION_IGNORE_EXTERNAL_KEYS_FEATURE_ID, Feature, FeatureIds, OrganizationDTO, @@ -1405,16 +1406,18 @@ export class OrganizationRepository { plugins: 0, users: 25, requests: 30, - rbac: false, - sso: false, - security: false, - support: false, - oidc: false, + // Boolean features ai: false, - scim: false, + [COMPOSITION_IGNORE_EXTERNAL_KEYS_FEATURE_ID]: false, 'cache-warmer': false, + oidc: false, proposals: false, + rbac: false, + scim: false, + security: false, + sso: false, 'subgraph-check-extensions': false, + support: false, }; for (const feature of features) { diff --git a/controlplane/src/types/index.ts b/controlplane/src/types/index.ts index 0fc81888f2..b0c7cf96b2 100644 --- a/controlplane/src/types/index.ts +++ b/controlplane/src/types/index.ts @@ -3,6 +3,8 @@ import { JWTPayload } from 'jose'; import { DBSubgraphType, GraphPruningRuleEnum, OrganizationRole, ProposalMatch, ProposalOrigin } from '../db/models.js'; import { RBACEvaluator } from '../core/services/RBACEvaluator.js'; +export const COMPOSITION_IGNORE_EXTERNAL_KEYS_FEATURE_ID = 'composition-ignore-external-keys'; + export type FeatureIds = | 'users' | 'federated-graphs' @@ -14,18 +16,19 @@ export type FeatureIds = | 'requests' | 'feature-flags' // Boolean features - | 'rbac' - | 'sso' - | 'security' - | 'support' | 'ai' - | 'oidc' - | 'scim' - | 'field-pruning-grace-period' | 'cache-warmer' - | 'proposals' + | 'composition-ignore-external-keys' // COMPOSITION_IGNORE_EXTERNAL_KEYS_FEATURE_ID + | 'field-pruning-grace-period' + | 'oidc' | 'plugins' - | 'subgraph-check-extensions'; + | 'proposals' + | 'rbac' + | 'scim' + | 'security' + | 'sso' + | 'subgraph-check-extensions' + | 'support'; export type Features = { [key in FeatureIds]: Feature;