@mavogel/cdk-vscode-server 0.0.56 โ†’ 0.0.57

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
@@ -4082,7 +4082,7 @@
4082
4082
  "stability": "experimental"
4083
4083
  },
4084
4084
  "homepage": "https://github.com/MV-Consulting/cdk-vscode-server.git",
4085
- "jsiiVersion": "5.8.20 (build bb5928c)",
4085
+ "jsiiVersion": "5.8.21 (build 0b7c0ba)",
4086
4086
  "keywords": [
4087
4087
  "aws",
4088
4088
  "cdk",
@@ -4603,6 +4603,6 @@
4603
4603
  "symbolId": "src/vscode-server:VSCodeServerProps"
4604
4604
  }
4605
4605
  },
4606
- "version": "0.0.56",
4607
- "fingerprint": "gV9xsEiWCOrlugATByYLsKJMFqoOp5MZpNf9HViUhRM="
4606
+ "version": "0.0.57",
4607
+ "fingerprint": "EmaF/DbABANK0hwa0Mp4EjooIOPhooFimX4YUxFlZyI="
4608
4608
  }
@@ -572,7 +572,7 @@ class VSCodeServer extends constructs_1.Construct {
572
572
  }
573
573
  exports.VSCodeServer = VSCodeServer;
574
574
  _a = JSII_RTTI_SYMBOL_1;
575
- VSCodeServer[_a] = { fqn: "@mavogel/cdk-vscode-server.VSCodeServer", version: "0.0.56" };
575
+ VSCodeServer[_a] = { fqn: "@mavogel/cdk-vscode-server.VSCodeServer", version: "0.0.57" };
576
576
  /**
577
577
  * Tags all the resources in the construct
578
578
  */
@@ -20,6 +20,9 @@ we implement new features. Therefore make sure you use an exact version in your
20
20
 
