Product
Socket Now Supports uv.lock Files
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
aws-cdk-web
Advanced tools
:muscle: AWS CDK in your browser! (experimental)
this package is also mirrored on NPM under aws-cdk-web. read about the differences below.
load cdk-web.js
somewhere into your HTML file:
<script src="https://unpkg.com/cdk-web"></script>
and start writing CDK apps like you would normally do in Node:
const cdk = require("aws-cdk-lib");
const ec2 = require("aws-cdk-lib/aws-ec2");
const sqs = require("aws-cdk-lib/aws-sqs");
const sns = require("aws-cdk-lib/aws-sns");
const s3 = require("aws-cdk-lib/aws-s3");
const app = new cdk.App();
const stack = new cdk.Stack(app, "BrowserStack");
const vpc = new ec2.Vpc(stack, "VPC");
const queue = new sqs.Queue(stack, "Queue");
const topic = new sns.Topic(stack, "Topic");
const bucket = new s3.Bucket(stack, "Bucket");
const assembly = app.synth();
console.log(assembly);
output of app.synth()
contains all you need to get your generated stack.
if you are looking to use this against a live AWS account inside a browser, you may find these notes useful:
executing npm run build
builds CDK for web. everything is bundled in dist/cdk-web.js
. you may open up dist/index.html
in your browser if you want to just play with the compiled bundle.
testing is done by Puppeteer. the actual generated bundle is loaded into Puppeteer and tests are executed against it. run npm test
to execute them.
a global require
function is exposed that can resolve the following modules in a browser environment:
aws-cdk-lib
: core CDK libraryaws-cdk-lib/*
: core scoped CDK modulesconstructs
: the AWS constructs librarypath
: node path utilities to be used with fs
fs
: in-memory and in-browser file system APIafter you call app.synth()
you can investigate what normally goes into your cdk.out
by calling require('fs').vol.toJSON()
which returns everything on "disk" within your browser.
you can override the default export behavior by defining window.CDK_WEB_REQUIRE
to a string before loading cdk-web.js
in your HTML. For example:
<!DOCTYPE html>
<html>
<body>
<script>window.CDK_WEB_REQUIRE = "my_custom_cdk_require"</script>
<script src="cdk-web.js"></script>
<script>
// window.require is now window.my_custom_cdk_require
const cdk = my_custom_cdk_require('aws-cdk-lib');
</script>
</body>
</html>
cdk-web
vs aws-cdk-web
The two packages are identical, mirrored, and released to at the same time. You may use the other mirror if you are behind a corporate proxy and your NPM packages go through a third-party repository such as Artifactory. The mirror does not list any packages as dependencies in its package.json (neither dev, nor prod). This prevents cdk-web
to be incorrectly flagged as vulnerable due to its outdated devDependencies. cdk-web
is a compiled project. Its compiler and toolchain being outdated does not impact its runtime. It's all client side JavaScript anyway. The mirror is only provided for your convenience.
FAQs
AWS CDK compiled for web (and Node!)
We found that aws-cdk-web demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.