@sanoma-ai/workflows 0.11.12 → 0.11.14

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 (142) hide show
  1. package/CLOUD-IDENTITY.md +12 -4
  2. package/KMS-SECRETS.md +3 -1
  3. package/README.md +4 -2
  4. package/dist/bundled.d.ts +2 -2
  5. package/dist/chats.d.ts +3 -3
  6. package/dist/chats.js +34 -20
  7. package/dist/chats.js.map +1 -1
  8. package/dist/client.d.ts +17 -4
  9. package/dist/client.js +74 -63
  10. package/dist/client.js.map +1 -1
  11. package/dist/cloud-identity.js +14 -12
  12. package/dist/cloud-identity.js.map +1 -1
  13. package/dist/collection.d.ts +2 -2
  14. package/dist/collection.js +53 -42
  15. package/dist/collection.js.map +1 -1
  16. package/dist/config.d.ts +11 -6
  17. package/dist/config.js +15 -13
  18. package/dist/config.js.map +1 -1
  19. package/dist/connection.d.ts +2 -0
  20. package/dist/connection.js +112 -40
  21. package/dist/connection.js.map +1 -1
  22. package/dist/credentials.d.ts +1 -1
  23. package/dist/credentials.js +33 -29
  24. package/dist/credentials.js.map +1 -1
  25. package/dist/db/company.d.ts +1152 -0
  26. package/dist/db/company.js +118 -0
  27. package/dist/db/company.js.map +1 -0
  28. package/dist/db/dbos.d.ts +111 -0
  29. package/dist/db/dbos.js +15 -0
  30. package/dist/db/dbos.js.map +1 -0
  31. package/dist/db/identity.d.ts +367 -0
  32. package/dist/db/identity.js +48 -0
  33. package/dist/db/identity.js.map +1 -0
  34. package/dist/db/index.d.ts +7 -0
  35. package/dist/db/index.js +12 -0
  36. package/dist/db/index.js.map +1 -0
  37. package/dist/db/kms.d.ts +224 -0
  38. package/dist/db/kms.js +29 -0
  39. package/dist/db/kms.js.map +1 -0
  40. package/dist/db/migrate.d.ts +66 -0
  41. package/dist/db/migrate.js +39 -0
  42. package/dist/db/migrate.js.map +1 -0
  43. package/dist/db/wakeup.d.ts +271 -0
  44. package/dist/db/wakeup.js +34 -0
  45. package/dist/db/wakeup.js.map +1 -0
  46. package/dist/db.d.ts +42 -39
  47. package/dist/db.js +129 -169
  48. package/dist/db.js.map +1 -1
  49. package/dist/deadlines.js +8 -4
  50. package/dist/deadlines.js.map +1 -1
  51. package/dist/deployment-key.d.ts +4 -1
  52. package/dist/deployment-key.js +10 -3
  53. package/dist/deployment-key.js.map +1 -1
  54. package/dist/host-derive.d.ts +12 -3
  55. package/dist/host-derive.js +21 -8
  56. package/dist/host-derive.js.map +1 -1
  57. package/dist/identity-provisioning.d.ts +2 -2
  58. package/dist/identity-provisioning.js +75 -42
  59. package/dist/identity-provisioning.js.map +1 -1
  60. package/dist/identity-service.js +18 -15
  61. package/dist/identity-service.js.map +1 -1
  62. package/dist/index.d.ts +2 -2
  63. package/dist/index.js +1 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/kms-secrets.d.ts +9 -0
  66. package/dist/kms-secrets.js +59 -27
  67. package/dist/kms-secrets.js.map +1 -1
  68. package/dist/ledger.d.ts +1 -1
  69. package/dist/ledger.js +22 -14
  70. package/dist/ledger.js.map +1 -1
  71. package/dist/op.d.ts +27 -6
  72. package/dist/op.js.map +1 -1
  73. package/dist/run-status.js +7 -3
  74. package/dist/run-status.js.map +1 -1
  75. package/dist/schedules.d.ts +1 -1
  76. package/dist/schedules.js +5 -7
  77. package/dist/schedules.js.map +1 -1
  78. package/dist/schema.d.ts +6 -5
  79. package/dist/schema.js +11 -7
  80. package/dist/schema.js.map +1 -1
  81. package/dist/shared.d.ts +6 -23
  82. package/dist/shared.js +6 -5
  83. package/dist/shared.js.map +1 -1
  84. package/dist/storage-provisioning.d.ts +2 -0
  85. package/dist/storage-provisioning.js +51 -50
  86. package/dist/storage-provisioning.js.map +1 -1
  87. package/dist/tokens.d.ts +2 -2
  88. package/dist/tokens.js +31 -20
  89. package/dist/tokens.js.map +1 -1
  90. package/dist/version.d.ts +4 -4
  91. package/dist/version.js +5 -5
  92. package/dist/version.js.map +1 -1
  93. package/dist/wakeup-service.d.ts +0 -4
  94. package/dist/wakeup-service.js +102 -93
  95. package/dist/wakeup-service.js.map +1 -1
  96. package/dist/worker.d.ts +7 -0
  97. package/dist/worker.js +26 -21
  98. package/dist/worker.js.map +1 -1
  99. package/drizzle/company/0000_tables.sql +104 -0
  100. package/drizzle/company/0001_wakeup_row.sql +2 -0
  101. package/drizzle/company/meta/0000_snapshot.json +652 -0
  102. package/drizzle/company/meta/0001_snapshot.json +652 -0
  103. package/drizzle/company/meta/_journal.json +20 -0
  104. package/drizzle/wakeup/0000_tables.sql +26 -0
  105. package/drizzle/wakeup/meta/0000_snapshot.json +200 -0
  106. package/drizzle/wakeup/meta/_journal.json +13 -0
  107. package/oxlint.json +2 -1
  108. package/package.json +11 -2
  109. package/src/bundled.ts +2 -2
  110. package/src/chats.ts +41 -42
  111. package/src/client.ts +81 -64
  112. package/src/cloud-identity.ts +23 -24
  113. package/src/collection.ts +58 -50
  114. package/src/config.ts +29 -19
  115. package/src/connection.ts +132 -102
  116. package/src/credentials.ts +37 -33
  117. package/src/db/company.ts +173 -0
  118. package/src/db/dbos.ts +17 -0
  119. package/src/db/identity.ts +61 -0
  120. package/src/db/index.ts +12 -0
  121. package/src/db/kms.ts +41 -0
  122. package/src/db/migrate.ts +71 -0
  123. package/src/db/wakeup.ts +41 -0
  124. package/src/db.ts +151 -182
  125. package/src/deadlines.ts +10 -4
  126. package/src/deployment-key.ts +11 -3
  127. package/src/host-derive.ts +26 -9
  128. package/src/identity-provisioning.ts +85 -57
  129. package/src/identity-service.ts +19 -19
  130. package/src/index.ts +3 -0
  131. package/src/kms-secrets.ts +64 -56
  132. package/src/ledger.ts +23 -18
  133. package/src/op.ts +28 -6
  134. package/src/run-status.ts +7 -6
  135. package/src/schedules.ts +6 -8
  136. package/src/schema.ts +11 -8
  137. package/src/shared.ts +6 -17
  138. package/src/storage-provisioning.ts +47 -52
  139. package/src/tokens.ts +43 -33
  140. package/src/version.ts +5 -5
  141. package/src/wakeup-service.ts +117 -131
  142. package/src/worker.ts +38 -21
