Skip to content
This repository was archived by the owner on Jun 28, 2022. It is now read-only.

Commit

Permalink
docs: update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
arantespp committed Feb 23, 2022
1 parent 12a0e8c commit acc4c14
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 159 deletions.
75 changes: 9 additions & 66 deletions packages/website/carlin/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
/* eslint-disable global-require */
const fs = require('fs');
const yaml = require('js-yaml');

/* eslint-disable global-require */
const config = require('carlin/dist/config');

const cli = require('carlin/dist/cli').default;

const {
Expand All @@ -13,10 +11,7 @@ const {
const { defaultTemplatePaths } = require('carlin/dist/deploy/cloudFormation');

const {
generateCspString,
getDefaultCsp,
getStaticAppTemplate,
updateCspObject,
} = require('carlin/dist/deploy/staticApp/staticApp.template');

const {
Expand Down Expand Up @@ -48,36 +43,6 @@ const cliApi = async (cmd) =>
});
});

const getStaticAppCsp = () => {
const cspWithReplace = {
'default-src': ['https', 'replace'],
'script-src': ["'self'", 'replace'],
'connect-src': ['https://my.api.com/', 'replace'],
};

const cspWithoutReplace = {
'default-src': 'https',
'script-src': "'self'",
'connect-src': 'https://my.api.com/',
};

return {
staticAppCspStringDefault: generateCspString().replace(/; /g, ';\n'),
staticAppCspStringWithoutReplace: generateCspString({
csp: updateCspObject({
csp: cspWithoutReplace,
currentCsp: getDefaultCsp(),
}),
}).replace(/; /g, ';\n'),
staticAppCspStringWithReplace: generateCspString({
csp: updateCspObject({
csp: cspWithReplace,
currentCsp: getDefaultCsp(),
}),
}).replace(/; /g, ';\n'),
};
};

