@altostra/core
Version:
Core library for shared types and logic
1 lines • 4.72 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.getEnvironmentVarsUtility=exports.ENVVAR_SERVERLESS_CLUSTER=void 0;const ConnectionTransformError_1=require("../../../../aws/Transformer/Errors/ConnectionTransformError"),Object_1=require("../../../../common/Utils/Object"),concat_1=require("@reactivex/ix-es2015-cjs/iterable/concat"),empty_1=require("@reactivex/ix-es2015-cjs/iterable/empty"),from_1=require("@reactivex/ix-es2015-cjs/iterable/from"),distinct_1=require("@reactivex/ix-es2015-cjs/iterable/operators/distinct"),filter_1=require("@reactivex/ix-es2015-cjs/iterable/operators/filter"),flatmap_1=require("@reactivex/ix-es2015-cjs/iterable/operators/flatmap"),map_1=require("@reactivex/ix-es2015-cjs/iterable/operators/map"),ExternalDataBase_1=require("../../../Resources/ExternalResource/ExternalDataBase"),Parameters_1=require("../../Parameters"),noImplicitVariablesTypes=new Set(["resource.vendor.service","resource.ssm"]);function getEnvironmentVarsUtility(e,r,t,s){return{getEnvironmentVariables(){const o=(0,from_1.from)(Object.entries(e.globalEnvironmentVariables.getParameterizedBlueprintEnvironment())).pipe((0,map_1.map)(([e,r])=>[e,Object.assign({type:"global"},(0,Parameters_1.isParameter)(r)?{value:r.defaultValue,parameter:r.$param$}:{value:r})])),a=t(r.resource),c=null==s?void 0:s(r),n=a?(0,from_1.from)(Object.entries(a)).pipe((0,map_1.map)(([r,t])=>{var s;return[r,Object.assign({type:"explicit",value:t,overridesGlobal:e.globalEnvironmentVariables.isGlobalEnvironmentVariable(r)},(0,Parameters_1.isParameter)(null==c?void 0:c[r])&&{parameter:null===(s=null==c?void 0:c[r])||void 0===s?void 0:s.$param$})]})):(0,empty_1.empty)(),i=r.outgoingConnections.ofType("connection.access.invocation","connection.key-management.key-access","connection.resource-access").pipe((0,filter_1.filter)(e=>!noImplicitVariablesTypes.has(e.target.type)),(0,filter_1.filter)((function(e){const r=e.target;if(!e.is("connection.resource-access")||!r.is("resource.rdb.proxy"))return!0;return r.resourceUtils.getProxyTargetsCount()>0})),(0,flatmap_1.flatMap)(e=>[[_(e.target),{type:"implicit",resource:e.target,source:"resource-access",connection:e}],...E(e)])),u=r.outgoingConnections.ofType("connection.auth0.app-access").pipe((0,map_1.map)(e=>({name:b(e.target),envVariable:{resource:e.target,type:"implicit",source:"auth0-integration",connection:e},populateSecret:!!e.connection.populateSecret})),(0,map_1.map)(({name:e,envVariable:r,populateSecret:t})=>({envVariable:r,names:["AUTH0_APP_NAME_"+e,"AUTH0_CLIENT_ID_"+e,"AUTH0_DOMAIN_"+e,"AUTH0_SIGNING_CERT_"+e,...t?["AUTH0_CLIENT_SECRET_"+e]:[]]})),(0,flatmap_1.flatMap)(({names:e,envVariable:r})=>e.map(e=>[e,r]))),[l]=r.outgoingConnections.ofType("connection.access.invocation").pipe((0,filter_1.filter)(e=>e.target.is("resource.compute.serverless-container"))),p=l?[[exports.ENVVAR_SERVERLESS_CLUSTER,{type:"implicit",source:"serverless-cluster",resource:l.target,connection:l}]]:[],m=(0,concat_1.concat)(i,u,p);return(0,Object_1.fromEntries)((0,concat_1.concat)(m,n,o).pipe((0,distinct_1.distinct)(([e])=>e)));function _(e){switch(e.type){case"resource.table":case"resource.table.simple":return"TABLE_"+t();case"resource.message-queue":case"resource.message-queue.fifo":return"QUEUE_"+t();case"resource.notification-topic":return"TOPIC_"+t();case"resource.file-store":return"BUCKET_"+t();case"resource.data-stream":return"STREAM_"+t();case"resource.rdb.cluster":case"resource.rdb.instance":case"resource.rdb.serverless":return"DB_"+t();case"resource.rdb.proxy":return e.assertType("resource.rdb.proxy"),"DB_"+e.resourceUtils.getValidProxyTarget().id.toUpperCase();case"resource.docdb.cluster":return"DOC_DB_"+t();case"resource.external":return"EXTERN_"+t();case"resource.compute.function":return"FUNCTION_"+t();case"resource.compute.serverless-container":return"TASK_DEF_"+t();case"resource.compute.web-service":return"WEBSERVICE_"+t();case"resource.open-search":return"DOMAIN_"+t();default:throw new ConnectionTransformError_1.EnvironmentVariableForResourceNotSupportedError(`${r.id} -> ${e.id}`,e.type)}function t(){return e.id.toUpperCase()}}function E(e){const r=e.target,t=r.is("resource.rdb.proxy")?r.resourceUtils.getValidProxyTarget().id:r.id;return function(e){return e.is("resource.rdb.proxy","resource.docdb.cluster","resource.rdb.cluster","resource.rdb.instance","resource.rdb.serverless")||(0,ExternalDataBase_1.isExternalRelationalResource)(e.resource)}(r)?[["DB_SECRET_"+t.toUpperCase(),{type:"implicit",resource:r,source:"db-secret-access",connection:e}]]:[]}function b(e){return e.id.toUpperCase()}}}}exports.ENVVAR_SERVERLESS_CLUSTER="SERVERLESS_CLUSTER",exports.getEnvironmentVarsUtility=getEnvironmentVarsUtility;