@reventlessdev/rescript-pulumi-aws 2.4.0-alpha.45 → 2.4.0-alpha.47
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/CHANGELOG.md +15 -0
- package/package.json +1 -1
- package/src/AppSync/AppSync_Resolver_Functions.res +15 -1
- package/src/AppSync/AppSync_Resolver_Functions.res.mjs +5 -2
- package/src/EC2/EC2_VpcEndpoint.res +4 -0
- package/src/EC2/EC2_VpcEndpoint.res.mjs +1 -0
- package/src/Lambda/Lambda.res +26 -0
- package/src/Lambda/Lambda.res.mjs +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# 2.4.0-alpha.47 (2026-07-08)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **reventless-aws:** exclude internal rows from Platform_Plugins connection scan ([df14af2](https://github.com/ReventlessDev/reventless-core/commit/df14af2cbd70d49062f2afc03418cdbf18d151d6))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# 2.4.0-alpha.46 (2026-07-06)
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **rescript-pulumi-aws:** add subnetIds to EC2_VpcEndpoint binding ([77fb606](https://github.com/ReventlessDev/reventless-core/commit/77fb6069d76b8026c7c12db433e5f6717b037d39))
|
|
18
|
+
* **reventless-aws:** deploy-time Postgres schema provisioning via in-VPC migration Lambda (A3) ([44c8eee](https://github.com/ReventlessDev/reventless-core/commit/44c8eeebd351e883f2d2e21460108e2963a061ce))
|
|
19
|
+
|
|
20
|
+
|
|
6
21
|
# 2.4.0-alpha.45 (2026-07-05)
|
|
7
22
|
|
|
8
23
|
### Features
|
package/package.json
CHANGED
|
@@ -430,7 +430,21 @@ let listAllItemsConnection = (
|
|
|
430
430
|
~filterFields: array<string>=[],
|
|
431
431
|
~rangeFields: array<string>=[],
|
|
432
432
|
~sortFields: array<string>=[],
|
|
433
|
+
// When set, emit an always-on `attribute_exists(#<attr>)` FilterExpression clause
|
|
434
|
+
// (ANDed with any client filters) so rows lacking that attribute never enter the
|
|
435
|
+
// Connection. Used for read models whose physical DynamoDB table co-hosts internal
|
|
436
|
+
// bookkeeping rows written outside the projection (e.g. the Plugins admin RM, whose
|
|
437
|
+
// table also holds `deploy-schema:*` / `plugin-info:*` rows with no `name`). Those
|
|
438
|
+
// rows would otherwise resolve `name`/`status`/`version` to null and violate the
|
|
439
|
+
// non-null GraphQL connection schema, nulling the whole connection.
|
|
440
|
+
~requireAttribute: option<string>=?,
|
|
433
441
|
) => {
|
|
442
|
+
let requireAttributeClause = switch requireAttribute {
|
|
443
|
+
| Some(attr) => `
|
|
444
|
+
names['#${attr}'] = '${attr}';
|
|
445
|
+
parts.push('attribute_exists(#${attr})');`
|
|
446
|
+
| None => ""
|
|
447
|
+
}
|
|
434
448
|
let filterClauses =
|
|
435
449
|
filterFields
|
|
436
450
|
->Array.map(f => `
|
|
@@ -514,7 +528,7 @@ export function request(ctx) {
|
|
|
514
528
|
return key;
|
|
515
529
|
});
|
|
516
530
|
parts.push('#id IN (' + placeholders.join(', ') + ')');
|
|
517
|
-
}${filterClauses}${rangeClauses}
|
|
531
|
+
}${filterClauses}${rangeClauses}${requireAttributeClause}
|
|
518
532
|
const req = {
|
|
519
533
|
operation: 'Scan',
|
|
520
534
|
limit: (ctx.args.first ?? 50),
|
|
@@ -360,10 +360,13 @@ export function request(ctx) {
|
|
|
360
360
|
` + resultResponseCode + `
|
|
361
361
|
`;
|
|
362
362
|
|
|
363
|
-
function listAllItemsConnection(labelField, filterFieldsOpt, rangeFieldsOpt, sortFieldsOpt) {
|
|
363
|
+
function listAllItemsConnection(labelField, filterFieldsOpt, rangeFieldsOpt, sortFieldsOpt, requireAttribute) {
|
|
364
364
|
let filterFields = filterFieldsOpt !== undefined ? filterFieldsOpt : [];
|
|
365
365
|
let rangeFields = rangeFieldsOpt !== undefined ? rangeFieldsOpt : [];
|
|
366
366
|
let sortFields = sortFieldsOpt !== undefined ? sortFieldsOpt : [];
|
|
367
|
+
let requireAttributeClause = requireAttribute !== undefined ? `
|
|
368
|
+
names['#` + requireAttribute + `'] = '` + requireAttribute + `';
|
|
369
|
+
parts.push('attribute_exists(#` + requireAttribute + `)');` : "";
|
|
367
370
|
let filterClauses = filterFields.map(f => `
|
|
368
371
|
if (filter.` + f + `Eq !== undefined && filter.` + f + `Eq !== null && filter.` + f + `Eq !== '') {
|
|
369
372
|
names['#` + f + `'] = '` + f + `';
|
|
@@ -427,7 +430,7 @@ export function request(ctx) {
|
|
|
427
430
|
return key;
|
|
428
431
|
});
|
|
429
432
|
parts.push('#id IN (' + placeholders.join(', ') + ')');
|
|
430
|
-
}` + filterClauses + rangeClauses + `
|
|
433
|
+
}` + filterClauses + rangeClauses + requireAttributeClause + `
|
|
431
434
|
const req = {
|
|
432
435
|
operation: 'Scan',
|
|
433
436
|
limit: (ctx.args.first ?? 50),
|
|
@@ -11,6 +11,9 @@ type args = {
|
|
|
11
11
|
/** routeTableIds are only relevant if endpointType = Gateway */
|
|
12
12
|
routeTableIds?: array<Pulumi.Input.t<string>>,
|
|
13
13
|
securityGroupIds?: array<Pulumi.Input.t<string>>,
|
|
14
|
+
/** Subnets the Interface endpoint's ENIs are placed in (one per AZ). Required
|
|
15
|
+
for `Interface` endpoints; ignored for `Gateway`. */
|
|
16
|
+
subnetIds?: array<Pulumi.Input.t<string>>,
|
|
14
17
|
serviceName: Pulumi.Input.t<string>,
|
|
15
18
|
tags?: Aws.tags,
|
|
16
19
|
/** Default: Gateway */
|
|
@@ -33,6 +36,7 @@ let make: (~name: string, ~args: args, ~opts: Pulumi.CustomResourceOptions.t=?)
|
|
|
33
36
|
policy: ?args.policy,
|
|
34
37
|
privateDnsEnabled: ?args.privateDnsEnabled,
|
|
35
38
|
securityGroupIds: ?args.securityGroupIds,
|
|
39
|
+
subnetIds: ?args.subnetIds,
|
|
36
40
|
serviceName: args.serviceName,
|
|
37
41
|
tags: args.tags->EC2_Common.supplementTagsWithName(name),
|
|
38
42
|
vpcEndpointType: ?args.vpcEndpointType,
|
|
@@ -9,6 +9,7 @@ function make(name, args, opts) {
|
|
|
9
9
|
policy: args.policy,
|
|
10
10
|
privateDnsEnabled: args.privateDnsEnabled,
|
|
11
11
|
securityGroupIds: args.securityGroupIds,
|
|
12
|
+
subnetIds: args.subnetIds,
|
|
12
13
|
serviceName: args.serviceName,
|
|
13
14
|
tags: EC2_Common$PulumiAws.supplementTagsWithName(args.tags, name),
|
|
14
15
|
vpcEndpointType: args.vpcEndpointType,
|
package/src/Lambda/Lambda.res
CHANGED
|
@@ -268,6 +268,32 @@ module Permission = {
|
|
|
268
268
|
"Permission"
|
|
269
269
|
}
|
|
270
270
|
|
|
271
|
+
module Invocation = {
|
|
272
|
+
/** `aws.lambda.Invocation` — invokes the function **during `pulumi up`** (a
|
|
273
|
+
data-plane action, not a control-plane resource) and re-invokes whenever
|
|
274
|
+
`input` or `triggers` change. Used for one-shot deploy-time work such as
|
|
275
|
+
running a schema migration from inside the target VPC, so the deploy runner
|
|
276
|
+
itself needs no network path to the private resource. */
|
|
277
|
+
type args = {
|
|
278
|
+
functionName: Pulumi.Input.t<string>,
|
|
279
|
+
/** JSON string passed as the Lambda event payload. */
|
|
280
|
+
input: Pulumi.Input.t<string>,
|
|
281
|
+
/** Optional map whose changes force a re-invocation independently of `input`. */
|
|
282
|
+
triggers?: Pulumi.Input.t<dict<string>>,
|
|
283
|
+
qualifier?: Pulumi.Input.t<string>,
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
type t = {
|
|
287
|
+
id: Pulumi.Output.t<string>,
|
|
288
|
+
/** The function's JSON response, as a string. */
|
|
289
|
+
result: Pulumi.Output.t<string>,
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
@module("@pulumi/aws") @scope("lambda") @new
|
|
293
|
+
external make: (~name: string, ~args: args, ~opts: Pulumi.CustomResourceOptions.t=?) => t =
|
|
294
|
+
"Invocation"
|
|
295
|
+
}
|
|
296
|
+
|
|
271
297
|
let defaultLoggingPolicyDocument = PolicyDocument.make(
|
|
272
298
|
~statements=[
|
|
273
299
|
{
|
|
@@ -72,6 +72,8 @@ let $$Function = {};
|
|
|
72
72
|
|
|
73
73
|
let Permission = {};
|
|
74
74
|
|
|
75
|
+
let Invocation = {};
|
|
76
|
+
|
|
75
77
|
let defaultLoggingPolicyDocument = PolicyDocument$PulumiAws.make(undefined, undefined, [{
|
|
76
78
|
Sid: "DefaultLambdaLoggingPolicy",
|
|
77
79
|
Effect: "Allow",
|
|
@@ -89,6 +91,7 @@ export {
|
|
|
89
91
|
CallbackFunction,
|
|
90
92
|
$$Function,
|
|
91
93
|
Permission,
|
|
94
|
+
Invocation,
|
|
92
95
|
defaultLoggingPolicyDocument,
|
|
93
96
|
}
|
|
94
97
|
/* arn Not a pure module */
|