@mavogel/cdk-vscode-server 0.0.62 → 0.0.63
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 +117 -178
- package/API.md +96 -199
- package/CLAUDE.md +214 -57
- package/README.md +39 -1
- package/assets/idle-monitor-enabler/idle-monitor-enabler.lambda/index.js +67 -0
- package/assets/installer/installer.lambda/index.js +67 -30
- package/awslint.json +5 -0
- package/examples/git-repo/main.ts +30 -0
- package/integ-tests/integ.al2023.ts.snapshot/IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.assets.json +2 -2
- package/integ-tests/integ.al2023.ts.snapshot/IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.template.json +1 -1
- package/integ-tests/integ.al2023.ts.snapshot/IntegTestStackAl2023.assets.json +8 -8
- package/integ-tests/integ.al2023.ts.snapshot/IntegTestStackAl2023.template.json +257 -94
- package/integ-tests/{integ.stop-on-idle.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda → integ.al2023.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda}/index.js +67 -30
- package/integ-tests/{integ.ubuntu.ts.snapshot/asset.0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4 → integ.al2023.ts.snapshot/asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9}/index.js +50 -25
- package/integ-tests/integ.al2023.ts.snapshot/integ.json +1 -1
- package/integ-tests/integ.al2023.ts.snapshot/manifest.json +19 -3
- package/integ-tests/integ.al2023.ts.snapshot/tree.json +1 -1
- package/integ-tests/integ.custom-domain.ts.snapshot/IntegSetupVSCodeOnCustomDomainDefaultTestDeployAssert6982D514.assets.json +2 -2
- package/integ-tests/integ.custom-domain.ts.snapshot/IntegSetupVSCodeOnCustomDomainDefaultTestDeployAssert6982D514.template.json +1 -1
- package/integ-tests/integ.custom-domain.ts.snapshot/IntegTestStackCustomDomain.assets.json +8 -8
- package/integ-tests/integ.custom-domain.ts.snapshot/IntegTestStackCustomDomain.template.json +270 -94
- package/integ-tests/{integ.ubuntu.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda → integ.custom-domain.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda}/index.js +67 -30
- package/integ-tests/{integ.al2023.ts.snapshot/asset.0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4 → integ.custom-domain.ts.snapshot/asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9}/index.js +50 -25
- package/integ-tests/integ.custom-domain.ts.snapshot/integ.json +1 -1
- package/integ-tests/integ.custom-domain.ts.snapshot/manifest.json +19 -3
- package/integ-tests/integ.custom-domain.ts.snapshot/tree.json +1 -1
- package/integ-tests/integ.stop-on-idle.ts +1 -4
- package/integ-tests/integ.stop-on-idle.ts.snapshot/IntegStopOnIdleFunctionalityDefaultTestDeployAssertEECF3FC0.assets.json +2 -2
- package/integ-tests/integ.stop-on-idle.ts.snapshot/IntegStopOnIdleFunctionalityDefaultTestDeployAssertEECF3FC0.template.json +4 -4
- package/integ-tests/integ.stop-on-idle.ts.snapshot/IntegTestStackStopOnIdle.assets.json +23 -9
- package/integ-tests/integ.stop-on-idle.ts.snapshot/IntegTestStackStopOnIdle.template.json +755 -194
- package/integ-tests/integ.stop-on-idle.ts.snapshot/asset.22c8a6c357b704e370bef317ae1b52c59f684aa7640422a3d1dfe813d1f77853.lambda/index.js +67 -0
- package/integ-tests/{integ.custom-domain.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda → integ.stop-on-idle.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda}/index.js +67 -30
- package/integ-tests/integ.stop-on-idle.ts.snapshot/manifest.json +353 -72
- package/integ-tests/integ.stop-on-idle.ts.snapshot/tree.json +1 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.assets.json +2 -2
- package/integ-tests/integ.ubuntu.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.template.json +1 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/IntegTestStackUbuntu22.assets.json +8 -8
- package/integ-tests/integ.ubuntu.ts.snapshot/IntegTestStackUbuntu22.template.json +270 -94
- package/integ-tests/{integ.al2023.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda → integ.ubuntu.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda}/index.js +67 -30
- package/integ-tests/{integ.custom-domain.ts.snapshot/asset.0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4 → integ.ubuntu.ts.snapshot/asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9}/index.js +50 -25
- package/integ-tests/integ.ubuntu.ts.snapshot/integ.json +1 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/manifest.json +19 -3
- package/integ-tests/integ.ubuntu.ts.snapshot/tree.json +1 -1
- package/integ-tests/integ.ubuntu24.ts +69 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.assets.json +33 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.template.json +337 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/IntegTestStackUbuntu24.assets.json +118 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/IntegTestStackUbuntu24.template.json +2725 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.2819175352ad1ce0dae768e83fc328fb70fb5f10b4a8ff0ccbcb791f02b0716d/index.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda/index.js +180 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.530055f7515b3f0a47900f5df37e729ba40ca977b2d07b952bdefa2b8f883f42.bundle/index.js +30676 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.781ab0ab74634cdaf61539ab208ab777829ef07097ac21f95b9e15a3b1eedc1b.lambda/index.js +57 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.9d043014be736e8162bcc7ec5590cc6d2ff24fd0d9c73a5c5d595151c5fdad00/index.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js +3 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9/index.js +6017 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/integ.json +23 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/manifest.json +1473 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/tree.json +1 -0
- package/lib/idle-monitor/idle-monitor-function.js +2 -2
- package/lib/idle-monitor/idle-monitor.js +5 -2
- package/lib/idle-monitor-enabler/idle-monitor-enabler-function.d.ts +13 -0
- package/lib/idle-monitor-enabler/idle-monitor-enabler-function.js +22 -0
- package/lib/idle-monitor-enabler/idle-monitor-enabler.d.ts +25 -0
- package/lib/idle-monitor-enabler/idle-monitor-enabler.js +76 -0
- package/lib/idle-monitor-enabler/idle-monitor-enabler.lambda.d.ts +9 -0
- package/lib/idle-monitor-enabler/idle-monitor-enabler.lambda.js +48 -0
- package/lib/index.d.ts +0 -1
- package/lib/index.js +1 -2
- package/lib/installer/installer-function.js +2 -2
- package/lib/installer/installer.d.ts +100 -0
- package/lib/installer/installer.js +658 -301
- package/lib/installer/installer.lambda.js +64 -30
- package/lib/secret-retriever/secret-retriever-function.js +2 -2
- package/lib/vscode-server.d.ts +40 -0
- package/lib/vscode-server.js +27 -4
- package/package.json +12 -12
- package/.claude/hooks/file_checker.sh +0 -178
- package/.qlty/.gitignore +0 -7
- package/.qlty/configs/.yamllint.yaml +0 -21
- package/.qlty/qlty.toml +0 -115
- package/assets/status-check/status-check.lambda/index.js +0 -123
- package/integ-tests/integ.al2023.ts.snapshot/cdk.out +0 -1
- package/integ-tests/integ.al2023.ts.snapshot/read.13497.1.lock +0 -1
- package/integ-tests/integ.custom-domain.ts.snapshot/read.13497.1.lock +0 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/cdk.out +0 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/read.13497.1.lock +0 -1
- package/lib/status-check/status-check-function.d.ts +0 -13
- package/lib/status-check/status-check-function.js +0 -22
- package/lib/status-check/status-check.d.ts +0 -36
- package/lib/status-check/status-check.js +0 -109
- package/lib/status-check/status-check.lambda.d.ts +0 -2
- package/lib/status-check/status-check.lambda.js +0 -104
package/API.md
CHANGED
|
@@ -143,160 +143,6 @@ The EventBridge rule that triggers idle monitoring checks.
|
|
|
143
143
|
---
|
|
144
144
|
|
|
145
145
|
|
|
146
|
-
### StatusCheckApi <a name="StatusCheckApi" id="@mavogel/cdk-vscode-server.StatusCheckApi"></a>
|
|
147
|
-
|
|
148
|
-
API Gateway endpoint for checking instance status, used by resume page for polling.
|
|
149
|
-
|
|
150
|
-
#### Initializers <a name="Initializers" id="@mavogel/cdk-vscode-server.StatusCheckApi.Initializer"></a>
|
|
151
|
-
|
|
152
|
-
```typescript
|
|
153
|
-
import { StatusCheckApi } from '@mavogel/cdk-vscode-server'
|
|
154
|
-
|
|
155
|
-
new StatusCheckApi(scope: Construct, id: string, props: StatusCheckApiProps)
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
| **Name** | **Type** | **Description** |
|
|
159
|
-
| --- | --- | --- |
|
|
160
|
-
| <code><a href="#@mavogel/cdk-vscode-server.StatusCheckApi.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
|
|
161
|
-
| <code><a href="#@mavogel/cdk-vscode-server.StatusCheckApi.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
|
|
162
|
-
| <code><a href="#@mavogel/cdk-vscode-server.StatusCheckApi.Initializer.parameter.props">props</a></code> | <code><a href="#@mavogel/cdk-vscode-server.StatusCheckApiProps">StatusCheckApiProps</a></code> | *No description.* |
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
##### `scope`<sup>Required</sup> <a name="scope" id="@mavogel/cdk-vscode-server.StatusCheckApi.Initializer.parameter.scope"></a>
|
|
167
|
-
|
|
168
|
-
- *Type:* constructs.Construct
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
##### `id`<sup>Required</sup> <a name="id" id="@mavogel/cdk-vscode-server.StatusCheckApi.Initializer.parameter.id"></a>
|
|
173
|
-
|
|
174
|
-
- *Type:* string
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
##### `props`<sup>Required</sup> <a name="props" id="@mavogel/cdk-vscode-server.StatusCheckApi.Initializer.parameter.props"></a>
|
|
179
|
-
|
|
180
|
-
- *Type:* <a href="#@mavogel/cdk-vscode-server.StatusCheckApiProps">StatusCheckApiProps</a>
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
#### Methods <a name="Methods" id="Methods"></a>
|
|
185
|
-
|
|
186
|
-
| **Name** | **Description** |
|
|
187
|
-
| --- | --- |
|
|
188
|
-
| <code><a href="#@mavogel/cdk-vscode-server.StatusCheckApi.toString">toString</a></code> | Returns a string representation of this construct. |
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
##### `toString` <a name="toString" id="@mavogel/cdk-vscode-server.StatusCheckApi.toString"></a>
|
|
193
|
-
|
|
194
|
-
```typescript
|
|
195
|
-
public toString(): string
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
Returns a string representation of this construct.
|
|
199
|
-
|
|
200
|
-
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
|
|
201
|
-
|
|
202
|
-
| **Name** | **Description** |
|
|
203
|
-
| --- | --- |
|
|
204
|
-
| <code><a href="#@mavogel/cdk-vscode-server.StatusCheckApi.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
##### `isConstruct` <a name="isConstruct" id="@mavogel/cdk-vscode-server.StatusCheckApi.isConstruct"></a>
|
|
209
|
-
|
|
210
|
-
```typescript
|
|
211
|
-
import { StatusCheckApi } from '@mavogel/cdk-vscode-server'
|
|
212
|
-
|
|
213
|
-
StatusCheckApi.isConstruct(x: any)
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
Checks if `x` is a construct.
|
|
217
|
-
|
|
218
|
-
Use this method instead of `instanceof` to properly detect `Construct`
|
|
219
|
-
instances, even when the construct library is symlinked.
|
|
220
|
-
|
|
221
|
-
Explanation: in JavaScript, multiple copies of the `constructs` library on
|
|
222
|
-
disk are seen as independent, completely different libraries. As a
|
|
223
|
-
consequence, the class `Construct` in each copy of the `constructs` library
|
|
224
|
-
is seen as a different class, and an instance of one class will not test as
|
|
225
|
-
`instanceof` the other class. `npm install` will not create installations
|
|
226
|
-
like this, but users may manually symlink construct libraries together or
|
|
227
|
-
use a monorepo tool: in those cases, multiple copies of the `constructs`
|
|
228
|
-
library can be accidentally installed, and `instanceof` will behave
|
|
229
|
-
unpredictably. It is safest to avoid using `instanceof`, and using
|
|
230
|
-
this type-testing method instead.
|
|
231
|
-
|
|
232
|
-
###### `x`<sup>Required</sup> <a name="x" id="@mavogel/cdk-vscode-server.StatusCheckApi.isConstruct.parameter.x"></a>
|
|
233
|
-
|
|
234
|
-
- *Type:* any
|
|
235
|
-
|
|
236
|
-
Any object.
|
|
237
|
-
|
|
238
|
-
---
|
|
239
|
-
|
|
240
|
-
#### Properties <a name="Properties" id="Properties"></a>
|
|
241
|
-
|
|
242
|
-
| **Name** | **Type** | **Description** |
|
|
243
|
-
| --- | --- | --- |
|
|
244
|
-
| <code><a href="#@mavogel/cdk-vscode-server.StatusCheckApi.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
|
|
245
|
-
| <code><a href="#@mavogel/cdk-vscode-server.StatusCheckApi.property.api">api</a></code> | <code>aws-cdk-lib.aws_apigateway.RestApi</code> | The API Gateway REST API. |
|
|
246
|
-
| <code><a href="#@mavogel/cdk-vscode-server.StatusCheckApi.property.apiUrl">apiUrl</a></code> | <code>string</code> | The URL of the status check API endpoint. |
|
|
247
|
-
| <code><a href="#@mavogel/cdk-vscode-server.StatusCheckApi.property.function">function</a></code> | <code>aws-cdk-lib.aws_lambda.Function</code> | The Lambda function that handles status check requests. |
|
|
248
|
-
|
|
249
|
-
---
|
|
250
|
-
|
|
251
|
-
##### `node`<sup>Required</sup> <a name="node" id="@mavogel/cdk-vscode-server.StatusCheckApi.property.node"></a>
|
|
252
|
-
|
|
253
|
-
```typescript
|
|
254
|
-
public readonly node: Node;
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
- *Type:* constructs.Node
|
|
258
|
-
|
|
259
|
-
The tree node.
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
##### `api`<sup>Required</sup> <a name="api" id="@mavogel/cdk-vscode-server.StatusCheckApi.property.api"></a>
|
|
264
|
-
|
|
265
|
-
```typescript
|
|
266
|
-
public readonly api: RestApi;
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
- *Type:* aws-cdk-lib.aws_apigateway.RestApi
|
|
270
|
-
|
|
271
|
-
The API Gateway REST API.
|
|
272
|
-
|
|
273
|
-
---
|
|
274
|
-
|
|
275
|
-
##### `apiUrl`<sup>Required</sup> <a name="apiUrl" id="@mavogel/cdk-vscode-server.StatusCheckApi.property.apiUrl"></a>
|
|
276
|
-
|
|
277
|
-
```typescript
|
|
278
|
-
public readonly apiUrl: string;
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
- *Type:* string
|
|
282
|
-
|
|
283
|
-
The URL of the status check API endpoint.
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
##### `function`<sup>Required</sup> <a name="function" id="@mavogel/cdk-vscode-server.StatusCheckApi.property.function"></a>
|
|
288
|
-
|
|
289
|
-
```typescript
|
|
290
|
-
public readonly function: Function;
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
- *Type:* aws-cdk-lib.aws_lambda.Function
|
|
294
|
-
|
|
295
|
-
The Lambda function that handles status check requests.
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
|
|
299
|
-
|
|
300
146
|
### VSCodeServer <a name="VSCodeServer" id="@mavogel/cdk-vscode-server.VSCodeServer"></a>
|
|
301
147
|
|
|
302
148
|
VSCodeServer - spin it up in under 10 minutes.
|
|
@@ -555,51 +401,6 @@ to pass before stopping instances
|
|
|
555
401
|
|
|
556
402
|
---
|
|
557
403
|
|
|
558
|
-
### StatusCheckApiProps <a name="StatusCheckApiProps" id="@mavogel/cdk-vscode-server.StatusCheckApiProps"></a>
|
|
559
|
-
|
|
560
|
-
Props for StatusCheckApi construct.
|
|
561
|
-
|
|
562
|
-
#### Initializer <a name="Initializer" id="@mavogel/cdk-vscode-server.StatusCheckApiProps.Initializer"></a>
|
|
563
|
-
|
|
564
|
-
```typescript
|
|
565
|
-
import { StatusCheckApiProps } from '@mavogel/cdk-vscode-server'
|
|
566
|
-
|
|
567
|
-
const statusCheckApiProps: StatusCheckApiProps = { ... }
|
|
568
|
-
```
|
|
569
|
-
|
|
570
|
-
#### Properties <a name="Properties" id="Properties"></a>
|
|
571
|
-
|
|
572
|
-
| **Name** | **Type** | **Description** |
|
|
573
|
-
| --- | --- | --- |
|
|
574
|
-
| <code><a href="#@mavogel/cdk-vscode-server.StatusCheckApiProps.property.instance">instance</a></code> | <code>aws-cdk-lib.aws_ec2.IInstance</code> | The EC2 instance to check status for. |
|
|
575
|
-
| <code><a href="#@mavogel/cdk-vscode-server.StatusCheckApiProps.property.stateTable">stateTable</a></code> | <code>aws-cdk-lib.aws_dynamodb.ITable</code> | DynamoDB table for tracking instance state. |
|
|
576
|
-
|
|
577
|
-
---
|
|
578
|
-
|
|
579
|
-
##### `instance`<sup>Required</sup> <a name="instance" id="@mavogel/cdk-vscode-server.StatusCheckApiProps.property.instance"></a>
|
|
580
|
-
|
|
581
|
-
```typescript
|
|
582
|
-
public readonly instance: IInstance;
|
|
583
|
-
```
|
|
584
|
-
|
|
585
|
-
- *Type:* aws-cdk-lib.aws_ec2.IInstance
|
|
586
|
-
|
|
587
|
-
The EC2 instance to check status for.
|
|
588
|
-
|
|
589
|
-
---
|
|
590
|
-
|
|
591
|
-
##### `stateTable`<sup>Required</sup> <a name="stateTable" id="@mavogel/cdk-vscode-server.StatusCheckApiProps.property.stateTable"></a>
|
|
592
|
-
|
|
593
|
-
```typescript
|
|
594
|
-
public readonly stateTable: ITable;
|
|
595
|
-
```
|
|
596
|
-
|
|
597
|
-
- *Type:* aws-cdk-lib.aws_dynamodb.ITable
|
|
598
|
-
|
|
599
|
-
DynamoDB table for tracking instance state.
|
|
600
|
-
|
|
601
|
-
---
|
|
602
|
-
|
|
603
404
|
### VSCodeServerProps <a name="VSCodeServerProps" id="@mavogel/cdk-vscode-server.VSCodeServerProps"></a>
|
|
604
405
|
|
|
605
406
|
Properties for the VSCodeServer construct.
|
|
@@ -618,12 +419,15 @@ const vSCodeServerProps: VSCodeServerProps = { ... }
|
|
|
618
419
|
| --- | --- | --- |
|
|
619
420
|
| <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. |
|
|
620
421
|
| <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. |
|
|
422
|
+
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.assetZipS3Path">assetZipS3Path</a></code> | <code>string</code> | S3 path to a zip file containing assets to extract into the home folder. |
|
|
621
423
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.autoCreateCertificate">autoCreateCertificate</a></code> | <code>boolean</code> | 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. |
|
|
424
|
+
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.branchZipS3Path">branchZipS3Path</a></code> | <code>string</code> | S3 path to a zip file containing git branches to create in the home folder repository. |
|
|
622
425
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.certificateArn">certificateArn</a></code> | <code>string</code> | ARN of existing ACM certificate for the domain Certificate must be in us-east-1 region for CloudFront Cannot be used together with autoCreateCertificate. |
|
|
623
426
|
| <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. |
|
|
624
427
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.devServerPort">devServerPort</a></code> | <code>number</code> | Port for the DevServer. |
|
|
625
428
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.domainName">domainName</a></code> | <code>string</code> | 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. |
|
|
626
429
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.enableAutoStop">enableAutoStop</a></code> | <code>boolean</code> | Enable automatic instance stop when idle Monitors CloudFront metrics and stops the EC2 instance after specified idle time. |
|
|
430
|
+
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.folderZipS3Path">folderZipS3Path</a></code> | <code>string</code> | S3 path to a zip file containing multiple folders to create as separate git repositories. |
|
|
627
431
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.homeFolder">homeFolder</a></code> | <code>string</code> | Folder to open in VS Code server. |
|
|
628
432
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.hostedZoneId">hostedZoneId</a></code> | <code>string</code> | Route53 hosted zone ID for the domain Required when using autoCreateCertificate If not provided, will attempt to lookup hosted zone from domain name. |
|
|
629
433
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.idleCheckIntervalMinutes">idleCheckIntervalMinutes</a></code> | <code>number</code> | How often to check for idle activity (in minutes) Only applies when enableAutoStop is true. |
|
|
@@ -634,6 +438,7 @@ const vSCodeServerProps: VSCodeServerProps = { ... }
|
|
|
634
438
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.instanceOperatingSystem">instanceOperatingSystem</a></code> | <code><a href="#@mavogel/cdk-vscode-server.LinuxFlavorType">LinuxFlavorType</a></code> | VSCode Server EC2 operating system. |
|
|
635
439
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.instanceSize">instanceSize</a></code> | <code>aws-cdk-lib.aws_ec2.InstanceSize</code> | VSCode Server EC2 instance size. |
|
|
636
440
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.instanceVolumeSize">instanceVolumeSize</a></code> | <code>number</code> | VSCode Server EC2 instance volume size in GB. |
|
|
441
|
+
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.repoUrl">repoUrl</a></code> | <code>string</code> | Remote git repository URL to clone into the home folder. |
|
|
637
442
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.skipStatusChecks">skipStatusChecks</a></code> | <code>boolean</code> | Skip instance status checks in IdleMonitor When true, IdleMonitor will stop idle instances even if status checks haven't passed This is useful for integration tests where status check initialization time exceeds the test timeout limits. |
|
|
638
443
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.vscodePassword">vscodePassword</a></code> | <code>string</code> | Password for VSCode Server. |
|
|
639
444
|
| <code><a href="#@mavogel/cdk-vscode-server.VSCodeServerProps.property.vscodeUser">vscodeUser</a></code> | <code>string</code> | UserName for VSCode Server. |
|
|
@@ -666,6 +471,29 @@ Additional tags to add to the instance.
|
|
|
666
471
|
|
|
667
472
|
---
|
|
668
473
|
|
|
474
|
+
##### `assetZipS3Path`<sup>Optional</sup> <a name="assetZipS3Path" id="@mavogel/cdk-vscode-server.VSCodeServerProps.property.assetZipS3Path"></a>
|
|
475
|
+
|
|
476
|
+
```typescript
|
|
477
|
+
public readonly assetZipS3Path: string;
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
- *Type:* string
|
|
481
|
+
- *Default:* no assets downloaded
|
|
482
|
+
|
|
483
|
+
S3 path to a zip file containing assets to extract into the home folder.
|
|
484
|
+
|
|
485
|
+
The zip contents will be extracted to the user's home folder and committed to git.
|
|
486
|
+
Use this to provide workshop materials, sample data, or configuration files.
|
|
487
|
+
|
|
488
|
+
---
|
|
489
|
+
|
|
490
|
+
*Example*
|
|
491
|
+
|
|
492
|
+
```typescript
|
|
493
|
+
'my-workshop-bucket/assets/workshop-materials.zip'
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
|
|
669
497
|
##### `autoCreateCertificate`<sup>Optional</sup> <a name="autoCreateCertificate" id="@mavogel/cdk-vscode-server.VSCodeServerProps.property.autoCreateCertificate"></a>
|
|
670
498
|
|
|
671
499
|
```typescript
|
|
@@ -679,6 +507,29 @@ Auto-create ACM certificate with DNS validation in us-east-1 region Requires hos
|
|
|
679
507
|
|
|
680
508
|
---
|
|
681
509
|
|
|
510
|
+
##### `branchZipS3Path`<sup>Optional</sup> <a name="branchZipS3Path" id="@mavogel/cdk-vscode-server.VSCodeServerProps.property.branchZipS3Path"></a>
|
|
511
|
+
|
|
512
|
+
```typescript
|
|
513
|
+
public readonly branchZipS3Path: string;
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
- *Type:* string
|
|
517
|
+
- *Default:* no branches created
|
|
518
|
+
|
|
519
|
+
S3 path to a zip file containing git branches to create in the home folder repository.
|
|
520
|
+
|
|
521
|
+
Each top-level folder in the zip becomes a separate git branch with that folder's contents.
|
|
522
|
+
Ideal for creating step-by-step workshop branches (e.g., step-1, step-2, solution).
|
|
523
|
+
|
|
524
|
+
---
|
|
525
|
+
|
|
526
|
+
*Example*
|
|
527
|
+
|
|
528
|
+
```typescript
|
|
529
|
+
'my-workshop-bucket/branches/lab-branches.zip' (containing folders: step-1/, step-2/, solution/)
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
|
|
682
533
|
##### `certificateArn`<sup>Optional</sup> <a name="certificateArn" id="@mavogel/cdk-vscode-server.VSCodeServerProps.property.certificateArn"></a>
|
|
683
534
|
|
|
684
535
|
```typescript
|
|
@@ -744,6 +595,29 @@ Enable automatic instance stop when idle Monitors CloudFront metrics and stops t
|
|
|
744
595
|
|
|
745
596
|
---
|
|
746
597
|
|
|
598
|
+
##### `folderZipS3Path`<sup>Optional</sup> <a name="folderZipS3Path" id="@mavogel/cdk-vscode-server.VSCodeServerProps.property.folderZipS3Path"></a>
|
|
599
|
+
|
|
600
|
+
```typescript
|
|
601
|
+
public readonly folderZipS3Path: string;
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
- *Type:* string
|
|
605
|
+
- *Default:* no folders created
|
|
606
|
+
|
|
607
|
+
S3 path to a zip file containing multiple folders to create as separate git repositories.
|
|
608
|
+
|
|
609
|
+
Each top-level folder in the zip becomes a separate subfolder in the parent directory,
|
|
610
|
+
initialized as its own git repository. Useful for multi-project workshops.
|
|
611
|
+
|
|
612
|
+
---
|
|
613
|
+
|
|
614
|
+
*Example*
|
|
615
|
+
|
|
616
|
+
```typescript
|
|
617
|
+
'my-workshop-bucket/folders/workshop-projects.zip' (containing folders: frontend/, backend/, infrastructure/)
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
|
|
747
621
|
##### `homeFolder`<sup>Optional</sup> <a name="homeFolder" id="@mavogel/cdk-vscode-server.VSCodeServerProps.property.homeFolder"></a>
|
|
748
622
|
|
|
749
623
|
```typescript
|
|
@@ -874,6 +748,29 @@ VSCode Server EC2 instance volume size in GB.
|
|
|
874
748
|
|
|
875
749
|
---
|
|
876
750
|
|
|
751
|
+
##### `repoUrl`<sup>Optional</sup> <a name="repoUrl" id="@mavogel/cdk-vscode-server.VSCodeServerProps.property.repoUrl"></a>
|
|
752
|
+
|
|
753
|
+
```typescript
|
|
754
|
+
public readonly repoUrl: string;
|
|
755
|
+
```
|
|
756
|
+
|
|
757
|
+
- *Type:* string
|
|
758
|
+
- *Default:* no repo cloned
|
|
759
|
+
|
|
760
|
+
Remote git repository URL to clone into the home folder.
|
|
761
|
+
|
|
762
|
+
If provided, the repository will be cloned into the user's home folder during instance setup.
|
|
763
|
+
Useful for pre-populating workshop environments with starter code.
|
|
764
|
+
|
|
765
|
+
---
|
|
766
|
+
|
|
767
|
+
*Example*
|
|
768
|
+
|
|
769
|
+
```typescript
|
|
770
|
+
'https://github.com/aws-samples/my-workshop-repo.git'
|
|
771
|
+
```
|
|
772
|
+
|
|
773
|
+
|
|
877
774
|
##### `skipStatusChecks`<sup>Optional</sup> <a name="skipStatusChecks" id="@mavogel/cdk-vscode-server.VSCodeServerProps.property.skipStatusChecks"></a>
|
|
878
775
|
|
|
879
776
|
```typescript
|