module.exports = () => {
return {
name: 'carlin',
Expand Down Expand Up @@ -116,10 +81,6 @@ module.exports = () => {
'removeOldVersions',
],
destroyComment: ['deploy/cloudFormation.js', 'destroy'],
publishLambdaVersionZipFileComment: [
'deploy/staticApp/staticApp.template.js',
'PUBLISH_LAMBDA_VERSION_ZIP_FILE',
],
readObjectFileComment: ['utils/readObjectFile.js', 'readObjectFile'],
assignSecurityHeadersComment: [
'deploy/staticApp/staticApp.template.js',
Expand Down Expand Up @@ -160,20 +121,6 @@ module.exports = () => {
'CAUTION!!!',
)[1],
),
staticAppLambdaEdgeOriginRequestDescriptionComment: toHtml(
getComment([
'deploy/staticApp/staticApp.template.js',
'getLambdaEdgeOriginRequestZipFile',
]).split('## Algorithm')[0],
),
staticAppLambdaEdgeOriginRequestAlgorithmComment: toHtml(
getComment([
'deploy/staticApp/staticApp.template.js',
'getLambdaEdgeOriginRequestZipFile',
]).split('## Algorithm')[1],
),

...getStaticAppCsp(),

deployExamples: require('carlin/dist/deploy/command').examples,

Expand All @@ -193,19 +140,14 @@ module.exports = () => {
deployOptions: require('carlin/dist/deploy/command').options,
deployStaticAppOptions: require('carlin/dist/deploy/staticApp/command')
.options,
deployLambdaLayerOptions: require('carlin/dist/deploy/lambdaLayer/command')
.options,
deployLambdaLayerOptions:
require('carlin/dist/deploy/lambdaLayer/command').options,

baseStackTemplate,
staticAppOnlyS3Template: getStaticAppTemplate({}),
staticAppCloudFrontTemplate: getStaticAppTemplate({
cloudfront: true,
}),
staticAppGtmIdTemplate: getStaticAppTemplate({
region: config.AWS_DEFAULT_REGION,
cloudfront: true,
gtmId: 'GTM-XXXX',
}),
carlinCicdConfig: fs
.readFileSync('../../cicd/carlin.ts', 'utf-8')
.trim(),
Expand All @@ -217,11 +159,12 @@ module.exports = () => {
cicdTemplate.Resources[ECR_REPOSITORY_LOGICAL_ID],
};
})(),
carlinCicdRepositoryImageBuilderBuildSpec: getRepositoryImageBuilder()
.Properties.Source.BuildSpec,
carlinCicdRepositoryImageBuilderDockerfile: getRepositoryImageBuilder().Properties.Environment.EnvironmentVariables.find(
({ Name }) => Name === 'DOCKERFILE',
).Value['Fn::Sub'],
carlinCicdRepositoryImageBuilderBuildSpec:
getRepositoryImageBuilder().Properties.Source.BuildSpec,
carlinCicdRepositoryImageBuilderDockerfile:
getRepositoryImageBuilder().Properties.Environment.EnvironmentVariables.find(
({ Name }) => Name === 'DOCKERFILE',
).Value['Fn::Sub'],
carlinCicdRepositoryEcsTaskDefinition: getCicdTemplate({ s3 })
.Resources[REPOSITORY_ECS_TASK_DEFINITION_LOGICAL_ID].Properties,
testsCoverageThreshold: yaml.dump(testsCoverageThreshold),
Expand Down
8 changes: 0 additions & 8 deletions packages/website/docs/api-reference/deploy-static-app.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,6 @@ import { deployStaticAppOptions } from '../../.docusaurus/carlin/default/deployS

<OptionHeader option="cloudfront" options={deployStaticAppOptions} />

## csp

<OptionHeader option="csp" options={deployStaticAppOptions} />

## gtm-id

<OptionHeader option="gtm-id" options={deployStaticAppOptions} />

## hosted-zone-name

<OptionHeader option="hosted-zone-name" options={deployStaticAppOptions} />
Expand Down
85 changes: 0 additions & 85 deletions packages/website/docs/commands/deploy-static-app.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,10 @@ import InnerHTML from '../../src/components/InnerHTML';
import OptionAliasesInline from '../../src/components/OptionAliasesInline';
import Template from '../../src/components/Template';

import { assignSecurityHeadersComment } from '../../.docusaurus/carlin/default/assignSecurityHeadersComment';
import { deployStaticAppComment } from '../../.docusaurus/carlin/default/deployStaticAppComment';
import { deployStaticAppOptions } from '../../.docusaurus/carlin/default/deployStaticAppOptions';
import { publishLambdaVersionZipFileComment } from '../../.docusaurus/carlin/default/publishLambdaVersionZipFileComment';
import { removeOldVersionsComment } from '../../.docusaurus/carlin/default/removeOldVersionsComment';
import { staticAppCspStringWithoutReplace } from '../../.docusaurus/carlin/default/staticAppCspStringWithoutReplace';
import { staticAppCspStringWithReplace } from '../../.docusaurus/carlin/default/staticAppCspStringWithReplace';
import { staticAppCspStringDefault } from '../../.docusaurus/carlin/default/staticAppCspStringDefault';
import { staticAppCloudFrontTemplate } from '../../.docusaurus/carlin/default/staticAppCloudFrontTemplate';
import { staticAppGtmIdTemplate } from '../../.docusaurus/carlin/default/staticAppGtmIdTemplate';
import { staticAppLambdaEdgeOriginRequestAlgorithmComment } from '../../.docusaurus/carlin/default/staticAppLambdaEdgeOriginRequestAlgorithmComment';
import { staticAppLambdaEdgeOriginRequestDescriptionComment } from '../../.docusaurus/carlin/default/staticAppLambdaEdgeOriginRequestDescriptionComment';
import { staticAppOnlyS3Template } from '../../.docusaurus/carlin/default/staticAppOnlyS3Template';

export const OriginPath = () => {
Expand Down Expand Up @@ -56,10 +48,6 @@ to the required version.

<InnerHTML html={removeOldVersionsComment} />

## Security

<InnerHTML html={assignSecurityHeadersComment} />

## Configurations

The differences among all deployments occurs at the template level. Each option adds a piece of instructions on the final CloudFormation template, that we'll present to you.
Expand Down Expand Up @@ -88,12 +76,6 @@ This kind of deployment is good to use to deploy an application to the QA team v
carlin deploy static-app --cloudfront
```

:::info

<InnerHTML html={publishLambdaVersionZipFileComment} />

:::

#### CloudFormation Template

<Template json={staticAppCloudFrontTemplate} />
Expand Down Expand Up @@ -132,70 +114,3 @@ aliases:
- www1.mydomain.com
- www2.mydomain.com
```
### Google Tag Manager
```
carlin deploy static-app --gtm-id GTM-XXXX
```

<InnerHTML html={staticAppLambdaEdgeOriginRequestDescriptionComment} />

#### Lamdba@Edge Origin Request Code and Algorithm

:::note Algorithm

<Algorithm algorithm={staticAppLambdaEdgeOriginRequestAlgorithmComment} />

:::

<CodeBlock className="javascript">
{
staticAppGtmIdTemplate.Resources.LambdaEdgeOriginRequest.Properties.Code
.ZipFile
}
</CodeBlock>

### Content Security Policy

By default, the algorithm adds these [CSP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) headers to the deployment:

<CodeBlock className="txt">{staticAppCspStringDefault}</CodeBlock>

#### Disabling CSP

If you want to remove the default CSP headers, you can use the <OptionAliasesInline options={deployStaticAppOptions} option="csp" to="/docs/api-reference/deploy-static-app#csp" /> flag as `false`.

```
carlin deploy static-app --csp false
```

#### Appending CSP

If you want to append directives to the default CSP, you can pass a object to the <OptionAliasesInline options={deployStaticAppOptions} option="csp" to="/docs/api-reference/deploy-static-app#csp" /> flag with the values you want to append.

```yaml title="carlin.yml"
csp:
'default-src': 'https'
'script-src': "'self'"
'connect-src': 'https://my.api.com/'
```
Whose result is:
<CodeBlock className="txt">{staticAppCspStringWithoutReplace}</CodeBlock>
#### Replacing CSP
If you want to replace directives to the default CSP, you can pass a object to the <OptionAliasesInline options={deployStaticAppOptions} option="csp" to="/docs/api-reference/deploy-static-app#csp" /> flag with the values you want to replace in an array `["value", "replace"]`.

```yaml title="carlin.yml"
csp:
'default-src': ['https', 'replace'],
'script-src': ["'self'", 'replace'],
'connect-src': ['https://my.api.com/', 'replace'],
```

Whose result is:

<CodeBlock className="txt">{staticAppCspStringWithReplace}</CodeBlock>

0 comments on commit acc4c14

Please sign in to comment.