@@ -1,6 +1,9 @@
1
1
  import { createServer } from "node:http";
2
+ import { sql } from "drizzle-orm";
2
3
  import { Pool } from "pg";
3
4
  import { NodeRequest, sendNodeResponse } from "srvx/node";
5
+ import { databaseOn } from "./db.js";
6
+ import { identityAuditEvents } from "./db/identity.js";
4
7
  import { identityBroker, postgresIdentityEnrollments, attachedGoogleTokenIssuer, provisioningIdentityBroker, attachedGoogleIdTokenIssuer, } from "./cloud-identity.js";
5
8
  /** Install with administrative authority in the audit database, separately from the serving process. */
6
9
  export const CLOUD_IDENTITY_AUDIT_SQL = `
@@ -31,7 +34,7 @@ const poolFor = (connectionString) => {
31
34
  return pool;
32
35
  };
33
36
  async function checkRoles(reader, audit) {
34
- const read = await reader.query(`SELECT
37
+ const read = await reader.execute(sql `SELECT
35
38
  has_schema_privilege('sanoma_identity', 'USAGE') AND
36
39
  NOT has_schema_privilege('sanoma_identity', 'CREATE') AND
37
40
  NOT EXISTS (SELECT FROM pg_roles WHERE rolname = current_user AND (rolsuper OR rolcreaterole OR rolcreatedb OR rolbypassrls)) AND
@@ -39,7 +42,7 @@ async function checkRoles(reader, audit) {
39
42
  has_table_privilege('sanoma_identity.credentials', 'SELECT') AND
40
43
  NOT has_table_privilege('sanoma_identity.deployments', 'INSERT,UPDATE,DELETE,TRUNCATE,REFERENCES,TRIGGER') AND
41
44
  NOT has_table_privilege('sanoma_identity.credentials', 'INSERT,UPDATE,DELETE,TRUNCATE,REFERENCES,TRIGGER') AS allowed`);
