@exabugs/dynamodb-client 1.13.1 → 1.14.1
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 +27 -0
- package/README.md +5 -15
- package/bin/dynamodb-access-check.js +6 -0
- package/dist/server/handler.cjs +3 -3
- package/dist/server/handler.cjs.map +1 -1
- package/dist/server/media-handler.cjs +2 -2
- package/dist/server/media-process-handler-dlq.cjs +2 -2
- package/dist/server/media-process-handler.cjs +2 -2
- package/dist/server/operations/parameterConverter.js +3 -3
- package/dist/server/operations/parameterConverter.js.map +1 -1
- package/dist/tools/dynamodb-access-check/allowlist.d.ts +39 -0
- package/dist/tools/dynamodb-access-check/allowlist.d.ts.map +1 -0
- package/dist/tools/dynamodb-access-check/allowlist.js +34 -0
- package/dist/tools/dynamodb-access-check/allowlist.js.map +1 -0
- package/dist/tools/dynamodb-access-check/check.d.ts +24 -0
- package/dist/tools/dynamodb-access-check/check.d.ts.map +1 -0
- package/dist/tools/dynamodb-access-check/check.js +40 -0
- package/dist/tools/dynamodb-access-check/check.js.map +1 -0
- package/dist/tools/dynamodb-access-check/cli.d.ts +10 -0
- package/dist/tools/dynamodb-access-check/cli.d.ts.map +1 -0
- package/dist/tools/dynamodb-access-check/cli.js +96 -0
- package/dist/tools/dynamodb-access-check/cli.js.map +1 -0
- package/dist/tools/dynamodb-access-check/forbidden.d.ts +15 -0
- package/dist/tools/dynamodb-access-check/forbidden.d.ts.map +1 -0
- package/dist/tools/dynamodb-access-check/forbidden.js +34 -0
- package/dist/tools/dynamodb-access-check/forbidden.js.map +1 -0
- package/dist/tools/dynamodb-access-check/glob.d.ts +8 -0
- package/dist/tools/dynamodb-access-check/glob.d.ts.map +1 -0
- package/dist/tools/dynamodb-access-check/glob.js +37 -0
- package/dist/tools/dynamodb-access-check/glob.js.map +1 -0
- package/dist/tools/dynamodb-access-check/index.d.ts +5 -0
- package/dist/tools/dynamodb-access-check/index.d.ts.map +1 -0
- package/dist/tools/dynamodb-access-check/index.js +4 -0
- package/dist/tools/dynamodb-access-check/index.js.map +1 -0
- package/dist/tools/dynamodb-access-check/run.d.ts +2 -0
- package/dist/tools/dynamodb-access-check/run.d.ts.map +1 -0
- package/dist/tools/dynamodb-access-check/run.js +3 -0
- package/dist/tools/dynamodb-access-check/run.js.map +1 -0
- package/dist/tools/dynamodb-access-check/scan.d.ts +25 -0
- package/dist/tools/dynamodb-access-check/scan.d.ts.map +1 -0
- package/dist/tools/dynamodb-access-check/scan.js +151 -0
- package/dist/tools/dynamodb-access-check/scan.js.map +1 -0
- package/dist/tools/eslint/index.d.ts +28 -0
- package/dist/tools/eslint/index.d.ts.map +1 -0
- package/dist/tools/eslint/index.js +34 -0
- package/dist/tools/eslint/index.js.map +1 -0
- package/docs/DYNAMODB_ACCESS.md +152 -0
- package/package.json +11 -11
- package/terraform/media/main.tf +9 -0
- package/bin/dynamodb-mcp.js +0 -12
- package/dist/mcp/adapter.d.ts +0 -36
- package/dist/mcp/adapter.d.ts.map +0 -1
- package/dist/mcp/adapter.js +0 -213
- package/dist/mcp/adapter.js.map +0 -1
- package/dist/mcp/cli.d.ts +0 -2
- package/dist/mcp/cli.d.ts.map +0 -1
- package/dist/mcp/cli.js +0 -122
- package/dist/mcp/cli.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -7
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js +0 -6
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -18
- package/dist/mcp/server.d.ts.map +0 -1
- package/dist/mcp/server.js +0 -127
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/tools/deleteMany.d.ts +0 -12
- package/dist/mcp/tools/deleteMany.d.ts.map +0 -1
- package/dist/mcp/tools/deleteMany.js +0 -24
- package/dist/mcp/tools/deleteMany.js.map +0 -1
- package/dist/mcp/tools/deleteOne.d.ts +0 -12
- package/dist/mcp/tools/deleteOne.d.ts.map +0 -1
- package/dist/mcp/tools/deleteOne.js +0 -24
- package/dist/mcp/tools/deleteOne.js.map +0 -1
- package/dist/mcp/tools/find.d.ts +0 -12
- package/dist/mcp/tools/find.d.ts.map +0 -1
- package/dist/mcp/tools/find.js +0 -56
- package/dist/mcp/tools/find.js.map +0 -1
- package/dist/mcp/tools/findMany.d.ts +0 -12
- package/dist/mcp/tools/findMany.d.ts.map +0 -1
- package/dist/mcp/tools/findMany.js +0 -28
- package/dist/mcp/tools/findMany.js.map +0 -1
- package/dist/mcp/tools/findManyReference.d.ts +0 -12
- package/dist/mcp/tools/findManyReference.d.ts.map +0 -1
- package/dist/mcp/tools/findManyReference.js +0 -32
- package/dist/mcp/tools/findManyReference.js.map +0 -1
- package/dist/mcp/tools/findOne.d.ts +0 -12
- package/dist/mcp/tools/findOne.d.ts.map +0 -1
- package/dist/mcp/tools/findOne.js +0 -24
- package/dist/mcp/tools/findOne.js.map +0 -1
- package/dist/mcp/tools/generated.d.ts +0 -11
- package/dist/mcp/tools/generated.d.ts.map +0 -1
- package/dist/mcp/tools/generated.js +0 -171
- package/dist/mcp/tools/generated.js.map +0 -1
- package/dist/mcp/tools/index.d.ts +0 -13
- package/dist/mcp/tools/index.d.ts.map +0 -1
- package/dist/mcp/tools/index.js +0 -29
- package/dist/mcp/tools/index.js.map +0 -1
- package/dist/mcp/tools/insertMany.d.ts +0 -12
- package/dist/mcp/tools/insertMany.d.ts.map +0 -1
- package/dist/mcp/tools/insertMany.js +0 -28
- package/dist/mcp/tools/insertMany.js.map +0 -1
- package/dist/mcp/tools/insertOne.d.ts +0 -12
- package/dist/mcp/tools/insertOne.d.ts.map +0 -1
- package/dist/mcp/tools/insertOne.js +0 -24
- package/dist/mcp/tools/insertOne.js.map +0 -1
- package/dist/mcp/tools/updateMany.d.ts +0 -12
- package/dist/mcp/tools/updateMany.d.ts.map +0 -1
- package/dist/mcp/tools/updateMany.js +0 -28
- package/dist/mcp/tools/updateMany.js.map +0 -1
- package/dist/mcp/tools/updateOne.d.ts +0 -12
- package/dist/mcp/tools/updateOne.d.ts.map +0 -1
- package/dist/mcp/tools/updateOne.js +0 -38
- package/dist/mcp/tools/updateOne.js.map +0 -1
- package/dist/mcp/types.d.ts +0 -50
- package/dist/mcp/types.d.ts.map +0 -1
- package/dist/mcp/types.js +0 -49
- package/dist/mcp/types.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.14.1] - 2026-10-18
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **terraform/media**: media の sharp レイヤー(`aws_lambda_layer_version.sharp`)が、ライブラリの版を上げるたびに置き換わる問題を直した。pnpm では `filename` のパスにライブラリの版が入る(`node_modules/.pnpm/@exabugs+dynamodb-client@<版>_…`)ため、版を上げるだけで `filename`(ForceNew)が変わり、zip の中身が同じでもレイヤーが置き換わっていた。`lifecycle.ignore_changes = [filename]` を足した。中身(`source_code_hash`)が変わったときだけ置き換わる
|
|
15
|
+
|
|
16
|
+
## [1.14.0] - 2026-10-18
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- **`dynamodb-access-check` CLI**: DynamoDB への直接アクセスの検査。ソースの import(`@aws-sdk/client-dynamodb` / `lib-dynamodb` / `util-dynamodb`、aws-sdk v2 の DynamoDB クライアント、このライブラリの内部で DynamoDB に触れる `server` / `server/handler` / `server/media-handler` / `server/media-process-handler` / `server/media-process-handler-dlq`)と、Terraform の `dynamodb:*` の権限(`resource` / `data` ブロック、AWS 管理ポリシー `AmazonDynamoDB*`)を走査し、許可リスト(JSON)と照合する。許可リストに無い違反は終了コード 1、許可リストにあるのに検出されないエントリと行番号のずれは警告。引数: `--allowlist <path>`(必須)、`--root <dir>`、`--src <dir>...`、`--tf <dir>...`、`--ignore <glob>...`。許可リストの形式(`file` / `terraform` / `kind` / `reason` / `todo` / `exclude` / `line` / `eslintOnly` / `notes`)と使い方は [docs/DYNAMODB_ACCESS.md](docs/DYNAMODB_ACCESS.md)
|
|
21
|
+
- **`@exabugs/dynamodb-client/eslint`**: `createDynamoDbGuardConfig({ allowlistPath, files?, message?, patterns? })`。同じ許可リストから、ESLint の flat config(`no-restricted-imports` と、許可するファイルの overrides)を返す。ESLint 自体は import しない
|
|
22
|
+
|
|
23
|
+
### Removed
|
|
24
|
+
|
|
25
|
+
- **MCP を削除した**: `dynamodb-mcp`(`bin`)、`@exabugs/dynamodb-client/mcp`(`exports`)、`generate-mcp-tools`、`@modelcontextprotocol/sdk`(依存)。利用者はいないと確認済み。破壊的変更だが、利用者がいないため minor とする
|
|
26
|
+
|
|
27
|
+
### 利用側(asanowa・astro・asaichi)の移行手順
|
|
28
|
+
|
|
29
|
+
3 リポジトリでコピーしていた検査スクリプト(`check-dynamodb-access.mjs`)と ESLint の生成(`eslint.dynamodb-guard.cjs`)を、このライブラリのものに置き換える。
|
|
30
|
+
|
|
31
|
+
1. `@exabugs/dynamodb-client` を 1.14.0 に上げる
|
|
32
|
+
2. 許可リストの JSON を、共通の形式にする: コードのエントリは `{ "file": "<パス>", "kind", "reason", "todo" }`(asanowa の `type: "code"` の `path` は `file` に)。Terraform のエントリは `{ "file": "<.tf のパス>", "terraform": "<resource 名>", ... }`(asanowa の `type: "iam"` の `path` / `resource`)。astro の `source` / `terraform`(ファイルごと・`imports` / `actions` の配列)は、ファイルごとに 1 エントリにする(import・アクション単位の許可はなくなる)
|
|
33
|
+
3. スクリプトの呼び出しを CLI にする。例(asanowa): `npx dynamodb-access-check --allowlist infra/scripts/dynamodb-access-allowlist.json --src . --tf . --ignore <旧スクリプトがあれば、そのパス>`。例(astro): `--src apps functions packages scripts --tf infra --ignore '**/__tests__/**' '**/generated/**' '**/*.test.*' '**/*.spec.*'`(テストを検査から外していた場合)
|
|
34
|
+
4. ESLint は `eslint.dynamodb-guard.cjs` を、`createDynamoDbGuardConfig({ allowlistPath })` に置き換える
|
|
35
|
+
5. 旧スクリプトと `eslint.dynamodb-guard.cjs` を削除する。旧スクリプトの結果と同じ(違反ゼロ、同じ警告)になることを確かめる
|
|
36
|
+
|
|
10
37
|
## [1.13.1] - 2026-10-16
|
|
11
38
|
|
|
12
39
|
### Fixed
|
package/README.md
CHANGED
|
@@ -570,7 +570,7 @@ We welcome contributions!
|
|
|
570
570
|
|
|
571
571
|
### OpenAPI-Driven Development
|
|
572
572
|
|
|
573
|
-
This project uses OpenAPI specification as the Single Source of Truth (SSOT) for
|
|
573
|
+
This project uses OpenAPI specification as the Single Source of Truth (SSOT) for TypeScript type definitions.
|
|
574
574
|
|
|
575
575
|
#### Workflow
|
|
576
576
|
|
|
@@ -581,11 +581,11 @@ This project uses OpenAPI specification as the Single Source of Truth (SSOT) for
|
|
|
581
581
|
vim docs/specs/openapi.yaml
|
|
582
582
|
```
|
|
583
583
|
|
|
584
|
-
2. **Generate
|
|
584
|
+
2. **Generate Types**
|
|
585
585
|
|
|
586
586
|
```bash
|
|
587
|
-
# Regenerate
|
|
588
|
-
npm run generate-
|
|
587
|
+
# Regenerate TypeScript types from OpenAPI spec
|
|
588
|
+
npm run generate-types
|
|
589
589
|
```
|
|
590
590
|
|
|
591
591
|
3. **Verify Changes**
|
|
@@ -599,17 +599,7 @@ This project uses OpenAPI specification as the Single Source of Truth (SSOT) for
|
|
|
599
599
|
|
|
600
600
|
- **Location**: `docs/specs/openapi.yaml`
|
|
601
601
|
- **Components**: `docs/specs/components/schemas/`
|
|
602
|
-
- **
|
|
603
|
-
- **Output**: `src/mcp/tools/generated.ts` (auto-generated, do not edit manually)
|
|
604
|
-
|
|
605
|
-
#### Key Design Principles
|
|
606
|
-
|
|
607
|
-
- **OpenAPI as SSOT**: All MCP tool definitions are derived from OpenAPI spec
|
|
608
|
-
- **Minimal Inference**: Generator extracts information directly from OpenAPI, avoiding complex inference logic
|
|
609
|
-
- **Type Safety**: Generated TypeScript code maintains full type safety
|
|
610
|
-
- **Consistency**: All tools follow the same structure and naming conventions
|
|
611
|
-
|
|
612
|
-
For more details, see the [OpenAPI to MCP Generator Spec](.kiro/specs/openapi-to-mcp-generator/design.md).
|
|
602
|
+
- **Output**: `src/__generated__/` (auto-generated, do not edit manually)
|
|
613
603
|
|
|
614
604
|
---
|
|
615
605
|
|
package/dist/server/handler.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// @exabugs/dynamodb-client v1.
|
|
2
|
-
// Built: 2026-10-
|
|
1
|
+
// @exabugs/dynamodb-client v1.14.1
|
|
2
|
+
// Built: 2026-10-18T06:44:22.491Z
|
|
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.
|
|
38983
|
+
const version = "1.14.1";
|
|
38984
38984
|
return createSuccessResponse({ version, timestamp: (/* @__PURE__ */ new Date()).toISOString() }, requestId);
|
|
38985
38985
|
}
|
|
38986
38986
|
if (event.requestContext.http.method !== "POST") {
|