open-index/open-npm huggingface dataset:
npm package: @serverless-ide/client
Description: Serverless IDE autocomplete plugin with AWS SAM support
Author: Pavel Vlasov
Latest version: 0.1.3

[![Marketplace Version](https://vsmarketplacebadge.apphb.com/version/threadheap.serverless-ide.svg 'Current Release')](https://marketplace.visualstudio.com/items?itemName=threadheap.serverless-ide)

# Serverless IDE: Enahnced support of AWS SAM in Visual Studio Code

Provides comprehensive AWS SAM (Serverless Application Model) and Cloudformation support to [Visual Studio Code](https://code.visualstudio.com/).

## Features

1. Validation:
    - Detects whether the entire file is valid SAM template
    - Detects errors such as:
        - Node is not found
        - Node has an invalid key node type
        - Node has an invalid type
        - Node is not a valid child node
2. Auto completion (<kbd>Ctrl</kbd> + <kbd>Space</kbd>):
    - Auto completes on all commands
    - Scalar nodes autocomplete to schema's defaults if they exist
3. Formatter:
    - Allows for formatting the current file

# Settings

The following settings are supported:

-   `serverlessIDE.provider`: Provider (default to aws-sam)
-   `serverlessIDE.templatePattern`: Pattern for config file name (default to `*.sam.yaml`)
-   `serverlessIDE.validate`: Enable/disable validation feature
-   `serverlessIDE.hover`: Enable/disable hover
-   `serverlessIDE.completion`: Enable/disable autocompletion
-   `[yaml]`: VSCode-YAML adds default configuration for all yaml files. More specifically it converts tabs to spaces to ensure valid yaml, sets the tab size, and allows live typing autocompletion. These settings can be modified via the corresponding settings inside the `[yaml]` section in the settings:
    -   `editor.insertSpaces`
    -   `editor.tabSize`
    -   `editor.quickSuggestions`

## Contributions

All contributions are welcome!

### Getting started

1. Install prerequisites:
    - latest [Visual Studio Code](https://code.visualstudio.com/)
    - [Node.js](https://nodejs.org/) v10.9.0 or higher
2. Fork and clone this repository
3. Install lerna and dependencies

```sh
    yarn global add lerna
    lerna bootstrap
```

4. Compile Typescript

```sh
    lerna compile
```

#### Developing the client side

1. Open `packages/client` in vscode
2. Make changes as neccessary and the run the code using `Launch Extension` command (F5)

#### Developing the server side

1. Open `packages/server` in vscode

Refer to VS Code [documentation](https://code.visualstudio.com/docs/extensions/debugging-extensions) on how to run and debug the extension

#### Update SAM json schema

1. Open `packages/sam-schema`
2. Make changes and run `yarn generate` to update schema
3. Check changes with `Launch Extension` command

### Installation from Github Release

To obtain and install the latest release from github you can:

-   First download the latest \*.vsix file from [Github Releases section](https://github.com/threadheap/serverless-ide-vscode/releases)
-   Inside of VSCode navigate to the extension tab and click the three elipses (...).
-   Click install from VSIX and provide the location of the \*.vsix that was downloaded

## License

MIT
npm package: @serverless-ide/cloudformation-schema
Description: Json schema for AWS SAM template configuration
Author: Pavel Vlasov
Latest version: 0.6.5

# @serverless-ide/cloudformation-schema

## Json schema for Cloudformation template configuration

Based on [awslabs/goformation](https://raw.githubusercontent.com/awslabs/goformation/master/schema/sam.schema.json)
and adds support of globals configuration

## How to

1. Install dependencies

```sh
npm install
```
2. Generate schema

```sh
npm run generate
```

## License

### License

Apache License 2.0
npm package: @serverless-ide/sam-schema
Description: Json schema for AWS SAM template configuration
Author: Pavel Vlasov
Latest version: 0.6.5

# @serverless-ide/sam-schema

## Json schema for AWS SAM template configuration

Based on [awslabs/goformation](https://raw.githubusercontent.com/awslabs/goformation/master/schema/sam.schema.json)
and adds support of globals configuration

## How to

1. Install dependencies

```sh
npm install
```
2. Generate schema

```sh
npm run generate
```

## License

### License

Apache License 2.0
npm package: @serverless-ide/serverless-framework-schema
Description: Json schema for AWS SAM template configuration
Author: Pavel Vlasov
Latest version: 0.6.5

# aws-sam-json-schema

## Json schema for AWS SAM template configuration

Based on [awslabs/goformation](https://raw.githubusercontent.com/awslabs/goformation/master/schema/sam.schema.json)
and adds support of globals configuration

## How to

1. Install dependencies

```sh
npm install
```

2. Generate schema

```sh
npm run generate
```

## License

### License

Apache License 2.0
npm package: @serverless-jwt/cloudflare
Description: JWT verification for Cloudflare Workers
Author: Sandrino Di Mattia
Latest version: 0.2.1

# @serverless-jwt/cloudflare

JWT authorization for Cloudflare Functions. Usage is easy:

```js
const { CloudflareJwtVerifier } = require('@serverless-jwt/cloudflare');

const verifyJwt = CloudflareJwtVerifier({
  issuer: 'https://sandrino.auth0.com/',
  audience: 'urn:my-api'
});

addEventListener('fetch', (event) => {
  event.respondWith(requireAuth(handleRequest)(event.request));
});

function handleRequest(identityContext, request) {
  return new Response(`hello world: ${JSON.stringify(identityContext.claims, null, 2)}`);
}
```

## Advanced Options

### Claims Mapping

You can also provide a function to map the incoming claims to a format that is more usable in your application. This would allow you to rename certain claims or to change the claim from a string to an array:

```js
const { CloudflareJwtVerifier, removeNamespaces, claimToArray } = require('@serverless-jwt/cloudflare');

const verifyJwt = CloudflareJwtVerifier({
  issuer: 'https://sandrino.auth0.com/',
  audience: 'urn:my-api',
  mapClaims: (claims) => {
    // Custom claims added in Auth0 have a prefix, which are removed here.
    const user = removeNamespaces('http://schemas.sandrino.dev/', claims);

    // Convert the scope and roles claims to arrays so they are easier to work with.
    user.scope = claimToArray(user.scope);
    user.roles = claimToArray(user.roles);
    return user;
  }
});
```
npm package: @serverless-jwt/jwt-verifier
Description: JWT verification for Serverless environments
Author: Sandrino Di Mattia
Latest version: 0.2.1

# @serverless-jwt/jwt-verifier

The base module for the `serverless-jwt` ecosystem which is platform independent and can be used to build provider specific integrations or which can be used straight out of the box.

## Installation

```bash
npm install --save @serverless-jwt/jwt-verifier
```

## Usage

The verifier can be configured to validate tokens from a given `issuer` to a given `audience`.

```js
const { JwtVerifier, JwtVerifierError } = require('@serverless-jwt/jwt-verifier');

const jwt = new JwtVerifier({
  issuer: 'https://auth.sandrino.dev/',
  audience: 'urn:colors-api'
});

try {
  const claims = await jwt.verifyAccessToken(token);
  ...
} catch (e) {
   if (e instanceof JwtVerifierError) {
      console.error(e.code, e.message);
    }
}
```

## Advanced Options

### Claims Mapping

You can also provide a function to map the incoming claims to a format that is more usable in your application. This would allow you to rename certain claims or to change the claim from a string to an array:

```js
const { JwtVerifier, removeNamespaces, claimToArray } = require('@serverless-jwt/jwt-verifier');

const jwt = new JwtVerifier({
  issuer: 'https://auth.sandrino.dev/',
  audience: 'urn:colors-api',
  mapClaims: (claims) => {
    let user = {
      ...claims
    };

    // Helper to remove namespaces from each claim (eg: http://schemas.acme.com/roles would be transformed into simply roles)
    user = removeNamespaces(user);

    // Use a helper to transform a string into an array.
    user.scopes = claimToArray(user.scopes);
  }
});
```

### Extract Token

If a token was provided through the Authorization header, a small helper is available to extract the token from the header:

```js
const { getTokenFromHeader } = require('@serverless-jwt/jwt-verifier');
const token = getTokenFromHeader(request.headers.get('Authorization'));
```
npm package: @serverless-jwt/netlify
Description: JWT verification for Netlify Functions
Author: Sandrino Di Mattia
Latest version: 0.2.1

# @serverless-jwt/netlify

[![http://npmjs.com/package/@serverless-jwt/netlify](https://img.shields.io/npm/l/@serverless-jwt/jwt-verifier)](https://www.npmjs.com/package/@serverless-jwt/netlify)
[![downloads](https://img.shields.io/npm/dt/@serverless-jwt/netlify.svg)](https://npmjs.com/package/@serverless-jwt/netlify/v/latest)
[![npm](https://img.shields.io/npm/v/@serverless-jwt/netlify.svg)](https://www.npmjs.com/package/@serverless-jwt/netlify)

## Installation

```bash
npm install --save @serverless-jwt/netlify
```

## Using the library

JWT authorization for Netlify Functions. Usage is easy:

```js
const { NetlifyJwtVerifier } = require('@serverless-jwt/netlify');

const verifyJwt = NetlifyJwtVerifier({
  issuer: 'https://sandrino.auth0.com/',
  audience: 'urn:my-api'
});

const handler = async (event, context) => {
  // The user information is available here.
  const { claims } = context.identityContext;

  return {
    statusCode: 200,
    body: JSON.stringify({ profile: claims })
  };
};

exports.handler = verifyJwt(handler);
```

## Advanced Options

### Claims Mapping

You can also provide a function to map the incoming claims to a format that is more usable in your application. This would allow you to rename certain claims or to change the claim from a string to an array:

```js
const { NetlifyJwtVerifier, removeNamespaces, claimToArray } = require('@serverless-jwt/netlify');

const verifyJwt = NetlifyJwtVerifier({
  issuer: 'https://sandrino.auth0.com/',
  audience: 'urn:my-api',
  mapClaims: (claims) => {
    // Custom claims added in Auth0 have a prefix, which are removed here.
    const user = removeNamespaces('http://schemas.sandrino.dev/', claims);

    // Convert the scope and roles claims to arrays so they are easier to work with.
    user.scope = claimToArray(user.scope);
    user.roles = claimToArray(user.roles);
    return user;
  }
});
```
npm package: @serverless-jwt/next
Description: JWT verification for Next.js API Routes
Author: Sandrino Di Mattia
Latest version: 0.2.1

# @serverless-jwt/next

JWT authorization for Next.js API Routes. Usage is easy:

```js
import { NextJwtVerifier } from '@serverless-jwt/next';

const verifyJwt = NextJwtVerifier({
  issuer: 'https://sandrino.auth0.com/',
  audience: 'urn:my-api'
});

const apiRoute = async (req, res) => {
  const { claims } = context.identityContext;

  res.json({
    user: claims
  });
};

export default verifyJwt(apiRoute);
```

## Advanced Options

### Claims Mapping

You can also provide a function to map the incoming claims to a format that is more usable in your application. This would allow you to rename certain claims or to change the claim from a string to an array:

```js
import { NextJwtVerifier, removeNamespaces, claimToArray } from '@serverless-jwt/next';

const verifyJwt = NextJwtVerifier({
  issuer: 'https://sandrino.auth0.com/',
  audience: 'urn:my-api',
  mapClaims: (claims) => {
    // Custom claims added in Auth0 have a prefix, which are removed here.
    const user = removeNamespaces('http://schemas.sandrino.dev/', claims);

    // Convert the scope and roles claims to arrays so they are easier to work with.
    user.scope = claimToArray(user.scope);
    user.roles = claimToArray(user.roles);
    return user;
  }
});
```
npm package: @serverless-local-proxy/aws_events_faker
Description: serverless-local-proxy plugin: Mocks AWS events
Author: useless-stuff
Latest version: 1.5.3

# AWS EVENTS FAKER

This package is part of the monorepo serverless-local-proxy 

## Getting Started

## Prerequisites

## Installing

## Running the tests

## Break down into end to end tests

## And coding style tests

## Deployment

## Built With

## Contributing

## Versioning 

## Authors

## License

## Acknowledgments
npm package: @serverless-local-proxy/events_manager
Description: serverless-local-proxy plugin: Events manager
Author: useless-stuff
Latest version: 1.5.3

# EVENTS MANAGER

This package is part of the monorepo serverless-local-proxy 

## Getting Started

## Prerequisites

## Installing

## Running the tests

## Break down into end to end tests

## And coding style tests

## Deployment

## Built With

## Contributing

## Versioning 

## Authors

## License

## Acknowledgments
npm package: @serverless-local-proxy/hotreload
Description: serverless-local-proxy plugin: Cache invalidator
Author: useless-stuff
Latest version: 1.5.3

# HOT RELOAD

This package is part of the monorepo serverless-local-proxy 

## Getting Started

## Prerequisites

## Installing

## Running the tests

## Break down into end to end tests

## And coding style tests

## Deployment

## Built With

## Contributing

## Versioning 

## Authors

## License

## Acknowledgments
npm package: @serverless-local-proxy/middleware_list
Description: serverless-local-proxy plugin: Middleware list
Author: Diego Anniballo
Latest version: 1.5.3

# Project Title

This package is part of the Monorepo project serverless-local-proxy 

## Getting Started

## Prerequisites

## Installing

## Running the tests

## Break down into end to end tests

## And coding style tests

## Deployment

## Built With

## Contributing

## Versioning 

## Authors

## License

## Acknowledgments
npm package: @serverless-local-proxy/mw-payload-to-aws-event
Description: serverless-local-proxy plugin: Request Payload to AWS event
Author: useless-stuff
Latest version: 1.5.3

# PAYLOAD TO AWS EVENT

Will transform a request payload to an [AWS event](https://docs.aws.amazon.com/lambda/latest/dg/eventsources.html)

## Name:
payload_to_aws_event

## Middleware state

| Input | Output |
| --- | --- |
| invokeFunctionPayload:Any | invokeFunctionPayload:AWSEventObject} |
| invokeFunctionName:String |  |

N.B. 
This package is part of the monorepo [serverless-local-proxy](https://github.com/serverless-local-proxy/serverless-local-proxy)
npm package: @serverless-local-proxy/mw_ddb_mock_api
Description: serverless-local-proxy plugin: Mocks new DynamoDB APIs not supported by DynamoDB local
Author: useless-stuff
Latest version: 1.5.3

# DDB MOCK API

This middleware mocks the APIs that DynamoDB local doesn't have ( like DescribeTimeToLive, tags etc )
It's useful if you use tools that require those APIs like [Terraform](https://www.terraform.io/) ( [issue](https://github.com/terraform-providers/terraform-provider-aws/issues/1059) ).
It also allows you to redirect to the local DynamoDB /shell

## Name:
ddb_mock_api

## Middleware state

| Input | Output |
| --- | --- |
| none | none |

N.B. 
This package is part of the monorepo [serverless-local-proxy](https://github.com/serverless-local-proxy/serverless-local-proxy)
npm package: @serverless-local-proxy/mw_ddb_query_logger
Description: serverless-local-proxy plugin: DymnamoDB query logger
Author: useless-stuff
Latest version: 1.5.3

# DDB QUERY LOGGER

Will produce a log row for all the queries to DynamoDB

## Name:
ddb_query_logger

## Middleware state

| Input | Output |
| --- | --- |
| none | none |

N.B. 
This package is part of the monorepo [serverless-local-proxy](https://github.com/serverless-local-proxy/serverless-local-proxy)
npm package: @serverless-local-proxy/mw_ddb_trigger
Description: serverless-local-proxy plugin: Dynamodb trigger middleware
Author: useless-stuff
Latest version: 1.5.3

# DDB TRIGGER

This middleware emulates the DynamoDB' trigger functionality 
It's used in combination with [invoke_function](#invoke_function)

## Name:
ddb_trigger

## Middleware state

Middleware state

| Input | Output |
| --- | --- |
| none | invokeFunctionName:String |
| none | invokeFunctionPath:String |
| none | invokeFunctionPayload:Any |

N.B. 
This package is part of the monorepo [serverless-local-proxy](https://github.com/serverless-local-proxy/serverless-local-proxy)
npm package: @serverless-local-proxy/mw_functions_to_http
Description: serverless-local-proxy plugin: Create an HTTP endpoint for every serverless function
Author: useless-stuff
Latest version: 1.5.3

# FUNCTIONS TO HTTP

Will transform all the service's function to HTTP endpoints

## Name:
functions_to_http

## Middleware state

Middleware state

| Input | Output |
| --- | --- |
| none | invokeFunctionName:String |
| none | invokeFunctionPath:String |
| none | invokeFunctionPayload:Any |

N.B. 
This package is part of the monorepo [serverless-local-proxy](https://github.com/serverless-local-proxy/serverless-local-proxy)
npm package: @serverless-local-proxy/mw_http_request_logger
Description: serverless-local-proxy plugin: HTTP request logger
Author: useless-stuff
Latest version: 1.5.3

# HTTP REQUEST LOGGER

Will produce a log row for each HTTP request to the proxy where is attached to

## Name:
http_request_logger

## Middleware state

Middleware state

Middleware state

| Input | Output |
| --- | --- |
| none | none |

N.B. 
This package is part of the monorepo [serverless-local-proxy](https://github.com/serverless-local-proxy/serverless-local-proxy)
npm package: @serverless-local-proxy/mw_invoke_function
Description: serverless-local-proxy plugin: Invoke function middleware
Author: useless-stuff
Latest version: 1.5.3

# INVOKE FUNCTION

Will invoke a service' function an will log the result

## Name:
invoke_function

## Middleware state

Middleware state

Middleware state

| Input | Output |
| --- | --- |
| invokeFunctionName | invokedFunction:Object { functionName:String, payload:Any, exception:String, callback:Object { error:String, result:Any}  } |
| invokeFunctionPath |  |
| invokeFunctionPayload |  |

N.B. 
This package is part of the monorepo [serverless-local-proxy](https://github.com/serverless-local-proxy/serverless-local-proxy)
npm package: @serverless-local-proxy/mw_invoke_http_function
Description: serverless-local-proxy plugin: Invoke HTTP function endpoint
Author: useless-stuff
Latest version: 1.5.3

# Invoke HTTP function middleware

N.B. This package is part of the Monorepo project serverless-local-proxy

## Getting Started

## Prerequisites

## Installing

## Running the tests

## Break down into end to end tests

## And coding style tests

## Deployment

## Built With

## Contributing

## Versioning 

## Authors

## License

## Acknowledgments
npm package: @serverless-local-proxy/mw_proxy_output
Description: serverless-local-proxy plugin: Proxy output
Author: Diego Anniballo
Latest version: 1.5.3

# Project Title

This package is part of the Monorepo project serverless-local-proxy 

## Getting Started

## Prerequisites

## Installing

## Running the tests

## Break down into end to end tests

## And coding style tests

## Deployment

## Built With

## Contributing

## Versioning 

## Authors

## License

## Acknowledgments
npm package: @serverless-local-proxy/mw_state_inject
Description: serverless-local-proxy plugin: State inject
Author: useless-stuff
Latest version: 1.5.3

# STATE INJECT

This package is part of the monorepo serverless-local-proxy 

## Getting Started

## Prerequisites

## Installing

## Running the tests

## Break down into end to end tests

## And coding style tests

## Deployment

## Built With

## Contributing

## Versioning 

## Authors

## License

## Acknowledgments
npm package: @serverless-local-proxy/px_dynamodb
Description: serverless-local-proxy plugin: DynamoDB Proxy
Author: useless-stuff
Latest version: 1.5.3

# DYNAMODB PROXY

This package is part of the monorepo serverless-local-proxy 

## Getting Started

## Prerequisites

## Installing

## Running the tests

## Break down into end to end tests

## And coding style tests

## Deployment

## Built With

## Contributing

## Versioning 

## Authors

## License

## Acknowledgments
npm package: @serverless-local-proxy/px_functions
Description: serverless-local-proxy plugin: FunctionsProxy
Author: Diego Anniballo
Latest version: 1.5.3

# FUNCTIONS PROXY

This package is part of the monorepo serverless-local-proxy 

## Getting Started

## Prerequisites

## Installing

## Running the tests

## Break down into end to end tests

## And coding style tests

## Deployment

## Built With

## Contributing

## Versioning 

## Authors

## License

## Acknowledgments
npm package: @serverless-local-proxy/utils_middleware
Description: serverless-local-proxy plugin: Middleware utils package
Author: useless-stuff
Latest version: 1.5.3

# UTILS MIDDLEWARE

This package is part of the monorepo serverless-local-proxy 

## Getting Started

## Prerequisites

## Installing

## Running the tests

## Break down into end to end tests

## And coding style tests

## Deployment

## Built With

## Contributing

## Versioning 

## Authors

## License

## Acknowledgments
npm package: @serverless-normalize/aws
Description: Compatibility layer for AWS
Author: Zn4rK
Latest version: 0.0.11

# @serverless-normalize/aws

The compatibility layer for AWS and `@serverless-normalize`.

## API

#### `normalize(callback: Function, options?: object): AWSLambda.APIGatewayProxyResult`

The `callback` has a function signature of:
```typescript
type Request = http.IncomingMessage & { originalEvent: AWSLambda.APIGatewayEvent };

type Callback = (
  request: Request,
  response: http.ServerResponse,
) => void
```

It is your responsibility to call `response.end()`! 

`options` is optional and looks like this:

```typescript
interface Options {
  binary?: boolean | string[] | Function;
}
```

#### options.binary

**`true`**<br><br>
This is the default behavior. Checks if response header `Content-Encoding` is set and equals to `gzip`, `deflate` or `br` and the response header `Content-Type` against those specified.

**`false`**<br><br>
Turns off the default behavior, and doesn't base64-encode any content for you.

**`string[]`**<br><br>
Adds the mime types to the list we will check the response header `content-type` against.

**`Function`**<br><br>
The callback has a signature of:
```typescript
type BinaryCallback = (headers: http.OutgoingHttpHeaders) => boolean
```

### Binary Mode

You can specify the `Content-Type`s in the environmental variable BINARY_CONTENT_TYPES via a comma separated list.

See [options.binary](README.md#optionsbinary) for more advanced configuration options.

## Usage

Install `@serverless-normalize/normalize` and `@serverless-normalize/aws` for automatic AWS detection.

## Standalone usage

To use this package without `@serverless-normalize/normalize` all you need to do is to import `normalize` from this
package instead of the aforementioned.
npm package: @serverless-normalize/utils
Description: Shared utilities for @serverless-normalize
Author: Zn4rK
Latest version: 0.0.11

# @serverless-normalize/utils

A collection of utility functions that can be shared across different providers.

## API

#### toPromise(response: ServerResponse) => Promise<Buffer>

Overrides the `.write()` and `.end()` methods in ServerResponse to be able to intercept all messages written on the WritableStream.
npm package: @serverless-plugin-sqs-local/elasticmq-localhost
Description: ElasticMQ runner for development and testing
Author: kobanyan
Latest version: 1.0.0

# elasticmq-localhost

This library works as a wrapper for [ElasticMQ](https://github.com/softwaremill/elasticmq), intended for use in devops. This library is capable of downloading and installing the ElasticMQ with a simple set of commands, and pass optional attributes.

## Requires

- Java Runtime Engine (JRE) version 8 or newer

## Features

- Method to Download/Install ElasticMQ
- Start/Restart ElasticMQ with the options
- Stop individual instances of ElasticMQ running

## Installation

`npm install --save-dev @serverless-plugin-sqs-local/elasticmq-localhost`

## Usage

Usage example

```
var elasticmq = require("@serverless-plugin-sqs-local/elasticmq-localhost");
elasticmq.install(); /* This is one time operation. Safe to execute multiple times which installs ElasticMQ once. All the other methods depends on this. */
elasticmq.start();
```

Supported methods

```
install(options)  To install ElasticMQ for usage (This is one time operation unless remove)
start(options)    To start an instance of ElasticMQ. More information about options shown in the coming section
stop(port)        To stop particular instance of ElasticMQ running on an specified port
```

NOTE: After executing start(options), ElasticMQ will process incoming requests until you stop it. To stop ElasticMQ, type Ctrl+C in the command prompt window.

All options:

```js
setup: {
  downloadUrl: 'http://s3-eu-west-1.amazonaws.com/softwaremill-public/elasticmq-server-0.14.6.jar', // Url to download ElasticMQ
  installPath: './.elasticmq', // Directory path to install ElasticMQ
},
start: {
  port: 9324, // ElasticMQ listening port number
},
```

## Credits

This project is heavily inspired by the following projects.

- [dynamodb-localhost](https://github.com/99xt/dynamodb-localhost)
npm package: @serverless-rewrite/utils
Description: Serverless CLI utilities
Author: Serverless, Inc.
Latest version: 6.0.1

# @serverless/utils

## Serverless CLI utilities

### Installation

```bash
npm install @serverless/utils
```

### Utilities

- [`analyticsAndNotificationsUrl`](docs/analytics-and-notifications-url.md)
- [`cloudformationSchema`](docs/cloudformation-schema.md)
- [`config`](docs/config.md)
- [`isInChina`](docs/is-in-china.md)
- [`log`](docs/log.md)
- [`processBackendNotificationRequest`](docs/process-backend-notification-request.md)