Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions update-release-channel/schema/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Release channel pointer schema

JSON Schema for the per-channel pointer file written by the `update-release-channel` GitHub Action to
`s3://downloads-cdn-eu-central-1-prod/<prefix>/<product>/<channel>.json`.

## Versioning

The schema version lives in the **filename** (`v1.json`, `v2.json`, ...) and in lockstep in the `schemaVersion` field
inside the JSON document.

A new file (e.g. `v2.json`) is introduced **only** when existing fields are removed, renamed, or changed in a
non-backwards-compatible way. Additive changes (new optional fields) ship as updates to `v1.json` — consumers MUST
ignore unknown fields.

## v1 fields

| Field | Type | Required | Description |
| --------------- | ------- | -------- | ------------------------------------------------------------------------ |
| `schemaVersion` | integer | yes | Const `1`. |
| `version` | string | yes | Currently published version on this channel (e.g. `0.9.0.977`). |
| `updatedAt` | string | yes | ISO-8601 UTC timestamp at which the channel was promoted to `version`. |

`additionalProperties: true` — unknown fields are accepted and MUST be ignored by older consumers.
27 changes: 27 additions & 0 deletions update-release-channel/schema/v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/SonarSource/ci-github-actions/master/update-release-channel/schema/v1.json",
"title": "Release Channel Pointer (v1)",
"description": "Per-channel release pointer JSON. Consumers MUST ignore unknown fields.",
"type": "object",
"required": ["schemaVersion", "version", "updatedAt"],
"additionalProperties": true,
"properties": {
"schemaVersion": {
"description": "Schema version. Bumped only on non-backwards-compatible changes; additive evolution stays at 1.",
"type": "integer",
"const": 1
},
"version": {
"description": "Currently published version on this channel (e.g. \"0.9.0.977\", \"2026.1.0\").",
"type": "string",
"minLength": 1
},
"updatedAt": {
"description": "ISO-8601 / RFC 3339 UTC timestamp at which this channel was promoted to point at `version`.",
Comment thread
jayadeep-km-sonarsource marked this conversation as resolved.
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$"
Comment thread
jayadeep-km-sonarsource marked this conversation as resolved.
}
}
}
Loading