@noodleseed/one 0.52.1 → 0.54.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 (79) hide show
  1. package/node_modules/@noodle-borg/service/dist/billing/active-commercial-entitlement.d.ts +25 -0
  2. package/node_modules/@noodle-borg/service/dist/billing/active-commercial-entitlement.d.ts.map +1 -0
  3. package/node_modules/@noodle-borg/service/dist/billing/active-commercial-entitlement.js +94 -0
  4. package/node_modules/@noodle-borg/service/dist/billing/active-commercial-entitlement.js.map +1 -0
  5. package/node_modules/@noodle-borg/service/dist/billing/commercial-entitlements.d.ts +8 -0
  6. package/node_modules/@noodle-borg/service/dist/billing/commercial-entitlements.d.ts.map +1 -1
  7. package/node_modules/@noodle-borg/service/dist/billing/commercial-entitlements.js +49 -0
  8. package/node_modules/@noodle-borg/service/dist/billing/commercial-entitlements.js.map +1 -1
  9. package/node_modules/@noodle-borg/service/dist/billing/in-memory.d.ts.map +1 -1
  10. package/node_modules/@noodle-borg/service/dist/billing/in-memory.js +3 -2
  11. package/node_modules/@noodle-borg/service/dist/billing/in-memory.js.map +1 -1
  12. package/node_modules/@noodle-borg/service/dist/billing/integration.d.ts.map +1 -1
  13. package/node_modules/@noodle-borg/service/dist/billing/integration.js +0 -3
  14. package/node_modules/@noodle-borg/service/dist/billing/integration.js.map +1 -1
  15. package/node_modules/@noodle-borg/service/dist/billing/model.d.ts +16 -3
  16. package/node_modules/@noodle-borg/service/dist/billing/model.d.ts.map +1 -1
  17. package/node_modules/@noodle-borg/service/dist/billing/model.js +1 -0
  18. package/node_modules/@noodle-borg/service/dist/billing/model.js.map +1 -1
  19. package/node_modules/@noodle-borg/service/dist/billing/paid-plan-catalog.d.ts +26 -0
  20. package/node_modules/@noodle-borg/service/dist/billing/paid-plan-catalog.d.ts.map +1 -0
  21. package/node_modules/@noodle-borg/service/dist/billing/paid-plan-catalog.js +94 -0
  22. package/node_modules/@noodle-borg/service/dist/billing/paid-plan-catalog.js.map +1 -0
  23. package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.d.ts +4 -1
  24. package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.d.ts.map +1 -1
  25. package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.js +21 -7
  26. package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.js.map +1 -1
  27. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-counters.js +4 -5
  28. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-counters.js.map +1 -1
  29. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.d.ts +0 -1
  30. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.d.ts.map +1 -1
  31. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.js +92 -27
  32. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.js.map +1 -1
  33. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.d.ts +0 -1
  34. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.d.ts.map +1 -1
  35. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.js +72 -27
  36. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.js.map +1 -1
  37. package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.d.ts.map +1 -1
  38. package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.js +56 -26
  39. package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.js.map +1 -1
  40. package/node_modules/@noodle-borg/service/dist/billing/postgres-records.d.ts +4 -0
  41. package/node_modules/@noodle-borg/service/dist/billing/postgres-records.d.ts.map +1 -1
  42. package/node_modules/@noodle-borg/service/dist/billing/postgres-records.js +38 -9
  43. package/node_modules/@noodle-borg/service/dist/billing/postgres-records.js.map +1 -1
  44. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.d.ts.map +1 -1
  45. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js +28 -21
  46. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js.map +1 -1
  47. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-authority.d.ts +5 -0
  48. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-authority.d.ts.map +1 -0
  49. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-authority.js +97 -0
  50. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-authority.js.map +1 -0
  51. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-persistence.d.ts +50 -0
  52. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-persistence.d.ts.map +1 -0
  53. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-persistence.js +221 -0
  54. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-persistence.js.map +1 -0
  55. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-support.d.ts +8 -0
  56. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-support.d.ts.map +1 -0
  57. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-support.js +42 -0
  58. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-support.js.map +1 -0
  59. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation.d.ts +15 -0
  60. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation.d.ts.map +1 -0
  61. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation.js +123 -0
  62. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation.js.map +1 -0
  63. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-schema.d.ts +4 -0
  64. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-schema.d.ts.map +1 -0
  65. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-schema.js +419 -0
  66. package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-schema.js.map +1 -0
  67. package/node_modules/@noodle-borg/service/dist/billing/subscription-model.d.ts +40 -0
  68. package/node_modules/@noodle-borg/service/dist/billing/subscription-model.d.ts.map +1 -0
  69. package/node_modules/@noodle-borg/service/dist/billing/subscription-model.js +388 -0
  70. package/node_modules/@noodle-borg/service/dist/billing/subscription-model.js.map +1 -0
  71. package/node_modules/@noodle-borg/service/dist/billing/subscription-reconciliation.d.ts +45 -0
  72. package/node_modules/@noodle-borg/service/dist/billing/subscription-reconciliation.d.ts.map +1 -0
  73. package/node_modules/@noodle-borg/service/dist/billing/subscription-reconciliation.js +165 -0
  74. package/node_modules/@noodle-borg/service/dist/billing/subscription-reconciliation.js.map +1 -0
  75. package/node_modules/@noodle-borg/service/dist/billing-public.d.ts +6 -1
  76. package/node_modules/@noodle-borg/service/dist/billing-public.d.ts.map +1 -1
  77. package/node_modules/@noodle-borg/service/dist/billing-public.js +5 -0
  78. package/node_modules/@noodle-borg/service/dist/billing-public.js.map +1 -1
  79. package/package.json +1 -1
