Skip to main content

Readiness Settings in the Test Config

What "ready" means is part of the test config.

The Readiness tab of the test config editor, after Goals, holds every setting; the same settings live in the config's JSON under readiness for speedctl and proxymock users.

A test config without a readiness section grades with the Speedscale defaults.

The editor writes the section only once something differs from them, and only the families and rungs that differ.

Changes apply to replays started after you save.

Past reports keep the grades they were given.

The families table​

One row per family, in scorecard order, with four columns.

The Readiness tab of a test config: one row per family with its input, grading scale, role and weight, including the Resilience chaos bounds

ColumnWhat it holds
Family and its inputThe family's name, what it grades from and when it is available, for example "Needs an OpenAPI document attached to the service".
Grading scaleThe A, B, C and D rungs. Rate families take a percent the measure must reach; Performance takes the percent over the latency goal it may not exceed. Runtime health, Trend and Security show their fixed scale. Empty fields use the default.
RoleBlocks below a floor letter, Advises, or Off.
WeightThe family's weight in the score. Empty means the default of 1; a negative value is an error.

Rung overrides have to stay in order (A at or above B, B at or above C, and so on) and cannot be negative.

Save is held with "Fix the readiness thresholds before saving." while any field is wrong, and the JSON view reports the same errors.

A summary line under the table counts how many families block, advise and are off and sums the weights.

Windows​

  • Trend window. On the Trend row, in days: how far back the Trend family looks for the previous graded report of the same service and build. Default 14 days; at least 1.
  • Production window. On the Coverage row, in days: how far back the Coverage family reads the service's recorded traffic, ending at the replay's start. Default 14 days; 1 to 90. A new window applies to the next replay, so the preview does not reflect it.

Security auth probe​

Under the Security row.

The auth probe settings under the Security row: the on switch, the header removed, the cookie blanked instead, the statuses that count as refused and the most endpoints to probe

The probe replays authenticated endpoints once more with the credential removed and expects the service to refuse them; see Security.

FieldDefaultMeaning
EnabledOffThe opt-in switch. The static checks run either way.
HeaderAuthorizationThe request header the probe removes.
CookieEmptyWhen set, the probe blanks this cookie's value instead of removing the header.
Expected statuses401, 403Status codes that count as the service refusing the stripped request, as a comma-separated list. Any 2xx is a finding; other statuses are neither.
Max endpoints25How many distinct endpoints the probe sends, so it stays a sample. 0 means the default.

A probe switched off keeps its other settings so switching it back on finds them.

Changes apply to the next replay.

Resilience chaos bounds​

Under the Resilience row.

What counts as handling a fault well while a chaos rule fires; see Resilience.

FieldDefaultMeaning
Retries beyond the usual3Attempts beyond the usual ones a request may make on the faulted dependency. A whole number.
Slowdown over the injected delay2xHow many times the injected delay a request may slow down by; 1 passes the delay straight through.
Recovery within30 sHow long after the rule stops firing an affected endpoint has to answer without a 5xx. Whole seconds.

Empty means the default, and the grader reads 0 or less as the default too.

Changed bounds apply from the next replay; the preview cannot re-pair the calls of a finished replay.

Preview against recent reports​

The right-hand panel re-grades the last five reports that ran with this config using the draft on the left and shows the saved grade beside the draft's: the verdict, the score and every letter that changes.

The preview panel with a draft that makes Spec adherence block: two Ready reports turn Not ready under the draft, highlighted, and the summary counts them

Nothing is written until you save.

The preview cannot reflect a changed coverage window, probe setting or chaos bound, since those change what the next replay records.

Accepting findings​

The Accepting findings block is the acceptance policy: what an acceptance may do under this config.

SettingDefaultMeaning
Who can accept a findingAnyone who can see the reportOr admins only.
Longest acceptance90 daysThe most an acceptance may run from its creation. No acceptance is open-ended.
A field across endpoints, or a whole check on one endpointAdmins, loggedThe wildcard kinds. Can be set to not allowed.
Baselining a whole serviceAdmins, loggedCan be set to not allowed.

