@memberjunction/server 5.14.0 → 5.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/auth/index.d.ts +0 -3
  2. package/dist/auth/index.d.ts.map +1 -1
  3. package/dist/auth/index.js +5 -7
  4. package/dist/auth/index.js.map +1 -1
  5. package/dist/auth/initializeProviders.js +2 -2
  6. package/dist/auth/initializeProviders.js.map +1 -1
  7. package/dist/config.d.ts +37 -0
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +8 -0
  10. package/dist/config.js.map +1 -1
  11. package/dist/context.d.ts.map +1 -1
  12. package/dist/context.js +3 -3
  13. package/dist/context.js.map +1 -1
  14. package/dist/generated/generated.d.ts +169 -0
  15. package/dist/generated/generated.d.ts.map +1 -1
  16. package/dist/generated/generated.js +909 -1
  17. package/dist/generated/generated.js.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +16 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/resolvers/DatasetResolver.d.ts +5 -0
  23. package/dist/resolvers/DatasetResolver.d.ts.map +1 -1
  24. package/dist/resolvers/DatasetResolver.js +35 -0
  25. package/dist/resolvers/DatasetResolver.js.map +1 -1
  26. package/package.json +60 -59
  27. package/src/__tests__/unifiedAuth.test.ts +3 -2
  28. package/src/auth/__tests__/backward-compatibility.test.ts +2 -3
  29. package/src/auth/index.ts +5 -8
  30. package/src/auth/initializeProviders.ts +2 -2
  31. package/src/config.ts +8 -0
  32. package/src/context.ts +3 -3
  33. package/src/generated/generated.ts +635 -2
  34. package/src/index.ts +21 -3
  35. package/src/resolvers/DatasetResolver.ts +36 -0
  36. package/dist/auth/AuthProviderFactory.d.ts +0 -68
  37. package/dist/auth/AuthProviderFactory.d.ts.map +0 -1
  38. package/dist/auth/AuthProviderFactory.js +0 -155
  39. package/dist/auth/AuthProviderFactory.js.map +0 -1
  40. package/dist/auth/BaseAuthProvider.d.ts +0 -41
  41. package/dist/auth/BaseAuthProvider.d.ts.map +0 -1
  42. package/dist/auth/BaseAuthProvider.js +0 -102
  43. package/dist/auth/BaseAuthProvider.js.map +0 -1
  44. package/dist/auth/IAuthProvider.d.ts +0 -46
  45. package/dist/auth/IAuthProvider.d.ts.map +0 -1
  46. package/dist/auth/IAuthProvider.js +0 -2
  47. package/dist/auth/IAuthProvider.js.map +0 -1
  48. package/dist/auth/providers/Auth0Provider.d.ts +0 -18
  49. package/dist/auth/providers/Auth0Provider.d.ts.map +0 -1
  50. package/dist/auth/providers/Auth0Provider.js +0 -52
  51. package/dist/auth/providers/Auth0Provider.js.map +0 -1
  52. package/dist/auth/providers/CognitoProvider.d.ts +0 -18
  53. package/dist/auth/providers/CognitoProvider.d.ts.map +0 -1
  54. package/dist/auth/providers/CognitoProvider.js +0 -56
  55. package/dist/auth/providers/CognitoProvider.js.map +0 -1
  56. package/dist/auth/providers/GoogleProvider.d.ts +0 -18
  57. package/dist/auth/providers/GoogleProvider.d.ts.map +0 -1
  58. package/dist/auth/providers/GoogleProvider.js +0 -51
  59. package/dist/auth/providers/GoogleProvider.js.map +0 -1
  60. package/dist/auth/providers/MSALProvider.d.ts +0 -18
  61. package/dist/auth/providers/MSALProvider.d.ts.map +0 -1
  62. package/dist/auth/providers/MSALProvider.js +0 -52
  63. package/dist/auth/providers/MSALProvider.js.map +0 -1
  64. package/dist/auth/providers/OktaProvider.d.ts +0 -18
  65. package/dist/auth/providers/OktaProvider.d.ts.map +0 -1
  66. package/dist/auth/providers/OktaProvider.js +0 -52
  67. package/dist/auth/providers/OktaProvider.js.map +0 -1
  68. package/dist/auth/tokenExpiredError.d.ts +0 -5
  69. package/dist/auth/tokenExpiredError.d.ts.map +0 -1
  70. package/dist/auth/tokenExpiredError.js +0 -12
  71. package/dist/auth/tokenExpiredError.js.map +0 -1
  72. package/src/auth/AuthProviderFactory.ts +0 -182
  73. package/src/auth/BaseAuthProvider.ts +0 -137
  74. package/src/auth/IAuthProvider.ts +0 -54
  75. package/src/auth/providers/Auth0Provider.ts +0 -45
  76. package/src/auth/providers/CognitoProvider.ts +0 -50
  77. package/src/auth/providers/GoogleProvider.ts +0 -45
  78. package/src/auth/providers/MSALProvider.ts +0 -45
  79. package/src/auth/providers/OktaProvider.ts +0 -46
  80. package/src/auth/tokenExpiredError.ts +0 -12
@@ -18,7 +18,7 @@ import { mj_core_schema } from '../config.js';
18
18
 
19
19
 
20
20
 
