3.14.8 • Published 18 days ago

@dot/cdk v3.14.8

Weekly downloads
-
License
MPL-2.0
Repository
github
Last release
18 days ago

@dot/cdk

A set of tools and conventions for working with AWS CDK.

This package bstracts the class-based CDK library with a functional approach that removes a lot of heavy lifiting and repetitiveness. In addition to a clean interface, this package also automatically adds resources that are frequently used in tandem with other resources, such as SSM parameters for common SQS Queue properties like ARN and URL. Overall, this package attempts to abstract best practices with the AWS CDK that the user doesn't have to think about. Compared with the class-based inteface of AWS CDK, far less code is required to deploy resources, and resources can be understood clearly at a glance.

Requirements

This package requires an Active LTS Node version (v18+).

A Note on Documentation

Until recently this package was used internally and was not published on the registry. It's grown to a considerable size and it's intended that TypeScript type hinting and intellisense will be used for infomation on usage.

That said, documentation here will progressively improve over time.

Install

Using npm:

pnpm add @dot/cdk --save-dev

Usage

The example below demonstrates a few key features:

  • creates an App app
  • creates a DotStack stack
  • creates a RestApi and accompanying NodeJsFunction
  • creates a Kinesis DestinationStream and Stream for a Firehose
  • grants the handler necessary permissions to interact with the source Stream
import { resolve } from 'path';

import { addApp, addApi, addFirehose, addStack, Duration, RemovalPolicy } from '@dot/cdk';

import { name } from './package.json'; // e.g. svc-batman

const app = addApp();
const scope = addStack({ app, name });
const verbs = ['GET', 'OPTIONS', 'POST'];
const DEPLOY_ENV = 'prod';
const sourcePath = resolve(__dirname, '../src');
const timeout = Duration.minutes(15);

const { handler } = addApi({
  deployEnv: DEPLOY_ENV,
  handler: {
    entryFilePath: 'stream/lambda.ts',
    environmentVariables: { DEPLOY_ENV },
    scope,
    sourcePath,
    timeout
  },
  name: 'stream',
  scope,
  verbs
});

const { sourceStream } = addFirehose({
  destinationBucket: {
    autoDelete: false,
    removalPolicy: RemovalPolicy.RETAIN
  },
  name: 'firehose',
  scope,
  source: { encryption: true }
});

sourceStream.grantWrite(handler);

Meta

CONTRIBUTING

LICENSE (Mozilla Public License)

3.14.8

18 days ago

3.14.7

30 days ago

3.14.6

2 months ago

3.14.5

2 months ago

3.14.4

2 months ago

3.13.1

2 months ago

3.14.1

2 months ago

3.14.0

2 months ago

3.14.3

2 months ago

3.14.2

2 months ago

3.13.0

2 months ago

3.12.0

2 months ago

3.11.1

2 months ago

3.10.1

2 months ago

3.11.0

2 months ago

3.9.5-test.2

3 months ago

3.9.5-test.1

3 months ago

3.10.0

3 months ago

3.9.4

4 months ago

3.9.3

6 months ago

3.9.2

7 months ago

3.9.1

8 months ago

3.9.0

8 months ago

3.8.0

10 months ago

3.8.1

10 months ago

3.6.4

11 months ago

3.7.2

11 months ago

3.6.3

11 months ago

3.7.1

11 months ago

3.7.0

11 months ago

3.6.2

1 year ago

3.6.1

1 year ago

3.6.0

1 year ago

3.5.1

1 year ago

3.5.0

1 year ago

3.4.2

1 year ago

3.4.1

1 year ago

3.4.0

1 year ago

3.3.0

1 year ago

3.2.0

1 year ago

3.1.6

1 year ago

3.1.5

1 year ago

3.1.4

1 year ago

3.1.3

1 year ago

3.1.2

1 year ago

3.1.1

1 year ago

3.1.0

1 year ago

3.0.0

1 year ago

2.2.1

1 year ago

2.2.0

1 year ago

2.1.4

1 year ago

2.1.3

1 year ago

2.1.2

1 year ago

2.1.1

1 year ago

2.1.0

1 year ago

2.0.4

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago