@izara_project/izara-core-generate-service-code 1.0.65 → 1.0.67
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 +73 -11
- package/docs/TriggeredCache Flow.drawio +193 -0
- package/docs/test.mmd +47 -0
- package/docs/test.png +0 -0
- package/index.js +0 -5
- package/package.json +7 -6
- package/src/compile/compileProject.js +26 -0
- package/src/compile/loadSchemas.js +50 -0
- package/src/emit/crud/dynamicCrudFlowSchemaTemplate.js +11 -0
- package/src/emit/crud/emitCrudApplicationArtifacts.js +161 -0
- package/src/emit/crud/emitDynamicCrudFlowSchemas.js +84 -0
- package/src/emit/crud/generateCrudApplicationArtifacts.js +16 -0
- package/src/emit/crud/generateDynamicCrudFlowSchemas.js +21 -0
- package/src/emit/crud/loadLocalSchemaArrays.js +8 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/CreateEndpoint_Main.ejs +6 -6
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/DeleteEndpoint_Main.ejs +6 -6
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/step → emit/crud/templates}/FlowEndpointBeforeLogical_Main.ejs +2 -2
- package/src/emit/crud/templates/FlowEndpointComplete_Main.ejs +96 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/crud/templates}/FlowEndpoint_HdrWbs.ejs +1 -1
- package/src/emit/crud/templates/FlowHandler_HdrApi.ejs +69 -0
- package/src/{codeGenerators/app/src/generatedCode/ProcessLogical/templates/ProcessLogical_HdrSqs.ejs → emit/crud/templates/FlowHandler_HdrSqs.ejs} +52 -56
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/crud/templates}/FlowMain_Wbs.ejs +1 -3
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/GetEndpoint_Main.ejs +2 -2
- package/src/emit/crud/templates/GetRangeEndpoint_Main.ejs +127 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/UpdateEndpoint_Main.ejs +11 -9
- package/src/emit/custom/customFlows.js +121 -0
- package/src/emit/custom/emitCustomFlowApplicationArtifacts.js +325 -0
- package/src/emit/custom/generateCustomFlowApplicationArtifacts.js +22 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/custom/templates}/FlowEndpoint_Main.ejs +5 -5
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step → emit/custom/templates}/FlowStep_Main.ejs +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ConfirmReserved_Main.ejs +5 -5
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreateObject_HdrWbs.ejs +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreateObject_Main.ejs +3 -3
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreatePreSignUrl_Main.ejs +4 -5
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/FlowHandler_HdrS3.ejs +2 -8
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ProcessS3File_Main.ejs +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ReservedLimit_Main.ejs +5 -6
- package/src/emit/custom/templates/triggerCache/CheckTriggerCache_HdrSqs.ejs +32 -0
- package/src/emit/custom/templates/triggerCache/CheckTriggerCache_Main.ejs +63 -0
- package/src/emit/custom/templates/triggerCache/TriggerCacheComplete_Main.ejs +35 -0
- package/src/emit/custom/templates/triggerCache/TriggerCache_Main.ejs +16 -0
- package/src/emit/function/functionYamlArtifact.js +125 -0
- package/src/emit/rbac/emitDynamicRbacFlowSchemas.js +117 -0
- package/src/emit/rbac/emitRbacApplicationArtifacts.js +270 -0
- package/src/emit/rbac/generateCreateTargetRoleHandler.js +19 -0
- package/src/emit/rbac/generateDynamicRbacFlowSchemas.js +21 -0
- package/src/emit/rbac/rbacFlowTag.js +7 -0
- package/src/emit/rbac/templates/CreateTargetRole_HdrSqs.ejs +24 -0
- package/src/emit/rbac/templates/CreateTargetRole_Main.ejs +25 -0
- package/src/emit/rbac/templates/DynamicRbacFlowSchema.ejs +5 -0
- package/src/emit/rbac/templates/ListRbac_HdrApi.ejs +17 -0
- package/src/emit/rbac/templates/ListRbac_HdrSqs.ejs +13 -0
- package/src/emit/rbac/templates/ListRbac_Main.ejs +29 -0
- package/src/emit/rbac/templates/RbacMutation_Main.ejs +22 -0
- package/src/emit/rbac/templates/UserRbacFlow_HdrInv.ejs +10 -0
- package/src/emit/rbac/templates/UserRbacFlow_Main.ejs +44 -0
- package/src/emit/rbac/templates/UserRoleMutation_Main.ejs +33 -0
- package/src/emit/relationship/dynamicRelationshipFlowSchemaTemplate.js +11 -0
- package/src/emit/relationship/emitDynamicRelationshipFlowSchemas.js +66 -0
- package/src/emit/relationship/emitRelationshipApplicationArtifacts.js +148 -0
- package/src/emit/relationship/generateDynamicRelationshipFlowSchemas.js +23 -0
- package/src/emit/relationship/generateRelationshipApplicationArtifacts.js +22 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessChangeRelationshipComplete_Main.ejs → emit/relationship/templates/ChangeRelationshipComplete_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessChangeRelationship_Main.ejs → emit/relationship/templates/ChangeRelationship_Main.ejs} +12 -4
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessCreateRelationshipComplete_Main.ejs → emit/relationship/templates/CreateRelationshipComplete_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessCreateRelationship_Main.ejs → emit/relationship/templates/CreateRelationship_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessDeleteRelationshipComplete_Main.ejs → emit/relationship/templates/DeleteRelationshipComplete_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessDeleteRelationship_Main.ejs → emit/relationship/templates/DeleteRelationship_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrDsq.ejs +1 -1
- package/src/emit/relationship/templates/FlowHandler_HdrInv.ejs +45 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessGetRelationshipComplete_Main.ejs → emit/relationship/templates/GetRelationshipComplete_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessGetRelationship_Main.ejs → emit/relationship/templates/GetRelationship_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessMoveRelationship_Main.ejs → emit/relationship/templates/MoveRelationship_Main.ejs} +9 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessUpdateRelationshipComplete_Main.ejs → emit/relationship/templates/UpdateRelationshipComplete_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessUpdateRelationship_Main.ejs → emit/relationship/templates/UpdateRelationship_Main.ejs} +1 -1
- package/src/emit/resource/emitResourceArtifacts.js +595 -0
- package/src/emit/resource/generateResourceArtifacts.js +20 -0
- package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceBeforeLogicalYaml.ejs +1 -1
- package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceSqsYaml.ejs +6 -6
- package/src/{codeGenerators/app/sls_yaml → emit/resource}/templates/SharedResource_Yaml.ejs +8 -8
- package/src/emit/system/emitSystemWebSocketArtifacts.js +183 -0
- package/src/generate.js +60 -126
- package/src/output/commitArtifacts.js +213 -0
- package/src/output/mergeHooks.js +55 -0
- package/src/output/validateArtifacts.js +62 -0
- package/src/plan/buildGenerationPlan.js +50 -0
- package/test/core.test.js +159 -0
- package/test/createTargetRoleHandler.test.js +68 -0
- package/test/crudApplicationArtifacts.test.js +107 -0
- package/test/customFlowApplicationArtifacts.test.js +297 -0
- package/test/dynamicCrudFlowSchemas.test.js +136 -0
- package/test/dynamicRbacFlowSchemas.test.js +101 -0
- package/test/dynamicRelationshipFlowSchemas.test.js +99 -0
- package/test/functionYamlArtifact.test.js +34 -0
- package/test/intTestApi.test.js +29 -0
- package/test/publicApi.test.js +209 -0
- package/test/relationshipApplicationArtifacts.test.js +68 -0
- package/test/resourceArtifacts.test.js +121 -0
- package/jsconfig.json +0 -9
- package/src/__tests__/getIntTestConfig.test.js +0 -51
- package/src/__tests__/intTestGeneratorShared.test.cjs +0 -169
- package/src/__tests__/pathIntTest.test.js +0 -103
- package/src/codeGenerators/app/initial_setup/InitialSetupGenerator.js +0 -199
- package/src/codeGenerators/app/initial_setup/templates/InitialSetup_LambdaRole.ejs +0 -50
- package/src/codeGenerators/app/initial_setup/templates/InitialSetup_SnsService.ejs +0 -15
- package/src/codeGenerators/app/initial_setup/templates/InitialSetup_TableName.ejs +0 -9
- package/src/codeGenerators/app/sls_yaml/FindDataYamlGenerator.js +0 -23
- package/src/codeGenerators/app/sls_yaml/FunctionYamlGenerator.js +0 -332
- package/src/codeGenerators/app/sls_yaml/ProcessLogicalYamlGenerator.js +0 -21
- package/src/codeGenerators/app/sls_yaml/RoleNameConfigGenerator.js +0 -48
- package/src/codeGenerators/app/sls_yaml/SharedResourceYamlGenerator.js +0 -503
- package/src/codeGenerators/app/sls_yaml/__tests__/SharedResourceYamlGenerator.test.js +0 -235
- package/src/codeGenerators/app/sls_yaml/_policy/PolicyRegistry.js +0 -56
- package/src/codeGenerators/app/sls_yaml/_policy/__tests__/PolicyRegistry.test.js +0 -33
- package/src/codeGenerators/app/sls_yaml/renderYamlTemplate.js +0 -13
- package/src/codeGenerators/app/sls_yaml/templates/FindData_Yaml.ejs +0 -10
- package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Api.ejs +0 -21
- package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_EventBridge.ejs +0 -14
- package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Inv.ejs +0 -6
- package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Sqs.ejs +0 -11
- package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Wbs.ejs +0 -11
- package/src/codeGenerators/app/sls_yaml/templates/ProcessLogical_Yaml.ejs +0 -32
- package/src/codeGenerators/app/sls_yaml/templates/RoleNameConfig_Yaml.ejs +0 -5
- package/src/codeGenerators/app/src/generatedCode/FindData/FindDataGenerator.js +0 -238
- package/src/codeGenerators/app/src/generatedCode/FindData/templates/FindData_HdrSqs.ejs +0 -87
- package/src/codeGenerators/app/src/generatedCode/FindData/templates/FindData_Main.ejs +0 -108
- package/src/codeGenerators/app/src/generatedCode/FindData/templates/GetByStorage/getByDynamo.ejs +0 -32
- package/src/codeGenerators/app/src/generatedCode/FindData/templates/GetByStorage/getByGraph.ejs +0 -87
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/.gitkeep +0 -0
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/EndpointsGenerator.js +0 -120
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/step/FlowEndpointComplete_Main.ejs +0 -313
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/RbacFlowGenerator.js +0 -116
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateRolePermissions.ejs +0 -135
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateTargetRole.ejs +0 -131
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateUserRole.ejs +0 -150
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteRolePermissions.ejs +0 -132
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteTargetRole.ejs +0 -132
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteUserFromRole.ejs +0 -150
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/FlowRbac_Main.ejs +0 -252
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListRolePermissions.ejs +0 -120
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListTargetRole.ejs +0 -122
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListUserInRoles.ejs +0 -117
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRelationships/RelationshipFlowGenerator.js +0 -148
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/.gitkeep +0 -0
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/StatusFieldGenerator.js +0 -109
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/WebSocketGenerator.js +0 -122
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint/FlowEntryPoint_Main.ejs +0 -38
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusFieldSns_Yaml.ejs +0 -52
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusField_HdrSqs.ejs +0 -84
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusField_Main.ejs +0 -78
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_ByConfig_Awaiting_Main.ejs +0 -123
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_ByConfig_Paginated_Main.ejs +0 -59
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_PlugIn_Main.ejs +0 -72
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_RecievePlugIn_Main.ejs +0 -76
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/templateAwaitingStep.ejs +0 -41
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/templateSendPlugin.ejs +0 -18
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocketFlow_Yaml.ejs +0 -26
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocketSub_Yaml.ejs +0 -7
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_HdrSqs.ejs +0 -66
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_Main.ejs +0 -115
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_Yaml.ejs +0 -36
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketConnect_Main.ejs +0 -52
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketConnect_Yaml.ejs +0 -13
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketDynamoDb_Yaml.ejs +0 -28
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/BaseDsqHandler.js +0 -63
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/BaseSqsHandler.js +0 -66
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/__tests__/BaseDsqHandler.test.js +0 -94
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/dsq.js +0 -5
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/eventBridge.js +0 -33
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/extTopic.js +0 -6
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/lambdaSyncApi.js +0 -51
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/lambdaSyncInv.js +0 -51
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/ownTopic.js +0 -54
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/registry.js +0 -17
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3.js +0 -56
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ConfirmAfterUploadS3Generator.js +0 -46
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/CreateObjectGenerator.js +0 -50
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/CreatePreSignUrlGenerator.js +0 -48
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ProcessAfterUploadS3Generator.js +0 -49
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ReservedLimitGenerator.js +0 -47
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/eventTypes.js +0 -23
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowClassifier.js +0 -50
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowEntryPointBase.js +0 -106
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowMainFunctionBase.js +0 -172
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowNaming.js +0 -37
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowSelection.js +0 -19
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowStepBase.js +0 -235
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowStepNormalizer.js +0 -75
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowValidator.js +0 -267
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/propertyNormalizer.js +0 -18
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/registry.js +0 -7
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/roleNameDetection.js +0 -49
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/triggerCacheBase.js +0 -177
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/CheckTriggerCache_HdrSqs.ejs +0 -89
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/CheckTriggerCache_Main.ejs +0 -83
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/ProcessTriggerCache_HdrSqs.ejs +0 -103
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/ProcessTriggerCache_Main.ejs +0 -58
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_HdrDsq.ejs +0 -104
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_HdrSqs.ejs +0 -88
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_Main.ejs +0 -80
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheQueue_Yaml.ejs +0 -36
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/yaml/SharedFunctionSqs_Yaml.ejs +0 -13
- package/src/codeGenerators/app/src/generatedCode/ProcessLogical/ProcessLogicalGenerator.js +0 -29
- package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_HdrDsq.ejs +0 -177
- package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_HdrSqs.ejs +0 -155
- package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_Main.ejs +0 -268
- package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/ProcessLogical_Main.ejs +0 -450
- package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/RegisterGenerator.js +0 -149
- package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/RegisterComplete_HdrSqs.ejs +0 -85
- package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/RegisterComplete_Main.ejs +0 -176
- package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/Register_HdrWbs.ejs +0 -80
- package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/Register_Main.ejs +0 -164
- package/src/codeGenerators/app/src/generatedCode/libs/ConstsGenerator.js +0 -28
- package/src/codeGenerators/app/src/generatedCode/libs/GenerateCodeLibsGenerator.js +0 -28
- package/src/codeGenerators/app/src/generatedCode/libs/templates/Consts.ejs +0 -448
- package/src/codeGenerators/app/src/generatedCode/libs/templates/GenerateCodeLibs.ejs +0 -124
- package/src/codeGenerators/resource/sls_yaml/DynamoDBGenerator.js +0 -87
- package/src/codeGenerators/resource/sls_yaml/FlowOutGenerator.js +0 -70
- package/src/codeGenerators/resource/sls_yaml/FlowResourceYamlGenerator.js +0 -182
- package/src/core/renderTemplateFile.js +0 -22
- package/src/core/validate.js +0 -165
- package/src/generateCode.js +0 -357
- package/src/generateSchema.js +0 -123
- package/src/parsers/flowSchemaParser.js +0 -112
- package/src/parsers/objectSchemaParser.js +0 -39
- package/src/parsers/relationshipSchemaParser.js +0 -51
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/FlowSchemaGenerator.js +0 -107
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/RbacFlowSchemaGenerator.js +0 -98
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/RelationshipFlowSchemaGenerator.js +0 -89
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicFlowSchemaTemplate.ejs +0 -41
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicRbacFlowSchemaTemplate.ejs +0 -20
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/RelationshipFlowSchemaTemplate.ejs +0 -33
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/UserRbacFlowSchemaTemplate.ejs +0 -22
- package/src/schemaGenerators/app/src/schemas/ObjectSchemas/AttributeTreeSchemaGenerator.js +0 -124
- package/src/schemaGenerators/app/src/schemas/ObjectSchemas/PropertyValueSchemaGenerator.js +0 -119
- package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicAttributeTreeManagerSchemaTemplate.ejs +0 -14
- package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicAttributeTreeStandardSchemaTemplate.ejs +0 -13
- package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicPropertyValueSchemaTemplate.ejs +0 -15
- package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/AttributeTreeRelationshipSchemaGenerator.js +0 -109
- package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/PropertyValueRelationshipSchemaGenerator.js +0 -103
- package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/__tests__/relationshipSchemaHelpers.test.js +0 -38
- package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/relationshipSchemaHelpers.js +0 -40
- package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/templates/DynamicAttributeTreeRelationshipSchemaTemplate.ejs +0 -7
- package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/templates/DynamicPropertyValueRelationshipSchemaTemplate.ejs +0 -7
- package/src/schemaGenerators/app/src/schemas/SystemTextSchemas/SystemTextGenerator.js +0 -102
- package/src/schemaGenerators/app/src/schemas/SystemTextSchemas/templates/SystemText_Template.ejs +0 -10
- /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/crud/templates}/FlowHandler_HdrInv.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ConfirmReserved_HdrSqs.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreatePreSignUrl_HdrSqs.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ReservedLimit_HdrSqs.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrApi.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrSqs.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessMoveRelationshipComplete_Main.ejs → emit/relationship/templates/MoveRelationshipComplete_Main.ejs} +0 -0
- /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/DynamoDBTable_Yaml.ejs +0 -0
- /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/FlowOut_Yaml.ejs +0 -0
- /package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceYaml.ejs +0 -0
- /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/SystemDynamoDB_Yaml.ejs +0 -0
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Copyright (C) 2021 Sven Mason <http://izara.io>
|
|
3
|
-
|
|
4
|
-
This program is free software: you can redistribute it and/or modify
|
|
5
|
-
it under the terms of the GNU Affero General Public License as
|
|
6
|
-
published by the Free Software Foundation, either version 3 of the
|
|
7
|
-
License, or (at your option) any later version.
|
|
8
|
-
|
|
9
|
-
This program is distributed in the hope that it will be useful,
|
|
10
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
GNU Affero General Public License for more details.
|
|
13
|
-
|
|
14
|
-
You should have received a copy of the GNU Affero General Public License
|
|
15
|
-
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import asyncFlowSharedLib from '@izara_project/izara-core-library-asynchronous-flow';
|
|
19
|
-
import callingFlowSharedLib from '@izara_project/izara-core-library-calling-flow';
|
|
20
|
-
import dynamodbSharedLib from '@izara_project/izara-core-library-dynamodb';
|
|
21
|
-
import snsSharedLib from '@izara_project/izara-core-library-sns';
|
|
22
|
-
import { sns } from '@izara_project/izara-core-library-external-request';
|
|
23
|
-
import { objectHash as hash } from '@izara_project/izara-shared-core';
|
|
24
|
-
import { consts } from '@izara_project/izara-core-library-service-schemas';
|
|
25
|
-
import { NoRetryError } from '@izara_project/izara-core-library-core';
|
|
26
|
-
|
|
27
|
-
const { TOPIC_NAME_GENERATE_CODE } = consts;
|
|
28
|
-
const PREFIX = {
|
|
29
|
-
ASYNC: '<%- flowTag %>AsyncEndpoint',
|
|
30
|
-
ASYNC_COMPLETE: '<%- flowTag %>AsyncEndpointComplete',
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
//(<optionalRequire>)
|
|
34
|
-
//(</optionalRequire>)
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* @param {*} returnValue
|
|
38
|
-
* @param {*} status
|
|
39
|
-
* @param {*} graphServiceTag
|
|
40
|
-
* @param {*} errorsFound
|
|
41
|
-
*/
|
|
42
|
-
function _validateInput(returnValue, status, graphServiceTag, errorsFound) {
|
|
43
|
-
if (!Object.prototype.hasOwnProperty.call(returnValue, 'queryResult')) {
|
|
44
|
-
errorsFound.push(
|
|
45
|
-
'message is not have property queryResult, should be not happen',
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
if (
|
|
49
|
-
!Object.prototype.hasOwnProperty.call(returnValue.requestParams, 'objType')
|
|
50
|
-
) {
|
|
51
|
-
errorsFound.push(
|
|
52
|
-
'message is not have property objType, should be not happen',
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
if (
|
|
56
|
-
!Object.prototype.hasOwnProperty.call(
|
|
57
|
-
returnValue.requestParams,
|
|
58
|
-
'objInstanceFull',
|
|
59
|
-
)
|
|
60
|
-
) {
|
|
61
|
-
errorsFound.push(
|
|
62
|
-
'message is not have property objInstance, should be not objInstance',
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (status == 'error' && errorsFound.length > 0) {
|
|
67
|
-
errorsFound.push('error before validate');
|
|
68
|
-
} else if (status == 'error' && errorsFound.length == 0) {
|
|
69
|
-
errorsFound.push(
|
|
70
|
-
'[invalid]status is error not have errorsFound form graphService',
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
if (status === 'complete' && errorsFound.length > 0) {
|
|
74
|
-
errorsFound.push(
|
|
75
|
-
'[Invalid] status is complete should be not have errorsFound',
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
if (graphServiceTag == null) {
|
|
79
|
-
errorsFound.push('[Invalid] graphServerTag is not empty string');
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* @param {*} value
|
|
85
|
-
*/
|
|
86
|
-
function _isEmpty(value) {
|
|
87
|
-
if (value == null) return true;
|
|
88
|
-
|
|
89
|
-
if (
|
|
90
|
-
Array.isArray(value) ||
|
|
91
|
-
typeof value === 'string'
|
|
92
|
-
) {
|
|
93
|
-
return value.length === 0;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (value instanceof Map || value instanceof Set) {
|
|
97
|
-
return value.size === 0;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
if (typeof value === 'object') {
|
|
101
|
-
return Object.keys(value).length === 0;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return false;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* @param {*} returnValue
|
|
109
|
-
* @returns {object|null}
|
|
110
|
-
*/
|
|
111
|
-
function _buildExistsNode(returnValue) {
|
|
112
|
-
const { existsNode } = returnValue.queryResult.return<%- upperCaseFlowTag %>Node;
|
|
113
|
-
if (!existsNode || !Object.keys(existsNode).length) return null;
|
|
114
|
-
|
|
115
|
-
const { objType } = returnValue.requestParams;
|
|
116
|
-
return {
|
|
117
|
-
objType: {
|
|
118
|
-
objectType: objType.objectType,
|
|
119
|
-
serviceTag: objType.serviceTag,
|
|
120
|
-
},
|
|
121
|
-
objInstanceFull: existsNode.objInstanceFull,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* @param {*} returnValue
|
|
127
|
-
* @param {*} existsNode
|
|
128
|
-
* @param {*} status
|
|
129
|
-
* @param {*} errorsFound
|
|
130
|
-
* @returns {object}
|
|
131
|
-
*/
|
|
132
|
-
function _buildMessageObject(returnValue, existsNode, status, errorsFound) {
|
|
133
|
-
const { objType } = returnValue.requestParams;
|
|
134
|
-
const { return<%- upperCaseFlowTag %>Node } = returnValue.queryResult;
|
|
135
|
-
|
|
136
|
-
return {
|
|
137
|
-
objType: {
|
|
138
|
-
objectType: objType.objectType,
|
|
139
|
-
serviceTag: objType.serviceTag,
|
|
140
|
-
},
|
|
141
|
-
objInstanceFull: return<%- upperCaseFlowTag %>Node?.objInstanceFull,
|
|
142
|
-
relationships: return<%- upperCaseFlowTag %>Node?.relationships,
|
|
143
|
-
parentFlowId: returnValue.parentFlowId,
|
|
144
|
-
existsNode,
|
|
145
|
-
status,
|
|
146
|
-
errorsFound,
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* @param {*} _izContext
|
|
152
|
-
* @param {*} passBackProperties
|
|
153
|
-
* @param {*} messageObject
|
|
154
|
-
*/
|
|
155
|
-
async function _sendSnsMessage(_izContext, passBackProperties, messageObject) {
|
|
156
|
-
const enrichedMessage =
|
|
157
|
-
callingFlowSharedLib.addParentPassBackPropertiesToSnsResponseMessageObject(
|
|
158
|
-
passBackProperties,
|
|
159
|
-
messageObject,
|
|
160
|
-
);
|
|
161
|
-
const messageAttributes =
|
|
162
|
-
callingFlowSharedLib.addParentPassBackCallingFlowToSnsResponseMessageAttributes(
|
|
163
|
-
passBackProperties,
|
|
164
|
-
{},
|
|
165
|
-
);
|
|
166
|
-
|
|
167
|
-
const snsPayload = {
|
|
168
|
-
Message: JSON.stringify(enrichedMessage),
|
|
169
|
-
MessageAttributes: sns.createStringMessageAttributes(
|
|
170
|
-
_izContext,
|
|
171
|
-
messageAttributes,
|
|
172
|
-
),
|
|
173
|
-
TopicArn: await snsSharedLib.snsTopicArnByFlowSchema(
|
|
174
|
-
_izContext,
|
|
175
|
-
TOPIC_NAME_GENERATE_CODE.out<%- upperCaseFlowTag %>NodeComplete,
|
|
176
|
-
),
|
|
177
|
-
};
|
|
178
|
-
|
|
179
|
-
_izContext.logger.debug(
|
|
180
|
-
'Send message to TOPIC_NAME_GENERATE_CODE.out<%- upperCaseFlowTag %>NodeComplete :::>',
|
|
181
|
-
snsPayload,
|
|
182
|
-
);
|
|
183
|
-
await sns.publishAsync(_izContext, snsPayload);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* @param {*} _izContext
|
|
188
|
-
* @param {*} requestParams
|
|
189
|
-
* @param {*} passBackProperties
|
|
190
|
-
*/
|
|
191
|
-
export default async function <%- functionName %>(
|
|
192
|
-
_izContext,
|
|
193
|
-
requestParams,
|
|
194
|
-
passBackProperties,
|
|
195
|
-
) {
|
|
196
|
-
try {
|
|
197
|
-
const {
|
|
198
|
-
returnValue,
|
|
199
|
-
status,
|
|
200
|
-
errorsFound,
|
|
201
|
-
graphServiceTag,
|
|
202
|
-
parentFlowId
|
|
203
|
-
} = requestParams;
|
|
204
|
-
|
|
205
|
-
_izContext.logger.debug('function <%- functionName %>:', {
|
|
206
|
-
returnValue,
|
|
207
|
-
status,
|
|
208
|
-
errorsFound,
|
|
209
|
-
graphServiceTag,
|
|
210
|
-
passBackProperties,
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
if (_isEmpty(returnValue.requestParams)) {
|
|
214
|
-
_izContext.logger.debug('message callingFlowProperties is empty');
|
|
215
|
-
throw new NoRetryError('message not an object');
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
_validateInput(returnValue, status, graphServiceTag, errorsFound);
|
|
219
|
-
|
|
220
|
-
if (errorsFound.length > 0) {
|
|
221
|
-
_izContext.logger.debug('Have error form graphServerTag:', errorsFound);
|
|
222
|
-
errorsFound.push(errorsFound.join(','));
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
const existsNode = _buildExistsNode(returnValue);
|
|
226
|
-
|
|
227
|
-
const awaitingStepId = await asyncFlowSharedLib.createAwaitingStepId(
|
|
228
|
-
parentFlowId,
|
|
229
|
-
PREFIX.ASYNC,
|
|
230
|
-
);
|
|
231
|
-
_izContext.logger.debug('awaitingStepId:', awaitingStepId);
|
|
232
|
-
|
|
233
|
-
const recordAwaitingStep = await asyncFlowSharedLib.findPendingStepAwaitingMultipleSteps(
|
|
234
|
-
_izContext,
|
|
235
|
-
awaitingStepId
|
|
236
|
-
);
|
|
237
|
-
_izContext.logger.debug('recordAwaitingStep:', recordAwaitingStep);
|
|
238
|
-
|
|
239
|
-
const {
|
|
240
|
-
isComplete,
|
|
241
|
-
collectedAttributes,
|
|
242
|
-
collectedErrors,
|
|
243
|
-
returnValues: _rvs,
|
|
244
|
-
additionalAttributes
|
|
245
|
-
} = await asyncFlowSharedLib.checkAllAwaitingStepsFinishedWithReturnParams(
|
|
246
|
-
_izContext,
|
|
247
|
-
recordAwaitingStep.pendingStepId,
|
|
248
|
-
awaitingStepId,
|
|
249
|
-
errorsFound,
|
|
250
|
-
);
|
|
251
|
-
|
|
252
|
-
_izContext.logger.debug('checkAllAwaitingStepsFinishedWithReturnParams:', {
|
|
253
|
-
isComplete,
|
|
254
|
-
collectedAttributes,
|
|
255
|
-
collectedErrors,
|
|
256
|
-
returnValues: _rvs,
|
|
257
|
-
additionalAttributes
|
|
258
|
-
});
|
|
259
|
-
|
|
260
|
-
if (isComplete) {
|
|
261
|
-
_izContext.logger.debug('finish all awaitingStep');
|
|
262
|
-
|
|
263
|
-
await Promise.all(
|
|
264
|
-
(recordAwaitingStep.listOfRecords ?? []).map(async (listOfRecords) => {
|
|
265
|
-
if (status === 'complete') {
|
|
266
|
-
Object.entries(listOfRecords).map(async ([_, record]) => {
|
|
267
|
-
await dynamodbSharedLib.putItem(
|
|
268
|
-
_izContext,
|
|
269
|
-
dynamodbSharedLib.tableName(_izContext,
|
|
270
|
-
record.tableName,
|
|
271
|
-
record.serviceTag
|
|
272
|
-
),
|
|
273
|
-
{
|
|
274
|
-
...record.objInstanceFull.identifiers,
|
|
275
|
-
...record.objInstanceFull.fields
|
|
276
|
-
}
|
|
277
|
-
);
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
})
|
|
281
|
-
);
|
|
282
|
-
|
|
283
|
-
const messageObject = _buildMessageObject(
|
|
284
|
-
returnValue,
|
|
285
|
-
existsNode,
|
|
286
|
-
status,
|
|
287
|
-
errorsFound,
|
|
288
|
-
);
|
|
289
|
-
|
|
290
|
-
//(<beforeSendMessage>)
|
|
291
|
-
//(</beforeSendMessage>)
|
|
292
|
-
|
|
293
|
-
await _sendSnsMessage(_izContext, passBackProperties, messageObject);
|
|
294
|
-
|
|
295
|
-
//(<afterSendMessage>)
|
|
296
|
-
//(</afterSendMessage>)
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
await asyncFlowSharedLib.removeAwaitingMultipleStep(
|
|
300
|
-
_izContext,
|
|
301
|
-
awaitingStepId,
|
|
302
|
-
recordAwaitingStep.pendingStepId,
|
|
303
|
-
errorsFound,
|
|
304
|
-
);
|
|
305
|
-
|
|
306
|
-
//(<beforeReturn>)
|
|
307
|
-
//(</beforeReturn>)
|
|
308
|
-
return { returnValue, status, errorsFound };
|
|
309
|
-
} catch (err) {
|
|
310
|
-
_izContext.logger.error('<%- functionName %> error:', err);
|
|
311
|
-
throw err;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import fs from 'fs/promises';
|
|
3
|
-
import { fileURLToPath } from 'url';
|
|
4
|
-
import ejs from 'ejs';
|
|
5
|
-
import { processFunctionName, processMainFileName, upperFirst } from '../_shared/shared/flowNaming.js';
|
|
6
|
-
|
|
7
|
-
const RBAC_FLOW_DEFINITIONS = [
|
|
8
|
-
'CreateTargetRole', 'ListTargetRole', 'DeleteTargetRole',
|
|
9
|
-
'CreateRolePermissions', 'ListRolePermissions', 'DeleteRolePermissions',
|
|
10
|
-
'CreateUserRole', 'ListUserInRoles', 'DeleteUserFromRole'
|
|
11
|
-
];
|
|
12
|
-
|
|
13
|
-
function hasRbacAddOn(obj) {
|
|
14
|
-
return Array.isArray(obj.addOnDataStructure) && obj.addOnDataStructure.some(addOn => addOn.type === 'rbac');
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
18
|
-
const __dirname = path.dirname(__filename);
|
|
19
|
-
|
|
20
|
-
export async function generateRbacFlows(allSchemas, options) {
|
|
21
|
-
console.log(' [RbacFlowGenerator] Generating Custom RBAC Flows...');
|
|
22
|
-
const baseOutputDir = path.join(
|
|
23
|
-
options.outputPath,
|
|
24
|
-
'app',
|
|
25
|
-
'src',
|
|
26
|
-
'generatedCode',
|
|
27
|
-
'FlowRbac'
|
|
28
|
-
);
|
|
29
|
-
// Local templates/ folder (3-way shared handlers via symlink + rbac/ specific templates)
|
|
30
|
-
const templateDir = path.join(__dirname, 'templates');
|
|
31
|
-
|
|
32
|
-
// Read handler templates
|
|
33
|
-
const templates = {
|
|
34
|
-
sqs: await fs.readFile(
|
|
35
|
-
path.join(templateDir, '..', '..', '_shared', 'handlers', 'FlowHandler_HdrSqs.ejs'),
|
|
36
|
-
'utf-8'
|
|
37
|
-
),
|
|
38
|
-
dsq: await fs.readFile(
|
|
39
|
-
path.join(templateDir, '..', '..', '_shared', 'handlers', 'FlowHandler_HdrDsq.ejs'),
|
|
40
|
-
'utf-8'
|
|
41
|
-
),
|
|
42
|
-
api: await fs.readFile(
|
|
43
|
-
path.join(templateDir, '..', '..', '_shared', 'handlers', 'FlowHandler_HdrApi.ejs'),
|
|
44
|
-
'utf-8'
|
|
45
|
-
),
|
|
46
|
-
inv: await fs.readFile(
|
|
47
|
-
path.join(templateDir, '..', '..', '_shared', 'handlers', 'FlowHandler_HdrInv.ejs'),
|
|
48
|
-
'utf-8'
|
|
49
|
-
)
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
let generatedCount = 0;
|
|
53
|
-
|
|
54
|
-
const rbacObjects = (allSchemas.objects || []).filter(hasRbacAddOn);
|
|
55
|
-
if (rbacObjects.length === 0) return;
|
|
56
|
-
|
|
57
|
-
// Since RBAC templates are generic, we only need to generate them once
|
|
58
|
-
// even if multiple objects have the rbac addOn.
|
|
59
|
-
for (const flowTag of RBAC_FLOW_DEFINITIONS) {
|
|
60
|
-
|
|
61
|
-
const flowOutputDir = path.join(baseOutputDir, flowTag, 'source');
|
|
62
|
-
await fs.mkdir(flowOutputDir, { recursive: true });
|
|
63
|
-
|
|
64
|
-
// Generate Process Step for RBAC
|
|
65
|
-
const mainFileName = processMainFileName(flowTag);
|
|
66
|
-
|
|
67
|
-
// 1. Generate Main Logic File (from specific RBAC templates)
|
|
68
|
-
const templatePath = path.join(
|
|
69
|
-
__dirname,
|
|
70
|
-
'templates',
|
|
71
|
-
'rbac',
|
|
72
|
-
`${flowTag}.ejs`
|
|
73
|
-
);
|
|
74
|
-
let mainTemplateStr;
|
|
75
|
-
try {
|
|
76
|
-
mainTemplateStr = await fs.readFile(templatePath, 'utf-8');
|
|
77
|
-
} catch (err) {
|
|
78
|
-
console.warn(
|
|
79
|
-
` [RbacFlowGenerator] Warning: RBAC template not found for ${flowTag}. Skipping.`
|
|
80
|
-
);
|
|
81
|
-
continue;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
const mainContent = ejs.render(mainTemplateStr, {
|
|
85
|
-
flowTag: flowTag
|
|
86
|
-
});
|
|
87
|
-
await fs.writeFile(
|
|
88
|
-
path.join(flowOutputDir, `${mainFileName}.js`),
|
|
89
|
-
mainContent,
|
|
90
|
-
'utf-8'
|
|
91
|
-
);
|
|
92
|
-
generatedCount++;
|
|
93
|
-
|
|
94
|
-
// 2. Generate SQS Handler for Process Step
|
|
95
|
-
const handlerFileName = `Process${flowTag}_HdrSqs`;
|
|
96
|
-
|
|
97
|
-
// Ensure to pass functionName that matches what the template exports
|
|
98
|
-
const handlerContent = ejs.render(templates.sqs, {
|
|
99
|
-
flowTag: flowTag,
|
|
100
|
-
flowStepName: '',
|
|
101
|
-
mainFileName: mainFileName,
|
|
102
|
-
functionName: processFunctionName(flowTag),
|
|
103
|
-
queueName: `Process${upperFirst(flowTag)}HdrSqs`
|
|
104
|
-
});
|
|
105
|
-
await fs.writeFile(
|
|
106
|
-
path.join(flowOutputDir, `${handlerFileName}.js`),
|
|
107
|
-
handlerContent,
|
|
108
|
-
'utf-8'
|
|
109
|
-
);
|
|
110
|
-
generatedCount++;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
console.log(
|
|
114
|
-
` [RbacFlowGenerator] Generated ${generatedCount} files for RBAC Flows.`
|
|
115
|
-
);
|
|
116
|
-
}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Copyright (C) 2020 Sven Mason <http: //izara.io>
|
|
3
|
-
|
|
4
|
-
This program is free software: you can redistribute it and/or modify
|
|
5
|
-
it under the terms of the GNU Affero General Public License as
|
|
6
|
-
published by the Free Software Foundation, either version 3 of the
|
|
7
|
-
License, or (at your option) any later version.
|
|
8
|
-
|
|
9
|
-
This program is distributed in the hope that it will be useful,
|
|
10
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
GNU Affero General Public License for more details.
|
|
13
|
-
|
|
14
|
-
You should have received a copy of the GNU Affero General Public License
|
|
15
|
-
along with this program. If not, see
|
|
16
|
-
<http: //www.gnu.org/licenses />.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
import dynamodbSharedLib from '@izara_project/izara-core-library-dynamodb';
|
|
20
|
-
import snsSharedLib from '@izara_project/izara-core-library-sns';
|
|
21
|
-
import sqsSharedLib from '@izara_project/izara-core-library-sqs';
|
|
22
|
-
import asyncFlowSharedLib from '@izara_project/izara-core-library-asynchronous-flow';
|
|
23
|
-
import callingFlowSharedLib from '@izara_project/izara-core-library-calling-flow';
|
|
24
|
-
import lambdaSharedLib from '@izara_project/izara-core-library-lambda';
|
|
25
|
-
|
|
26
|
-
//(<optionalImport>)
|
|
27
|
-
import { getObjectSchema } from '@izara_project/izara-core-library-service-schemas';
|
|
28
|
-
import {
|
|
29
|
-
lambda,
|
|
30
|
-
sns,
|
|
31
|
-
sqs
|
|
32
|
-
} from '@izara_project/izara-core-library-external-request';
|
|
33
|
-
import { identifierUuid } from '@izara_project/izara-shared-core';
|
|
34
|
-
import { consts, NoRetryError } from '@izara_project/izara-core-library-core';
|
|
35
|
-
import { utils } from '@izara_project/izara-core-library-service-schemas';
|
|
36
|
-
|
|
37
|
-
const { createFlowTypeConcat } = utils;
|
|
38
|
-
//(</optionalImport>)
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* description of function.
|
|
44
|
-
* @param {Object} _izContext
|
|
45
|
-
* @param {CorrelationIds} _izContext.correlationIds - property of _izContext
|
|
46
|
-
* @param {Logger} _izContext.logger - property of _izContext
|
|
47
|
-
* @param {Object} requestParams - request params
|
|
48
|
-
* @param {Object} requestParams.identifiers - identifiers for get data
|
|
49
|
-
* @param {Object} requestParams.additionalRequest - additionalRequest
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* @returns {object} description of return value
|
|
53
|
-
*/
|
|
54
|
-
|
|
55
|
-
export default async function Process<%= flowTag %>(
|
|
56
|
-
_izContext,
|
|
57
|
-
requestParams,
|
|
58
|
-
callingFlowConfig = {}
|
|
59
|
-
//(<additionalParams>)
|
|
60
|
-
//(</additionalParams>)
|
|
61
|
-
) {
|
|
62
|
-
try {
|
|
63
|
-
_izContext.logger.debug(
|
|
64
|
-
'Process<%= flowTag %> _izContext',
|
|
65
|
-
_izContext
|
|
66
|
-
);
|
|
67
|
-
_izContext.logger.debug(
|
|
68
|
-
'Process<%= flowTag %> requestParams',
|
|
69
|
-
requestParams
|
|
70
|
-
);
|
|
71
|
-
_izContext.logger.debug(
|
|
72
|
-
'Process<%= flowTag %> callingFlowConfig',
|
|
73
|
-
callingFlowConfig
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
const userId = _izContext.correlationIds.get(consts.BASE_USER_ID);
|
|
77
|
-
|
|
78
|
-
_izContext.logger.debug(
|
|
79
|
-
'[Rbac:Process<%= flowTag %>] userId',
|
|
80
|
-
userId
|
|
81
|
-
);
|
|
82
|
-
|
|
83
|
-
const { roleIdKey, flowTypeConcat, parameterGroups } = requestParams;
|
|
84
|
-
|
|
85
|
-
_izContext.logger.debug(
|
|
86
|
-
'[Rbac:Process<%= flowTag %>] inputs',
|
|
87
|
-
{
|
|
88
|
-
roleIdKey,
|
|
89
|
-
flowTypeConcat,
|
|
90
|
-
parameterGroups
|
|
91
|
-
}
|
|
92
|
-
);
|
|
93
|
-
|
|
94
|
-
const resultPutItem = await dynamodbSharedLib.putItem(
|
|
95
|
-
_izContext,
|
|
96
|
-
dynamodbSharedLib.tableName(_izContext, 'RolePermissions'),
|
|
97
|
-
{
|
|
98
|
-
roleIdKey,
|
|
99
|
-
flowTypeConcat,
|
|
100
|
-
parameterGroups
|
|
101
|
-
}
|
|
102
|
-
);
|
|
103
|
-
|
|
104
|
-
_izContext.logger.debug(
|
|
105
|
-
'[Rbac:Process<%= flowTag %>] result putItem',
|
|
106
|
-
resultPutItem
|
|
107
|
-
);
|
|
108
|
-
|
|
109
|
-
const message = {
|
|
110
|
-
returnResult: {
|
|
111
|
-
roleIdKey,
|
|
112
|
-
flowTypeConcat,
|
|
113
|
-
parameterGroups
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
const messageResult = {
|
|
118
|
-
message,
|
|
119
|
-
TopicArn: snsSharedLib.snsTopicArnByFlowSchema(_izContext, `<%- flowTag %>_Out`)
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
_izContext.logger.debug(
|
|
123
|
-
'[Rbac:Process<%= flowTag %>] messageResult',
|
|
124
|
-
messageResult
|
|
125
|
-
);
|
|
126
|
-
|
|
127
|
-
await sns.publishMessage(_izContext, messageResult);
|
|
128
|
-
} catch (err) {
|
|
129
|
-
_izContext.logger.error(
|
|
130
|
-
'[Rbac:Process<%= flowTag %>] error: ',
|
|
131
|
-
err
|
|
132
|
-
);
|
|
133
|
-
throw err;
|
|
134
|
-
}
|
|
135
|
-
}
|
package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateTargetRole.ejs
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Copyright (C) 2020 Sven Mason <http: //izara.io>
|
|
3
|
-
|
|
4
|
-
This program is free software: you can redistribute it and/or modify
|
|
5
|
-
it under the terms of the GNU Affero General Public License as
|
|
6
|
-
published by the Free Software Foundation, either version 3 of the
|
|
7
|
-
License, or (at your option) any later version.
|
|
8
|
-
|
|
9
|
-
This program is distributed in the hope that it will be useful,
|
|
10
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
GNU Affero General Public License for more details.
|
|
13
|
-
|
|
14
|
-
You should have received a copy of the GNU Affero General Public License
|
|
15
|
-
along with this program. If not, see
|
|
16
|
-
<http: //www.gnu.org/licenses />.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
import dynamodbSharedLib from '@izara_project/izara-core-library-dynamodb';
|
|
20
|
-
import snsSharedLib from '@izara_project/izara-core-library-sns';
|
|
21
|
-
import sqsSharedLib from '@izara_project/izara-core-library-sqs';
|
|
22
|
-
import asyncFlowSharedLib from '@izara_project/izara-core-library-asynchronous-flow';
|
|
23
|
-
import callingFlowSharedLib from '@izara_project/izara-core-library-calling-flow';
|
|
24
|
-
import lambdaSharedLib from '@izara_project/izara-core-library-lambda';
|
|
25
|
-
|
|
26
|
-
//(<optionalImport>)
|
|
27
|
-
import { getObjectSchema } from '@izara_project/izara-core-library-service-schemas';
|
|
28
|
-
import {
|
|
29
|
-
lambda,
|
|
30
|
-
sns,
|
|
31
|
-
sqs
|
|
32
|
-
} from '@izara_project/izara-core-library-external-request';
|
|
33
|
-
import { identifierUuid } from '@izara_project/izara-shared-core';
|
|
34
|
-
import { consts, NoRetryError } from '@izara_project/izara-core-library-core';
|
|
35
|
-
import { utils } from '@izara_project/izara-core-library-service-schemas';
|
|
36
|
-
|
|
37
|
-
const { createFlowTypeConcat } = utils;
|
|
38
|
-
//(</optionalImport>)
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* description of function.
|
|
44
|
-
* @param {Object} _izContext
|
|
45
|
-
* @param {CorrelationIds} _izContext.correlationIds - property of _izContext
|
|
46
|
-
* @param {Logger} _izContext.logger - property of _izContext
|
|
47
|
-
* @param {Object} requestParams - request params
|
|
48
|
-
* @param {Object} requestParams.identifiers - identifiers for get data
|
|
49
|
-
* @param {Object} requestParams.additionalRequest - additionalRequest
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* @returns {object} description of return value
|
|
53
|
-
*/
|
|
54
|
-
|
|
55
|
-
export default async function Process<%= flowTag %>(
|
|
56
|
-
_izContext,
|
|
57
|
-
requestParams,
|
|
58
|
-
callingFlowConfig = {}
|
|
59
|
-
//(<additionalParams>)
|
|
60
|
-
//(</additionalParams>)
|
|
61
|
-
) {
|
|
62
|
-
try {
|
|
63
|
-
_izContext.logger.debug(
|
|
64
|
-
'Process<%= flowTag %> _izContext',
|
|
65
|
-
_izContext
|
|
66
|
-
);
|
|
67
|
-
_izContext.logger.debug(
|
|
68
|
-
'Process<%= flowTag %> requestParams',
|
|
69
|
-
requestParams
|
|
70
|
-
);
|
|
71
|
-
_izContext.logger.debug(
|
|
72
|
-
'Process<%= flowTag %> callingFlowConfig',
|
|
73
|
-
callingFlowConfig
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
const userId = _izContext.correlationIds.get(consts.BASE_USER_ID);
|
|
77
|
-
|
|
78
|
-
_izContext.logger.debug(
|
|
79
|
-
'[Rbac:Process<%= flowTag %>] userId',
|
|
80
|
-
userId
|
|
81
|
-
);
|
|
82
|
-
|
|
83
|
-
const { roleName } = requestParams;
|
|
84
|
-
|
|
85
|
-
_izContext.logger.debug(
|
|
86
|
-
'[Rbac:Process<%= flowTag %>] roleName',
|
|
87
|
-
roleName
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
-
const roleId = identifierUuid();
|
|
91
|
-
|
|
92
|
-
const resultPut = await dynamodbSharedLib.putItem(
|
|
93
|
-
_izContext,
|
|
94
|
-
dynamodbSharedLib.tableName(_izContext, 'TargetRoles'),
|
|
95
|
-
{
|
|
96
|
-
targetId: userId,
|
|
97
|
-
roleIdKey: `${userId}_${roleId}`,
|
|
98
|
-
roleName
|
|
99
|
-
}
|
|
100
|
-
);
|
|
101
|
-
|
|
102
|
-
_izContext.logger.debug(
|
|
103
|
-
'[Rbac:Process<%= flowTag %>] resultPut',
|
|
104
|
-
resultPut
|
|
105
|
-
);
|
|
106
|
-
|
|
107
|
-
const message = {
|
|
108
|
-
returnResult: {
|
|
109
|
-
roleId
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
const messageResult = {
|
|
114
|
-
message,
|
|
115
|
-
TopicArn: snsSharedLib.snsTopicArnByFlowSchema(_izContext, `<%- flowTag %>_Out`)
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
_izContext.logger.debug(
|
|
119
|
-
'[Rbac:Process<%= flowTag %>] messageResult',
|
|
120
|
-
messageResult
|
|
121
|
-
);
|
|
122
|
-
|
|
123
|
-
await sns.publishMessage(_izContext, messageResult);
|
|
124
|
-
} catch (err) {
|
|
125
|
-
_izContext.logger.error(
|
|
126
|
-
'[Rbac:Process<%= flowTag %>] error: ',
|
|
127
|
-
err
|
|
128
|
-
);
|
|
129
|
-
throw err;
|
|
130
|
-
}
|
|
131
|
-
}
|