@spottoai/types-package 1.0.2-dev1138.1 → 1.0.2-dev1138.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/azure/financialAnalytics.d.ts +12 -6
- package/dist/azure/financialAnalytics.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsDelivery.d.ts +70 -3
- package/dist/azure/financialAnalyticsDelivery.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsDelivery.js +4 -1
- package/dist/azure/financialAnalyticsDelivery.js.map +1 -1
- package/dist/azure/financialAnalyticsDeliveryValidation.d.ts +9 -1
- package/dist/azure/financialAnalyticsDeliveryValidation.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsDeliveryValidation.js +190 -10
- package/dist/azure/financialAnalyticsDeliveryValidation.js.map +1 -1
- package/dist/azure/financialAnalyticsValidation.d.ts.map +1 -1
- package/dist/azure/financialAnalyticsValidation.js +40 -12
- package/dist/azure/financialAnalyticsValidation.js.map +1 -1
- package/dist/azure/financialDataflow.d.ts +38 -2
- package/dist/azure/financialDataflow.d.ts.map +1 -1
- package/dist/azure/financialDataflow.js.map +1 -1
- package/dist/azure/financialDataflowKernel.d.ts +29 -0
- package/dist/azure/financialDataflowKernel.d.ts.map +1 -0
- package/dist/azure/financialDataflowKernel.js +117 -0
- package/dist/azure/financialDataflowKernel.js.map +1 -0
- package/dist/azure/financialDataflowValidation.d.ts +4 -1
- package/dist/azure/financialDataflowValidation.d.ts.map +1 -1
- package/dist/azure/financialDataflowValidation.js +59 -4
- package/dist/azure/financialDataflowValidation.js.map +1 -1
- package/dist/azure/financialEvidenceAssessmentValidation.d.ts.map +1 -1
- package/dist/azure/financialEvidenceAssessmentValidation.js +7 -0
- package/dist/azure/financialEvidenceAssessmentValidation.js.map +1 -1
- package/dist/azure/financialPolicy.d.ts +16 -3
- package/dist/azure/financialPolicy.d.ts.map +1 -1
- package/dist/azure/financialPolicyDelivery.d.ts +75 -1
- package/dist/azure/financialPolicyDelivery.d.ts.map +1 -1
- package/dist/azure/financialPolicyDelivery.js +5 -1
- package/dist/azure/financialPolicyDelivery.js.map +1 -1
- package/dist/azure/financialPolicyDeliveryValidation.d.ts +16 -2
- package/dist/azure/financialPolicyDeliveryValidation.d.ts.map +1 -1
- package/dist/azure/financialPolicyDeliveryValidation.js +238 -5
- package/dist/azure/financialPolicyDeliveryValidation.js.map +1 -1
- package/dist/azure/financialPolicyKernel.d.ts +38 -0
- package/dist/azure/financialPolicyKernel.d.ts.map +1 -0
- package/dist/azure/financialPolicyKernel.js +232 -0
- package/dist/azure/financialPolicyKernel.js.map +1 -0
- package/dist/azure/financialPolicyValidation.d.ts +1 -0
- package/dist/azure/financialPolicyValidation.d.ts.map +1 -1
- package/dist/azure/financialPolicyValidation.js +106 -16
- package/dist/azure/financialPolicyValidation.js.map +1 -1
- package/dist/azure/financialSavingsAuthority.d.ts +29 -0
- package/dist/azure/financialSavingsAuthority.d.ts.map +1 -1
- package/dist/azure/financialSavingsAuthority.js +2 -1
- package/dist/azure/financialSavingsAuthority.js.map +1 -1
- package/dist/azure/financialSavingsAuthorityValidation.d.ts.map +1 -1
- package/dist/azure/financialSavingsAuthorityValidation.js +3 -0
- package/dist/azure/financialSavingsAuthorityValidation.js.map +1 -1
- package/dist/azure/financialSavingsCoordinateValidation.d.ts.map +1 -1
- package/dist/azure/financialSavingsCoordinateValidation.js +36 -0
- package/dist/azure/financialSavingsCoordinateValidation.js.map +1 -1
- package/dist/azure/financialScope.d.ts +2 -0
- package/dist/azure/financialScope.d.ts.map +1 -1
- package/dist/azure/financialScope.js +2 -0
- package/dist/azure/financialScope.js.map +1 -1
- package/dist/azure/financialScopeBaseline.d.ts +8 -2
- package/dist/azure/financialScopeBaseline.d.ts.map +1 -1
- package/dist/azure/financialScopeBaseline.js +14 -1
- package/dist/azure/financialScopeBaseline.js.map +1 -1
- package/dist/azure/financialScopeBaselineValidation.d.ts.map +1 -1
- package/dist/azure/financialScopeBaselineValidation.js +15 -1
- package/dist/azure/financialScopeBaselineValidation.js.map +1 -1
- package/dist/azure/financialScopeEvidence.d.ts +1 -1
- package/dist/azure/financialScopeEvidence.d.ts.map +1 -1
- package/dist/azure/views.d.ts +14 -3
- package/dist/azure/views.d.ts.map +1 -1
- package/dist/azure/views.js.map +1 -1
- package/dist/esm/azure/financialAnalyticsDelivery.js +3 -0
- package/dist/esm/azure/financialAnalyticsDeliveryValidation.js +184 -11
- package/dist/esm/azure/financialAnalyticsValidation.js +40 -12
- package/dist/esm/azure/financialDataflowKernel.js +111 -0
- package/dist/esm/azure/financialDataflowValidation.js +55 -3
- package/dist/esm/azure/financialEvidenceAssessmentValidation.js +7 -0
- package/dist/esm/azure/financialPolicyDelivery.js +4 -0
- package/dist/esm/azure/financialPolicyDeliveryValidation.js +227 -7
- package/dist/esm/azure/financialPolicyKernel.js +225 -0
- package/dist/esm/azure/financialPolicyValidation.js +105 -16
- package/dist/esm/azure/financialSavingsAuthority.js +1 -0
- package/dist/esm/azure/financialSavingsAuthorityValidation.js +3 -0
- package/dist/esm/azure/financialSavingsCoordinateValidation.js +36 -0
- package/dist/esm/azure/financialScope.js +2 -0
- package/dist/esm/azure/financialScopeBaseline.js +12 -0
- package/dist/esm/azure/financialScopeBaselineValidation.js +15 -1
- package/dist/events/cost.d.ts +4 -0
- package/dist/events/cost.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import { multiplyExactDecimalValues, parseCanonicalDecimal, subtractExactDecimal
|
|
|
2
2
|
import { sha256Utf8 } from '../common/sha256.js';
|
|
3
3
|
import { isCanonicalExactMoney } from './financialValidationPrimitives.js';
|
|
4
4
|
import { FINANCIAL_POLICY_DEFINITION_CONTRACT_VERSION_V1, FINANCIAL_POLICY_EVALUATION_CONTRACT_VERSION_V1, } from './financialPolicy.js';
|
|
5
|
-
import { FINANCIAL_DATAFLOW_LIMITS_V1, canonicalizeFinancialDataflowJsonV1, canonicalizeFinancialDataflowCoordinateV1, hasFinancialDataflowExactFieldsV1, isFinancialDataflowCurrencyV1, createFinancialDataflowCoordinateIdV1, isFinancialDataflowHashV1, isFinancialDataflowIdentityV1, isFinancialDataflowIsoInstantV1, isFinancialDataflowRecordV1,
|
|
5
|
+
import { FINANCIAL_DATAFLOW_LIMITS_V1, canonicalizeFinancialDataflowJsonV1, canonicalizeFinancialDataflowCoordinateV1, hasFinancialDataflowExactFieldsV1, isFinancialDataflowCurrencyV1, createFinancialDataflowCoordinateIdV1, isFinancialDataflowHashV1, isFinancialDataflowIdentityV1, isFinancialDataflowIsoInstantV1, isFinancialDataflowRecordV1, isFinancialDataflowScopeSelectorV1, isFinancialDataflowSortedUniqueStringsV1, isFinancialDataflowValueWithinLimitsV1, } from './financialDataflowValidation.js';
|
|
6
6
|
import { isCurrentSpendCompositionV1 } from './financialDataflowValidation.js';
|
|
7
7
|
import { isFinancialAnalyticsProjectionV1 } from './financialAnalyticsValidation.js';
|
|
8
8
|
const COST_BASES = new Set(['billed', 'amortized']);
|
|
@@ -10,6 +10,12 @@ const ESTIMATE_LENSES = new Set(['billing-only', 'include-estimates', 'estimates
|
|
|
10
10
|
const MATCHED_THRESHOLD_KINDS = new Set(['amount', 'percent', 'minimum-amount', 'minimum-delta', 'minimum-percent-change']);
|
|
11
11
|
const MAX_THRESHOLDS = 64;
|
|
12
12
|
const MAX_DESTINATIONS = 256;
|
|
13
|
+
const isCanonicalPolicyRevision = (value) => {
|
|
14
|
+
if (typeof value !== 'string' || !/^[1-9]\d*$/.test(value))
|
|
15
|
+
return false;
|
|
16
|
+
const parsed = Number(value);
|
|
17
|
+
return Number.isSafeInteger(parsed) && String(parsed) === value;
|
|
18
|
+
};
|
|
13
19
|
const isCanonicalDecimal = (value) => typeof value === 'string' && isCanonicalExactMoney({ amount: value, currencyCode: 'AUD' });
|
|
14
20
|
const isNonNegativeDecimal = (value) => {
|
|
15
21
|
if (!isCanonicalDecimal(value))
|
|
@@ -46,11 +52,36 @@ const isThresholdSet = (value) => {
|
|
|
46
52
|
}
|
|
47
53
|
return new Set(value.amounts).size === value.amounts.length && new Set(value.percents).size === value.percents.length;
|
|
48
54
|
};
|
|
55
|
+
const isScopeSelectorBoundToProviderAccounts = (selector, providerAccountRefs) => {
|
|
56
|
+
if (!isFinancialDataflowScopeSelectorV1(selector) || !Array.isArray(providerAccountRefs))
|
|
57
|
+
return false;
|
|
58
|
+
const providerSubscriptions = providerAccountRefs.map(value => {
|
|
59
|
+
if (typeof value !== 'string' || !value.toLowerCase().startsWith('azure-subscription:'))
|
|
60
|
+
return undefined;
|
|
61
|
+
const subscriptionId = value.slice('azure-subscription:'.length).trim().toLowerCase();
|
|
62
|
+
return subscriptionId || undefined;
|
|
63
|
+
});
|
|
64
|
+
if (providerSubscriptions.some(value => value === undefined))
|
|
65
|
+
return false;
|
|
66
|
+
const authorized = new Set(providerSubscriptions);
|
|
67
|
+
if (selector.kind === 'subscription' || selector.kind === 'multi-subscription') {
|
|
68
|
+
const selected = selector.subscriptionIds.map(value => value.trim().toLowerCase());
|
|
69
|
+
return selected.length === authorized.size && selected.every(value => authorized.has(value));
|
|
70
|
+
}
|
|
71
|
+
if (selector.kind === 'tag-scope')
|
|
72
|
+
return true;
|
|
73
|
+
const ids = selector.kind === 'resource' ? selector.resourceIds : selector.resourceGroupIds;
|
|
74
|
+
return ids.every(value => {
|
|
75
|
+
const match = /^\/subscriptions\/([^/]+)(?:\/|$)/i.exec(value.trim());
|
|
76
|
+
return match?.[1] !== undefined && authorized.has(match[1].toLowerCase());
|
|
77
|
+
});
|
|
78
|
+
};
|
|
49
79
|
const isCoordinateRequest = (value, companyId) => isFinancialDataflowRecordV1(value) &&
|
|
50
80
|
hasFinancialDataflowExactFieldsV1(value, [
|
|
51
81
|
'provider',
|
|
52
82
|
'providerAccountRefs',
|
|
53
83
|
'scope',
|
|
84
|
+
'scopeSelector',
|
|
54
85
|
'period',
|
|
55
86
|
'costBasis',
|
|
56
87
|
'estimateLens',
|
|
@@ -59,11 +90,19 @@ const isCoordinateRequest = (value, companyId) => isFinancialDataflowRecordV1(va
|
|
|
59
90
|
value.provider === 'azure' &&
|
|
60
91
|
isFinancialDataflowSortedUniqueStringsV1(value.providerAccountRefs, FINANCIAL_DATAFLOW_LIMITS_V1.maximumProviderAccounts) &&
|
|
61
92
|
value.providerAccountRefs.length > 0 &&
|
|
62
|
-
|
|
93
|
+
isFinancialDataflowRecordV1(value.scope) &&
|
|
94
|
+
hasFinancialDataflowExactFieldsV1(value.scope, ['kind', 'scopeId']) &&
|
|
95
|
+
['resource', 'resource-group', 'subscription', 'tag-scope', 'multi-subscription'].includes(String(value.scope.kind)) &&
|
|
96
|
+
isFinancialDataflowIdentityV1(value.scope.scopeId) &&
|
|
97
|
+
isFinancialDataflowScopeSelectorV1(value.scopeSelector) &&
|
|
98
|
+
value.scopeSelector.kind === value.scope.kind &&
|
|
99
|
+
isScopeSelectorBoundToProviderAccounts(value.scopeSelector, value.providerAccountRefs) &&
|
|
63
100
|
isFinancialDataflowRecordV1(value.period) &&
|
|
64
|
-
hasFinancialDataflowExactFieldsV1(value.period, ['kind', 'timeZone']) &&
|
|
101
|
+
hasFinancialDataflowExactFieldsV1(value.period, ['kind', 'dateBasis'], ['timeZone']) &&
|
|
65
102
|
(value.period.kind === 'calendar-month' || value.period.kind === 'rolling-30-days') &&
|
|
66
|
-
|
|
103
|
+
(value.period.dateBasis === 'utc'
|
|
104
|
+
? value.period.timeZone === undefined
|
|
105
|
+
: value.period.dateBasis === 'company-local' && isFinancialDataflowIdentityV1(value.period.timeZone)) &&
|
|
67
106
|
typeof value.costBasis === 'string' &&
|
|
68
107
|
COST_BASES.has(value.costBasis) &&
|
|
69
108
|
typeof value.estimateLens === 'string' &&
|
|
@@ -89,13 +128,14 @@ const isCriteria = (value, currencyCode) => {
|
|
|
89
128
|
(value.minimumDelta === undefined || isNonNegativeDecimal(value.minimumDelta)) &&
|
|
90
129
|
(value.minimumPercentChange === undefined || isNonNegativeDecimal(value.minimumPercentChange)));
|
|
91
130
|
};
|
|
92
|
-
const
|
|
131
|
+
export const isFinancialPolicyDefinitionRevisionIdentityPreimageV1 = (value) => {
|
|
93
132
|
if (!isFinancialDataflowRecordV1(value) ||
|
|
94
133
|
!hasFinancialDataflowExactFieldsV1(value, [
|
|
95
134
|
'schemaVersion',
|
|
96
135
|
'contractVersion',
|
|
97
136
|
'companyId',
|
|
98
137
|
'definitionId',
|
|
138
|
+
'displayName',
|
|
99
139
|
'revision',
|
|
100
140
|
'effectiveState',
|
|
101
141
|
'coordinateRequest',
|
|
@@ -110,7 +150,8 @@ const isDefinitionIdentity = (value) => {
|
|
|
110
150
|
value.contractVersion !== FINANCIAL_POLICY_DEFINITION_CONTRACT_VERSION_V1 ||
|
|
111
151
|
!isFinancialDataflowIdentityV1(value.companyId) ||
|
|
112
152
|
!isFinancialDataflowIdentityV1(value.definitionId) ||
|
|
113
|
-
!isFinancialDataflowIdentityV1(value.
|
|
153
|
+
!isFinancialDataflowIdentityV1(value.displayName) ||
|
|
154
|
+
!isCanonicalPolicyRevision(value.revision) ||
|
|
114
155
|
!['enabled', 'disabled', 'deleted'].includes(String(value.effectiveState)) ||
|
|
115
156
|
!isCoordinateRequest(value.coordinateRequest, value.companyId) ||
|
|
116
157
|
!isFinancialDataflowRecordV1(value.coordinateRequest) ||
|
|
@@ -126,10 +167,22 @@ const isDefinitionIdentity = (value) => {
|
|
|
126
167
|
!isFinancialDataflowIdentityV1(value.authoredByUserId)) {
|
|
127
168
|
return false;
|
|
128
169
|
}
|
|
129
|
-
|
|
170
|
+
if (value.criteria.kind === 'budget' &&
|
|
171
|
+
value.criteria.forecastThresholds !== undefined &&
|
|
172
|
+
(value.coordinateRequest.period.kind !== 'calendar-month' || value.coordinateRequest.estimateLens !== 'billing-only')) {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
if (value.criteria.kind === 'cost-anomaly' &&
|
|
176
|
+
(value.coordinateRequest.period.kind !== 'rolling-30-days' || value.coordinateRequest.estimateLens !== 'billing-only')) {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
// Alert Instance state is the canonical internal policy side effect.
|
|
180
|
+
// External destinations are optional and must not determine whether an
|
|
181
|
+
// enabled policy is valid or evaluable.
|
|
182
|
+
return true;
|
|
130
183
|
};
|
|
131
184
|
export const canonicalizeFinancialPolicyDefinitionRevisionIdentityV1 = (value) => {
|
|
132
|
-
if (!isFinancialDataflowValueWithinLimitsV1(value) || !
|
|
185
|
+
if (!isFinancialDataflowValueWithinLimitsV1(value) || !isFinancialPolicyDefinitionRevisionIdentityPreimageV1(value)) {
|
|
133
186
|
throw new TypeError('Invalid FinancialPolicyDefinitionRevisionIdentityPreimageV1.');
|
|
134
187
|
}
|
|
135
188
|
const criteria = value.criteria.kind === 'budget'
|
|
@@ -171,7 +224,7 @@ export const isFinancialPolicyDefinitionRevisionV1 = (value) => {
|
|
|
171
224
|
return false;
|
|
172
225
|
const { policyDefinitionRevisionId, ...identity } = value;
|
|
173
226
|
return (isFinancialDataflowHashV1(policyDefinitionRevisionId) &&
|
|
174
|
-
|
|
227
|
+
isFinancialPolicyDefinitionRevisionIdentityPreimageV1(identity) &&
|
|
175
228
|
policyDefinitionRevisionId === createFinancialPolicyDefinitionRevisionIdV1(identity));
|
|
176
229
|
};
|
|
177
230
|
const isMatchedThresholds = (value) => Array.isArray(value) &&
|
|
@@ -216,8 +269,12 @@ const isEvaluationIdentity = (value) => {
|
|
|
216
269
|
!isMatchedThresholds(value.matchedThresholds)) {
|
|
217
270
|
return false;
|
|
218
271
|
}
|
|
219
|
-
const
|
|
220
|
-
|
|
272
|
+
const analyticsSignal = value.signalKind === 'budget-forecast' || value.signalKind === 'cost-anomaly';
|
|
273
|
+
if (!analyticsSignal)
|
|
274
|
+
return value.analyticsProjectionId === undefined;
|
|
275
|
+
if (value.result !== 'unavailable')
|
|
276
|
+
return isFinancialDataflowHashV1(value.analyticsProjectionId);
|
|
277
|
+
return value.analyticsProjectionId === undefined || isFinancialDataflowHashV1(value.analyticsProjectionId);
|
|
221
278
|
};
|
|
222
279
|
export const canonicalizeFinancialPolicyEvaluationIdentityV1 = (value) => {
|
|
223
280
|
if (!isFinancialDataflowValueWithinLimitsV1(value) || !isEvaluationIdentity(value)) {
|
|
@@ -332,6 +389,10 @@ const safeAnomalyMatchedThresholds = (definition, analyticsProjection) => {
|
|
|
332
389
|
return undefined;
|
|
333
390
|
}
|
|
334
391
|
};
|
|
392
|
+
const isExpectedCalendarMonthTargetPartial = (composition) => composition.coordinate.period.windowKind === 'calendar-month' &&
|
|
393
|
+
composition.amount.status === 'partial' &&
|
|
394
|
+
composition.amount.reasonCodes.length === 1 &&
|
|
395
|
+
composition.amount.reasonCodes[0] === 'coverage-incomplete';
|
|
335
396
|
/** Validates definition, coordinate, financial input, and signal links after authorization. */
|
|
336
397
|
export const isFinancialPolicyEvaluationCompatibleV1 = (evaluation, definition, currentSpendComposition, analyticsProjection) => {
|
|
337
398
|
if (!isFinancialPolicyEvaluationV1(evaluation) ||
|
|
@@ -355,13 +416,15 @@ export const isFinancialPolicyEvaluationCompatibleV1 = (evaluation, definition,
|
|
|
355
416
|
!sameStrings(request.providerAccountRefs, coordinate.providerAccountRefs) ||
|
|
356
417
|
request.scope.kind !== coordinate.scope.kind ||
|
|
357
418
|
request.scope.scopeId !== coordinate.scope.scopeId ||
|
|
358
|
-
request.scope.scopeFingerprint !== coordinate.scope.scopeFingerprint ||
|
|
359
419
|
request.costBasis !== coordinate.costBasis ||
|
|
360
420
|
request.estimateLens !== coordinate.estimateLens ||
|
|
361
|
-
request.requiredAccountingCurrencyCode !== currency ||
|
|
362
421
|
coordinate.requestedCurrencyCode !== request.requiredAccountingCurrencyCode ||
|
|
422
|
+
(currency === undefined
|
|
423
|
+
? currentSpendComposition.amount.status !== 'unavailable'
|
|
424
|
+
: request.requiredAccountingCurrencyCode !== currency) ||
|
|
363
425
|
request.period.kind !== coordinate.period.windowKind ||
|
|
364
|
-
request.period.
|
|
426
|
+
request.period.dateBasis !== coordinate.period.requested.dateBasis ||
|
|
427
|
+
(request.period.dateBasis === 'company-local' && request.period.timeZone !== periodTimeZone)) {
|
|
365
428
|
return false;
|
|
366
429
|
}
|
|
367
430
|
if (evaluation.result === 'matched' ? evaluation.matchedThresholds.length === 0 : evaluation.matchedThresholds.length > 0)
|
|
@@ -403,7 +466,16 @@ export const isFinancialPolicyEvaluationCompatibleV1 = (evaluation, definition,
|
|
|
403
466
|
return evaluation.result === 'unavailable' && evaluation.matchedThresholds.length === 0;
|
|
404
467
|
}
|
|
405
468
|
if (currentSpendComposition.amount.status === 'partial') {
|
|
406
|
-
|
|
469
|
+
if (!isExpectedCalendarMonthTargetPartial(currentSpendComposition)) {
|
|
470
|
+
return evaluation.result === 'partial' && evaluation.matchedThresholds.length === 0;
|
|
471
|
+
}
|
|
472
|
+
if (definition.criteria.kind !== 'budget' || definition.criteria.currentSpendThresholds === undefined)
|
|
473
|
+
return false;
|
|
474
|
+
const expectedThresholds = safeBudgetMatchedThresholds(currentSpendComposition.amount.knownAmount, definition.criteria.budget.amount, definition.criteria.currentSpendThresholds);
|
|
475
|
+
if (expectedThresholds === undefined)
|
|
476
|
+
return false;
|
|
477
|
+
return (evaluation.result === (expectedThresholds.length > 0 ? 'matched' : 'not-matched') &&
|
|
478
|
+
hasExactMatchedThresholds(evaluation.matchedThresholds, expectedThresholds));
|
|
407
479
|
}
|
|
408
480
|
if (definition.criteria.kind !== 'budget' || definition.criteria.currentSpendThresholds === undefined)
|
|
409
481
|
return false;
|
|
@@ -413,6 +485,12 @@ export const isFinancialPolicyEvaluationCompatibleV1 = (evaluation, definition,
|
|
|
413
485
|
return (evaluation.result === (expectedThresholds.length > 0 ? 'matched' : 'not-matched') &&
|
|
414
486
|
hasExactMatchedThresholds(evaluation.matchedThresholds, expectedThresholds));
|
|
415
487
|
}
|
|
488
|
+
if (evaluation.result === 'unavailable' &&
|
|
489
|
+
evaluation.analyticsProjectionId === undefined &&
|
|
490
|
+
analyticsProjection === undefined &&
|
|
491
|
+
(evaluation.signalKind === 'budget-forecast' || evaluation.signalKind === 'cost-anomaly')) {
|
|
492
|
+
return evaluation.matchedThresholds.length === 0 && evaluation.reasonCode === 'analytics-projection-unavailable';
|
|
493
|
+
}
|
|
416
494
|
if (!isFinancialAnalyticsProjectionV1(analyticsProjection) ||
|
|
417
495
|
evaluation.analyticsProjectionId !== analyticsProjection.analyticsProjectionId ||
|
|
418
496
|
analyticsProjection.coordinate.companyId !== coordinate.companyId ||
|
|
@@ -429,10 +507,21 @@ export const isFinancialPolicyEvaluationCompatibleV1 = (evaluation, definition,
|
|
|
429
507
|
const actualAnalyticsKind = analyticsProjection.status === 'unavailable' ? analyticsProjection.resultKind : analyticsProjection.result.kind;
|
|
430
508
|
if (actualAnalyticsKind !== expectedAnalyticsKind)
|
|
431
509
|
return false;
|
|
510
|
+
if (analyticsProjection.currentSpendCompositionId !== undefined &&
|
|
511
|
+
analyticsProjection.currentSpendCompositionId !== currentSpendComposition.compositionId) {
|
|
512
|
+
return false;
|
|
513
|
+
}
|
|
514
|
+
if (evaluation.signalKind === 'budget-forecast' &&
|
|
515
|
+
analyticsProjection.status !== 'unavailable' &&
|
|
516
|
+
analyticsProjection.currentSpendCompositionId !== currentSpendComposition.compositionId) {
|
|
517
|
+
return false;
|
|
518
|
+
}
|
|
432
519
|
if (currentSpendComposition.amount.status === 'unavailable' || analyticsProjection.status === 'unavailable') {
|
|
433
520
|
return evaluation.result === 'unavailable' && evaluation.matchedThresholds.length === 0;
|
|
434
521
|
}
|
|
435
|
-
if (
|
|
522
|
+
if (analyticsProjection.status === 'partial' ||
|
|
523
|
+
(currentSpendComposition.amount.status === 'partial' &&
|
|
524
|
+
!(evaluation.signalKind === 'budget-forecast' && isExpectedCalendarMonthTargetPartial(currentSpendComposition)))) {
|
|
436
525
|
return evaluation.result === 'partial' && evaluation.matchedThresholds.length === 0;
|
|
437
526
|
}
|
|
438
527
|
if (evaluation.result !== 'matched' && evaluation.result !== 'not-matched')
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export const FINANCIAL_SAVINGS_AUTHORITY_SCHEMA_VERSION_V1 = 1;
|
|
2
2
|
export const FINANCIAL_SAVINGS_AUTHORITY_CONTRACT_VERSION_V1 = 'financial-savings-authority/v1';
|
|
3
|
+
export const FINANCIAL_SAVINGS_RESOURCE_PROJECTION_CONTRACT_VERSION_V1 = 'financial-savings-resource-projection/v1';
|
|
3
4
|
export const FINANCIAL_ELIGIBILITY_ASSESSMENT_SCHEMA_VERSION_V1 = 1;
|
|
4
5
|
export const FINANCIAL_ELIGIBILITY_ASSESSMENT_CONTRACT_VERSION_V1 = 'financial-eligibility-assessment/v1';
|
|
@@ -39,6 +39,9 @@ export const canonicalizeFinancialSavingsAuthorityIdentityV1 = (value) => JSON.s
|
|
|
39
39
|
resourceContributions: [...coordinate.resourceContributions]
|
|
40
40
|
.sort((left, right) => left.ownerScopeId.localeCompare(right.ownerScopeId))
|
|
41
41
|
.map(contribution => ({ ...contribution, allocationIds: [...contribution.allocationIds].sort() })),
|
|
42
|
+
recommendationContributions: [...coordinate.recommendationContributions]
|
|
43
|
+
.sort((left, right) => `${left.ownerScopeId}\u0000${left.recommendationId}`.localeCompare(`${right.ownerScopeId}\u0000${right.recommendationId}`))
|
|
44
|
+
.map(contribution => ({ ...contribution, allocationIds: [...contribution.allocationIds].sort() })),
|
|
42
45
|
aggregate: { ...coordinate.aggregate, allocationIds: [...coordinate.aggregate.allocationIds].sort() },
|
|
43
46
|
}),
|
|
44
47
|
}));
|
|
@@ -126,6 +126,7 @@ const validateAvailableCoordinate = (value, authorityCoordinate, eligibilityById
|
|
|
126
126
|
'activations',
|
|
127
127
|
'allocations',
|
|
128
128
|
'resourceContributions',
|
|
129
|
+
'recommendationContributions',
|
|
129
130
|
'aggregate',
|
|
130
131
|
]) ||
|
|
131
132
|
!isFinancialSavingsHash(value.currentAggregateBaselineId) ||
|
|
@@ -151,6 +152,8 @@ const validateAvailableCoordinate = (value, authorityCoordinate, eligibilityById
|
|
|
151
152
|
value.allocations.length > 20000 ||
|
|
152
153
|
!Array.isArray(value.resourceContributions) ||
|
|
153
154
|
value.resourceContributions.length > 20000 ||
|
|
155
|
+
!Array.isArray(value.recommendationContributions) ||
|
|
156
|
+
value.recommendationContributions.length > 20000 ||
|
|
154
157
|
!isFinancialSavingsRecord(value.aggregate) ||
|
|
155
158
|
!hasExactFinancialSavingsFields(value.aggregate, ['allocationIds', 'savingsMinorUnits']) ||
|
|
156
159
|
!Array.isArray(value.aggregate.allocationIds) ||
|
|
@@ -307,8 +310,41 @@ const validateAvailableCoordinate = (value, authorityCoordinate, eligibilityById
|
|
|
307
310
|
contributedAllocationIds.push(...contribution.allocationIds);
|
|
308
311
|
}
|
|
309
312
|
const allocationIds = [...allocationById.keys()];
|
|
313
|
+
const recommendationContributionAllocationIds = [];
|
|
314
|
+
const recommendationContributionKeys = new Set();
|
|
315
|
+
for (const contribution of value.recommendationContributions) {
|
|
316
|
+
if (!isFinancialSavingsRecord(contribution) ||
|
|
317
|
+
!hasExactFinancialSavingsFields(contribution, [
|
|
318
|
+
'ownerScopeId',
|
|
319
|
+
'recommendationId',
|
|
320
|
+
'allocationIds',
|
|
321
|
+
'savingsMinorUnits',
|
|
322
|
+
]) ||
|
|
323
|
+
!isFinancialSavingsIdentity(contribution.ownerScopeId) ||
|
|
324
|
+
!isFinancialSavingsIdentity(contribution.recommendationId) ||
|
|
325
|
+
!Array.isArray(contribution.allocationIds) ||
|
|
326
|
+
contribution.allocationIds.length === 0 ||
|
|
327
|
+
contribution.allocationIds.length > 20000 ||
|
|
328
|
+
!contribution.allocationIds.every(isFinancialSavingsHash) ||
|
|
329
|
+
new Set(contribution.allocationIds).size !== contribution.allocationIds.length ||
|
|
330
|
+
!isFinancialSavingsMinorUnits(contribution.savingsMinorUnits))
|
|
331
|
+
return false;
|
|
332
|
+
const contributionKey = `${contribution.ownerScopeId}\u0000${contribution.recommendationId}`;
|
|
333
|
+
if (recommendationContributionKeys.has(contributionKey))
|
|
334
|
+
return false;
|
|
335
|
+
const allocations = contribution.allocationIds.map(id => allocationById.get(id));
|
|
336
|
+
if (allocations.some(allocation => !allocation ||
|
|
337
|
+
allocation.ownerScopeId !== contribution.ownerScopeId ||
|
|
338
|
+
allocation.recommendationId !== contribution.recommendationId) ||
|
|
339
|
+
sumFinancialSavingsMinorUnits(allocations.map(allocation => allocation.savingsMinorUnits)) !== contribution.savingsMinorUnits)
|
|
340
|
+
return false;
|
|
341
|
+
recommendationContributionKeys.add(contributionKey);
|
|
342
|
+
recommendationContributionAllocationIds.push(...contribution.allocationIds);
|
|
343
|
+
}
|
|
310
344
|
return (haveSameFinancialSavingsSet(contributedAllocationIds, allocationIds) &&
|
|
311
345
|
new Set(contributedAllocationIds).size === contributedAllocationIds.length &&
|
|
346
|
+
haveSameFinancialSavingsSet(recommendationContributionAllocationIds, allocationIds) &&
|
|
347
|
+
new Set(recommendationContributionAllocationIds).size === recommendationContributionAllocationIds.length &&
|
|
312
348
|
haveSameFinancialSavingsSet(value.aggregate.allocationIds, allocationIds) &&
|
|
313
349
|
new Set(value.aggregate.allocationIds).size === value.aggregate.allocationIds.length &&
|
|
314
350
|
value.aggregate.savingsMinorUnits === sumFinancialSavingsMinorUnits(value.allocations.map(allocation => allocation.savingsMinorUnits)));
|
|
@@ -15,11 +15,13 @@ export * from './financialSavingsSurfaceProjection.js';
|
|
|
15
15
|
export * from './financialSavingsSurfaceProjectionValidation.js';
|
|
16
16
|
export * from './financialDataflow.js';
|
|
17
17
|
export * from './financialDataflowValidation.js';
|
|
18
|
+
export * from './financialDataflowKernel.js';
|
|
18
19
|
export * from './financialAnalytics.js';
|
|
19
20
|
export * from './financialAnalyticsValidation.js';
|
|
20
21
|
export * from './financialAnalyticsDelivery.js';
|
|
21
22
|
export * from './financialAnalyticsDeliveryValidation.js';
|
|
22
23
|
export * from './financialPolicy.js';
|
|
23
24
|
export * from './financialPolicyValidation.js';
|
|
25
|
+
export * from './financialPolicyKernel.js';
|
|
24
26
|
export * from './financialPolicyDelivery.js';
|
|
25
27
|
export * from './financialPolicyDeliveryValidation.js';
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
export const FINANCIAL_SCOPE_BASELINE_SCHEMA_VERSION_V2 = 2;
|
|
2
2
|
export const FINANCIAL_SCOPE_BASELINE_CONTRACT_VERSION_V2 = 'financial-scope-baseline/v2';
|
|
3
|
+
/**
|
|
4
|
+
* True only when the produced evidence covers the entire requested interval.
|
|
5
|
+
* Partial periods remain valid monetary evidence for display and forecasting,
|
|
6
|
+
* but must not be used as the current side of an optimization projection.
|
|
7
|
+
*/
|
|
8
|
+
export const isCompleteFinancialBaselinePeriodV2 = (period) => period.observed !== undefined &&
|
|
9
|
+
period.observed.startDate === period.requested.startDate &&
|
|
10
|
+
period.observed.endDateExclusive === period.requested.endDateExclusive &&
|
|
11
|
+
period.observed.dateBasis === period.requested.dateBasis &&
|
|
12
|
+
period.observed.timeZone === period.requested.timeZone &&
|
|
13
|
+
period.gaps.length === 0;
|
|
3
14
|
export const FINANCIAL_SCOPE_BASELINE_UNAVAILABLE_REASONS_V2 = [
|
|
4
15
|
'evidence-not-produced',
|
|
5
16
|
'evidence-not-matched',
|
|
@@ -15,5 +26,6 @@ export const FINANCIAL_SCOPE_BASELINE_UNAVAILABLE_REASONS_V2 = [
|
|
|
15
26
|
'mixed-generation',
|
|
16
27
|
'member-incompatible',
|
|
17
28
|
'reconciliation-failure',
|
|
29
|
+
'scope-membership-empty',
|
|
18
30
|
'unsupported-scope',
|
|
19
31
|
];
|
|
@@ -17,6 +17,13 @@ const EVIDENCE_ROLES = new Set([
|
|
|
17
17
|
'retail-rate',
|
|
18
18
|
'commitment-quote',
|
|
19
19
|
'fx-conversion',
|
|
20
|
+
'commercial-arrangement',
|
|
21
|
+
'provider-access-observation',
|
|
22
|
+
'configuration-timeline',
|
|
23
|
+
'provider-price-schedule',
|
|
24
|
+
'pricing-function',
|
|
25
|
+
'charge-inclusion-policy',
|
|
26
|
+
'settlement-revision',
|
|
20
27
|
'eligibility-rule',
|
|
21
28
|
'recommendation-scenario-set',
|
|
22
29
|
'recommendation-lifecycle',
|
|
@@ -35,7 +42,14 @@ const OWNER_SCOPE_KINDS = new Set(['canonical-resource-owner', 'composite-resour
|
|
|
35
42
|
const AGGREGATE_SCOPE_KINDS = new Set(['subscription-aggregate', 'portfolio-currency-group']);
|
|
36
43
|
const COST_BASES = new Set(['billed', 'amortized']);
|
|
37
44
|
const ESTIMATE_LENSES = new Set(['actual-only', 'actual-plus-estimated', 'estimates-only']);
|
|
38
|
-
const WINDOW_KINDS = new Set([
|
|
45
|
+
const WINDOW_KINDS = new Set([
|
|
46
|
+
'rolling-30-days',
|
|
47
|
+
'calendar-month',
|
|
48
|
+
'provider-billing-period',
|
|
49
|
+
'stable-billing-window',
|
|
50
|
+
'analytics-history',
|
|
51
|
+
'daily',
|
|
52
|
+
]);
|
|
39
53
|
const SETTLEMENT_STATES = new Set(['settled', 'unsettled', 'mixed', 'unknown']);
|
|
40
54
|
const CHARGE_CLASSIFICATIONS = new Set(['usage', 'purchase', 'adjustment', 'tax', 'credit', 'refund', 'residual']);
|
|
41
55
|
const UNAVAILABLE_REASONS = new Set(FINANCIAL_SCOPE_BASELINE_UNAVAILABLE_REASONS_V2);
|
package/dist/events/cost.d.ts
CHANGED
|
@@ -367,5 +367,9 @@ export interface CostAlertInstance extends BaseAlertInstance<CostAlertSummary, C
|
|
|
367
367
|
summary?: CostAlertSummary;
|
|
368
368
|
breakdown?: CostAlertBreakdownSummary;
|
|
369
369
|
definitionSnapshot?: string;
|
|
370
|
+
/** Immutable Financial Policy evaluation reference for historical detail reads. */
|
|
371
|
+
financialPolicyEvaluationId?: string;
|
|
372
|
+
financialPolicyDefinitionRevisionId?: string;
|
|
373
|
+
financialPolicySignalKind?: 'budget-current-spend' | 'budget-forecast' | 'cost-anomaly';
|
|
370
374
|
}
|
|
371
375
|
//# sourceMappingURL=cost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/events/cost.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/events/cost.ts"],"names":[],"mappings":"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"}
|