@stratum-hq/db-adapters 1.3.0 → 1.5.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 (41) hide show
  1. package/README.md +59 -3
  2. package/dist/adapters/drizzle.d.ts +3 -2
  3. package/dist/adapters/drizzle.d.ts.map +1 -1
  4. package/dist/adapters/drizzle.js +3 -2
  5. package/dist/adapters/drizzle.js.map +1 -1
  6. package/dist/adapters/sequelize.d.ts +3 -2
  7. package/dist/adapters/sequelize.d.ts.map +1 -1
  8. package/dist/adapters/sequelize.js +3 -2
  9. package/dist/adapters/sequelize.js.map +1 -1
  10. package/dist/database/manager.d.ts +1 -1
  11. package/dist/database/manager.js +2 -2
  12. package/dist/database/manager.js.map +1 -1
  13. package/dist/database/pool-manager.d.ts +1 -1
  14. package/dist/database/pool-manager.d.ts.map +1 -1
  15. package/dist/index.d.ts +4 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +7 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/migration-helpers.d.ts +2 -1
  20. package/dist/migration-helpers.d.ts.map +1 -1
  21. package/dist/migration-helpers.js +8 -1
  22. package/dist/migration-helpers.js.map +1 -1
  23. package/dist/pglite/index.d.ts +60 -0
  24. package/dist/pglite/index.d.ts.map +1 -0
  25. package/dist/pglite/index.js +196 -0
  26. package/dist/pglite/index.js.map +1 -0
  27. package/dist/rls/manager.d.ts +27 -1
  28. package/dist/rls/manager.d.ts.map +1 -1
  29. package/dist/rls/manager.js +43 -6
  30. package/dist/rls/manager.js.map +1 -1
  31. package/dist/rls/policy-check.d.ts +49 -1
  32. package/dist/rls/policy-check.d.ts.map +1 -1
  33. package/dist/rls/policy-check.js +136 -11
  34. package/dist/rls/policy-check.js.map +1 -1
  35. package/dist/rls/session.d.ts +34 -2
  36. package/dist/rls/session.d.ts.map +1 -1
  37. package/dist/rls/session.js +39 -5
  38. package/dist/rls/session.js.map +1 -1
  39. package/dist/schema/manager.js +1 -1
  40. package/dist/schema/manager.js.map +1 -1
  41. package/package.json +24 -6
@@ -46,7 +46,7 @@ async function schemaExists(client, tenantSlug) {
46
46
  return parseInt(res.rows[0].count, 10) > 0;
47
47
  }
48
48
  async function listTenantSchemas(client) {
49
- const res = await client.query(`SELECT nspname FROM pg_namespace WHERE nspname LIKE 'tenant_%' ORDER BY nspname`);
49
+ const res = await client.query(`SELECT nspname FROM pg_namespace WHERE nspname OPERATOR(pg_catalog.~~) 'tenant_%' ORDER BY nspname`);
50
50
  return res.rows.map((r) => r.nspname);
51
51
  }
