@enbox/dwn-sql-store 0.0.7 → 0.0.9
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/dist/esm/src/blockstore-sql.js +117 -0
- package/dist/esm/src/blockstore-sql.js.map +1 -0
- package/dist/esm/src/data-store-s3.js +243 -0
- package/dist/esm/src/data-store-s3.js.map +1 -0
- package/dist/esm/src/data-store-sql.js +175 -59
- package/dist/esm/src/data-store-sql.js.map +1 -1
- package/dist/esm/src/main.js +4 -0
- package/dist/esm/src/main.js.map +1 -1
- package/dist/esm/src/message-store-sql.js +1 -0
- package/dist/esm/src/message-store-sql.js.map +1 -1
- package/dist/esm/src/migration-runner.js +99 -0
- package/dist/esm/src/migration-runner.js.map +1 -0
- package/dist/esm/src/migrations/001-initial-schema.js +163 -0
- package/dist/esm/src/migrations/001-initial-schema.js.map +1 -0
- package/dist/esm/src/migrations/002-content-addressed-datastore.js +126 -0
- package/dist/esm/src/migrations/002-content-addressed-datastore.js.map +1 -0
- package/dist/esm/src/migrations/003-add-squash-column.js +17 -0
- package/dist/esm/src/migrations/003-add-squash-column.js.map +1 -0
- package/dist/esm/src/migrations/index.js +13 -0
- package/dist/esm/src/migrations/index.js.map +1 -0
- package/dist/esm/src/state-index-sql.js +4 -3
- package/dist/esm/src/state-index-sql.js.map +1 -1
- package/dist/types/src/blockstore-sql.d.ts +36 -0
- package/dist/types/src/blockstore-sql.d.ts.map +1 -0
- package/dist/types/src/data-store-s3.d.ts +53 -0
- package/dist/types/src/data-store-s3.d.ts.map +1 -0
- package/dist/types/src/data-store-sql.d.ts +12 -0
- package/dist/types/src/data-store-sql.d.ts.map +1 -1
- package/dist/types/src/main.d.ts +4 -0
- package/dist/types/src/main.d.ts.map +1 -1
- package/dist/types/src/message-store-sql.d.ts.map +1 -1
- package/dist/types/src/migration-runner.d.ts +50 -0
- package/dist/types/src/migration-runner.d.ts.map +1 -0
- package/dist/types/src/migrations/001-initial-schema.d.ts +10 -0
- package/dist/types/src/migrations/001-initial-schema.d.ts.map +1 -0
- package/dist/types/src/migrations/002-content-addressed-datastore.d.ts +28 -0
- package/dist/types/src/migrations/002-content-addressed-datastore.d.ts.map +1 -0
- package/dist/types/src/migrations/003-add-squash-column.d.ts +10 -0
- package/dist/types/src/migrations/003-add-squash-column.d.ts.map +1 -0
- package/dist/types/src/migrations/index.d.ts +7 -0
- package/dist/types/src/migrations/index.d.ts.map +1 -0
- package/dist/types/src/state-index-sql.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +26 -0
- package/dist/types/src/types.d.ts.map +1 -1
- package/package.json +8 -2
- package/src/blockstore-sql.ts +142 -0
- package/src/data-store-s3.ts +338 -0
- package/src/data-store-sql.ts +208 -79
- package/src/main.ts +4 -0
- package/src/message-store-sql.ts +1 -0
- package/src/migration-runner.ts +137 -0
- package/src/migrations/001-initial-schema.ts +190 -0
- package/src/migrations/002-content-addressed-datastore.ts +140 -0
- package/src/migrations/003-add-squash-column.ts +21 -0
- package/src/migrations/index.ts +15 -0
- package/src/state-index-sql.ts +4 -3
- package/src/types.ts +30 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-store-sql.js","sourceRoot":"","sources":["../../../src/data-store-sql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-store-sql.js","sourceRoot":"","sources":["../../../src/data-store-sql.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/src/main.js
CHANGED
|
@@ -3,9 +3,13 @@ export * from './dialect/bun-sqlite-adapter.js';
|
|
|
3
3
|
export * from './dialect/mysql-dialect.js';
|
|
4
4
|
export * from './dialect/postgres-dialect.js';
|
|
5
5
|
export * from './dialect/sqlite-dialect.js';
|
|
6
|
+
export * from './blockstore-sql.js';
|
|
7
|
+
export * from './data-store-s3.js';
|
|
6
8
|
export * from './data-store-sql.js';
|
|
7
9
|
export * from './state-index-sql.js';
|
|
8
10
|
export * from './message-store-sql.js';
|
|
11
|
+
export * from './migration-runner.js';
|
|
12
|
+
export * from './migrations/index.js';
|
|
9
13
|
export * from './resumable-task-store-sql.js';
|
|
10
14
|
export * from './smt-store-sql.js';
|
|
11
15
|
//# sourceMappingURL=main.js.map
|
package/dist/esm/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC"}
|
|
@@ -46,6 +46,7 @@ export class MessageStoreSql {
|
|
|
46
46
|
.addColumn('isLatestBaseState', 'boolean')
|
|
47
47
|
.addColumn('published', 'boolean')
|
|
48
48
|
.addColumn('prune', 'boolean')
|
|
49
|
+
.addColumn('squash', 'boolean')
|
|
49
50
|
.addColumn('dataFormat', 'varchar(30)')
|
|
50
51
|
.addColumn('dataCid', 'varchar(60)')
|
|
51
52
|
.addColumn('dataSize', 'integer')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-store-sql.js","sourceRoot":"","sources":["../../../src/message-store-sql.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAGrC,MAAM,OAAO,eAAe;IAC1B,QAAQ,CAAU;IAClB,KAAK,CAAY;IACjB,GAAG,GAAmC,IAAI,CAAC;IAE3C,YAAY,OAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEnE,6CAA6C;QAC7C,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;QACjD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACtF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM;iBACtC,WAAW,CAAC,iBAAiB,CAAC;iBAC9B,WAAW,EAAE;iBACb,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC3D,SAAS,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC9D,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC;iBACrC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC;iBAClC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC;iBACpC,SAAS,CAAC,SAAS,EAAC,aAAa,CAAC;iBAClC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC;iBACpC,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC;iBACrC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;iBACzC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC;iBACtC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC;iBACnC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC;iBACnC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC;iBACtC,SAAS,CAAC,kBAAkB,EAAE,aAAa,CAAC;iBAC5C,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;iBACvC,SAAS,CAAC,eAAe,EAAE,aAAa,CAAC;iBACzC,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC;iBACzC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC;iBACjC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC;iBAC7B,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC;iBACtC,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;iBACnC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;iBAChC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,8DAA8D;iBAC/F,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;iBAC7B,SAAS,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;YAEjD,qDAAqD;YACrD,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YACpH,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtH,MAAM,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAEpC,2FAA2F;YAC3F,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM;iBAClB,WAAW,CAAC,yBAAyB,CAAC;iBACtC,EAAE,CAAC,iBAAiB,CAAC;iBACrB,OAAO,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;iBACjC,MAAM,EAAE;iBACR,OAAO,EAAE,CAAC;YAEb,2BAA2B;YAC3B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,EAAE;gBACpD,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,kGAAkG;gBAC1H,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,0FAA0F;gBACjH,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,+EAA+E;gBACvG,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,EAAE,gDAAgD;gBACzG,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,yGAAyG;gBAClI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,qGAAqG;gBACtI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,+EAA+E;gBAC1G,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,iFAAiF;aAC/G,CAAC,CAAC;YAEH,0FAA0F;YAC1F,oGAAoG;YACpG,gGAAgG;YAChG,0FAA0F;YAC1F,6FAA6F;YAC7F,kFAAkF;YAClF,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACnC,MAAM,GAAG,CAAA;eACF,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,6CAA6C;qBAC7E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,EAAE;oBACpD,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,CAAC,EAAE,+CAA+C;iBAC7F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,aAAa,GAAG,yBAAyB,CAAC;QAChD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC9E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM;iBACzC,WAAW,CAAC,aAAa,CAAC;iBAC1B,WAAW,EAAE;iBACb,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;iBACvD,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC;iBACxC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAEvC,qDAAqD;YACrD,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;YACjD,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1H,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,aAAa,EAAE,sBAAsB,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9K,MAAM,sBAAsB,CAAC,OAAO,EAAE,CAAC;YAEvC,2BAA2B;YAC3B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE;gBAChD,CAAC,sBAAsB,CAAC;gBACxB,CAAC,KAAK,EAAE,aAAa,CAAC;gBACtB,CAAC,KAAK,EAAE,aAAa,CAAC;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAI,QAAmB,EAAE,SAAiB,EAAE,OAAmB;QAChF,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B;YACjF,MAAM,QAAQ,CAAC,MAAM;iBAClB,WAAW,CAAC,SAAS,CAAC;gBACvB,uHAAuH;iBACtH,EAAE,CAAC,SAAS,CAAC;iBACb,OAAO,CAAC,WAAW,CAAC;iBACpB,OAAO,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,GAAG,CACP,MAAc,EACd,OAAuB,EACvB,OAAkB,EAClB,OAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAElC,wDAAwD;QACxD,mGAAmG;QACnG,+BAA+B;QAC/B,MAAM,cAAc,GAAG,CAAC,OAAuB,EAAwD,EAAE;YACvG,IAAI,WAAW,GAAgB,IAAI,CAAC;YACpC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,KAAK,gBAAgB,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;gBACnH,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;gBACjC,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,OAAO,CAAC,WAAW,CAAC;oBAC3B,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAClC,CAAC,CAAC;QAEF,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAE3E,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CACpD,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EACtE,OAAO,EAAE,MAAM,CAChB,CAAC;QAEF,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACtD,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEnE,iGAAiG;QACjG,mFAAmF;QACnF,6BAA6B;QAC7B,MAAM,mBAAmB,GAAG,IAAI,CAAC,4BAA4B,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QACjI,MAAM,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACK,4BAA4B,CAAC,YAMpC;QACC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;QAEvF,8EAA8E;QAC9E,0FAA0F;QAC1F,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAE7E,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE;YAElB,MAAM,kBAAkB,GAAG;gBACzB,MAAM;gBACN,UAAU;gBACV,mBAAmB;gBACnB,WAAW;gBACX,GAAG,UAAU;aACd,CAAC;YAEF,iGAAiG;YACjG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ;iBAC/B,kBAAkB,CAAC,EAAE,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;iBACpF,uBAAuB,EAAE,CAAC;YAE7B,+FAA+F;YAC/F,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAChE,CAAC;QAEH,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CACP,MAAc,EACd,GAAW,EACX,OAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,IAAI,CAAC,GAAG;aACL,UAAU,CAAC,sBAAsB,CAAC;aAClC,SAAS,EAAE;aACX,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;aAC5B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC;aAC7B,gBAAgB,EAAE,EACrB,OAAO,EAAE,MAAM,CAChB,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAAc,EACd,OAAiB,EACjB,WAAyB,EACzB,UAAuB,EACvB,OAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAElC,oEAAoE;QACpE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAErG,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG;aACjB,UAAU,CAAC,sBAAsB,CAAC;aAClC,QAAQ,CAAC,yBAAyB,EAAE,yCAAyC,EAAE,yBAAyB,CAAC;aACzG,MAAM,CAAC,YAAY,CAAC;aACpB,QAAQ,EAAE;aACV,MAAM,CAAC;YACN,qBAAqB;YACrB,aAAa;YACb,YAAY;SACb,CAAC;aACD,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAEhC,6DAA6D;QAC7D,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE1C,IAAI,UAAU,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YACrC,8HAA8H;YAC9H,6EAA6E;YAC7E,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,KAAe,CAAC;YACtD,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;YAErD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC9C,MAAM,SAAS,GAAG,aAAa,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxE,wFAAwF;gBACxF,OAAO,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;YAClG,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,cAAc,GAAG,aAAa,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAClF,sGAAsG;QACtG,KAAK,GAAG,KAAK;aACV,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC;aACrC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAEzC,IAAI,UAAU,EAAE,KAAK,KAAK,SAAS,IAAI,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;YAC7D,wFAAwF;YACxF,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,oBAAoB,CACxC,KAAK,CAAC,OAAO,EAAE,EACf,OAAO,EAAE,MAAM,CAChB,CAAC;QAEF,2FAA2F;QAC3F,oEAAoE;QACpE,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAAc,EACd,OAAiB,EACjB,WAAyB,EACzB,OAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAElC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG;aACjB,UAAU,CAAC,sBAAsB,CAAC;aAClC,QAAQ,CAAC,yBAAyB,EAAE,yCAAyC,EAAE,yBAAyB,CAAC;aACzG,MAAM,CAAC,GAAG,CAAQ,kBAAkB,GAAG,CAAC,GAAG,CAAC,iCAAiC,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;aAC9F,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAEhC,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5F,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAc,EACd,GAAW,EACX,OAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAElC,MAAM,oBAAoB,CACxB,IAAI,CAAC,GAAG;aACL,UAAU,CAAC,sBAAsB,CAAC;aAClC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;aAC5B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC;aAC7B,OAAO,EAAE,EACZ,OAAO,EAAE,MAAM,CAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,CAAC,GAAG;aACX,UAAU,CAAC,sBAAsB,CAAC;aAClC,OAAO,EAAE,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,mBAA+B,EAC/B,WAAsC,EACtC,OAA6B;QAE7B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAElC,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;YACtC,KAAK,EAAI,mBAAmB;YAC5B,KAAK,EAAI,IAAI;YACb,MAAM,EAAG,MAAM;SAChB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,YAAY,CAAC,KAAuB,CAAC;QACrD,kFAAkF;QAClF,mEAAmE;QACnE,6CAA6C;QAC7C,IAAI,OAAO,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YAC/E,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;QACpC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,wBAAwB,CACpC,OAAc,EACd,YAAoB,EACpB,KAAc,EACd,OAA6B;QAE7B,2GAA2G;QAC3G,sHAAsH;QACtH,oIAAoI;QACpI,IAAI,MAAoC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAClD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACtE,CAAC;QAED,+EAA+E;QAC/E,MAAM,QAAQ,GAA8B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACtI,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3D,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,WAAyB;QAEzB,IAAI,WAAW,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC;QACzE,CAAC;aAAM,IAAI,WAAW,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;YACpD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC;QAC7E,CAAC;aAAM,IAAI,WAAW,EAAE,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACvD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACnF,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC;QAC9E,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"message-store-sql.js","sourceRoot":"","sources":["../../../src/message-store-sql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { allMigrations } from './migrations/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Minimal forward-only migration runner for dwn-sql-store.
|
|
4
|
+
*
|
|
5
|
+
* Tracks applied migrations in a `dwn_migrations` table and applies
|
|
6
|
+
* pending migrations in sequential order on each call to `run()`.
|
|
7
|
+
*
|
|
8
|
+
* Design decisions:
|
|
9
|
+
* - Forward-only: no rollback support. Keep migrations simple and additive.
|
|
10
|
+
* - TypeScript migrations: use the Dialect interface for cross-dialect DDL.
|
|
11
|
+
* - Idempotent: calling `run()` on an up-to-date database is a no-op.
|
|
12
|
+
* - Transaction per migration: each migration runs in its own transaction
|
|
13
|
+
* so a failure leaves the database in the last known-good state.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Convenience function to run all DWN store migrations against a database.
|
|
17
|
+
*
|
|
18
|
+
* Creates a `MigrationRunner` with the full set of built-in migrations and
|
|
19
|
+
* runs them. Call this once during application startup, before opening any
|
|
20
|
+
* stores — e.g. in `getDwnConfig()` or equivalent initialization code.
|
|
21
|
+
*
|
|
22
|
+
* @param db - An open Kysely instance connected to the target database.
|
|
23
|
+
* @param dialect - The dialect for the target database.
|
|
24
|
+
* @returns The names of newly applied migrations (empty if already up-to-date).
|
|
25
|
+
*/
|
|
26
|
+
export async function runDwnStoreMigrations(db, dialect) {
|
|
27
|
+
const runner = new MigrationRunner(db, dialect, allMigrations);
|
|
28
|
+
return runner.run();
|
|
29
|
+
}
|
|
30
|
+
export class MigrationRunner {
|
|
31
|
+
#db;
|
|
32
|
+
#dialect;
|
|
33
|
+
#migrations;
|
|
34
|
+
constructor(db, dialect, migrations) {
|
|
35
|
+
this.#db = db;
|
|
36
|
+
this.#dialect = dialect;
|
|
37
|
+
this.#migrations = migrations;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Ensure the `dwn_migrations` tracking table exists, then apply any
|
|
41
|
+
* pending migrations in order. Returns the names of newly applied migrations.
|
|
42
|
+
*/
|
|
43
|
+
async run() {
|
|
44
|
+
await this.#ensureMigrationTable();
|
|
45
|
+
const applied = await this.#getAppliedMigrations();
|
|
46
|
+
const appliedSet = new Set(applied);
|
|
47
|
+
const pending = this.#migrations.filter((m) => !appliedSet.has(m.name));
|
|
48
|
+
const newlyApplied = [];
|
|
49
|
+
for (const migration of pending) {
|
|
50
|
+
await this.#applyMigration(migration);
|
|
51
|
+
newlyApplied.push(migration.name);
|
|
52
|
+
}
|
|
53
|
+
return newlyApplied;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Create the `dwn_migrations` table if it does not already exist.
|
|
57
|
+
*/
|
|
58
|
+
async #ensureMigrationTable() {
|
|
59
|
+
const exists = await this.#dialect.hasTable(this.#db, 'dwn_migrations');
|
|
60
|
+
if (exists) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
await this.#db.schema
|
|
64
|
+
.createTable('dwn_migrations')
|
|
65
|
+
.ifNotExists()
|
|
66
|
+
.addColumn('name', 'varchar(255)', (col) => col.primaryKey().notNull())
|
|
67
|
+
.addColumn('appliedAt', 'varchar(30)', (col) => col.notNull())
|
|
68
|
+
.execute();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get the list of migration names that have already been applied.
|
|
72
|
+
*/
|
|
73
|
+
async #getAppliedMigrations() {
|
|
74
|
+
const rows = await this.#db
|
|
75
|
+
.selectFrom('dwn_migrations')
|
|
76
|
+
.select('name')
|
|
77
|
+
.orderBy('name', 'asc')
|
|
78
|
+
.execute();
|
|
79
|
+
return rows.map((r) => r.name);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Apply a single migration within a transaction and record it.
|
|
83
|
+
*/
|
|
84
|
+
async #applyMigration(migration) {
|
|
85
|
+
await this.#db.transaction().execute(async (trx) => {
|
|
86
|
+
// Run the migration
|
|
87
|
+
await migration.up(trx, this.#dialect);
|
|
88
|
+
// Record it as applied
|
|
89
|
+
await trx
|
|
90
|
+
.insertInto('dwn_migrations')
|
|
91
|
+
.values({
|
|
92
|
+
name: migration.name,
|
|
93
|
+
appliedAt: new Date().toISOString(),
|
|
94
|
+
})
|
|
95
|
+
.execute();
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=migration-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-runner.js","sourceRoot":"","sources":["../../../src/migration-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { sql } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* Baseline migration: captures the schema as of the pre-migration era.
|
|
4
|
+
*
|
|
5
|
+
* For existing databases that already have these tables, this migration is
|
|
6
|
+
* detected as "already applied" during the adoption bootstrap (see MigrationRunner).
|
|
7
|
+
* For new databases, this creates the full initial schema.
|
|
8
|
+
*/
|
|
9
|
+
export const migration001InitialSchema = {
|
|
10
|
+
name: '001-initial-schema',
|
|
11
|
+
async up(db, dialect) {
|
|
12
|
+
// ─── messageStoreMessages ───────────────────────────────────────────
|
|
13
|
+
if (!(await dialect.hasTable(db, 'messageStoreMessages'))) {
|
|
14
|
+
let table = db.schema
|
|
15
|
+
.createTable('messageStoreMessages')
|
|
16
|
+
.ifNotExists()
|
|
17
|
+
.addColumn('tenant', 'varchar(255)', (col) => col.notNull())
|
|
18
|
+
.addColumn('messageCid', 'varchar(60)', (col) => col.notNull())
|
|
19
|
+
.addColumn('interface', 'varchar(20)')
|
|
20
|
+
.addColumn('method', 'varchar(20)')
|
|
21
|
+
.addColumn('recordId', 'varchar(60)')
|
|
22
|
+
.addColumn('entryId', 'varchar(60)')
|
|
23
|
+
.addColumn('parentId', 'varchar(60)')
|
|
24
|
+
.addColumn('protocol', 'varchar(200)')
|
|
25
|
+
.addColumn('protocolPath', 'varchar(200)')
|
|
26
|
+
.addColumn('contextId', 'varchar(600)')
|
|
27
|
+
.addColumn('schema', 'varchar(200)')
|
|
28
|
+
.addColumn('author', 'varchar(255)')
|
|
29
|
+
.addColumn('recipient', 'varchar(255)')
|
|
30
|
+
.addColumn('messageTimestamp', 'varchar(30)')
|
|
31
|
+
.addColumn('dateCreated', 'varchar(30)')
|
|
32
|
+
.addColumn('datePublished', 'varchar(30)')
|
|
33
|
+
.addColumn('isLatestBaseState', 'boolean')
|
|
34
|
+
.addColumn('published', 'boolean')
|
|
35
|
+
.addColumn('prune', 'boolean')
|
|
36
|
+
.addColumn('dataFormat', 'varchar(30)')
|
|
37
|
+
.addColumn('dataCid', 'varchar(60)')
|
|
38
|
+
.addColumn('dataSize', 'integer')
|
|
39
|
+
.addColumn('encodedData', 'text')
|
|
40
|
+
.addColumn('attester', 'text')
|
|
41
|
+
.addColumn('permissionGrantId', 'varchar(60)');
|
|
42
|
+
table = dialect.addAutoIncrementingColumn(table, 'id', (col) => col.primaryKey());
|
|
43
|
+
table = dialect.addBlobColumn(table, 'encodedMessageBytes', (col) => col.notNull());
|
|
44
|
+
await table.execute();
|
|
45
|
+
await db.schema.createIndex('index_tenant_messageCid')
|
|
46
|
+
.on('messageStoreMessages').columns(['tenant', 'messageCid']).unique().execute();
|
|
47
|
+
const indexes = [
|
|
48
|
+
['tenant', 'recordId'],
|
|
49
|
+
['tenant', 'entryId'],
|
|
50
|
+
['tenant', 'parentId'],
|
|
51
|
+
['tenant', 'protocol', 'published', 'messageTimestamp'],
|
|
52
|
+
['tenant', 'interface'],
|
|
53
|
+
['tenant', 'permissionGrantId'],
|
|
54
|
+
['tenant', 'dateCreated'],
|
|
55
|
+
['tenant', 'datePublished'],
|
|
56
|
+
];
|
|
57
|
+
for (const cols of indexes) {
|
|
58
|
+
await db.schema.createIndex('index_' + cols.join('_'))
|
|
59
|
+
.on('messageStoreMessages').columns(cols).execute();
|
|
60
|
+
}
|
|
61
|
+
// MySQL needs prefix length for contextId
|
|
62
|
+
if (dialect.name === 'MySQL') {
|
|
63
|
+
await sql `CREATE INDEX index_tenant_contextId_messageTimestamp
|
|
64
|
+
ON ${sql.table('messageStoreMessages')} (tenant, contextId(480), messageTimestamp)`
|
|
65
|
+
.execute(db);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
await db.schema.createIndex('index_tenant_contextId_messageTimestamp')
|
|
69
|
+
.on('messageStoreMessages').columns(['tenant', 'contextId', 'messageTimestamp']).execute();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// ─── messageStoreRecordsTags ─────────────────────────────────────────
|
|
73
|
+
if (!(await dialect.hasTable(db, 'messageStoreRecordsTags'))) {
|
|
74
|
+
let table = db.schema
|
|
75
|
+
.createTable('messageStoreRecordsTags')
|
|
76
|
+
.ifNotExists()
|
|
77
|
+
.addColumn('tag', 'varchar(30)', (col) => col.notNull())
|
|
78
|
+
.addColumn('valueString', 'varchar(200)')
|
|
79
|
+
.addColumn('valueNumber', 'decimal');
|
|
80
|
+
table = dialect.addAutoIncrementingColumn(table, 'id', (col) => col.primaryKey());
|
|
81
|
+
table = dialect.addReferencedColumn(table, 'messageStoreRecordsTags', 'messageInsertId', 'integer', 'messageStoreMessages', 'id', 'cascade');
|
|
82
|
+
await table.execute();
|
|
83
|
+
const tagIndexes = [
|
|
84
|
+
['messageInsertId'],
|
|
85
|
+
['tag', 'valueString'],
|
|
86
|
+
['tag', 'valueNumber'],
|
|
87
|
+
];
|
|
88
|
+
for (const cols of tagIndexes) {
|
|
89
|
+
await db.schema.createIndex('index_' + cols.join('_'))
|
|
90
|
+
.on('messageStoreRecordsTags').columns(cols).execute();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// ─── dataStore ──────────────────────────────────────────────────────
|
|
94
|
+
if (!(await dialect.hasTable(db, 'dataStore'))) {
|
|
95
|
+
let table = db.schema
|
|
96
|
+
.createTable('dataStore')
|
|
97
|
+
.ifNotExists()
|
|
98
|
+
.addColumn('tenant', 'varchar(255)', (col) => col.notNull())
|
|
99
|
+
.addColumn('recordId', 'varchar(60)', (col) => col.notNull())
|
|
100
|
+
.addColumn('dataCid', 'varchar(60)', (col) => col.notNull());
|
|
101
|
+
table = dialect.addAutoIncrementingColumn(table, 'id', (col) => col.primaryKey());
|
|
102
|
+
table = dialect.addBlobColumn(table, 'data', (col) => col.notNull());
|
|
103
|
+
await table.execute();
|
|
104
|
+
await db.schema.createIndex('tenant_recordId_dataCid')
|
|
105
|
+
.on('dataStore').columns(['tenant', 'recordId', 'dataCid']).unique().execute();
|
|
106
|
+
}
|
|
107
|
+
// ─── resumableTasks ─────────────────────────────────────────────────
|
|
108
|
+
if (!(await dialect.hasTable(db, 'resumableTasks'))) {
|
|
109
|
+
await db.schema
|
|
110
|
+
.createTable('resumableTasks')
|
|
111
|
+
.ifNotExists()
|
|
112
|
+
.addColumn('id', 'varchar(255)', (col) => col.primaryKey())
|
|
113
|
+
.addColumn('task', 'text')
|
|
114
|
+
.addColumn('timeout', 'bigint')
|
|
115
|
+
.addColumn('retryCount', 'integer')
|
|
116
|
+
.execute();
|
|
117
|
+
await db.schema.createIndex('index_timeout')
|
|
118
|
+
.on('resumableTasks').column('timeout').execute();
|
|
119
|
+
}
|
|
120
|
+
// ─── stateIndexNodes ────────────────────────────────────────────────
|
|
121
|
+
if (!(await dialect.hasTable(db, 'stateIndexNodes'))) {
|
|
122
|
+
await db.schema
|
|
123
|
+
.createTable('stateIndexNodes')
|
|
124
|
+
.ifNotExists()
|
|
125
|
+
.addColumn('tenant', 'varchar(255)', (col) => col.notNull())
|
|
126
|
+
.addColumn('scope', 'varchar(200)', (col) => col.notNull())
|
|
127
|
+
.addColumn('nodeHash', 'varchar(64)', (col) => col.notNull())
|
|
128
|
+
.addColumn('nodeType', 'varchar(10)', (col) => col.notNull())
|
|
129
|
+
.addColumn('leftHash', 'varchar(64)')
|
|
130
|
+
.addColumn('rightHash', 'varchar(64)')
|
|
131
|
+
.addColumn('leafKeyHash', 'varchar(64)')
|
|
132
|
+
.addColumn('leafValueCid', 'varchar(60)')
|
|
133
|
+
.execute();
|
|
134
|
+
await db.schema.createIndex('index_stateIndexNodes_tenant_scope_nodeHash')
|
|
135
|
+
.on('stateIndexNodes').columns(['tenant', 'scope', 'nodeHash']).execute();
|
|
136
|
+
}
|
|
137
|
+
// ─── stateIndexRoots ────────────────────────────────────────────────
|
|
138
|
+
if (!(await dialect.hasTable(db, 'stateIndexRoots'))) {
|
|
139
|
+
await db.schema
|
|
140
|
+
.createTable('stateIndexRoots')
|
|
141
|
+
.ifNotExists()
|
|
142
|
+
.addColumn('tenant', 'varchar(255)', (col) => col.notNull())
|
|
143
|
+
.addColumn('scope', 'varchar(200)', (col) => col.notNull())
|
|
144
|
+
.addColumn('rootHash', 'varchar(64)', (col) => col.notNull())
|
|
145
|
+
.execute();
|
|
146
|
+
await db.schema.createIndex('index_stateIndexRoots_tenant_scope')
|
|
147
|
+
.on('stateIndexRoots').columns(['tenant', 'scope']).execute();
|
|
148
|
+
}
|
|
149
|
+
// ─── stateIndexMeta ─────────────────────────────────────────────────
|
|
150
|
+
if (!(await dialect.hasTable(db, 'stateIndexMeta'))) {
|
|
151
|
+
await db.schema
|
|
152
|
+
.createTable('stateIndexMeta')
|
|
153
|
+
.ifNotExists()
|
|
154
|
+
.addColumn('tenant', 'varchar(255)', (col) => col.notNull())
|
|
155
|
+
.addColumn('messageCid', 'varchar(60)', (col) => col.notNull())
|
|
156
|
+
.addColumn('protocol', 'varchar(200)')
|
|
157
|
+
.execute();
|
|
158
|
+
await db.schema.createIndex('index_stateIndexMeta_tenant_messageCid')
|
|
159
|
+
.on('stateIndexMeta').columns(['tenant', 'messageCid']).execute();
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=001-initial-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"001-initial-schema.js","sourceRoot":"","sources":["../../../../src/migrations/001-initial-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { sql } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* Migration 002: Content-addressed DataStore with deduplication.
|
|
4
|
+
*
|
|
5
|
+
* Replaces the monolithic `dataStore` table (which stores entire blobs per
|
|
6
|
+
* tenant+recordId+dataCid) with two tables that enable whole-file dedup:
|
|
7
|
+
*
|
|
8
|
+
* - `dataRefs`: reference table linking (tenant, recordId) to a dataCid.
|
|
9
|
+
* Multiple tenant/record pairs can reference the same dataCid. Includes
|
|
10
|
+
* `dataSize` for efficient size queries (fixes the existing admin store bug).
|
|
11
|
+
*
|
|
12
|
+
* - `dataBlocks`: content storage table keyed by (rootDataCid, blockCid).
|
|
13
|
+
* Stores individual ~256KB DAG-PB blocks produced by ipfs-unixfs-importer.
|
|
14
|
+
* Content is shared across all references to the same dataCid.
|
|
15
|
+
*
|
|
16
|
+
* Data migration strategy:
|
|
17
|
+
* - For each row in the old `dataStore`, insert a ref into `dataRefs` and a
|
|
18
|
+
* single block into `dataBlocks` with blockCid = dataCid (treating the
|
|
19
|
+
* existing assembled blob as one block). This is a safe migration because
|
|
20
|
+
* the new DataStoreSql code will re-chunk via ipfs-unixfs-importer on the
|
|
21
|
+
* next write. Reads of migrated data use a fast path that detects the
|
|
22
|
+
* single-block case and returns the data directly without the exporter.
|
|
23
|
+
*
|
|
24
|
+
* NOTE: For large databases, the data migration may take significant time.
|
|
25
|
+
* The migration runs in a single transaction for atomicity.
|
|
26
|
+
*/
|
|
27
|
+
export const migration002ContentAddressedDatastore = {
|
|
28
|
+
name: '002-content-addressed-datastore',
|
|
29
|
+
async up(db, dialect) {
|
|
30
|
+
// ─── Create dataRefs table ──────────────────────────────────────────
|
|
31
|
+
if (!(await dialect.hasTable(db, 'dataRefs'))) {
|
|
32
|
+
await db.schema
|
|
33
|
+
.createTable('dataRefs')
|
|
34
|
+
.ifNotExists()
|
|
35
|
+
.addColumn('tenant', 'varchar(255)', (col) => col.notNull())
|
|
36
|
+
.addColumn('recordId', 'varchar(60)', (col) => col.notNull())
|
|
37
|
+
.addColumn('dataCid', 'varchar(60)', (col) => col.notNull())
|
|
38
|
+
.addColumn('dataSize', 'bigint', (col) => col.notNull())
|
|
39
|
+
.execute();
|
|
40
|
+
// Unique constraint: one ref per (tenant, recordId, dataCid)
|
|
41
|
+
await db.schema.createIndex('index_dataRefs_tenant_recordId_dataCid')
|
|
42
|
+
.on('dataRefs').columns(['tenant', 'recordId', 'dataCid']).unique().execute();
|
|
43
|
+
// Index for dataCid lookups (refcount queries, GC)
|
|
44
|
+
await db.schema.createIndex('index_dataRefs_dataCid')
|
|
45
|
+
.on('dataRefs').column('dataCid').execute();
|
|
46
|
+
// Index for tenant-scoped size aggregation (admin queries)
|
|
47
|
+
await db.schema.createIndex('index_dataRefs_tenant')
|
|
48
|
+
.on('dataRefs').column('tenant').execute();
|
|
49
|
+
}
|
|
50
|
+
// ─── Create dataBlocks table ────────────────────────────────────────
|
|
51
|
+
if (!(await dialect.hasTable(db, 'dataBlocks'))) {
|
|
52
|
+
let table = db.schema
|
|
53
|
+
.createTable('dataBlocks')
|
|
54
|
+
.ifNotExists()
|
|
55
|
+
.addColumn('rootDataCid', 'varchar(60)', (col) => col.notNull())
|
|
56
|
+
.addColumn('blockCid', 'varchar(60)', (col) => col.notNull());
|
|
57
|
+
table = dialect.addBlobColumn(table, 'data', (col) => col.notNull());
|
|
58
|
+
await table.execute();
|
|
59
|
+
// Primary-like unique index on (rootDataCid, blockCid)
|
|
60
|
+
await db.schema.createIndex('index_dataBlocks_rootDataCid_blockCid')
|
|
61
|
+
.on('dataBlocks').columns(['rootDataCid', 'blockCid']).unique().execute();
|
|
62
|
+
}
|
|
63
|
+
// ─── Migrate data from old dataStore table ──────────────────────────
|
|
64
|
+
const oldTableExists = await dialect.hasTable(db, 'dataStore');
|
|
65
|
+
if (oldTableExists) {
|
|
66
|
+
// Check if old table has any data to migrate
|
|
67
|
+
const countResult = await sql `SELECT COUNT(*) as cnt FROM ${sql.table('dataStore')}`
|
|
68
|
+
.execute(db);
|
|
69
|
+
const count = Number(countResult.rows[0]?.cnt ?? 0);
|
|
70
|
+
if (count > 0) {
|
|
71
|
+
// Column references must be quoted to preserve camelCase in PostgreSQL.
|
|
72
|
+
const recordId = sql.ref('recordId');
|
|
73
|
+
const dataCid = sql.ref('dataCid');
|
|
74
|
+
const dataSize = sql.ref('dataSize');
|
|
75
|
+
const rootDataCid = sql.ref('rootDataCid');
|
|
76
|
+
const blockCid = sql.ref('blockCid');
|
|
77
|
+
// Migrate refs: insert into dataRefs from dataStore
|
|
78
|
+
// Use LENGTH/OCTET_LENGTH depending on dialect for blob size
|
|
79
|
+
if (dialect.name === 'SQLite') {
|
|
80
|
+
await sql `
|
|
81
|
+
INSERT INTO ${sql.table('dataRefs')} (tenant, ${recordId}, ${dataCid}, ${dataSize})
|
|
82
|
+
SELECT tenant, ${recordId}, ${dataCid}, LENGTH(data)
|
|
83
|
+
FROM ${sql.table('dataStore')}
|
|
84
|
+
`.execute(db);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
// PostgreSQL uses OCTET_LENGTH for bytea, MySQL uses LENGTH for blob
|
|
88
|
+
await sql `
|
|
89
|
+
INSERT INTO ${sql.table('dataRefs')} (tenant, ${recordId}, ${dataCid}, ${dataSize})
|
|
90
|
+
SELECT tenant, ${recordId}, ${dataCid}, OCTET_LENGTH(data)
|
|
91
|
+
FROM ${sql.table('dataStore')}
|
|
92
|
+
`.execute(db);
|
|
93
|
+
}
|
|
94
|
+
// Migrate blocks: treat each existing blob as a single block
|
|
95
|
+
// where blockCid = dataCid (the root CID is the only block)
|
|
96
|
+
// Skip duplicates: only insert blocks for dataCids not already in dataBlocks
|
|
97
|
+
if (dialect.name === 'MySQL') {
|
|
98
|
+
await sql `
|
|
99
|
+
INSERT IGNORE INTO ${sql.table('dataBlocks')} (${rootDataCid}, ${blockCid}, data)
|
|
100
|
+
SELECT ${dataCid}, ${dataCid}, data
|
|
101
|
+
FROM ${sql.table('dataStore')}
|
|
102
|
+
`.execute(db);
|
|
103
|
+
}
|
|
104
|
+
else if (dialect.name === 'SQLite') {
|
|
105
|
+
await sql `
|
|
106
|
+
INSERT OR IGNORE INTO ${sql.table('dataBlocks')} (${rootDataCid}, ${blockCid}, data)
|
|
107
|
+
SELECT ${dataCid}, ${dataCid}, data
|
|
108
|
+
FROM ${sql.table('dataStore')}
|
|
109
|
+
`.execute(db);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
// PostgreSQL
|
|
113
|
+
await sql `
|
|
114
|
+
INSERT INTO ${sql.table('dataBlocks')} (${rootDataCid}, ${blockCid}, data)
|
|
115
|
+
SELECT ${dataCid}, ${dataCid}, data
|
|
116
|
+
FROM ${sql.table('dataStore')}
|
|
117
|
+
ON CONFLICT (${rootDataCid}, ${blockCid}) DO NOTHING
|
|
118
|
+
`.execute(db);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Drop the old table after migration
|
|
122
|
+
await db.schema.dropTable('dataStore').execute();
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=002-content-addressed-datastore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"002-content-addressed-datastore.js","sourceRoot":"","sources":["../../../../src/migrations/002-content-addressed-datastore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 003: Add `squash` boolean column to `messageStoreMessages`.
|
|
3
|
+
*
|
|
4
|
+
* The `squash` column is an index for the `$squash` protocol directive
|
|
5
|
+
* introduced in the DWN spec. It follows the same pattern as `published`
|
|
6
|
+
* and `prune` — a nullable boolean column used for query filtering.
|
|
7
|
+
*/
|
|
8
|
+
export const migration003AddSquashColumn = {
|
|
9
|
+
name: '003-add-squash-column',
|
|
10
|
+
async up(db, _dialect) {
|
|
11
|
+
await db.schema
|
|
12
|
+
.alterTable('messageStoreMessages')
|
|
13
|
+
.addColumn('squash', 'boolean')
|
|
14
|
+
.execute();
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=003-add-squash-column.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"003-add-squash-column.js","sourceRoot":"","sources":["../../../../src/migrations/003-add-squash-column.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAc;IACpD,IAAI,EAAE,uBAAuB;IAE7B,KAAK,CAAC,EAAE,CAAC,EAAe,EAAE,QAAiB;QACzC,MAAM,EAAE,CAAC,MAAM;aACZ,UAAU,CAAC,sBAAsB,CAAC;aAClC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;aAC9B,OAAO,EAAE,CAAC;IACf,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { migration001InitialSchema } from './001-initial-schema.js';
|
|
2
|
+
import { migration002ContentAddressedDatastore } from './002-content-addressed-datastore.js';
|
|
3
|
+
import { migration003AddSquashColumn } from './003-add-squash-column.js';
|
|
4
|
+
/**
|
|
5
|
+
* All migrations in sequential order. The MigrationRunner applies them
|
|
6
|
+
* in array order, skipping any that have already been recorded.
|
|
7
|
+
*/
|
|
8
|
+
export const allMigrations = [
|
|
9
|
+
migration001InitialSchema,
|
|
10
|
+
migration002ContentAddressedDatastore,
|
|
11
|
+
migration003AddSquashColumn,
|
|
12
|
+
];
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/migrations/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,qCAAqC,EAAE,MAAM,sCAAsC,CAAC;AAC7F,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,yBAAyB;IACzB,qCAAqC;IACrC,2BAA2B;CAC5B,CAAC"}
|
|
@@ -118,7 +118,8 @@ export class StateIndexSql {
|
|
|
118
118
|
// Insert into the global tree
|
|
119
119
|
const globalSmt = await this.getGlobalTree(tenant);
|
|
120
120
|
await globalSmt.insert(messageCid);
|
|
121
|
-
//
|
|
121
|
+
// Insert into the protocol-scoped tree if the message has a protocol (e.g. RecordsWrite).
|
|
122
|
+
// Non-record messages like ProtocolsConfigure do not have a protocol.
|
|
122
123
|
const protocol = indexes.protocol;
|
|
123
124
|
if (protocol !== undefined) {
|
|
124
125
|
const protoSmt = await this.getProtocolTree(tenant, protocol);
|
|
@@ -152,8 +153,8 @@ export class StateIndexSql {
|
|
|
152
153
|
.executeTakeFirst();
|
|
153
154
|
// Delete from global tree
|
|
154
155
|
await globalSmt.delete(messageCid);
|
|
155
|
-
// Delete from protocol tree if
|
|
156
|
-
if (meta
|
|
156
|
+
// Delete from protocol tree if the message had a protocol
|
|
157
|
+
if (meta && meta.protocol !== null) {
|
|
157
158
|
const protoSmt = await this.getProtocolTree(tenant, meta.protocol);
|
|
158
159
|
await protoSmt.delete(messageCid);
|
|
159
160
|
}
|