in source/cdk-infrastructure/lib/bi-reporting/bi-reporting-construct.ts [72:121]
constructor(scope: Construct, id: string, props: IBIReportingProps) {
super(scope, id);
const quickSightCondition = new CfnCondition(this, 'QuickSightCondition', {
expression: Fn.conditionNot(Fn.conditionEquals(props.quickSightPrincipalArn, ''))
});
// ETL configuration files prefix and the S3 bucket prefix to store files
const csvPrefix = 'csv';
const manifestPrefix = 'manifest';
const machineInformationPrefix = 'machine_information';
const machineConfigInformationPrefix = 'machine_config_information';
const etl = new Etl(this, 'Etl', {
configTable: props.configTable,
lowerCaseStackName: props.lowerCaseStackName,
metadataConfiguration: {
csvPrefix,
manifestPrefix,
machineInformationPrefix,
machineConfigInformationPrefix
},
rawDataS3BucketName: props.rawDataS3BucketName,
s3LoggingBucket: props.s3LoggingBucket,
solutionHelperFunction: props.solutionHelperFunction,
solutionId: props.solutionId,
solutionVersion: props.solutionVersion,
sourceCodeBucketName: props.sourceCodeBucketName,
sourceCodeKeyPrefix: props.sourceCodeKeyPrefix,
uiReferenceTable: props.uiReferenceTable
});
this.glueBucket = etl.glueBucket;
this.glueMetadataBucket = etl.glueMetadataBucket;
const quickSight = new QuickSightReporting(this, 'QuickSight', {
glueCustomResource: etl.glueCustomResource,
glueDatabaseName: etl.glueDatabase.databaseName,
glueTableName: etl.glueTable.tableName,
metadataConfiguration: {
bucketName: etl.glueMetadataBucket.bucketName,
machineInformationPrefix,
machineConfigInformationPrefix,
manifestPrefix
},
quickSightPrincipalArn: props.quickSightPrincipalArn,
quickSightTemplate: props.quickSightTemplate,
solutionHelperFunction: props.solutionHelperFunction,
});
Aspects.of(quickSight).add(new ConditionAspect(quickSightCondition));
}