Skip to content

v0.30.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 13:57
f342abf

Added

  • A service states how a live problem reaches a person. services declares monitoring-output, required once a
    service is live or deprecated. Its values are alert, ticket, log and none. kac validate warns through
    critical-service-is-alerted where a live or deprecated service graded critical states none. The field
    travels in the export beside criticality, and kac generate lists it in the services index after that column.
  • A service states the interfaces it offers. services declares interfaces, a list of the contract formats this
    service publishes and the address each contract sits at. Each entry takes a type, drawn from an interface-type
    range the corpus states under enums:, and a contract URL. The field is optional on every service, because no
    machine-readable format exists for a command line tool or a web page. It travels in the export beside repos.
  • A corpus states where its code repositories are addressed from. .corpus.yaml takes repos-base, a URL a
    repos entry on a service is appended to. kac validate warns through mirrors-repo-links where a repos entry
    is not linked under Where it lives, and where that section links a repository under the base that repos does
    not state. Both directions are reported, and a corpus stating no base runs no check. The value travels in the
    export and in the plugin manifest, once for the corpus and once for each corpus it consumes, so a consumer
    resolves an entry it inherited against the estate that wrote it. descriptor-version moves to 5, and kac update
    stamps it.
  • A runbook whose resolution gives no route out is reported. failure-route-stated runs. kac validate fails a
    runbook whose Resolution section links nowhere to #escalation, so a reader whose step did not work has somewhere
    to go. The schema asked this of Diagnosis alone. A reader in the diagnosis is still choosing, and a reader in the
    resolution is already acting on the estate. The rule matches the whole section, so a step with a route of its own
    satisfies it as the closing line does.
  • A tool states what the package declares apart from what somebody concluded. tools declares
    licence-declared, which keeps a string SPDX has no expression for, such as npm's SEE LICENSE IN README.md.
    licence states the concluded value. kac validate warns through conclusion-states-a-reason where the two
    differ and no ## Licence and obligations section says how the conclusion was reached. Both fields travel in the
    export, and version: under export: in .schema/tools.yaml moves to 3.
  • An NFR states how long a condition holds before its alert is raised. nfrs declares alert-after, optional
    on every target. The value is the alert's configured delay, such as 15 minutes, and never a detection time
    measured after an incident. kac validate warns through alert-after-needs-an-alert where a target stating one
    binds no service that raises an alert or a ticket, following an offering's implemented-by to the services behind
    it. The field travels in the export beside window, and version: under export: in .schema/nfrs.yaml moves
    to 5.

Changed

  • licence on a tool is required. kac validate fails a tool record that states none, through
    required-field. An entry nobody has screened states NOASSERTION, so the register shows the gap. A corpus that
    has adopted tools fills the field in every record before it takes this schema.

  • An optional field's range is asked for from the first document that states it. kac validate reported
    corpus-enum-undeclared for every field drawing on enums: as soon as the corpus held one record of the type, so a
    corpus was asked for a range it had no use for. A required field is still asked from the first record of its type,
    and a _template.md states a field as a record does. A range the corpus has already written is still held to lower
    case whether or not anything states the field.

  • A range asked for inside an object entry names the path a record writes it at. corpus-enum-undeclared now
    reports 'interfaces.type' on a service where it reported 'type' on a service, which read as the record's own
    type key.

  • A runbook closes its resolution on a fixed line. The _template.md that kac new sends now ends Resolution
    with a line opening Confirmed when and closing with a link to the escalation. Before, it asked for the confirmation
    in any form and gave no route out. The runbooks.md beside it now tells an author to write that line, having said
    nothing about Resolution at all. outcome-stated is declared and does not run, so kac generate lists it under
    Declared, not yet enforced on the type page.