@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.
- package/node_modules/@noodle-borg/service/dist/billing/active-commercial-entitlement.d.ts +25 -0
- package/node_modules/@noodle-borg/service/dist/billing/active-commercial-entitlement.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/active-commercial-entitlement.js +94 -0
- package/node_modules/@noodle-borg/service/dist/billing/active-commercial-entitlement.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/commercial-entitlements.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/billing/commercial-entitlements.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/commercial-entitlements.js +49 -0
- package/node_modules/@noodle-borg/service/dist/billing/commercial-entitlements.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/in-memory.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/in-memory.js +3 -2
- package/node_modules/@noodle-borg/service/dist/billing/in-memory.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/integration.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/integration.js +0 -3
- package/node_modules/@noodle-borg/service/dist/billing/integration.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/model.d.ts +16 -3
- package/node_modules/@noodle-borg/service/dist/billing/model.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/model.js +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/model.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/paid-plan-catalog.d.ts +26 -0
- package/node_modules/@noodle-borg/service/dist/billing/paid-plan-catalog.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/paid-plan-catalog.js +94 -0
- package/node_modules/@noodle-borg/service/dist/billing/paid-plan-catalog.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.d.ts +4 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.js +21 -7
- package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-counters.js +4 -5
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-counters.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.d.ts +0 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.js +92 -27
- package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.d.ts +0 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.js +72 -27
- package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.js +56 -26
- package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-records.d.ts +4 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-records.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-records.js +38 -9
- package/node_modules/@noodle-borg/service/dist/billing/postgres-records.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js +28 -21
- package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-authority.d.ts +5 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-authority.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-authority.js +97 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-authority.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-persistence.d.ts +50 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-persistence.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-persistence.js +221 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-persistence.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-support.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-support.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-support.js +42 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation-support.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation.d.ts +15 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation.js +123 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-reconciliation.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-schema.d.ts +4 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-schema.js +419 -0
- package/node_modules/@noodle-borg/service/dist/billing/postgres-subscription-schema.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/subscription-model.d.ts +40 -0
- package/node_modules/@noodle-borg/service/dist/billing/subscription-model.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/subscription-model.js +388 -0
- package/node_modules/@noodle-borg/service/dist/billing/subscription-model.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/subscription-reconciliation.d.ts +45 -0
- package/node_modules/@noodle-borg/service/dist/billing/subscription-reconciliation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing/subscription-reconciliation.js +165 -0
- package/node_modules/@noodle-borg/service/dist/billing/subscription-reconciliation.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/billing-public.d.ts +6 -1
- package/node_modules/@noodle-borg/service/dist/billing-public.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/billing-public.js +5 -0
- package/node_modules/@noodle-borg/service/dist/billing-public.js.map +1 -1
- 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
|
-
!
|
|
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
|
-
|
|
85
|
+
const resolvedEntitlement = resolveEnforcedAttribution(attribution, authority.admissionContractVersion, recordedAt);
|
|
86
|
+
if (resolvedEntitlement.snapshotId !== initialEntitlement.snapshotId ||
|
|
87
|
+
resolvedEntitlement.snapshotVersion !== initialEntitlement.snapshotVersion) {
|
|
91
88
|
throw unavailable();
|
|
92
|
-
|
|
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 ||
|
|
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
|
|
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
|
|
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
|
|
273
|
+
function validLegacyAttribution(row) {
|
|
242
274
|
try {
|
|
243
|
-
|
|
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
|
|
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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"}
|
package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.d.ts.map
CHANGED
|
@@ -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;
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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 !==
|
|
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 !==
|
|
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
|
|
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)
|
package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-production-app-admission.js","sourceRoot":"","sources":["../../src/billing/postgres-production-app-admission.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
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":"AACA,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EAGzB,KAAK,yBAAyB,EAG9B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EAEvB,MAAM,YAAY,CAAC;
|
|
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
|
|
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,
|