@memberjunction/server 5.8.0 → 5.9.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 (69) hide show
  1. package/README.md +1 -0
  2. package/dist/apolloServer/index.d.ts +10 -2
  3. package/dist/apolloServer/index.d.ts.map +1 -1
  4. package/dist/apolloServer/index.js +22 -8
  5. package/dist/apolloServer/index.js.map +1 -1
  6. package/dist/config.d.ts +125 -0
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +23 -0
  9. package/dist/config.js.map +1 -1
  10. package/dist/context.d.ts +17 -0
  11. package/dist/context.d.ts.map +1 -1
  12. package/dist/context.js +144 -62
  13. package/dist/context.js.map +1 -1
  14. package/dist/generated/generated.d.ts +207 -0
  15. package/dist/generated/generated.d.ts.map +1 -1
  16. package/dist/generated/generated.js +1112 -76
  17. package/dist/generated/generated.js.map +1 -1
  18. package/dist/generic/CacheInvalidationResolver.d.ts +32 -0
  19. package/dist/generic/CacheInvalidationResolver.d.ts.map +1 -0
  20. package/dist/generic/CacheInvalidationResolver.js +80 -0
  21. package/dist/generic/CacheInvalidationResolver.js.map +1 -0
  22. package/dist/generic/PubSubManager.d.ts +27 -0
  23. package/dist/generic/PubSubManager.d.ts.map +1 -0
  24. package/dist/generic/PubSubManager.js +42 -0
  25. package/dist/generic/PubSubManager.js.map +1 -0
  26. package/dist/generic/ResolverBase.d.ts +14 -0
  27. package/dist/generic/ResolverBase.d.ts.map +1 -1
  28. package/dist/generic/ResolverBase.js +50 -0
  29. package/dist/generic/ResolverBase.js.map +1 -1
  30. package/dist/hooks.d.ts +65 -0
  31. package/dist/hooks.d.ts.map +1 -0
  32. package/dist/hooks.js +14 -0
  33. package/dist/hooks.js.map +1 -0
  34. package/dist/index.d.ts +6 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +172 -45
  37. package/dist/index.js.map +1 -1
  38. package/dist/multiTenancy/index.d.ts +47 -0
  39. package/dist/multiTenancy/index.d.ts.map +1 -0
  40. package/dist/multiTenancy/index.js +152 -0
  41. package/dist/multiTenancy/index.js.map +1 -0
  42. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts +123 -0
  43. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -0
  44. package/dist/resolvers/IntegrationDiscoveryResolver.js +624 -0
  45. package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -0
  46. package/dist/rest/RESTEndpointHandler.d.ts +3 -1
  47. package/dist/rest/RESTEndpointHandler.d.ts.map +1 -1
  48. package/dist/rest/RESTEndpointHandler.js +14 -33
  49. package/dist/rest/RESTEndpointHandler.js.map +1 -1
  50. package/dist/types.d.ts +9 -0
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/types.js.map +1 -1
  53. package/package.json +61 -57
  54. package/src/__tests__/multiTenancy.security.test.ts +334 -0
  55. package/src/__tests__/multiTenancy.test.ts +225 -0
  56. package/src/__tests__/unifiedAuth.test.ts +416 -0
  57. package/src/apolloServer/index.ts +32 -16
  58. package/src/config.ts +25 -0
  59. package/src/context.ts +205 -98
  60. package/src/generated/generated.ts +736 -1
  61. package/src/generic/CacheInvalidationResolver.ts +66 -0
  62. package/src/generic/PubSubManager.ts +47 -0
  63. package/src/generic/ResolverBase.ts +53 -0
  64. package/src/hooks.ts +77 -0
  65. package/src/index.ts +198 -49
  66. package/src/multiTenancy/index.ts +183 -0
  67. package/src/resolvers/IntegrationDiscoveryResolver.ts +584 -0
  68. package/src/rest/RESTEndpointHandler.ts +23 -42
  69. package/src/types.ts +10 -0
@@ -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, MJAIAgentConfigurationEntity, MJAIAgentDataSourceEntity, MJAIAgentExampleEntity, MJAIAgentLearningCycleEntity, MJAIAgentModalityEntity, MJAIAgentModelEntity, MJAIAgentNoteTypeEntity, MJAIAgentNoteEntity, MJAIAgentPermissionEntity, MJAIAgentPromptEntity, MJAIAgentRelationshipEntity, 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, 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, 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, MJAIAgentConfigurationEntity, MJAIAgentDataSourceEntity, MJAIAgentExampleEntity, MJAIAgentLearningCycleEntity, MJAIAgentModalityEntity, MJAIAgentModelEntity, MJAIAgentNoteTypeEntity, MJAIAgentNoteEntity, MJAIAgentPermissionEntity, MJAIAgentPromptEntity, MJAIAgentRelationshipEntity, 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, 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
  //****************************************************************************
@@ -23744,6 +23744,39 @@ export class MJCompanyIntegration_ {
23744
23744
  @MaxLength(36)
23745
23745
  CredentialID?: string;
23746
23746
 
23747
+ @Field(() => Boolean, {description: `Whether automatic sync scheduling is enabled for this integration`})
23748
+ ScheduleEnabled: boolean;
23749
+
23750
+ @Field({description: `Type of schedule: Manual (no auto-sync), Interval (every N minutes), Cron (cron expression)`})
23751
+ @MaxLength(20)
23752
+ ScheduleType: string;
23753
+
23754
+ @Field(() => Int, {nullable: true, description: `Interval in minutes for Interval schedule type`})
23755
+ ScheduleIntervalMinutes?: number;
23756
+
23757
+ @Field({nullable: true, description: `Cron expression for Cron schedule type (e.g., "0 */6 * * *" for every 6 hours)`})
23758
+ @MaxLength(200)
23759
+ CronExpression?: string;
23760
+
23761
+ @Field({nullable: true, description: `When the next scheduled sync should run. Updated after each run based on schedule config.`})
23762
+ NextScheduledRunAt?: Date;
23763
+
23764
+ @Field({nullable: true, description: `When the last scheduled sync was initiated`})
23765
+ LastScheduledRunAt?: Date;
23766
+
23767
+ @Field(() => Boolean, {description: `Whether a sync is currently locked/running for this integration`})
23768
+ IsLocked: boolean;
23769
+
23770
+ @Field({nullable: true, description: `When the lock was acquired`})
23771
+ LockedAt?: Date;
23772
+
23773
+ @Field({nullable: true, description: `Server instance identifier that holds the lock (hostname-pid)`})
23774
+ @MaxLength(200)
23775
+ LockedByInstance?: string;
23776
+
23777
+ @Field({nullable: true, description: `When the lock should be considered stale and eligible for cleanup`})
23778
+ LockExpiresAt?: Date;
23779
+
23747
23780
  @Field()
23748
23781
  @MaxLength(50)
23749
23782
  Company: string;
@@ -23842,6 +23875,36 @@ export class CreateMJCompanyIntegrationInput {
23842
23875
 
23843
23876
  @Field({ nullable: true })
23844
23877
  CredentialID: string | null;
23878
+
23879
+ @Field(() => Boolean, { nullable: true })
23880
+ ScheduleEnabled?: boolean;
23881
+
23882
+ @Field({ nullable: true })
23883
+ ScheduleType?: string;
23884
+
23885
+ @Field(() => Int, { nullable: true })
23886
+ ScheduleIntervalMinutes: number | null;
23887
+
23888
+ @Field({ nullable: true })
23889
+ CronExpression: string | null;
23890
+
23891
+ @Field({ nullable: true })
23892
+ NextScheduledRunAt: Date | null;
23893
+
23894
+ @Field({ nullable: true })
23895
+ LastScheduledRunAt: Date | null;
23896
+
23897
+ @Field(() => Boolean, { nullable: true })
23898
+ IsLocked?: boolean;
23899
+
23900
+ @Field({ nullable: true })
23901
+ LockedAt: Date | null;
23902
+
23903
+ @Field({ nullable: true })
23904
+ LockedByInstance: string | null;
23905
+
23906
+ @Field({ nullable: true })
23907
+ LockExpiresAt: Date | null;
23845
23908
  }
23846
23909
 
23847
23910
 
@@ -23901,6 +23964,36 @@ export class UpdateMJCompanyIntegrationInput {
23901
23964
  @Field({ nullable: true })
23902
23965
  CredentialID?: string | null;
23903
23966
 
23967
+ @Field(() => Boolean, { nullable: true })
23968
+ ScheduleEnabled?: boolean;
23969
+
23970
+ @Field({ nullable: true })
23971
+ ScheduleType?: string;
23972
+
23973
+ @Field(() => Int, { nullable: true })
23974
+ ScheduleIntervalMinutes?: number | null;
23975
+
23976
+ @Field({ nullable: true })
23977
+ CronExpression?: string | null;
23978
+
23979
+ @Field({ nullable: true })
23980
+ NextScheduledRunAt?: Date | null;
23981
+
23982
+ @Field({ nullable: true })
23983
+ LastScheduledRunAt?: Date | null;
23984
+
23985
+ @Field(() => Boolean, { nullable: true })
23986
+ IsLocked?: boolean;
23987
+
23988
+ @Field({ nullable: true })
23989
+ LockedAt?: Date | null;
23990
+
23991
+ @Field({ nullable: true })
23992
+ LockedByInstance?: string | null;
23993
+
23994
+ @Field({ nullable: true })
23995
+ LockExpiresAt?: Date | null;
23996
+
23904
23997
  @Field(() => [KeyValuePairInput], { nullable: true })
23905
23998
  OldValues___?: KeyValuePairInput[];
23906
23999
  }
@@ -42332,6 +42425,635 @@ export class MJGeneratedCodeResolver extends ResolverBase {
42332
42425
 
42333
42426
  }
42334
42427
 
42428
+ //****************************************************************************
42429
+ // ENTITY CLASS for MJ: Integration Object Fields
42430
+ //****************************************************************************
42431
+ @ObjectType({ description: `Describes a field on an integration object, mirroring EntityField column patterns for type compatibility` })
42432
+ export class MJIntegrationObjectField_ {
42433
+ @Field({description: `Primary key`})
42434
+ @MaxLength(36)
42435
+ ID: string;
42436
+
42437
+ @Field({description: `Foreign key to the IntegrationObject this field belongs to`})
42438
+ @MaxLength(36)
42439
+ IntegrationObjectID: string;
42440
+
42441
+ @Field({description: `Field name as returned by the external API`})
42442
+ @MaxLength(255)
42443
+ Name: string;
42444
+
42445
+ @Field({nullable: true, description: `Human-friendly display label for the field`})
42446
+ @MaxLength(255)
42447
+ DisplayName?: string;
42448
+
42449
+ @Field({nullable: true, description: `Description of what this field represents`})
42450
+ Description?: string;
42451
+
42452
+ @Field({nullable: true, description: `UI grouping category within the object`})
42453
+ @MaxLength(100)
42454
+ Category?: string;
42455
+
42456
+ @Field({description: `Data type of the field (e.g., nvarchar, int, datetime, decimal, bit). Uses same type vocabulary as EntityField.`})
42457
+ @MaxLength(100)
42458
+ Type: string;
42459
+
42460
+ @Field(() => Int, {nullable: true, description: `Maximum length for string types`})
42461
+ Length?: number;
42462
+
42463
+ @Field(() => Int, {nullable: true, description: `Numeric precision`})
42464
+ Precision?: number;
42465
+
42466
+ @Field(() => Int, {nullable: true, description: `Numeric scale`})
42467
+ Scale?: number;
42468
+
42469
+ @Field(() => Boolean, {description: `Whether the field can contain NULL values`})
42470
+ AllowsNull: boolean;
42471
+
42472
+ @Field({nullable: true, description: `Default value from the source system`})
42473
+ @MaxLength(255)
42474
+ DefaultValue?: string;
42475
+
42476
+ @Field(() => Boolean, {description: `Whether this field is part of the object primary key`})
42477
+ IsPrimaryKey: boolean;
42478
+
42479
+ @Field(() => Boolean, {description: `Whether values must be unique across all records`})
42480
+ IsUniqueKey: boolean;
42481
+
42482
+ @Field(() => Boolean, {description: `Whether this field cannot be written back to the source system`})
42483
+ IsReadOnly: boolean;
42484
+
42485
+ @Field(() => Boolean, {description: `Whether this field is required for create/update operations`})
42486
+ IsRequired: boolean;
42487
+
42488
+ @Field({nullable: true, description: `Foreign key to another IntegrationObject, establishing a relationship. Used for DAG-based dependency ordering and template variable resolution in parent APIPath patterns.`})
42489
+ @MaxLength(36)
42490
+ RelatedIntegrationObjectID?: string;
42491
+
42492
+ @Field({nullable: true, description: `The field name on the related IntegrationObject that this FK points to (typically the PK field)`})
42493
+ @MaxLength(255)
42494
+ RelatedIntegrationObjectFieldName?: string;
42495
+
42496
+ @Field(() => Int, {description: `Display and processing order within the object. Lower numbers appear first.`})
42497
+ Sequence: number;
42498
+
42499
+ @Field({nullable: true, description: `Freeform JSON for connector-specific field configuration`})
42500
+ Configuration?: string;
42501
+
42502
+ @Field({description: `Active, Deprecated, or Disabled. Mirrors EntityField status values.`})
42503
+ @MaxLength(25)
42504
+ Status: string;
42505
+
42506
+ @Field()
42507
+ _mj__CreatedAt: Date;
42508
+
42509
+ @Field()
42510
+ _mj__UpdatedAt: Date;
42511
+
42512
+ @Field()
42513
+ @MaxLength(255)
42514
+ IntegrationObject: string;
42515
+
42516
+ @Field({nullable: true})
42517
+ @MaxLength(255)
42518
+ RelatedIntegrationObject?: string;
42519
+
42520
+ }
42521
+
42522
+ //****************************************************************************
42523
+ // INPUT TYPE for MJ: Integration Object Fields
42524
+ //****************************************************************************
42525
+ @InputType()
42526
+ export class CreateMJIntegrationObjectFieldInput {
42527
+ @Field({ nullable: true })
42528
+ ID?: string;
42529
+
42530
+ @Field({ nullable: true })
42531
+ IntegrationObjectID?: string;
42532
+
42533
+ @Field({ nullable: true })
42534
+ Name?: string;
42535
+
42536
+ @Field({ nullable: true })
42537
+ DisplayName: string | null;
42538
+
42539
+ @Field({ nullable: true })
42540
+ Description: string | null;
42541
+
42542
+ @Field({ nullable: true })
42543
+ Category: string | null;
42544
+
42545
+ @Field({ nullable: true })
42546
+ Type?: string;
42547
+
42548
+ @Field(() => Int, { nullable: true })
42549
+ Length: number | null;
42550
+
42551
+ @Field(() => Int, { nullable: true })
42552
+ Precision: number | null;
42553
+
42554
+ @Field(() => Int, { nullable: true })
42555
+ Scale: number | null;
42556
+
42557
+ @Field(() => Boolean, { nullable: true })
42558
+ AllowsNull?: boolean;
42559
+
42560
+ @Field({ nullable: true })
42561
+ DefaultValue: string | null;
42562
+
42563
+ @Field(() => Boolean, { nullable: true })
42564
+ IsPrimaryKey?: boolean;
42565
+
42566
+ @Field(() => Boolean, { nullable: true })
42567
+ IsUniqueKey?: boolean;
42568
+
42569
+ @Field(() => Boolean, { nullable: true })
42570
+ IsReadOnly?: boolean;
42571
+
42572
+ @Field(() => Boolean, { nullable: true })
42573
+ IsRequired?: boolean;
42574
+
42575
+ @Field({ nullable: true })
42576
+ RelatedIntegrationObjectID: string | null;
42577
+
42578
+ @Field({ nullable: true })
42579
+ RelatedIntegrationObjectFieldName: string | null;
42580
+
42581
+ @Field(() => Int, { nullable: true })
42582
+ Sequence?: number;
42583
+
42584
+ @Field({ nullable: true })
42585
+ Configuration: string | null;
42586
+
42587
+ @Field({ nullable: true })
42588
+ Status?: string;
42589
+ }
42590
+
42591
+
42592
+ //****************************************************************************
42593
+ // INPUT TYPE for MJ: Integration Object Fields
42594
+ //****************************************************************************
42595
+ @InputType()
42596
+ export class UpdateMJIntegrationObjectFieldInput {
42597
+ @Field()
42598
+ ID: string;
42599
+
42600
+ @Field({ nullable: true })
42601
+ IntegrationObjectID?: string;
42602
+
42603
+ @Field({ nullable: true })
42604
+ Name?: string;
42605
+
42606
+ @Field({ nullable: true })
42607
+ DisplayName?: string | null;
42608
+
42609
+ @Field({ nullable: true })
42610
+ Description?: string | null;
42611
+
42612
+ @Field({ nullable: true })
42613
+ Category?: string | null;
42614
+
42615
+ @Field({ nullable: true })
42616
+ Type?: string;
42617
+
42618
+ @Field(() => Int, { nullable: true })
42619
+ Length?: number | null;
42620
+
42621
+ @Field(() => Int, { nullable: true })
42622
+ Precision?: number | null;
42623
+
42624
+ @Field(() => Int, { nullable: true })
42625
+ Scale?: number | null;
42626
+
42627
+ @Field(() => Boolean, { nullable: true })
42628
+ AllowsNull?: boolean;
42629
+
42630
+ @Field({ nullable: true })
42631
+ DefaultValue?: string | null;
42632
+
42633
+ @Field(() => Boolean, { nullable: true })
42634
+ IsPrimaryKey?: boolean;
42635
+
42636
+ @Field(() => Boolean, { nullable: true })
42637
+ IsUniqueKey?: boolean;
42638
+
42639
+ @Field(() => Boolean, { nullable: true })
42640
+ IsReadOnly?: boolean;
42641
+
42642
+ @Field(() => Boolean, { nullable: true })
42643
+ IsRequired?: boolean;
42644
+
42645
+ @Field({ nullable: true })
42646
+ RelatedIntegrationObjectID?: string | null;
42647
+
42648
+ @Field({ nullable: true })
42649
+ RelatedIntegrationObjectFieldName?: string | null;
42650
+
42651
+ @Field(() => Int, { nullable: true })
42652
+ Sequence?: number;
42653
+
42654
+ @Field({ nullable: true })
42655
+ Configuration?: string | null;
42656
+
42657
+ @Field({ nullable: true })
42658
+ Status?: string;
42659
+
42660
+ @Field(() => [KeyValuePairInput], { nullable: true })
42661
+ OldValues___?: KeyValuePairInput[];
42662
+ }
42663
+
42664
+ //****************************************************************************
42665
+ // RESOLVER for MJ: Integration Object Fields
42666
+ //****************************************************************************
42667
+ @ObjectType()
42668
+ export class RunMJIntegrationObjectFieldViewResult {
42669
+ @Field(() => [MJIntegrationObjectField_])
42670
+ Results: MJIntegrationObjectField_[];
42671
+
42672
+ @Field(() => String, {nullable: true})
42673
+ UserViewRunID?: string;
42674
+
42675
+ @Field(() => Int, {nullable: true})
42676
+ RowCount: number;
42677
+
42678
+ @Field(() => Int, {nullable: true})
42679
+ TotalRowCount: number;
42680
+
42681
+ @Field(() => Int, {nullable: true})
42682
+ ExecutionTime: number;
42683
+
42684
+ @Field({nullable: true})
42685
+ ErrorMessage?: string;
42686
+
42687
+ @Field(() => Boolean, {nullable: false})
42688
+ Success: boolean;
42689
+ }
42690
+
42691
+ @Resolver(MJIntegrationObjectField_)
42692
+ export class MJIntegrationObjectFieldResolver extends ResolverBase {
42693
+ @Query(() => RunMJIntegrationObjectFieldViewResult)
42694
+ async RunMJIntegrationObjectFieldViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
42695
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
42696
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
42697
+ }
42698
+
42699
+ @Query(() => RunMJIntegrationObjectFieldViewResult)
42700
+ async RunMJIntegrationObjectFieldViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
42701
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
42702
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
42703
+ }
42704
+
42705
+ @Query(() => RunMJIntegrationObjectFieldViewResult)
42706
+ async RunMJIntegrationObjectFieldDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
42707
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
42708
+ input.EntityName = 'MJ: Integration Object Fields';
42709
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
42710
+ }
42711
+ @Query(() => MJIntegrationObjectField_, { nullable: true })
42712
+ async MJIntegrationObjectField(@Arg('ID', () => String) ID: string, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<MJIntegrationObjectField_ | null> {
42713
+ this.CheckUserReadPermissions('MJ: Integration Object Fields', userPayload);
42714
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
42715
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwIntegrationObjectFields')} WHERE ${provider.QuoteIdentifier('ID')}='${ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Integration Object Fields', userPayload, EntityPermissionType.Read, 'AND');
42716
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
42717
+ const result = await this.MapFieldNamesToCodeNames('MJ: Integration Object Fields', rows && rows.length > 0 ? rows[0] : {}, this.GetUserFromPayload(userPayload));
42718
+ return result;
42719
+ }
42720
+
42721
+ @Mutation(() => MJIntegrationObjectField_)
42722
+ async CreateMJIntegrationObjectField(
42723
+ @Arg('input', () => CreateMJIntegrationObjectFieldInput) input: CreateMJIntegrationObjectFieldInput,
42724
+ @Ctx() { providers, userPayload }: AppContext,
42725
+ @PubSub() pubSub: PubSubEngine
42726
+ ) {
42727
+ const provider = GetReadWriteProvider(providers);
42728
+ return this.CreateRecord('MJ: Integration Object Fields', input, provider, userPayload, pubSub)
42729
+ }
42730
+
42731
+ @Mutation(() => MJIntegrationObjectField_)
42732
+ async UpdateMJIntegrationObjectField(
42733
+ @Arg('input', () => UpdateMJIntegrationObjectFieldInput) input: UpdateMJIntegrationObjectFieldInput,
42734
+ @Ctx() { providers, userPayload }: AppContext,
42735
+ @PubSub() pubSub: PubSubEngine
42736
+ ) {
42737
+ const provider = GetReadWriteProvider(providers);
42738
+ return this.UpdateRecord('MJ: Integration Object Fields', input, provider, userPayload, pubSub);
42739
+ }
42740
+
42741
+ @Mutation(() => MJIntegrationObjectField_)
42742
+ async DeleteMJIntegrationObjectField(@Arg('ID', () => String) ID: string, @Arg('options___', () => DeleteOptionsInput) options: DeleteOptionsInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
42743
+ const provider = GetReadWriteProvider(providers);
42744
+ const key = new CompositeKey([{FieldName: 'ID', Value: ID}]);
42745
+ return this.DeleteRecord('MJ: Integration Object Fields', key, options, provider, userPayload, pubSub);
42746
+ }
42747
+
42748
+ }
42749
+
42750
+ //****************************************************************************
42751
+ // ENTITY CLASS for MJ: Integration Objects
42752
+ //****************************************************************************
42753
+ @ObjectType({ description: `Describes an external object or endpoint exposed by an integration (e.g., Members, Events, Invoices)` })
42754
+ export class MJIntegrationObject_ {
42755
+ @Field({description: `Primary key`})
42756
+ @MaxLength(36)
42757
+ ID: string;
42758
+
42759
+ @Field({description: `Foreign key to the Integration that owns this object`})
42760
+ @MaxLength(36)
42761
+ IntegrationID: string;
42762
+
42763
+ @Field({description: `Internal/programmatic name of the external object (e.g., Members, Events)`})
42764
+ @MaxLength(255)
42765
+ Name: string;
42766
+
42767
+ @Field({nullable: true, description: `Human-friendly display label`})
42768
+ @MaxLength(255)
42769
+ DisplayName?: string;
42770
+
42771
+ @Field({nullable: true, description: `Description of what this external object represents`})
42772
+ Description?: string;
42773
+
42774
+ @Field({nullable: true, description: `UI grouping category (e.g., Membership, Events, Finance)`})
42775
+ @MaxLength(100)
42776
+ Category?: string;
42777
+
42778
+ @Field({description: `API endpoint path, may include template variables like {ProfileID} that are resolved at runtime from parent object records`})
42779
+ @MaxLength(500)
42780
+ APIPath: string;
42781
+
42782
+ @Field({nullable: true, description: `JSON key used to extract the data array from the API response envelope. NULL means the response is a root-level array.`})
42783
+ @MaxLength(255)
42784
+ ResponseDataKey?: string;
42785
+
42786
+ @Field(() => Int, {description: `Number of records to request per page from the API`})
42787
+ DefaultPageSize: number;
42788
+
42789
+ @Field(() => Boolean, {description: `Whether this endpoint supports paginated fetching`})
42790
+ SupportsPagination: boolean;
42791
+
42792
+ @Field({description: `Pagination strategy: PageNumber (page index), Offset (record offset), Cursor (opaque token), or None`})
42793
+ @MaxLength(20)
42794
+ PaginationType: string;
42795
+
42796
+ @Field(() => Boolean, {description: `Whether this object supports watermark-based incremental sync`})
42797
+ SupportsIncrementalSync: boolean;
42798
+
42799
+ @Field(() => Boolean, {description: `Whether data can be pushed back to this object via the API`})
42800
+ SupportsWrite: boolean;
42801
+
42802
+ @Field({nullable: true, description: `JSON object of default query parameters to include with every API request for this object`})
42803
+ DefaultQueryParams?: string;
42804
+
42805
+ @Field({nullable: true, description: `Freeform JSON for connector-specific configuration not covered by standard columns`})
42806
+ Configuration?: string;
42807
+
42808
+ @Field(() => Int, {description: `Processing and display order. Lower numbers are processed first.`})
42809
+ Sequence: number;
42810
+
42811
+ @Field({description: `Active, Deprecated, or Disabled. Mirrors EntityField status values.`})
42812
+ @MaxLength(25)
42813
+ Status: string;
42814
+
42815
+ @Field()
42816
+ _mj__CreatedAt: Date;
42817
+
42818
+ @Field()
42819
+ _mj__UpdatedAt: Date;
42820
+
42821
+ @Field()
42822
+ @MaxLength(100)
42823
+ Integration: string;
42824
+
42825
+ @Field(() => [MJIntegrationObjectField_])
42826
+ MJIntegrationObjectFields_IntegrationObjectIDArray: MJIntegrationObjectField_[]; // Link to MJIntegrationObjectFields
42827
+
42828
+ @Field(() => [MJIntegrationObjectField_])
42829
+ MJIntegrationObjectFields_RelatedIntegrationObjectIDArray: MJIntegrationObjectField_[]; // Link to MJIntegrationObjectFields
42830
+
42831
+ }
42832
+
42833
+ //****************************************************************************
42834
+ // INPUT TYPE for MJ: Integration Objects
42835
+ //****************************************************************************
42836
+ @InputType()
42837
+ export class CreateMJIntegrationObjectInput {
42838
+ @Field({ nullable: true })
42839
+ ID?: string;
42840
+
42841
+ @Field({ nullable: true })
42842
+ IntegrationID?: string;
42843
+
42844
+ @Field({ nullable: true })
42845
+ Name?: string;
42846
+
42847
+ @Field({ nullable: true })
42848
+ DisplayName: string | null;
42849
+
42850
+ @Field({ nullable: true })
42851
+ Description: string | null;
42852
+
42853
+ @Field({ nullable: true })
42854
+ Category: string | null;
42855
+
42856
+ @Field({ nullable: true })
42857
+ APIPath?: string;
42858
+
42859
+ @Field({ nullable: true })
42860
+ ResponseDataKey: string | null;
42861
+
42862
+ @Field(() => Int, { nullable: true })
42863
+ DefaultPageSize?: number;
42864
+
42865
+ @Field(() => Boolean, { nullable: true })
42866
+ SupportsPagination?: boolean;
42867
+
42868
+ @Field({ nullable: true })
42869
+ PaginationType?: string;
42870
+
42871
+ @Field(() => Boolean, { nullable: true })
42872
+ SupportsIncrementalSync?: boolean;
42873
+
42874
+ @Field(() => Boolean, { nullable: true })
42875
+ SupportsWrite?: boolean;
42876
+
42877
+ @Field({ nullable: true })
42878
+ DefaultQueryParams: string | null;
42879
+
42880
+ @Field({ nullable: true })
42881
+ Configuration: string | null;
42882
+
42883
+ @Field(() => Int, { nullable: true })
42884
+ Sequence?: number;
42885
+
42886
+ @Field({ nullable: true })
42887
+ Status?: string;
42888
+ }
42889
+
42890
+
42891
+ //****************************************************************************
42892
+ // INPUT TYPE for MJ: Integration Objects
42893
+ //****************************************************************************
42894
+ @InputType()
42895
+ export class UpdateMJIntegrationObjectInput {
42896
+ @Field()
42897
+ ID: string;
42898
+
42899
+ @Field({ nullable: true })
42900
+ IntegrationID?: string;
42901
+
42902
+ @Field({ nullable: true })
42903
+ Name?: string;
42904
+
42905
+ @Field({ nullable: true })
42906
+ DisplayName?: string | null;
42907
+
42908
+ @Field({ nullable: true })
42909
+ Description?: string | null;
42910
+
42911
+ @Field({ nullable: true })
42912
+ Category?: string | null;
42913
+
42914
+ @Field({ nullable: true })
42915
+ APIPath?: string;
42916
+
42917
+ @Field({ nullable: true })
42918
+ ResponseDataKey?: string | null;
42919
+
42920
+ @Field(() => Int, { nullable: true })
42921
+ DefaultPageSize?: number;
42922
+
42923
+ @Field(() => Boolean, { nullable: true })
42924
+ SupportsPagination?: boolean;
42925
+
42926
+ @Field({ nullable: true })
42927
+ PaginationType?: string;
42928
+
42929
+ @Field(() => Boolean, { nullable: true })
42930
+ SupportsIncrementalSync?: boolean;
42931
+
42932
+ @Field(() => Boolean, { nullable: true })
42933
+ SupportsWrite?: boolean;
42934
+
42935
+ @Field({ nullable: true })
42936
+ DefaultQueryParams?: string | null;
42937
+
42938
+ @Field({ nullable: true })
42939
+ Configuration?: string | null;
42940
+
42941
+ @Field(() => Int, { nullable: true })
42942
+ Sequence?: number;
42943
+
42944
+ @Field({ nullable: true })
42945
+ Status?: string;
42946
+
42947
+ @Field(() => [KeyValuePairInput], { nullable: true })
42948
+ OldValues___?: KeyValuePairInput[];
42949
+ }
42950
+
42951
+ //****************************************************************************
42952
+ // RESOLVER for MJ: Integration Objects
42953
+ //****************************************************************************
42954
+ @ObjectType()
42955
+ export class RunMJIntegrationObjectViewResult {
42956
+ @Field(() => [MJIntegrationObject_])
42957
+ Results: MJIntegrationObject_[];
42958
+
42959
+ @Field(() => String, {nullable: true})
42960
+ UserViewRunID?: string;
42961
+
42962
+ @Field(() => Int, {nullable: true})
42963
+ RowCount: number;
42964
+
42965
+ @Field(() => Int, {nullable: true})
42966
+ TotalRowCount: number;
42967
+
42968
+ @Field(() => Int, {nullable: true})
42969
+ ExecutionTime: number;
42970
+
42971
+ @Field({nullable: true})
42972
+ ErrorMessage?: string;
42973
+
42974
+ @Field(() => Boolean, {nullable: false})
42975
+ Success: boolean;
42976
+ }
42977
+
42978
+ @Resolver(MJIntegrationObject_)
42979
+ export class MJIntegrationObjectResolver extends ResolverBase {
42980
+ @Query(() => RunMJIntegrationObjectViewResult)
42981
+ async RunMJIntegrationObjectViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
42982
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
42983
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
42984
+ }
42985
+
42986
+ @Query(() => RunMJIntegrationObjectViewResult)
42987
+ async RunMJIntegrationObjectViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
42988
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
42989
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
42990
+ }
42991
+
42992
+ @Query(() => RunMJIntegrationObjectViewResult)
42993
+ async RunMJIntegrationObjectDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
42994
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
42995
+ input.EntityName = 'MJ: Integration Objects';
42996
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
42997
+ }
42998
+ @Query(() => MJIntegrationObject_, { nullable: true })
42999
+ async MJIntegrationObject(@Arg('ID', () => String) ID: string, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<MJIntegrationObject_ | null> {
43000
+ this.CheckUserReadPermissions('MJ: Integration Objects', userPayload);
43001
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
43002
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwIntegrationObjects')} WHERE ${provider.QuoteIdentifier('ID')}='${ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Integration Objects', userPayload, EntityPermissionType.Read, 'AND');
43003
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
43004
+ const result = await this.MapFieldNamesToCodeNames('MJ: Integration Objects', rows && rows.length > 0 ? rows[0] : {}, this.GetUserFromPayload(userPayload));
43005
+ return result;
43006
+ }
43007
+
43008
+ @FieldResolver(() => [MJIntegrationObjectField_])
43009
+ async MJIntegrationObjectFields_IntegrationObjectIDArray(@Root() mjintegrationobject_: MJIntegrationObject_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
43010
+ this.CheckUserReadPermissions('MJ: Integration Object Fields', userPayload);
43011
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
43012
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwIntegrationObjectFields')} WHERE ${provider.QuoteIdentifier('IntegrationObjectID')}='${mjintegrationobject_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Integration Object Fields', userPayload, EntityPermissionType.Read, 'AND');
43013
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
43014
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Integration Object Fields', rows, this.GetUserFromPayload(userPayload));
43015
+ return result;
43016
+ }
43017
+
43018
+ @FieldResolver(() => [MJIntegrationObjectField_])
43019
+ async MJIntegrationObjectFields_RelatedIntegrationObjectIDArray(@Root() mjintegrationobject_: MJIntegrationObject_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
43020
+ this.CheckUserReadPermissions('MJ: Integration Object Fields', userPayload);
43021
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
43022
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwIntegrationObjectFields')} WHERE ${provider.QuoteIdentifier('RelatedIntegrationObjectID')}='${mjintegrationobject_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Integration Object Fields', userPayload, EntityPermissionType.Read, 'AND');
43023
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
43024
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Integration Object Fields', rows, this.GetUserFromPayload(userPayload));
43025
+ return result;
43026
+ }
43027
+
43028
+ @Mutation(() => MJIntegrationObject_)
43029
+ async CreateMJIntegrationObject(
43030
+ @Arg('input', () => CreateMJIntegrationObjectInput) input: CreateMJIntegrationObjectInput,
43031
+ @Ctx() { providers, userPayload }: AppContext,
43032
+ @PubSub() pubSub: PubSubEngine
43033
+ ) {
43034
+ const provider = GetReadWriteProvider(providers);
43035
+ return this.CreateRecord('MJ: Integration Objects', input, provider, userPayload, pubSub)
43036
+ }
43037
+
43038
+ @Mutation(() => MJIntegrationObject_)
43039
+ async UpdateMJIntegrationObject(
43040
+ @Arg('input', () => UpdateMJIntegrationObjectInput) input: UpdateMJIntegrationObjectInput,
43041
+ @Ctx() { providers, userPayload }: AppContext,
43042
+ @PubSub() pubSub: PubSubEngine
43043
+ ) {
43044
+ const provider = GetReadWriteProvider(providers);
43045
+ return this.UpdateRecord('MJ: Integration Objects', input, provider, userPayload, pubSub);
43046
+ }
43047
+
43048
+ @Mutation(() => MJIntegrationObject_)
43049
+ async DeleteMJIntegrationObject(@Arg('ID', () => String) ID: string, @Arg('options___', () => DeleteOptionsInput) options: DeleteOptionsInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
43050
+ const provider = GetReadWriteProvider(providers);
43051
+ const key = new CompositeKey([{FieldName: 'ID', Value: ID}]);
43052
+ return this.DeleteRecord('MJ: Integration Objects', key, options, provider, userPayload, pubSub);
43053
+ }
43054
+
43055
+ }
43056
+
42335
43057
  //****************************************************************************
42336
43058
  // ENTITY CLASS for MJ: Integration Source Types
42337
43059
  //****************************************************************************
@@ -42763,6 +43485,9 @@ export class MJIntegration_ {
42763
43485
  @Field(() => [MJRecordChange_])
42764
43486
  MJRecordChanges_IntegrationIDArray: MJRecordChange_[]; // Link to MJRecordChanges
42765
43487
 
43488
+ @Field(() => [MJIntegrationObject_])
43489
+ MJIntegrationObjects_IntegrationIDArray: MJIntegrationObject_[]; // Link to MJIntegrationObjects
43490
+
42766
43491
  }
42767
43492
 
42768
43493
  //****************************************************************************
@@ -42932,6 +43657,16 @@ export class MJIntegrationResolver extends ResolverBase {
42932
43657
  return result;
42933
43658
  }
42934
43659
 
43660
+ @FieldResolver(() => [MJIntegrationObject_])
43661
+ async MJIntegrationObjects_IntegrationIDArray(@Root() mjintegration_: MJIntegration_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
43662
+ this.CheckUserReadPermissions('MJ: Integration Objects', userPayload);
43663
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
43664
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwIntegrationObjects')} WHERE ${provider.QuoteIdentifier('IntegrationID')}='${mjintegration_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Integration Objects', userPayload, EntityPermissionType.Read, 'AND');
43665
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
43666
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Integration Objects', rows, this.GetUserFromPayload(userPayload));
43667
+ return result;
43668
+ }
43669
+
42935
43670
  @Mutation(() => MJIntegration_)
42936
43671
  async CreateMJIntegration(
42937
43672
  @Arg('input', () => CreateMJIntegrationInput) input: CreateMJIntegrationInput,