42
- const write = await audit.query(`SELECT
45
+ const write = await audit.execute(sql `SELECT
43
46
  has_schema_privilege('sanoma_identity', 'USAGE') AND
44
47
  NOT has_schema_privilege('sanoma_identity', 'CREATE') AND
45
48
  NOT EXISTS (SELECT FROM pg_roles WHERE rolname = current_user AND (rolsuper OR rolcreaterole OR rolcreatedb OR rolbypassrls)) AND
@@ -67,23 +70,23 @@ export async function startIdentityService(options) {
67
70
  let active = 0;
68
71
  reader = poolFor(options.enrollmentDatabaseUrl);
69
72
  audit = poolFor(options.auditDatabaseUrl);
70
- await checkRoles(reader, audit);
73
+ const readerDb = databaseOn(reader);
74
+ const auditDb = databaseOn(audit);
75
+ await checkRoles(readerDb, auditDb);
71
76
  const record = async (event) => {
72
77
  const e = event.enrollment;
73
78
  // Fixed columns only: no tokens, hashes, headers or arbitrary caller fields.
74
- await audit.query(`INSERT INTO sanoma_identity.audit_events
75
- (result, deployment, company, environment, service_account, generation, expires_at)
76
- VALUES ($1,$2,$3,$4,$5,$6,$7)`, [
77
- event.result,
78
- e?.deployment ?? null,
79
- e?.company ?? null,
80
- e?.environment ?? null,
81
- e?.serviceAccount ?? null,
82
- e?.generation ?? null,
83
- event.expiresAt === undefined ? null : new Date(event.expiresAt),
84
- ]);
79
+ await auditDb.insert(identityAuditEvents).values({
80
+ result: event.result,
81
+ deployment: e?.deployment,
82
+ company: e?.company,
83
+ environment: e?.environment,
84
+ serviceAccount: e?.serviceAccount,
85
+ generation: e?.generation,
86
+ expiresAt: event.expiresAt === undefined ? null : new Date(event.expiresAt),
87
+ });
85
88
  };
86
- const enrollments = postgresIdentityEnrollments(async () => reader);
89
+ const enrollments = postgresIdentityEnrollments(async () => readerDb);
87
90
  const handle = options.mode.type === "runtime"
88
91
  ? identityBroker({ enrollments, issue: attachedGoogleTokenIssuer(), audit: record })
89
92
  : options.mode.type === "provisioning"
@@ -1 +1 @@
1
- {"version":3,"file":"identity-service.js","sourceRoot":"","sources":["../src/identity-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity-service.js","sourceRoot":"","sources":["../src/identity-service.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { type CallContext, CLIENT_IP_HEADER, requestOrigin, sameOrigin, type Connector, type ConnectorSetup, type ConnectorVendor, type Driver, type DriverEnv, type DriverFn, defineConnector, DriverError, type Effect, isOp, isSvgElement, INVITE_SECONDS, type LoginContext, type LoginHalf, type LoginIdentity, type LoginMethod, type ModelContext, type Op, type OpSpec, type ResourceGroup, retryableStatus, type SignInMethod, type SocialClients, type VendorInfo, withSetup, } from "./op.ts";
1
+ export { type CallContext, CLIENT_IP_HEADER, requestOrigin, sameOrigin, type Connector, type ConnectorSetup, type ConnectorVendor, type DatabasePreparation, type Driver, type DriverEnv, type DriverFn, defineConnector, DriverError, type Effect, isOp, isSvgElement, INVITE_SECONDS, type LoginContext, type LoginHalf, type LoginIdentity, type LoginMethod, type ModelContext, type Op, type OpSpec, type ResourceGroup, retryableStatus, type SignInMethod, type SocialClients, type VendorInfo, withSetup, } from "./op.ts";
2
2
  export { SanomaPackageField, vendorInfo } from "./vendor-info.ts";
3
3
  export { defineWorkflow, Principal, type ApprovalRequest, type ApprovalResult, type ApprovalState, type Approver, type Builtin, type Ctx, type SleepRequest, type StartedBy, type StepOptions, type Trigger, type Use, type WorkflowDefinition, } from "./define.ts";
4
4
  export { compareDeclared, type Declared, type Declaring, defineResource, diffDeclared, type FieldReference, type PlanAction, type References, type Resource, type ResourceFields, type ResourceOps, type ResourceSpec, valueAt, withoutWriteOnly, } from "./resource.ts";
@@ -31,7 +31,7 @@ export { generateSecret, isSecret, memorySecrets, type Resolved, resolveSecrets,
31
31
  export { type AppMerge, type CheckResult, type Draft, draftBranch, type DraftDiff, defaultBranch, draftOf, type HostEnforcement, type PullRequest, type RemoteContext, type RemoteEvent, type RemoteHalf, remoteFor, type RepoRef, resolveRevision, SOURCE_RESOLVE, type Source, type SourceHost, } from "./source.ts";
32
32
  export type { HostCapabilities, HostLifetime, HostOutputs, HostSpec } from "./host.ts";
33
33
  export { RUNTIME_IMAGE, RUNTIME_PORT, runtimeImage, sourceKeyId, UNNAMED, wakeUrlOf } from "./host.ts";
34
- export { cloneUrl, deriveHosts, type HostFacts, hostFacts, DEPLOY_KEY_TITLE, DEPLOY_KEY_TYPE, GITHUB_APP, githubRepository, HOST_SIGNING_KEY, installedSanoma, originUrl, SOURCE_KEY, sourceRepository, wokenBy, } from "./host-derive.ts";
34
+ export { cloneUrl, deriveHosts, type HostFacts, hostFacts, type HostRootFacts, hostRootFacts, DEPLOY_KEY_TITLE, DEPLOY_KEY_TYPE, GITHUB_APP, githubRepository, HOST_SIGNING_KEY, installedSanoma, originUrl, SOURCE_KEY, sourceRepository, wokenBy, } from "./host-derive.ts";
35
35
  export { checkDatabase, type DatabaseCapabilities, type DatabaseOutputs, type DatabaseSpec, databaseUrlSecret, storeDatabaseUrl, } from "./database.ts";
36
36
  export type { Chat, Chats } from "./chats.ts";
37
37
  export type { Tokens } from "./tokens.ts";
package/dist/index.js CHANGED
@@ -31,7 +31,7 @@ export { nextFire, nextScheduledFire } from "./schedules.js";
31
31
  export { generateSecret, isSecret, memorySecrets, resolveSecrets, } from "./secret.js";
32
32
  export { draftBranch, defaultBranch, draftOf, remoteFor, resolveRevision, SOURCE_RESOLVE, } from "./source.js";
33
33
  export { RUNTIME_IMAGE, RUNTIME_PORT, runtimeImage, sourceKeyId, UNNAMED, wakeUrlOf } from "./host.js";
34
- export { cloneUrl, deriveHosts, hostFacts, DEPLOY_KEY_TITLE, DEPLOY_KEY_TYPE, GITHUB_APP, githubRepository, HOST_SIGNING_KEY, installedSanoma, originUrl, SOURCE_KEY, sourceRepository, wokenBy, } from "./host-derive.js";
34
+ export { cloneUrl, deriveHosts, hostFacts, hostRootFacts, DEPLOY_KEY_TITLE, DEPLOY_KEY_TYPE, GITHUB_APP, githubRepository, HOST_SIGNING_KEY, installedSanoma, originUrl, SOURCE_KEY, sourceRepository, wokenBy, } from "./host-derive.js";
35
35
  export { checkDatabase, databaseUrlSecret, storeDatabaseUrl, } from "./database.js";
36
36
  export { openInvite, sealInvite, sealLoginCode } from "./seal.js";
37
37
  export { postInvite, sanoma } from "./runtime-ops.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,15 @@ export interface KmsPostgresOptions {
20
20
  /** Omit in config to use the runtime's database. An explicit connection remains caller-owned. */
21
21
  database?: () => Promise<Db>;
22
22
  }
23
+ export interface Envelope {
24
+ format: "sanoma-gcp-kms-v1";
25
+ key: string;
26
+ keyVersion: string;
27
+ wrapped: string;
28
+ nonce: string;
29
+ ciphertext: string;
30
+ tag: string;
31
+ }
23
32
  export type ManagedKmsOptions = Pick<KmsPostgresOptions, "company" | "keyName" | "decryptKeyNames"> & {
24
33
  /** Fixed deployment broker; the callback reads protected bootstrap again on renewal. */
25
34
  identity: {
@@ -1,5 +1,7 @@
1
1
  import { createCipheriv, createDecipheriv, randomBytes, randomUUID } from "node:crypto";
2
2
  import crc32c from "crc-32/crc32c.js";
3
+ import { and, eq, sql } from "drizzle-orm";
4
+ import { kmsSecrets } from "./db/kms.js";
3
5
  import { cloudIdentityAuth } from "./cloud-identity.js";
4
6
  import { SecretStoreError, } from "./secret-store.js";
5
7
  /** Install with a privileged connection; runtime needs only SELECT/INSERT/UPDATE/DELETE on its company database. */
@@ -25,6 +27,15 @@ BEGIN
25
27
  END;
26
28
  $revoke$;
27
29
  `;
30
+ const columns = {
31
+ version: kmsSecrets.version,
32
+ envelope: kmsSecrets.envelope,
33
+ updatedBy: kmsSecrets.updatedBy,
34
+ updatedAt: kmsSecrets.updatedAt,
35
+ };
36
+ const at = (company, address) => and(eq(kmsSecrets.company, company), eq(kmsSecrets.namespace, address.namespace), eq(kmsSecrets.path, address.path));
37
+ /** The row of `version`, compared as text: an expected version that is no uuid matches nothing. */
38
+ const versionIs = (version) => sql `${kmsSecrets.version}::text = ${version}`;
28
39
  const FORMAT = "sanoma-gcp-kms-v1";
29
40
  const MAX_BYTES = 65_536;
30
41
  const capabilities = Object.freeze({
@@ -176,6 +187,7 @@ export function kmsPostgresStore(options) {
176
187
  }
177
188
  };
178
189
  const open = async (address, row) => {
190
+ // A JSON `null` is a jsonb value the column takes: an envelope written by hand, not one of ours.
179
191
  const e = row.envelope;
180
192
  if (!e || e.format !== FORMAT || !keys.has(e.key) || !versionOf(e.keyVersion, e.key))
181
193
  throw new SecretStoreError("invalid_value");
@@ -209,8 +221,8 @@ export function kmsPostgresStore(options) {
209
221
  return {
210
222
  value: plaintext.toString("utf8"),
211
223
  version: row.version,
212
- updatedBy: row.updated_by,
213
- updatedAt: row.updated_at.toISOString(),
224
+ updatedBy: row.updatedBy,
225
+ updatedAt: row.updatedAt.toISOString(),
214
226
  };
215
227
  }
216
228
  finally {
@@ -228,24 +240,39 @@ export function kmsPostgresStore(options) {
228
240
  const address = { namespace, path: `__validation__/${randomUUID()}` }, version = randomUUID(), value = randomUUID();
229
241
  const envelope = await seal(address, value, version);
230
242
  const db = await database();
231
- const scope = [company, namespace, address.path, version];
243
+ const exact = and(at(company, address), eq(kmsSecrets.version, version));
232
244
  let removed = false;
233
245
  try {
234
- const created = await db.query("INSERT INTO sanoma_kms.secrets(company,namespace,path,version,envelope,updated_by) VALUES($1,$2,$3,$4,$5,'validation') ON CONFLICT(company,namespace,path) DO NOTHING RETURNING version", [...scope, JSON.stringify(envelope)]);
235
- if (created.rowCount !== 1)
246
+ const created = await db
247
+ .insert(kmsSecrets)
248
+ .values({
249
+ company,
250
+ namespace: address.namespace,
251
+ path: address.path,
252
+ version,
253
+ envelope,
254
+ updatedBy: "validation",
255
+ })
256
+ .onConflictDoNothing()
257
+ .returning({ version: kmsSecrets.version });
258
+ if (created.length !== 1)
236
259
  throw new SecretStoreError("conflict");
237
- const updated = await db.query("UPDATE sanoma_kms.secrets SET envelope=$5,version=$4,updated_by='validation',updated_at=now() WHERE company=$1 AND namespace=$2 AND path=$3 AND version=$4 RETURNING version", [...scope, JSON.stringify(envelope)]);
238
- if (updated.rowCount !== 1)
260
+ const updated = await db
261
+ .update(kmsSecrets)
262
+ .set({ envelope, version, updatedBy: "validation" })
263
+ .where(exact)
264
+ .returning({ version: kmsSecrets.version });
265
+ if (updated.length !== 1)
239
266
  throw new SecretStoreError("unavailable");
240
- const stored = await db.query("SELECT version,envelope,updated_by,updated_at FROM sanoma_kms.secrets WHERE company=$1 AND namespace=$2 AND path=$3 AND version=$4", scope);
241
- if (!stored.rows[0] || (await open(address, stored.rows[0])).value !== value)
267
+ const [stored] = await db.select(columns).from(kmsSecrets).where(exact);
268
+ if (!stored || (await open(address, stored)).value !== value)
242
269
  throw new SecretStoreError("invalid_value");
243
270
  }
244
271
  finally {
245
272
  // Also clean up a committed INSERT whose response was lost. The random address and
246
273
  // exact version prevent one concurrent probe from deleting another probe or a secret.
247
- const cleanup = await db.query("DELETE FROM sanoma_kms.secrets WHERE company=$1 AND namespace=$2 AND path=$3 AND version=$4", scope);
248
- removed = cleanup.rowCount === 1;
274
+ const cleanup = await db.delete(kmsSecrets).where(exact).returning({ version: kmsSecrets.version });
275
+ removed = cleanup.length === 1;
249
276
  }
250
277
  if (!removed)
251
278
  throw new SecretStoreError("unavailable");
@@ -253,8 +280,8 @@ export function kmsPostgresStore(options) {
253
280
  }),
254
281
  read: (address) => safe(async () => {
255
282
  context(address, "read");
256
- const { rows } = await (await database()).query("SELECT version,envelope,updated_by,updated_at FROM sanoma_kms.secrets WHERE company=$1 AND namespace=$2 AND path=$3", [company, address.namespace, address.path]);
257
- return rows[0] && open(address, rows[0]);
283
+ const [row] = await (await database()).select(columns).from(kmsSecrets).where(at(company, address));
284
+ return row && open(address, row);
258
285
  }),
259
286
  write: (address, value, { expectedVersion, by }) => safe(async () => {
260
287
  if (Buffer.byteLength(value, "utf8") > MAX_BYTES)
@@ -262,25 +289,30 @@ export function kmsPostgresStore(options) {
262
289
  if (!nonempty(by))
263
290
  throw new SecretStoreError("invalid_value");
264
291
  const version = randomUUID(), envelope = await seal(address, value, version);
265
- const args = [company, address.namespace, address.path, version, JSON.stringify(envelope), by];
266
- const sql = expectedVersion === null
267
- ? "INSERT INTO sanoma_kms.secrets(company,namespace,path,version,envelope,updated_by) VALUES($1,$2,$3,$4,$5,$6) ON CONFLICT(company,namespace,path) DO NOTHING RETURNING version,envelope,updated_by,updated_at"
268
- : "UPDATE sanoma_kms.secrets SET version=$4,envelope=$5,updated_by=$6,updated_at=now() WHERE company=$1 AND namespace=$2 AND path=$3 AND version::text=$7 RETURNING version,envelope,updated_by,updated_at";
269
- const { rows } = await (await database()).query(sql, expectedVersion === null ? args : [...args, expectedVersion]);
270
- if (!rows[0])
292
+ const db = await database();
293
+ const [row] = expectedVersion === null
294
+ ? await db
295
+ .insert(kmsSecrets)
296
+ .values({ company, namespace: address.namespace, path: address.path, version, envelope, updatedBy: by })
297
+ .onConflictDoNothing()
298
+ .returning({ updatedAt: kmsSecrets.updatedAt })
299
+ : await db
300
+ .update(kmsSecrets)
301
+ .set({ version, envelope, updatedBy: by })
302
+ .where(and(at(company, address), versionIs(expectedVersion)))
303
+ .returning({ updatedAt: kmsSecrets.updatedAt });
304
+ if (!row)
271
305
  throw new SecretStoreError("conflict");
272
306
  // Return the caller's value, never make a second decrypt after a successful commit.
273
- return { value, version, updatedBy: by, updatedAt: rows[0].updated_at.toISOString() };
307
+ return { value, version, updatedBy: by, updatedAt: row.updatedAt.toISOString() };
274
308
  }),
275
309
  delete: (address, { expectedVersion }) => safe(async () => {
276
310
  context(address, expectedVersion);
277
- const { rowCount } = await (await database()).query("DELETE FROM sanoma_kms.secrets WHERE company=$1 AND namespace=$2 AND path=$3 AND version::text=$4", [
278
- company,
279
- address.namespace,
280
- address.path,
281
- expectedVersion,
282
- ]);
283
- if (!rowCount)
311
+ const deleted = await (await database())
312
+ .delete(kmsSecrets)
313
+ .where(and(at(company, address), versionIs(expectedVersion)))
314
+ .returning({ version: kmsSecrets.version });
315
+ if (!deleted.length)
284
316
  throw new SecretStoreError("conflict");
285
317
  }),
286
318
  };
@@ -1 +1 @@
1
- {"version":3,"file":"kms-secrets.js","sourceRoot":"","sources":["../src/kms-secrets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kms-secrets.js","sourceRoot":"","sources":["../src/kms-secrets.ts"],"names":[],"mappings":"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"}
package/dist/ledger.d.ts CHANGED
@@ -241,7 +241,7 @@ export declare function jsonlLedger(dir: string): LedgerStore;
241
241
  * Keeps records in the `sanoma_ledger` table of the database at `databaseUrl`, beside DBOS's
242
242
  * tables: the default store, which the worker, the app and the client share through Postgres.
243
243
  * The database and the table are made on first use when they are not there (`prepareDatabase`).
244
- * The pool is opened on first use and ended by `close()`, after which the store refuses use.
244
+ * Its connections are opened on first use and ended by `close()`, after which the store refuses use.
245
245
  */
246
246
  export declare function postgresLedger(databaseUrl: string): LedgerStore & {
247
247
  close(): Promise<void>;
package/dist/ledger.js CHANGED
@@ -2,9 +2,11 @@ import { AsyncLocalStorage } from "node:async_hooks";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { appendFile, mkdir, readFile, truncate } from "node:fs/promises";
4
4
  import { join, resolve } from "node:path";
5
+ import { eq, sql } from "drizzle-orm";
5
6
  import { setTimeout as delay } from "node:timers/promises";
6
7
  import { isDeepStrictEqual } from "node:util";
7
- import { LEDGER_TABLE as TABLE, lazyPool, pgCode } from "./db.js";
8
+ import { lazyDb, pgCode } from "./db.js";
9
+ import { ledger } from "./db/company.js";
8
10
  import { isFinal, keepCode } from "./errors.js";
9
11
  import { shown, warn } from "./log.js";
10
12
  import { errorMessage } from "./shared.js";
@@ -175,28 +177,30 @@ const DATA_EXCEPTION = /^22/;
175
177
  * Keeps records in the `sanoma_ledger` table of the database at `databaseUrl`, beside DBOS's
176
178
  * tables: the default store, which the worker, the app and the client share through Postgres.
177
179
  * The database and the table are made on first use when they are not there (`prepareDatabase`).
178
- * The pool is opened on first use and ended by `close()`, after which the store refuses use.
180
+ * Its connections are opened on first use and ended by `close()`, after which the store refuses use.
179
181
  */
180
182
  export function postgresLedger(databaseUrl) {
181
- const pool = lazyPool(databaseUrl, "ledger");
183
+ const store = lazyDb(databaseUrl, "ledger");
182
184
  return {
183
185
  async append(record) {
184
- const conn = await pool.db();
185
- if (await insertRecord(conn, record))
186
+ const db = await store.db();
187
+ if (await insertRecord(db, record))
186
188
  return;
187
189
  // Another write of the id was first: the record it stored stands.
188
- const { rows } = await conn.query(`SELECT record FROM ${TABLE} WHERE id = $1`, [
189
- record.id,
190
- ]);
191
- if (rows[0])
192
- warnIfDifferent(rows[0].record, lineOf(record));
190
+ const [stored] = await db.select({ record: ledger.record }).from(ledger).where(eq(ledger.id, record.id));
191
+ if (stored)
192
+ warnIfDifferent(stored.record, lineOf(record));
193
193
  },
194
194
  async read(runId) {
195
- const { rows } = await (await pool.db()).query(`SELECT record FROM ${TABLE} WHERE run_id = $1 ORDER BY seq, n`, [runId]);
195
+ const rows = await (await store.db())
196
+ .select({ record: ledger.record })
197
+ .from(ledger)
198
+ .where(eq(ledger.runId, runId))
199
+ .orderBy(ledger.seq, ledger.n);
196
200
  // In seq order, as the other stores read; two records of one seq in write order.
197
201
  return rows.map((r) => r.record);
198
202
  },
199
- close: pool.close,
203
+ close: store.close,
200
204
  };
201
205
  }
202
206
  /**
@@ -205,15 +209,19 @@ export function postgresLedger(databaseUrl) {
205
209
  * (`SanomaClient.call`) inside the transaction that saves its record.
206
210
  */
207
211
  export async function insertRecord(db, record) {
212
+ // The record's JSON, written once, as `jsonlLedger` writes it: what can't be JSON is refused as it refuses it.
208
213
  const inserted = await db
209
- .query(`INSERT INTO ${TABLE} (id, run_id, seq, record) VALUES ($1, $2, $3, $4::jsonb) ON CONFLICT (id) DO NOTHING RETURNING n`, [record.id, record.runId, record.seq, lineOf(record)])
214
+ .insert(ledger)
215
+ .values({ id: record.id, runId: record.runId, seq: record.seq, record: sql `${serialize(record)}::jsonb` })
216
+ .onConflictDoNothing({ target: ledger.id })
217
+ .returning({ n: ledger.n })
210
218
  .catch((err) => {
211
219
  if (DATA_EXCEPTION.test(pgCode(err))) {
212
220
  throw final(`Ledger record ${record.id} can't be stored: ${errorMessage(err)}`, err);
213
221
  }
214
222
  throw err;
215
223
  });
216
- return inserted.rows.length > 0;
224
+ return inserted.length > 0;
217
225
  }
218
226
  /** Keeps records in memory, for tests. */
219
227
  export function memoryLedger() {
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"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"}
package/dist/op.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { Pool } from "pg";
1
2
  import type { Principal } from "./define.ts";
2
3
  import type { Authentication, CallAuthentication } from "./authentication.ts";
3
4
  import type { ConnectionSnapshot } from "./connection.ts";
@@ -241,9 +242,15 @@ export interface ConnectorSetup {
241
242
  fake?: () => Fake<any, any>;
242
243
  /** The connector's steps for Gherkin tests (`defineSteps`): a config's scenarios and the connector's own features can use them. */
243
244
  steps?: Steps;
245
+ /**
246
+ * Makes the connector's tables on the company's database (a login's): by the worker at its
247
+ * start, after the runtime's own tables, on the database's direct URL (`DatabasePreparation`);
248
+ * idempotent. The app never makes them: a login opened before they are there refuses.
249
+ */
250
+ prepare?: DatabasePreparation;
244
251
  /**
245
252
  * Makes the connector's login half for one public site: once per site, by the app, when it
246
- * starts; a login that needs tables migrates them here (serialized, idempotent).
253
+ * starts, on the tables `prepare` made.
247
254
  */
248
255
  login?: (context: LoginContext) => LoginHalf | Promise<LoginHalf>;
249
256
  /**
@@ -272,6 +279,13 @@ export interface LoginIdentity {
272
279
  email?: string;
273
280
  github?: string;
274
281
  }
282
+ /**
283
+ * Makes what a connector keeps on the company's database (`ConnectorSetup.prepare`): run by the
284
+ * worker at its start, once the runtime's own tables are there, with the database's direct URL,
285
+ * never through a pooler (an advisory lock is one connection's); idempotent, and safe for two
286
+ * workers at once.
287
+ */
288
+ export type DatabasePreparation = (databaseUrl: string) => Promise<void>;
275
289
  /** How a login half lets a person in: an email code, GitHub, an invite link, an email and a password. */
276
290
  export type LoginMethod = "code" | "github" | "invite" | "password";
277
291
  /** How a person signed in to the staff login, which the ledger records (`signin.recorded`): all but a password. */
@@ -288,8 +302,14 @@ export interface SocialClients {
288
302
  * public site, once per site; for the staff login, once, with `staff`.
289
303
  */
290
304
  export interface LoginContext {
291
- /** The company's database (`resolved.databaseUrl`), where a login like Better Auth keeps its users. */
292
- databaseUrl: string;
305
+ /**
306
+ * The company's database, as the app's client reaches it (`SanomaClient.pool`): the pool a login
307
+ * like Better Auth keeps its users on, once the database is prepared. On Node it is the app's
308
+ * one pool for as long as the app runs; on a Worker it is the request's own, ended with the
309
+ * response. A login keeps one instance per pool and nothing else across requests, since the
310
+ * next request may bring another pool.
311
+ */
312
+ database(): Promise<Pool>;
293
313
  /**
294
314
  * A 32-byte key derived from the deployment's `SANOMA_SIGNING_KEY` for this login (HKDF-SHA256,
295
315
  * purpose `login <connector>`), hex; a login signs its cookies with it and never asks a person for a secret.
@@ -343,8 +363,10 @@ export declare function sameOrigin(request: Request): boolean;
343
363
  /**
344
364
  * A connector's login half: how a public site tells who a visitor is, and, made with
345
365
  * `LoginContext.staff`, how the app's staff sign in. The app makes one with `login(context)` once
346
- * per public site (and once for staff), when it starts; a login that keeps tables in the database
347
- * migrates them itself there, serialized and idempotent. It answers the provider's subject and
366
+ * per public site (and once for staff), when it starts, which opens nothing: a login reaches the
367
+ * database through `context.database` as requests come, and a login that keeps tables there has
368
+ * its connector's `prepare` make them, which the worker runs, and only checks for them. It
369
+ * answers the provider's subject and
348
370
  * what it verified; the app makes the principal from it (`visitor:<connector>:<subject>`, in
349
371
  * `visitors`, or the declared person the identity matches), so a connector never sets groups. A
350
372
  * visitor's address, for rate limits, is the `CLIENT_IP_HEADER` header.
@@ -380,7 +402,6 @@ export interface LoginHalf {
380
402
  email: string;
381
403
  path: string;
382
404
  } | undefined>;
383
- close?(): Promise<void>;
384
405
  }
385
406
  /** How long an invite lasts: 24 hours. */
386
407
  export declare const INVITE_SECONDS: number;