@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.
- package/README.md +1 -0
- package/dist/apolloServer/index.d.ts +10 -2
- package/dist/apolloServer/index.d.ts.map +1 -1
- package/dist/apolloServer/index.js +22 -8
- package/dist/apolloServer/index.js.map +1 -1
- package/dist/config.d.ts +125 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +23 -0
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +17 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +144 -62
- package/dist/context.js.map +1 -1
- package/dist/generated/generated.d.ts +207 -0
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +1112 -76
- package/dist/generated/generated.js.map +1 -1
- package/dist/generic/CacheInvalidationResolver.d.ts +32 -0
- package/dist/generic/CacheInvalidationResolver.d.ts.map +1 -0
- package/dist/generic/CacheInvalidationResolver.js +80 -0
- package/dist/generic/CacheInvalidationResolver.js.map +1 -0
- package/dist/generic/PubSubManager.d.ts +27 -0
- package/dist/generic/PubSubManager.d.ts.map +1 -0
- package/dist/generic/PubSubManager.js +42 -0
- package/dist/generic/PubSubManager.js.map +1 -0
- package/dist/generic/ResolverBase.d.ts +14 -0
- package/dist/generic/ResolverBase.d.ts.map +1 -1
- package/dist/generic/ResolverBase.js +50 -0
- package/dist/generic/ResolverBase.js.map +1 -1
- package/dist/hooks.d.ts +65 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +14 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +172 -45
- package/dist/index.js.map +1 -1
- package/dist/multiTenancy/index.d.ts +47 -0
- package/dist/multiTenancy/index.d.ts.map +1 -0
- package/dist/multiTenancy/index.js +152 -0
- package/dist/multiTenancy/index.js.map +1 -0
- package/dist/resolvers/IntegrationDiscoveryResolver.d.ts +123 -0
- package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -0
- package/dist/resolvers/IntegrationDiscoveryResolver.js +624 -0
- package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -0
- package/dist/rest/RESTEndpointHandler.d.ts +3 -1
- package/dist/rest/RESTEndpointHandler.d.ts.map +1 -1
- package/dist/rest/RESTEndpointHandler.js +14 -33
- package/dist/rest/RESTEndpointHandler.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +61 -57
- package/src/__tests__/multiTenancy.security.test.ts +334 -0
- package/src/__tests__/multiTenancy.test.ts +225 -0
- package/src/__tests__/unifiedAuth.test.ts +416 -0
- package/src/apolloServer/index.ts +32 -16
- package/src/config.ts +25 -0
- package/src/context.ts +205 -98
- package/src/generated/generated.ts +736 -1
- package/src/generic/CacheInvalidationResolver.ts +66 -0
- package/src/generic/PubSubManager.ts +47 -0
- package/src/generic/ResolverBase.ts +53 -0
- package/src/hooks.ts +77 -0
- package/src/index.ts +198 -49
- package/src/multiTenancy/index.ts +183 -0
- package/src/resolvers/IntegrationDiscoveryResolver.ts +584 -0
- package/src/rest/RESTEndpointHandler.ts +23 -42
- 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,
|