0.1.19 • Published 2 months ago

@aligent/cdk-static-hosting v0.1.19

Weekly downloads
-
License
GPL-3.0-only
Repository
github
Last release
2 months ago

Aligent AWS Static Hosting

Overview

This repository defines a CDK construct for hosting a static website on AWS using S3 and CloudFront. It can be imported and used within CDK applications.

Example

The following CDK snippet can be used to provision a static hosting stack using this construct.

import 'source-map-support/register';
import * as cdk from '@aws-cdk/core';
import { StaticHosting, StaticHostingProps } from '@aligent/cdk-static-hosting'
import { Construct, Stack, StackProps } from '@aws-cdk/core';


const HostingStackProps : StaticHostingProps = {
    subDomainName: 'sub.domain',
    domainName: 'domain.tld',
    certificateArn: 'arn:aws:acm:us-east-1:123456789:certificate/some-arn-id',
    createDnsRecord: false,
    createPublisherGroup: true,
    createPublisherUser: true,
    enableErrorConfig: true
};

class HostingStack extends Stack {
    constructor(scope: Construct, id: string, props: StackProps) {
        super(scope, id, props);

        new StaticHosting(this, 'hosting-stack', HostingStackProps);
    }
}

const app = new cdk.App();

new HostingStack(app, 'hosting-stack', {
     env: {
          region: 'ap-southeast-2',
          account: 'account-id',
     }
});

Response Header Policies

You can initialize Response Headers Policies, map them and pass to the construct.

  1. Create a policy

    // Creating a custom response headers policy -- all parameters optional
    const reportUriPolicy = new ResponseHeadersPolicy(this, 'ReportUriPolicy', {
        responseHeadersPolicyName: 'ReportUriPolicy',
        comment: 'To enable CSP Reporting',
        customHeadersBehavior: {
            customHeaders: [
                { 
                    header: 'content-security-policy-report-only', 
                    value: `default-src 'none'; form-action 'none'; frame-ancestors 'none'; report-uri https://some-report-uri-domain.report-uri.com/r/t/csp/wizard`, 
                    override: true 
                },
            ],
        },
    });
  2. Attached policy to desired cache behavior or path

    const responseHeaders: ResponseHeaderMappings[] = [{
        header: reportUriPolicy,
        pathPatterns: ['/au*', '/nz*']
        attachToDefault: false
    }];

    If you should attached the policy to the Default Behavior, set attachToDefault: true

  3. Include the config as props

    new StaticHosting(this, 'pwa-stack', {...staticProps, ...{behaviors, customOriginConfigs, responseHeaders}});
0.1.19

2 months ago

0.1.18

2 months ago

2.3.0

3 months ago

2.2.1

3 months ago

0.1.17

3 months ago

2.2.0

3 months ago

2.1.1

5 months ago

2.1.0

5 months ago

0.1.16-alpha2

9 months ago

0.1.16-alpha

10 months ago

2.0.1

6 months ago

2.0.0

7 months ago

0.1.15

10 months ago

0.1.14

1 year ago

0.1.13

1 year ago

0.1.11

1 year ago

0.1.12

1 year ago

0.1.13-beta1

1 year ago

0.1.13-beta2

1 year ago

0.1.13-beta3

1 year ago

0.1.13-beta4

1 year ago

0.1.13-beta5

1 year ago

0.1.10

2 years ago

0.1.9

2 years ago

0.2.3-beta

2 years ago

0.2.0-beta

2 years ago

0.2.1-beta

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.2.2-beta

2 years ago

0.1.5

2 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.0

3 years ago