@mavogel/cdk-vscode-server 0.0.56 โ 0.0.58
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 +3 -3
- package/lib/vscode-server.js +1 -1
- package/mavogelcdkvscodeserver/README.md +55 -0
- package/mavogelcdkvscodeserver/VSCodeServerProps.go +20 -0
- package/mavogelcdkvscodeserver/go.mod +2 -2
- package/mavogelcdkvscodeserver/jsii/jsii.go +2 -2
- package/mavogelcdkvscodeserver/version +1 -1
- package/package.json +1 -1
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.
|
|
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.
|
|
4607
|
-
"fingerprint": "
|
|
4606
|
+
"version": "0.0.58",
|
|
4607
|
+
"fingerprint": "OFfCp+yonoPLAT1b60RPzT4NT6DRDr4JaAF0VhbWfoo="
|
|
4608
4608
|
}
|
package/lib/vscode-server.js
CHANGED
|
@@ -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.
|
|
575
|
+
VSCodeServer[_a] = { fqn: "@mavogel/cdk-vscode-server.VSCodeServer", version: "0.0.58" };
|
|
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
|

|
|
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
|
//
|
|
@@ -3,10 +3,10 @@ module github.com/MV-Consulting/cdk-vscode-server/mavogelcdkvscodeserver
|
|
|
3
3
|
go 1.23
|
|
4
4
|
|
|
5
5
|
require (
|
|
6
|
-
github.com/aws/jsii-runtime-go v1.
|
|
6
|
+
github.com/aws/jsii-runtime-go v1.115.0
|
|
7
7
|
github.com/MV-Consulting/mvc-projen/mavogelmvcprojen v0.0.7
|
|
8
8
|
github.com/aws/aws-cdk-go/awscdk/v2 v2.190.0
|
|
9
|
-
github.com/cdklabs/cdk-nag-go/cdknag/v2 v2.37.
|
|
9
|
+
github.com/cdklabs/cdk-nag-go/cdknag/v2 v2.37.45
|
|
10
10
|
github.com/aws/constructs-go/constructs/v10 v10.4.2
|
|
11
11
|
github.com/projen/projen-go/projen v0.91.8 // indirect
|
|
12
12
|
github.com/cdklabs/awscdk-asset-awscli-go/awscliv1/v2 v2.2.242 // indirect
|
|
@@ -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.
|
|
18
|
+
//go:embed mavogel-cdk-vscode-server-0.0.57.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.
|
|
31
|
+
_jsii_.Load("@mavogel/cdk-vscode-server", "0.0.57", tarball)
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.0.
|
|
1
|
+
0.0.57
|