22import 'source-map-support/register' ;
33import * as cdk from '@aws-cdk/core' ;
44import { BaselineStack } from '../lib/baseline-stack' ;
5- import { DatalakeStack } from '../lib/stacks/datalake-stack' ;
5+ import { DataLakeStack } from '../lib/stacks/datalake-stack' ;
66import { OpenTargetsStack } from '../lib/opentargets-stack' ;
77import { ChemblStack } from '../lib/chembl-25-stack' ;
88import { AnalyticsStack } from '../lib/analytics-stack.js' ;
9+ import iam = require ( '@aws-cdk/aws-iam' ) ;
910import s3 = require ( '@aws-cdk/aws-s3' ) ;
10-
11+ import { DataLakeEnrollment } from '../lib/constructs/data-lake-enrollment' ;
1112
1213const app = new cdk . App ( ) ;
1314const baseline = new BaselineStack ( app , 'BaselineStack' ) ;
1415
1516
16- const coreDataLake = new DatalakeStack ( app , 'CoreDataLake' , {
17+ const coreDataLake = new DataLakeStack ( app , 'CoreDataLake' , {
1718
1819} ) ;
1920
20-
21-
2221const chemblStack = new ChemblStack ( app , 'ChemblStack' , {
2322 database : baseline . ChemblDb ,
2423 accessSecurityGroup : baseline . chemblDBChemblDbAccessSg ,
2524 databaseSecret : baseline . chemblDBSecret ,
26- dataLakeBucket : coreDataLake . DataLakeBucket
25+ DataLake : coreDataLake
2726} ) ;
2827
2928const openTargetsStack = new OpenTargetsStack ( app , 'OpenTargetsStack' , {
3029 sourceBucket : baseline . OpenTargetsSourceBucket ,
3130 sourceBucketDataPrefix : '/opentargets/sourceExports/19.11/output/' ,
32- dataLakeBucket : coreDataLake . DataLakeBucket
31+ DataLake : coreDataLake
3332} ) ;
3433
3534const analyticsStack = new AnalyticsStack ( app , 'AnalyticsStack' , {
3635 targetVpc : baseline . Vpc ,
3736} ) ;
3837
3938
40- chemblStack . grantRead ( analyticsStack . NotebookRole ) ;
41- openTargetsStack . grantRead ( analyticsStack . NotebookRole ) ;
39+ chemblStack . grantIamRead ( analyticsStack . NotebookRole ) ;
40+ openTargetsStack . grantIamRead ( analyticsStack . NotebookRole ) ;
41+
42+
43+
44+ const exampleUser = iam . User . fromUserName ( coreDataLake , 'exampleGrantee' , 'paul0' ) ;
45+ var exampleGrant : DataLakeEnrollment . LakeFormationPermissionGrant = {
46+ tables : [ "association_data" , "evidence_data" , "target_list" , "disease_list" ] ,
47+ DatabasePermissions : [ DataLakeEnrollment . DatabasePermission . Alter , DataLakeEnrollment . DatabasePermission . CreateTable , DataLakeEnrollment . DatabasePermission . Drop ] ,
48+ GrantableDatabasePermissions : [ DataLakeEnrollment . DatabasePermission . Alter , DataLakeEnrollment . DatabasePermission . CreateTable , DataLakeEnrollment . DatabasePermission . Drop ] ,
49+ TablePermissions : [ DataLakeEnrollment . TablePermission . Select , DataLakeEnrollment . TablePermission . Insert , DataLakeEnrollment . TablePermission . Delete ] ,
50+ GrantableTablePermissions : [ DataLakeEnrollment . TablePermission . Select ]
51+ } ;
52+
53+ openTargetsStack . grantLakeFormationPermissions ( exampleUser , exampleGrant ) ;
0 commit comments