constructor()

in lib/knowledge-graph-stack.js [18:63]


    constructor(scope, id, props) {
        super(scope, id, props)

        // VPC
        const vpc = new ec2.Vpc(this, "vpc")

        // Neptune cluster
        const cc = new NeptuneClusterConstruct(this, "cluster", {
            vpc,
        })

        this.vpc = vpc
        this.cluster = cc.cluster
        this.clusterSecurityGroup = cc.clusterSecurityGroup

        // Export bucket for snapshots of the data.
        // Also used for importing user graphs into Neptune
        const exportBucket = new s3.Bucket(this, "exports", {
            encryption: s3.BucketEncryption.S3_MANAGED,
            removalPolicy: cdk.RemovalPolicy.RETAIN,
            cors: [
                {
                    allowedMethods: [
                        s3.HttpMethods.PUT,
                        s3.HttpMethods.OPTIONS,
                    ],
                    allowedOrigins: [props.domain],
                    allowedHeaders: ["*"],
                },
            ],
        })

        // Lambda rest api to access the data
        new NeptuneApiConstruct(this, "graph-api", {
            cluster: this.cluster,
            vpc: this.vpc,
            clusterSecurityGroup: this.clusterSecurityGroup,
            userPool: props.userPool,
            cognitoRedirectUri: props.cognitoRedirectUri,
            cognitoDomainPrefix: props.cognitoDomainPrefix,
            cognitoAppClientId: props.cognitoAppClientId,
            cognitoRegion: props.cognitoRegion,
            cognitoPoolId: props.cognitoPoolId,
            exportBucket,
        })
    }