21
- import { MJAccessControlRuleEntity, MJActionAuthorizationEntity, MJActionCategoryEntity, MJActionContextTypeEntity, MJActionContextEntity, MJActionExecutionLogEntity, MJActionFilterEntity, MJActionLibraryEntity, MJActionParamEntity, MJActionResultCodeEntity, MJActionEntity, MJAIActionEntity, MJAIAgentActionEntity, MJAIAgentArtifactTypeEntity, MJAIAgentCategoryEntity, MJAIAgentConfigurationEntity, MJAIAgentDataSourceEntity, MJAIAgentExampleEntity, MJAIAgentLearningCycleEntity, MJAIAgentModalityEntity, MJAIAgentModelEntity, MJAIAgentNoteTypeEntity, MJAIAgentNoteEntity, MJAIAgentPermissionEntity, MJAIAgentPromptEntity, MJAIAgentRelationshipEntity, MJAIAgentRequestTypeEntity, MJAIAgentRequestEntity, MJAIAgentRunMediaEntity, MJAIAgentRunStepEntity, MJAIAgentRunEntity, MJAIAgentStepPathEntity, MJAIAgentStepEntity, MJAIAgentTypeEntity, MJAIAgentEntity, MJAIArchitectureEntity, MJAIConfigurationParamEntity, MJAIConfigurationEntity, MJAICredentialBindingEntity, MJAIModalityEntity, MJAIModelActionEntity, MJAIModelArchitectureEntity, MJAIModelCostEntity, MJAIModelModalityEntity, MJAIModelPriceTypeEntity, MJAIModelPriceUnitTypeEntity, MJAIModelTypeEntity, MJAIModelVendorEntity, MJAIModelEntity, MJAIPromptCategoryEntity, MJAIPromptModelEntity, MJAIPromptRunMediaEntity, MJAIPromptRunEntity, MJAIPromptTypeEntity, MJAIPromptEntity, MJAIResultCacheEntity, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeEntity, MJAIVendorEntity, MJAPIApplicationScopeEntity, MJAPIApplicationEntity, MJAPIKeyApplicationEntity, MJAPIKeyScopeEntity, MJAPIKeyUsageLogEntity, MJAPIKeyEntity, MJAPIScopeEntity, MJApplicationEntityEntity, MJApplicationSettingEntity, MJApplicationEntity, MJArtifactPermissionEntity, MJArtifactTypeEntity, MJArtifactUseEntity, MJArtifactVersionAttributeEntity, MJArtifactVersionEntity, MJArtifactEntity, MJAuditLogTypeEntity, MJAuditLogEntity, MJAuthorizationRoleEntity, MJAuthorizationEntity, MJCollectionArtifactEntity, MJCollectionPermissionEntity, MJCollectionEntity, MJCommunicationBaseMessageTypeEntity, MJCommunicationLogEntity, MJCommunicationProviderMessageTypeEntity, MJCommunicationProviderEntity, MJCommunicationRunEntity, MJCompanyEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationRecordMapEntity, MJCompanyIntegrationRunAPILogEntity, MJCompanyIntegrationRunDetailEntity, MJCompanyIntegrationRunEntity, MJCompanyIntegrationSyncWatermarkEntity, MJCompanyIntegrationEntity, MJComponentDependencyEntity, MJComponentLibraryEntity, MJComponentLibraryLinkEntity, MJComponentRegistryEntity, MJComponentEntity, MJContentFileTypeEntity, MJContentItemAttributeEntity, MJContentItemTagEntity, MJContentItemEntity, MJContentProcessRunEntity, MJContentSourceParamEntity, MJContentSourceTypeParamEntity, MJContentSourceTypeEntity, MJContentSourceEntity, MJContentTypeAttributeEntity, MJContentTypeEntity, MJConversationArtifactPermissionEntity, MJConversationArtifactVersionEntity, MJConversationArtifactEntity, MJConversationDetailArtifactEntity, MJConversationDetailAttachmentEntity, MJConversationDetailRatingEntity, MJConversationDetailEntity, MJConversationEntity, MJCredentialCategoryEntity, MJCredentialTypeEntity, MJCredentialEntity, MJDashboardCategoryEntity, MJDashboardCategoryLinkEntity, MJDashboardCategoryPermissionEntity, MJDashboardPartTypeEntity, MJDashboardPermissionEntity, MJDashboardUserPreferenceEntity, MJDashboardUserStateEntity, MJDashboardEntity, MJDataContextItemEntity, MJDataContextEntity, MJDatasetItemEntity, MJDatasetEntity, MJDuplicateRunDetailMatchEntity, MJDuplicateRunDetailEntity, MJDuplicateRunEntity, MJEmployeeCompanyIntegrationEntity, MJEmployeeRoleEntity, MJEmployeeSkillEntity, MJEmployeeEntity, MJEncryptionAlgorithmEntity, MJEncryptionKeySourceEntity, MJEncryptionKeyEntity, MJEntityEntity, MJEntityActionFilterEntity, MJEntityActionInvocationTypeEntity, MJEntityActionInvocationEntity, MJEntityActionParamEntity, MJEntityActionEntity, MJEntityAIActionEntity, MJEntityCommunicationFieldEntity, MJEntityCommunicationMessageTypeEntity, MJEntityDocumentRunEntity, MJEntityDocumentSettingEntity, MJEntityDocumentTypeEntity, MJEntityDocumentEntity, MJEntityFieldValueEntity, MJEntityFieldEntity, MJEntityPermissionEntity, MJEntityRecordDocumentEntity, MJEntityRelationshipDisplayComponentEntity, MJEntityRelationshipEntity, MJEntitySettingEntity, MJEnvironmentEntity, MJErrorLogEntity, MJExplorerNavigationItemEntity, MJFileCategoryEntity, MJFileEntityRecordLinkEntity, MJFileStorageAccountEntity, MJFileStorageProviderEntity, MJFileEntity, MJGeneratedCodeCategoryEntity, MJGeneratedCodeEntity, MJIntegrationObjectFieldEntity, MJIntegrationObjectEntity, MJIntegrationSourceTypeEntity, MJIntegrationURLFormatEntity, MJIntegrationEntity, MJLibraryEntity, MJLibraryItemEntity, MJListCategoryEntity, MJListDetailEntity, MJListInvitationEntity, MJListShareEntity, MJListEntity, MJMCPServerConnectionPermissionEntity, MJMCPServerConnectionToolEntity, MJMCPServerConnectionEntity, MJMCPServerToolEntity, MJMCPServerEntity, MJMCPToolExecutionLogEntity, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthorizationStateEntity, MJOAuthClientRegistrationEntity, MJOAuthTokenEntity, MJOpenAppDependencyEntity, MJOpenAppInstallHistoryEntity, MJOpenAppEntity, MJOutputDeliveryTypeEntity, MJOutputFormatTypeEntity, MJOutputTriggerTypeEntity, MJProjectEntity, MJPublicLinkEntity, MJQueryEntity, MJQueryCategoryEntity, MJQueryDependencyEntity, MJQueryEntityEntity, MJQueryFieldEntity, MJQueryParameterEntity, MJQueryPermissionEntity, MJQuerySQLEntity, MJQueueTaskEntity, MJQueueTypeEntity, MJQueueEntity, MJRecommendationItemEntity, MJRecommendationProviderEntity, MJRecommendationRunEntity, MJRecommendationEntity, MJRecordChangeReplayRunEntity, MJRecordChangeEntity, MJRecordLinkEntity, MJRecordMergeDeletionLogEntity, MJRecordMergeLogEntity, MJReportCategoryEntity, MJReportSnapshotEntity, MJReportUserStateEntity, MJReportVersionEntity, MJReportEntity, MJResourceLinkEntity, MJResourcePermissionEntity, MJResourceTypeEntity, MJRoleEntity, MJRowLevelSecurityFilterEntity, MJScheduledActionParamEntity, MJScheduledActionEntity, MJScheduledJobRunEntity, MJScheduledJobTypeEntity, MJScheduledJobEntity, MJSchemaInfoEntity, MJSkillEntity, MJSQLDialectEntity, MJTaggedItemEntity, MJTagEntity, MJTaskDependencyEntity, MJTaskTypeEntity, MJTaskEntity, MJTemplateCategoryEntity, MJTemplateContentTypeEntity, MJTemplateContentEntity, MJTemplateParamEntity, MJTemplateEntity, MJTestRubricEntity, MJTestRunFeedbackEntity, MJTestRunOutputTypeEntity, MJTestRunOutputEntity, MJTestRunEntity, MJTestSuiteRunEntity, MJTestSuiteTestEntity, MJTestSuiteEntity, MJTestTypeEntity, MJTestEntity, MJUserApplicationEntityEntity, MJUserApplicationEntity, MJUserFavoriteEntity, MJUserNotificationPreferenceEntity, MJUserNotificationTypeEntity, MJUserNotificationEntity, MJUserRecordLogEntity, MJUserRoleEntity, MJUserSettingEntity, MJUserViewCategoryEntity, MJUserViewRunDetailEntity, MJUserViewRunEntity, MJUserViewEntity, MJUserEntity, MJVectorDatabaseEntity, MJVectorIndexEntity, MJVersionInstallationEntity, MJVersionLabelItemEntity, MJVersionLabelRestoreEntity, MJVersionLabelEntity, MJWorkflowEngineEntity, MJWorkflowRunEntity, MJWorkflowEntity, MJWorkspaceItemEntity, MJWorkspaceEntity } from '@memberjunction/core-entities';
21
+ import { MJAccessControlRuleEntity, MJActionAuthorizationEntity, MJActionCategoryEntity, MJActionContextTypeEntity, MJActionContextEntity, MJActionExecutionLogEntity, MJActionFilterEntity, MJActionLibraryEntity, MJActionParamEntity, MJActionResultCodeEntity, MJActionEntity, MJAIActionEntity, MJAIAgentActionEntity, MJAIAgentArtifactTypeEntity, MJAIAgentCategoryEntity, MJAIAgentConfigurationEntity, MJAIAgentDataSourceEntity, MJAIAgentExampleEntity, MJAIAgentLearningCycleEntity, MJAIAgentModalityEntity, MJAIAgentModelEntity, MJAIAgentNoteTypeEntity, MJAIAgentNoteEntity, MJAIAgentPermissionEntity, MJAIAgentPromptEntity, MJAIAgentRelationshipEntity, MJAIAgentRequestTypeEntity, MJAIAgentRequestEntity, MJAIAgentRunMediaEntity, MJAIAgentRunStepEntity, MJAIAgentRunEntity, MJAIAgentStepPathEntity, MJAIAgentStepEntity, MJAIAgentTypeEntity, MJAIAgentEntity, MJAIArchitectureEntity, MJAIConfigurationParamEntity, MJAIConfigurationEntity, MJAICredentialBindingEntity, MJAIModalityEntity, MJAIModelActionEntity, MJAIModelArchitectureEntity, MJAIModelCostEntity, MJAIModelModalityEntity, MJAIModelPriceTypeEntity, MJAIModelPriceUnitTypeEntity, MJAIModelTypeEntity, MJAIModelVendorEntity, MJAIModelEntity, MJAIPromptCategoryEntity, MJAIPromptModelEntity, MJAIPromptRunMediaEntity, MJAIPromptRunEntity, MJAIPromptTypeEntity, MJAIPromptEntity, MJAIResultCacheEntity, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeEntity, MJAIVendorEntity, MJAPIApplicationScopeEntity, MJAPIApplicationEntity, MJAPIKeyApplicationEntity, MJAPIKeyScopeEntity, MJAPIKeyUsageLogEntity, MJAPIKeyEntity, MJAPIScopeEntity, MJApplicationEntityEntity, MJApplicationSettingEntity, MJApplicationEntity, MJArtifactPermissionEntity, MJArtifactTypeEntity, MJArtifactUseEntity, MJArtifactVersionAttributeEntity, MJArtifactVersionEntity, MJArtifactEntity, MJAuditLogTypeEntity, MJAuditLogEntity, MJAuthorizationRoleEntity, MJAuthorizationEntity, MJCollectionArtifactEntity, MJCollectionPermissionEntity, MJCollectionEntity, MJCommunicationBaseMessageTypeEntity, MJCommunicationLogEntity, MJCommunicationProviderMessageTypeEntity, MJCommunicationProviderEntity, MJCommunicationRunEntity, MJCompanyEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationRecordMapEntity, MJCompanyIntegrationRunAPILogEntity, MJCompanyIntegrationRunDetailEntity, MJCompanyIntegrationRunEntity, MJCompanyIntegrationSyncWatermarkEntity, MJCompanyIntegrationEntity, MJComponentDependencyEntity, MJComponentLibraryEntity, MJComponentLibraryLinkEntity, MJComponentRegistryEntity, MJComponentEntity, MJContentFileTypeEntity, MJContentItemAttributeEntity, MJContentItemTagEntity, MJContentItemEntity, MJContentProcessRunEntity, MJContentSourceParamEntity, MJContentSourceTypeParamEntity, MJContentSourceTypeEntity, MJContentSourceEntity, MJContentTypeAttributeEntity, MJContentTypeEntity, MJConversationArtifactPermissionEntity, MJConversationArtifactVersionEntity, MJConversationArtifactEntity, MJConversationDetailArtifactEntity, MJConversationDetailAttachmentEntity, MJConversationDetailRatingEntity, MJConversationDetailEntity, MJConversationEntity, MJCredentialCategoryEntity, MJCredentialTypeEntity, MJCredentialEntity, MJDashboardCategoryEntity, MJDashboardCategoryLinkEntity, MJDashboardCategoryPermissionEntity, MJDashboardPartTypeEntity, MJDashboardPermissionEntity, MJDashboardUserPreferenceEntity, MJDashboardUserStateEntity, MJDashboardEntity, MJDataContextItemEntity, MJDataContextEntity, MJDatasetItemEntity, MJDatasetEntity, MJDuplicateRunDetailMatchEntity, MJDuplicateRunDetailEntity, MJDuplicateRunEntity, MJEmployeeCompanyIntegrationEntity, MJEmployeeRoleEntity, MJEmployeeSkillEntity, MJEmployeeEntity, MJEncryptionAlgorithmEntity, MJEncryptionKeySourceEntity, MJEncryptionKeyEntity, MJEntityEntity, MJEntityActionFilterEntity, MJEntityActionInvocationTypeEntity, MJEntityActionInvocationEntity, MJEntityActionParamEntity, MJEntityActionEntity, MJEntityAIActionEntity, MJEntityCommunicationFieldEntity, MJEntityCommunicationMessageTypeEntity, MJEntityDocumentRunEntity, MJEntityDocumentSettingEntity, MJEntityDocumentTypeEntity, MJEntityDocumentEntity, MJEntityFieldValueEntity, MJEntityFieldEntity, MJEntityOrganicKeyRelatedEntityEntity, MJEntityOrganicKeyEntity, MJEntityPermissionEntity, MJEntityRecordDocumentEntity, MJEntityRelationshipDisplayComponentEntity, MJEntityRelationshipEntity, MJEntitySettingEntity, MJEnvironmentEntity, MJErrorLogEntity, MJExplorerNavigationItemEntity, MJFileCategoryEntity, MJFileEntityRecordLinkEntity, MJFileStorageAccountEntity, MJFileStorageProviderEntity, MJFileEntity, MJGeneratedCodeCategoryEntity, MJGeneratedCodeEntity, MJIntegrationObjectFieldEntity, MJIntegrationObjectEntity, MJIntegrationSourceTypeEntity, MJIntegrationURLFormatEntity, MJIntegrationEntity, MJLibraryEntity, MJLibraryItemEntity, MJListCategoryEntity, MJListDetailEntity, MJListInvitationEntity, MJListShareEntity, MJListEntity, MJMCPServerConnectionPermissionEntity, MJMCPServerConnectionToolEntity, MJMCPServerConnectionEntity, MJMCPServerToolEntity, MJMCPServerEntity, MJMCPToolExecutionLogEntity, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthorizationStateEntity, MJOAuthClientRegistrationEntity, MJOAuthTokenEntity, MJOpenAppDependencyEntity, MJOpenAppInstallHistoryEntity, MJOpenAppEntity, MJOutputDeliveryTypeEntity, MJOutputFormatTypeEntity, MJOutputTriggerTypeEntity, MJProjectEntity, MJPublicLinkEntity, MJQueryEntity, MJQueryCategoryEntity, MJQueryDependencyEntity, MJQueryEntityEntity, MJQueryFieldEntity, MJQueryParameterEntity, MJQueryPermissionEntity, MJQuerySQLEntity, MJQueueTaskEntity, MJQueueTypeEntity, MJQueueEntity, MJRecommendationItemEntity, MJRecommendationProviderEntity, MJRecommendationRunEntity, MJRecommendationEntity, MJRecordChangeReplayRunEntity, MJRecordChangeEntity, MJRecordLinkEntity, MJRecordMergeDeletionLogEntity, MJRecordMergeLogEntity, MJReportCategoryEntity, MJReportSnapshotEntity, MJReportUserStateEntity, MJReportVersionEntity, MJReportEntity, MJResourceLinkEntity, MJResourcePermissionEntity, MJResourceTypeEntity, MJRoleEntity, MJRowLevelSecurityFilterEntity, MJScheduledActionParamEntity, MJScheduledActionEntity, MJScheduledJobRunEntity, MJScheduledJobTypeEntity, MJScheduledJobEntity, MJSchemaInfoEntity, MJSkillEntity, MJSQLDialectEntity, MJTaggedItemEntity, MJTagEntity, MJTaskDependencyEntity, MJTaskTypeEntity, MJTaskEntity, MJTemplateCategoryEntity, MJTemplateContentTypeEntity, MJTemplateContentEntity, MJTemplateParamEntity, MJTemplateEntity, MJTestRubricEntity, MJTestRunFeedbackEntity, MJTestRunOutputTypeEntity, MJTestRunOutputEntity, MJTestRunEntity, MJTestSuiteRunEntity, MJTestSuiteTestEntity, MJTestSuiteEntity, MJTestTypeEntity, MJTestEntity, MJUserApplicationEntityEntity, MJUserApplicationEntity, MJUserFavoriteEntity, MJUserNotificationPreferenceEntity, MJUserNotificationTypeEntity, MJUserNotificationEntity, MJUserRecordLogEntity, MJUserRoleEntity, MJUserSettingEntity, MJUserViewCategoryEntity, MJUserViewRunDetailEntity, MJUserViewRunEntity, MJUserViewEntity, MJUserEntity, MJVectorDatabaseEntity, MJVectorIndexEntity, MJVersionInstallationEntity, MJVersionLabelItemEntity, MJVersionLabelRestoreEntity, MJVersionLabelEntity, MJWorkflowEngineEntity, MJWorkflowRunEntity, MJWorkflowEntity, MJWorkspaceItemEntity, MJWorkspaceEntity } from '@memberjunction/core-entities';
22
22
 
23
23
 
24
24
  //****************************************************************************
@@ -10241,7 +10241,7 @@ export class MJAICredentialBinding_ {
10241
10241
  AIVendor?: string;
10242
10242
 
10243
10243
  @Field({nullable: true})
10244
- @MaxLength(50)
10244
+ @MaxLength(100)
10245
10245
  AIModelVendor?: string;
10246
10246
 
10247
10247
  @Field({nullable: true})
@@ -11883,6 +11883,12 @@ export class MJAIModelType_ {
11883
11883
  @MaxLength(36)
11884
11884
  DefaultOutputModalityID: string;
11885
11885
 
11886
+ @Field(() => Boolean, {description: `Whether models of this type generally support assistant prefill. This is a default value that individual AI Model Vendor records can override. For LLM types, many providers support prefill; for image/audio types, this is typically false.`})
11887
+ SupportsPrefill: boolean;
11888
+
11889
+ @Field({nullable: true, description: `Default fallback instruction text used when PrefillFallbackMode is SystemInstruction and the provider does not support native prefill. Use {{prefill}} as a placeholder for the actual prefill text. Example: "IMPORTANT: You must begin your response with exactly: {{prefill}}". Individual AI Model Vendor records can override this. If null, a generic fallback is used.`})
11890
+ PrefillFallbackText?: string;
11891
+
11886
11892
  @Field()
11887
11893
  @MaxLength(50)
11888
11894
  DefaultInputModality: string;
@@ -11918,6 +11924,12 @@ export class CreateMJAIModelTypeInput {
11918
11924
 
11919
11925
  @Field({ nullable: true })
11920
11926
  DefaultOutputModalityID?: string;
11927
+
11928
+ @Field(() => Boolean, { nullable: true })
11929
+ SupportsPrefill?: boolean;
11930
+
11931
+ @Field({ nullable: true })
11932
+ PrefillFallbackText: string | null;
11921
11933
  }
11922
11934
 
11923
11935
 
@@ -11941,6 +11953,12 @@ export class UpdateMJAIModelTypeInput {
11941
11953
  @Field({ nullable: true })
11942
11954
  DefaultOutputModalityID?: string;
11943
11955
 
11956
+ @Field(() => Boolean, { nullable: true })
11957
+ SupportsPrefill?: boolean;
11958
+
11959
+ @Field({ nullable: true })
11960
+ PrefillFallbackText?: string | null;
11961
+
11944
11962
  @Field(() => [KeyValuePairInput], { nullable: true })
11945
11963
  OldValues___?: KeyValuePairInput[];
11946
11964
  }
@@ -12123,6 +12141,12 @@ export class MJAIModelVendor_ {
12123
12141
  @MaxLength(36)
12124
12142
  TypeID: string;
12125
12143
 
12144
+ @Field(() => Boolean, {nullable: true, description: `Whether this specific model-vendor implementation supports assistant prefill. Overrides the AI Model Type default when set. NULL means inherit from the AI Model Type. For example, Claude via Anthropic supports prefill (true), but GPT-4 via OpenAI does not (false).`})
12145
+ SupportsPrefill?: boolean;
12146
+
12147
+ @Field({nullable: true, description: `Model-specific fallback instruction text used when PrefillFallbackMode is SystemInstruction and the provider does not support native prefill. Overrides the AI Model Type default. Use {{prefill}} as a placeholder. Allows tuning the fallback instruction per model since different models respond better to different phrasing.`})
12148
+ PrefillFallbackText?: string;
12149
+
12126
12150
  @Field()
12127
12151
  @MaxLength(50)
12128
12152
  Model: string;
@@ -12186,6 +12210,12 @@ export class CreateMJAIModelVendorInput {
12186
12210
 
12187
12211
  @Field({ nullable: true })
12188
12212
  TypeID?: string;
12213
+
12214
+ @Field(() => Boolean, { nullable: true })
12215
+ SupportsPrefill: boolean | null;
12216
+
12217
+ @Field({ nullable: true })
12218
+ PrefillFallbackText: string | null;
12189
12219
  }
12190
12220
 
12191
12221
 
@@ -12236,6 +12266,12 @@ export class UpdateMJAIModelVendorInput {
12236
12266
  @Field({ nullable: true })
12237
12267
  TypeID?: string;
12238
12268
 
12269
+ @Field(() => Boolean, { nullable: true })
12270
+ SupportsPrefill?: boolean | null;
12271
+
12272
+ @Field({ nullable: true })
12273
+ PrefillFallbackText?: string | null;
12274
+
12239
12275
  @Field(() => [KeyValuePairInput], { nullable: true })
12240
12276
  OldValues___?: KeyValuePairInput[];
12241
12277
  }
@@ -12384,6 +12420,12 @@ export class MJAIModel_ {
12384
12420
  @MaxLength(36)
12385
12421
  PriorVersionID?: string;
12386
12422
 
12423
+ @Field(() => Boolean, {nullable: true, description: `Whether this model supports assistant prefill. Overrides the AI Model Type default when set. NULL means inherit from the AI Model Type. Can be further overridden per-vendor in AI Model Vendor.`})
12424
+ SupportsPrefill?: boolean;
12425
+
12426
+ @Field({nullable: true, description: `Model-level fallback instruction text used when PrefillFallbackMode is SystemInstruction and the provider does not support native prefill. Overrides the AI Model Type default, can be further overridden per-vendor in AI Model Vendor. Use {{prefill}} as a placeholder.`})
12427
+ PrefillFallbackText?: string;
12428
+
12387
12429
  @Field()
12388
12430
  @MaxLength(50)
12389
12431
  AIModelType: string;
@@ -12517,6 +12559,12 @@ export class CreateMJAIModelInput {
12517
12559
  @Field({ nullable: true })
12518
12560
  PriorVersionID: string | null;
12519
12561
 
12562
+ @Field(() => Boolean, { nullable: true })
12563
+ SupportsPrefill: boolean | null;
12564
+
12565
+ @Field({ nullable: true })
12566
+ PrefillFallbackText: string | null;
12567
+
12520
12568
  @Field({ nullable: true })
12521
12569
  Vendor: string | null;
12522
12570
 
@@ -12578,6 +12626,12 @@ export class UpdateMJAIModelInput {
12578
12626
  @Field({ nullable: true })
12579
12627
  PriorVersionID?: string | null;
12580
12628
 
12629
+ @Field(() => Boolean, { nullable: true })
12630
+ SupportsPrefill?: boolean | null;
12631
+
12632
+ @Field({ nullable: true })
12633
+ PrefillFallbackText?: string | null;
12634
+
12581
12635
  @Field({ nullable: true })
12582
12636
  Vendor?: string | null;
12583
12637
 
@@ -13928,6 +13982,9 @@ export class MJAIPromptRun_ {
13928
13982
  @MaxLength(36)
13929
13983
  TestRunID?: string;
13930
13984
 
13985
+ @Field({nullable: true, description: `The assistant prefill text that was used during this prompt execution. Records whether native prefill or fallback was applied. NULL means no prefill was used.`})
13986
+ AssistantPrefill?: string;
13987
+
13931
13988
  @Field()
13932
13989
  @MaxLength(255)
13933
13990
  Prompt: string;
@@ -14248,6 +14305,9 @@ export class CreateMJAIPromptRunInput {
14248
14305
 
14249
14306
  @Field({ nullable: true })
14250
14307
  TestRunID: string | null;
14308
+
14309
+ @Field({ nullable: true })
14310
+ AssistantPrefill: string | null;
14251
14311
  }
14252
14312
 
14253
14313
 
@@ -14502,6 +14562,9 @@ export class UpdateMJAIPromptRunInput {
14502
14562
  @Field({ nullable: true })
14503
14563
  TestRunID?: string | null;
14504
14564
 
14565
+ @Field({ nullable: true })
14566
+ AssistantPrefill?: string | null;
14567
+
14505
14568
  @Field(() => [KeyValuePairInput], { nullable: true })
14506
14569
  OldValues___?: KeyValuePairInput[];
14507
14570
  }
@@ -14970,6 +15033,13 @@ export class MJAIPrompt_ {
14970
15033
  @Field(() => Int, {nullable: true, description: `Effort level for this specific prompt (1-100, where 1=minimal effort, 100=maximum effort). Higher values request more thorough reasoning and analysis. Can be overridden by agent DefaultPromptEffortLevel or runtime parameters.`})
14971
15034
  EffortLevel?: number;
14972
15035
 
15036
+ @Field({nullable: true, description: `Optional text to prefill the assistant response. The model will continue generating from where this text ends. Used with StopSequences for structured output extraction (e.g., prefill with \`\`\`json to get raw JSON). Only effective with providers that support prefill natively; see PrefillFallbackMode for non-supporting providers.`})
15037
+ AssistantPrefill?: string;
15038
+
15039
+ @Field({description: `Controls behavior when the selected provider does not support native assistant prefill. Ignore = silently skip prefill, SystemInstruction = inject a system message instructing the model to start its response with the prefill text (uses fallback text from AI Model Vendor or AI Model Type), None = no fallback (prefill only works with supported providers).`})
15040
+ @MaxLength(20)
15041
+ PrefillFallbackMode: string;
15042
+
14973
15043
  @Field()
14974
15044
  @MaxLength(255)
14975
15045
  Template: string;
@@ -15189,6 +15259,12 @@ export class CreateMJAIPromptInput {
15189
15259
 
15190
15260
  @Field(() => Int, { nullable: true })
15191
15261
  EffortLevel: number | null;
15262
+
15263
+ @Field({ nullable: true })
15264
+ AssistantPrefill: string | null;
15265
+
15266
+ @Field({ nullable: true })
15267
+ PrefillFallbackMode?: string;
15192
15268
  }
15193
15269
 
15194
15270
 
@@ -15344,6 +15420,12 @@ export class UpdateMJAIPromptInput {
15344
15420
  @Field(() => Int, { nullable: true })
15345
15421
  EffortLevel?: number | null;
15346
15422
 
15423
+ @Field({ nullable: true })
15424
+ AssistantPrefill?: string | null;
15425
+
15426
+ @Field({ nullable: true })
15427
+ PrefillFallbackMode?: string;
15428
+
15347
15429
  @Field(() => [KeyValuePairInput], { nullable: true })
15348
15430
  OldValues___?: KeyValuePairInput[];
15349
15431
  }
@@ -23861,6 +23943,10 @@ export class MJCompanyIntegrationRun_ {
23861
23943
  @Field({nullable: true, description: `Optional configuration data in JSON format for the request that started the integration run for audit purposes.`})
23862
23944
  ConfigData?: string;
23863
23945
 
23946
+ @Field({nullable: true, description: `Links to the scheduled job run that triggered this integration sync. NULL for manually-triggered syncs.`})
23947
+ @MaxLength(36)
23948
+ ScheduledJobRunID?: string;
23949
+
23864
23950
  @Field()
23865
23951
  @MaxLength(100)
23866
23952
  Integration: string;
@@ -23918,6 +24004,9 @@ export class CreateMJCompanyIntegrationRunInput {
23918
24004
 
23919
24005
  @Field({ nullable: true })
23920
24006
  ConfigData: string | null;
24007
+
24008
+ @Field({ nullable: true })
24009
+ ScheduledJobRunID: string | null;
23921
24010
  }
23922
24011
 
23923
24012
 
@@ -23956,6 +24045,9 @@ export class UpdateMJCompanyIntegrationRunInput {
23956
24045
  @Field({ nullable: true })
23957
24046
  ConfigData?: string | null;
23958
24047
 
24048
+ @Field({ nullable: true })
24049
+ ScheduledJobRunID?: string | null;
24050
+
23959
24051
  @Field(() => [KeyValuePairInput], { nullable: true })
23960
24052
  OldValues___?: KeyValuePairInput[];
23961
24053
  }
@@ -24370,6 +24462,10 @@ export class MJCompanyIntegration_ {
24370
24462
  @Field({nullable: true, description: `When the lock should be considered stale and eligible for cleanup`})
24371
24463
  LockExpiresAt?: Date;
24372
24464
 
24465
+ @Field({nullable: true, description: `Associates this company integration with a scheduled job for automatic sync execution. NULL if no schedule is configured.`})
24466
+ @MaxLength(36)
24467
+ ScheduledJobID?: string;
24468
+
24373
24469
  @Field()
24374
24470
  @MaxLength(50)
24375
24471
  Company: string;
@@ -24498,6 +24594,9 @@ export class CreateMJCompanyIntegrationInput {
24498
24594
 
24499
24595
  @Field({ nullable: true })
24500
24596
  LockExpiresAt: Date | null;
24597
+
24598
+ @Field({ nullable: true })
24599
+ ScheduledJobID: string | null;
24501
24600
  }
24502
24601
 
24503
24602
 
@@ -24587,6 +24686,9 @@ export class UpdateMJCompanyIntegrationInput {
24587
24686
  @Field({ nullable: true })
24588
24687
  LockExpiresAt?: Date | null;
24589
24688
 
24689
+ @Field({ nullable: true })
24690
+ ScheduledJobID?: string | null;
24691
+
24590
24692
  @Field(() => [KeyValuePairInput], { nullable: true })
24591
24693
  OldValues___?: KeyValuePairInput[];
24592
24694
  }
@@ -35656,6 +35758,12 @@ export class MJEntity_ {
35656
35758
  @Field(() => [MJEntityRelationship_])
35657
35759
  MJEntityRelationships_RelatedEntityIDArray: MJEntityRelationship_[]; // Link to MJEntityRelationships
35658
35760
 
35761
+ @Field(() => [MJEntityOrganicKeyRelatedEntity_])
35762
+ MJEntityOrganicKeyRelatedEntities_RelatedEntityIDArray: MJEntityOrganicKeyRelatedEntity_[]; // Link to MJEntityOrganicKeyRelatedEntities
35763
+
35764
+ @Field(() => [MJEntityOrganicKey_])
35765
+ MJEntityOrganicKeys_EntityIDArray: MJEntityOrganicKey_[]; // Link to MJEntityOrganicKeys
35766
+
35659
35767
  @Field(() => [MJGeneratedCode_])
35660
35768
  MJGeneratedCodes_LinkedEntityIDArray: MJGeneratedCode_[]; // Link to MJGeneratedCodes
35661
35769
 
@@ -36526,6 +36634,26 @@ export class MJEntityResolverBase extends ResolverBase {
36526
36634
  return result;
36527
36635
  }
36528
36636
 
36637
+ @FieldResolver(() => [MJEntityOrganicKeyRelatedEntity_])
36638
+ async MJEntityOrganicKeyRelatedEntities_RelatedEntityIDArray(@Root() mjentity_: MJEntity_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
36639
+ this.CheckUserReadPermissions('MJ: Entity Organic Key Related Entities', userPayload);
36640
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
36641
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwEntityOrganicKeyRelatedEntities')} WHERE ${provider.QuoteIdentifier('RelatedEntityID')}='${mjentity_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Entity Organic Key Related Entities', userPayload, EntityPermissionType.Read, 'AND');
36642
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
36643
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Entity Organic Key Related Entities', rows, this.GetUserFromPayload(userPayload));
36644
+ return result;
36645
+ }
36646
+
36647
+ @FieldResolver(() => [MJEntityOrganicKey_])
36648
+ async MJEntityOrganicKeys_EntityIDArray(@Root() mjentity_: MJEntity_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
36649
+ this.CheckUserReadPermissions('MJ: Entity Organic Keys', userPayload);
36650
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
36651
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwEntityOrganicKeys')} WHERE ${provider.QuoteIdentifier('EntityID')}='${mjentity_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Entity Organic Keys', userPayload, EntityPermissionType.Read, 'AND');
36652
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
36653
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Entity Organic Keys', rows, this.GetUserFromPayload(userPayload));
36654
+ return result;
36655
+ }
36656
+
36529
36657
  @FieldResolver(() => [MJGeneratedCode_])
36530
36658
  async MJGeneratedCodes_LinkedEntityIDArray(@Root() mjentity_: MJEntity_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
36531
36659
  this.CheckUserReadPermissions('MJ: Generated Codes', userPayload);
@@ -39692,6 +39820,485 @@ export class MJEntityFieldResolver extends ResolverBase {
39692
39820
 
39693
39821
  }
39694
39822
 
39823
+ //****************************************************************************
39824
+ // ENTITY CLASS for MJ: Entity Organic Key Related Entities
39825
+ //****************************************************************************
39826
+ @ObjectType({ description: `Maps a related entity to an organic key, defining how records are matched — either by direct field comparison or transitively via a SQL view/table that bridges multiple hops.` })
39827
+ export class MJEntityOrganicKeyRelatedEntity_ {
39828
+ @Field()
39829
+ @MaxLength(36)
39830
+ ID: string;
39831
+
39832
+ @Field()
39833
+ @MaxLength(36)
39834
+ EntityOrganicKeyID: string;
39835
+
39836
+ @Field()
39837
+ @MaxLength(36)
39838
+ RelatedEntityID: string;
39839
+
39840
+ @Field({nullable: true, description: `Comma-delimited field names in the related entity, positionally matching MatchFieldNames on the parent key. NULL when using transitive matching.`})
39841
+ @MaxLength(500)
39842
+ RelatedEntityFieldNames?: string;
39843
+
39844
+ @Field({nullable: true, description: `Schema-qualified name of a SQL view or table that bridges the organic key to the related entity (e.g., "dbo.vwContactRecipientBridge"). This object encapsulates any number of join hops. NULL for direct matches.`})
39845
+ @MaxLength(500)
39846
+ TransitiveObjectName?: string;
39847
+
39848
+ @Field({nullable: true, description: `Comma-delimited field names in the transitive object that match the organic key values, positionally aligned with MatchFieldNames. NULL for direct matches.`})
39849
+ @MaxLength(500)
39850
+ TransitiveObjectMatchFieldNames?: string;
39851
+
39852
+ @Field({nullable: true, description: `The field in the transitive object that produces the value to join against the related entity. NULL for direct matches.`})
39853
+ @MaxLength(255)
39854
+ TransitiveObjectOutputFieldName?: string;
39855
+
39856
+ @Field({nullable: true, description: `The field in the related entity that matches TransitiveObjectOutputFieldName. NULL for direct matches.`})
39857
+ @MaxLength(255)
39858
+ RelatedEntityJoinFieldName?: string;
39859
+
39860
+ @Field({nullable: true, description: `Tab/section label override. If NULL, defaults to the related entity's display name.`})
39861
+ @MaxLength(255)
39862
+ DisplayName?: string;
39863
+
39864
+ @Field({description: `Where to render the organic key tab relative to FK relationship tabs. After Field Tabs or Before Field Tabs.`})
39865
+ @MaxLength(50)
39866
+ DisplayLocation: string;
39867
+
39868
+ @Field({nullable: true, description: `FK to component registry for a custom display component. NULL uses the default EntityDataGrid.`})
39869
+ @MaxLength(36)
39870
+ DisplayComponentID?: string;
39871
+
39872
+ @Field({nullable: true, description: `JSON configuration passed to the display component.`})
39873
+ DisplayComponentConfiguration?: string;
39874
+
39875
+ @Field(() => Int, {description: `Tab ordering within this organic key's related entities. Lower values appear first.`})
39876
+ Sequence: number;
39877
+
39878
+ @Field()
39879
+ _mj__CreatedAt: Date;
39880
+
39881
+ @Field()
39882
+ _mj__UpdatedAt: Date;
39883
+
39884
+ @Field()
39885
+ @MaxLength(255)
39886
+ EntityOrganicKey: string;
39887
+
39888
+ @Field()
39889
+ @MaxLength(255)
39890
+ RelatedEntity: string;
39891
+
39892
+ }
39893
+
39894
+ //****************************************************************************
39895
+ // INPUT TYPE for MJ: Entity Organic Key Related Entities
39896
+ //****************************************************************************
39897
+ @InputType()
39898
+ export class CreateMJEntityOrganicKeyRelatedEntityInput {
39899
+ @Field({ nullable: true })
39900
+ ID?: string;
39901
+
39902
+ @Field({ nullable: true })
39903
+ EntityOrganicKeyID?: string;
39904
+
39905
+ @Field({ nullable: true })
39906
+ RelatedEntityID?: string;
39907
+
39908
+ @Field({ nullable: true })
39909
+ RelatedEntityFieldNames: string | null;
39910
+
39911
+ @Field({ nullable: true })
39912
+ TransitiveObjectName: string | null;
39913
+
39914
+ @Field({ nullable: true })
39915
+ TransitiveObjectMatchFieldNames: string | null;
39916
+
39917
+ @Field({ nullable: true })
39918
+ TransitiveObjectOutputFieldName: string | null;
39919
+
39920
+ @Field({ nullable: true })
39921
+ RelatedEntityJoinFieldName: string | null;
39922
+
39923
+ @Field({ nullable: true })
39924
+ DisplayName: string | null;
39925
+
39926
+ @Field({ nullable: true })
39927
+ DisplayLocation?: string;
39928
+
39929
+ @Field({ nullable: true })
39930
+ DisplayComponentID: string | null;
39931
+
39932
+ @Field({ nullable: true })
39933
+ DisplayComponentConfiguration: string | null;
39934
+
39935
+ @Field(() => Int, { nullable: true })
39936
+ Sequence?: number;
39937
+ }
39938
+
39939
+
39940
+ //****************************************************************************
39941
+ // INPUT TYPE for MJ: Entity Organic Key Related Entities
39942
+ //****************************************************************************
39943
+ @InputType()
39944
+ export class UpdateMJEntityOrganicKeyRelatedEntityInput {
39945
+ @Field()
39946
+ ID: string;
39947
+
39948
+ @Field({ nullable: true })
39949
+ EntityOrganicKeyID?: string;
39950
+
39951
+ @Field({ nullable: true })
39952
+ RelatedEntityID?: string;
39953
+
39954
+ @Field({ nullable: true })
39955
+ RelatedEntityFieldNames?: string | null;
39956
+
39957
+ @Field({ nullable: true })
39958
+ TransitiveObjectName?: string | null;
39959
+
39960
+ @Field({ nullable: true })
39961
+ TransitiveObjectMatchFieldNames?: string | null;
39962
+
39963
+ @Field({ nullable: true })
39964
+ TransitiveObjectOutputFieldName?: string | null;
39965
+
39966
+ @Field({ nullable: true })
39967
+ RelatedEntityJoinFieldName?: string | null;
39968
+
39969
+ @Field({ nullable: true })
39970
+ DisplayName?: string | null;
39971
+
39972
+ @Field({ nullable: true })
39973
+ DisplayLocation?: string;
39974
+
39975
+ @Field({ nullable: true })
39976
+ DisplayComponentID?: string | null;
39977
+
39978
+ @Field({ nullable: true })
39979
+ DisplayComponentConfiguration?: string | null;
39980
+
39981
+ @Field(() => Int, { nullable: true })
39982
+ Sequence?: number;
39983
+
39984
+ @Field(() => [KeyValuePairInput], { nullable: true })
39985
+ OldValues___?: KeyValuePairInput[];
39986
+ }
39987
+
39988
+ //****************************************************************************
39989
+ // RESOLVER for MJ: Entity Organic Key Related Entities
39990
+ //****************************************************************************
39991
+ @ObjectType()
39992
+ export class RunMJEntityOrganicKeyRelatedEntityViewResult {
39993
+ @Field(() => [MJEntityOrganicKeyRelatedEntity_])
39994
+ Results: MJEntityOrganicKeyRelatedEntity_[];
39995
+
39996
+ @Field(() => String, {nullable: true})
39997
+ UserViewRunID?: string;
39998
+
39999
+ @Field(() => Int, {nullable: true})
40000
+ RowCount: number;
40001
+
40002
+ @Field(() => Int, {nullable: true})
40003
+ TotalRowCount: number;
40004
+
40005
+ @Field(() => Int, {nullable: true})
40006
+ ExecutionTime: number;
40007
+
40008
+ @Field({nullable: true})
40009
+ ErrorMessage?: string;
40010
+
40011
+ @Field(() => Boolean, {nullable: false})
40012
+ Success: boolean;
40013
+ }
40014
+
40015
+ @Resolver(MJEntityOrganicKeyRelatedEntity_)
40016
+ export class MJEntityOrganicKeyRelatedEntityResolver extends ResolverBase {
40017
+ @Query(() => RunMJEntityOrganicKeyRelatedEntityViewResult)
40018
+ async RunMJEntityOrganicKeyRelatedEntityViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
40019
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
40020
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
40021
+ }
40022
+
40023
+ @Query(() => RunMJEntityOrganicKeyRelatedEntityViewResult)
40024
+ async RunMJEntityOrganicKeyRelatedEntityViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
40025
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
40026
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
40027
+ }
40028
+
40029
+ @Query(() => RunMJEntityOrganicKeyRelatedEntityViewResult)
40030
+ async RunMJEntityOrganicKeyRelatedEntityDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
40031
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
40032
+ input.EntityName = 'MJ: Entity Organic Key Related Entities';
40033
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
40034
+ }
40035
+ @Query(() => MJEntityOrganicKeyRelatedEntity_, { nullable: true })
40036
+ async MJEntityOrganicKeyRelatedEntity(@Arg('ID', () => String) ID: string, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<MJEntityOrganicKeyRelatedEntity_ | null> {
40037
+ this.CheckUserReadPermissions('MJ: Entity Organic Key Related Entities', userPayload);
40038
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
40039
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwEntityOrganicKeyRelatedEntities')} WHERE ${provider.QuoteIdentifier('ID')}='${ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Entity Organic Key Related Entities', userPayload, EntityPermissionType.Read, 'AND');
40040
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
40041
+ const result = await this.MapFieldNamesToCodeNames('MJ: Entity Organic Key Related Entities', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
40042
+ return result;
40043
+ }
40044
+
40045
+ @Mutation(() => MJEntityOrganicKeyRelatedEntity_)
40046
+ async CreateMJEntityOrganicKeyRelatedEntity(
40047
+ @Arg('input', () => CreateMJEntityOrganicKeyRelatedEntityInput) input: CreateMJEntityOrganicKeyRelatedEntityInput,
40048
+ @Ctx() { providers, userPayload }: AppContext,
40049
+ @PubSub() pubSub: PubSubEngine
40050
+ ) {
40051
+ const provider = GetReadWriteProvider(providers);
40052
+ return this.CreateRecord('MJ: Entity Organic Key Related Entities', input, provider, userPayload, pubSub)
40053
+ }
40054
+
40055
+ @Mutation(() => MJEntityOrganicKeyRelatedEntity_)
40056
+ async UpdateMJEntityOrganicKeyRelatedEntity(
40057
+ @Arg('input', () => UpdateMJEntityOrganicKeyRelatedEntityInput) input: UpdateMJEntityOrganicKeyRelatedEntityInput,
40058
+ @Ctx() { providers, userPayload }: AppContext,
40059
+ @PubSub() pubSub: PubSubEngine
40060
+ ) {
40061
+ const provider = GetReadWriteProvider(providers);
40062
+ return this.UpdateRecord('MJ: Entity Organic Key Related Entities', input, provider, userPayload, pubSub);
40063
+ }
40064
+
40065
+ @Mutation(() => MJEntityOrganicKeyRelatedEntity_)
40066
+ async DeleteMJEntityOrganicKeyRelatedEntity(@Arg('ID', () => String) ID: string, @Arg('options___', () => DeleteOptionsInput) options: DeleteOptionsInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
40067
+ const provider = GetReadWriteProvider(providers);
40068
+ const key = new CompositeKey([{FieldName: 'ID', Value: ID}]);
40069
+ return this.DeleteRecord('MJ: Entity Organic Key Related Entities', key, options, provider, userPayload, pubSub);
40070
+ }
40071
+
40072
+ }
40073
+
40074
+ //****************************************************************************
40075
+ // ENTITY CLASS for MJ: Entity Organic Keys
40076
+ //****************************************************************************
40077
+ @ObjectType({ description: `Defines organic keys on entities — sets of fields that constitute natural identifiers for cross-system matching (e.g., email, phone, SSN). Enables related record views across integration boundaries without foreign keys.` })
40078
+ export class MJEntityOrganicKey_ {
40079
+ @Field()
40080
+ @MaxLength(36)
40081
+ ID: string;
40082
+
40083
+ @Field()
40084
+ @MaxLength(36)
40085
+ EntityID: string;
40086
+
40087
+ @Field({description: `Human-readable label for this organic key (e.g., "Email Match", "SSN Match"). Must be unique per entity.`})
40088
+ @MaxLength(255)
40089
+ Name: string;
40090
+
40091
+ @Field({nullable: true, description: `Optional explanation of the key's purpose and matching semantics.`})
40092
+ Description?: string;
40093
+
40094
+ @Field({description: `Comma-delimited field names in the owning entity that constitute the key. Single value for simple keys (e.g., "EmailAddress"), multiple for compound keys (e.g., "FirstName,LastName,DateOfBirth"). Field names must match EntityField.Name values.`})
40095
+ @MaxLength(500)
40096
+ MatchFieldNames: string;
40097
+
40098
+ @Field({description: `How field values are normalized before comparison. LowerCaseTrim = LOWER(TRIM(x)), Trim = TRIM(x), ExactMatch = no transformation, Custom = uses CustomNormalizationExpression.`})
40099
+ @MaxLength(50)
40100
+ NormalizationStrategy: string;
40101
+
40102
+ @Field({nullable: true, description: `SQL expression template when NormalizationStrategy is Custom. Uses {{FieldName}} as placeholder. Example: "REPLACE(REPLACE({{FieldName}}, '-', ''), ' ', '')" for phone number normalization.`})
40103
+ CustomNormalizationExpression?: string;
40104
+
40105
+ @Field(() => Boolean, {description: `When true, a future discovery process will automatically scan entities and create EntityOrganicKeyRelatedEntity rows for entities with matching field patterns.`})
40106
+ AutoCreateRelatedViewOnForm: boolean;
40107
+
40108
+ @Field(() => Int, {description: `Ordering when an entity has multiple organic keys. Lower values = higher priority.`})
40109
+ Sequence: number;
40110
+
40111
+ @Field({description: `Active or Disabled. Disabled keys are ignored at runtime.`})
40112
+ @MaxLength(20)
40113
+ Status: string;
40114
+
40115
+ @Field()
40116
+ _mj__CreatedAt: Date;
40117
+
40118
+ @Field()
40119
+ _mj__UpdatedAt: Date;
40120
+
40121
+ @Field()
40122
+ @MaxLength(255)
40123
+ Entity: string;
40124
+
40125
+ @Field(() => [MJEntityOrganicKeyRelatedEntity_])
40126
+ MJEntityOrganicKeyRelatedEntities_EntityOrganicKeyIDArray: MJEntityOrganicKeyRelatedEntity_[]; // Link to MJEntityOrganicKeyRelatedEntities
40127
+
40128
+ }
40129
+
40130
+ //****************************************************************************
40131
+ // INPUT TYPE for MJ: Entity Organic Keys
40132
+ //****************************************************************************
40133
+ @InputType()
40134
+ export class CreateMJEntityOrganicKeyInput {
40135
+ @Field({ nullable: true })
40136
+ ID?: string;
40137
+
40138
+ @Field({ nullable: true })
40139
+ EntityID?: string;
40140
+
40141
+ @Field({ nullable: true })
40142
+ Name?: string;
40143
+
40144
+ @Field({ nullable: true })
40145
+ Description: string | null;
40146
+
40147
+ @Field({ nullable: true })
40148
+ MatchFieldNames?: string;
40149
+
40150
+ @Field({ nullable: true })
40151
+ NormalizationStrategy?: string;
40152
+
40153
+ @Field({ nullable: true })
40154
+ CustomNormalizationExpression: string | null;
40155
+
40156
+ @Field(() => Boolean, { nullable: true })
40157
+ AutoCreateRelatedViewOnForm?: boolean;
40158
+
40159
+ @Field(() => Int, { nullable: true })
40160
+ Sequence?: number;
40161
+
40162
+ @Field({ nullable: true })
40163
+ Status?: string;
40164
+ }
40165
+
40166
+
40167
+ //****************************************************************************
40168
+ // INPUT TYPE for MJ: Entity Organic Keys
40169
+ //****************************************************************************
40170
+ @InputType()
40171
+ export class UpdateMJEntityOrganicKeyInput {
40172
+ @Field()
40173
+ ID: string;
40174
+
40175
+ @Field({ nullable: true })
40176
+ EntityID?: string;
40177
+
40178
+ @Field({ nullable: true })
40179
+ Name?: string;
40180
+
40181
+ @Field({ nullable: true })
40182
+ Description?: string | null;
40183
+
40184
+ @Field({ nullable: true })
40185
+ MatchFieldNames?: string;
40186
+
40187
+ @Field({ nullable: true })
40188
+ NormalizationStrategy?: string;
40189
+
40190
+ @Field({ nullable: true })
40191
+ CustomNormalizationExpression?: string | null;
40192
+
40193
+ @Field(() => Boolean, { nullable: true })
40194
+ AutoCreateRelatedViewOnForm?: boolean;
40195
+
40196
+ @Field(() => Int, { nullable: true })
40197
+ Sequence?: number;
40198
+
40199
+ @Field({ nullable: true })
40200
+ Status?: string;
40201
+
40202
+ @Field(() => [KeyValuePairInput], { nullable: true })
40203
+ OldValues___?: KeyValuePairInput[];
40204
+ }
40205
+
40206
+ //****************************************************************************
40207
+ // RESOLVER for MJ: Entity Organic Keys
40208
+ //****************************************************************************
40209
+ @ObjectType()
40210
+ export class RunMJEntityOrganicKeyViewResult {
40211
+ @Field(() => [MJEntityOrganicKey_])
40212
+ Results: MJEntityOrganicKey_[];
40213
+
40214
+ @Field(() => String, {nullable: true})
40215
+ UserViewRunID?: string;
40216
+
40217
+ @Field(() => Int, {nullable: true})
40218
+ RowCount: number;
40219
+
40220
+ @Field(() => Int, {nullable: true})
40221
+ TotalRowCount: number;
40222
+
40223
+ @Field(() => Int, {nullable: true})
40224
+ ExecutionTime: number;
40225
+
40226
+ @Field({nullable: true})
40227
+ ErrorMessage?: string;
40228
+
40229
+ @Field(() => Boolean, {nullable: false})
40230
+ Success: boolean;
40231
+ }
40232
+
40233
+ @Resolver(MJEntityOrganicKey_)
40234
+ export class MJEntityOrganicKeyResolver extends ResolverBase {
40235
+ @Query(() => RunMJEntityOrganicKeyViewResult)
40236
+ async RunMJEntityOrganicKeyViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
40237
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
40238
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
40239
+ }
40240
+
40241
+ @Query(() => RunMJEntityOrganicKeyViewResult)
40242
+ async RunMJEntityOrganicKeyViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
40243
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
40244
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
40245
+ }
40246
+
40247
+ @Query(() => RunMJEntityOrganicKeyViewResult)
40248
+ async RunMJEntityOrganicKeyDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
40249
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
40250
+ input.EntityName = 'MJ: Entity Organic Keys';
40251
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
40252
+ }
40253
+ @Query(() => MJEntityOrganicKey_, { nullable: true })
40254
+ async MJEntityOrganicKey(@Arg('ID', () => String) ID: string, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<MJEntityOrganicKey_ | null> {
40255
+ this.CheckUserReadPermissions('MJ: Entity Organic Keys', userPayload);
40256
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
40257
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwEntityOrganicKeys')} WHERE ${provider.QuoteIdentifier('ID')}='${ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Entity Organic Keys', userPayload, EntityPermissionType.Read, 'AND');
40258
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
40259
+ const result = await this.MapFieldNamesToCodeNames('MJ: Entity Organic Keys', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
40260
+ return result;
40261
+ }
40262
+
40263
+ @FieldResolver(() => [MJEntityOrganicKeyRelatedEntity_])
40264
+ async MJEntityOrganicKeyRelatedEntities_EntityOrganicKeyIDArray(@Root() mjentityorganickey_: MJEntityOrganicKey_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
40265
+ this.CheckUserReadPermissions('MJ: Entity Organic Key Related Entities', userPayload);
40266
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
40267
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwEntityOrganicKeyRelatedEntities')} WHERE ${provider.QuoteIdentifier('EntityOrganicKeyID')}='${mjentityorganickey_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Entity Organic Key Related Entities', userPayload, EntityPermissionType.Read, 'AND');
40268
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
40269
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Entity Organic Key Related Entities', rows, this.GetUserFromPayload(userPayload));
40270
+ return result;
40271
+ }
40272
+
40273
+ @Mutation(() => MJEntityOrganicKey_)
40274
+ async CreateMJEntityOrganicKey(
40275
+ @Arg('input', () => CreateMJEntityOrganicKeyInput) input: CreateMJEntityOrganicKeyInput,
40276
+ @Ctx() { providers, userPayload }: AppContext,
40277
+ @PubSub() pubSub: PubSubEngine
40278
+ ) {
40279
+ const provider = GetReadWriteProvider(providers);
40280
+ return this.CreateRecord('MJ: Entity Organic Keys', input, provider, userPayload, pubSub)
40281
+ }
40282
+
40283
+ @Mutation(() => MJEntityOrganicKey_)
40284
+ async UpdateMJEntityOrganicKey(
40285
+ @Arg('input', () => UpdateMJEntityOrganicKeyInput) input: UpdateMJEntityOrganicKeyInput,
40286
+ @Ctx() { providers, userPayload }: AppContext,
40287
+ @PubSub() pubSub: PubSubEngine
40288
+ ) {
40289
+ const provider = GetReadWriteProvider(providers);
40290
+ return this.UpdateRecord('MJ: Entity Organic Keys', input, provider, userPayload, pubSub);
40291
+ }
40292
+
40293
+ @Mutation(() => MJEntityOrganicKey_)
40294
+ async DeleteMJEntityOrganicKey(@Arg('ID', () => String) ID: string, @Arg('options___', () => DeleteOptionsInput) options: DeleteOptionsInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
40295
+ const provider = GetReadWriteProvider(providers);
40296
+ const key = new CompositeKey([{FieldName: 'ID', Value: ID}]);
40297
+ return this.DeleteRecord('MJ: Entity Organic Keys', key, options, provider, userPayload, pubSub);
40298
+ }
40299
+
40300
+ }
40301
+
39695
40302
  //****************************************************************************
39696
40303
  // ENTITY CLASS for MJ: Entity Permissions
39697
40304
  //****************************************************************************
@@ -57162,6 +57769,9 @@ export class MJScheduledJobRun_ {
57162
57769
  @Field(() => [MJAIAgentRun_])
57163
57770
  MJAIAgentRuns_ScheduledJobRunIDArray: MJAIAgentRun_[]; // Link to MJAIAgentRuns
57164
57771
 
57772
+ @Field(() => [MJCompanyIntegrationRun_])
57773
+ MJCompanyIntegrationRuns_ScheduledJobRunIDArray: MJCompanyIntegrationRun_[]; // Link to MJCompanyIntegrationRuns
57774
+
57165
57775
  }
57166
57776
 
57167
57777
  //****************************************************************************
@@ -57307,6 +57917,16 @@ export class MJScheduledJobRunResolver extends ResolverBase {
57307
57917
  return result;
57308
57918
  }
57309
57919
 
57920
+ @FieldResolver(() => [MJCompanyIntegrationRun_])
57921
+ async MJCompanyIntegrationRuns_ScheduledJobRunIDArray(@Root() mjscheduledjobrun_: MJScheduledJobRun_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
57922
+ this.CheckUserReadPermissions('MJ: Company Integration Runs', userPayload);
57923
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
57924
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwCompanyIntegrationRuns')} WHERE ${provider.QuoteIdentifier('ScheduledJobRunID')}='${mjscheduledjobrun_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Company Integration Runs', userPayload, EntityPermissionType.Read, 'AND');
57925
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
57926
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Company Integration Runs', rows, this.GetUserFromPayload(userPayload));
57927
+ return result;
57928
+ }
57929
+
57310
57930
  @Mutation(() => MJScheduledJobRun_)
57311
57931
  async CreateMJScheduledJobRun(
57312
57932
  @Arg('input', () => CreateMJScheduledJobRunInput) input: CreateMJScheduledJobRunInput,
@@ -57647,6 +58267,9 @@ export class MJScheduledJob_ {
57647
58267
  @Field(() => [MJScheduledJobRun_])
57648
58268
  MJScheduledJobRuns_ScheduledJobIDArray: MJScheduledJobRun_[]; // Link to MJScheduledJobRuns
57649
58269
 
58270
+ @Field(() => [MJCompanyIntegration_])
58271
+ MJCompanyIntegrations_ScheduledJobIDArray: MJCompanyIntegration_[]; // Link to MJCompanyIntegrations
58272
+
57650
58273
  }
57651
58274
 
57652
58275
  //****************************************************************************
@@ -57888,6 +58511,16 @@ export class MJScheduledJobResolver extends ResolverBase {
57888
58511
  return result;
57889
58512
  }
57890
58513
 
58514
+ @FieldResolver(() => [MJCompanyIntegration_])
58515
+ async MJCompanyIntegrations_ScheduledJobIDArray(@Root() mjscheduledjob_: MJScheduledJob_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
58516
+ this.CheckUserReadPermissions('MJ: Company Integrations', userPayload);
58517
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
58518
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwCompanyIntegrations')} WHERE ${provider.QuoteIdentifier('ScheduledJobID')}='${mjscheduledjob_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Company Integrations', userPayload, EntityPermissionType.Read, 'AND');
58519
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
58520
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Company Integrations', rows, this.GetUserFromPayload(userPayload));
58521
+ return result;
58522
+ }
58523
+
57891
58524
  @Mutation(() => MJScheduledJob_)
57892
58525
  async CreateMJScheduledJob(
57893
58526
  @Arg('input', () => CreateMJScheduledJobInput) input: CreateMJScheduledJobInput,