21
21
  * [Features](#features)
22
22
  * [Usage](#usage)
23
+
24
+ * [Standard](#Standard)
25
+ * [Custom Domain Configuration](#custom-domain-configuration)
23
26
  * [Solution Design](#solution-design)
24
27
  * [Inspiration](#inspiration)
25
28
 
@@ -28,10 +31,15 @@ we implement new features. Therefore make sure you use an exact version in your
28
31
  * โšก **Quick Setup**: Spin up and configure your [vscode](https://code.visualstudio.com/) server in under 10 minutes in your AWS account
29
32
  * ๐Ÿ“ **Best Practice Setup**: Set up with [projen](https://projen.io/) and a [single configuration file](./.projenrc.ts) to keep your changes centralized.
30
33
  * ๐Ÿคนโ€โ™‚๏ธ **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.
34
+ * ๐ŸŒ **Custom Domain Support**: Use your own domain name with automatic ACM certificate creation and Route53 DNS configuration, or bring your existing certificate.
31
35
  * ๐Ÿ—๏ธ **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...
32
36
 
33
37
  ## Usage
34
38
 
39
+ Actually we supported 2 modes:
40
+
41
+ ### Standard
42
+
35
43
  The following steps get you started:
36
44
 
37
45
  1. Create a new `awscdk-app` via
@@ -114,6 +122,53 @@ dev.vscodepassword64FBCA12 = foobarbaz
114
122
 
115
123
  See the [examples](./examples) folder for more inspiration.
116
124
 
125
+ ### Custom Domain Configuration
126
+
127
+ You can configure your VS Code Server with a custom domain name instead of using the default CloudFront domain. The construct supports three different configuration options:
128
+
129
+ #### Option 1: Auto-create Certificate with DNS Validation
130
+
131
+ ```go
132
+ new VSCodeServer(this, 'vscode', {
133
+ domainName: 'vscode.example.com',
134
+ hostedZoneId: 'Z123EXAMPLE456', // optional - will auto-discover if not provided
135
+ autoCreateCertificate: true,
136
+ });
137
+ ```
138
+
139
+ This will:
140
+
141
+ * Create an ACM certificate in us-east-1 (required for CloudFront)
142
+ * Validate the certificate using DNS validation
143
+ * Create a Route53 A record pointing to the CloudFront distribution
144
+ * Configure the CloudFront distribution with the custom domain
145
+
146
+ #### Option 2: Use Existing Certificate
147
+
148
+ ```go
149
+ new VSCodeServer(this, 'vscode', {
150
+ domainName: 'vscode.example.com',
151
+ hostedZoneId: 'Z123EXAMPLE456',
152
+ certificateArn: 'arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012',
153
+ });
154
+ ```
155
+
156
+ **Requirements:**
157
+
158
+ * Certificate must be in us-east-1 region
159
+ * Certificate must be validated and ready to use
160
+ * Certificate must include the domain name
161
+
162
+ #### Option 3: Default (No Custom Domain)
163
+
164
+ ```go
165
+ new VSCodeServer(this, 'vscode', {
166
+ // No domain configuration - uses CloudFront default domain
167
+ });
168
+ ```
169
+
170
+ For complete examples, see [examples/custom-domain/main.ts](./examples/custom-domain/main.ts).
171
+
117
172
  1. Then open the domain name in your favorite browser and you'd see the following login screen:
118
173
  ![vscode-server-ui-login](docs/img/vscode-server-ui-login-min.png)
119
174
  2. After entering the password, you are logged into VSCode and can start coding :tada:
@@ -18,6 +18,16 @@ type VSCodeServerProps struct {
18
18
  //
19
19
  // Experimental.
20
20
  AdditionalTags *map[string]*string `field:"optional" json:"additionalTags" yaml:"additionalTags"`
21
+ // Auto-create ACM certificate with DNS validation in us-east-1 region Requires hostedZoneId to be provided for DNS validation Cannot be used together with certificateArn Certificate will automatically be created in us-east-1 as required by CloudFront.
22
+ // Default: false.
23
+ //
24
+ // Experimental.
25
+ AutoCreateCertificate *bool `field:"optional" json:"autoCreateCertificate" yaml:"autoCreateCertificate"`
26
+ // ARN of existing ACM certificate for the domain Certificate must be in us-east-1 region for CloudFront Cannot be used together with autoCreateCertificate.
27
+ // Default: - auto-create certificate if autoCreateCertificate is true.
28
+ //
29
+ // Experimental.
30
+ CertificateArn *string `field:"optional" json:"certificateArn" yaml:"certificateArn"`
21
31
  // Base path for the application to be added to Nginx sites-available list.
22
32
  // Default: - app.
23
33
  //
@@ -28,11 +38,21 @@ type VSCodeServerProps struct {
28
38
  //
29
39
  // Experimental.
30
40
  DevServerPort *float64 `field:"optional" json:"devServerPort" yaml:"devServerPort"`
41
+ // Custom domain name for the VS Code server When provided, creates a CloudFront distribution with this domain name and sets up Route53 A record pointing to the distribution.
42
+ // Default: - uses CloudFront default domain.
43
+ //
44
+ // Experimental.
45
+ DomainName *string `field:"optional" json:"domainName" yaml:"domainName"`
31
46
  // Folder to open in VS Code server.
32
47
  // Default: - /Workshop.
33
48
  //
34
49
  // Experimental.
35
50
  HomeFolder *string `field:"optional" json:"homeFolder" yaml:"homeFolder"`
51
+ // Route53 hosted zone ID for the domain Required when using autoCreateCertificate If not provided, will attempt to lookup hosted zone from domain name.
52
+ // Default: - auto-discover from domain name.
53
+ //
54
+ // Experimental.
55
+ HostedZoneId *string `field:"optional" json:"hostedZoneId" yaml:"hostedZoneId"`
36
56
  // VSCode Server EC2 instance class.
37
57
  // Default: - m7g.
38
58
  //
@@ -15,7 +15,7 @@ import (
15
15
  mavogelmvcprojen "github.com/MV-Consulting/mvc-projen/mavogelmvcprojen/jsii"
16
16
  )
17
17
 
18
- //go:embed mavogel-cdk-vscode-server-0.0.55.tgz
18
+ //go:embed mavogel-cdk-vscode-server-0.0.56.tgz
19
19
  var tarball []byte
20
20
 
21
21
  // Initialize loads the necessary packages in the @jsii/kernel to support the enclosing module.
@@ -28,5 +28,5 @@ func Initialize() {
28
28
  constructs.Initialize()
29
29
 
30
30
  // Load this library into the kernel
31
- _jsii_.Load("@mavogel/cdk-vscode-server", "0.0.55", tarball)
31
+ _jsii_.Load("@mavogel/cdk-vscode-server", "0.0.56", tarball)
32
32
  }
@@ -1 +1 @@
1
- 0.0.55
1
+ 0.0.56
package/package.json CHANGED
@@ -104,7 +104,7 @@
104
104
  "publishConfig": {
105
105
  "access": "public"
106
106
  },
107
- "version": "0.0.56",
107
+ "version": "0.0.57",
108
108
  "jest": {
109
109
  "coverageProvider": "v8",
110
110
  "testMatch": [