@pwrdrvr/microapps-cdk 0.2.4 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -2883,7 +2883,7 @@
2883
2883
  },
2884
2884
  "description": "MicroApps framework, by PwrDrvr LLC, delivered as an AWS CDK construct that provides the DynamoDB, Router service, Deploy service, API Gateway, and CloudFront distribution.",
2885
2885
  "docs": {
2886
- "stability": "stable"
2886
+ "stability": "experimental"
2887
2887
  },
2888
2888
  "homepage": "https://github.com/pwrdrvr/microapps-core",
2889
2889
  "jsiiVersion": "1.52.1 (build 5ccc8f6)",
@@ -2903,7 +2903,7 @@
2903
2903
  },
2904
2904
  "name": "@pwrdrvr/microapps-cdk",
2905
2905
  "readme": {
2906
- "markdown": "![Build/Deploy CI](https://github.com/pwrdrvr/microapps-core/actions/workflows/ci.yml/badge.svg) ![Main Build](https://github.com/pwrdrvr/microapps-core/actions/workflows/main-build.yml/badge.svg) ![Release](https://github.com/pwrdrvr/microapps-core/actions/workflows/release.yml/badge.svg)\n\n# Overview\n\nThe MicroApps project....\n\n# Project Layout\n\n- [packages/cdk]() - CDK Stacks\n - MicroAppsS3\n - Creates S3 buckets\n - MicroAppsRepos\n - Creates the ECR repos for components to be published into;\n - Deployer\n - Router\n - MicroAppsSvcs\n - Create DynamoDB table\n - Create Deployer Lambda function\n - Create Router Lambda function\n - Create APIGateway HTTP API\n - MicroAppsCF\n - Creates Cloudfront distribution\n - MicroAppsR53\n - Creates domain names to point to the edge (Cloudfront) and origin (API Gateway)\n- [packages/microapps-deployer]()\n - Lambda service invoked by `microapps-publish` to record new app/version in the DynamoDB table, create API Gateway integrations, copy S3 assets from staging to prod bucket, etc.\n- [packages/microapps-publish]()\n - Node executable that updates versions in config files, deploys static assets to the S3 staging bucket, optionally compiles and deploys a new Lambda function version, and invokes `microapps-deployer`\n - Permissions required:\n - Lambda invoke\n - S3 publish to the staging bucket\n - ECR write\n - Lambda version publish\n- [packages/microapps-router]()\n - Lambda function that determines which version of an app to point a user to on a particular invocation\n\n# Useful Commands\n\n- `npm run build` compiles TypeSript to JavaScript\n- `npm run lint` checks TypeScript for compliance with Lint rules\n- `cdk list` list the stack names\n- `cdk deploy` deploy this stack to your default AWS account/region\n- `cdk diff` compare deployed stack with current state\n- `cdk synth` emits the synthesized CloudFormation template\n\n# Running CDK\n\nAlways run CDK from the root of the git repo, which is the directory containing `cdk.json`.\n\n## Set AWS Profile\n\n`export AWS_PROFILE=pwrdrvr`\n\n## Set NVM Version\n\n`nvm use`\n\n# Deployer Service\n\nCopies static assets from staging to deployed directory, creates record of application / version in DynamoDB Table.\n\n# Notes on Selection of Docker Image Lambdas\n\nThe Router and Deployer services are very small (0.5 MB) after tree shaking, minification, and uglification performed by `rollup`. The router has the tightest performance requirement and performed just as well as a docker image vs a zip file. However, docker image start up is up to 2x longer vs the zip file for the router; this should not be a problem for any live system with continuous usage and for demos the router can be initialized or pre-provisioned beforehand. The development benefits of docker images for Lambda outweigh the small init time impact on cold starts.\n\n# Notes on Performance\n\n## Router\n\nFor best demo performance (and real user performance), the memory for the Router Lambda should be set to 1024 MB as this gives the fastest cold start at the lowest cost. The cost per warm request is actually lower at 1024 MB than at 128 MB, so 1024 MB is just the ideal size.\n\nFor supremely optimum demo performance the Router Lambda should be deployed as a .zip file as that saves about 50% of the cold start time, or about 200 ms, but once it's the cold start has happened they are equally as fast as each other.\n\n- Lambda Memory (which linearly scales CPU) Speeds\n - Docker Image Lambda\n - Note: All times captured with Rollup ~400 KB Docker Layer\n - 128 MB\n - Duration Warm: 118 ms\n - Duration Cold: 763 ms\n - Init Duration: 518 ms\n - Billed Duration Warm: 119 ms\n - Billed Duration Init: 1,282 ms\n - Warm Cost: 0.025 millicents\n - Init Cost: 0.26 millicents\n - 256 MB\n - Duration Warm: 30 ms\n - Duration Cold: 363 ms\n - Init Duration: 488 ms\n - Billed Duration Warm: 30 ms\n - Billed Duration Init: 853 ms\n - Warm Cost: 0.013 millicents\n - Init Cost: 0.36 millicents\n - 512 MB\n - Duration Warm: 10 ms\n - Duration Cold: 176 ms\n - Init Duration: 572 ms\n - Billed Duration Warm: 10 ms\n - Billed Duration Init: 749 ms\n - Warm Cost: 0.0083 millicents\n - Init Cost: 0.62 millicents\n - 1024 MB\n - Duration Warm: 9 ms\n - Duration Cold: 84.5 ms\n - Init Duration: 497 ms\n - Billed Duration Warm: 9 ms\n - Billed Duration Init: 585 ms\n - Warm Cost: 0.015 millicents\n - Init Cost: 0.97 millicents\n - _Init performance scales linearly up to and including 1024 MB_\n - 1769 MB\n - This is the point at which a Lambda has 100% of 1 CPU\n - https://docs.aws.amazon.com/lambda/latest/dg/configuration-memory.html\n - Duration Warm: 8.31 ms\n - Duration Cold: 73 ms\n - Init Duration: 514 ms\n - Billed Duration Warm: 10 ms\n - Billed Duration Cold: 587 ms\n - Warm Cost: 0.029 millicents\n - Init Cost: 1.7 millicents\n - 2048 MB\n - Duration Warm: 10 ms\n - Duration Cold: 67 ms\n - Init Duration: 497 ms\n - Billed Duration Warm: 11 ms\n - Billed Duration Init: 566 ms\n - Warm Cost: 0.037 millicents\n - Init Cost: 1.89 millicents\n - Zip File Lambda\n - 128 MB\n - Duration Warm: 110 ms\n - Duration Cold: 761 ms\n - Init Duration: 210 ms\n - Billed Duration Warm: 120 ms\n - Billed Duration Init: 762 ms\n - Warm Cost: 0.025 millicents\n - Init Cost: 0.16 millicents\n - 512 MB\n - Duration Warm: 10 ms\n - Duration Cold: 179 ms\n - Init Duration: 201 ms\n - Billed Duration Warm: 12 ms\n - Billed Duration Init: 185 ms\n - Warm Cost: 0.01 millicents\n - Init Cost: 0.15 millicents\n - 1024 MB\n - Duration Warm: 10 ms\n - Duration Cold: 85 ms\n - Init Duration: 185 ms\n - Billed Duration Warm: 12 ms\n - Billed Duration Init: 85 ms\n - Warm Cost: 0.02 millicents\n - Init Cost: 0.14 millicents\n"
2906
+ "markdown": "![Build/Deploy CI](https://github.com/pwrdrvr/microapps-core/actions/workflows/ci.yml/badge.svg) ![Main Build](https://github.com/pwrdrvr/microapps-core/actions/workflows/main-build.yml/badge.svg) ![Release](https://github.com/pwrdrvr/microapps-core/actions/workflows/release.yml/badge.svg)\n\n# Overview\n\nThe MicroApps project enables rapidly deploying many web apps to AWS on a single shared host name, fronted by a CloudFront Distribution, serving static assets from an S3 Bucket, and routing application requests via API Gateway. MicroApps is delivered as a CDK Construct for deployment, although alternative deployment methods can be used if desired and implemented.\n\nMicroApps allows many versions of an application to be deployed either as ephemeral deploys (e.g. for pull request builds) or as semi-permanent deploys. The `microapps-router` Lambda function handled routing requests to apps to the current version targeted for a particular application start request using rules as complex as one is interested in implementing (e.g. A/B testing integration, canary releases, per-user rules for logged in users, per-group, per-deparment, and default rules).\n\nUsers start applications via a URL such as `[/{prefix}]/{appname}/`, which hits the `microapps-router` that looks up the version of the application to be run, then renders a transparent `iframe` with a link to that version. The URL seen by the user in the browser (and available for bookmarking) has no version in it, so subsequent launches (e.g. the next day or just in another tab) will lookup the version again. All relative URL API requests (e.g. `some/api/path`) will go to the corresponding API version that matches the version of the loaded static files, eliminating issues of incompatibility between static files and API deployments.\n\nFor development / testing purposes only, each version of an applicaton can be accessed directly via a URL of the pattern `[/{prefix}]/{appname}/{semver}/`. These \"versioned\" URLs are not intended to be advertised to end users as they would cause a user to be stuck on a particular version of the app if the URL was bookmarked. Note that the system does not limit access to particular versions of an application, as of 2022-01-26, but that can be added as a feature.\n\n# Table of Contents <!-- omit in toc -->\n\n- [Overview](#overview)\n- [Video Preview of the Deploying CDK Construct](#video-preview-of-the-deploying-cdk-construct)\n- [Installation / CDK Constructs](#installation--cdk-constructs)\n- [Tutorial - Bootstrapping a Deploy](#tutorial---bootstrapping-a-deploy)\n- [Why MicroApps](#why-microapps)\n- [Limitations / Future Development](#limitations--future-development)\n- [Related Projects / Components](#related-projects--components)\n- [Architecure Diagram](#architecure-diagram)\n- [Project Layout](#project-layout)\n- [Creating a MicroApp Using Zip Lambda Functions](#creating-a-microapp-using-zip-lambda-functions)\n- [Creating a MicroApp Using Docker Lambda Functions](#creating-a-microapp-using-docker-lambda-functions)\n - [Next.js Apps](#nextjs-apps)\n - [Modify package.json](#modify-packagejson)\n - [Install Dependencies](#install-dependencies)\n - [Dockerfile](#dockerfile)\n - [next.config.js](#nextconfigjs)\n - [deploy.json](#deployjson)\n - [serverless.yaml](#serverlessyaml)\n\n# Video Preview of the Deploying CDK Construct\n\n![Video Preview of Deploying](https://raw.githubusercontent.com/pwrdrvr/microapps-core/main/assets/videos/microapps-core-demo-deploy.gif)\n\n# Installation / CDK Constructs\n\n- `npm i --save-dev @pwrdrvr/microapps-cdk`\n- Add `MicroApps` construct to your stack\n- The `MicroApps` construct does a \"turn-key\" deployment complete with the Release app\n- [Construct Hub](https://constructs.dev/packages/@pwrdrvr/microapps-cdk/)\n - CDK API docs\n - Python, DotNet, Java, JS/TS installation instructions\n\n# Tutorial - Bootstrapping a Deploy\n\n- `git clone https://github.com/pwrdrvr/microapps-core.git`\n - Note: the repo is only being for the example CDK Stack, it is not necessary to clone the repo when used in a custom CDK Stack\n- `cd microapps-core`\n- `npm i -g aws-cdk`\n - Install AWS CDK v2 CLI\n- `asp [my-sso-profile-name]`\n - Using the `aws` plugin from `oh-my-zsh` for AWS SSO\n - Of course, there are other methods of setting env vars\n- `aws sso login`\n - Establish an AWS SSO session\n- `cdk-sso-sync`\n - Using `npm i -g cdk-sso-sync`\n - Sets AWS SSO credentials in a way that CDK can use them\n - Not necessary if not using AWS SSO\n- `export AWS_REGION=us-east-2`\n - Region needs to be set for the Lambda invoke - This can be done other ways in `~/.aws/config` as well\n- `./deploy.sh`\n - Deploys the CDK Stack\n - Essentially runs two commands along with extraction of outputs:\n - `npx cdk deploy --context @pwrdrvr/microapps:stackName=microapps-demo-deploy --context @pwrdrvr/microapps:deployReleaseApp=true microapps-basic`\n - `npx microapps-publish publish -a release -n ${RELEASE_APP_PACKAGE_VERSION} -d ${DEPLOYER_LAMBDA_NAME} -l ${RELEASE_APP_LAMBDA_NAME} -s node_modules/@pwrdrvr/microapps-app-release-cdk/lib/.static_files/release/${RELEASE_APP_PACKAGE_VERSION}/ --overwrite --noCache`\n - URL will be printed as last output\n\n# Why MicroApps\n\nMicroApps are like micro services, but for Web UIs. A MicroApp allows a single functional site to be developed by many independent teams within an organization. Teams must coordinate deployments and agree upon one implementation technology and framework when building a monolithic, or even a monorepo, web application.\n\nTeams using MicroApps can deploy independently of each other with coordination being required only at points of intentional integration (e.g. adding a feature to pass context from one MicroApp to another or coordination of a major feature release to users) and sharing UI styles, if desired (it is possible to build styles that look the same across many different UI frameworks).\n\nMicroApps also allow each team to use a UI framework and backend language that is most appropriate for their solving their business problem. Not every app has to use React or Next.js or even Node on the backend, but instead they can use whatever framework they want and Java, Go, C#, Python, etc. for UI API calls.\n\nFor internal sites, or logged-in-customer sites, different tools or products can be hosted in entirely independent MicroApps. A menuing system / toolbar application can be created as a MicroApp and that menu app can open the apps in the system within a transparent iframe. For externally facing sites, such as for an e-commerce site, it is possible to have a MicroApp serving `/product/...`, another serving `/search/...`, another serving `/`, etc.\n\n# Limitations / Future Development\n\n- `iframes`\n - Yeah, yeah: `iframes` are not framesets and most of the hate about iframes is probably better directed at framesets\n - The iframe serves a purpose but it stinks that it is there, primarily because it will cause issues with search bot indexing (SEO)\n - There are other options available to implement that have their own drabacks:\n - Using the `microapps-router` to proxy the \"app start\" request to a particular version of an app that then renders all of it's API resource requests to versioned URLs\n - Works only with frameworks that support hashing filenams for each deploy to unique names\n - This page would need to be marked as non-cachable\n - This may work well with Next.js which wants to know the explicit path that it will be running at (it writes that path into all resource and API requests)\n - Possible issue: the app would need to work ok being displayed at `[/{prefix}]/{appname}` when it may think that it's being displayed at `[/{prefix}]/{appname}/{semver}`\n - Disadvantage: requires some level of UI framework features (e.g. writing the absolute resource paths) to work correctly - may not work as easily for all UI frameworks\n - HTML5 added features to allow setting the relative path of all subsequent requests to be different than that displayed in the address bar\n - Gotta see if this works in modern browsers\n - Option to ditch the multiple-versions feature\n - Works only with frameworks that support hashing filenams for each deploy to unique names\n - Allows usage of the deploy and routing tooling without advantages and disadvantages of multiple-versions support\n- AWS Only\n - For the time being this has only been implemented for AWS technologies and APIs\n - It is possible that Azure and GCP have sufficient support to enable porting the framework\n - CDK would have to be replaced as well (unless it's made available for Azure and GCP in the near future)\n- `microapps-publish` only supports Lambda function apps\n - There is no technical reason for the apps to only run as Lambda functions\n - Web apps could just as easily run on EC2, Kubernetes, EKS, ECS, etc\n - Anything that API Gateway can route to can work for serving a MicroApp\n - The publish tool needs to provide additional options for setting up the API Gateway route to the app\n- Authentication\n - Authentication requires rolling your own API Gateway and CloudFront deployment at the moment\n - The \"turn key\" CDK Construct should provide options to show an example of how authentication can be integrated\n- Release Rules\n - Currently only a Default rule is supported\n - Need to evaluate if a generic implementation can be made, possibly allowing plugins or webhooks to support arbitrary rules\n - If not possible to make it perfectly generic, consider providing a more complete reference implementation of examples\n\n# Related Projects / Components\n\n- Release App\n - The Release app is an initial, rudimentary, release control console for setting the default version of an application\n - Built with Next.js\n - [pwrdrvr/microapps-app-release](https://github.com/pwrdrvr/microapps-app-release)\n- Next.js Demo App\n - The Next.js Tutorial application deployed as a MicroApp\n - [pwrdrvr/serverless-nextjs-demo](https://github.com/pwrdrvr/serverless-nextjs-demo)\n- Serverless Next.js Router\n - [pwrdrvr/serverless-nextjs-router](https://github.com/pwrdrvr/serverless-nextjs-router)\n - Complementary to [@sls-next/serverless-component](https://github.com/serverless-nextjs/serverless-next.js)\n - Allows Next.js apps to run as Lambda @ Origin for speed and cost improvements vs Lambda@Edge\n - Essentially the router translates CloudFront Lambda events to API Gateway Lambda events and vice versa for responses\n - The `serverless-nextjs` project allows Next.js apps to run as Lambda functions without Express, but there was a design change to make the Lambda functions run at Edge (note: need to recheck if this changed after early 2021)\n - Lambda@Edge is _at least_ 3x more expensive than Lambda at the origin:\n - In US East 1, the price per GB-Second is $0.00005001 for Lambda@Edge vs $0.0000166667 for Lambda at the origin\n - Additionally, any DB or services calls from Lambda@Edge back to the origin will pay that 3x higher per GB-Second cost for any time spent waiting to send the request and get a response. Example:\n - Lambda@Edge\n - 0.250s Round Trip Time (RTT) for EU-zone edge request to hit US-East 1 Origin\n - 0.200s DB lookup time\n - 0.050s CPU usage to process the DB response\n - 0.500s total billed time @ $0.00005001 @ 128 MB\n - $0.000003125625 total charge\n - Lambda at Origin\n - RTT does not apply (it's effectively 1-2 ms to hit a DB in the same region)\n - 0.200s DB lookup time\n - 0.050s CPU usage to process the DB response\n - 0.250s total billed time @ $0.0000166667 @ 128 MB\n - Half the billed time of running on Lambda@Edge\n - 1/6th the cost of running on Lambda@Edge:\n - $0.000000520834375 total charge (assuming no CPU time to process the response)\n - $0.000003125625 / $0.000000520834375 = 6x more expensive in Lambda@Edge\n\n# Architecure Diagram\n\n![Architecure Diagram](https://raw.githubusercontent.com/pwrdrvr/microapps-core/main/assets/images/architecture-diagram.png)\n\n# Project Layout\n\n- [packages/cdk](https://github.com/pwrdrvr/microapps-core/tree/main/packages/cdk)\n - Example CDK Stack\n - Deploys MicroApps CDK stack for the GitHub Workflows\n - Can be used as an example of how to use the MicroApps CDK Construct\n- [packages/demo-app](https://github.com/pwrdrvr/microapps-core/tree/main/packages/demo-app)\n - Example app with static resources and a Lambda function\n - Does not use any Web UI framework at all\n- [packages/microapps-cdk](https://github.com/pwrdrvr/microapps-core/tree/main/packages/microapps-cdk)\n - MicroApps\n - \"Turn key\" CDK Construct that creates all assets needed for a working MicroApps deployment\n - MicroAppsAPIGwy\n - Create APIGateway HTTP API\n - Creates domain names to point to the edge (Cloudfront) and origin (API Gateway)\n - MicroAppsCF\n - Creates Cloudfront distribution\n - MicroAppsS3\n - Creates S3 buckets\n - MicroAppsSvcs\n - Create DynamoDB table\n - Create Deployer Lambda function\n - Create Router Lambda function\n- [packages/microapps-datalib](https://github.com/pwrdrvr/microapps-core/tree/main/packages/microapps-datalib)\n - Installed from `npm`:\n - `npm i -g @pwrdrvr/microapps-datalib`\n - APIs for access to the DynamoDB Table used by `microapps-publish`, `microapps-deployer`, and `@pwrdrvr/microapps-app-release-cdk`\n- [packages/microapps-deployer](https://github.com/pwrdrvr/microapps-core/tree/main/packages/microapps-deployer)\n - Lambda service invoked by `microapps-publish` to record new app/version in the DynamoDB table, create API Gateway integrations, copy S3 assets from staging to prod bucket, etc.\n - Returns a temporary S3 token with restricted access to the staging S3 bucket for upload of the static files for one app/semver\n- [packages/microapps-publish](https://github.com/pwrdrvr/microapps-core/tree/main/packages/microapps-publish)\n - Installed from `npm`:\n - `npm i -g @pwrdrvr/microapps-publish`\n - Node executable that updates versions in config files, deploys static assets to the S3 staging bucket, optionally compiles and deploys a new Lambda function version, and invokes `microapps-deployer`\n - AWS IAM permissions required:\n - `lambda:InvokeFunction`\n- [packages/microapps-router](https://github.com/pwrdrvr/microapps-core/tree/main/packages/microapps-router)\n - Lambda function that determines which version of an app to point a user to on a particular invocation\n\n# Creating a MicroApp Using Zip Lambda Functions\n\n[TBC]\n\n# Creating a MicroApp Using Docker Lambda Functions\n\nNote: semi-deprecated as of 2022-01-27. Zip Lambda functions are better supported.\n\n## Next.js Apps\n\nCreate a Next.js app then follow the steps in this section to set it up for publishing to AWS Lambda @ Origin as a MicroApp. To publish new versions of the app use `npx microapps-publish --new-version x.y.z` when logged in to the target AWS account.\n\n### Modify package.json\n\nReplace the version with `0.0.0` so it can be modified by the `microapps-publish` tool.\n\n### Install Dependencies\n\n```\nnpm i --save-dev @sls-next/serverless-component@1.19.0 @pwrdrvr/serverless-nextjs-router @pwrdrvr/microapps-publish\n```\n\n### Dockerfile\n\nAdd this file to the root of the app.\n\n```Dockerfile\nFROM node:15-slim as base\n\nWORKDIR /app\n\n# Download the sharp libs once to save time\n# Do this before copying anything else in\nRUN mkdir -p image-lambda-npms && \\\n cd image-lambda-npms && npm i sharp && \\\n rm -rf node_modules/sharp/vendor/*/include/\n\n# Copy in the build output from `npx serverless`\nCOPY .serverless_nextjs .\nCOPY config.json .\n\n# Move the sharp libs into place\nRUN rm -rf image-lambda/node_modules/ && \\\n mv image-lambda-npms/node_modules image-labmda/ && \\\n rm -rf image-lambda-npms\n\nFROM public.ecr.aws/lambda/nodejs:14 AS final\n\n# Copy in the munged code\nCOPY --from=base /app .\n\nCMD [ \"./index.handler\" ]\n```\n\n### next.config.js\n\nAdd this file to the root of the app.\n\nReplace `appname` with your URL path-compatible application name.\n\n```js\nconst appRoot = '/appname/0.0.0';\n\n// eslint-disable-next-line no-undef\nmodule.exports = {\n target: 'serverless',\n webpack: (config, _options) => {\n return config;\n },\n basePath: appRoot,\n publicRuntimeConfig: {\n // Will be available on both server and client\n staticFolder: appRoot,\n },\n};\n```\n\n### deploy.json\n\nAdd this file to the root of the app.\n\nReplace `appname` with your URL path-compatible application name.\n\n```json\n{\n \"AppName\": \"appname\",\n \"SemVer\": \"0.0.0\",\n \"DefaultFile\": \"\",\n \"StaticAssetsPath\": \"./.serverless_nextjs/assets/appname/0.0.0/\",\n \"LambdaARN\": \"arn:aws:lambda:us-east-1:123456789012:function:appname:v0_0_0\",\n \"AWSAccountID\": \"123456789012\",\n \"AWSRegion\": \"us-east-2\",\n \"ServerlessNextRouterPath\": \"./node_modules/@pwrdrvr/serverless-nextjs-router/dist/index.js\"\n}\n```\n\n### serverless.yaml\n\nAdd this file to the root of the app.\n\n```yaml\nnextApp:\n component: './node_modules/@sls-next/serverless-component'\n inputs:\n deploy: false\n uploadStaticAssetsFromBuild: false\n```\n"
2907
2907
  },