@@ -1,7 +1,6 @@
1
1
  import { DEPLOYMENT_ID_PATTERN, validateSlug } from '../store/validate.js';
2
+ import { BillingActiveCommercialEntitlementInconsistentError, resolveActiveBillingCommercialEntitlement, } from './active-commercial-entitlement.js';
2
3
  import { BillingAuthoritativeAdmissionUnavailableError, BillingAuthoritativeIdempotencyConflictError, } from './authoritative-admission.js';
3
- import { BillingCommercialEntitlementError, parseBillingCommercialFreeV1Entitlements, } from './commercial-entitlements.js';
4
- import { BILLING_AUTHORITATIVE_ADMISSION_CONTRACT_VERSION } from './enforcement-activation.js';
5
4
  import { billingContentChecksum } from './model.js';
6
5
  import { BillingAuthoritativeAuthorityInconsistentError, readBillingAuthoritativeAuthorityTx, } from './postgres-authoritative-authority.js';
7
6
  import { findAuthoritativeDuplicate, lockAuthoritativeDedupeIdentity, readAuthoritativeIncludedCalls, recordAuthoritativeAdmission, } from './postgres-meter-admission-ledger.js';
@@ -14,13 +13,11 @@ const DEFAULT_STATEMENT_TIMEOUT_MS = 2_000;
14
13
  export class PostgresBillingAuthoritativeAdmissionStore {
15
14
  #pool;
16
15
  #keyGeneration;
17
- #admissionContractVersion;
18
16
  #lockTimeoutMs;
19
17
  #statementTimeoutMs;
20
18
  constructor(pool, options) {
21
19
  this.#pool = pool;
22
20
  this.#keyGeneration = validateFingerprint('billing meter key generation', options.keyGeneration);
23
- this.#admissionContractVersion = validateAdmissionContractVersion(options.admissionContractVersion ?? BILLING_AUTHORITATIVE_ADMISSION_CONTRACT_VERSION);
24
21
  this.#lockTimeoutMs = boundedTimeout('billing authoritative admission lock timeout', options.lockTimeoutMs ?? DEFAULT_LOCK_TIMEOUT_MS);
25
22
  this.#statementTimeoutMs = boundedTimeout('billing authoritative admission statement timeout', options.statementTimeoutMs ?? DEFAULT_STATEMENT_TIMEOUT_MS);
26
23
  }
@@ -38,7 +35,6 @@ export class PostgresBillingAuthoritativeAdmissionStore {
38
35
  try {
39
36
  authority = await readBillingAuthoritativeAuthorityTx(client, {
40
37
  keyGeneration: this.#keyGeneration,
41
- admissionContractVersion: this.#admissionContractVersion,
42
38
  });
43
39
  }
44
40
  catch (error) {
@@ -61,35 +57,37 @@ export class PostgresBillingAuthoritativeAdmissionStore {
61
57
  const initialAttribution = await readAttribution(client, input.org, false);
62
58
  if (initialAttribution === undefined)
63
59
  throw unavailable();
64
- validateAttribution(initialAttribution);
65
- const initialWindow = resolveUtcMonthlyUsageWindow(toIso(initialAttribution.monthly_usage_anchor), recordedAt);
66
60
  if (initialAttribution.profile_mode === 'legacy_internal_exempt') {
61
+ validateLegacyAttribution(initialAttribution);
67
62
  const lockedExemption = await readAttribution(client, input.org, true);
68
63
  if (lockedExemption === undefined ||
69
- !validAttribution(lockedExemption) ||
64
+ !validLegacyAttribution(lockedExemption) ||
70
65
  !sameAttribution(initialAttribution, lockedExemption)) {
71
66
  throw unavailable();
72
67
  }
73
68
  await client.query('COMMIT');
74
69
  return { outcome: 'bypass', reason: 'legacy_internal_exempt' };
75
70
  }
71
+ const initialEntitlement = resolveEnforcedAttribution(initialAttribution, authority.admissionContractVersion, recordedAt);
72
+ const initialWindow = resolveUtcMonthlyUsageWindow(initialEntitlement.monthlyUsageAnchor, recordedAt);
76
73
  await lockAuthoritativeDedupeIdentity(client, authority.epochId, input);
77
74
  await client.query('SELECT pg_advisory_xact_lock(hashtextextended($1, 0))', [
78
75
  accountWindowLockKey(authority.epochId, initialAttribution.billing_account_id, initialWindow.start),
79
76
  ]);
80
77
  const attribution = await readAttribution(client, input.org, true);
81
- if (attribution === undefined ||
82
- !validAttribution(attribution) ||
83
- !sameAttribution(initialAttribution, attribution)) {
78
+ if (attribution === undefined || !sameAttribution(initialAttribution, attribution)) {
84
79
  throw unavailable();
85
80
  }
86
81
  if (attribution.profile_mode === 'legacy_internal_exempt') {
87
82
  await client.query('COMMIT');
88
83
  return { outcome: 'bypass', reason: 'legacy_internal_exempt' };
89
84
  }
90
- if (attribution.profile_mode !== 'enforced')
85
+ const resolvedEntitlement = resolveEnforcedAttribution(attribution, authority.admissionContractVersion, recordedAt);
86
+ if (resolvedEntitlement.snapshotId !== initialEntitlement.snapshotId ||
87
+ resolvedEntitlement.snapshotVersion !== initialEntitlement.snapshotVersion) {
91
88
  throw unavailable();
92
- const entitlements = parseBillingCommercialFreeV1Entitlements(attribution.entitlements);
89
+ }
90
+ const entitlements = resolvedEntitlement.entitlements;
93
91
  const duplicate = await findAuthoritativeDuplicate(client, {
94
92
  epochId: authority.epochId,
95
93
  input,
@@ -148,11 +146,13 @@ async function proveLegacyExemption(client, org) {
148
146
  const initial = await readAttribution(client, org, false);
149
147
  if (initial === undefined)
150
148
  return false;
151
- validateAttribution(initial);
152
149
  if (initial.profile_mode !== 'legacy_internal_exempt')
153
150
  return false;
151
+ validateLegacyAttribution(initial);
154
152
  const locked = await readAttribution(client, org, true);
155
- if (locked === undefined || !validAttribution(locked) || !sameAttribution(initial, locked)) {
153
+ if (locked === undefined ||
154
+ !validLegacyAttribution(locked) ||
155
+ !sameAttribution(initial, locked)) {
156
156
  throw unavailable();
157
157
  }
158
158
  return true;
@@ -160,6 +160,16 @@ async function proveLegacyExemption(client, org) {
160
160
  async function readAttribution(client, org, lock) {
161
161
  const { rows } = await client.query(`SELECT link.billing_account_id, link.version AS link_version,
162
162
  account.state AS account_state, account.created_at AS account_created_at,
163
+ snapshot.id, snapshot.version, snapshot.plan_version_id,
164
+ plan.plan_code, plan.version AS plan_version,
165
+ plan.effective_from AS plan_effective_from,
166
+ plan.entitlements AS plan_entitlements,
167
+ plan.content_checksum AS plan_content_checksum,
168
+ plan.created_at AS plan_created_at,
169
+ snapshot.schema_version, snapshot.source_kind, snapshot.generation_reason,
170
+ snapshot.verification_status, snapshot.effective_from, snapshot.effective_until,
171
+ snapshot.source_subscription_id, snapshot.source_subscription_version,
172
+ snapshot.verified_at, snapshot.created_at, snapshot.content_checksum,
163
173
  snapshot.id AS snapshot_id, snapshot.version AS snapshot_version,
164
174
  snapshot.plan_version_id AS snapshot_plan_version_id,
165
175
  snapshot.verification_status AS snapshot_verification_status,
@@ -178,6 +188,7 @@ async function readAttribution(client, org, lock) {
178
188
  JOIN billing_entitlement_snapshots AS snapshot
179
189
  ON snapshot.billing_account_id = active_snapshot.billing_account_id
180
190
  AND snapshot.id = active_snapshot.snapshot_id
191
+ JOIN billing_plan_versions AS plan ON plan.id = snapshot.plan_version_id
181
192
  JOIN billing_account_active_enforcement_profiles AS active_profile
182
193
  ON active_profile.billing_account_id = link.billing_account_id
183
194
  JOIN billing_account_enforcement_profiles AS profile
@@ -185,7 +196,9 @@ async function readAttribution(client, org, lock) {
185
196
  AND profile.version = active_profile.profile_version
186
197
  JOIN billing_enforcement_cohort_seals AS seal ON seal.singleton = true
187
198
  WHERE link.org_slug = $1 AND link.active
188
- ${lock ? 'FOR SHARE OF link, account, active_snapshot, snapshot, active_profile, profile, seal' : ''}`, [org]);
199
+ ${lock
200
+ ? 'FOR SHARE OF link, account, active_snapshot, snapshot, plan, active_profile, profile, seal'
201
+ : ''}`, [org]);
189
202
  return rows[0];
190
203
  }
191
204
  function sameAttribution(initial, locked) {
@@ -200,6 +213,19 @@ function sameAttribution(initial, locked) {
200
213
  toIso(initial.snapshot_effective_from) === toIso(locked.snapshot_effective_from) &&
201
214
  initial.snapshot_content_checksum === locked.snapshot_content_checksum &&
202
215
  toIso(initial.monthly_usage_anchor) === toIso(locked.monthly_usage_anchor) &&
216
+ initial.schema_version === locked.schema_version &&
217
+ initial.source_kind === locked.source_kind &&
218
+ initial.generation_reason === locked.generation_reason &&
219
+ toOptionalIso(initial.effective_until) === toOptionalIso(locked.effective_until) &&
220
+ initial.source_subscription_id === locked.source_subscription_id &&
221
+ initial.source_subscription_version === locked.source_subscription_version &&
222
+ toIso(initial.verified_at) === toIso(locked.verified_at) &&
223
+ toIso(initial.created_at) === toIso(locked.created_at) &&
224
+ initial.plan_code === locked.plan_code &&
225
+ initial.plan_version === locked.plan_version &&
226
+ toIso(initial.plan_effective_from) === toIso(locked.plan_effective_from) &&
227
+ initial.plan_content_checksum === locked.plan_content_checksum &&
228
+ toIso(initial.plan_created_at) === toIso(locked.plan_created_at) &&
203
229
  initial.profile_version === locked.profile_version &&
204
230
  initial.profile_mode === locked.profile_mode &&
205
231
  initial.profile_source === locked.profile_source &&
@@ -208,7 +234,7 @@ function sameAttribution(initial, locked) {
208
234
  initial.cohort_seal_id === locked.cohort_seal_id &&
209
235
  toIso(initial.cohort_sealed_at) === toIso(locked.cohort_sealed_at));
210
236
  }
211
- function validateAttribution(row) {
237
+ function validateAttributionProfile(row) {
212
238
  const profileEffectiveFrom = toIso(row.profile_effective_from);
213
239
  const cohortSealedAt = toIso(row.cohort_sealed_at);
214
240
  const validLegacyProfile = row.profile_mode === 'legacy_internal_exempt' &&
@@ -219,7 +245,13 @@ function validateAttribution(row) {
219
245
  profileEffectiveFrom >= cohortSealedAt;
220
246
  if (row.account_state !== 'active' ||
221
247
  row.profile_cohort_seal_id !== row.cohort_seal_id ||
222
- (!validLegacyProfile && !validEnforcedProfile) ||
248
+ (!validLegacyProfile && !validEnforcedProfile)) {
249
+ throw unavailable();
250
+ }
251
+ }
252
+ function validateLegacyAttribution(row) {
253
+ validateAttributionProfile(row);
254
+ if (row.profile_mode !== 'legacy_internal_exempt' ||
223
255
  row.snapshot_verification_status !== 'verified' ||
224
256
  !Number.isSafeInteger(row.snapshot_version) ||
225
257
  row.snapshot_version < 1) {
@@ -238,9 +270,9 @@ function validateAttribution(row) {
238
270
  if (row.snapshot_content_checksum !== expectedChecksum)
239
271
  throw unavailable();
240
272
  }
241
- function validAttribution(row) {
273
+ function validLegacyAttribution(row) {
242
274
  try {
243
- validateAttribution(row);
275
+ validateLegacyAttribution(row);
244
276
  return true;
245
277
  }
246
278
  catch (error) {
@@ -249,6 +281,22 @@ function validAttribution(row) {
249
281
  throw error;
250
282
  }
251
283
  }
284
+ function resolveEnforcedAttribution(row, admissionContractVersion, databaseTime) {
285
+ validateAttributionProfile(row);
286
+ if (row.profile_mode !== 'enforced')
287
+ throw unavailable();
288
+ try {
289
+ return resolveActiveBillingCommercialEntitlement(row, {
290
+ admissionContractVersion,
291
+ databaseTime,
292
+ });
293
+ }
294
+ catch (error) {
295
+ if (error instanceof BillingActiveCommercialEntitlementInconsistentError)
296
+ throw unavailable();
297
+ throw error;
298
+ }
299
+ }
252
300
  function normalizeInput(input) {
253
301
  const deploymentId = input.deploymentId.trim();
254
302
  if (deploymentId.length === 0 ||
@@ -280,12 +328,6 @@ function validateFingerprint(label, value) {
280
328
  throw new Error(`${label} must be a SHA-256 digest`);
281
329
  return value;
282
330
  }
283
- function validateAdmissionContractVersion(value) {
284
- if (value !== BILLING_AUTHORITATIVE_ADMISSION_CONTRACT_VERSION) {
285
- throw new Error('billing authoritative admission contract version is unsupported');
286
- }
287
- return value;
288
- }
289
331
  function boundedTimeout(label, value) {
290
332
  if (!Number.isSafeInteger(value) || value < 1 || value > 5_000) {
291
333
  throw new Error(`${label} must be between 1 and 5000 milliseconds`);
@@ -295,7 +337,7 @@ function boundedTimeout(label, value) {
295
337
  function translateAdmissionError(error) {
296
338
  if (error instanceof BillingAuthoritativeAuthorityInconsistentError)
297
339
  return unavailable();
298
- if (error instanceof BillingCommercialEntitlementError)
340
+ if (error instanceof BillingActiveCommercialEntitlementInconsistentError)
299
341
  return unavailable();
300
342
  if (error instanceof BillingAuthoritativeAdmissionUnavailableError ||
301
343
  error instanceof BillingAuthoritativeIdempotencyConflictError) {
@@ -312,6 +354,9 @@ function toIso(value) {
312
354
  throw unavailable();
313
355
  return date.toISOString();
314
356
  }
357
+ function toOptionalIso(value) {
358
+ return value === null ? null : toIso(value);
359
+ }
315
360
  function unavailable() {
316
361
  return new BillingAuthoritativeAdmissionUnavailableError();
317
362
  }
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-meter-admission.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-admission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-meter-admission.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-admission.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-production-app-admission.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-production-app-admission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,IAAI,CAAC;AAIrD;;;GAGG;AACH,eAAO,MAAM,sCAAsC,gDAAgD,CAAC;AAIpG,MAAM,MAAM,sCAAsC,GAC9C,+BAA+B,GAC/B,iCAAiC,CAAC;AAEtC,qBAAa,kCAAmC,SAAQ,KAAK;IAC3D,QAAQ,CAAC,IAAI,EAAE,sCAAsC,CAAC;gBAE1C,IAAI,EAAE,sCAAsC;CASzD;AAED,MAAM,MAAM,oCAAoC,GAC5C;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AA8CN,kGAAkG;AAClG,wBAAsB,uCAAuC,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/F;AAED;;;GAGG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,oCAAoC,CAAC,CAgB/C;AAiED,+FAA+F;AAC/F,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
1
+ {"version":3,"file":"postgres-production-app-admission.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-production-app-admission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,IAAI,CAAC;AASrD;;;GAGG;AACH,eAAO,MAAM,sCAAsC,gDAAgD,CAAC;AAEpG,MAAM,MAAM,sCAAsC,GAC9C,+BAA+B,GAC/B,iCAAiC,CAAC;AAEtC,qBAAa,kCAAmC,SAAQ,KAAK;IAC3D,QAAQ,CAAC,IAAI,EAAE,sCAAsC,CAAC;gBAE1C,IAAI,EAAE,sCAAsC;CASzD;AAED,MAAM,MAAM,oCAAoC,GAC5C;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AA8CN,kGAAkG;AAClG,wBAAsB,uCAAuC,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/F;AAED;;;GAGG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,oCAAoC,CAAC,CAkB/C;AA4FD,+FAA+F;AAC/F,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
@@ -1,11 +1,11 @@
1
- import { parseBillingCommercialFreeV1Entitlements } from './commercial-entitlements.js';
1
+ import { BillingActiveCommercialEntitlementInconsistentError, resolveActiveBillingCommercialEntitlement, } from './active-commercial-entitlement.js';
2
2
  import { billingContentChecksum } from './model.js';
3
+ import { readBillingMeterTransactionTime } from './postgres-meter-clock.js';
3
4
  /**
4
5
  * This exact deployed lock identity is shared with validation-epoch lifecycle operations. Keeping the
5
6
  * value stable makes old and new service revisions serialize during a rolling enforcement cutover.
6
7
  */
7
8
  export const BILLING_ENFORCEMENT_LIFECYCLE_LOCK_KEY = 'billing-meter-validation-epoch-lifecycle:v1';
8
- const PRODUCTION_APP_ADMISSION_CONTRACT_VERSION = 1;
9
9
  export class BillingProductionAppAdmissionError extends Error {
10
10
  code;
11
11
  constructor(code) {
@@ -42,11 +42,11 @@ export async function prepareProductionAppAdmissionTx(client, input) {
42
42
  }
43
43
  throw error;
44
44
  }
45
- if (authorityMode === 'bypass')
45
+ if (authorityMode.mode === 'bypass')
46
46
  return { kind: 'bypass' };
47
- return resolveProductionAppAdmissionTx(client, input);
47
+ return resolveProductionAppAdmissionTx(client, input, authorityMode.admissionContractVersion);
48
48
  }
49
- async function resolveProductionAppAdmissionTx(client, input) {
49
+ async function resolveProductionAppAdmissionTx(client, input, admissionContractVersion) {
50
50
  const initialLink = await client.query(`SELECT billing_account_id
51
51
  FROM org_billing_links
52
52
  WHERE org_slug = $1 AND active`, [input.org]);
@@ -62,6 +62,17 @@ async function resolveProductionAppAdmissionTx(client, input) {
62
62
  profile.cohort_seal_id AS profile_cohort_seal_id,
63
63
  profile.effective_from AS profile_effective_from,
64
64
  seal.id AS cohort_seal_id, seal.sealed_at AS cohort_sealed_at,
65
+ snapshot.id, snapshot.version, snapshot.plan_version_id,
66
+ plan.plan_code, plan.version AS plan_version,
67
+ plan.effective_from AS plan_effective_from,
68
+ plan.entitlements AS plan_entitlements,
69
+ plan.content_checksum AS plan_content_checksum,
70
+ plan.created_at AS plan_created_at,
71
+ snapshot.schema_version, snapshot.source_kind, snapshot.generation_reason,
72
+ snapshot.verification_status, snapshot.effective_from, snapshot.effective_until,
73
+ snapshot.monthly_usage_anchor, snapshot.entitlements, snapshot.content_checksum,
74
+ snapshot.source_subscription_id, snapshot.source_subscription_version,
75
+ snapshot.verified_at, snapshot.created_at,
65
76
  snapshot.id AS snapshot_id, snapshot.version AS snapshot_version,
66
77
  snapshot.plan_version_id AS snapshot_plan_version_id,
67
78
  snapshot.verification_status AS snapshot_verification_status,
@@ -76,6 +87,7 @@ async function resolveProductionAppAdmissionTx(client, input) {
76
87
  JOIN billing_entitlement_snapshots AS snapshot
77
88
  ON snapshot.billing_account_id = active_snapshot.billing_account_id
78
89
  AND snapshot.id = active_snapshot.snapshot_id
90
+ JOIN billing_plan_versions AS plan ON plan.id = snapshot.plan_version_id
79
91
  JOIN billing_account_active_enforcement_profiles AS active_profile
80
92
  ON active_profile.billing_account_id = link.billing_account_id
81
93
  JOIN billing_account_enforcement_profiles AS profile
@@ -84,14 +96,30 @@ async function resolveProductionAppAdmissionTx(client, input) {
84
96
  JOIN billing_enforcement_cohort_seals AS seal ON seal.singleton = true
85
97
  WHERE link.org_slug = $1
86
98
  AND link.active
87
- FOR SHARE OF link, account, active_snapshot, snapshot, active_profile, profile, seal`, [input.org]);
99
+ FOR SHARE OF link, account, active_snapshot, snapshot, plan, active_profile, profile, seal`, [input.org]);
88
100
  const row = resolution.rows[0];
89
101
  if (row === undefined || row.billing_account_id !== initialAccountId)
90
102
  throw unavailable();
91
- validateBillingResolution(row);
92
- if (row.mode === 'legacy_internal_exempt')
103
+ validateBillingResolutionProfile(row);
104
+ if (row.mode === 'legacy_internal_exempt') {
105
+ validateLegacyBillingResolution(row);
93
106
  return { kind: 'bypass' };
94
- const entitlements = parseBillingCommercialFreeV1Entitlements(row.entitlements);
107
+ }
108
+ if (admissionContractVersion === undefined)
109
+ throw unavailable();
110
+ const databaseTime = await readBillingMeterTransactionTime(client);
111
+ let entitlements;
112
+ try {
113
+ entitlements = resolveActiveBillingCommercialEntitlement(row, {
114
+ admissionContractVersion,
115
+ databaseTime,
116
+ }).entitlements;
117
+ }
118
+ catch (error) {
119
+ if (error instanceof BillingActiveCommercialEntitlementInconsistentError)
120
+ throw unavailable();
121
+ throw error;
122
+ }
95
123
  return {
96
124
  kind: 'enforced',
97
125
  billingAccountId: row.billing_account_id,
@@ -173,40 +201,45 @@ function validateAuthority(row) {
173
201
  authoritativeActiveCount !== 0) {
174
202
  throw unavailable();
175
203
  }
176
- return 'bypass';
204
+ return { mode: 'bypass' };
177
205
  }
178
206
  if (row.activation_state === 'rolled_back') {
207
+ const admissionContractVersion = persistedAdmissionContractVersion(row.activation_contract_version);
179
208
  if (row.activation_generation < 1 ||
180
209
  row.active_epoch_id !== null ||
181
210
  row.last_epoch_id === null ||
182
- row.activation_contract_version !== PRODUCTION_APP_ADMISSION_CONTRACT_VERSION ||
183
211
  row.last_epoch_purpose !== 'authoritative' ||
184
212
  row.last_epoch_state !== 'retired' ||
185
- row.last_epoch_contract_version !== PRODUCTION_APP_ADMISSION_CONTRACT_VERSION ||
213
+ row.last_epoch_contract_version !== admissionContractVersion ||
186
214
  row.last_epoch_release_sha !== row.activation_release_sha ||
187
215
  !sameInstant(row.last_epoch_activated_at, row.activation_activated_at) ||
188
216
  authoritativeActiveCount !== 0) {
189
217
  throw unavailable();
190
218
  }
191
- return 'bypass';
219
+ return { mode: 'bypass' };
192
220
  }
221
+ const admissionContractVersion = persistedAdmissionContractVersion(row.activation_contract_version);
193
222
  if (row.activation_state !== 'active' ||
194
223
  row.activation_generation < 1 ||
195
224
  row.active_epoch_id === null ||
196
225
  row.active_epoch_id !== row.last_epoch_id ||
197
- row.activation_contract_version !== PRODUCTION_APP_ADMISSION_CONTRACT_VERSION ||
198
226
  row.active_epoch_purpose !== 'authoritative' ||
199
227
  row.active_epoch_state !== 'active' ||
200
- row.active_epoch_contract_version !== PRODUCTION_APP_ADMISSION_CONTRACT_VERSION ||
228
+ row.active_epoch_contract_version !== admissionContractVersion ||
201
229
  row.active_epoch_release_sha !== row.activation_release_sha ||
202
230
  !sameInstant(row.active_epoch_activated_at, row.activation_activated_at) ||
203
231
  row.active_epoch_reconciliation_failed_at !== null ||
204
232
  authoritativeActiveCount !== 1) {
205
233
  throw unavailable();
206
234
  }
207
- return 'enforce';
235
+ return { mode: 'enforce', admissionContractVersion };
208
236
  }
209
- function validateBillingResolution(row) {
237
+ function persistedAdmissionContractVersion(value) {
238
+ if (value !== 1 && value !== 2)
239
+ throw unavailable();
240
+ return value;
241
+ }
242
+ function validateBillingResolutionProfile(row) {
210
243
  const profileEffectiveFrom = persistedInstant(row.profile_effective_from);
211
244
  const cohortSealedAt = persistedInstant(row.cohort_sealed_at);
212
245
  const validLegacyProfile = row.mode === 'legacy_internal_exempt' &&
@@ -217,7 +250,12 @@ function validateBillingResolution(row) {
217
250
  profileEffectiveFrom >= cohortSealedAt;
218
251
  if (row.account_state !== 'active' ||
219
252
  row.profile_cohort_seal_id !== row.cohort_seal_id ||
220
- (!validLegacyProfile && !validEnforcedProfile) ||
253
+ (!validLegacyProfile && !validEnforcedProfile)) {
254
+ throw unavailable();
255
+ }
256
+ }
257
+ function validateLegacyBillingResolution(row) {
258
+ if (row.mode !== 'legacy_internal_exempt' ||
221
259
  row.snapshot_verification_status !== 'verified' ||
222
260
  !Number.isSafeInteger(row.snapshot_version) ||
223
261
  row.snapshot_version < 1) {
@@ -235,14 +273,6 @@ function validateBillingResolution(row) {
235
273
  });
236
274
  if (row.snapshot_content_checksum !== expectedChecksum)
237
275
  throw unavailable();
238
- if (row.mode === 'enforced') {
239
- try {
240
- parseBillingCommercialFreeV1Entitlements(row.entitlements);
241
- }
242
- catch {
243
- throw unavailable();
244
- }
245
- }
246
276
  }
247
277
  function sameInstant(left, right) {
248
278
  if (left === null || right === null)
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-production-app-admission.js","sourceRoot":"","sources":["../../src/billing/postgres-production-app-admission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-production-app-admission.js","sourceRoot":"","sources":["../../src/billing/postgres-production-app-admission.ts"],"names":[],"mappings":"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"}
@@ -39,13 +39,17 @@ export interface EntitlementSnapshotRow {
39
39
  readonly plan_entitlements: unknown;
40
40
  readonly plan_content_checksum: string;
41
41
  readonly plan_created_at: Date | string;
42
+ readonly schema_version: number;
42
43
  readonly source_kind: string;
43
44
  readonly generation_reason: string;
44
45
  readonly verification_status: string;
45
46
  readonly effective_from: Date | string;
47
+ readonly effective_until: Date | string | null;
46
48
  readonly monthly_usage_anchor: Date | string;
47
49
  readonly entitlements: unknown;
48
50
  readonly content_checksum: string;
51
+ readonly source_subscription_id: string | null;
52
+ readonly source_subscription_version: number | null;
49
53
  readonly verified_at: Date | string;
50
54
  readonly created_at: Date | string;
51
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-records.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-records.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-records.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-records.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EAGzB,KAAK,yBAAyB,EAG9B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EAEvB,MAAM,YAAY,CAAC;AAGpB,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,oBAAoB,CAUxE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,0BAA0B,CAc5E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,iBAAiB,CAuB7E;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,sBAAsB,GAC1B,yBAAyB,CAiF3B;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,iBAAiB,GAAG,oBAAoB,CAoBtF;AA2BD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAapE;AAQD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,IAAI,GAAG,MAAM,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,mBAAmB,EAAE,IAAI,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,IAAI,GAAG,MAAM,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,oBAAoB,EAAE,IAAI,GAAG,MAAM,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB"}
@@ -1,5 +1,6 @@
1
1
  import { validateSlug } from '../store/validate.js';
2
2
  import { billingContentChecksum, normalizeBillingEmail, normalizeBillingIdentity, validateBillingAccountId, } from './model.js';
3
+ import { parsePaidEntitlementSnapshot } from './subscription-model.js';
3
4
  export function accountRowToRecord(row) {
4
5
  if (row.state !== 'active' && row.state !== 'draft' && row.state !== 'inactive') {
5
6
  throw new Error('persisted billing account has an invalid state');
@@ -51,11 +52,6 @@ export function planVersionRowToRecord(row) {
51
52
  return record;
52
53
  }
53
54
  export function entitlementSnapshotRowToRecord(row) {
54
- if (row.source_kind !== 'system-free' ||
55
- row.generation_reason !== 'default-account-created' ||
56
- row.verification_status !== 'verified') {
57
- throw new Error('persisted entitlement snapshot has an unsupported provenance');
58
- }
59
55
  const effectiveFrom = toIsoString(row.effective_from);
60
56
  const monthlyUsageAnchor = toIsoString(row.monthly_usage_anchor);
61
57
  const entitlements = parseEntitlements(row.entitlements);
@@ -68,16 +64,13 @@ export function entitlementSnapshotRowToRecord(row) {
68
64
  content_checksum: row.plan_content_checksum,
69
65
  created_at: row.plan_created_at,
70
66
  });
71
- const record = {
67
+ const common = {
72
68
  id: validateScalarId('entitlement snapshot id', row.id),
73
69
  billingAccountId: validateBillingAccountId(row.billing_account_id),
74
70
  version: validatePositiveInteger('entitlement snapshot version', row.version),
75
71
  planVersionId: validateScalarId('plan version id', row.plan_version_id),
76
72
  planCode: plan.planCode,
77
73
  planVersion: plan.version,
78
- sourceKind: row.source_kind,
79
- generationReason: row.generation_reason,
80
- verificationStatus: row.verification_status,
81
74
  effectiveFrom,
82
75
  monthlyUsageAnchor,
83
76
  entitlements,
@@ -85,6 +78,42 @@ export function entitlementSnapshotRowToRecord(row) {
85
78
  verifiedAt: toIsoString(row.verified_at),
86
79
  createdAt: toIsoString(row.created_at),
87
80
  };
81
+ if (row.schema_version === 2) {
82
+ if (row.source_kind !== 'subscription' ||
83
+ row.generation_reason !== 'subscription-reconciled' ||
84
+ row.verification_status !== 'verified' ||
85
+ row.effective_until === null ||
86
+ row.source_subscription_id === null ||
87
+ row.source_subscription_version === null) {
88
+ throw new Error('persisted entitlement snapshot has an unsupported provenance');
89
+ }
90
+ return parsePaidEntitlementSnapshot({
91
+ ...common,
92
+ schemaVersion: 2,
93
+ sourceKind: row.source_kind,
94
+ generationReason: row.generation_reason,
95
+ verificationStatus: row.verification_status,
96
+ effectiveUntil: toIsoString(row.effective_until),
97
+ sourceSubscriptionId: row.source_subscription_id,
98
+ sourceSubscriptionVersion: row.source_subscription_version,
99
+ });
100
+ }
101
+ if (row.schema_version !== 1 ||
102
+ row.source_kind !== 'system-free' ||
103
+ row.generation_reason !== 'default-account-created' ||
104
+ row.verification_status !== 'verified' ||
105
+ row.effective_until !== null ||
106
+ row.source_subscription_id !== null ||
107
+ row.source_subscription_version !== null) {
108
+ throw new Error('persisted entitlement snapshot has an unsupported provenance');
109
+ }
110
+ const record = {
111
+ ...common,
112
+ schemaVersion: 1,
113
+ sourceKind: row.source_kind,
114
+ generationReason: row.generation_reason,
115
+ verificationStatus: row.verification_status,
116
+ };
88
117
  const checksum = billingContentChecksum({
89
118
  billingAccountId: record.billingAccountId,
90
119
  version: record.version,