diff --git a/packages/stacks/api/src/schema.ts b/packages/stacks/api/src/schema.ts index d2c7dae0..d6401259 100644 --- a/packages/stacks/api/src/schema.ts +++ b/packages/stacks/api/src/schema.ts @@ -87,6 +87,10 @@ export const networkConfigSchema = z.object({ export interface NetworkConfig extends z.infer {} +export const storageConfigSchema = z.object({}) + +export interface StorageConfig extends z.infer {} + export const apiStackConfigSchema = z.object({ eks: eksConfigSchema.default({}).describe('EKS configuration.'), database: databaseConfigSchema.default({ snapshotIdentifier: '' }), diff --git a/packages/stacks/api/src/stacks/storage.ts b/packages/stacks/api/src/stacks/storage.ts new file mode 100644 index 00000000..bc49c447 --- /dev/null +++ b/packages/stacks/api/src/stacks/storage.ts @@ -0,0 +1,25 @@ +import * as cdk from 'aws-cdk-lib' +import * as s3 from 'aws-cdk-lib/aws-s3' +import { type Construct } from 'constructs' +import { type StorageConfig } from '../schema' + +export class StorageStack extends cdk.Stack { + constructor( + scope: Construct, + id: string, + readonly props: StorageConfig, + stackProps?: cdk.StackProps, + ) { + super(scope, id, stackProps) + + const e2eTestReportsBucketName = 'ccu-e2e-test-reports' + const e2eTestReportsS3 = new s3.Bucket(scope, id, { + bucketName: e2eTestReportsBucketName, + versioned: false, + encryption: s3.BucketEncryption.S3_MANAGED, + accessControl: s3.BucketAccessControl.PUBLIC_READ, + publicReadAccess: true, + objectOwnership: s3.ObjectOwnership.OBJECT_WRITER, + }) + } +}