@mavogel/cdk-vscode-server 0.0.17 → 0.0.19
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 +45 -22
- package/API.md +14 -0
- package/CONTRIBUTING.md +6 -6
- package/README.md +1 -1
- package/integ-tests/integ.al2023.ts +4 -0
- package/integ-tests/integ.al2023.ts.snapshot/IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.assets.json +6 -6
- package/integ-tests/integ.al2023.ts.snapshot/IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.template.json +2 -2
- package/integ-tests/integ.al2023.ts.snapshot/IntegTestStackAl2023.assets.json +12 -12
- package/integ-tests/integ.al2023.ts.snapshot/IntegTestStackAl2023.template.json +307 -23
- package/integ-tests/integ.al2023.ts.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
- package/integ-tests/integ.al2023.ts.snapshot/{asset.512cf155ada4793b37a885c1aa6d9bb8f534e88bac6f63c69672d4d73df2decf.lambda → asset.a9865c9d36c7aa999e28cb7926e7a3a8e0b6d0854b25131a172024c5777442fa.lambda}/index.js +28 -9
- package/integ-tests/integ.al2023.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js +1 -0
- package/integ-tests/{integ.ubuntu.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e → integ.al2023.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca}/outbound.js +1 -1
- package/integ-tests/integ.al2023.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js +1 -0
- package/integ-tests/{integ.ubuntu.ts.snapshot/asset.c504585dae89ce8e394d7744ccae054318e7d1aff14afb545438d173d51dc97d.bundle → integ.al2023.ts.snapshot/asset.f692c9f68e4daba2abc99103efd3518bced1e9d7a2a89847b9b5d5473c64f1bd.bundle}/index.js +42 -43
- package/integ-tests/integ.al2023.ts.snapshot/cdk.out +1 -1
- package/integ-tests/integ.al2023.ts.snapshot/integ.json +2 -2
- package/integ-tests/integ.al2023.ts.snapshot/manifest.json +3 -5
- package/integ-tests/integ.al2023.ts.snapshot/tree.json +453 -169
- package/integ-tests/integ.ubuntu.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.assets.json +6 -6
- package/integ-tests/integ.ubuntu.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.template.json +2 -2
- package/integ-tests/integ.ubuntu.ts.snapshot/IntegTestStackUbuntu22.assets.json +12 -12
- package/integ-tests/integ.ubuntu.ts.snapshot/IntegTestStackUbuntu22.template.json +131 -23
- package/integ-tests/integ.ubuntu.ts.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
- package/integ-tests/integ.ubuntu.ts.snapshot/{asset.512cf155ada4793b37a885c1aa6d9bb8f534e88bac6f63c69672d4d73df2decf.lambda → asset.a9865c9d36c7aa999e28cb7926e7a3a8e0b6d0854b25131a172024c5777442fa.lambda}/index.js +28 -9
- package/integ-tests/integ.ubuntu.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js +1 -0
- package/integ-tests/{integ.al2023.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e → integ.ubuntu.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca}/outbound.js +1 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js +1 -0
- package/integ-tests/{integ.al2023.ts.snapshot/asset.c504585dae89ce8e394d7744ccae054318e7d1aff14afb545438d173d51dc97d.bundle → integ.ubuntu.ts.snapshot/asset.f692c9f68e4daba2abc99103efd3518bced1e9d7a2a89847b9b5d5473c64f1bd.bundle}/index.js +42 -43
- package/integ-tests/integ.ubuntu.ts.snapshot/cdk.out +1 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/integ.json +2 -2
- package/integ-tests/integ.ubuntu.ts.snapshot/manifest.json +3 -5
- package/integ-tests/integ.ubuntu.ts.snapshot/tree.json +277 -169
- package/lib/vscode-server.d.ts +8 -0
- package/lib/vscode-server.js +17 -2
- package/mavogelcdkvscodeserver/LinuxArchitectureType.go +2 -0
- package/mavogelcdkvscodeserver/LinuxFlavorType.go +3 -0
- package/mavogelcdkvscodeserver/README.md +1 -1
- package/mavogelcdkvscodeserver/VSCodeServer.go +3 -0
- package/mavogelcdkvscodeserver/VSCodeServerProps.go +5 -0
- package/mavogelcdkvscodeserver/jsii/jsii.go +2 -2
- package/mavogelcdkvscodeserver/version +1 -1
- package/package.json +1 -1
- package/integ-tests/integ.al2023.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/cfn-response.js +0 -1
- package/integ-tests/integ.al2023.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/util.js +0 -1
- package/integ-tests/integ.al2023.ts.snapshot/asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a/__entrypoint__.js +0 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/cfn-response.js +0 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e/util.js +0 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a/__entrypoint__.js +0 -1
- /package/integ-tests/integ.al2023.ts.snapshot/{asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a → asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200}/index.js +0 -0
- /package/integ-tests/integ.al2023.ts.snapshot/{asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e → asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca}/consts.js +0 -0
- /package/integ-tests/integ.al2023.ts.snapshot/{asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e → asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca}/framework.js +0 -0
- /package/integ-tests/integ.ubuntu.ts.snapshot/{asset.ee7de53d64cc9d6248fa6aa550f92358f6c907b5efd6f3298aeab1b5e7ea358a → asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200}/index.js +0 -0
- /package/integ-tests/integ.ubuntu.ts.snapshot/{asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e → asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca}/consts.js +0 -0
- /package/integ-tests/integ.ubuntu.ts.snapshot/{asset.4dc48ffba382f93077a1e6824599bbd4ceb6f91eb3d9442eca3b85bdb1a20b1e → asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca}/framework.js +0 -0
package/.jsii
CHANGED
|
@@ -4033,7 +4033,7 @@
|
|
|
4033
4033
|
},
|
|
4034
4034
|
"name": "@mavogel/cdk-vscode-server",
|
|
4035
4035
|
"readme": {
|
|
4036
|
-
"markdown": "\n[](https://github.com/MV-Consulting/cdk-vscode-server/actions/workflows/build.yml)\n[](https://eslint.org)\n[](https://github.com/MV-Consulting/cdk-vscode-server/releases)\n\n[](https://www.npmjs.com/package/@mavogel/cdk-vscode-server)\n[](https://www.npmjs.com/package/@mavogel/cdk-vscode-server)\n\n# cdk-vscode-server\n\nRunning your dev IDE vscode on AWS for development and workshop purposes.\n\n> [!Note]\n> This construct is designed for workshop purposes and does not fulfill all security and authentication best practices.\n\n**<br>This is an early version of the package. The API will change while I\nwe implement new features. Therefore make sure you use an exact version in your `package.json` before it reaches 1.0.0.**\n\n## Table of Contents\n\n- [Features](#features)\n- [Usage](#usage)\n- [Solution Design](#solution-design)\n- [Inspiration](#inspiration)\n\n## Features\n\n- ⚡ **Quick Setup**: Spin up and configure your [vscode](https://code.visualstudio.com/) server in under 10 minutes in your AWS account\n- 📏 **Best Practice Setup**: Set up with [projen](https://projen.io/) and a [single configuration file](./.projenrc.ts) to keep your changes centralized.\n- 🤹♂️ **Pre-installed packages**: Besides the [vscode](https://code.visualstudio.com/) server, other tools and software packages such as `git`, `docker`, `awscli` `nodejs` and `python` are pre-installed on the EC2 instance.\n- 🏗️ **Extensibility**: Pass in properties to the construct, which start with `additional*`. They allow you to extend the configuration to your needs. There are more to come...\n\n## Usage\nThe following steps get you started:\n\n1. Create a new `awscdk-app` via\n```bash\nnpx projen new awscdk-app-ts --package-manager=npm\n```\n3. Add `@mavogel/cdk-vscode-server` as a dependency to your project in the `.projenrc.ts` file\n4. Run `
|
|
4036
|
+
"markdown": "\n[](https://github.com/MV-Consulting/cdk-vscode-server/actions/workflows/build.yml)\n[](https://eslint.org)\n[](https://github.com/MV-Consulting/cdk-vscode-server/releases)\n\n[](https://www.npmjs.com/package/@mavogel/cdk-vscode-server)\n[](https://www.npmjs.com/package/@mavogel/cdk-vscode-server)\n\n# cdk-vscode-server\n\nRunning your dev IDE vscode on AWS for development and workshop purposes.\n\n> [!Note]\n> This construct is designed for workshop purposes and does not fulfill all security and authentication best practices.\n\n**<br>This is an early version of the package. The API will change while I\nwe implement new features. Therefore make sure you use an exact version in your `package.json` before it reaches 1.0.0.**\n\n## Table of Contents\n\n- [Features](#features)\n- [Usage](#usage)\n- [Solution Design](#solution-design)\n- [Inspiration](#inspiration)\n\n## Features\n\n- ⚡ **Quick Setup**: Spin up and configure your [vscode](https://code.visualstudio.com/) server in under 10 minutes in your AWS account\n- 📏 **Best Practice Setup**: Set up with [projen](https://projen.io/) and a [single configuration file](./.projenrc.ts) to keep your changes centralized.\n- 🤹♂️ **Pre-installed packages**: Besides the [vscode](https://code.visualstudio.com/) server, other tools and software packages such as `git`, `docker`, `awscli` `nodejs` and `python` are pre-installed on the EC2 instance.\n- 🏗️ **Extensibility**: Pass in properties to the construct, which start with `additional*`. They allow you to extend the configuration to your needs. There are more to come...\n\n## Usage\nThe following steps get you started:\n\n1. Create a new `awscdk-app` via\n```bash\nnpx projen new awscdk-app-ts --package-manager=npm\n```\n3. Add `@mavogel/cdk-vscode-server` as a dependency to your project in the `.projenrc.ts` file\n4. Run `npx projen` to install it\n5. Add the following to the `src/main.ts` file:\n```ts\nimport { App, Stack, StackProps } from 'aws-cdk-lib';\nimport * as ec2 from 'aws-cdk-lib/aws-ec2';\nimport * as iam from 'aws-cdk-lib/aws-iam';\nimport { Construct } from 'constructs';\nimport {\n LinuxArchitectureType,\n LinuxFlavorType,\n VSCodeServer\n} from '@mavogel/cdk-vscode-server';\n\nexport class MyStack extends Stack {\n constructor(scope: Construct, id: string, props: StackProps = {}) {\n super(scope, id, props);\n\n new VSCodeServer(this, 'vscode', {\n // for example (or simply use the defaults by not setting the properties)\n instanceVolumeSize: 8,\n instanceClass: ec2.InstanceClass.M7G,\n instanceSize: ec2.InstanceSize.LARGE,\n instanceOperatingSystem: LinuxFlavorType.UBUNTU_22,\n instanceCpuArchitecture: LinuxArchitectureType.ARM,\n\n // 👇🏽 or if you want to give the InstanceRole more permissions\n additionalInstanceRolePolicies: [\n new iam.PolicyStatement({\n effect: iam.Effect.ALLOW,\n actions: [\n 'codebuild:*',\n ],\n resources: [\n `arn:aws:codebuild:*:${Stack.of(this).account}:*/*`,\n ],\n }),\n ]\n\n // and more... 💡\n });\n }\n}\n\nconst env = {\n account: '123456789912',\n region: 'eu-central-1',\n};\n\nconst app = new App();\nnew MyStack(app, 'vscode-server', { env });\napp.synth();\n```\n\nand deploy it\n```bash\nnpx projen build\nnpx projen deploy\n```\n\nwith the output\n```console\n✨ Deployment time: 509.87s\n\nOutputs:\ndev.vscodedomainName6729AA39 = https://d1foo65bar4baz.cloudfront.net/?folder=/Workshop\ndev.vscodepassword64FBCA12 = foobarbaz\n```\n\nSee the [examples](./examples) folder for more inspiration.\n\n6. Then open the domain name in your favorite browser and you'd see the following login screen:\n\n\n7. After entering the password, you are logged into VSCode and can start coding :tada:\n\n\n\n> [!Important]\n> There are issues with copy pasting into the VSCode terminal within the Firefox browser (2025-01-12)\n\n## Solution Design\n\n<details>\n <summary>... if you're curious about click here for the details</summary>\n\n\n\n</details>\n\n## Inspiration\nThis project was created based on the following inspiration\n\n- [vscode-on-ec2-for-prototyping](https://github.com/aws-samples/vscode-on-ec2-for-prototyping): as baseline, which unfortunately was outdated\n- [aws-terraform-dev-container](https://github.com/awslabs/aws-terraform-dev-container): as baseline for terraform, but unfortunately also outdated\n- [java-on-aws-workshop-ide-only.yaml](https://github.com/aws-samples/java-on-aws/blob/main/labs/unicorn-store/infrastructure/cfn/java-on-aws-workshop-ide-only.yaml): an already synthesized cloudformation stack, which used mostly python as the custom resources\n- [fleet-workshop-team-stack-self.json](https://static.us-east-1.prod.workshops.aws/public/cc4aa67e-5b7a-4df1-abf7-c42502899a25/assets/fleet-workshop-team-stack-self.json): also an already synthesized cloudformation stack, which did much more as I currently implemented here.\n- [eks-workshop-vscode-cfn.yaml](https://github.com/aws-samples/eks-workshop-v2/blob/main/lab/cfn/eks-workshop-vscode-cfn.yaml): another great baseline\n\n\n## 🚀 Unlock the Full Potential of Your AWS Cloud Infrastructure\n\nHi, I’m Manuel, an AWS expert passionate about empowering businesses with **scalable, resilient, and cost-optimized cloud solutions**. With **MV Consulting**, I specialize in crafting **tailored AWS architectures** and **DevOps-driven workflows** that not only meet your current needs but grow with you.\n\n---\n\n### 🌟 Why Work With Me?\n\n✔️ **Tailored AWS Solutions:** Every business is unique, so I design custom solutions that fit your goals and challenges.\n✔️ **Well-Architected Designs:** From scalability to security, my solutions align with AWS Well-Architected Framework.\n✔️ **Cloud-Native Focus:** I specialize in modern, cloud-native systems that embrace the full potential of AWS.\n✔️ **Business-Driven Tech:** Technology should serve your business, not the other way around.\n\n---\n\n### 🛠 What I Bring to the Table\n\n🔑 **12x AWS Certifications**\nI’m **AWS Certified Solutions Architect and DevOps – Professional** and hold numerous additional certifications, so you can trust I’ll bring industry best practices to your projects. Feel free to explose by [badges](https://www.credly.com/users/manuel-vogel)\n\n⚙️ **Infrastructure as Code (IaC)**\nWith deep expertise in **AWS CDK** and **Terraform**, I ensure your infrastructure is automated, maintainable, and scalable.\n\n📦 **DevOps Expertise**\nFrom CI/CD pipelines with **GitHub Actions** and **GitLab CI** to container orchestration **Kubernetes** and others, I deliver workflows that are smooth and efficient.\n\n🌐 **Hands-On Experience**\nWith over **7 years of AWS experience** and a decade in the tech world, I’ve delivered solutions for companies large and small. My open-source contributions showcase my commitment to transparency and innovation. Feel free to explore my [GitHub profile](https://github.com/mavogel)\n\n---\n\n### 💼 Let’s Build Something Great Together\n\nI know that choosing the right partner is critical to your success. When you work with me, you’re not just contracting an engineer – you’re gaining a trusted advisor and hands-on expert who cares about your business as much as you do.\n\n✔️ **Direct Collaboration**: No middlemen or red tape – you work with me directly.\n✔️ **Transparent Process**: Expect open communication, clear timelines, and visible results.\n✔️ **Real Value**: My solutions focus on delivering measurable impact for your business.\n\n\n<a href=\"https://tinyurl.com/mvc-15min\"><img alt=\"Schedule your call\" src=\"https://img.shields.io/badge/schedule%20your%20call-success.svg?style=for-the-badge\"/></a>\n\n---\n\n## 🙌 Acknowledgements\n\nBig shoutout to the amazing team behind [Projen](https://github.com/projen/projen)!\nTheir groundbreaking work simplifies cloud infrastructure projects and inspires us every day. 💡\n\n## Author\n\n[Manuel Vogel](https://manuel-vogel.de/about/)\n\n[](https://www.linkedin.com/in/manuel-vogel)\n[](https://github.com/mavogel)"
|
|
4037
4037
|
},
|
|
4038
4038
|
"repository": {
|
|
4039
4039
|
"type": "git",
|
|
@@ -4063,7 +4063,7 @@
|
|
|
4063
4063
|
"kind": "enum",
|
|
4064
4064
|
"locationInModule": {
|
|
4065
4065
|
"filename": "src/vscode-server.ts",
|
|
4066
|
-
"line":
|
|
4066
|
+
"line": 140
|
|
4067
4067
|
},
|
|
4068
4068
|
"members": [
|
|
4069
4069
|
{
|
|
@@ -4094,7 +4094,7 @@
|
|
|
4094
4094
|
"kind": "enum",
|
|
4095
4095
|
"locationInModule": {
|
|
4096
4096
|
"filename": "src/vscode-server.ts",
|
|
4097
|
-
"line":
|
|
4097
|
+
"line": 120
|
|
4098
4098
|
},
|
|
4099
4099
|
"members": [
|
|
4100
4100
|
{
|
|
@@ -4136,7 +4136,7 @@
|
|
|
4136
4136
|
},
|
|
4137
4137
|
"locationInModule": {
|
|
4138
4138
|
"filename": "src/vscode-server.ts",
|
|
4139
|
-
"line":
|
|
4139
|
+
"line": 166
|
|
4140
4140
|
},
|
|
4141
4141
|
"parameters": [
|
|
4142
4142
|
{
|
|
@@ -4163,7 +4163,7 @@
|
|
|
4163
4163
|
"kind": "class",
|
|
4164
4164
|
"locationInModule": {
|
|
4165
4165
|
"filename": "src/vscode-server.ts",
|
|
4166
|
-
"line":
|
|
4166
|
+
"line": 155
|
|
4167
4167
|
},
|
|
4168
4168
|
"name": "VSCodeServer",
|
|
4169
4169
|
"properties": [
|
|
@@ -4175,7 +4175,7 @@
|
|
|
4175
4175
|
"immutable": true,
|
|
4176
4176
|
"locationInModule": {
|
|
4177
4177
|
"filename": "src/vscode-server.ts",
|
|
4178
|
-
"line":
|
|
4178
|
+
"line": 159
|
|
4179
4179
|
},
|
|
4180
4180
|
"name": "domainName",
|
|
4181
4181
|
"type": {
|
|
@@ -4190,7 +4190,7 @@
|
|
|
4190
4190
|
"immutable": true,
|
|
4191
4191
|
"locationInModule": {
|
|
4192
4192
|
"filename": "src/vscode-server.ts",
|
|
4193
|
-
"line":
|
|
4193
|
+
"line": 164
|
|
4194
4194
|
},
|
|
4195
4195
|
"name": "password",
|
|
4196
4196
|
"type": {
|
|
@@ -4211,7 +4211,7 @@
|
|
|
4211
4211
|
"kind": "interface",
|
|
4212
4212
|
"locationInModule": {
|
|
4213
4213
|
"filename": "src/vscode-server.ts",
|
|
4214
|
-
"line":
|
|
4214
|
+
"line": 24
|
|
4215
4215
|
},
|
|
4216
4216
|
"name": "VSCodeServerProps",
|
|
4217
4217
|
"properties": [
|
|
@@ -4225,7 +4225,7 @@
|
|
|
4225
4225
|
"immutable": true,
|
|
4226
4226
|
"locationInModule": {
|
|
4227
4227
|
"filename": "src/vscode-server.ts",
|
|
4228
|
-
"line":
|
|
4228
|
+
"line": 107
|
|
4229
4229
|
},
|
|
4230
4230
|
"name": "additionalInstanceRolePolicies",
|
|
4231
4231
|
"optional": true,
|
|
@@ -4238,6 +4238,29 @@
|
|
|
4238
4238
|
}
|
|
4239
4239
|
}
|
|
4240
4240
|
},
|
|
4241
|
+
{
|
|
4242
|
+
"abstract": true,
|
|
4243
|
+
"docs": {
|
|
4244
|
+
"default": "- {}",
|
|
4245
|
+
"stability": "stable",
|
|
4246
|
+
"summary": "Additional tags to add to the instance."
|
|
4247
|
+
},
|
|
4248
|
+
"immutable": true,
|
|
4249
|
+
"locationInModule": {
|
|
4250
|
+
"filename": "src/vscode-server.ts",
|
|
4251
|
+
"line": 114
|
|
4252
|
+
},
|
|
4253
|
+
"name": "additionalTags",
|
|
4254
|
+
"optional": true,
|
|
4255
|
+
"type": {
|
|
4256
|
+
"collection": {
|
|
4257
|
+
"elementtype": {
|
|
4258
|
+
"primitive": "string"
|
|
4259
|
+
},
|
|
4260
|
+
"kind": "map"
|
|
4261
|
+
}
|
|
4262
|
+
}
|
|
4263
|
+
},
|
|
4241
4264
|
{
|
|
4242
4265
|
"abstract": true,
|
|
4243
4266
|
"docs": {
|
|
@@ -4248,7 +4271,7 @@
|
|
|
4248
4271
|
"immutable": true,
|
|
4249
4272
|
"locationInModule": {
|
|
4250
4273
|
"filename": "src/vscode-server.ts",
|
|
4251
|
-
"line":
|
|
4274
|
+
"line": 93
|
|
4252
4275
|
},
|
|
4253
4276
|
"name": "devServerBasePath",
|
|
4254
4277
|
"optional": true,
|
|
@@ -4266,7 +4289,7 @@
|
|
|
4266
4289
|
"immutable": true,
|
|
4267
4290
|
"locationInModule": {
|
|
4268
4291
|
"filename": "src/vscode-server.ts",
|
|
4269
|
-
"line":
|
|
4292
|
+
"line": 100
|
|
4270
4293
|
},
|
|
4271
4294
|
"name": "devServerPort",
|
|
4272
4295
|
"optional": true,
|
|
@@ -4284,7 +4307,7 @@
|
|
|
4284
4307
|
"immutable": true,
|
|
4285
4308
|
"locationInModule": {
|
|
4286
4309
|
"filename": "src/vscode-server.ts",
|
|
4287
|
-
"line":
|
|
4310
|
+
"line": 86
|
|
4288
4311
|
},
|
|
4289
4312
|
"name": "homeFolder",
|
|
4290
4313
|
"optional": true,
|
|
@@ -4302,7 +4325,7 @@
|
|
|
4302
4325
|
"immutable": true,
|
|
4303
4326
|
"locationInModule": {
|
|
4304
4327
|
"filename": "src/vscode-server.ts",
|
|
4305
|
-
"line":
|
|
4328
|
+
"line": 58
|
|
4306
4329
|
},
|
|
4307
4330
|
"name": "instanceClass",
|
|
4308
4331
|
"optional": true,
|
|
@@ -4320,7 +4343,7 @@
|
|
|
4320
4343
|
"immutable": true,
|
|
4321
4344
|
"locationInModule": {
|
|
4322
4345
|
"filename": "src/vscode-server.ts",
|
|
4323
|
-
"line":
|
|
4346
|
+
"line": 79
|
|
4324
4347
|
},
|
|
4325
4348
|
"name": "instanceCpuArchitecture",
|
|
4326
4349
|
"optional": true,
|
|
@@ -4338,7 +4361,7 @@
|
|
|
4338
4361
|
"immutable": true,
|
|
4339
4362
|
"locationInModule": {
|
|
4340
4363
|
"filename": "src/vscode-server.ts",
|
|
4341
|
-
"line":
|
|
4364
|
+
"line": 44
|
|
4342
4365
|
},
|
|
4343
4366
|
"name": "instanceName",
|
|
4344
4367
|
"optional": true,
|
|
@@ -4356,7 +4379,7 @@
|
|
|
4356
4379
|
"immutable": true,
|
|
4357
4380
|
"locationInModule": {
|
|
4358
4381
|
"filename": "src/vscode-server.ts",
|
|
4359
|
-
"line":
|
|
4382
|
+
"line": 72
|
|
4360
4383
|
},
|
|
4361
4384
|
"name": "instanceOperatingSystem",
|
|
4362
4385
|
"optional": true,
|
|
@@ -4374,7 +4397,7 @@
|
|
|
4374
4397
|
"immutable": true,
|
|
4375
4398
|
"locationInModule": {
|
|
4376
4399
|
"filename": "src/vscode-server.ts",
|
|
4377
|
-
"line":
|
|
4400
|
+
"line": 65
|
|
4378
4401
|
},
|
|
4379
4402
|
"name": "instanceSize",
|
|
4380
4403
|
"optional": true,
|
|
@@ -4392,7 +4415,7 @@
|
|
|
4392
4415
|
"immutable": true,
|
|
4393
4416
|
"locationInModule": {
|
|
4394
4417
|
"filename": "src/vscode-server.ts",
|
|
4395
|
-
"line":
|
|
4418
|
+
"line": 51
|
|
4396
4419
|
},
|
|
4397
4420
|
"name": "instanceVolumeSize",
|
|
4398
4421
|
"optional": true,
|
|
@@ -4410,7 +4433,7 @@
|
|
|
4410
4433
|
"immutable": true,
|
|
4411
4434
|
"locationInModule": {
|
|
4412
4435
|
"filename": "src/vscode-server.ts",
|
|
4413
|
-
"line":
|
|
4436
|
+
"line": 37
|
|
4414
4437
|
},
|
|
4415
4438
|
"name": "vscodePassword",
|
|
4416
4439
|
"optional": true,
|
|
@@ -4428,7 +4451,7 @@
|
|
|
4428
4451
|
"immutable": true,
|
|
4429
4452
|
"locationInModule": {
|
|
4430
4453
|
"filename": "src/vscode-server.ts",
|
|
4431
|
-
"line":
|
|
4454
|
+
"line": 30
|
|
4432
4455
|
},
|
|
4433
4456
|
"name": "vscodeUser",
|
|
4434
4457
|
"optional": true,
|
|
@@ -4440,6 +4463,6 @@
|
|
|
4440
4463
|
"symbolId": "src/vscode-server:VSCodeServerProps"
|
|
4441
4464
|
}
|
|
4442
4465
|
},
|
|
4443
|
-
"version": "0.0.
|
|
4444
|
-
"fingerprint": "
|
|
4466
|
+
"version": "0.0.19",
|
|
4467
|
+
"fingerprint": "ot3HmNqpEFWUzXkGz4EUCvMzrOWBJBK25lz5ncOWEgM="
|
|
4445
4468
|
}
|
package/API.md
CHANGED
|
@@ -148,6 +148,7 @@ const vSCodeServerProps: VSCodeServerProps = { ... }
|
|
|
148
148
|
| **Name** | **Type** | **Description** |
|
|
149
149
|
| --- | --- | --- |
|
|
150
150
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.additionalInstanceRolePolicies">additionalInstanceRolePolicies</a></code> | <code>aws-cdk-lib.aws_iam.PolicyStatement[]</code> | Additional instance role policies. |
|
|
151
|
+
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.additionalTags">additionalTags</a></code> | <code>{[ key: string ]: string}</code> | Additional tags to add to the instance. |
|
|
151
152
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.devServerBasePath">devServerBasePath</a></code> | <code>string</code> | Base path for the application to be added to Nginx sites-available list. |
|
|
152
153
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.devServerPort">devServerPort</a></code> | <code>number</code> | Port for the DevServer. |
|
|
153
154
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.homeFolder">homeFolder</a></code> | <code>string</code> | Folder to open in VS Code server. |
|
|
@@ -175,6 +176,19 @@ Additional instance role policies.
|
|
|
175
176
|
|
|
176
177
|
---
|
|
177
178
|
|
|
179
|
+
##### `additionalTags`<sup>Optional</sup> <a name="additionalTags" id="@mavogel/cdk-vscode-server.VSCodeServerProps.property.additionalTags"></a>
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
public readonly additionalTags: {[ key: string ]: string};
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
- *Type:* {[ key: string ]: string}
|
|
186
|
+
- *Default:* {}
|
|
187
|
+
|
|
188
|
+
Additional tags to add to the instance.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
178
192
|
##### `devServerBasePath`<sup>Optional</sup> <a name="devServerBasePath" id="@mavogel/cdk-vscode-server.VSCodeServerProps.property.devServerBasePath"></a>
|
|
179
193
|
|
|
180
194
|
```typescript
|
package/CONTRIBUTING.md
CHANGED
|
@@ -31,19 +31,19 @@ To send us a pull request, please:
|
|
|
31
31
|
|
|
32
32
|
1. Fork the repository.
|
|
33
33
|
2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change.
|
|
34
|
-
3. Ensure local tests pass -> `
|
|
34
|
+
3. Ensure local tests pass -> `npm test`
|
|
35
35
|
4. The integ tests will run separately in the AWS account of the owner of the project.
|
|
36
|
-
5. Build the project -> `
|
|
36
|
+
5. Build the project -> `npm build` to also update the `API.md` file.
|
|
37
37
|
```bash
|
|
38
38
|
# do this within the container as we build jsii for multiple targets
|
|
39
|
-
docker run -it --rm -v $(pwd):/source -w /source --user 0:0 public.ecr.aws/jsii/superchain:1-bookworm-slim-
|
|
39
|
+
docker run -it --rm -v $(pwd):/source -w /source --user 0:0 public.ecr.aws/jsii/superchain:1-bookworm-slim-node22 bash
|
|
40
40
|
# clean node_modules for fresh dependencies for the OS within the container
|
|
41
41
|
rm -rf node_modules
|
|
42
|
-
|
|
42
|
+
npm ci
|
|
43
43
|
# now build it
|
|
44
|
-
|
|
44
|
+
npx projen build
|
|
45
45
|
# also check for awscdk linting, which checks the API.md
|
|
46
|
-
|
|
46
|
+
npm run awslint
|
|
47
47
|
```
|
|
48
48
|
6. Commit to your fork using clear commit messages.
|
|
49
49
|
7. Send us a pull request, answering any default questions in the pull request interface.
|
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ The following steps get you started:
|
|
|
38
38
|
npx projen new awscdk-app-ts --package-manager=npm
|
|
39
39
|
```
|
|
40
40
|
3. Add `@mavogel/cdk-vscode-server` as a dependency to your project in the `.projenrc.ts` file
|
|
41
|
-
4. Run `
|
|
41
|
+
4. Run `npx projen` to install it
|
|
42
42
|
5. Add the following to the `src/main.ts` file:
|
|
43
43
|
```ts
|
|
44
44
|
import { App, Stack, StackProps } from 'aws-cdk-lib';
|
|
@@ -20,6 +20,10 @@ const stackUnderTest = new Stack(app, 'IntegTestStackAl2023', {
|
|
|
20
20
|
const constructUnderTest = new VSCodeServer(stackUnderTest, 'IntegVSCodeServer', {
|
|
21
21
|
instanceOperatingSystem: LinuxFlavorType.AMAZON_LINUX_2023,
|
|
22
22
|
instanceVolumeSize: 20,
|
|
23
|
+
additionalTags: {
|
|
24
|
+
'IntegTest': 'True',
|
|
25
|
+
'Environement': 'IntegTestAl2023',
|
|
26
|
+
},
|
|
23
27
|
})
|
|
24
28
|
|
|
25
29
|
const integ = new IntegTest(app, 'IntegSetupVSCodeOnAl2023', {
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "39.0.0",
|
|
3
3
|
"files": {
|
|
4
|
-
"
|
|
4
|
+
"f692c9f68e4daba2abc99103efd3518bced1e9d7a2a89847b9b5d5473c64f1bd": {
|
|
5
5
|
"source": {
|
|
6
|
-
"path": "asset.
|
|
6
|
+
"path": "asset.f692c9f68e4daba2abc99103efd3518bced1e9d7a2a89847b9b5d5473c64f1bd.bundle",
|
|
7
7
|
"packaging": "zip"
|
|
8
8
|
},
|
|
9
9
|
"destinations": {
|
|
10
10
|
"current_account-current_region": {
|
|
11
11
|
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
12
|
-
"objectKey": "
|
|
12
|
+
"objectKey": "f692c9f68e4daba2abc99103efd3518bced1e9d7a2a89847b9b5d5473c64f1bd.zip",
|
|
13
13
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
|
-
"
|
|
17
|
+
"ee19dd9c0fda5adf103254cc3abcf577e111b5a997170f6cb9b5a4f6cb44d61b": {
|
|
18
18
|
"source": {
|
|
19
19
|
"path": "IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.template.json",
|
|
20
20
|
"packaging": "file"
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"destinations": {
|
|
23
23
|
"current_account-current_region": {
|
|
24
24
|
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
25
|
-
"objectKey": "
|
|
25
|
+
"objectKey": "ee19dd9c0fda5adf103254cc3abcf577e111b5a997170f6cb9b5a4f6cb44d61b.json",
|
|
26
26
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"flattenResponse": "false",
|
|
48
|
-
"salt": "
|
|
48
|
+
"salt": "1737895516965"
|
|
49
49
|
},
|
|
50
50
|
"UpdateReplacePolicy": "Delete",
|
|
51
51
|
"DeletionPolicy": "Delete"
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"S3Bucket": {
|
|
154
154
|
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
|
|
155
155
|
},
|
|
156
|
-
"S3Key": "
|
|
156
|
+
"S3Key": "f692c9f68e4daba2abc99103efd3518bced1e9d7a2a89847b9b5d5473c64f1bd.zip"
|
|
157
157
|
},
|
|
158
158
|
"Timeout": 120,
|
|
159
159
|
"Handler": "index.handler",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "39.0.0",
|
|
3
3
|
"files": {
|
|
4
4
|
"781ab0ab74634cdaf61539ab208ab777829ef07097ac21f95b9e15a3b1eedc1b": {
|
|
5
5
|
"source": {
|
|
@@ -14,28 +14,28 @@
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
|
-
"
|
|
17
|
+
"bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca": {
|
|
18
18
|
"source": {
|
|
19
|
-
"path": "asset.
|
|
19
|
+
"path": "asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca",
|
|
20
20
|
"packaging": "zip"
|
|
21
21
|
},
|
|
22
22
|
"destinations": {
|
|
23
23
|
"current_account-current_region": {
|
|
24
24
|
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
25
|
-
"objectKey": "
|
|
25
|
+
"objectKey": "bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca.zip",
|
|
26
26
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
|
-
"
|
|
30
|
+
"7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200": {
|
|
31
31
|
"source": {
|
|
32
|
-
"path": "asset.
|
|
32
|
+
"path": "asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200",
|
|
33
33
|
"packaging": "zip"
|
|
34
34
|
},
|
|
35
35
|
"destinations": {
|
|
36
36
|
"current_account-current_region": {
|
|
37
37
|
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
38
|
-
"objectKey": "
|
|
38
|
+
"objectKey": "7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200.zip",
|
|
39
39
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -53,15 +53,15 @@
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
|
-
"
|
|
56
|
+
"a9865c9d36c7aa999e28cb7926e7a3a8e0b6d0854b25131a172024c5777442fa": {
|
|
57
57
|
"source": {
|
|
58
|
-
"path": "asset.
|
|
58
|
+
"path": "asset.a9865c9d36c7aa999e28cb7926e7a3a8e0b6d0854b25131a172024c5777442fa.lambda",
|
|
59
59
|
"packaging": "zip"
|
|
60
60
|
},
|
|
61
61
|
"destinations": {
|
|
62
62
|
"current_account-current_region": {
|
|
63
63
|
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
64
|
-
"objectKey": "
|
|
64
|
+
"objectKey": "a9865c9d36c7aa999e28cb7926e7a3a8e0b6d0854b25131a172024c5777442fa.zip",
|
|
65
65
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
66
66
|
}
|
|
67
67
|
}
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
|
-
"
|
|
95
|
+
"b98f25e42ee43ae0965e3209920b77a27b6a98dac76211ecefb0f979c03a5053": {
|
|
96
96
|
"source": {
|
|
97
97
|
"path": "IntegTestStackAl2023.template.json",
|
|
98
98
|
"packaging": "file"
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"destinations": {
|
|
101
101
|
"current_account-current_region": {
|
|
102
102
|
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
103
|
-
"objectKey": "
|
|
103
|
+
"objectKey": "b98f25e42ee43ae0965e3209920b77a27b6a98dac76211ecefb0f979c03a5053.json",
|
|
104
104
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
105
105
|
}
|
|
106
106
|
}
|