2908
2908
  "repository": {
2909
2909
  "type": "git",
@@ -2935,26 +2935,27 @@
2935
2935
  "assembly": "@pwrdrvr/microapps-cdk",
2936
2936
  "datatype": true,
2937
2937
  "docs": {
2938
- "stability": "stable"
2938
+ "stability": "experimental",
2939
+ "summary": "Options for `AddRoutes`."
2939
2940
  },
2940
2941
  "fqn": "@pwrdrvr/microapps-cdk.AddRoutesOptions",
2941
2942
  "kind": "interface",
2942
2943
  "locationInModule": {
2943
2944
  "filename": "src/MicroAppsCF.ts",
2944
- "line": 118
2945
+ "line": 143
2945
2946
  },
2946
2947
  "name": "AddRoutesOptions",
2947
2948
  "properties": [
2948
2949
  {
2949
2950
  "abstract": true,
2950
2951
  "docs": {
2951
- "stability": "stable",
2952
+ "stability": "experimental",
2952
2953
  "summary": "API Gateway CloudFront Origin for API calls."
2953
2954
  },
2954
2955
  "immutable": true,
2955
2956
  "locationInModule": {
2956
2957
  "filename": "src/MicroAppsCF.ts",
2957
- "line": 122
2958
+ "line": 147
2958
2959
  },
2959
2960
  "name": "apiGwyOrigin",
2960
2961
  "type": {
@@ -2964,13 +2965,13 @@
2964
2965
  {
2965
2966
  "abstract": true,
2966
2967
  "docs": {
2967
- "stability": "stable",
2968
+ "stability": "experimental",
2968
2969
  "summary": "Origin Request policy for API Gateway Origin."
2969
2970
  },
2970
2971
  "immutable": true,
2971
2972
  "locationInModule": {
2972
2973
  "filename": "src/MicroAppsCF.ts",
2973
- "line": 137
2974
+ "line": 162
2974
2975
  },
2975
2976
  "name": "apigwyOriginRequestPolicy",
2976
2977
  "type": {
@@ -2980,13 +2981,13 @@
2980
2981
  {
2981
2982
  "abstract": true,
2982
2983
  "docs": {
2983
- "stability": "stable",
2984
+ "stability": "experimental",
2984
2985
  "summary": "S3 Bucket CloudFront Origin for static assets."
2985
2986
  },
2986
2987
  "immutable": true,
2987
2988
  "locationInModule": {
2988
2989
  "filename": "src/MicroAppsCF.ts",
2989
- "line": 127
2990
+ "line": 152
2990
2991
  },
2991
2992
  "name": "bucketAppsOrigin",
2992
2993
  "type": {
@@ -2996,13 +2997,13 @@
2996
2997
  {
2997
2998
  "abstract": true,
2998
2999
  "docs": {
2999
- "stability": "stable",
3000
+ "stability": "experimental",
3000
3001
  "summary": "CloudFront Distribution to add the Behaviors (Routes) to."
3001
3002
  },
3002
3003
  "immutable": true,
3003
3004
  "locationInModule": {
3004
3005
  "filename": "src/MicroAppsCF.ts",
3005
- "line": 132
3006
+ "line": 157
3006
3007
  },
3007
3008
  "name": "distro",
3008
3009
  "type": {
@@ -3014,13 +3015,13 @@
3014
3015
  "docs": {
3015
3016
  "default": "true",
3016
3017
  "remarks": "When false API routes with a period in the path will get routed to S3.\n\nWhen true API routes that contain /api/ in the path will get routed to API Gateway\neven if they have a period in the path.",
3017
- "stability": "stable",
3018
+ "stability": "experimental",
3018
3019
  "summary": "Create an extra Behavior (Route) for /api/ that allows API routes to have a period in them."
3019
3020
  },
3020
3021
  "immutable": true,
3021
3022
  "locationInModule": {
3022
3023
  "filename": "src/MicroAppsCF.ts",
3023
- "line": 157
3024
+ "line": 182
3024
3025
  },
3025
3026
  "name": "createAPIPathRoute",
3026
3027
  "optional": true,
@@ -3032,13 +3033,13 @@
3032
3033
  "abstract": true,
3033
3034
  "docs": {
3034
3035
  "example": "dev/",
3035
- "stability": "stable",
3036
+ "stability": "experimental",
3036
3037
  "summary": "Path prefix on the root of the CloudFront distribution."
3037
3038
  },
3038
3039
  "immutable": true,
3039
3040
  "locationInModule": {
3040
3041
  "filename": "src/MicroAppsCF.ts",
3041
- "line": 144
3042
+ "line": 169
3042
3043
  },
3043
3044
  "name": "rootPathPrefix",
3044
3045
  "optional": true,
@@ -3053,25 +3054,29 @@
3053
3054
  "assembly": "@pwrdrvr/microapps-cdk",
3054
3055
  "datatype": true,
3055
3056
  "docs": {
3056
- "stability": "stable"
3057
+ "stability": "experimental",
3058
+ "summary": "Options for the `CreateAPIOriginPolicy`."
3057
3059
  },
3058
3060
  "fqn": "@pwrdrvr/microapps-cdk.CreateAPIOriginPolicyOptions",
3059
3061
  "kind": "interface",
3060
3062
  "locationInModule": {
3061
3063
  "filename": "src/MicroAppsCF.ts",
3062
- "line": 106
3064
+ "line": 115
3063
3065
  },
3064
3066
  "name": "CreateAPIOriginPolicyOptions",
3065
3067
  "properties": [
3066
3068
  {
3067
3069
  "abstract": true,
3068
3070
  "docs": {
3069
- "stability": "stable"
3071
+ "default": "- resource names auto assigned",
3072
+ "example": "microapps",
3073
+ "stability": "experimental",
3074
+ "summary": "Optional asset name root."
3070
3075
  },
3071
3076
  "immutable": true,
3072
3077
  "locationInModule": {
3073
3078
  "filename": "src/MicroAppsCF.ts",
3074
- "line": 107
3079
+ "line": 122
3075
3080
  },
3076
3081
  "name": "assetNameRoot",
3077
3082
  "optional": true,
@@ -3082,12 +3087,15 @@
3082
3087
  {
3083
3088
  "abstract": true,
3084
3089
  "docs": {
3085
- "stability": "stable"
3090
+ "default": "none",
3091
+ "example": "-dev-pr-12",
3092
+ "stability": "experimental",
3093
+ "summary": "Optional asset name suffix."
3086
3094
  },
3087
3095
  "immutable": true,
3088
3096
  "locationInModule": {
3089
3097
  "filename": "src/MicroAppsCF.ts",
3090
- "line": 108
3098
+ "line": 130
3091
3099
  },
3092
3100
  "name": "assetNameSuffix",
3093
3101
  "optional": true,
@@ -3098,13 +3106,13 @@
3098
3106
  {
3099
3107
  "abstract": true,
3100
3108
  "docs": {
3101
- "stability": "stable",
3109
+ "stability": "experimental",
3102
3110
  "summary": "Edge domain name used by CloudFront - If set a custom OriginRequestPolicy will be created that prevents the Host header from being passed to the origin."
3103
3111
  },
3104
3112
  "immutable": true,
3105
3113
  "locationInModule": {
3106
3114
  "filename": "src/MicroAppsCF.ts",
3107
- "line": 115
3115
+ "line": 137
3108
3116
  },
3109
3117
  "name": "domainNameEdge",
3110
3118
  "optional": true,
@@ -3118,25 +3126,27 @@
3118
3126
  "@pwrdrvr/microapps-cdk.IMicroApps": {
3119
3127
  "assembly": "@pwrdrvr/microapps-cdk",
3120
3128
  "docs": {
3121
- "stability": "stable"
3129
+ "stability": "experimental",
3130
+ "summary": "Represents a MicroApps."
3122
3131
  },
3123
3132
  "fqn": "@pwrdrvr/microapps-cdk.IMicroApps",
3124
3133
  "kind": "interface",
3125
3134
  "locationInModule": {
3126
3135
  "filename": "src/MicroApps.ts",
3127
- "line": 172
3136
+ "line": 195
3128
3137
  },
3129
3138
  "name": "IMicroApps",
3130
3139
  "properties": [
3131
3140
  {
3132
3141
  "abstract": true,
3133
3142
  "docs": {
3134
- "stability": "stable"
3143
+ "stability": "experimental",
3144
+ "summary": "{@inheritdoc IMicroAppsAPIGwy}."
3135
3145
  },
3136
3146
  "immutable": true,
3137
3147
  "locationInModule": {
3138
3148
  "filename": "src/MicroApps.ts",
3139
- "line": 176
3149
+ "line": 206
3140
3150
  },
3141
3151
  "name": "apigwy",
3142
3152
  "type": {
@@ -3146,12 +3156,13 @@
3146
3156
  {
3147
3157
  "abstract": true,
3148
3158
  "docs": {
3149
- "stability": "stable"
3159
+ "stability": "experimental",
3160
+ "summary": "{@inheritdoc IMicroAppsCF}."
3150
3161
  },
3151
3162
  "immutable": true,
3152
3163
  "locationInModule": {
3153
3164
  "filename": "src/MicroApps.ts",
3154
- "line": 173
3165
+ "line": 197
3155
3166
  },
3156
3167
  "name": "cf",
3157
3168
  "type": {
@@ -3161,12 +3172,13 @@
3161
3172
  {
3162
3173
  "abstract": true,
3163
3174
  "docs": {
3164
- "stability": "stable"
3175
+ "stability": "experimental",
3176
+ "summary": "{@inheritdoc IMicroAppsS3}."
3165
3177
  },
3166
3178
  "immutable": true,
3167
3179
  "locationInModule": {
3168
3180
  "filename": "src/MicroApps.ts",
3169
- "line": 174
3181
+ "line": 200
3170
3182
  },
3171
3183
  "name": "s3",
3172
3184
  "type": {
@@ -3176,12 +3188,13 @@
3176
3188
  {
3177
3189
  "abstract": true,
3178
3190
  "docs": {
3179
- "stability": "stable"
3191
+ "stability": "experimental",
3192
+ "summary": "{@inheritdoc IMicroAppsSvcs}."
3180
3193
  },
3181
3194
  "immutable": true,
3182
3195
  "locationInModule": {
3183
3196
  "filename": "src/MicroApps.ts",
3184
- "line": 175
3197
+ "line": 203
3185
3198
  },
3186
3199
  "name": "svcs",
3187
3200
  "type": {
@@ -3194,26 +3207,27 @@
3194
3207
  "@pwrdrvr/microapps-cdk.IMicroAppsAPIGwy": {
3195
3208
  "assembly": "@pwrdrvr/microapps-cdk",
3196
3209
  "docs": {
3197
- "stability": "stable"
3210
+ "stability": "experimental",
3211
+ "summary": "Represents a MicroApps API Gateway."
3198
3212
  },
3199
3213
  "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsAPIGwy",
3200
3214
  "kind": "interface",
3201
3215
  "locationInModule": {
3202
3216
  "filename": "src/MicroAppsAPIGwy.ts",
3203
- "line": 75
3217
+ "line": 81
3204
3218
  },
3205
3219
  "name": "IMicroAppsAPIGwy",
3206
3220
  "properties": [
3207
3221
  {
3208
3222
  "abstract": true,
3209
3223
  "docs": {
3210
- "stability": "stable",
3224
+ "stability": "experimental",
3211
3225
  "summary": "API Gateway."
3212
3226
  },
3213
3227
  "immutable": true,
3214
3228
  "locationInModule": {
3215
3229
  "filename": "src/MicroAppsAPIGwy.ts",
3216
- "line": 84
3230
+ "line": 90
3217
3231
  },
3218
3232
  "name": "httpApi",
3219
3233
  "type": {
@@ -3223,13 +3237,13 @@
3223
3237
  {
3224
3238
  "abstract": true,
3225
3239
  "docs": {
3226
- "stability": "stable",
3240
+ "stability": "experimental",
3227
3241
  "summary": "Domain Name applied to API Gateway origin."
3228
3242
  },
3229
3243
  "immutable": true,
3230
3244
  "locationInModule": {
3231
3245
  "filename": "src/MicroAppsAPIGwy.ts",
3232
- "line": 79
3246
+ "line": 85
3233
3247
  },
3234
3248
  "name": "dnAppsOrigin",
3235
3249
  "optional": true,
@@ -3243,25 +3257,26 @@
3243
3257
  "@pwrdrvr/microapps-cdk.IMicroAppsCF": {
3244
3258
  "assembly": "@pwrdrvr/microapps-cdk",
3245
3259
  "docs": {
3246
- "stability": "stable"
3260
+ "stability": "experimental",
3261
+ "summary": "Represents a MicroApps CloudFront."
3247
3262
  },
3248
3263
  "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsCF",
3249
3264
  "kind": "interface",
3250
3265
  "locationInModule": {
3251
3266
  "filename": "src/MicroAppsCF.ts",
3252
- "line": 14
3267
+ "line": 17
3253
3268
  },
3254
3269
  "name": "IMicroAppsCF",
3255
3270
  "properties": [
3256
3271
  {
3257
3272
  "abstract": true,
3258
3273
  "docs": {
3259
- "stability": "stable"
3274
+ "stability": "experimental"
3260
3275
  },
3261
3276
  "immutable": true,
3262
3277
  "locationInModule": {
3263
3278
  "filename": "src/MicroAppsCF.ts",
3264
- "line": 15
3279
+ "line": 18
3265
3280
  },
3266
3281
  "name": "cloudFrontDistro",
3267
3282
  "type": {
@@ -3274,26 +3289,27 @@
3274
3289
  "@pwrdrvr/microapps-cdk.IMicroAppsS3": {
3275
3290
  "assembly": "@pwrdrvr/microapps-cdk",
3276
3291
  "docs": {
3277
- "stability": "stable"
3292
+ "stability": "experimental",
3293
+ "summary": "Represents a MicroApps S3."
3278
3294
  },
3279
3295
  "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
3280
3296
  "kind": "interface",
3281
3297
  "locationInModule": {
3282
3298
  "filename": "src/MicroAppsS3.ts",
3283
- "line": 7
3299
+ "line": 10
3284
3300
  },
3285
3301
  "name": "IMicroAppsS3",
3286
3302
  "properties": [
3287
3303
  {
3288
3304
  "abstract": true,
3289
3305
  "docs": {
3290
- "stability": "stable",
3306
+ "stability": "experimental",
3291
3307
  "summary": "S3 bucket for deployed applications."
3292
3308
  },
3293
3309
  "immutable": true,
3294
3310
  "locationInModule": {
3295
3311
  "filename": "src/MicroAppsS3.ts",
3296
- "line": 11
3312
+ "line": 14
3297
3313
  },
3298
3314
  "name": "bucketApps",
3299
3315
  "type": {
@@ -3303,13 +3319,13 @@
3303
3319
  {
3304
3320
  "abstract": true,
3305
3321
  "docs": {
3306
- "stability": "stable",
3322
+ "stability": "experimental",
3307
3323
  "summary": "CloudFront Origin Access Identity for the deployed applications bucket."
3308
3324
  },
3309
3325
  "immutable": true,
3310
3326
  "locationInModule": {
3311
3327
  "filename": "src/MicroAppsS3.ts",
3312
- "line": 16
3328
+ "line": 19
3313
3329
  },
3314
3330
  "name": "bucketAppsOAI",
3315
3331
  "type": {
@@ -3319,13 +3335,13 @@
3319
3335
  {
3320
3336
  "abstract": true,
3321
3337
  "docs": {
3322
- "stability": "stable",
3338
+ "stability": "experimental",
3323
3339
  "summary": "CloudFront Origin for the deployed applications bucket."
3324
3340
  },
3325
3341
  "immutable": true,
3326
3342
  "locationInModule": {
3327
3343
  "filename": "src/MicroAppsS3.ts",
3328
- "line": 21
3344
+ "line": 24
3329
3345
  },
3330
3346
  "name": "bucketAppsOrigin",
3331
3347
  "type": {
@@ -3335,13 +3351,13 @@
3335
3351
  {
3336
3352
  "abstract": true,
3337
3353
  "docs": {
3338
- "stability": "stable",
3354
+ "stability": "experimental",
3339
3355
  "summary": "S3 bucket for staged applications (prior to deploy)."
3340
3356
  },
3341
3357
  "immutable": true,
3342
3358
  "locationInModule": {
3343
3359
  "filename": "src/MicroAppsS3.ts",
3344
- "line": 26
3360
+ "line": 29
3345
3361
  },
3346
3362
  "name": "bucketAppsStaging",
3347
3363
  "type": {
@@ -3351,13 +3367,13 @@
3351
3367
  {
3352
3368
  "abstract": true,
3353
3369
  "docs": {
3354
- "stability": "stable",
3370
+ "stability": "experimental",
3355
3371
  "summary": "S3 bucket for CloudFront logs."
3356
3372
  },
3357
3373
  "immutable": true,
3358
3374
  "locationInModule": {
3359
3375
  "filename": "src/MicroAppsS3.ts",
3360
- "line": 31
3376
+ "line": 34
3361
3377
  },
3362
3378
  "name": "bucketLogs",
3363
3379
  "type": {
@@ -3370,26 +3386,27 @@
3370
3386
  "@pwrdrvr/microapps-cdk.IMicroAppsSvcs": {
3371
3387
  "assembly": "@pwrdrvr/microapps-cdk",
3372
3388
  "docs": {
3373
- "stability": "stable"
3389
+ "stability": "experimental",
3390
+ "summary": "Represents a MicroApps Services."
3374
3391
  },
3375
3392
  "fqn": "@pwrdrvr/microapps-cdk.IMicroAppsSvcs",
3376
3393
  "kind": "interface",
3377
3394
  "locationInModule": {
3378
3395
  "filename": "src/MicroAppsSvcs.ts",
3379
- "line": 113
3396
+ "line": 193
3380
3397
  },
3381
3398
  "name": "IMicroAppsSvcs",
3382
3399
  "properties": [
3383
3400
  {
3384
3401
  "abstract": true,
3385
3402
  "docs": {
3386
- "stability": "stable",
3403
+ "stability": "experimental",
3387
3404
  "summary": "Lambda function for the Deployer."
3388
3405
  },
3389
3406
  "immutable": true,
3390
3407
  "locationInModule": {
3391
3408
  "filename": "src/MicroAppsSvcs.ts",
3392
- "line": 122
3409
+ "line": 202
3393
3410
  },
3394
3411
  "name": "deployerFunc",
3395
3412
  "type": {
@@ -3399,13 +3416,29 @@
3399
3416
  {
3400
3417
  "abstract": true,
3401
3418
  "docs": {
3402
- "stability": "stable",
3419
+ "stability": "experimental",
3420
+ "summary": "Lambda function for the Router."
3421
+ },
3422
+ "immutable": true,
3423
+ "locationInModule": {
3424
+ "filename": "src/MicroAppsSvcs.ts",
3425
+ "line": 207
3426
+ },
3427
+ "name": "routerFunc",
3428
+ "type": {
3429
+ "fqn": "aws-cdk-lib.aws_lambda.IFunction"
3430
+ }
3431
+ },
3432
+ {
3433
+ "abstract": true,
3434
+ "docs": {
3435
+ "stability": "experimental",
3403
3436
  "summary": "DynamoDB table used by Router, Deployer, and Release console app."
3404
3437
  },
3405
3438
  "immutable": true,
3406
3439
  "locationInModule": {
3407
3440
  "filename": "src/MicroAppsSvcs.ts",
3408
- "line": 117
3441
+ "line": 197
3409
3442
  },
3410
3443
  "name": "table",
3411
3444
  "type": {
@@ -3419,19 +3452,19 @@
3419
3452
  "assembly": "@pwrdrvr/microapps-cdk",
3420
3453
  "base": "constructs.Construct",
3421
3454
  "docs": {
3422
- "stability": "stable",
3423
- "summary": "Application deployment and runtime environment."
3455
+ "remarks": "Use this construct to create a working entire stack.\n\nDo not use this construct when adding MicroApps to an existing\nCloudFront, API Gateway, S3 Bucket, etc. or where access\nto all features of the AWS Resources are needed (e.g. to\nadd additional Behaviors to the CloudFront distribution, set authorizors\non API Gateway, etc.).",
3456
+ "see": "{@link https://github.com/pwrdrvr/microapps-core/blob/main/packages/cdk/lib/MicroApps.ts | example usage in a CDK Stack }",
3457
+ "stability": "experimental",
3458
+ "summary": "Create a new MicroApps \"turnkey\" construct for simple deployments and for initial evaulation of the MicroApps framework."
3424
3459
  },
3425
3460
  "fqn": "@pwrdrvr/microapps-cdk.MicroApps",
3426
3461
  "initializer": {
3427
3462
  "docs": {
3428
- "remarks": "This is the \"Easy Button\" construct to get started as quickly as possible.",
3429
- "stability": "stable",
3430
- "summary": "MicroApps - Create entire stack of CloudFront, S3, API Gateway, and Lambda Functions."
3463
+ "stability": "experimental"
3431
3464
  },
3432
3465
  "locationInModule": {
3433
3466
  "filename": "src/MicroApps.ts",
3434
- "line": 211
3467
+ "line": 244
3435
3468
  },
3436
3469
  "parameters": [
3437
3470
  {
@@ -3461,18 +3494,19 @@
3461
3494
  "kind": "class",
3462
3495
  "locationInModule": {
3463
3496
  "filename": "src/MicroApps.ts",
3464
- "line": 182
3497
+ "line": 223
3465
3498
  },
3466
3499
  "name": "MicroApps",
3467
3500
  "properties": [
3468
3501
  {
3469
3502
  "docs": {
3470
- "stability": "stable"
3503
+ "stability": "experimental",
3504
+ "summary": "{@inheritdoc IMicroAppsAPIGwy}."
3471
3505
  },
3472
3506
  "immutable": true,
3473
3507
  "locationInModule": {
3474
3508
  "filename": "src/MicroApps.ts",
3475
- "line": 194
3509
+ "line": 235
3476
3510
  },
3477
3511
  "name": "apigwy",
3478
3512
  "overrides": "@pwrdrvr/microapps-cdk.IMicroApps",
@@ -3482,12 +3516,13 @@
3482
3516
  },
3483
3517
  {
3484
3518
  "docs": {
3485
- "stability": "stable"
3519
+ "stability": "experimental",
3520
+ "summary": "{@inheritdoc IMicroAppsCF}."
3486
3521
  },
3487
3522
  "immutable": true,
3488
3523
  "locationInModule": {
3489
3524
  "filename": "src/MicroApps.ts",
3490
- "line": 184
3525
+ "line": 225
3491
3526
  },
3492
3527
  "name": "cf",
3493
3528
  "overrides": "@pwrdrvr/microapps-cdk.IMicroApps",
@@ -3497,12 +3532,13 @@
3497
3532
  },
3498
3533
  {
3499
3534
  "docs": {
3500
- "stability": "stable"
3535
+ "stability": "experimental",
3536
+ "summary": "{@inheritdoc IMicroAppsS3}."
3501
3537
  },
3502
3538
  "immutable": true,
3503
3539
  "locationInModule": {
3504
3540
  "filename": "src/MicroApps.ts",
3505
- "line": 189
3541
+ "line": 230
3506
3542
  },
3507
3543
  "name": "s3",
3508
3544
  "overrides": "@pwrdrvr/microapps-cdk.IMicroApps",
@@ -3512,12 +3548,13 @@
3512
3548
  },
3513
3549
  {
3514
3550
  "docs": {
3515
- "stability": "stable"
3551
+ "stability": "experimental",
3552
+ "summary": "{@inheritdoc IMicroAppsSvcs}."
3516
3553
  },
3517
3554
  "immutable": true,
3518
3555
  "locationInModule": {
3519
3556
  "filename": "src/MicroApps.ts",
3520
- "line": 199
3557
+ "line": 240
3521
3558
  },
3522
3559
  "name": "svcs",
3523
3560
  "overrides": "@pwrdrvr/microapps-cdk.IMicroApps",
@@ -3532,17 +3569,17 @@
3532
3569
  "assembly": "@pwrdrvr/microapps-cdk",
3533
3570
  "base": "constructs.Construct",
3534
3571
  "docs": {
3535
- "stability": "stable"
3572
+ "stability": "experimental",
3573
+ "summary": "Create a new MicroApps API Gateway HTTP API endpoint."
3536
3574
  },
3537
3575
  "fqn": "@pwrdrvr/microapps-cdk.MicroAppsAPIGwy",
3538
3576
  "initializer": {
3539
3577
  "docs": {
3540
- "stability": "stable",
3541
- "summary": "MicroApps - Create just API Gateway."
3578
+ "stability": "experimental"
3542
3579
  },
3543
3580
  "locationInModule": {
3544
3581
  "filename": "src/MicroAppsAPIGwy.ts",
3545
- "line": 104
3582
+ "line": 107
3546
3583
  },
3547
3584
  "parameters": [
3548
3585
  {
@@ -3572,19 +3609,19 @@
3572
3609
  "kind": "class",
3573
3610
  "locationInModule": {
3574
3611
  "filename": "src/MicroAppsAPIGwy.ts",
3575
- "line": 87
3612
+ "line": 96
3576
3613
  },
3577
3614
  "name": "MicroAppsAPIGwy",
3578
3615
  "properties": [
3579
3616
  {
3580
3617
  "docs": {
3581
- "stability": "stable",
3618
+ "stability": "experimental",
3582
3619
  "summary": "API Gateway."
3583
3620
  },
3584
3621
  "immutable": true,
3585
3622
  "locationInModule": {
3586
3623
  "filename": "src/MicroAppsAPIGwy.ts",
3587
- "line": 94
3624
+ "line": 103
3588
3625
  },
3589
3626
  "name": "httpApi",
3590
3627
  "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsAPIGwy",
@@ -3594,13 +3631,13 @@
3594
3631
  },
3595
3632
  {
3596
3633
  "docs": {
3597
- "stability": "stable",
3634
+ "stability": "experimental",
3598
3635
  "summary": "Domain Name applied to API Gateway origin."
3599
3636
  },
3600
3637
  "immutable": true,
3601
3638
  "locationInModule": {
3602
3639
  "filename": "src/MicroAppsAPIGwy.ts",
3603
- "line": 89
3640
+ "line": 98
3604
3641
  },
3605
3642
  "name": "dnAppsOrigin",
3606
3643
  "optional": true,
@@ -3616,13 +3653,14 @@
3616
3653
  "assembly": "@pwrdrvr/microapps-cdk",
3617
3654
  "datatype": true,
3618
3655
  "docs": {
3619
- "stability": "stable"
3656
+ "stability": "experimental",
3657
+ "summary": "Properties to initialize an instance of `MicroAppsAPIGwy`."
3620
3658
  },
3621
3659
  "fqn": "@pwrdrvr/microapps-cdk.MicroAppsAPIGwyProps",
3622
3660
  "kind": "interface",
3623
3661
  "locationInModule": {
3624
3662
  "filename": "src/MicroAppsAPIGwy.ts",
3625
- "line": 11
3663
+ "line": 14
3626
3664
  },
3627
3665
  "name": "MicroAppsAPIGwyProps",
3628
3666
  "properties": [
@@ -3631,13 +3669,13 @@
3631
3669
  "docs": {
3632
3670
  "default": "- resource names auto assigned",
3633
3671
  "example": "microapps",
3634
- "stability": "stable",
3672
+ "stability": "experimental",
3635
3673
  "summary": "Optional asset name root."
3636
3674
  },
3637
3675
  "immutable": true,
3638
3676
  "locationInModule": {
3639
3677
  "filename": "src/MicroAppsAPIGwy.ts",
3640
- "line": 43
3678
+ "line": 46
3641
3679
  },
3642
3680
  "name": "assetNameRoot",
3643
3681
  "optional": true,
@@ -3650,13 +3688,13 @@
3650
3688
  "docs": {
3651
3689
  "default": "none",
3652
3690
  "example": "-dev-pr-12",
3653
- "stability": "stable",
3691
+ "stability": "experimental",
3654
3692
  "summary": "Optional asset name suffix."
3655
3693
  },
3656
3694
  "immutable": true,
3657
3695
  "locationInModule": {
3658
3696
  "filename": "src/MicroAppsAPIGwy.ts",
3659
- "line": 51
3697
+ "line": 54
3660
3698
  },
3661
3699
  "name": "assetNameSuffix",
3662
3700
  "optional": true,
@@ -3668,13 +3706,13 @@
3668
3706
  "abstract": true,
3669
3707
  "docs": {
3670
3708
  "default": "none",
3671
- "stability": "stable",
3709
+ "stability": "experimental",
3672
3710
  "summary": "Optional local region ACM certificate to use for API Gateway Note: required when using a custom domain."
3673
3711
  },
3674
3712
  "immutable": true,
3675
3713
  "locationInModule": {
3676
3714
  "filename": "src/MicroAppsAPIGwy.ts",
3677
- "line": 59
3715
+ "line": 62
3678
3716
  },
3679
3717
  "name": "certOrigin",
3680
3718
  "optional": true,
@@ -3687,13 +3725,13 @@
3687
3725
  "docs": {
3688
3726
  "default": "auto-assigned",
3689
3727
  "example": "apps.pwrdrvr.com",
3690
- "stability": "stable",
3728
+ "stability": "experimental",
3691
3729
  "summary": "CloudFront edge domain name."
3692
3730
  },
3693
3731
  "immutable": true,
3694
3732
  "locationInModule": {
3695
3733
  "filename": "src/MicroAppsAPIGwy.ts",
3696
- "line": 27
3734
+ "line": 30
3697
3735
  },
3698
3736
  "name": "domainNameEdge",
3699
3737
  "optional": true,
@@ -3706,13 +3744,13 @@
3706
3744
  "docs": {
3707
3745
  "default": "auto-assigned",
3708
3746
  "example": "apps-origin.pwrdrvr.com",
3709
- "stability": "stable",
3747
+ "stability": "experimental",
3710
3748
  "summary": "API Gateway origin domain name."
3711
3749
  },
3712
3750
  "immutable": true,
3713
3751
  "locationInModule": {
3714
3752
  "filename": "src/MicroAppsAPIGwy.ts",
3715
- "line": 35
3753
+ "line": 38
3716
3754
  },
3717
3755
  "name": "domainNameOrigin",
3718
3756
  "optional": true,
@@ -3723,13 +3761,13 @@
3723
3761
  {
3724
3762
  "abstract": true,
3725
3763
  "docs": {
3726
- "stability": "stable",
3764
+ "stability": "experimental",
3727
3765
  "summary": "Route53 zone in which to create optional `domainNameEdge` record."
3728
3766
  },
3729
3767
  "immutable": true,
3730
3768
  "locationInModule": {
3731
3769
  "filename": "src/MicroAppsAPIGwy.ts",
3732
- "line": 64
3770
+ "line": 67
3733
3771
  },
3734
3772
  "name": "r53Zone",
3735
3773
  "optional": true,
@@ -3742,13 +3780,13 @@
3742
3780
  "docs": {
3743
3781
  "default": "- per resource default",
3744
3782
  "remarks": "Note: if set to DESTROY the S3 buckes will have `autoDeleteObjects` set to `true`",
3745
- "stability": "stable",
3783
+ "stability": "experimental",
3746
3784
  "summary": "RemovalPolicy override for child resources."
3747
3785
  },
3748
3786
  "immutable": true,
3749
3787
  "locationInModule": {
3750
3788
  "filename": "src/MicroAppsAPIGwy.ts",
3751
- "line": 19
3789
+ "line": 22
3752
3790
  },
3753
3791
  "name": "removalPolicy",
3754
3792
  "optional": true,
@@ -3761,13 +3799,13 @@
3761
3799
  "docs": {
3762
3800
  "default": "none",
3763
3801
  "example": "dev/",
3764
- "stability": "stable",
3802
+ "stability": "experimental",
3765
3803
  "summary": "Path prefix on the root of the API Gateway Stage."
3766
3804
  },
3767
3805
  "immutable": true,
3768
3806
  "locationInModule": {
3769
3807
  "filename": "src/MicroAppsAPIGwy.ts",
3770
- "line": 72
3808
+ "line": 75
3771
3809
  },
3772
3810
  "name": "rootPathPrefix",
3773
3811
  "optional": true,
@@ -3782,17 +3820,17 @@
3782
3820
  "assembly": "@pwrdrvr/microapps-cdk",
3783
3821
  "base": "constructs.Construct",
3784
3822
  "docs": {
3785
- "stability": "stable"
3823
+ "stability": "experimental",
3824
+ "summary": "Create a new MicroApps CloudFront Distribution."
3786
3825
  },
3787
3826
  "fqn": "@pwrdrvr/microapps-cdk.MicroAppsCF",
3788
3827
  "initializer": {
3789
3828
  "docs": {
3790
- "stability": "stable",
3791
- "summary": "MicroApps - Create just CloudFront resources."
3829
+ "stability": "experimental"
3792
3830
  },
3793
3831
  "locationInModule": {
3794
3832
  "filename": "src/MicroAppsCF.ts",
3795
- "line": 284
3833
+ "line": 306
3796
3834
  },
3797
3835
  "parameters": [
3798
3836
  {
@@ -3821,17 +3859,17 @@
3821
3859
  "kind": "class",
3822
3860
  "locationInModule": {
3823
3861
  "filename": "src/MicroAppsCF.ts",
3824
- "line": 160
3862
+ "line": 188
3825
3863
  },
3826
3864
  "methods": [
3827
3865
  {
3828
3866
  "docs": {
3829
- "stability": "stable",
3867
+ "stability": "experimental",
3830
3868
  "summary": "Add API Gateway and S3 routes to an existing CloudFront Distribution."
3831
3869
  },
3832
3870
  "locationInModule": {
3833
3871
  "filename": "src/MicroAppsCF.ts",
3834
- "line": 214
3872
+ "line": 242
3835
3873
  },
3836
3874
  "name": "addRoutes",
3837
3875
  "parameters": [
@@ -3853,12 +3891,12 @@
3853
3891
  {
3854
3892
  "docs": {
3855
3893
  "remarks": "If a custom domain name is NOT used for the origin then a policy\nwill be created.\n\nIf a custom domain name IS used for the origin then the ALL_VIEWER\npolicy will be returned. This policy passes the Host header to the\norigin, which is fine when using a custom domain name on the origin.",
3856
- "stability": "stable",
3894
+ "stability": "experimental",
3857
3895
  "summary": "Create or get the origin request policy."
3858
3896
  },
3859
3897
  "locationInModule": {
3860
3898
  "filename": "src/MicroAppsCF.ts",
3861
- "line": 174
3899
+ "line": 202
3862
3900
  },
3863
3901
  "name": "createAPIOriginPolicy",
3864
3902
  "parameters": [
@@ -3887,12 +3925,12 @@
3887
3925
  "properties": [
3888
3926
  {
3889
3927
  "docs": {
3890
- "stability": "stable"
3928
+ "stability": "experimental"
3891
3929
  },
3892
3930
  "immutable": true,
3893
3931
  "locationInModule": {
3894
3932
  "filename": "src/MicroAppsCF.ts",
3895
- "line": 274
3933
+ "line": 302
3896
3934
  },
3897
3935
  "name": "cloudFrontDistro",
3898
3936
  "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsCF",
@@ -3907,26 +3945,27 @@
3907
3945
  "assembly": "@pwrdrvr/microapps-cdk",
3908
3946
  "datatype": true,
3909
3947
  "docs": {
3910
- "stability": "stable"
3948
+ "stability": "experimental",
3949
+ "summary": "Properties to initialize an instance of `MicroAppsCF`."
3911
3950
  },
3912
3951
  "fqn": "@pwrdrvr/microapps-cdk.MicroAppsCFProps",
3913
3952
  "kind": "interface",
3914
3953
  "locationInModule": {
3915
3954
  "filename": "src/MicroAppsCF.ts",
3916
- "line": 18
3955
+ "line": 24
3917
3956
  },
3918
3957
  "name": "MicroAppsCFProps",
3919
3958
  "properties": [
3920
3959
  {
3921
3960
  "abstract": true,
3922
3961
  "docs": {
3923
- "stability": "stable",
3962
+ "stability": "experimental",
3924
3963
  "summary": "S3 bucket origin for deployed applications."
3925
3964
  },
3926
3965
  "immutable": true,
3927
3966
  "locationInModule": {
3928
3967
  "filename": "src/MicroAppsCF.ts",
3929
- "line": 31
3968
+ "line": 37
3930
3969
  },
3931
3970
  "name": "bucketAppsOrigin",
3932
3971
  "type": {
@@ -3936,13 +3975,13 @@
3936
3975
  {
3937
3976
  "abstract": true,
3938
3977
  "docs": {
3939
- "stability": "stable",
3978
+ "stability": "experimental",
3940
3979
  "summary": "API Gateway v2 HTTP API for apps."
3941
3980
  },
3942
3981
  "immutable": true,
3943
3982
  "locationInModule": {
3944
3983
  "filename": "src/MicroAppsCF.ts",
3945
- "line": 57
3984
+ "line": 63
3946
3985
  },
3947
3986
  "name": "httpApi",
3948
3987
  "type": {
@@ -3954,13 +3993,13 @@
3954
3993
  "docs": {
3955
3994
  "default": "- resource names auto assigned",
3956
3995
  "example": "microapps",
3957
- "stability": "stable",
3996
+ "stability": "experimental",
3958
3997
  "summary": "Optional asset name root."
3959
3998
  },
3960
3999
  "immutable": true,
3961
4000
  "locationInModule": {
3962
4001
  "filename": "src/MicroAppsCF.ts",
3963
- "line": 65
4002
+ "line": 71
3964
4003
  },
3965
4004
  "name": "assetNameRoot",
3966
4005
  "optional": true,
@@ -3973,13 +4012,13 @@
3973
4012
  "docs": {
3974
4013
  "default": "none",
3975
4014
  "example": "-dev-pr-12",
3976
- "stability": "stable",
4015
+ "stability": "experimental",
3977
4016
  "summary": "Optional asset name suffix."
3978
4017
  },
3979
4018
  "immutable": true,
3980
4019
  "locationInModule": {
3981
4020
  "filename": "src/MicroAppsCF.ts",
3982
- "line": 73
4021
+ "line": 79
3983
4022
  },
3984
4023
  "name": "assetNameSuffix",
3985
4024
  "optional": true,
@@ -3990,13 +4029,13 @@
3990
4029
  {
3991
4030
  "abstract": true,
3992
4031
  "docs": {
3993
- "stability": "stable",
4032
+ "stability": "experimental",
3994
4033
  "summary": "S3 bucket for CloudFront logs."
3995
4034
  },
3996
4035
  "immutable": true,
3997
4036
  "locationInModule": {
3998
4037
  "filename": "src/MicroAppsCF.ts",
3999
- "line": 36
4038
+ "line": 42
4000
4039
  },
4001
4040
  "name": "bucketLogs",
4002
4041
  "optional": true,
@@ -4007,13 +4046,13 @@
4007
4046
  {
4008
4047
  "abstract": true,
4009
4048
  "docs": {
4010
- "stability": "stable",
4049
+ "stability": "experimental",
4011
4050
  "summary": "ACM Certificate that covers `domainNameEdge` name."
4012
4051
  },
4013
4052
  "immutable": true,
4014
4053
  "locationInModule": {
4015
4054
  "filename": "src/MicroAppsCF.ts",
4016
- "line": 78
4055
+ "line": 84
4017
4056
  },
4018
4057
  "name": "certEdge",
4019
4058
  "optional": true,
@@ -4026,13 +4065,13 @@
4026
4065
  "docs": {
4027
4066
  "default": "true",
4028
4067
  "remarks": "When false API routes with a period in the path will get routed to S3.\n\nWhen true API routes that contain /api/ in the path will get routed to API Gateway\neven if they have a period in the path.",
4029
- "stability": "stable",
4068
+ "stability": "experimental",
4030
4069
  "summary": "Create an extra Behavior (Route) for /api/ that allows API routes to have a period in them."
4031
4070
  },
4032
4071
  "immutable": true,
4033
4072
  "locationInModule": {
4034
4073
  "filename": "src/MicroAppsCF.ts",
4035
- "line": 103
4074
+ "line": 109
4036
4075
  },
4037
4076
  "name": "createAPIPathRoute",
4038
4077
  "optional": true,
@@ -4045,13 +4084,13 @@
4045
4084
  "docs": {
4046
4085
  "default": "auto-assigned",
4047
4086
  "example": "apps.pwrdrvr.com",
4048
- "stability": "stable",
4087
+ "stability": "experimental",
4049
4088
  "summary": "CloudFront Distribution domain name."
4050
4089
  },
4051
4090
  "immutable": true,
4052
4091
  "locationInModule": {
4053
4092
  "filename": "src/MicroAppsCF.ts",
4054
- "line": 44
4093
+ "line": 50
4055
4094
  },
4056
4095
  "name": "domainNameEdge",
4057
4096
  "optional": true,
@@ -4064,13 +4103,13 @@
4064
4103
  "docs": {
4065
4104
  "default": "- retrieved from httpApi, if possible",
4066
4105
  "example": "apps.pwrdrvr.com",
4067
- "stability": "stable",
4106
+ "stability": "experimental",
4068
4107
  "summary": "API Gateway custom origin domain name."
4069
4108
  },
4070
4109
  "immutable": true,
4071
4110
  "locationInModule": {
4072
4111
  "filename": "src/MicroAppsCF.ts",
4073
- "line": 52
4112
+ "line": 58
4074
4113
  },
4075
4114
  "name": "domainNameOrigin",
4076
4115
  "optional": true,
@@ -4081,13 +4120,13 @@
4081
4120
  {
4082
4121
  "abstract": true,
4083
4122
  "docs": {
4084
- "stability": "stable",
4123
+ "stability": "experimental",
4085
4124
  "summary": "Route53 zone in which to create optional `domainNameEdge` record."
4086
4125
  },
4087
4126
  "immutable": true,
4088
4127
  "locationInModule": {
4089
4128
  "filename": "src/MicroAppsCF.ts",
4090
- "line": 83
4129
+ "line": 89
4091
4130
  },
4092
4131
  "name": "r53Zone",
4093
4132
  "optional": true,
@@ -4100,13 +4139,13 @@
4100
4139
  "docs": {
4101
4140
  "default": "- per resource default",
4102
4141
  "remarks": "Note: if set to DESTROY the S3 buckes will have `autoDeleteObjects` set to `true`",
4103
- "stability": "stable",
4142
+ "stability": "experimental",
4104
4143
  "summary": "RemovalPolicy override for child resources."
4105
4144
  },
4106
4145
  "immutable": true,
4107
4146
  "locationInModule": {
4108
4147
  "filename": "src/MicroAppsCF.ts",
4109
- "line": 26
4148
+ "line": 32
4110
4149
  },
4111
4150
  "name": "removalPolicy",
4112
4151
  "optional": true,
@@ -4118,13 +4157,13 @@
4118
4157
  "abstract": true,
4119
4158
  "docs": {
4120
4159
  "example": "dev/",
4121
- "stability": "stable",
4160
+ "stability": "experimental",
4122
4161
  "summary": "Path prefix on the root of the CloudFront distribution."
4123
4162
  },
4124
4163
  "immutable": true,
4125
4164
  "locationInModule": {
4126
4165
  "filename": "src/MicroAppsCF.ts",
4127
- "line": 90
4166
+ "line": 96
4128
4167
  },
4129
4168
  "name": "rootPathPrefix",
4130
4169
  "optional": true,
@@ -4139,14 +4178,14 @@
4139
4178
  "assembly": "@pwrdrvr/microapps-cdk",
4140
4179
  "datatype": true,
4141
4180
  "docs": {
4142
- "stability": "stable",
4143
- "summary": "Props for MicroApps."
4181
+ "stability": "experimental",
4182
+ "summary": "Properties to initialize an instance of `MicroApps`."
4144
4183
  },
4145
4184
  "fqn": "@pwrdrvr/microapps-cdk.MicroAppsProps",
4146
4185
  "kind": "interface",
4147
4186
  "locationInModule": {
4148
4187
  "filename": "src/MicroApps.ts",
4149
- "line": 14
4188
+ "line": 36
4150
4189
  },
4151
4190
  "name": "MicroAppsProps",
4152
4191
  "properties": [
@@ -4154,13 +4193,13 @@
4154
4193
  "abstract": true,
4155
4194
  "docs": {
4156
4195
  "default": "dev",
4157
- "stability": "stable",
4196
+ "stability": "experimental",
4158
4197
  "summary": "Passed to NODE_ENV of Router and Deployer Lambda functions."
4159
4198
  },
4160
4199
  "immutable": true,
4161
4200
  "locationInModule": {
4162
4201
  "filename": "src/MicroApps.ts",
4163
- "line": 29
4202
+ "line": 51
4164
4203
  },
4165
4204
  "name": "appEnv",
4166
4205
  "type": {
@@ -4172,13 +4211,13 @@
4172
4211
  "docs": {
4173
4212
  "default": "- resource names auto assigned",
4174
4213
  "example": "microapps",
4175
- "stability": "stable",
4214
+ "stability": "experimental",
4176
4215
  "summary": "Optional asset name root."
4177
4216
  },
4178
4217
  "immutable": true,
4179
4218
  "locationInModule": {
4180
4219
  "filename": "src/MicroApps.ts",
4181
- "line": 37
4220
+ "line": 59
4182
4221
  },
4183
4222
  "name": "assetNameRoot",
4184
4223
  "optional": true,
@@ -4191,13 +4230,13 @@
4191
4230
  "docs": {
4192
4231
  "default": "none",
4193
4232
  "example": "-dev-pr-12",
4194
- "stability": "stable",
4233
+ "stability": "experimental",
4195
4234
  "summary": "Optional asset name suffix."
4196
4235
  },
4197
4236
  "immutable": true,
4198
4237
  "locationInModule": {
4199
4238
  "filename": "src/MicroApps.ts",
4200
- "line": 45
4239
+ "line": 67
4201
4240
  },
4202
4241
  "name": "assetNameSuffix",
4203
4242
  "optional": true,
@@ -4208,13 +4247,13 @@
4208
4247
  {
4209
4248
  "abstract": true,
4210
4249
  "docs": {
4211
- "stability": "stable",
4250
+ "stability": "experimental",
4212
4251
  "summary": "Certificate in US-East-1 for the CloudFront distribution."
4213
4252
  },
4214
4253
  "immutable": true,
4215
4254
  "locationInModule": {
4216
4255
  "filename": "src/MicroApps.ts",
4217
- "line": 56
4256
+ "line": 77
4218
4257
  },
4219
4258
  "name": "certEdge",
4220
4259
  "optional": true,
@@ -4225,13 +4264,13 @@
4225
4264
  {
4226
4265
  "abstract": true,
4227
4266
  "docs": {
4228
- "stability": "stable",
4267
+ "stability": "experimental",
4229
4268
  "summary": "Certificate in deployed region for the API Gateway."
4230
4269
  },
4231
4270
  "immutable": true,
4232
4271
  "locationInModule": {
4233
4272
  "filename": "src/MicroApps.ts",
4234
- "line": 62
4273
+ "line": 82
4235
4274
  },
4236
4275
  "name": "certOrigin",
4237
4276
  "optional": true,
@@ -4244,13 +4283,13 @@
4244
4283
  "docs": {
4245
4284
  "default": "true",
4246
4285
  "remarks": "When false API routes with a period in the path will get routed to S3.\n\nWhen true API routes that contain /api/ in the path will get routed to API Gateway\neven if they have a period in the path.",
4247
- "stability": "stable",
4286
+ "stability": "experimental",
4248
4287
  "summary": "Create an extra Behavior (Route) for /api/ that allows API routes to have a period in them."
4249
4288
  },
4250
4289
  "immutable": true,
4251
4290
  "locationInModule": {
4252
4291
  "filename": "src/MicroApps.ts",
4253
- "line": 169
4292
+ "line": 189
4254
4293
  },
4255
4294
  "name": "createAPIPathRoute",
4256
4295
  "optional": true,
@@ -4263,13 +4302,13 @@
4263
4302
  "docs": {
4264
4303
  "default": "auto-assigned",
4265
4304
  "example": "apps.pwrdrvr.com",
4266
- "stability": "stable",
4305
+ "stability": "experimental",
4267
4306
  "summary": "Optional custom domain name for the CloudFront distribution."
4268
4307
  },
4269
4308
  "immutable": true,
4270
4309
  "locationInModule": {
4271
4310
  "filename": "src/MicroApps.ts",
4272
- "line": 141
4311
+ "line": 161
4273
4312
  },
4274
4313
  "name": "domainNameEdge",
4275
4314
  "optional": true,
@@ -4282,13 +4321,13 @@
4282
4321
  "docs": {
4283
4322
  "default": "auto-assigned",
4284
4323
  "example": "apps-origin.pwrdrvr.com",
4285
- "stability": "stable",
4324
+ "stability": "experimental",
4286
4325
  "summary": "Optional custom domain name for the API Gateway HTTPv2 API."
4287
4326
  },
4288
4327
  "immutable": true,
4289
4328
  "locationInModule": {
4290
4329
  "filename": "src/MicroApps.ts",
4291
- "line": 149
4330
+ "line": 169
4292
4331
  },
4293
4332
  "name": "domainNameOrigin",
4294
4333
  "optional": true,
@@ -4299,13 +4338,13 @@
4299
4338
  {
4300
4339
  "abstract": true,
4301
4340
  "docs": {
4302
- "stability": "stable",
4341
+ "stability": "experimental",
4303
4342
  "summary": "Route53 zone in which to create optional `domainNameEdge` record."
4304
4343
  },
4305
4344
  "immutable": true,
4306
4345
  "locationInModule": {
4307
4346
  "filename": "src/MicroApps.ts",
4308
- "line": 50
4347
+ "line": 72
4309
4348
  },
4310
4349
  "name": "r53Zone",
4311
4350
  "optional": true,
@@ -4318,13 +4357,13 @@
4318
4357
  "docs": {
4319
4358
  "default": "- per resource default",
4320
4359
  "remarks": "Note: if set to DESTROY the S3 buckes will have `autoDeleteObjects` set to `true`",
4321
- "stability": "stable",
4360
+ "stability": "experimental",
4322
4361
  "summary": "RemovalPolicy override for child resources."
4323
4362
  },
4324
4363
  "immutable": true,
4325
4364
  "locationInModule": {
4326
4365
  "filename": "src/MicroApps.ts",
4327
- "line": 22
4366
+ "line": 44
4328
4367
  },
4329
4368
  "name": "removalPolicy",
4330
4369
  "optional": true,
@@ -4336,13 +4375,13 @@
4336
4375
  "abstract": true,
4337
4376
  "docs": {
4338
4377
  "example": "dev/",
4339
- "stability": "stable",
4378
+ "stability": "experimental",
4340
4379
  "summary": "Path prefix on the root of the CloudFront distribution."
4341
4380
  },
4342
4381
  "immutable": true,
4343
4382
  "locationInModule": {
4344
4383
  "filename": "src/MicroApps.ts",
4345
- "line": 156
4384
+ "line": 176
4346
4385
  },
4347
4386
  "name": "rootPathPrefix",
4348
4387
  "optional": true,
@@ -4356,13 +4395,13 @@
4356
4395
  "example": "[ 'AROA1234567890123' ]",
4357
4396
  "remarks": "AROAs of the IAM Role to exclude from the DENY rules on the S3 Bucket Policy.\nThis allows sessions that assume the IAM Role to be excluded from the\nDENY rules on the S3 Bucket Policy.\n\nTypically any admin roles / users that need to view or manage the S3 Bucket\nwould be added to this list.\n\nRoles / users that are used directly, not assumed, can be added to `s3PolicyBypassRoleNames` instead.\n\nNote: This AROA must be specified to prevent this policy from locking\nout non-root sessions that have assumed the admin role.\n\nThe notPrincipals will only match the role name exactly and will not match\nany session that has assumed the role since notPrincipals does not allow\nwildcard matches and does not do wildcard matches implicitly either.\n\nThe AROA must be used because there are only 3 Principal variables available:\n https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable\n aws:username, aws:userid, aws:PrincipalTag\n\nFor an assumed role, aws:username is blank, aws:userid is:\n [unique id AKA AROA for Role]:[session name]\n\nTable of unique ID prefixes such as AROA:\n https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-prefixes\n\nThe name of the role is simply not available for an assumed role and, if it was,\na complicated comparison would be requierd to prevent exclusion\nof applying the Deny Rule to roles from other accounts.\n\nTo get the AROA with the AWS CLI:\n aws iam get-role --role-name ROLE-NAME\n aws iam get-user -–user-name USER-NAME",
4358
4397
  "see": "s3StrictBucketPolicy",
4359
- "stability": "stable",
4398
+ "stability": "experimental",
4360
4399
  "summary": "Applies when using s3StrictBucketPolicy = true."
4361
4400
  },
4362
4401
  "immutable": true,
4363
4402
  "locationInModule": {
4364
4403
  "filename": "src/MicroApps.ts",
4365
- "line": 133
4404
+ "line": 153
4366
4405
  },
4367
4406
  "name": "s3PolicyBypassAROAs",
4368
4407
  "optional": true,
@@ -4381,13 +4420,13 @@
4381
4420
  "example": "['arn:aws:iam::1234567890123:role/AdminAccess', 'arn:aws:iam::1234567890123:user/MyAdminUser']",
4382
4421
  "remarks": "IAM Role or IAM User names to exclude from the DENY rules on the S3 Bucket Policy.\n\nRoles that are Assumed must instead have their AROA added to `s3PolicyBypassAROAs`.\n\nTypically any admin roles / users that need to view or manage the S3 Bucket\nwould be added to this list.",
4383
4422
  "see": "s3PolicyBypassAROAs",
4384
- "stability": "stable",
4423
+ "stability": "experimental",
4385
4424
  "summary": "Applies when using s3StrictBucketPolicy = true."
4386
4425
  },
4387
4426
  "immutable": true,
4388
4427
  "locationInModule": {
4389
4428
  "filename": "src/MicroApps.ts",
4390
- "line": 90
4429
+ "line": 110
4391
4430
  },
4392
4431
  "name": "s3PolicyBypassPrincipalARNs",
4393
4432
  "optional": true,
@@ -4405,13 +4444,13 @@
4405
4444
  "docs": {
4406
4445
  "default": "false",
4407
4446
  "remarks": "This setting should be used when applications are less than\nfully trusted.",
4408
- "stability": "stable",
4447
+ "stability": "experimental",
4409
4448
  "summary": "Use a strict S3 Bucket Policy that prevents applications from reading/writing/modifying/deleting files in the S3 Bucket outside of the path that is specific to their app/version."
4410
4449
  },
4411
4450
  "immutable": true,
4412
4451
  "locationInModule": {
4413
4452
  "filename": "src/MicroApps.ts",
4414
- "line": 74
4453
+ "line": 94
4415
4454
  },
4416
4455
  "name": "s3StrictBucketPolicy",
4417
4456
  "optional": true,
@@ -4426,17 +4465,17 @@
4426
4465
  "assembly": "@pwrdrvr/microapps-cdk",
4427
4466
  "base": "constructs.Construct",
4428
4467
  "docs": {
4429
- "stability": "stable"
4468
+ "stability": "experimental",
4469
+ "summary": "Create a new MicroApps S3 Bucket."
4430
4470
  },
4431
4471
  "fqn": "@pwrdrvr/microapps-cdk.MicroAppsS3",
4432
4472
  "initializer": {
4433
4473
  "docs": {
4434
- "stability": "stable",
4435
- "summary": "MicroApps - Create just S3 resources."
4474
+ "stability": "experimental"
4436
4475
  },
4437
4476
  "locationInModule": {
4438
4477
  "filename": "src/MicroAppsS3.ts",
4439
- "line": 114
4478
+ "line": 117
4440
4479
  },
4441
4480
  "parameters": [
4442
4481
  {
@@ -4466,19 +4505,19 @@
4466
4505
  "kind": "class",
4467
4506
  "locationInModule": {
4468
4507
  "filename": "src/MicroAppsS3.ts",
4469
- "line": 82
4508
+ "line": 91
4470
4509
  },
4471
4510
  "name": "MicroAppsS3",
4472
4511
  "properties": [
4473
4512
  {
4474
4513
  "docs": {
4475
- "stability": "stable",
4514
+ "stability": "experimental",
4476
4515
  "summary": "S3 bucket for deployed applications."
4477
4516
  },
4478
4517
  "immutable": true,
4479
4518
  "locationInModule": {
4480
4519
  "filename": "src/MicroAppsS3.ts",
4481
- "line": 84
4520
+ "line": 93
4482
4521
  },
4483
4522
  "name": "bucketApps",
4484
4523
  "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
@@ -4488,13 +4527,13 @@
4488
4527
  },
4489
4528
  {
4490
4529
  "docs": {
4491
- "stability": "stable",
4530
+ "stability": "experimental",
4492
4531
  "summary": "CloudFront Origin Access Identity for the deployed applications bucket."
4493
4532
  },
4494
4533
  "immutable": true,
4495
4534
  "locationInModule": {
4496
4535
  "filename": "src/MicroAppsS3.ts",
4497
- "line": 89
4536
+ "line": 98
4498
4537
  },
4499
4538
  "name": "bucketAppsOAI",
4500
4539
  "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
@@ -4504,13 +4543,13 @@
4504
4543
  },
4505
4544
  {
4506
4545
  "docs": {
4507
- "stability": "stable",
4546
+ "stability": "experimental",
4508
4547
  "summary": "CloudFront Origin for the deployed applications bucket."
4509
4548
  },
4510
4549
  "immutable": true,
4511
4550
  "locationInModule": {
4512
4551
  "filename": "src/MicroAppsS3.ts",
4513
- "line": 94
4552
+ "line": 103
4514
4553
  },
4515
4554
  "name": "bucketAppsOrigin",
4516
4555
  "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
@@ -4520,13 +4559,13 @@
4520
4559
  },
4521
4560
  {
4522
4561
  "docs": {
4523
- "stability": "stable",
4562
+ "stability": "experimental",
4524
4563
  "summary": "S3 bucket for staged applications (prior to deploy)."
4525
4564
  },
4526
4565
  "immutable": true,
4527
4566
  "locationInModule": {
4528
4567
  "filename": "src/MicroAppsS3.ts",
4529
- "line": 99
4568
+ "line": 108
4530
4569
  },
4531
4570
  "name": "bucketAppsStaging",
4532
4571
  "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
@@ -4536,13 +4575,13 @@
4536
4575
  },
4537
4576
  {
4538
4577
  "docs": {
4539
- "stability": "stable",
4578
+ "stability": "experimental",
4540
4579
  "summary": "S3 bucket for CloudFront logs."
4541
4580
  },
4542
4581
  "immutable": true,
4543
4582
  "locationInModule": {
4544
4583
  "filename": "src/MicroAppsS3.ts",
4545
- "line": 104
4584
+ "line": 113
4546
4585
  },
4547
4586
  "name": "bucketLogs",
4548
4587
  "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsS3",
@@ -4557,13 +4596,14 @@
4557
4596
  "assembly": "@pwrdrvr/microapps-cdk",
4558
4597
  "datatype": true,
4559
4598
  "docs": {
4560
- "stability": "stable"
4599
+ "stability": "experimental",
4600
+ "summary": "Properties to initialize an instance of `MicroAppsS3`."
4561
4601
  },
4562
4602
  "fqn": "@pwrdrvr/microapps-cdk.MicroAppsS3Props",
4563
4603
  "kind": "interface",
4564
4604
  "locationInModule": {
4565
4605
  "filename": "src/MicroAppsS3.ts",
4566
- "line": 34
4606
+ "line": 40
4567
4607
  },
4568
4608
  "name": "MicroAppsS3Props",
4569
4609
  "properties": [
@@ -4572,13 +4612,13 @@
4572
4612
  "docs": {
4573
4613
  "default": "- resource names auto assigned",
4574
4614
  "example": "microapps",
4575
- "stability": "stable",
4615
+ "stability": "experimental",
4576
4616
  "summary": "Optional asset name root."
4577
4617
  },
4578
4618
  "immutable": true,
4579
4619
  "locationInModule": {
4580
4620
  "filename": "src/MicroAppsS3.ts",
4581
- "line": 71
4621
+ "line": 77
4582
4622
  },
4583
4623
  "name": "assetNameRoot",
4584
4624
  "optional": true,
@@ -4591,13 +4631,13 @@
4591
4631
  "docs": {
4592
4632
  "default": "none",
4593
4633
  "example": "-dev-pr-12",
4594
- "stability": "stable",
4634
+ "stability": "experimental",
4595
4635
  "summary": "Optional asset name suffix."
4596
4636
  },
4597
4637
  "immutable": true,
4598
4638
  "locationInModule": {
4599
4639
  "filename": "src/MicroAppsS3.ts",
4600
- "line": 79
4640
+ "line": 85
4601
4641
  },
4602
4642
  "name": "assetNameSuffix",
4603
4643
  "optional": true,
@@ -4609,13 +4649,13 @@
4609
4649
  "abstract": true,
4610
4650
  "docs": {
4611
4651
  "default": "auto-assigned",
4612
- "stability": "stable",
4652
+ "stability": "experimental",
4613
4653
  "summary": "S3 deployed apps bucket name."
4614
4654
  },
4615
4655
  "immutable": true,
4616
4656
  "locationInModule": {
4617
4657
  "filename": "src/MicroAppsS3.ts",
4618
- "line": 49
4658
+ "line": 55
4619
4659
  },
4620
4660
  "name": "bucketAppsName",
4621
4661
  "optional": true,
@@ -4627,13 +4667,13 @@
4627
4667
  "abstract": true,
4628
4668
  "docs": {
4629
4669
  "default": "auto-assigned",
4630
- "stability": "stable",
4670
+ "stability": "experimental",
4631
4671
  "summary": "S3 staging apps bucket name."
4632
4672
  },
4633
4673
  "immutable": true,
4634
4674
  "locationInModule": {
4635
4675
  "filename": "src/MicroAppsS3.ts",
4636
- "line": 56
4676
+ "line": 62
4637
4677
  },
4638
4678
  "name": "bucketAppsStagingName",
4639
4679
  "optional": true,
@@ -4645,13 +4685,13 @@
4645
4685
  "abstract": true,
4646
4686
  "docs": {
4647
4687
  "default": "auto-assigned",
4648
- "stability": "stable",
4688
+ "stability": "experimental",
4649
4689
  "summary": "S3 logs bucket name."
4650
4690
  },
4651
4691
  "immutable": true,
4652
4692
  "locationInModule": {
4653
4693
  "filename": "src/MicroAppsS3.ts",
4654
- "line": 63
4694
+ "line": 69
4655
4695
  },
4656
4696
  "name": "bucketLogsName",
4657
4697
  "optional": true,
@@ -4663,14 +4703,14 @@
4663
4703
  "abstract": true,
4664
4704
  "docs": {
4665
4705
  "default": "- per resource default",
4666
- "remarks": "Note: if set to DESTROY the S3 buckes will have `autoDeleteObjects` set to `true`",
4667
- "stability": "stable",
4706
+ "remarks": "Note: if set to DESTROY the S3 buckets will have `autoDeleteObjects` set to `true`",
4707
+ "stability": "experimental",
4668
4708
  "summary": "RemovalPolicy override for child resources."
4669
4709
  },
4670
4710
  "immutable": true,
4671
4711
  "locationInModule": {
4672
4712
  "filename": "src/MicroAppsS3.ts",
4673
- "line": 42
4713
+ "line": 48
4674
4714
  },
4675
4715
  "name": "removalPolicy",
4676
4716
  "optional": true,
@@ -4685,17 +4725,17 @@
4685
4725
  "assembly": "@pwrdrvr/microapps-cdk",
4686
4726
  "base": "constructs.Construct",
4687
4727
  "docs": {
4688
- "stability": "stable"
4728
+ "stability": "experimental",
4729
+ "summary": "Create a new MicroApps Services construct, including the Deployer and Router Lambda Functions, and the DynamoDB Table used by both."
4689
4730
  },
4690
4731
  "fqn": "@pwrdrvr/microapps-cdk.MicroAppsSvcs",
4691
4732
  "initializer": {
4692
4733
  "docs": {
4693
- "stability": "stable",
4694
- "summary": "MicroApps - Create Lambda resources, DynamoDB, and grant S3 privs."
4734
+ "stability": "experimental"
4695
4735
  },
4696
4736
  "locationInModule": {
4697
4737
  "filename": "src/MicroAppsSvcs.ts",
4698
- "line": 142
4738
+ "line": 230
4699
4739
  },
4700
4740
  "parameters": [
4701
4741
  {
@@ -4725,19 +4765,19 @@
4725
4765
  "kind": "class",
4726
4766
  "locationInModule": {
4727
4767
  "filename": "src/MicroAppsSvcs.ts",
4728
- "line": 125
4768
+ "line": 214
4729
4769
  },
4730
4770
  "name": "MicroAppsSvcs",
4731
4771
  "properties": [
4732
4772
  {
4733
4773
  "docs": {
4734
- "stability": "stable",
4774
+ "stability": "experimental",
4735
4775
  "summary": "Lambda function for the Deployer."
4736
4776
  },
4737
4777
  "immutable": true,
4738
4778
  "locationInModule": {
4739
4779
  "filename": "src/MicroAppsSvcs.ts",
4740
- "line": 132
4780
+ "line": 221
4741
4781
  },
4742
4782
  "name": "deployerFunc",
4743
4783
  "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsSvcs",
@@ -4747,13 +4787,29 @@
4747
4787
  },
4748
4788
  {
4749
4789
  "docs": {
4750
- "stability": "stable",
4790
+ "stability": "experimental",
4791
+ "summary": "Lambda function for the Router."
4792
+ },
4793
+ "immutable": true,
4794
+ "locationInModule": {
4795
+ "filename": "src/MicroAppsSvcs.ts",
4796
+ "line": 226
4797
+ },
4798
+ "name": "routerFunc",
4799
+ "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsSvcs",
4800
+ "type": {
4801
+ "fqn": "aws-cdk-lib.aws_lambda.IFunction"
4802
+ }
4803
+ },
4804
+ {
4805
+ "docs": {
4806
+ "stability": "experimental",
4751
4807
  "summary": "DynamoDB table used by Router, Deployer, and Release console app."
4752
4808
  },
4753
4809
  "immutable": true,
4754
4810
  "locationInModule": {
4755
4811
  "filename": "src/MicroAppsSvcs.ts",
4756
- "line": 127
4812
+ "line": 216
4757
4813
  },
4758
4814
  "name": "table",
4759
4815
  "overrides": "@pwrdrvr/microapps-cdk.IMicroAppsSvcs",
@@ -4768,25 +4824,27 @@
4768
4824
  "assembly": "@pwrdrvr/microapps-cdk",
4769
4825
  "datatype": true,
4770
4826
  "docs": {
4771
- "stability": "stable"
4827
+ "stability": "experimental",
4828
+ "summary": "Properties to initialize an instance of `MicroAppsSvcs`."
4772
4829
  },
4773
4830
  "fqn": "@pwrdrvr/microapps-cdk.MicroAppsSvcsProps",
4774
4831
  "kind": "interface",
4775
4832
  "locationInModule": {
4776
4833
  "filename": "src/MicroAppsSvcs.ts",
4777
- "line": 52
4834
+ "line": 58
4778
4835
  },
4779
4836
  "name": "MicroAppsSvcsProps",
4780
4837
  "properties": [
4781
4838
  {
4782
4839
  "abstract": true,
4783
4840
  "docs": {
4784
- "stability": "stable"
4841
+ "stability": "experimental",
4842
+ "summary": "Application environment, passed as `NODE_ENV` to the Router and Deployer Lambda functions."
4785
4843
  },
4786
4844
  "immutable": true,
4787
4845
  "locationInModule": {
4788
4846
  "filename": "src/MicroAppsSvcs.ts",
4789
- "line": 82
4847
+ "line": 92
4790
4848
  },
4791
4849
  "name": "appEnv",
4792
4850
  "type": {
@@ -4796,13 +4854,13 @@
4796
4854
  {
4797
4855
  "abstract": true,
4798
4856
  "docs": {
4799
- "stability": "stable",
4857
+ "stability": "experimental",
4800
4858
  "summary": "S3 bucket for deployed applications."
4801
4859
  },
4802
4860
  "immutable": true,
4803
4861
  "locationInModule": {
4804
4862
  "filename": "src/MicroAppsSvcs.ts",
4805
- "line": 65
4863
+ "line": 71
4806
4864
  },
4807
4865
  "name": "bucketApps",
4808
4866
  "type": {
@@ -4812,13 +4870,13 @@
4812
4870
  {
4813
4871
  "abstract": true,
4814
4872
  "docs": {
4815
- "stability": "stable",
4873
+ "stability": "experimental",
4816
4874
  "summary": "CloudFront Origin Access Identity for the deployed applications bucket."
4817
4875
  },
4818
4876
  "immutable": true,
4819
4877
  "locationInModule": {
4820
4878
  "filename": "src/MicroAppsSvcs.ts",
4821
- "line": 70
4879
+ "line": 76
4822
4880
  },
4823
4881
  "name": "bucketAppsOAI",
4824
4882
  "type": {
@@ -4828,13 +4886,13 @@
4828
4886
  {
4829
4887
  "abstract": true,
4830
4888
  "docs": {
4831
- "stability": "stable",
4889
+ "stability": "experimental",
4832
4890
  "summary": "S3 bucket for staged applications (prior to deploy)."
4833
4891
  },
4834
4892
  "immutable": true,
4835
4893
  "locationInModule": {
4836
4894
  "filename": "src/MicroAppsSvcs.ts",
4837
- "line": 75
4895
+ "line": 81
4838
4896
  },
4839
4897
  "name": "bucketAppsStaging",
4840
4898
  "type": {
@@ -4844,13 +4902,13 @@
4844
4902
  {
4845
4903
  "abstract": true,
4846
4904
  "docs": {
4847
- "stability": "stable",
4905
+ "stability": "experimental",
4848
4906
  "summary": "API Gateway v2 HTTP for Router and app."
4849
4907
  },
4850
4908
  "immutable": true,
4851
4909
  "locationInModule": {
4852
4910
  "filename": "src/MicroAppsSvcs.ts",
4853
- "line": 80
4911
+ "line": 86
4854
4912
  },
4855
4913
  "name": "httpApi",
4856
4914
  "type": {
@@ -4862,13 +4920,13 @@
4862
4920
  "docs": {
4863
4921
  "default": "- resource names auto assigned",
4864
4922
  "example": "microapps",
4865
- "stability": "stable",
4923
+ "stability": "experimental",
4866
4924
  "summary": "Optional asset name root."
4867
4925
  },
4868
4926
  "immutable": true,
4869
4927
  "locationInModule": {
4870
4928
  "filename": "src/MicroAppsSvcs.ts",
4871
- "line": 90
4929
+ "line": 100
4872
4930
  },
4873
4931
  "name": "assetNameRoot",
4874
4932
  "optional": true,
@@ -4881,13 +4939,13 @@
4881
4939
  "docs": {
4882
4940
  "default": "none",
4883
4941
  "example": "-dev-pr-12",
4884
- "stability": "stable",
4942
+ "stability": "experimental",
4885
4943
  "summary": "Optional asset name suffix."
4886
4944
  },
4887
4945
  "immutable": true,
4888
4946
  "locationInModule": {
4889
4947
  "filename": "src/MicroAppsSvcs.ts",
4890
- "line": 98
4948
+ "line": 108
4891
4949
  },
4892
4950
  "name": "assetNameSuffix",
4893
4951
  "optional": true,
@@ -4900,13 +4958,13 @@
4900
4958
  "docs": {
4901
4959
  "default": "- per resource default",
4902
4960
  "remarks": "Note: if set to DESTROY the S3 buckes will have `autoDeleteObjects` set to `true`",
4903
- "stability": "stable",
4961
+ "stability": "experimental",
4904
4962
  "summary": "RemovalPolicy override for child resources."
4905
4963
  },
4906
4964
  "immutable": true,
4907
4965
  "locationInModule": {
4908
4966
  "filename": "src/MicroAppsSvcs.ts",
4909
- "line": 60
4967
+ "line": 66
4910
4968
  },
4911
4969
  "name": "removalPolicy",
4912
4970
  "optional": true,
@@ -4919,13 +4977,13 @@
4919
4977
  "docs": {
4920
4978
  "default": "none",
4921
4979
  "example": "dev/",
4922
- "stability": "stable",
4980
+ "stability": "experimental",
4923
4981
  "summary": "Path prefix on the root of the deployment."
4924
4982
  },
4925
4983
  "immutable": true,
4926
4984
  "locationInModule": {
4927
4985
  "filename": "src/MicroAppsSvcs.ts",
4928
- "line": 110
4986
+ "line": 187
4929
4987
  },
4930
4988
  "name": "rootPathPrefix",
4931
4989
  "optional": true,
@@ -4936,12 +4994,16 @@
4936
4994
  {
4937
4995
  "abstract": true,
4938
4996
  "docs": {
4939
- "stability": "stable"
4997
+ "example": "[ 'AROA1234567890123' ]",
4998
+ "remarks": "AROAs of the IAM Role to exclude from the DENY rules on the S3 Bucket Policy.\nThis allows sessions that assume the IAM Role to be excluded from the\nDENY rules on the S3 Bucket Policy.\n\nTypically any admin roles / users that need to view or manage the S3 Bucket\nwould be added to this list.\n\nRoles / users that are used directly, not assumed, can be added to `s3PolicyBypassRoleNames` instead.\n\nNote: This AROA must be specified to prevent this policy from locking\nout non-root sessions that have assumed the admin role.\n\nThe notPrincipals will only match the role name exactly and will not match\nany session that has assumed the role since notPrincipals does not allow\nwildcard matches and does not do wildcard matches implicitly either.\n\nThe AROA must be used because there are only 3 Principal variables available:\n https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#principaltable\n aws:username, aws:userid, aws:PrincipalTag\n\nFor an assumed role, aws:username is blank, aws:userid is:\n [unique id AKA AROA for Role]:[session name]\n\nTable of unique ID prefixes such as AROA:\n https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-prefixes\n\nThe name of the role is simply not available for an assumed role and, if it was,\na complicated comparison would be requierd to prevent exclusion\nof applying the Deny Rule to roles from other accounts.\n\nTo get the AROA with the AWS CLI:\n aws iam get-role --role-name ROLE-NAME\n aws iam get-user -–user-name USER-NAME",
4999
+ "see": "s3StrictBucketPolicy",
5000
+ "stability": "experimental",
5001
+ "summary": "Applies when using s3StrictBucketPolicy = true."
4940
5002
  },
4941
5003
  "immutable": true,
4942
5004
  "locationInModule": {
4943
5005
  "filename": "src/MicroAppsSvcs.ts",
4944
- "line": 101
5006
+ "line": 179
4945
5007
  },
4946
5008
  "name": "s3PolicyBypassAROAs",
4947
5009
  "optional": true,
@@ -4957,12 +5019,16 @@
4957
5019
  {
4958
5020
  "abstract": true,
4959
5021
  "docs": {
4960
- "stability": "stable"
5022
+ "example": "['arn:aws:iam::1234567890123:role/AdminAccess', 'arn:aws:iam::1234567890123:user/MyAdminUser']",
5023
+ "remarks": "IAM Role or IAM User names to exclude from the DENY rules on the S3 Bucket Policy.\n\nRoles that are Assumed must instead have their AROA added to `s3PolicyBypassAROAs`.\n\nTypically any admin roles / users that need to view or manage the S3 Bucket\nwould be added to this list.",
5024
+ "see": "s3PolicyBypassAROAs",
5025
+ "stability": "experimental",
5026
+ "summary": "Applies when using s3StrictBucketPolicy = true."
4961
5027
  },
4962
5028
  "immutable": true,
4963
5029
  "locationInModule": {
4964
5030
  "filename": "src/MicroAppsSvcs.ts",
4965
- "line": 102
5031
+ "line": 136
4966
5032
  },
4967
5033
  "name": "s3PolicyBypassPrincipalARNs",
4968
5034
  "optional": true,
@@ -4978,12 +5044,15 @@
4978
5044
  {
4979
5045
  "abstract": true,
4980
5046
  "docs": {
4981
- "stability": "stable"
5047
+ "default": "false",
5048
+ "remarks": "This setting should be used when applications are less than\nfully trusted.",
5049
+ "stability": "experimental",
5050
+ "summary": "Use a strict S3 Bucket Policy that prevents applications from reading/writing/modifying/deleting files in the S3 Bucket outside of the path that is specific to their app/version."
4982
5051
  },
4983
5052
  "immutable": true,
4984
5053
  "locationInModule": {
4985
5054
  "filename": "src/MicroAppsSvcs.ts",
4986
- "line": 100
5055
+ "line": 120
4987
5056
  },
4988
5057
  "name": "s3StrictBucketPolicy",
4989
5058
  "optional": true,
@@ -4995,6 +5064,6 @@
4995
5064
  "symbolId": "src/MicroAppsSvcs:MicroAppsSvcsProps"
4996
5065
  }
4997
5066
  },
4998
- "version": "0.2.4",
4999
- "fingerprint": "Vr5IabYst3i9OzyE7LhghpuMdH/5r38pZpvwYuKXt/g="
5067
+ "version": "0.2.8",
5068
+ "fingerprint": "zBluZY8PSoQOUT7McQE1oxPPrMm+QbpLV/+gVVMsHoo="
5000
5069
  }