@exabugs/dynamodb-client 1.11.4 → 1.13.0

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/integrations/react-admin/components/CloudWatchLog/CloudWatchLogButton.d.ts +14 -0
  3. package/dist/integrations/react-admin/components/CloudWatchLog/CloudWatchLogButton.d.ts.map +1 -0
  4. package/dist/integrations/react-admin/components/CloudWatchLog/CloudWatchLogButton.js +17 -0
  5. package/dist/integrations/react-admin/components/CloudWatchLog/CloudWatchLogButton.js.map +1 -0
  6. package/dist/integrations/react-admin/components/CloudWatchLog/cloudWatchLogUrl.d.ts +32 -0
  7. package/dist/integrations/react-admin/components/CloudWatchLog/cloudWatchLogUrl.d.ts.map +1 -0
  8. package/dist/integrations/react-admin/components/CloudWatchLog/cloudWatchLogUrl.js +63 -0
  9. package/dist/integrations/react-admin/components/CloudWatchLog/cloudWatchLogUrl.js.map +1 -0
  10. package/dist/integrations/react-admin/components/CloudWatchLog/index.d.ts +5 -0
  11. package/dist/integrations/react-admin/components/CloudWatchLog/index.d.ts.map +1 -0
  12. package/dist/integrations/react-admin/components/CloudWatchLog/index.js +3 -0
  13. package/dist/integrations/react-admin/components/CloudWatchLog/index.js.map +1 -0
  14. package/dist/integrations/react-admin/components/index.d.ts +3 -1
  15. package/dist/integrations/react-admin/components/index.d.ts.map +1 -1
  16. package/dist/integrations/react-admin/components/index.js +2 -1
  17. package/dist/integrations/react-admin/components/index.js.map +1 -1
  18. package/dist/integrations/react-admin/index.d.ts +2 -0
  19. package/dist/integrations/react-admin/index.d.ts.map +1 -1
  20. package/dist/integrations/react-admin/index.js +1 -0
  21. package/dist/integrations/react-admin/index.js.map +1 -1
  22. package/dist/notify/alerts.d.ts +145 -0
  23. package/dist/notify/alerts.d.ts.map +1 -0
  24. package/dist/notify/alerts.js +152 -0
  25. package/dist/notify/alerts.js.map +1 -0
  26. package/dist/notify/format.d.ts.map +1 -1
  27. package/dist/notify/format.js +2 -0
  28. package/dist/notify/format.js.map +1 -1
  29. package/dist/notify/handler.d.ts +63 -0
  30. package/dist/notify/handler.d.ts.map +1 -1
  31. package/dist/notify/handler.js +205 -3
  32. package/dist/notify/handler.js.map +1 -1
  33. package/dist/notify/index.d.ts +7 -3
  34. package/dist/notify/index.d.ts.map +1 -1
  35. package/dist/notify/index.js +3 -2
  36. package/dist/notify/index.js.map +1 -1
  37. package/dist/notify/logger.d.ts +25 -0
  38. package/dist/notify/logger.d.ts.map +1 -1
  39. package/dist/notify/logger.js +76 -0
  40. package/dist/notify/logger.js.map +1 -1
  41. package/dist/notify/normalize.d.ts +12 -1
  42. package/dist/notify/normalize.d.ts.map +1 -1
  43. package/dist/notify/normalize.js +82 -15
  44. package/dist/notify/normalize.js.map +1 -1
  45. package/dist/notify/store.d.ts +17 -3
  46. package/dist/notify/store.d.ts.map +1 -1
  47. package/dist/notify/store.js +87 -0
  48. package/dist/notify/store.js.map +1 -1
  49. package/dist/notify/types.d.ts +47 -0
  50. package/dist/notify/types.d.ts.map +1 -1
  51. package/dist/server/handler.cjs +3 -3
  52. package/dist/server/media-handler.cjs +2 -2
  53. package/dist/server/media-process-handler-dlq.cjs +2 -2
  54. package/dist/server/media-process-handler.cjs +2 -2
  55. package/dist/sharp-layer.zip +0 -0
  56. package/docs/NOTIFY.md +110 -2
  57. package/package.json +1 -1
@@ -4,7 +4,11 @@
4
4
  * ログ行の形は 3 種類ある。
5
5
  * 1. アプリの JSON 1 行: {"level":"warn","message":"…","event":"…"}