52
52
  async function replicateTableToSchema(client, tableName, schemaName) {
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/schema/manager.ts"],"names":[],"mappings":";;AAGA,gDAKC;AAaD,4CAQC;AAED,oCAQC;AAED,gCAMC;AAED,oCAUC;AAED,8CAOC;AAED,wDAUC;AA9ED,yFAAyF;AACzF,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,wFAAwF;AACxF,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yEAAyE;AACzE,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,SAAgB,gBAAgB,CAAC,UAAkB;IACjD,MAAM,UAAU,GAAG,UAAU,UAAU,EAAE,CAAC;IAC1C,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,oBAAoB,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CACb,gCAAgC,UAAU,aAAa,oBAAoB,QAAQ,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,UAAkB;IAElB,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,0EAA0E;IAC1E,+CAA+C;IAC/C,MAAM,MAAM,CAAC,KAAK,CAAC,iBAAiB,UAAU,EAAE,CAAC,CAAC;AACpD,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,MAAqB,EACrB,UAAkB;IAElB,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,MAAM,MAAM,CAAC,KAAK,CAAC,yBAAyB,UAAU,UAAU,CAAC,CAAC;AACpE,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,UAAkB;IAElB,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAC5B,sDAAsD,EACtD,CAAC,UAAU,CAAC,CACb,CAAC;IACF,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,MAAqB;IAErB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAC5B,iFAAiF,CAClF,CAAC;IACF,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,MAAqB,EACrB,SAAiB,EACjB,UAAkB;IAElB,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,MAAM,CAAC,KAAK,CAChB,8BAA8B,UAAU,IAAI,SAAS,iBAAiB,SAAS,iBAAiB,CACjG,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/schema/manager.ts"],"names":[],"mappings":";;AAGA,gDAKC;AAaD,4CAQC;AAED,oCAQC;AAED,gCAMC;AAED,oCAUC;AAED,8CAOC;AAED,wDAUC;AA9ED,yFAAyF;AACzF,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,wFAAwF;AACxF,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yEAAyE;AACzE,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,SAAgB,gBAAgB,CAAC,UAAkB;IACjD,MAAM,UAAU,GAAG,UAAU,UAAU,EAAE,CAAC;IAC1C,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,oBAAoB,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CACb,gCAAgC,UAAU,aAAa,oBAAoB,QAAQ,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,UAAkB;IAElB,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,0EAA0E;IAC1E,+CAA+C;IAC/C,MAAM,MAAM,CAAC,KAAK,CAAC,iBAAiB,UAAU,EAAE,CAAC,CAAC;AACpD,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,MAAqB,EACrB,UAAkB;IAElB,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,MAAM,MAAM,CAAC,KAAK,CAAC,yBAAyB,UAAU,UAAU,CAAC,CAAC;AACpE,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,UAAkB;IAElB,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAC5B,sDAAsD,EACtD,CAAC,UAAU,CAAC,CACb,CAAC;IACF,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,MAAqB;IAErB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAC5B,oGAAoG,CACrG,CAAC;IACF,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,MAAqB,EACrB,SAAiB,EACjB,UAAkB;IAElB,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,MAAM,CAAC,KAAK,CAChB,8BAA8B,UAAU,IAAI,SAAS,iBAAiB,SAAS,iBAAiB,CACjG,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,17 +1,26 @@
1
1
  {
2
2
  "name": "@stratum-hq/db-adapters",
3
- "version": "1.3.0",
4
- "description": "Stratum PostgreSQL adapters for tenant-scoped query isolation",
3
+ "version": "1.5.0",
4
+ "description": "Multi-tenant PostgreSQL row-level security for pg, Prisma, Drizzle, and Sequelize, plus schema-per-tenant and database-per-tenant isolation",
5
5
  "keywords": [
6
6
  "multi-tenancy",
7
+ "multitenancy",
7
8
  "multi-tenant",
8
9
  "saas",
9
10
  "tenant",
10
11
  "tenant-isolation",
11
- "postgresql",
12
- "postgres",
13
12
  "row-level-security",
14
13
  "rls",
14
+ "postgresql",
15
+ "prisma",
16
+ "drizzle",
17
+ "drizzle-orm",
18
+ "sequelize",
19
+ "pg",
20
+ "node-postgres",
21
+ "schema-per-tenant",
22
+ "database-per-tenant",
23
+ "postgres",
15
24
  "schema-isolation",
16
25
  "database",
17
26
  "stratum"
@@ -22,6 +31,10 @@
22
31
  ".": {
23
32
  "types": "./dist/index.d.ts",
24
33
  "default": "./dist/index.js"
34
+ },
35
+ "./pglite": {
36
+ "types": "./dist/pglite/index.d.ts",
37
+ "default": "./dist/pglite/index.js"
25
38
  }
26
39
  },
27
40
  "files": [
@@ -41,18 +54,23 @@
41
54
  "registry": "https://registry.npmjs.org/"
42
55
  },
43
56
  "dependencies": {
44
- "@stratum-hq/core": "^1.4.0",
57
+ "@stratum-hq/core": "^1.6.0",
45
58
  "pg": "^8.11.0"
46
59
  },
47
60
  "peerDependencies": {
61
+ "@electric-sql/pglite": "^0.4.2",
48
62
  "drizzle-orm": ">=0.29.0"
49
63
  },
50
64
  "peerDependenciesMeta": {
65
+ "@electric-sql/pglite": {
66
+ "optional": true
67
+ },
51
68
  "drizzle-orm": {
52
69
  "optional": true
53
70
  }
54
71
  },
55
72
  "devDependencies": {
73
+ "@electric-sql/pglite": "^0.4.6",
56
74
  "@prisma/client": "^5.10.0",
57
75
  "@types/pg": "^8.11.0",
58
76
  "drizzle-orm": "^0.45.3",
@@ -61,7 +79,7 @@
61
79
  },
62
80
  "license": "MIT",
63
81
  "author": "Christian Crank",
64
- "homepage": "https://github.com/stratum-hq/Stratum/tree/main/packages/db-adapters#readme",
82
+ "homepage": "https://docs.stratum-hq.org/packages/db-adapters/",
65
83
  "bugs": "https://github.com/stratum-hq/Stratum/issues",
66
84
  "engines": {
67
85
  "node": ">=20.0.0"