@reventlessdev/reventless-aws 3.0.0-alpha.402 → 3.0.0-alpha.404
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
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
|
+
# 3.0.0-alpha.404 (2026-10-29)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **core:** no log line prints a personal value ([af03709](https://github.com/ReventlessDev/reventless-core/commit/af037090770992c254e5dc69ab71ef251bad2db9))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# 3.0.0-alpha.403 (2026-10-29)
|
|
14
|
+
|
|
15
|
+
**Note:** Version bump only for package @reventlessdev/reventless-aws
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
6
21
|
# 3.0.0-alpha.402 (2026-10-29)
|
|
7
22
|
|
|
8
23
|
* feat(core)!: the caller's IP address leaves the messages a request causes ([aa9e8c7](https://github.com/ReventlessDev/reventless-core/commit/aa9e8c79c0360528a5cfeda2bb88d1da52f28674))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-aws",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.404",
|
|
4
4
|
"description": "AWS adapters for Reventless",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"bin": {
|
|
@@ -24,17 +24,17 @@
|
|
|
24
24
|
"yaml": "^2.8.3",
|
|
25
25
|
"@reventlessdev/rescript-aws-sdk": "3.0.0-alpha.36",
|
|
26
26
|
"@reventlessdev/rescript-effect": "1.0.0-alpha.1",
|
|
27
|
-
"@reventlessdev/rescript-jest": "1.0.0-alpha.13",
|
|
28
27
|
"@reventlessdev/rescript-node": "2.0.0-alpha.23",
|
|
28
|
+
"@reventlessdev/rescript-jest": "1.0.0-alpha.13",
|
|
29
29
|
"@reventlessdev/rescript-pulumi-aws": "3.0.0-alpha.35",
|
|
30
|
-
"@reventlessdev/rescript-uuid": "2.0.0-alpha.1",
|
|
31
30
|
"@reventlessdev/rescript-pulumi-pulumi": "3.0.0-alpha.0",
|
|
32
|
-
"@reventlessdev/
|
|
33
|
-
"@reventlessdev/reventless-infra": "3.0.0-alpha.209",
|
|
34
|
-
"@reventlessdev/reventless-interop": "3.0.0-alpha.42",
|
|
35
|
-
"@reventlessdev/reventless-spec": "3.0.0-alpha.180",
|
|
31
|
+
"@reventlessdev/rescript-uuid": "2.0.0-alpha.1",
|
|
36
32
|
"@reventlessdev/rescript-web": "1.0.0-alpha.8",
|
|
37
|
-
"@reventlessdev/reventless-
|
|
33
|
+
"@reventlessdev/reventless-interop": "3.0.0-alpha.42",
|
|
34
|
+
"@reventlessdev/reventless-core": "3.0.0-alpha.314",
|
|
35
|
+
"@reventlessdev/reventless-infra": "3.0.0-alpha.211",
|
|
36
|
+
"@reventlessdev/reventless-postgres": "3.0.0-alpha.178",
|
|
37
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.182"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"rescript": "12.3.1",
|
|
@@ -522,6 +522,9 @@ let _makeApiResourceWith = (
|
|
|
522
522
|
let appsyncLogConfig: AppSync.GraphQLApi.logConfig = {
|
|
523
523
|
cloudwatchLogsRoleArn: iamRole.arn->Pulumi.Output.asInput,
|
|
524
524
|
fieldLogLevel: AppSync.GraphQLApi.ERROR->Pulumi.Input.make,
|
|
525
|
+
// Without it an error line carries the request's arguments and the resolver's
|
|
526
|
+
// context, which hold whatever the caller sent, a person's name included.
|
|
527
|
+
excludeVerboseContent: true->Pulumi.Input.make,
|
|
525
528
|
}
|
|
526
529
|
|
|
527
530
|
// Resolve the Cognito UserPool — either supplied by the caller (plugin-stack
|
|
@@ -268,9 +268,11 @@ function _makeApiResourceWith(name, schema, userPoolConfig, opts) {
|
|
|
268
268
|
role: iamRole.name
|
|
269
269
|
}, customOpts);
|
|
270
270
|
let appsyncLogConfig_cloudwatchLogsRoleArn = iamRole.arn;
|
|
271
|
+
let appsyncLogConfig_excludeVerboseContent = true;
|
|
271
272
|
let appsyncLogConfig = {
|
|
272
273
|
cloudwatchLogsRoleArn: appsyncLogConfig_cloudwatchLogsRoleArn,
|
|
273
|
-
fieldLogLevel: "ERROR"
|
|
274
|
+
fieldLogLevel: "ERROR",
|
|
275
|
+
excludeVerboseContent: appsyncLogConfig_excludeVerboseContent
|
|
274
276
|
};
|
|
275
277
|
let userPoolConfigOut = userPoolConfig !== undefined ? userPoolConfig : Auth_Cognito$ReventlessAws.make(name + `-auth`, undefined).apply(c => ({
|
|
276
278
|
userPoolId: c.userPoolId,
|
|
@@ -88,9 +88,10 @@ let lambdaRole = IAM.Role.makeWithDefaultPolicy(
|
|
|
88
88
|
// bug removes the message that was stranded by it. Seven of them were still
|
|
89
89
|
// cycling twelve hours after the fix that made them impossible.
|
|
90
90
|
//
|
|
91
|
-
// What the loop costs is now a function of the line, not the count: the
|
|
92
|
-
//
|
|
93
|
-
//
|
|
91
|
+
// What the loop costs is now a function of the line, not the count: the first
|
|
92
|
+
// delivery writes the record's ids, kind, size and attribute names — never its
|
|
93
|
+
// body, which is a command or event and may be about a person — and every
|
|
94
|
+
// redelivery after it costs a single identity line. A stranded
|
|
94
95
|
// message is ~150 KB over a fortnight rather than ~17 MB, which is small enough
|
|
95
96
|
// that ending the loop early is an operator's job rather than the topology's.
|
|
96
97
|
let entryPointCode = `export const handler = async (event) => {
|
|
@@ -104,7 +105,12 @@ let entryPointCode = `export const handler = async (event) => {
|
|
|
104
105
|
" receiveCount=" + receiveCount +
|
|
105
106
|
" bodyBytes=" + (record?.body?.length ?? 0);
|
|
106
107
|
if (receiveCount <= 1) {
|
|
107
|
-
|
|
108
|
+
// Ids, type and size, never the body: a dead letter is a command or event,
|
|
109
|
+
// and its payload may be about a person.
|
|
110
|
+
const body = (() => { try { return JSON.parse(record?.body ?? "null") } catch { return null } })();
|
|
111
|
+
const kind = body?.command?.TAG ?? body?.event?.TAG ?? (body?.Message ? "sns" : "unknown");
|
|
112
|
+
console.error("DEAD LETTER ITEM: " + identity + " kind=" + kind +
|
|
113
|
+
" attributes=" + JSON.stringify(Object.keys(record?.messageAttributes ?? {})));
|
|
108
114
|
} else {
|
|
109
115
|
console.error("DEAD LETTER REDELIVERY: " + identity);
|
|
110
116
|
}
|
|
@@ -56,7 +56,12 @@ let entryPointCode = `export const handler = async (event) => {
|
|
|
56
56
|
" receiveCount=" + receiveCount +
|
|
57
57
|
" bodyBytes=" + (record?.body?.length ?? 0);
|
|
58
58
|
if (receiveCount <= 1) {
|
|
59
|
-
|
|
59
|
+
// Ids, type and size, never the body: a dead letter is a command or event,
|
|
60
|
+
// and its payload may be about a person.
|
|
61
|
+
const body = (() => { try { return JSON.parse(record?.body ?? "null") } catch { return null } })();
|
|
62
|
+
const kind = body?.command?.TAG ?? body?.event?.TAG ?? (body?.Message ? "sns" : "unknown");
|
|
63
|
+
console.error("DEAD LETTER ITEM: " + identity + " kind=" + kind +
|
|
64
|
+
" attributes=" + JSON.stringify(Object.keys(record?.messageAttributes ?? {})));
|
|
60
65
|
} else {
|
|
61
66
|
console.error("DEAD LETTER REDELIVERY: " + identity);
|
|
62
67
|
}
|