@greatwait/contracts 0.3.1 → 0.3.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/attempt-diagnostics.d.ts +1 -1
- package/dist/attempt-diagnostics.js +13 -1
- package/dist/attempt-search.d.ts +2 -0
- package/dist/billing.d.ts +46 -0
- package/dist/billing.js +29 -0
- package/dist/callback-safety.js +5 -1
- package/dist/configuration.d.ts +2 -2
- package/dist/configuration.js +6 -3
- package/dist/delivery.d.ts +12 -1
- package/dist/delivery.js +1 -0
- package/dist/effective-limits.d.ts +4 -4
- package/dist/endpoints.d.ts +29 -0
- package/dist/endpoints.js +32 -1
- package/dist/forecast.d.ts +2 -2
- package/dist/http-request.d.ts +12 -2
- package/dist/http-request.js +31 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.js +8 -7
- package/dist/mcp.js +1 -0
- package/dist/operational-config.d.ts +174 -22
- package/dist/operational-config.js +207 -74
- package/dist/operations.d.ts +334 -52
- package/dist/operations.js +195 -34
- package/dist/project-notifications.d.ts +35 -9
- package/dist/project-notifications.js +43 -12
- package/dist/protocol.d.ts +28 -0
- package/dist/protocol.js +23 -0
- package/dist/scheduling-records.d.ts +106 -16
- package/dist/scheduling-records.js +36 -12
- package/dist/scheduling.d.ts +155 -43
- package/dist/scheduling.js +188 -50
- package/dist/service-mode.d.ts +88 -0
- package/dist/service-mode.js +130 -0
- package/dist/tenancy.d.ts +54 -30
- package/dist/tenancy.js +35 -17
- package/dist/timing.d.ts +39 -0
- package/dist/timing.js +51 -0
- package/dist/zod-values.d.ts +1 -1
- package/dist/zod-values.js +1 -1
- package/dist/zod.d.ts +1 -1
- package/dist/zod.js +1 -1
- package/generated/v1/examples/billing.noticesdismiss.request.json +3 -0
- package/generated/v1/examples/billing.noticesdismiss.response.json +6 -0
- package/generated/v1/examples/billing.reconcile.response.json +12 -0
- package/generated/v1/examples/billing.summary.response.json +12 -0
- package/generated/v1/examples/executions.list.response.json +1 -0
- package/generated/v1/examples/limits.read.response.json +1 -1
- package/generated/v1/examples/projectnotifications.rotateSigningKey.response.json +1 -0
- package/generated/v1/examples/projects.list.response.json +0 -6
- package/generated/v1/examples/projects.read.response.json +14 -0
- package/generated/v1/examples/schedules.list.response.json +1 -3
- package/generated/v1/examples/schedules.summary.response.json +174 -0
- package/generated/v1/examples/timing.summary.response.json +33 -1
- package/generated/v1/manifest.json +79 -2
- package/generated/v1/openapi.json +4084 -2023
- package/generated/v1/policy-matrix.json +22 -1
- package/generated/v1/schemas/attempts.list.response.json +10 -0
- package/generated/v1/schemas/attempts.read.response.json +10 -0
- package/generated/v1/schemas/attempts.search.response.json +4 -0
- package/generated/v1/schemas/billing.notices.query.json +4 -0
- package/generated/v1/schemas/billing.noticesdismiss.request.json +12 -0
- package/generated/v1/schemas/billing.noticesdismiss.response.json +22 -0
- package/generated/v1/schemas/billing.reconcile.response.json +43 -0
- package/generated/v1/schemas/billing.summary.response.json +43 -0
- package/generated/v1/schemas/endpoints.list.query.json +15 -0
- package/generated/v1/schemas/executions.list.response.json +4 -0
- package/generated/v1/schemas/occurrences.list.response.json +4 -0
- package/generated/v1/schemas/occurrences.read.response.json +4 -0
- package/generated/v1/schemas/occurrences.redeliver.response.json +10 -0
- package/generated/v1/schemas/projectnotifications.read.response.json +4 -0
- package/generated/v1/schemas/projectnotifications.rotateSigningKey.response.json +4 -0
- package/generated/v1/schemas/projectnotifications.update.request.json +41 -17
- package/generated/v1/schemas/projectnotifications.update.response.json +4 -0
- package/generated/v1/schemas/projects.list.response.json +0 -27
- package/generated/v1/schemas/projects.read.response-headers.json +11 -0
- package/generated/v1/schemas/projects.read.response.json +79 -0
- package/generated/v1/schemas/schedules.archive.response.json +8 -0
- package/generated/v1/schemas/schedules.cancel.response.json +8 -0
- package/generated/v1/schemas/schedules.create.request.json +1 -1
- package/generated/v1/schemas/schedules.create.response.json +8 -0
- package/generated/v1/schemas/schedules.list.query.json +6 -0
- package/generated/v1/schemas/schedules.list.response.json +4 -0
- package/generated/v1/schemas/schedules.pause.response.json +8 -0
- package/generated/v1/schemas/schedules.read.response.json +8 -0
- package/generated/v1/schemas/schedules.replace.request.json +1 -1
- package/generated/v1/schemas/schedules.replace.response.json +8 -0
- package/generated/v1/schemas/schedules.resume.response.json +8 -0
- package/generated/v1/schemas/schedules.summary.query.json +11 -0
- package/generated/v1/schemas/schedules.summary.response.json +144 -0
- package/generated/v1/schemas/timing.summary.response.json +69 -0
- package/generated/v1/snippets/billing.noticesdismiss.json +6 -0
- package/generated/v1/snippets/projectnotifications.rotateSigningKey.json +1 -1
- package/generated/v1/snippets/projects.read.json +6 -0
- package/generated/v1/snippets/schedules.summary.json +6 -0
- package/package.json +1 -1
package/dist/tenancy.js
CHANGED
|
@@ -116,6 +116,31 @@ export const provisionedProjectSchema = z.object({
|
|
|
116
116
|
.length(2, "a project has exactly two environments"),
|
|
117
117
|
project: projectSchema,
|
|
118
118
|
});
|
|
119
|
+
/** Exactly what a permanent deletion of the project would destroy now. */
|
|
120
|
+
export const projectDeletionCountsSchema = z.object({
|
|
121
|
+
endpoints: z.number().int().nonnegative(),
|
|
122
|
+
keys: z.number().int().nonnegative(),
|
|
123
|
+
runs: z.number().int().nonnegative(),
|
|
124
|
+
schedules: z.number().int().nonnegative(),
|
|
125
|
+
});
|
|
126
|
+
/**
|
|
127
|
+
* One project, with the exact counts a permanent deletion would destroy now.
|
|
128
|
+
*
|
|
129
|
+
* Returned by the single-project read (`projects.read`) and by the writes that
|
|
130
|
+
* answer with the project they changed. Never by the list: see
|
|
131
|
+
* `projectListItemSchema`.
|
|
132
|
+
*/
|
|
133
|
+
export const projectSummarySchema = z.object({
|
|
134
|
+
createdAt: timestampSchema.nullable(),
|
|
135
|
+
deletionCounts: projectDeletionCountsSchema,
|
|
136
|
+
environmentKinds: z
|
|
137
|
+
.array(environmentKindSchema)
|
|
138
|
+
.length(2, "a project has exactly two environments"),
|
|
139
|
+
id: projectIdSchema,
|
|
140
|
+
name: projectNameSchema,
|
|
141
|
+
status: projectStatusSchema.exclude(["deleted"]),
|
|
142
|
+
version: versionSchema,
|
|
143
|
+
});
|
|
119
144
|
/**
|
|
120
145
|
* What a signed-in member is told about a project they may act in.
|
|
121
146
|
*
|
|
@@ -130,24 +155,17 @@ export const provisionedProjectSchema = z.object({
|
|
|
130
155
|
* list shows, the authority for a request is re-resolved from the member's
|
|
131
156
|
* organization when the request arrives. Lifecycle state and version make an
|
|
132
157
|
* archived row manageable without making it a valid work target.
|
|
158
|
+
*
|
|
159
|
+
* **No deletion counts (W9-88).** Counting a project's schedules and runs
|
|
160
|
+
* reads every one of them, so a list that counted every project cost the sum
|
|
161
|
+
* of the organization's whole history — 2.2 s for an organization with
|
|
162
|
+
* 290,000 schedules, longer than the API's pool would wait, and the landing
|
|
163
|
+
* page failed every time. Exact counts are a deletion preview; they belong to
|
|
164
|
+
* the one project somebody is about to delete: `projectSummarySchema`.
|
|
133
165
|
*/
|
|
134
|
-
export const
|
|
135
|
-
|
|
136
|
-
deletionCounts: z.object({
|
|
137
|
-
endpoints: z.number().int().nonnegative(),
|
|
138
|
-
keys: z.number().int().nonnegative(),
|
|
139
|
-
runs: z.number().int().nonnegative(),
|
|
140
|
-
schedules: z.number().int().nonnegative(),
|
|
141
|
-
}),
|
|
142
|
-
environmentKinds: z
|
|
143
|
-
.array(environmentKindSchema)
|
|
144
|
-
.length(2, "a project has exactly two environments"),
|
|
145
|
-
id: projectIdSchema,
|
|
146
|
-
name: projectNameSchema,
|
|
147
|
-
status: projectStatusSchema.exclude(["deleted"]),
|
|
148
|
-
version: versionSchema,
|
|
166
|
+
export const projectListItemSchema = projectSummarySchema.omit({
|
|
167
|
+
deletionCounts: true,
|
|
149
168
|
});
|
|
150
|
-
export const projectDeletionCountsSchema = projectSummarySchema.shape.deletionCounts;
|
|
151
169
|
/**
|
|
152
170
|
* Every active or archived project the member can access. Administrators see all.
|
|
153
171
|
*
|
|
@@ -162,7 +180,7 @@ export const projectDeletionCountsSchema = projectSummarySchema.shape.deletionCo
|
|
|
162
180
|
export const PROJECT_LIST_LIMIT = 200;
|
|
163
181
|
export const projectListSchema = z.object({
|
|
164
182
|
data: z
|
|
165
|
-
.array(
|
|
183
|
+
.array(projectListItemSchema)
|
|
166
184
|
.max(PROJECT_LIST_LIMIT, "more projects than this response can carry; paging is required"),
|
|
167
185
|
/** Active and archived projects occupy a plan slot; deleted projects do not. */
|
|
168
186
|
total: z.number().int().nonnegative().max(PROJECT_LIST_LIMIT),
|
package/dist/timing.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "./zod.js";
|
|
2
|
+
export declare const DELIVERY_TIMING_POLICY_VERSION = "timing-v2-service-bands";
|
|
2
3
|
export declare const DELIVERY_TIMING_TARGETS_MS: readonly [5000, 15000];
|
|
3
4
|
export declare const DELIVERY_TIMING_VERDICTS: readonly ["met", "missed", "unknown"];
|
|
4
5
|
export declare const timingThresholdSummarySchema: import("zod").ZodObject<{
|
|
@@ -15,6 +16,26 @@ export declare const timingThresholdSummarySchema: import("zod").ZodObject<{
|
|
|
15
16
|
withinTargetCount: import("zod").ZodInt;
|
|
16
17
|
}, import("zod/v4/core").$strip>;
|
|
17
18
|
export type TimingThresholdView = z.infer<typeof timingThresholdSummarySchema>;
|
|
19
|
+
/** One concrete band's first-outbound p95 objective, measured from plannedFor. */
|
|
20
|
+
export declare const bandTimingSummarySchema: import("zod").ZodObject<{
|
|
21
|
+
serviceBand: import("zod").ZodEnum<{
|
|
22
|
+
short_bulk: "short_bulk";
|
|
23
|
+
bulk: "bulk";
|
|
24
|
+
realtime: "realtime";
|
|
25
|
+
}>;
|
|
26
|
+
targetMs: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<1000>, import("zod").ZodLiteral<10000>, import("zod").ZodLiteral<60000>]>;
|
|
27
|
+
breachCount: import("zod").ZodInt;
|
|
28
|
+
customerBlockedCount: import("zod").ZodInt;
|
|
29
|
+
eligibleOutstandingBreachCount: import("zod").ZodInt;
|
|
30
|
+
maturedCount: import("zod").ZodInt;
|
|
31
|
+
verdict: import("zod").ZodEnum<{
|
|
32
|
+
unknown: "unknown";
|
|
33
|
+
met: "met";
|
|
34
|
+
missed: "missed";
|
|
35
|
+
}>;
|
|
36
|
+
withinTargetCount: import("zod").ZodInt;
|
|
37
|
+
}, import("zod/v4/core").$strip>;
|
|
38
|
+
export type BandTimingSummaryView = z.infer<typeof bandTimingSummarySchema>;
|
|
18
39
|
/**
|
|
19
40
|
* Exact rolling 24-hour due-time cohort for one project and timing policy.
|
|
20
41
|
*
|
|
@@ -23,6 +44,24 @@ export type TimingThresholdView = z.infer<typeof timingThresholdSummarySchema>;
|
|
|
23
44
|
* samples only and remain separate from the exact threshold counters.
|
|
24
45
|
*/
|
|
25
46
|
export declare const deliveryTimingSummarySchema: import("zod").ZodObject<{
|
|
47
|
+
bandTargets: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
|
|
48
|
+
serviceBand: import("zod").ZodEnum<{
|
|
49
|
+
short_bulk: "short_bulk";
|
|
50
|
+
bulk: "bulk";
|
|
51
|
+
realtime: "realtime";
|
|
52
|
+
}>;
|
|
53
|
+
targetMs: import("zod").ZodUnion<readonly [import("zod").ZodLiteral<1000>, import("zod").ZodLiteral<10000>, import("zod").ZodLiteral<60000>]>;
|
|
54
|
+
breachCount: import("zod").ZodInt;
|
|
55
|
+
customerBlockedCount: import("zod").ZodInt;
|
|
56
|
+
eligibleOutstandingBreachCount: import("zod").ZodInt;
|
|
57
|
+
maturedCount: import("zod").ZodInt;
|
|
58
|
+
verdict: import("zod").ZodEnum<{
|
|
59
|
+
unknown: "unknown";
|
|
60
|
+
met: "met";
|
|
61
|
+
missed: "missed";
|
|
62
|
+
}>;
|
|
63
|
+
withinTargetCount: import("zod").ZodInt;
|
|
64
|
+
}, import("zod/v4/core").$strip>>>;
|
|
26
65
|
customerBlockedCount: import("zod").ZodInt;
|
|
27
66
|
deliveredSampleCount: import("zod").ZodInt;
|
|
28
67
|
freshness: import("zod").ZodObject<{
|
package/dist/timing.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { z } from "./zod.js";
|
|
2
2
|
import { timestampSchema } from "./time.js";
|
|
3
|
+
import { SERVICE_MODE_POLICY } from "./operational-config.js";
|
|
4
|
+
import { SERVICE_BANDS } from "./service-mode.js";
|
|
5
|
+
export const DELIVERY_TIMING_POLICY_VERSION = "timing-v2-service-bands";
|
|
3
6
|
export const DELIVERY_TIMING_TARGETS_MS = [5_000, 15_000];
|
|
4
7
|
export const DELIVERY_TIMING_VERDICTS = ["met", "missed", "unknown"];
|
|
5
8
|
const integerSchema = z.int();
|
|
@@ -49,6 +52,41 @@ export const timingThresholdSummarySchema = z
|
|
|
49
52
|
});
|
|
50
53
|
}
|
|
51
54
|
});
|
|
55
|
+
/** One concrete band's first-outbound p95 objective, measured from plannedFor. */
|
|
56
|
+
export const bandTimingSummarySchema = z
|
|
57
|
+
.object({
|
|
58
|
+
serviceBand: z.enum(SERVICE_BANDS),
|
|
59
|
+
targetMs: z.union([
|
|
60
|
+
z.literal(SERVICE_MODE_POLICY.firstOutboundP95TargetMs.realtime),
|
|
61
|
+
z.literal(SERVICE_MODE_POLICY.firstOutboundP95TargetMs.short_bulk),
|
|
62
|
+
z.literal(SERVICE_MODE_POLICY.firstOutboundP95TargetMs.bulk),
|
|
63
|
+
]),
|
|
64
|
+
breachCount: countSchema,
|
|
65
|
+
customerBlockedCount: countSchema,
|
|
66
|
+
eligibleOutstandingBreachCount: countSchema,
|
|
67
|
+
maturedCount: countSchema,
|
|
68
|
+
verdict: z.enum(DELIVERY_TIMING_VERDICTS),
|
|
69
|
+
withinTargetCount: countSchema,
|
|
70
|
+
})
|
|
71
|
+
.superRefine((value, context) => {
|
|
72
|
+
const matured = BigInt(value.maturedCount);
|
|
73
|
+
const within = BigInt(value.withinTargetCount);
|
|
74
|
+
const expected = matured === 0n
|
|
75
|
+
? "unknown"
|
|
76
|
+
: within * 100n >= matured * 95n
|
|
77
|
+
? "met"
|
|
78
|
+
: "missed";
|
|
79
|
+
if (value.targetMs !==
|
|
80
|
+
SERVICE_MODE_POLICY.firstOutboundP95TargetMs[value.serviceBand] ||
|
|
81
|
+
within + BigInt(value.breachCount) !== matured ||
|
|
82
|
+
value.eligibleOutstandingBreachCount > value.breachCount ||
|
|
83
|
+
value.verdict !== expected) {
|
|
84
|
+
context.addIssue({
|
|
85
|
+
code: z.ZodIssueCode.custom,
|
|
86
|
+
message: "band target and verdict must match the exact service-band counts",
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
});
|
|
52
90
|
/**
|
|
53
91
|
* Exact rolling 24-hour due-time cohort for one project and timing policy.
|
|
54
92
|
*
|
|
@@ -57,6 +95,19 @@ export const timingThresholdSummarySchema = z
|
|
|
57
95
|
* samples only and remain separate from the exact threshold counters.
|
|
58
96
|
*/
|
|
59
97
|
export const deliveryTimingSummarySchema = z.object({
|
|
98
|
+
/** Present on timing-v2: banded work is judged here, legacy work in targets. */
|
|
99
|
+
bandTargets: z
|
|
100
|
+
.array(bandTimingSummarySchema)
|
|
101
|
+
.length(3)
|
|
102
|
+
.superRefine((targets, context) => {
|
|
103
|
+
if (targets.some((target, index) => target.serviceBand !== SERVICE_BANDS[index])) {
|
|
104
|
+
context.addIssue({
|
|
105
|
+
code: z.ZodIssueCode.custom,
|
|
106
|
+
message: "band targets must contain realtime, short_bulk and bulk in order",
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
})
|
|
110
|
+
.optional(),
|
|
60
111
|
customerBlockedCount: countSchema,
|
|
61
112
|
deliveredSampleCount: countSchema,
|
|
62
113
|
freshness: z.object({ kind: z.literal("authoritative") }),
|
package/dist/zod-values.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/** The exact Zod constructors
|
|
1
|
+
/** The exact Zod constructors the contract modules use. */
|
|
2
2
|
export { ZodError, ZodIssueCode, array, boolean, discriminatedUnion, enum, int, json, literal, number, never, object, partialRecord, record, strictObject, string, toJSONSchema, tuple, union, unknown, url, } from "zod";
|
|
3
3
|
export type { RefinementCtx, ZodType, ZodTypeAny, infer, input } from "zod";
|
package/dist/zod-values.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/** The exact Zod constructors
|
|
1
|
+
/** The exact Zod constructors the contract modules use. */
|
|
2
2
|
export { ZodError, ZodIssueCode, array, boolean, discriminatedUnion, enum, int, json, literal, number, never, object, partialRecord, record, strictObject, string, toJSONSchema, tuple, union, unknown, url, } from "zod";
|
package/dist/zod.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/** Tree-shakeable namespace for
|
|
1
|
+
/** Tree-shakeable Zod namespace for the contract modules. */
|
|
2
2
|
export * as z from "./zod-values.js";
|
package/dist/zod.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/** Tree-shakeable namespace for
|
|
1
|
+
/** Tree-shakeable Zod namespace for the contract modules. */
|
|
2
2
|
export * as z from "./zod-values.js";
|
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
"boundary": "2026-09-01T00:00:00.000Z",
|
|
4
4
|
"mode": "shadow"
|
|
5
5
|
},
|
|
6
|
+
"attemptPrice": {
|
|
7
|
+
"bulk": {
|
|
8
|
+
"currency": "USD",
|
|
9
|
+
"microdollars": "10",
|
|
10
|
+
"scale": 6
|
|
11
|
+
},
|
|
12
|
+
"realtime": {
|
|
13
|
+
"currency": "USD",
|
|
14
|
+
"microdollars": "10",
|
|
15
|
+
"scale": 6
|
|
16
|
+
}
|
|
17
|
+
},
|
|
6
18
|
"blockingReasons": [],
|
|
7
19
|
"budgetPolicy": {
|
|
8
20
|
"desired": {
|
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
"boundary": "2026-09-01T00:00:00.000Z",
|
|
4
4
|
"mode": "shadow"
|
|
5
5
|
},
|
|
6
|
+
"attemptPrice": {
|
|
7
|
+
"bulk": {
|
|
8
|
+
"currency": "USD",
|
|
9
|
+
"microdollars": "10",
|
|
10
|
+
"scale": 6
|
|
11
|
+
},
|
|
12
|
+
"realtime": {
|
|
13
|
+
"currency": "USD",
|
|
14
|
+
"microdollars": "10",
|
|
15
|
+
"scale": 6
|
|
16
|
+
}
|
|
17
|
+
},
|
|
6
18
|
"blockingReasons": [],
|
|
7
19
|
"budgetPolicy": {
|
|
8
20
|
"desired": {
|
|
@@ -2,12 +2,6 @@
|
|
|
2
2
|
"data": [
|
|
3
3
|
{
|
|
4
4
|
"createdAt": "2026-08-14T11:00:00.000Z",
|
|
5
|
-
"deletionCounts": {
|
|
6
|
-
"endpoints": 2,
|
|
7
|
-
"keys": 4,
|
|
8
|
-
"runs": 37,
|
|
9
|
-
"schedules": 5
|
|
10
|
-
},
|
|
11
5
|
"environmentKinds": ["test", "live"],
|
|
12
6
|
"id": "proj_01h8xyz9k2m4n6p8r0t2v4w6y8",
|
|
13
7
|
"name": "Billing reminders",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-08-14T11:00:00.000Z",
|
|
3
|
+
"deletionCounts": {
|
|
4
|
+
"endpoints": 2,
|
|
5
|
+
"keys": 4,
|
|
6
|
+
"runs": 37,
|
|
7
|
+
"schedules": 5
|
|
8
|
+
},
|
|
9
|
+
"environmentKinds": ["test", "live"],
|
|
10
|
+
"id": "proj_01h8xyz9k2m4n6p8r0t2v4w6y8",
|
|
11
|
+
"name": "Billing reminders",
|
|
12
|
+
"status": "archived",
|
|
13
|
+
"version": 2
|
|
14
|
+
}
|
|
@@ -18,9 +18,7 @@
|
|
|
18
18
|
}
|
|
19
19
|
],
|
|
20
20
|
"freshness": {
|
|
21
|
-
"
|
|
22
|
-
"kind": "projected",
|
|
23
|
-
"lagSeconds": 0
|
|
21
|
+
"kind": "authoritative"
|
|
24
22
|
},
|
|
25
23
|
"nextCursor": "eyJhIjoxNzg1MjUwODAwMDAwLCJpIjoic2NoXzAxaDh4eXo5azJtNG42cDhyMHQydjR3Nnk4IiwiayI6Ijk1MTM1NDZmIn0"
|
|
26
24
|
}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
{
|
|
2
|
+
"counts": {
|
|
3
|
+
"active": 4863,
|
|
4
|
+
"paused": 3,
|
|
5
|
+
"completed": 148738,
|
|
6
|
+
"cancelled": 212
|
|
7
|
+
},
|
|
8
|
+
"pausedAfterFailures": {
|
|
9
|
+
"count": 0,
|
|
10
|
+
"schedules": []
|
|
11
|
+
},
|
|
12
|
+
"days": [
|
|
13
|
+
{
|
|
14
|
+
"date": "2026-09-25",
|
|
15
|
+
"created": 0,
|
|
16
|
+
"finished": 0
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"date": "2026-09-26",
|
|
20
|
+
"created": 0,
|
|
21
|
+
"finished": 0
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"date": "2026-09-27",
|
|
25
|
+
"created": 0,
|
|
26
|
+
"finished": 0
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"date": "2026-09-28",
|
|
30
|
+
"created": 0,
|
|
31
|
+
"finished": 0
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"date": "2026-09-29",
|
|
35
|
+
"created": 0,
|
|
36
|
+
"finished": 0
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"date": "2026-09-30",
|
|
40
|
+
"created": 0,
|
|
41
|
+
"finished": 0
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"date": "2026-10-01",
|
|
45
|
+
"created": 0,
|
|
46
|
+
"finished": 0
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"date": "2026-10-02",
|
|
50
|
+
"created": 0,
|
|
51
|
+
"finished": 0
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"date": "2026-10-03",
|
|
55
|
+
"created": 0,
|
|
56
|
+
"finished": 0
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"date": "2026-10-04",
|
|
60
|
+
"created": 0,
|
|
61
|
+
"finished": 0
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"date": "2026-10-05",
|
|
65
|
+
"created": 0,
|
|
66
|
+
"finished": 0
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"date": "2026-10-06",
|
|
70
|
+
"created": 0,
|
|
71
|
+
"finished": 0
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"date": "2026-10-07",
|
|
75
|
+
"created": 0,
|
|
76
|
+
"finished": 0
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"date": "2026-10-08",
|
|
80
|
+
"created": 0,
|
|
81
|
+
"finished": 0
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"date": "2026-10-09",
|
|
85
|
+
"created": 0,
|
|
86
|
+
"finished": 0
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"date": "2026-10-10",
|
|
90
|
+
"created": 0,
|
|
91
|
+
"finished": 0
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"date": "2026-10-11",
|
|
95
|
+
"created": 0,
|
|
96
|
+
"finished": 0
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"date": "2026-10-12",
|
|
100
|
+
"created": 0,
|
|
101
|
+
"finished": 0
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"date": "2026-10-13",
|
|
105
|
+
"created": 0,
|
|
106
|
+
"finished": 0
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"date": "2026-10-14",
|
|
110
|
+
"created": 0,
|
|
111
|
+
"finished": 0
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"date": "2026-10-15",
|
|
115
|
+
"created": 0,
|
|
116
|
+
"finished": 0
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"date": "2026-10-16",
|
|
120
|
+
"created": 0,
|
|
121
|
+
"finished": 0
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"date": "2026-10-17",
|
|
125
|
+
"created": 0,
|
|
126
|
+
"finished": 0
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"date": "2026-10-18",
|
|
130
|
+
"created": 0,
|
|
131
|
+
"finished": 0
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"date": "2026-10-19",
|
|
135
|
+
"created": 0,
|
|
136
|
+
"finished": 0
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"date": "2026-10-20",
|
|
140
|
+
"created": 0,
|
|
141
|
+
"finished": 0
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"date": "2026-10-21",
|
|
145
|
+
"created": 0,
|
|
146
|
+
"finished": 0
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"date": "2026-10-22",
|
|
150
|
+
"created": 0,
|
|
151
|
+
"finished": 0
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"date": "2026-10-23",
|
|
155
|
+
"created": 0,
|
|
156
|
+
"finished": 0
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"date": "2026-10-24",
|
|
160
|
+
"created": 5,
|
|
161
|
+
"finished": 2
|
|
162
|
+
}
|
|
163
|
+
],
|
|
164
|
+
"window": {
|
|
165
|
+
"from": "2026-09-25",
|
|
166
|
+
"to": "2026-10-24",
|
|
167
|
+
"timeZone": "America/Chicago"
|
|
168
|
+
},
|
|
169
|
+
"freshness": {
|
|
170
|
+
"asOf": "2026-10-24T14:58:00.000Z",
|
|
171
|
+
"kind": "projected",
|
|
172
|
+
"lagSeconds": 120
|
|
173
|
+
}
|
|
174
|
+
}
|
|
@@ -1,4 +1,36 @@
|
|
|
1
1
|
{
|
|
2
|
+
"bandTargets": [
|
|
3
|
+
{
|
|
4
|
+
"serviceBand": "realtime",
|
|
5
|
+
"targetMs": 1000,
|
|
6
|
+
"breachCount": 0,
|
|
7
|
+
"customerBlockedCount": 0,
|
|
8
|
+
"eligibleOutstandingBreachCount": 0,
|
|
9
|
+
"maturedCount": 0,
|
|
10
|
+
"verdict": "unknown",
|
|
11
|
+
"withinTargetCount": 0
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"serviceBand": "short_bulk",
|
|
15
|
+
"targetMs": 10000,
|
|
16
|
+
"breachCount": 0,
|
|
17
|
+
"customerBlockedCount": 0,
|
|
18
|
+
"eligibleOutstandingBreachCount": 0,
|
|
19
|
+
"maturedCount": 0,
|
|
20
|
+
"verdict": "unknown",
|
|
21
|
+
"withinTargetCount": 0
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"serviceBand": "bulk",
|
|
25
|
+
"targetMs": 60000,
|
|
26
|
+
"breachCount": 0,
|
|
27
|
+
"customerBlockedCount": 0,
|
|
28
|
+
"eligibleOutstandingBreachCount": 0,
|
|
29
|
+
"maturedCount": 0,
|
|
30
|
+
"verdict": "unknown",
|
|
31
|
+
"withinTargetCount": 0
|
|
32
|
+
}
|
|
33
|
+
],
|
|
2
34
|
"customerBlockedCount": 2,
|
|
3
35
|
"deliveredSampleCount": 98,
|
|
4
36
|
"freshness": {
|
|
@@ -8,7 +40,7 @@
|
|
|
8
40
|
"p95LatenessMs": 4200,
|
|
9
41
|
"p99LatenessMs": 12000,
|
|
10
42
|
"platformBlockedCount": 1,
|
|
11
|
-
"policyVersion": "timing-
|
|
43
|
+
"policyVersion": "timing-v2-service-bands",
|
|
12
44
|
"skippedCount": 3,
|
|
13
45
|
"targets": [
|
|
14
46
|
{
|