@exabugs/dynamodb-client 0.1.1 → 0.2.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.
- package/CHANGELOG.md +57 -0
- package/README.md +216 -187
- package/dist/client/Collection.d.ts +14 -9
- package/dist/client/Collection.d.ts.map +1 -1
- package/dist/client/Collection.js +3 -9
- package/dist/client/Collection.js.map +1 -1
- package/dist/client/Database.d.ts +1 -3
- package/dist/client/Database.d.ts.map +1 -1
- package/dist/client/Database.js +2 -7
- package/dist/client/Database.js.map +1 -1
- package/dist/client/DynamoClient.d.ts +1 -1
- package/dist/client/DynamoClient.d.ts.map +1 -1
- package/dist/client/DynamoClient.js +2 -5
- package/dist/client/DynamoClient.js.map +1 -1
- package/dist/client/FindCursor.d.ts +1 -3
- package/dist/client/FindCursor.d.ts.map +1 -1
- package/dist/client/FindCursor.js +1 -5
- package/dist/client/FindCursor.js.map +1 -1
- package/dist/client/index.iam.d.ts +1 -1
- package/dist/client/index.iam.d.ts.map +1 -1
- package/dist/client/index.iam.js.map +1 -1
- package/dist/integrations/react-admin/dataProvider.d.ts +0 -1
- package/dist/integrations/react-admin/dataProvider.d.ts.map +1 -1
- package/dist/integrations/react-admin/dataProvider.js +10 -11
- package/dist/integrations/react-admin/dataProvider.js.map +1 -1
- package/dist/integrations/react-admin/types.d.ts +0 -2
- package/dist/integrations/react-admin/types.d.ts.map +1 -1
- package/dist/scripts/generate-shadow-config.d.ts +3 -0
- package/dist/scripts/generate-shadow-config.d.ts.map +1 -0
- package/dist/scripts/generate-shadow-config.js +159 -0
- package/dist/scripts/generate-shadow-config.js.map +1 -0
- package/dist/scripts/repair-shadows.js +1 -1
- package/dist/scripts/repair-shadows.js.map +1 -1
- package/dist/server/handler.cjs +2 -2
- package/dist/shadows/generator.d.ts +14 -3
- package/dist/shadows/generator.d.ts.map +1 -1
- package/dist/shadows/generator.js +19 -0
- package/dist/shadows/generator.js.map +1 -1
- package/dist/shadows/index.d.ts +3 -2
- package/dist/shadows/index.d.ts.map +1 -1
- package/dist/shadows/index.js +1 -1
- package/dist/shadows/index.js.map +1 -1
- package/dist/shadows/schema.d.ts +60 -0
- package/dist/shadows/schema.d.ts.map +1 -0
- package/dist/shadows/schema.js +8 -0
- package/dist/shadows/schema.js.map +1 -0
- package/dist/shadows/types.d.ts +1 -5
- package/dist/shadows/types.d.ts.map +1 -1
- package/package.json +7 -4
- package/terraform/examples/advanced/README.md +0 -129
- package/terraform/examples/advanced/main.tf +0 -158
- package/terraform/examples/advanced/shadow.config.json +0 -35
- package/terraform/examples/advanced/variables.tf +0 -28
- package/terraform/examples/basic/README.md +0 -53
- package/terraform/examples/basic/main.tf +0 -99
- package/terraform/examples/basic/variables.tf +0 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repair-shadows.js","sourceRoot":"","sources":["../../src/scripts/repair-shadows.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"repair-shadows.js","sourceRoot":"","sources":["../../src/scripts/repair-shadows.ts"],"names":[],"mappings":"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"}
|
package/dist/server/handler.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ShadowFieldType } from './
|
|
1
|
+
import type { ShadowFieldType } from './schema.js';
|
|
2
2
|
/**
|
|
3
3
|
* 文字列値をエスケープする
|
|
4
4
|
* ルール: # → ##, スペース → #
|
|
@@ -21,6 +21,13 @@ export declare function formatNumber(value: number | null | undefined): string;
|
|
|
21
21
|
* @returns UTC ISO 8601形式の文字列
|
|
22
22
|
*/
|
|
23
23
|
export declare function formatDatetime(value: string | Date | null | undefined): string;
|
|
24
|
+
/**
|
|
25
|
+
* boolean値をフォーマットする
|
|
26
|
+
*
|
|
27
|
+
* @param value - boolean値(null/undefinedも許容)
|
|
28
|
+
* @returns 'true' または 'false' または空文字
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatBoolean(value: boolean | null | undefined): string;
|
|
24
31
|
/**
|
|
25
32
|
* フィールド値を型に応じてフォーマットする
|
|
26
33
|
*
|
|
@@ -28,7 +35,7 @@ export declare function formatDatetime(value: string | Date | null | undefined):
|
|
|
28
35
|
* @param value - フォーマットする値(null/undefinedも許容)
|
|
29
36
|
* @returns フォーマットされた文字列
|
|
30
37
|
*/
|
|
31
|
-
export declare function formatFieldValue(type: ShadowFieldType, value: string | number | Date | null | undefined): string;
|
|
38
|
+
export declare function formatFieldValue(type: ShadowFieldType, value: string | number | Date | boolean | null | undefined): string;
|
|
32
39
|
/**
|
|
33
40
|
* シャドーSKを生成する
|
|
34
41
|
* フォーマット: {fieldName}#{formattedValue}#id#{recordId}
|
|
@@ -50,8 +57,12 @@ export declare function formatFieldValue(type: ShadowFieldType, value: string |
|
|
|
50
57
|
* @example
|
|
51
58
|
* generateShadowSK('createdAt', '2025-11-12T10:00:00.000Z', '01HZXY123', 'datetime')
|
|
52
59
|
* // => 'createdAt#2025-11-12T10:00:00.000Z#id#01HZXY123'
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* generateShadowSK('isPublished', true, '01HZXY123', 'boolean')
|
|
63
|
+
* // => 'isPublished#true#id#01HZXY123'
|
|
53
64
|
*/
|
|
54
|
-
export declare function generateShadowSK(fieldName: string, value: string | number | Date, recordId: string, type?: ShadowFieldType): string;
|
|
65
|
+
export declare function generateShadowSK(fieldName: string, value: string | number | Date | boolean, recordId: string, type?: ShadowFieldType): string;
|
|
55
66
|
/**
|
|
56
67
|
* レコードIDからメインレコードのSKを生成する
|
|
57
68
|
* フォーマット: id#{recordId}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/shadows/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/shadows/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAcrE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAa9E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAOvE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GACzD,MAAM,CAiBR;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,EACvC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,eAA0B,GAC/B,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D"}
|
|
@@ -45,6 +45,19 @@ export function formatDatetime(value) {
|
|
|
45
45
|
}
|
|
46
46
|
return date.toISOString();
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* boolean値をフォーマットする
|
|
50
|
+
*
|
|
51
|
+
* @param value - boolean値(null/undefinedも許容)
|
|
52
|
+
* @returns 'true' または 'false' または空文字
|
|
53
|
+
*/
|
|
54
|
+
export function formatBoolean(value) {
|
|
55
|
+
// null/undefined は空文字を返す
|
|
56
|
+
if (value === null || value === undefined) {
|
|
57
|
+
return '';
|
|
58
|
+
}
|
|
59
|
+
return value ? 'true' : 'false';
|
|
60
|
+
}
|
|
48
61
|
/**
|
|
49
62
|
* フィールド値を型に応じてフォーマットする
|
|
50
63
|
*
|
|
@@ -64,6 +77,8 @@ export function formatFieldValue(type, value) {
|
|
|
64
77
|
return formatNumber(value);
|
|
65
78
|
case 'datetime':
|
|
66
79
|
return formatDatetime(value);
|
|
80
|
+
case 'boolean':
|
|
81
|
+
return formatBoolean(value);
|
|
67
82
|
default:
|
|
68
83
|
throw new Error(`Unknown shadow field type: ${type}`);
|
|
69
84
|
}
|
|
@@ -89,6 +104,10 @@ export function formatFieldValue(type, value) {
|
|
|
89
104
|
* @example
|
|
90
105
|
* generateShadowSK('createdAt', '2025-11-12T10:00:00.000Z', '01HZXY123', 'datetime')
|
|
91
106
|
* // => 'createdAt#2025-11-12T10:00:00.000Z#id#01HZXY123'
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* generateShadowSK('isPublished', true, '01HZXY123', 'boolean')
|
|
110
|
+
* // => 'isPublished#true#id#01HZXY123'
|
|
92
111
|
*/
|
|
93
112
|
export function generateShadowSK(fieldName, value, recordId, type = 'string') {
|
|
94
113
|
const formattedValue = formatFieldValue(type, value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/shadows/generator.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,aAAa;SACjC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAgC;IAC3D,yBAAyB;IACzB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAElD,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAuC;IACpE,yBAAyB;IACzB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEjE,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/shadows/generator.ts"],"names":[],"mappings":"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"}
|
package/dist/shadows/index.d.ts
CHANGED
|
@@ -8,8 +8,9 @@
|
|
|
8
8
|
* - シャドー差分計算(旧影と新影の比較)
|
|
9
9
|
* - shadow.config.json読み込みと検証
|
|
10
10
|
*/
|
|
11
|
-
export type {
|
|
12
|
-
export {
|
|
11
|
+
export type { ShadowFieldConfig, ResourceShadowConfig, ShadowConfig, ShadowDiff } from './types.js';
|
|
12
|
+
export type { ShadowFieldType, ShadowFieldDefinition, ResourceSchema, SchemaRegistryConfig, } from './schema.js';
|
|
13
|
+
export { escapeString, formatNumber, formatDatetime, formatBoolean, formatFieldValue, generateShadowSK, generateMainRecordSK, } from './generator.js';
|
|
13
14
|
export { calculateShadowDiff, isDiffEmpty, mergeShadowDiffs } from './differ.js';
|
|
14
15
|
export { loadShadowConfig, getResourceConfig, getAllShadowFields, isValidShadowField, getDefaultSort, getConfigPathFromEnv, } from './config.js';
|
|
15
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGpG,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGjF,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
|
package/dist/shadows/index.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* - shadow.config.json読み込みと検証
|
|
10
10
|
*/
|
|
11
11
|
// ジェネレーター関数のエクスポート
|
|
12
|
-
export { escapeString, formatNumber, formatDatetime, formatFieldValue, generateShadowSK, generateMainRecordSK, } from './generator.js';
|
|
12
|
+
export { escapeString, formatNumber, formatDatetime, formatBoolean, formatFieldValue, generateShadowSK, generateMainRecordSK, } from './generator.js';
|
|
13
13
|
// 差分計算関数のエクスポート
|
|
14
14
|
export { calculateShadowDiff, isDiffEmpty, mergeShadowDiffs } from './differ.js';
|
|
15
15
|
// 設定管理関数のエクスポート
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,mBAAmB;AACnB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjF,gBAAgB;AAChB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shadow Config スキーマ定義
|
|
3
|
+
*
|
|
4
|
+
* TypeScript でリソーススキーマを定義し、shadow.config.json を自動生成するための型定義。
|
|
5
|
+
* これにより、型安全性を保ちながら Shadow Config を管理できる。
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* シャドーフィールドの型
|
|
9
|
+
*/
|
|
10
|
+
export type ShadowFieldType = 'string' | 'number' | 'datetime' | 'boolean';
|
|
11
|
+
/**
|
|
12
|
+
* シャドーフィールドの定義
|
|
13
|
+
*/
|
|
14
|
+
export interface ShadowFieldDefinition {
|
|
15
|
+
type: ShadowFieldType;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* リソーススキーマの定義
|
|
19
|
+
*
|
|
20
|
+
* @template T - リソースの型(例: Article, Task など)
|
|
21
|
+
*/
|
|
22
|
+
export interface ResourceSchema<T = any> {
|
|
23
|
+
/** リソース名(複数形、例: "articles", "tasks") */
|
|
24
|
+
resource: string;
|
|
25
|
+
/** リソースの型定義(型チェック用) */
|
|
26
|
+
type: T;
|
|
27
|
+
/** シャドー設定 */
|
|
28
|
+
shadows: {
|
|
29
|
+
/** ソート可能なフィールドの定義 */
|
|
30
|
+
sortableFields: Record<string, ShadowFieldDefinition>;
|
|
31
|
+
};
|
|
32
|
+
/** デフォルトソート設定(省略時は自動決定) */
|
|
33
|
+
sortDefaults?: {
|
|
34
|
+
field: string;
|
|
35
|
+
order: 'ASC' | 'DESC';
|
|
36
|
+
};
|
|
37
|
+
/** TTL 設定(省略可) */
|
|
38
|
+
ttl?: {
|
|
39
|
+
days: number;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* スキーマレジストリの設定
|
|
44
|
+
*
|
|
45
|
+
* アプリケーション全体のリソーススキーマを定義する。
|
|
46
|
+
* この設定から shadow.config.json を自動生成する。
|
|
47
|
+
*/
|
|
48
|
+
export interface SchemaRegistryConfig {
|
|
49
|
+
/** データベース設定 */
|
|
50
|
+
database: {
|
|
51
|
+
/** タイムスタンプフィールド名 */
|
|
52
|
+
timestamps: {
|
|
53
|
+
createdAt: string;
|
|
54
|
+
updatedAt: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
/** リソーススキーマの定義 */
|
|
58
|
+
resources: Record<string, ResourceSchema>;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/shadows/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,eAAe,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IACrC,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IAEjB,uBAAuB;IACvB,IAAI,EAAE,CAAC,CAAC;IAER,aAAa;IACb,OAAO,EAAE;QACP,qBAAqB;QACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;KACvD,CAAC;IAEF,2BAA2B;IAC3B,YAAY,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;KACvB,CAAC;IAEF,kBAAkB;IAClB,GAAG,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,eAAe;IACf,QAAQ,EAAE;QACR,oBAAoB;QACpB,UAAU,EAAE;YACV,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IAEF,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/shadows/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/dist/shadows/types.d.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* シャドーフィールドの型定義
|
|
3
|
-
*/
|
|
4
|
-
export type ShadowFieldType = 'string' | 'number' | 'datetime';
|
|
5
1
|
/**
|
|
6
2
|
* シャドー設定のフィールド定義
|
|
7
3
|
*/
|
|
8
4
|
export interface ShadowFieldConfig {
|
|
9
|
-
type:
|
|
5
|
+
type: 'string' | 'number' | 'datetime';
|
|
10
6
|
}
|
|
11
7
|
/**
|
|
12
8
|
* リソースごとのシャドー設定
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shadows/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shadows/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAAC;KACxC,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE;QACT,CAAC,YAAY,EAAE,MAAM,GAAG,oBAAoB,CAAC;KAC9C,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sBAAsB;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exabugs/dynamodb-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "DynamoDB Single-Table Client SDK with MongoDB-like API, Shadow Records, and Lambda implementation for serverless applications",
|
|
5
5
|
"author": "exabugs",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "./dist/index.js",
|
|
9
9
|
"types": "./dist/index.d.ts",
|
|
10
|
+
"bin": {
|
|
11
|
+
"generate-shadow-config": "./dist/scripts/generate-shadow-config.js"
|
|
12
|
+
},
|
|
10
13
|
"keywords": [
|
|
11
14
|
"dynamodb",
|
|
12
15
|
"single-table",
|
|
@@ -95,8 +98,8 @@
|
|
|
95
98
|
"build:lambda": "node esbuild.config.js",
|
|
96
99
|
"clean": "rm -rf dist",
|
|
97
100
|
"lint": "eslint src --ext ts --max-warnings 10",
|
|
98
|
-
"format": "prettier --write
|
|
99
|
-
"format:check": "prettier --check
|
|
101
|
+
"format": "prettier --write .",
|
|
102
|
+
"format:check": "prettier --check .",
|
|
100
103
|
"test": "vitest run",
|
|
101
104
|
"test:coverage": "vitest run --coverage",
|
|
102
105
|
"test:watch": "vitest",
|
|
@@ -116,7 +119,7 @@
|
|
|
116
119
|
},
|
|
117
120
|
"devDependencies": {
|
|
118
121
|
"@eslint/js": "^9.0.0",
|
|
119
|
-
"@trivago/prettier-plugin-sort-imports": "^4.
|
|
122
|
+
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
|
120
123
|
"@types/aws-lambda": "^8.10.0",
|
|
121
124
|
"@types/node": "^22.0.0",
|
|
122
125
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
# Advanced Example
|
|
2
|
-
|
|
3
|
-
This example demonstrates an advanced deployment with:
|
|
4
|
-
|
|
5
|
-
- Multi-environment support (dev/stg/prd)
|
|
6
|
-
- External shadow configuration file
|
|
7
|
-
- CloudWatch Alarms
|
|
8
|
-
- TTL configuration
|
|
9
|
-
- Point-in-time Recovery (production only)
|
|
10
|
-
- MFA configuration (production only)
|
|
11
|
-
- Environment-specific settings
|
|
12
|
-
|
|
13
|
-
## What This Example Creates
|
|
14
|
-
|
|
15
|
-
- DynamoDB table with TTL and PITR
|
|
16
|
-
- Cognito User Pool with advanced security settings
|
|
17
|
-
- Cognito App Client with token validity configuration
|
|
18
|
-
- Records Lambda function with Function URL
|
|
19
|
-
- CloudWatch Alarms for error monitoring
|
|
20
|
-
- IAM roles and policies
|
|
21
|
-
- CloudWatch Logs
|
|
22
|
-
|
|
23
|
-
## Usage
|
|
24
|
-
|
|
25
|
-
1. Review and customize `shadow.config.json`:
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
cat shadow.config.json
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
2. Initialize Terraform:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
terraform init
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
3. Review the plan:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
terraform plan -var="environment=dev"
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
4. Apply the configuration:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
terraform apply -var="environment=dev"
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
5. Get the outputs:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
terraform output
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## Environment-Specific Settings
|
|
56
|
-
|
|
57
|
-
### Development (dev)
|
|
58
|
-
- Log retention: 7 days
|
|
59
|
-
- Log level: debug
|
|
60
|
-
- MFA: Optional
|
|
61
|
-
- PITR: Disabled
|
|
62
|
-
|
|
63
|
-
### Staging (stg)
|
|
64
|
-
- Log retention: 7 days
|
|
65
|
-
- Log level: info
|
|
66
|
-
- MFA: Optional
|
|
67
|
-
- PITR: Disabled
|
|
68
|
-
|
|
69
|
-
### Production (prd)
|
|
70
|
-
- Log retention: 30 days
|
|
71
|
-
- Log level: warn
|
|
72
|
-
- MFA: Required
|
|
73
|
-
- PITR: Enabled
|
|
74
|
-
|
|
75
|
-
## Shadow Configuration
|
|
76
|
-
|
|
77
|
-
The `shadow.config.json` file defines sortable fields for each resource:
|
|
78
|
-
|
|
79
|
-
```json
|
|
80
|
-
{
|
|
81
|
-
"$schemaVersion": "1.0",
|
|
82
|
-
"resources": {
|
|
83
|
-
"articles": {
|
|
84
|
-
"sortDefaults": {
|
|
85
|
-
"field": "updatedAt",
|
|
86
|
-
"order": "DESC"
|
|
87
|
-
},
|
|
88
|
-
"shadows": {
|
|
89
|
-
"title": { "type": "string" },
|
|
90
|
-
"status": { "type": "string" },
|
|
91
|
-
"publishedAt": { "type": "datetime" },
|
|
92
|
-
"createdAt": { "type": "datetime" },
|
|
93
|
-
"updatedAt": { "type": "datetime" }
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
## CloudWatch Alarms
|
|
101
|
-
|
|
102
|
-
The example includes a CloudWatch Alarm that triggers when:
|
|
103
|
-
- Lambda function errors exceed 10 in a 5-minute period
|
|
104
|
-
|
|
105
|
-
To receive notifications, provide an SNS topic ARN:
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
terraform apply -var="sns_topic_arn=arn:aws:sns:us-east-1:123456789012:alerts"
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## Clean Up
|
|
112
|
-
|
|
113
|
-
To destroy all resources:
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
terraform destroy
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
## Customization
|
|
120
|
-
|
|
121
|
-
You can customize the deployment by modifying variables:
|
|
122
|
-
|
|
123
|
-
```bash
|
|
124
|
-
terraform apply \
|
|
125
|
-
-var="project_name=my-app" \
|
|
126
|
-
-var="environment=prd" \
|
|
127
|
-
-var="region=ap-northeast-1" \
|
|
128
|
-
-var="sns_topic_arn=arn:aws:sns:..."
|
|
129
|
-
```
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
# Advanced Example: Multi-Environment with External Shadow Config
|
|
2
|
-
|
|
3
|
-
terraform {
|
|
4
|
-
required_version = ">= 1.5.0"
|
|
5
|
-
|
|
6
|
-
required_providers {
|
|
7
|
-
aws = {
|
|
8
|
-
source = "hashicorp/aws"
|
|
9
|
-
version = "~> 5.0"
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
provider "aws" {
|
|
15
|
-
region = var.region
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
# DynamoDB Table with TTL
|
|
19
|
-
resource "aws_dynamodb_table" "main" {
|
|
20
|
-
name = "${var.project_name}-${var.environment}-records"
|
|
21
|
-
billing_mode = "PAY_PER_REQUEST"
|
|
22
|
-
hash_key = "PK"
|
|
23
|
-
range_key = "SK"
|
|
24
|
-
|
|
25
|
-
attribute {
|
|
26
|
-
name = "PK"
|
|
27
|
-
type = "S"
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
attribute {
|
|
31
|
-
name = "SK"
|
|
32
|
-
type = "S"
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
# TTL Configuration
|
|
36
|
-
ttl {
|
|
37
|
-
attribute_name = "ttl"
|
|
38
|
-
enabled = true
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
# Point-in-time Recovery
|
|
42
|
-
point_in_time_recovery {
|
|
43
|
-
enabled = var.environment == "prd"
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
tags = {
|
|
47
|
-
Name = "${var.project_name}-${var.environment}-records"
|
|
48
|
-
Environment = var.environment
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
# Cognito User Pool with Advanced Settings
|
|
53
|
-
resource "aws_cognito_user_pool" "main" {
|
|
54
|
-
name = "${var.project_name}-${var.environment}-users"
|
|
55
|
-
|
|
56
|
-
# Password Policy
|
|
57
|
-
password_policy {
|
|
58
|
-
minimum_length = 8
|
|
59
|
-
require_lowercase = true
|
|
60
|
-
require_numbers = true
|
|
61
|
-
require_symbols = true
|
|
62
|
-
require_uppercase = true
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
# MFA Configuration
|
|
66
|
-
mfa_configuration = var.environment == "prd" ? "REQUIRED" : "OPTIONAL"
|
|
67
|
-
|
|
68
|
-
tags = {
|
|
69
|
-
Name = "${var.project_name}-${var.environment}-users"
|
|
70
|
-
Environment = var.environment
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
# Cognito App Client
|
|
75
|
-
resource "aws_cognito_user_pool_client" "main" {
|
|
76
|
-
name = "${var.project_name}-${var.environment}-client"
|
|
77
|
-
user_pool_id = aws_cognito_user_pool.main.id
|
|
78
|
-
|
|
79
|
-
explicit_auth_flows = [
|
|
80
|
-
"ALLOW_USER_SRP_AUTH",
|
|
81
|
-
"ALLOW_REFRESH_TOKEN_AUTH"
|
|
82
|
-
]
|
|
83
|
-
|
|
84
|
-
# Token Validity
|
|
85
|
-
access_token_validity = 1 # 1 hour
|
|
86
|
-
id_token_validity = 1 # 1 hour
|
|
87
|
-
refresh_token_validity = 30 # 30 days
|
|
88
|
-
|
|
89
|
-
token_validity_units {
|
|
90
|
-
access_token = "hours"
|
|
91
|
-
id_token = "hours"
|
|
92
|
-
refresh_token = "days"
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
# Records Lambda Module with External Config
|
|
97
|
-
module "lambda_records" {
|
|
98
|
-
source = "../../"
|
|
99
|
-
|
|
100
|
-
project_name = var.project_name
|
|
101
|
-
environment = var.environment
|
|
102
|
-
region = var.region
|
|
103
|
-
|
|
104
|
-
# DynamoDB
|
|
105
|
-
dynamodb_table_name = aws_dynamodb_table.main.name
|
|
106
|
-
dynamodb_table_arn = aws_dynamodb_table.main.arn
|
|
107
|
-
|
|
108
|
-
# Cognito
|
|
109
|
-
cognito_user_pool_id = aws_cognito_user_pool.main.id
|
|
110
|
-
cognito_client_id = aws_cognito_user_pool_client.main.id
|
|
111
|
-
|
|
112
|
-
# Shadow Config from External File
|
|
113
|
-
shadow_config = base64encode(file("${path.module}/shadow.config.json"))
|
|
114
|
-
|
|
115
|
-
# Logging (environment-specific)
|
|
116
|
-
log_retention_days = var.environment == "prd" ? 30 : 7
|
|
117
|
-
log_level = var.environment == "prd" ? "warn" : "debug"
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
# CloudWatch Alarm for Lambda Errors
|
|
121
|
-
resource "aws_cloudwatch_metric_alarm" "lambda_errors" {
|
|
122
|
-
alarm_name = "${var.project_name}-${var.environment}-lambda-errors"
|
|
123
|
-
comparison_operator = "GreaterThanThreshold"
|
|
124
|
-
evaluation_periods = 1
|
|
125
|
-
metric_name = "Errors"
|
|
126
|
-
namespace = "AWS/Lambda"
|
|
127
|
-
period = 300
|
|
128
|
-
statistic = "Sum"
|
|
129
|
-
threshold = 10
|
|
130
|
-
alarm_description = "Lambda function error rate is too high"
|
|
131
|
-
|
|
132
|
-
dimensions = {
|
|
133
|
-
FunctionName = module.lambda_records.function_name
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
alarm_actions = var.sns_topic_arn != "" ? [var.sns_topic_arn] : []
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
# Outputs
|
|
140
|
-
output "function_url" {
|
|
141
|
-
description = "Lambda Function URL"
|
|
142
|
-
value = module.lambda_records.function_url
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
output "function_name" {
|
|
146
|
-
description = "Lambda Function Name"
|
|
147
|
-
value = module.lambda_records.function_name
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
output "cognito_user_pool_id" {
|
|
151
|
-
description = "Cognito User Pool ID"
|
|
152
|
-
value = aws_cognito_user_pool.main.id
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
output "cognito_client_id" {
|
|
156
|
-
description = "Cognito App Client ID"
|
|
157
|
-
value = aws_cognito_user_pool_client.main.id
|
|
158
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schemaVersion": "1.0",
|
|
3
|
-
"resources": {
|
|
4
|
-
"articles": {
|
|
5
|
-
"sortDefaults": {
|
|
6
|
-
"field": "updatedAt",
|
|
7
|
-
"order": "DESC"
|
|
8
|
-
},
|
|
9
|
-
"shadows": {
|
|
10
|
-
"title": { "type": "string" },
|
|
11
|
-
"status": { "type": "string" },
|
|
12
|
-
"publishedAt": { "type": "datetime" },
|
|
13
|
-
"createdAt": { "type": "datetime" },
|
|
14
|
-
"updatedAt": { "type": "datetime" }
|
|
15
|
-
},
|
|
16
|
-
"ttl": {
|
|
17
|
-
"days": 90
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
"tasks": {
|
|
21
|
-
"sortDefaults": {
|
|
22
|
-
"field": "priority",
|
|
23
|
-
"order": "DESC"
|
|
24
|
-
},
|
|
25
|
-
"shadows": {
|
|
26
|
-
"title": { "type": "string" },
|
|
27
|
-
"status": { "type": "string" },
|
|
28
|
-
"priority": { "type": "number" },
|
|
29
|
-
"dueDate": { "type": "datetime" },
|
|
30
|
-
"createdAt": { "type": "datetime" },
|
|
31
|
-
"updatedAt": { "type": "datetime" }
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
variable "project_name" {
|
|
2
|
-
description = "Project name"
|
|
3
|
-
type = string
|
|
4
|
-
default = "my-project"
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
variable "environment" {
|
|
8
|
-
description = "Environment (dev/stg/prd)"
|
|
9
|
-
type = string
|
|
10
|
-
default = "dev"
|
|
11
|
-
|
|
12
|
-
validation {
|
|
13
|
-
condition = contains(["dev", "stg", "prd"], var.environment)
|
|
14
|
-
error_message = "Environment must be dev, stg, or prd."
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
variable "region" {
|
|
19
|
-
description = "AWS Region"
|
|
20
|
-
type = string
|
|
21
|
-
default = "us-east-1"
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
variable "sns_topic_arn" {
|
|
25
|
-
description = "SNS Topic ARN for CloudWatch Alarms (optional)"
|
|
26
|
-
type = string
|
|
27
|
-
default = ""
|
|
28
|
-
}
|