Grades lifted by an acceptance are always marked on the report, and accepted findings are always shown there.

Acceptances in effect​

The Acceptances in effect ledger lists every acceptance recorded for a service, at any build, with the ones that expired or were reopened.

Pick a service to see its acceptances with their kind, scope, owner, reason, end date, the report they came from and the letter before and after.

An admin can baseline the service from here.

See Acceptances.

The JSON​

The readiness section of a test config uses these fields.

Durations are written as seconds with an s suffix (1209600s is 14 days) and enums by name.

{
"readiness": {
"families": [
{
"family": "READINESS_FAMILY_REGRESSION",
"role": "READINESS_ROLE_BLOCKS_BELOW",
"floor": "READINESS_LETTER_B",
"weight": 2,
"boundaries": { "a": 99.5, "b": 98, "c": 95, "d": 80 }
},
{
"family": "READINESS_FAMILY_SECURITY",
"role": "READINESS_ROLE_BLOCKS_BELOW",
"floor": "READINESS_LETTER_C"
},
{
"family": "READINESS_FAMILY_COVERAGE",
"role": "READINESS_ROLE_ADVISES"
}
],
"trendWindow": "1209600s",
"coverageWindow": "604800s",
"securityProbe": {
"enabled": true,
"authHeader": "Authorization",
"expectedStatuses": [401, 403],
"maxEndpoints": 25
},
"resilience": {
"maxRetries": 3,
"maxLatencyAmplification": 2,
"recoveryWindow": "30s"
},
"acceptancePolicy": {
"maxDuration": "2592000s",
"onlyAdminsAccept": true,
"noWildcards": false,
"noBaselines": false
}
}
}
FieldMeaning
families[].familyOne of READINESS_FAMILY_REGRESSION, READINESS_FAMILY_PERFORMANCE, READINESS_FAMILY_RESILIENCE, READINESS_FAMILY_SPEC_ADHERENCE, READINESS_FAMILY_SECURITY, READINESS_FAMILY_MOCK_FIDELITY, READINESS_FAMILY_COVERAGE, READINESS_FAMILY_RUNTIME_HEALTH, READINESS_FAMILY_DATA_LAYER, READINESS_FAMILY_TREND. A family not listed takes its defaults.
families[].roleREADINESS_ROLE_BLOCKS_BELOW, READINESS_ROLE_ADVISES or READINESS_ROLE_OFF.
families[].floorREADINESS_LETTER_A to READINESS_LETTER_F. The lowest letter that still passes when the role blocks. Default B.
families[].weightWeight in the score. 0 or absent means 1.
families[].boundariesa, b, c, d: the rungs for a rate family, or the percent over the goal for Performance. A rung left at 0 keeps its default. Ignored by Runtime health, Trend and Security.
trendWindowHow far back Trend looks for the previous graded report. Default 1209600s (14 days).
coverageWindowHow far back Coverage reads recorded traffic, ending at the replay's start. Default 1209600s (14 days).
securityProbeenabled, authHeader (default Authorization), authCookie, expectedStatuses (default 401 and 403), maxEndpoints (default 25). Absent or disabled means the Security family grades from its static checks alone.
resiliencemaxRetries (default 3), maxLatencyAmplification (default 2), recoveryWindow (default 30s). A value at or below zero takes the default.
acceptancePolicymaxDuration (default 7776000s, 90 days), onlyAdminsAccept, noWildcards, noBaselines. The switches are spelled as restrictions because an absent field is the default.

Push an edited config with the CLI, or edit proxymock/testconfigs/<name>.json in a proxymock workspace:

speedctl put testconfig my_config.json

The scorecard is graded by the Speedscale cloud analyzer when the report completes; local and cloud-free replays are not graded, so the readiness section has no effect on them.