6
6
  * 2. Lambda のテキスト形式: `時刻<TAB>RequestId<TAB>INFO<TAB>{アプリの JSON}`
7
- * 3. Lambda の JSON 形式: {"timestamp":…,"level":"INFO","requestId":…,"message":"{アプリの JSON 文字列}"}
7
+ * 3. Lambda の JSON 形式: {"timestamp":…,"level":"INFO","requestId":…,"message":…}
8
+ * message は、アプリの JSON 文字列(`console.log(JSON.stringify(obj))`)か、
9
+ * オブジェクトそのもの(`console.log(obj)`。Lambda の Node ランタイムは、引数が 1 つなら、そのまま入れる)。
10
+ * どちらも、アプリのログとして同じに扱う。ただし errorType を持つオブジェクト(Invoke Error など)は、
11
+ * 実行基盤のエラーとして扱う(アプリのログより先に判定する)
8
12
  * アプリの JSON が見つかれば、その level とフィールドを優先する(外側の level は Lambda のもので、
9
13
  * console.log で出した warn は INFO になる)。
10
14
  */
@@ -25,7 +29,15 @@ const LAMBDA_FAILURE_LINE = /^(?:\S+\s+[0-9a-fA-F-]{8,}\s+|RequestId: \S+\s+(?:E
25
29
  const REPORT_FAILURE = /^REPORT RequestId:[\s\S]*\bStatus: (timeout|error|failure)\b/;
26
30
  const LAMBDA_FAILURE_LABEL = /^(Invoke Error|Unhandled Promise Rejection|Uncaught Exception)\b/;
27
31
  /** `時刻<TAB>RequestId<TAB>LEVEL<TAB>本文`(テキスト形式)。本文と外側の level を分ける */
28
- const TEXT_PREFIX = /^\S+\t(?:[0-9a-fA-F-]{8,}|undefined)\t(TRACE|DEBUG|INFO|WARN|ERROR|FATAL)\t([\s\S]*)$/;
32
+ const TEXT_PREFIX = /^\S+\t([0-9a-fA-F-]{8,}|undefined)\t(TRACE|DEBUG|INFO|WARN|ERROR|FATAL)\t([\s\S]*)$/;
33
+ /**
34
+ * 実行基盤の行(`RequestId: …`、`START / END / REPORT RequestId: …`)の RequestId。
35
+ * 行頭だけを見る(アプリの JSON の message の中の `RequestId:` は拾わない)
36
+ */
37
+ const REQUEST_ID_IN_TEXT = /^(?:(?:START|END|REPORT) )?RequestId: ([0-9a-fA-F-]{8,})/;
38
+ /** RequestId として受け付ける形(ログ参照に入れる。長さと文字を制限する) */
39
+ const REQUEST_ID = /^[0-9A-Za-z-]{8,64}$/;
40
+ const requestIdOf = (v) => typeof v === 'string' && v !== 'undefined' && REQUEST_ID.test(v) ? v : undefined;
29
41
  function asObj(text) {
30
42
  const t = text.trim();
31
43
  if (!t.startsWith('{'))
@@ -41,12 +53,21 @@ function asObj(text) {
41
53
  const str = (v) => (typeof v === 'string' ? v : undefined);
42
54
  const isAppLog = (o) => typeof o.level === 'string' || typeof o.event === 'string';
43
55
  function parseLine(line) {
56
+ const p = parseLineBody(line);
57
+ // Lambda の RequestId だけを使う(テキスト形式の接頭辞 → JSON 形式の外側 → `RequestId:` 行)。
58
+ // 接頭辞の無いアプリの JSON 行の requestId は使わない(Lambda のものとは限らない)
59
+ const requestId = requestIdOf(TEXT_PREFIX.exec(line)?.[1]) ??
60
+ p.requestId ??
61
+ requestIdOf(REQUEST_ID_IN_TEXT.exec(line)?.[1]);
62
+ return requestId ? { ...p, requestId } : p;
63
+ }
64
+ function parseLineBody(line) {
44
65
  let body = line;
45
66
  let outerLevel;
46
67
  const m = TEXT_PREFIX.exec(line);
47
68
  if (m) {
48
- outerLevel = m[1];
49
- body = m[2];
69
+ outerLevel = m[2];
70
+ body = m[3];
50
71
  }
51
72
  // Invoke Error など: `ラベル<TAB>{json}`
52
73
  const tab = body.indexOf('\t{');
@@ -71,12 +92,13 @@ function parseLine(line) {
71
92
  /^(TRACE|DEBUG|INFO|WARN|ERROR|FATAL)$/.test(outer.level) &&
72
93
  !('event' in outer);
73
94
  if (lambdaWrapped) {
95
+ const requestId = requestIdOf(outer.requestId);
74
96
  const level = str(outer.level);
75
97
  const msg = outer.message;
76
98
  // アプリの JSON 文字列が message に入っている
77
99
  const inner = typeof msg === 'string' ? asObj(msg) : undefined;
78
100
  if (inner && isAppLog(inner))
79
- return { app: inner, text: '', outerLevel: level };
101
+ return { app: inner, text: '', outerLevel: level, requestId };
80
102
  // エラーのオブジェクト(Invoke Error など)
81
103
  const errObj = typeof msg === 'object' && msg !== null ? msg : undefined;
82
104
  const withType = typeof outer.errorType === 'string'
@@ -85,10 +107,19 @@ function parseLine(line) {
85
107
  ? errObj
86
108
  : undefined;
87
109
  if (withType) {
88
- return { runtime: withType, text: typeof msg === 'string' ? msg : '', outerLevel: level };
110
+ return {
111
+ runtime: withType,
112
+ text: typeof msg === 'string' ? msg : '',
113
+ outerLevel: level,
114
+ requestId,
115
+ };
116
+ }
117
+ // アプリのログのオブジェクトが message に入っている(console.log(obj))。errorType を持つものは上で扱った
118
+ if (errObj && isAppLog(errObj)) {
119
+ return { app: errObj, text: '', outerLevel: level, requestId };
89
120
  }
90
121
  const text = typeof msg === 'string' ? msg : errObj ? JSON.stringify(errObj) : '';
91
- return { text, outerLevel: level };
122
+ return { text, outerLevel: level, requestId };
92
123
  }
93
124
  return { app: outer, text: '', outerLevel };
94
125
  }
@@ -106,9 +137,19 @@ function failure(message, ctx, occurredAt, target) {
106
137
  }
107
138
  /** ログ 1 行 → Notice(通知対象でなければ undefined) */
108
139
  export function noticeFromLogLine(line, ctx, at) {
140
+ return parseLogLine(line, ctx, at)?.notice;
141
+ }
142
+ /** ログ 1 行 → Notice と RequestId(ログから取れたとき) */
143
+ function parseLogLine(line, ctx, at) {
144
+ const p = parseLine(line);
145
+ const notice = noticeFromParsed(p, ctx, at);
146
+ if (!notice)
147
+ return undefined;
148
+ return { notice, requestId: p.requestId };
149
+ }
150
+ function noticeFromParsed(p, ctx, at) {
109
151
  const t = at !== undefined && Number.isFinite(at) ? new Date(at) : ctx.now();
110
152
  const occurredAt = (Number.isNaN(t.getTime()) ? ctx.now() : t).toISOString();
111
- const p = parseLine(line);
112
153
  const outer = p.outerLevel ? levelOf(p.outerLevel) : undefined;
113
154
  if (p.platformStatus && /^(timeout|error|failure)$/.test(p.platformStatus)) {
114
155
  return failure(`Lambda の実行が失敗しました(status: ${p.platformStatus})`, ctx, occurredAt);
@@ -168,17 +209,36 @@ export function noticeFromLogLine(line, ctx, at) {
168
209
  }
169
210
  return undefined;
170
211
  }
212
+ /** ロググループ・ストリーム名(CloudWatch の上限 512 文字。制御文字を含むものは使わない) */
213
+ const LOG_NAME = /^[^\u0000-\u001f\u007f]{1,512}$/;
214
+ const logName = (v) => typeof v === 'string' && LOG_NAME.test(v) ? v : undefined;
171
215
  function fromLogs(event, ctx) {
172
216
  const payload = JSON.parse(gunzipSync(Buffer.from(event.awslogs.data, 'base64')).toString('utf8'));
217
+ const logGroup = logName(payload.logGroup);
218
+ const logStream = logName(payload.logStream);
173
219
  const out = [];
174
220
  for (const e of payload.logEvents ?? []) {
175
221
  // 1 行の失敗で、同じバッチの他の行を失わない
176
222
  try {
177
223
  if (typeof e?.message !== 'string')
178
224
  continue;
179
- const n = noticeFromLogLine(e.message, ctx, e.timestamp);
180
- if (n)
181
- out.push(n);
225
+ const r = parseLogLine(e.message, ctx, e.timestamp);
226
+ if (!r)
227
+ continue;
228
+ const log = ctx.region && logGroup && logStream
229
+ ? {
230
+ region: ctx.region,
231
+ logGroup,
232
+ logStream,
233
+ timestamp: Date.parse(r.notice.occurredAt),
234
+ ...(r.requestId ? { requestId: r.requestId } : {}),
235
+ }
236
+ : undefined;
237
+ out.push({
238
+ notice: r.notice,
239
+ ...(log ? { log } : {}),
240
+ ...(logGroup ? { logGroup } : {}),
241
+ });
182
242
  }
183
243
  catch {
184
244
  continue;
@@ -230,16 +290,23 @@ function fromDirect(event, ctx) {
230
290
  }
231
291
  /** どの入力かを判別して Notice[] にする。未知の入力は空配列 */
232
292
  export function normalize(event, ctx) {
293
+ return normalizeWithLogs(event, ctx).map((x) => x.notice);
294
+ }
295
+ /** normalize と同じ。ログの購読から来た通知には、ログの所在(LogRef)を添える */
296
+ export function normalizeWithLogs(event, ctx) {
233
297
  if (typeof event !== 'object' || event === null)
234
298
  return [];
235
299
  const e = event;
236
300
  if (typeof e.awslogs?.data === 'string') {
237
301
  return fromLogs(e, ctx);
238
302
  }
239
- if (e['detail-type'] === 'CloudWatch Alarm State Change')
240
- return fromAlarm(e, ctx);
241
- if (typeof e.notice === 'object' && e.notice !== null)
242
- return fromDirect(e, ctx);
303
+ const wrap = (ns) => ns.map((notice) => ({ notice }));
304
+ if (e['detail-type'] === 'CloudWatch Alarm State Change') {
305
+ return wrap(fromAlarm(e, ctx));
306
+ }
307
+ if (typeof e.notice === 'object' && e.notice !== null) {
308
+ return wrap(fromDirect(e, ctx));
309
+ }
243
310
  return [];
244
311
  }
245
312
  //# sourceMappingURL=normalize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/notify/normalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/notify/normalize.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,28 @@
1
1
  import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb';
2
- import type { ClaimResult, NoticeStore } from './types.js';
3
- export declare class DynamoNoticeStore implements NoticeStore {
2
+ import type { AlertIndex, AlertTouchInput, AlertTouchResult, ClaimResult, NoticeStore } from './types.js';
3
+ export declare class DynamoNoticeStore implements NoticeStore, AlertIndex {
4
4
  private readonly doc;
5
5
  private readonly tableName;
6
6
  constructor(doc: Pick<DynamoDBDocumentClient, 'send'>, tableName: string);
7
7
  claim(fingerprint: string, windowSec: number, nowSec: number, count: number): Promise<ClaimResult>;
8
8
  release(fingerprint: string, token: number, restore: number): Promise<void>;
9
9
  consume(bucket: string, windowSec: number, nowSec: number, n: number): Promise<number>;
10
+ /**
11
+ * alerts の集計(行 `al#<alertKey>`)。UpdateItem だけを使う(GetItem の権限は要らない)。
12
+ * - 通常: 1 回の UpdateItem で、ID の確保(if_not_exists)・件数の加算・期限の延長を原子的に行う
13
+ * - 行が期限切れ(ttl が過去。ネイティブ TTL の削除の遅れで残っている)のときだけ、条件付きで作り直す
14
+ */
15
+ touchAlert(alertKey: string, input: AlertTouchInput): Promise<AlertTouchResult>;
10
16
  }
11
17
  /** テスト・ローカル用(1 プロセス内だけ) */
12
- export declare class MemoryNoticeStore implements NoticeStore {
18
+ export declare class MemoryNoticeStore implements NoticeStore, AlertIndex {
19
+ readonly alerts: Map<string, {
20
+ alertId: string;
21
+ cnt: number;
22
+ firstSeenAt: string;
23
+ lastSeenAt: string;
24
+ ttl: number;
25
+ }>;
13
26
  readonly fps: Map<string, {
14
27
  expiresAt: number;
15
28
  suppressed: number;
@@ -18,5 +31,6 @@ export declare class MemoryNoticeStore implements NoticeStore {
18
31
  claim(fingerprint: string, windowSec: number, nowSec: number, count: number): Promise<ClaimResult>;
19
32
  release(fingerprint: string, token: number, restore: number): Promise<void>;
20
33
  consume(bucket: string, windowSec: number, nowSec: number, n: number): Promise<number>;
34
+ touchAlert(alertKey: string, input: AlertTouchInput): Promise<AlertTouchResult>;
21
35
  }
22
36
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/notify/store.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAiB,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI3D,qBAAa,iBAAkB,YAAW,WAAW;IAEjD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,GAAG,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,EACzC,SAAS,EAAE,MAAM;IAG9B,KAAK,CACT,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC;IAiDjB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3E,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAc7F;AAED,2BAA2B;AAC3B,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,GAAG;mBAAgC,MAAM;oBAAc,MAAM;OAAM;IAC5E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAE9C,KAAK,CACT,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC;IAWjB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3E,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAM7F"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/notify/store.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAiB,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,WAAW,EACZ,MAAM,YAAY,CAAC;AAIpB,qBAAa,iBAAkB,YAAW,WAAW,EAAE,UAAU;IAE7D,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,GAAG,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,EACzC,SAAS,EAAE,MAAM;IAG9B,KAAK,CACT,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC;IAiDjB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3E,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAe5F;;;;OAIG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAwDtF;AAcD,2BAA2B;AAC3B,qBAAa,iBAAkB,YAAW,WAAW,EAAE,UAAU;IAC/D,QAAQ,CAAC,MAAM;iBAEF,MAAM;aAAO,MAAM;qBAAe,MAAM;oBAAc,MAAM;aAAO,MAAM;OAClF;IACJ,QAAQ,CAAC,GAAG;mBAAgC,MAAM;oBAAc,MAAM;OAAM;IAC5E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAE9C,KAAK,CACT,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC;IAWjB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3E,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOtF,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAmBtF"}
@@ -88,9 +88,77 @@ export class DynamoNoticeStore {
88
88
  }));
89
89
  return typeof r.Attributes?.cnt === 'number' ? r.Attributes.cnt : n;
90
90
  }
91
+ /**
92
+ * alerts の集計(行 `al#<alertKey>`)。UpdateItem だけを使う(GetItem の権限は要らない)。
93
+ * - 通常: 1 回の UpdateItem で、ID の確保(if_not_exists)・件数の加算・期限の延長を原子的に行う
94
+ * - 行が期限切れ(ttl が過去。ネイティブ TTL の削除の遅れで残っている)のときだけ、条件付きで作り直す
95
+ */
96
+ async touchAlert(alertKey, input) {
97
+ const pk = `al#${alertKey}`;
98
+ const ttl = input.nowSec + input.keepSec;
99
+ for (let attempt = 0; attempt < 2; attempt++) {
100
+ try {
101
+ const r = await this.doc.send(new UpdateCommand({
102
+ TableName: this.tableName,
103
+ Key: { pk },
104
+ UpdateExpression: 'SET alertId = if_not_exists(alertId, :id), firstSeenAt = if_not_exists(firstSeenAt, :first), lastSeenAt = :at, #ttl = :ttl ADD cnt :n',
105
+ ConditionExpression: 'attribute_not_exists(alertId) OR #ttl > :now',
106
+ ExpressionAttributeNames: { '#ttl': 'ttl' },
107
+ ExpressionAttributeValues: {
108
+ ':id': input.newId,
109
+ ':at': input.at,
110
+ ':first': input.firstAt ?? input.at,
111
+ ':ttl': ttl,
112
+ ':n': input.n,
113
+ ':now': input.nowSec,
114
+ },
115
+ ReturnValues: 'ALL_NEW',
116
+ }));
117
+ return touched(r.Attributes, input);
118
+ }
119
+ catch (e) {
120
+ if (!(e instanceof ConditionalCheckFailedException))
121
+ throw e;
122
+ }
123
+ // 期限切れの行: 新しい ID で作り直す(同時に作り直した別の実行がいれば、条件に失敗して上をやり直す)
124
+ try {
125
+ const r = await this.doc.send(new UpdateCommand({
126
+ TableName: this.tableName,
127
+ Key: { pk },
128
+ UpdateExpression: 'SET alertId = :id, firstSeenAt = :first, lastSeenAt = :at, #ttl = :ttl, cnt = :n',
129
+ ConditionExpression: '#ttl <= :now',
130
+ ExpressionAttributeNames: { '#ttl': 'ttl' },
131
+ ExpressionAttributeValues: {
132
+ ':id': input.newId,
133
+ ':at': input.at,
134
+ ':first': input.firstAt ?? input.at,
135
+ ':ttl': ttl,
136
+ ':n': input.n,
137
+ ':now': input.nowSec,
138
+ },
139
+ ReturnValues: 'ALL_NEW',
140
+ }));
141
+ return touched(r.Attributes, input);
142
+ }
143
+ catch (e) {
144
+ if (!(e instanceof ConditionalCheckFailedException))
145
+ throw e;
146
+ }
147
+ }
148
+ throw new Error('alerts の集計の更新が競合し続けました');
149
+ }
150
+ }
151
+ function touched(attrs, input) {
152
+ const alertId = typeof attrs?.alertId === 'string' ? attrs.alertId : undefined;
153
+ if (!alertId)
154
+ throw new Error('alerts の集計の更新の結果に alertId がありません');
155
+ const count = typeof attrs?.cnt === 'number' ? attrs.cnt : input.n;
156
+ const firstSeenAt = typeof attrs?.firstSeenAt === 'string' ? attrs.firstSeenAt : (input.firstAt ?? input.at);
157
+ return { alertId, count, firstSeenAt, isNew: alertId === input.newId };
91
158
  }
92
159
  /** テスト・ローカル用(1 プロセス内だけ) */
93
160
  export class MemoryNoticeStore {
161
+ alerts = new Map();
94
162
  fps = new Map();
95
163
  counts = new Map();
96
164
  async claim(fingerprint, windowSec, nowSec, count) {
@@ -115,5 +183,24 @@ export class MemoryNoticeStore {
115
183
  this.counts.set(key, total);
116
184
  return total;
117
185
  }
186
+ async touchAlert(alertKey, input) {
187
+ const cur = this.alerts.get(alertKey);
188
+ const ttl = input.nowSec + input.keepSec;
189
+ if (cur && cur.ttl > input.nowSec) {
190
+ cur.cnt += input.n;
191
+ cur.lastSeenAt = input.at;
192
+ cur.ttl = ttl;
193
+ return { alertId: cur.alertId, count: cur.cnt, firstSeenAt: cur.firstSeenAt, isNew: false };
194
+ }
195
+ const firstSeenAt = input.firstAt ?? input.at;
196
+ this.alerts.set(alertKey, {
197
+ alertId: input.newId,
198
+ cnt: input.n,
199
+ firstSeenAt,
200
+ lastSeenAt: input.at,
201
+ ttl,
202
+ });
203
+ return { alertId: input.newId, count: input.n, firstSeenAt, isNew: true };
204
+ }
118
205
  }
119
206
  //# sourceMappingURL=store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/notify/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/notify/store.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,21 @@ export interface Notice {
21
21
  occurredAt: string;
22
22
  /** 抑制していた同種の通知の件数(今回を含まない) */
23
23
  suppressed: number;
24
+ /** 管理画面の、この通知の alerts レコードの URL(記録に成功したときだけ。本文に `詳細:` の行で出す) */
25
+ detailUrl?: string;
26
+ }
27
+ /**
28
+ * ログ 1 件の所在(CloudWatch Logs)。ログの購読から来た通知にだけある。
29
+ * CloudWatch のコンソールで、ストリームとその時刻の前後を開くのに使う
30
+ */
31
+ export interface LogRef {
32
+ region: string;
33
+ logGroup: string;
34
+ logStream: string;
35
+ /** ログの時刻(エポックミリ秒) */
36
+ timestamp: number;
37
+ /** Lambda の RequestId(ログから取れたときだけ) */
38
+ requestId?: string;
24
39
  }
25
40
  /** 配信先 */
26
41
  export interface Channel {
@@ -55,6 +70,38 @@ export interface NoticeStore {
55
70
  /** 流量の計数を n 増やし、窓の中の件数(増やした後)を返す */
56
71
  consume(bucket: string, windowSec: number, nowSec: number, n: number): Promise<number>;
57
72
  }
73
+ /** AlertIndex.touchAlert の入力 */
74
+ export interface AlertTouchInput {
75
+ /** 新しい alerts レコードの ID(ULID)。行が無い・期限切れのときだけ使われる */
76
+ newId: string;
77
+ /** 今回の発生の件数 */
78
+ n: number;
79
+ /** 期限の判定と ttl の基準(エポック秒) */
80
+ nowSec: number;
81
+ /** 最後の発生の時刻(ISO 8601) */
82
+ at: string;
83
+ /** 最初の発生の時刻(ISO 8601。行が新しく作られるときの firstSeenAt。既定 at) */
84
+ firstAt?: string;
85
+ /** 最後の発生から、行を残す秒数(alerts の保存期間と揃える) */
86
+ keepSec: number;
87
+ }
88
+ export interface AlertTouchResult {
89
+ /** alerts レコードの ID */
90
+ alertId: string;
91
+ /** これまでの発生の件数(今回を含む) */
92
+ count: number;
93
+ /** 最初の発生の時刻(行が作られたときの値。ISO 8601) */
94
+ firstSeenAt: string;
95
+ /** 今回、新しい ID になったか */
96
+ isNew: boolean;
97
+ }
98
+ /**
99
+ * alerts の集計(指紋 → alerts レコードの ID と件数)。任意(NoticeStore とは別のインターフェース)。
100
+ * 1 回の原子的な更新で、ID の確保・件数の加算・期限の延長を行う(読み出しを要しない)
101
+ */
102
+ export interface AlertIndex {
103
+ touchAlert(alertKey: string, input: AlertTouchInput): Promise<AlertTouchResult>;
104
+ }
58
105
  export interface NotifyLogger {
59
106
  info(message: string, meta?: Record<string, unknown>): void;
60
107
  warn(message: string, meta?: Record<string, unknown>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/notify/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC;AAE5D,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU;AACV,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mBAAmB;AACnB,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,KAAK,CACH,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,oCAAoC;IACpC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxF;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC9D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/notify/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- // @exabugs/dynamodb-client v1.11.4
2
- // Built: 2026-10-13T23:23:22.957Z
1
+ // @exabugs/dynamodb-client v1.13.0
2
+ // Built: 2026-10-16T09:59:05.142Z
3
3
  "use strict";
4
4
  var __create = Object.create;
5
5
  var __defProp = Object.defineProperty;
@@ -38980,7 +38980,7 @@ async function handler(event) {
38980
38980
  return createCorsResponse(HTTP_STATUS.OK);
38981
38981
  }
38982
38982
  if (event.requestContext.http.method === "GET" && event.requestContext.http.path === "/version") {
38983
- const version = "1.11.4";
38983
+ const version = "1.13.0";
38984
38984
  return createSuccessResponse({ version, timestamp: (/* @__PURE__ */ new Date()).toISOString() }, requestId);
38985
38985
  }
38986
38986
  if (event.requestContext.http.method !== "POST") {
@@ -1,5 +1,5 @@
1
- // @exabugs/dynamodb-client v1.11.4
2
- // Built: 2026-10-13T23:23:22.957Z
1
+ // @exabugs/dynamodb-client v1.13.0
2
+ // Built: 2026-10-16T09:59:05.142Z
3
3
  "use strict";
4
4
  var __create = Object.create;
5
5
  var __defProp = Object.defineProperty;
@@ -1,5 +1,5 @@
1
- // @exabugs/dynamodb-client v1.11.4
2
- // Built: 2026-10-13T23:23:22.957Z
1
+ // @exabugs/dynamodb-client v1.13.0
2
+ // Built: 2026-10-16T09:59:05.142Z
3
3
  "use strict";
4
4
  var __create = Object.create;
5
5
  var __defProp = Object.defineProperty;
@@ -1,5 +1,5 @@
1
- // @exabugs/dynamodb-client v1.11.4
2
- // Built: 2026-10-13T23:23:22.957Z
1
+ // @exabugs/dynamodb-client v1.13.0
2
+ // Built: 2026-10-16T09:59:05.142Z
3
3
  "use strict";
4
4
  var __create = Object.create;
5
5
  var __defProp = Object.defineProperty;
Binary file