Skip to content

Clear release-review Spectral warnings (S-011/S-015/S-030/S-031) ahead of r3.1 RC #162

Description

@clundie-CL

Context

The r3.1 release-review validation (run) reports 29 warnings + 61 hints (0 errors). These originate from the release-review Spectral profile (.spectral-r4.yaml), which is stricter than the PR-time profile — so the implementation PRs were green while these surface only at release time.

The warnings are not release-blocking, but we are treating them as a gate for a clean RC and clearing them on main before re-cutting the snapshot. Rather than documenting any of these as deferred, all 29 warnings are being fixed (including the invasive UUID rename).

Warnings to fix (29 findings → 24 unique source locations)

S-011 — property/example missing description (19)

  • modules/NAM_Common.yaml: ResourceIdentifier.id, ResourceAudit.createdAt, ResourceAudit.modifiedAt
  • modules/Services/Services.yaml: ServiceSite.id
  • modules/RebootRequests/RebootRequests.yaml: RebootRequestUpdate.atTime; examples RebootRequestCreateImmediateDefaultDevice, RebootRequestCreateScheduledMultipleDevices
  • modules/TrustDomains/TrustDomains.yaml: TrustDomainUpdate.expiration (description is nested in allOf — lift it to the property); examples TrustDomainCreateWpa2Personal, TrustDomainCreateInferredSsid, TrustDomainCreateThreadStructured, TrustDomainCreateEphemeral, TrustDomainCreateQoSPolicies
  • modules/TrustDomainDevices/TrustDomainDevices.yaml: BootstrappingInfo.selectedProtocol, GenerateDeviceCredential.selectedType, TrustDomainDeviceUpdate.bootstrappingInfo; examples TrustDomainDeviceCreateIoT, TrustDomainDeviceCreateMinimal, TrustDomainDeviceCreateMatter

S-031 — array items missing description (2)

  • modules/TrustDomains/TrustDomainCapabilities.yaml: WiFiAccessTypeProperties.supportedSecurityModes.items, EgressPolicyCapability.supportedDestinationTypes.items

S-015 — schema name not PascalCase (1) — rename

  • modules/NAM_Common.yaml: rename schema UUIDUuid. Invasive but in scope: 1 definition + 10 $refs across 7 module files (NAM_Common.yaml, NetworkAccessDevices.yaml, TrustDomains.yaml, TrustDomainDevices.yaml, Services/Services.yaml, Services/ServiceSites.yaml, RebootRequests.yaml). Update the definition and every $ref together.

S-030 — required property not defined in properties (2)

  • modules/TrustDomains/TrustDomains.yaml: TrustDomainCreate.required: [name, ...]
  • modules/TrustDomainDevices/TrustDomainDevices.yaml: TrustDomainDeviceCreate.required: [deviceName, ...]

Both are allOf-inheritance findings: the property is defined in the parent *Update schema and inherited via allOf, which the linter does not resolve. Fix by restructuring so the required properties resolve within the schema the linter evaluates.

Hints — not fixing (61)

All 61 are S-313 (owasp:api4:2023-string-restricted): free-form strings without format/pattern/enum. These are the documented "acceptable / no fix needed" set and are intentionally left as-is.

Verification

Reproducible locally by bundling each spec (redocly bundle) and running the camaraproject/tooling .spectral-r4.yaml ruleset (plus its lint_function/ checks) against the bundle — the same engine the release review uses. Done when the release-review run reports 0 warnings.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions