From 9d5cd3e291620ae35e5a9095ace16cc4e855164c Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Mon, 8 Jun 2026 08:49:23 +0200 Subject: [PATCH 1/2] Update release notes for release 1.5.4 --- content/en/docs/release/_index.md | 107 ++++++++++++++++++++++++++++-- 1 file changed, 101 insertions(+), 6 deletions(-) diff --git a/content/en/docs/release/_index.md b/content/en/docs/release/_index.md index 6b53903..fb8a935 100644 --- a/content/en/docs/release/_index.md +++ b/content/en/docs/release/_index.md @@ -4,12 +4,18 @@ description: Settings and issues specific to the current release weight: 1 --- -## `cc-backend` version 1.5.3 +## `cc-backend` version 1.5.4 Supports job archive version 3 and database version 11. +This is a security and bugfix release. + ## What you need to do when upgrading +### Upgrading from v1.5.3 + +No database migration is required. Start the new binary directly. + ### Upgrading from v1.5.2 No database migration is required. Start the new binary directly. @@ -45,10 +51,83 @@ to 2 hours. You can also run `ANALYZE` manually instead. - **Migrate your job database** to version 11 (see [Database migration](/docs/how-to-guides/database-migration/)). - **Migrate your job archive** to version 3 (see [Job Archive migration](/docs/how-to-guides/archive-migration/)). +## Changes in 1.5.4 + +### Security fixes + +- **JWT HMAC empty-key bypass (critical)**: `jwtSession.go` now refuses to + register when `CROSS_LOGIN_JWT_HS512_KEY` is unset. Previously, an empty HMAC + key allowed unauthenticated admin token forgery. +- **SQL injection via metric names (critical)**: Metric names supplied through + GraphQL were interpolated raw into `json_extract` SQL expressions. Names are + now validated against `^[a-zA-Z0-9_]+$`. +- **Path traversal via line-protocol tags (critical)**: `cluster` and `host` + tags from the metric line protocol flowed unvalidated into `path.Join` for + checkpoint/WAL file paths, enabling arbitrary file writes. Path-traversal + sequences are now rejected in `DecodeLine`. +- **CORS `AllowCredentials` disabled**: CORS middleware no longer sets + `AllowCredentials: true`, which was incompatible with `AllowedOrigins: ["*"]` + and could enable cross-origin credential theft. +- **HSTS header added**: `Strict-Transport-Security` is now set for all HTTPS + connections. +- **Security response headers**: Added `X-Content-Type-Options: nosniff`, + `X-Frame-Options: DENY`, `Referrer-Policy: same-origin`, and a conservative + `Content-Security-Policy` to harden against clickjacking and base-tag injection. +- **Stored XSS in job message**: `job.metaData.message` is now rendered as + escaped text instead of raw HTML in `Job.root` and `JobFootprint`. +- **SQL injection in tag queries**: The tag-scope `IN` list and manager project + subquery in `CountTags` are now parameterized instead of interpolating values + sourced from OIDC/LDAP. +- **GraphQL DoS hardening**: Query cost is bounded with `FixedComplexityLimit` + (5000). Non-positive `items-per-page` and `page` values are rejected with HTTP + 400. +- **CSRF defense-in-depth**: State-changing requests with a cross-site + `Sec-Fetch-Site` header are now rejected. +- **NATS API security warning**: A startup warning is now logged when NATS + subscriptions are enabled, reminding operators that the NATS API has no + application-layer authentication. + +### Bug fixes + +- **Roofline legend placement**: Roofline plot legends now use fixed coordinates + instead of dynamic placement, preventing the legend from overlapping data + points or being rendered off-canvas. +- **Subcluster usage tab labels**: Subcluster names in the status dashboard + usage tabs are no longer force-capitalized; the original cluster-defined + casing is preserved. +- **NodeListRow host filter**: The running-jobs query now filters by exact + hostname (`eq`) instead of substring match (`contains`), avoiding incorrect + matches when one hostname is a prefix of another. +- **WAL files not reset on shutdown**: On graceful shutdown the metricstore + wrote a final binary snapshot but never rotated the per-host `current.wal` + files. Stale WAL files were replayed and appended to on the next start, + growing without bound. `Shutdown` now rotates WAL files for all successfully + snapshotted hosts. + +### Dependencies + +- **Go module upgrades**: Refreshed Go module dependencies to their latest + compatible versions. + ## Changes in 1.5.3 ### Bug fixes +- **OIDC role extraction**: Fixed role extraction from OIDC tokens where roles + were not correctly parsed from the token claims. Roles are now always + requested from the token regardless of other configuration. +- **OIDC user sync role changes**: `SyncUser` and `UpdateUser` callbacks now + allow all role changes, removing a restriction that prevented role updates + during OIDC-driven user synchronization. +- **OIDC projects array**: Projects array from the OIDC token is now submitted + and applied when syncing user attributes. +- **WAL message drops during checkpoint**: WAL writes are now paused during + binary checkpoint creation. Previously, disk I/O contention caused over + 1.4 million dropped messages per checkpoint cycle. +- **WAL rotation skipped for all nodes**: `RotateWALFiles` used a non-blocking + send on a small channel. With thousands of nodes, the channel filled instantly + and nearly all hosts were skipped. Replaced with a blocking send using a + shared 2-minute deadline. - **WAL not rotated on partial checkpoint failure**: When binary checkpointing failed for some hosts, WAL files for successfully checkpointed hosts were not rotated and the checkpoint timestamp was not advanced. Partial successes now @@ -59,14 +138,22 @@ to 2 hours. You can also run `ANALYZE` manually instead. a per-host WAL size cap in bytes. When exceeded, the WAL is force-rotated. Defaults to `0` (unlimited) for backward compatibility. - **Range filter fixes**: Range filters now correctly handle zero as a boundary - value. Improved validation and UI text for range selections. + value. Improved validation and UI text for "more than equal" and "less than + equal" range selections. - **Line protocol body parsing interrupted**: Switched from `ReadTimeout` to `ReadHeaderTimeout` so that long-running metric submissions are no longer cut off mid-stream. - **Checkpoint archiving continues on error**: A single cluster's archiving - failure no longer aborts the entire cleanup operation. + failure no longer aborts the entire cleanup operation. Errors are collected + and reported per cluster. +- **Parquet row group overflow**: Added periodic flush during checkpoint + archiving to prevent exceeding the parquet-go 32k column-write limit. - **Removed metrics excluded from subcluster config**: Metrics removed from a subcluster are no longer returned by `GetMetricConfigSubCluster`. +- **Log viewer auto-refresh**: Fixed the log viewer component not + auto-refreshing correctly. +- **SameSite cookie setting**: Relaxed the SameSite cookie attribute to improve + compatibility with OIDC redirect flows. ### New features @@ -83,9 +170,17 @@ to 2 hours. You can also run `ANALYZE` manually instead. ### MetricStore performance - **WAL writer throughput**: Decoupled WAL file flushing from message processing - using a periodic 5-second batch flush, significantly increasing metric - ingestion throughput. -- **Improved shutdown time**: MetricStore and archiver now shut down concurrently. + using a periodic 5-second batch flush (up to 4096 messages per cycle), + significantly increasing metric ingestion throughput. +- **Improved shutdown time**: HTTP shutdown timeout reduced; MetricStore and + archiver now shut down concurrently. Overall shutdown deadline raised to + 60 seconds. + +### Logging improvements + +- **Reduced tagger log noise**: Missing metrics and expression evaluation errors + in the job classification tagger are now logged at debug level instead of + error level. ## Changes in 1.5.2 From 0848c33b7ddf4bd8fda1acc9cc37cb45c6308257 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Mon, 8 Jun 2026 14:32:36 +0200 Subject: [PATCH 2/2] Add user rest api. Rename main branch name --- content/en/blog/releases/cc-backend-v1.3.1.md | 2 +- content/en/blog/releases/cc-backend-v1.4.0.md | 2 +- content/en/blog/releases/cc-backend-v1.4.1.md | 2 +- content/en/blog/releases/cc-backend-v1.4.2.md | 2 +- content/en/blog/releases/cc-backend-v1.4.3.md | 2 +- content/en/blog/releases/cc-backend-v1.4.4.md | 2 +- content/en/docs/explanation/jwtoken.md | 2 +- .../en/docs/how-to-guides/clusterConfig.md | 2 +- .../docs/how-to-guides/database-migration.md | 2 +- content/en/docs/how-to-guides/useRest.md | 71 ++++++++++++++++++- .../reference/cc-backend/jobarchive/_index.md | 2 +- .../en/docs/reference/cc-backend/rest-api.md | 4 +- .../reference/cc-backend/schemas/_index.md | 2 +- .../cc-backend/schemas/cluster-schema.md | 2 +- .../cc-backend/schemas/config-schema.md | 2 +- .../cc-backend/schemas/job-data-schema.md | 2 +- .../cc-backend/schemas/job-meta-schema.md | 2 +- .../schemas/job-metric-data-schema.md | 2 +- .../schemas/job-metric-statistics-schema.md | 2 +- .../cc-backend/schemas/unit-schema.md | 2 +- 20 files changed, 90 insertions(+), 21 deletions(-) diff --git a/content/en/blog/releases/cc-backend-v1.3.1.md b/content/en/blog/releases/cc-backend-v1.3.1.md index 7866894..ead78c8 100755 --- a/content/en/blog/releases/cc-backend-v1.3.1.md +++ b/content/en/blog/releases/cc-backend-v1.3.1.md @@ -28,7 +28,7 @@ description: Bugfix Release - 4344c26 fix: make foorprint from statsSeries nullsafe Supports job archive version 1 and database version 6. -Please check out the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/master/ReleaseNotes.md) for further details on breaking changes. +Please check out the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/main/ReleaseNotes.md) for further details on breaking changes. ## Release notes diff --git a/content/en/blog/releases/cc-backend-v1.4.0.md b/content/en/blog/releases/cc-backend-v1.4.0.md index 7107f1b..8b6e8f5 100755 --- a/content/en/blog/releases/cc-backend-v1.4.0.md +++ b/content/en/blog/releases/cc-backend-v1.4.0.md @@ -67,7 +67,7 @@ This is a minor release of `cc-backend`, the API backend and frontend implementation of ClusterCockpit. Supports job archive version 2 and database version 8. -Please check out the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/master/ReleaseNotes.md) for further details on breaking changes. +Please check out the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/main/ReleaseNotes.md) for further details on breaking changes. ## Breaking changes diff --git a/content/en/blog/releases/cc-backend-v1.4.1.md b/content/en/blog/releases/cc-backend-v1.4.1.md index 6ed16f7..a0e9897 100755 --- a/content/en/blog/releases/cc-backend-v1.4.1.md +++ b/content/en/blog/releases/cc-backend-v1.4.1.md @@ -16,7 +16,7 @@ This is a bugfix release of `cc-backend`, the API backend and frontend implementation of ClusterCockpit. Supports job archive version 2 and database version 8. -Please check out the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/master/ReleaseNotes.md) for further details on breaking changes. +Please check out the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/main/ReleaseNotes.md) for further details on breaking changes. ## Known issues diff --git a/content/en/blog/releases/cc-backend-v1.4.2.md b/content/en/blog/releases/cc-backend-v1.4.2.md index 3a16b36..920a7f5 100755 --- a/content/en/blog/releases/cc-backend-v1.4.2.md +++ b/content/en/blog/releases/cc-backend-v1.4.2.md @@ -17,7 +17,7 @@ This is a bugfix release of `cc-backend`, the API backend and frontend implementation of ClusterCockpit. Supports job archive version 2 and database version 8. -Please check out the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/master/ReleaseNotes.md) for further details on breaking changes. +Please check out the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/main/ReleaseNotes.md) for further details on breaking changes. ## Known issues diff --git a/content/en/blog/releases/cc-backend-v1.4.3.md b/content/en/blog/releases/cc-backend-v1.4.3.md index 81d55eb..35a1d9b 100755 --- a/content/en/blog/releases/cc-backend-v1.4.3.md +++ b/content/en/blog/releases/cc-backend-v1.4.3.md @@ -33,7 +33,7 @@ This is a bugfix release of `cc-backend`, the API backend and frontend implementation of ClusterCockpit. Supports job archive version 2 and database version 8. -Please check out the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/master/ReleaseNotes.md) for further details on breaking changes. +Please check out the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/main/ReleaseNotes.md) for further details on breaking changes. ## Known issues diff --git a/content/en/blog/releases/cc-backend-v1.4.4.md b/content/en/blog/releases/cc-backend-v1.4.4.md index 9c6785b..753eaf6 100755 --- a/content/en/blog/releases/cc-backend-v1.4.4.md +++ b/content/en/blog/releases/cc-backend-v1.4.4.md @@ -31,7 +31,7 @@ This is a bugfix release of `cc-backend`, the API backend and frontend implementation of ClusterCockpit. Supports job archive version 2 and database version 8. -Please check out the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/master/ReleaseNotes.md) for further details on breaking changes. +Please check out the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/main/ReleaseNotes.md) for further details on breaking changes. ## Breaking changes diff --git a/content/en/docs/explanation/jwtoken.md b/content/en/docs/explanation/jwtoken.md index 0f80a89..4017fab 100644 --- a/content/en/docs/explanation/jwtoken.md +++ b/content/en/docs/explanation/jwtoken.md @@ -45,7 +45,7 @@ them over to ClusterCockpit via cookies, CC can be configured to accept them: 1. `.env`: CC needs a public ed25519 key to verify foreign JWT signatures. Public keys in PEM format can be converted with the instructions in - [/tools/convert-pem-pubkey-for-cc](https://github.com/ClusterCockpit/cc-backend/blob/master/tools/convert-pem-pubkey/Readme.md) + [/tools/convert-pem-pubkey-for-cc](https://github.com/ClusterCockpit/cc-backend/blob/main/tools/convert-pem-pubkey/Readme.md) . ```bash diff --git a/content/en/docs/how-to-guides/clusterConfig.md b/content/en/docs/how-to-guides/clusterConfig.md index 6016029..bd6a62a 100644 --- a/content/en/docs/how-to-guides/clusterConfig.md +++ b/content/en/docs/how-to-guides/clusterConfig.md @@ -339,7 +339,7 @@ Here is an example: ``` Since it is tedious to write this by hand, we provide a -[Perl script](https://raw.githubusercontent.com/ClusterCockpit/cc-backend/refs/heads/master/configs/generate-subcluster.pl) +[Perl script](https://raw.githubusercontent.com/ClusterCockpit/cc-backend/refs/heads/main/configs/generate-subcluster.pl) as part of `cc-backend` that generates a subCluster template. This script only works if the `LIKWID` tools are installed and in the PATH. You also need the `LIKWID` library for cc-metric-store. You find instructions on how to install diff --git a/content/en/docs/how-to-guides/database-migration.md b/content/en/docs/how-to-guides/database-migration.md index 1599aff..2e81f2f 100644 --- a/content/en/docs/how-to-guides/database-migration.md +++ b/content/en/docs/how-to-guides/database-migration.md @@ -45,7 +45,7 @@ database to the latest version: ``` The migration files are embedded in the binary and can also be viewed in the cc -backend [source tree](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/repository/migrations). +backend [source tree](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/repository/migrations). We use the [migrate library](https://github.com/golang-migrate/migrate). If something goes wrong, you can check the status and get the current schema diff --git a/content/en/docs/how-to-guides/useRest.md b/content/en/docs/how-to-guides/useRest.md index 7424a47..75d2292 100644 --- a/content/en/docs/how-to-guides/useRest.md +++ b/content/en/docs/how-to-guides/useRest.md @@ -56,7 +56,10 @@ Endpoints described here should be restricted to administrators only, as they in | Endpoint | Method | Request Payload(s) | Description | | ---------------------------------- | ----------- | --------------------- | --------------------------------------------------------------------------------------------------------- | -| `/api/users/` | GET | - | Lists all users | +| `/api/users/` | GET | URL-Query Params | Lists all users (`not-just-user=true` to filter to privileged users only) | +| `/api/users/` | POST | Form Data | Creates a new user | +| `/api/users/` | DELETE | Form Data | Deletes a user | +| `/api/user/{id}` | POST | Form Data | Updates roles and projects for user `{id}` (reactivated in v1.5.4) | | `/api/clusters/` | GET | - | Lists all clusters | | `/api/tags/` | DELETE | JSON Payload | Removes array of tags (Type, Name, Scope) from DB. Private tags cannot be removed. | | `/api/jobs/start_job/` | POST, PUT | JSON Payload | Starts a job | @@ -74,6 +77,72 @@ Endpoints described here should be restricted to administrators only, as they in --- +### User Management + +**List all users:** + +```bash +curl -s "$CC_URL/api/users/?not-just-user=false" \ + -H "Authorization: Bearer $TOKEN" \ + -H "accept: application/json" | jq . +``` + +Pass `not-just-user=true` to return only users that have roles beyond the basic +`user` role (e.g. managers, admins, API users). + +**Create a new user:** + +```bash +curl -s -X POST "$CC_URL/api/users/" \ + -H "Authorization: Bearer $TOKEN" \ + -F "username=alice" \ + -F "password=secret" \ + -F "role=user" \ + -F "name=Alice Example" \ + -F "email=alice@example.com" +``` + +Available roles: `user`, `manager`, `support`, `admin`, `api`. +For `manager` role, also pass `-F "project=myproject"`. +API users do not require a password. + +**Delete a user:** + +```bash +curl -s -X DELETE "$CC_URL/api/users/" \ + -H "Authorization: Bearer $TOKEN" \ + -F "username=alice" +``` + +**Update a user's roles or projects** (reactivated in v1.5.4): + +```bash +# Add a role +curl -s -X POST "$CC_URL/api/user/alice" \ + -H "Authorization: Bearer $TOKEN" \ + -F "add-role=api" + +# Remove a role +curl -s -X POST "$CC_URL/api/user/alice" \ + -H "Authorization: Bearer $TOKEN" \ + -F "remove-role=api" + +# Add a project (for managers) +curl -s -X POST "$CC_URL/api/user/alice" \ + -H "Authorization: Bearer $TOKEN" \ + -F "add-project=myproject" + +# Remove a project +curl -s -X POST "$CC_URL/api/user/alice" \ + -H "Authorization: Bearer $TOKEN" \ + -F "remove-project=myproject" +``` + +Multiple fields can be combined in a single request, e.g. to simultaneously add +a role and a project. + +--- + ### Listing and Filtering Jobs Use `GET /api/jobs/` with URL query parameters to filter the job list. diff --git a/content/en/docs/reference/cc-backend/jobarchive/_index.md b/content/en/docs/reference/cc-backend/jobarchive/_index.md index 58adc43..a4e059e 100644 --- a/content/en/docs/reference/cc-backend/jobarchive/_index.md +++ b/content/en/docs/reference/cc-backend/jobarchive/_index.md @@ -9,7 +9,7 @@ weight: 5 The job archive specifies an exchange format for job meta and performance metric data. It consists of two parts: -- a [Json file format](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/schema/schemas) +- a [Json file format](https://github.com/ClusterCockpit/cc-backend/tree/main/pkg/schema/schemas) - a Directory hierarchy / Key specification By using an open, portable and simple specification based on JSON objects it is diff --git a/content/en/docs/reference/cc-backend/rest-api.md b/content/en/docs/reference/cc-backend/rest-api.md index cff25f8..e0765ea 100644 --- a/content/en/docs/reference/cc-backend/rest-api.md +++ b/content/en/docs/reference/cc-backend/rest-api.md @@ -90,7 +90,7 @@ The REST API is organized into several route groups: ## Swagger API Reference {{< alert title="Non-Interactive Documentation" >}} -This reference is rendered using the `swaggerui` plugin based on the original definition file found in the ClusterCockpit [repository](https://github.com/ClusterCockpit/cc-backend/blob/master/api/swagger.json "ClusterCockpit GitHub"), _but without a serving backend_.

+This reference is rendered using the `swaggerui` plugin based on the original definition file found in the ClusterCockpit [repository](https://github.com/ClusterCockpit/cc-backend/blob/main/api/swagger.json "ClusterCockpit GitHub"), _but without a serving backend_.

This means that all interactivity ("Try It Out") will not return actual data. However, a `Curl` call and a compiled `Request URL` will still be displayed, if an API endpoint is executed. {{< /alert >}} @@ -98,4 +98,4 @@ This means that all interactivity ("Try It Out") will not return actual data. Ho Endpoints displayed here correspond to the administrator `/api/` endpoints, but user-accessible `/userapi/` endpoints are functionally identical. See [these lists]({{< ref "userest" >}} "How-To REST API") for information about accessibility. {{< /alert >}} -{{< swagger-ui "https://raw.githubusercontent.com/ClusterCockpit/cc-backend/refs/heads/master/api/swagger.json" >}} +{{< swagger-ui "https://raw.githubusercontent.com/ClusterCockpit/cc-backend/refs/heads/main/api/swagger.json" >}} diff --git a/content/en/docs/reference/cc-backend/schemas/_index.md b/content/en/docs/reference/cc-backend/schemas/_index.md index 0ce8236..fce45c7 100644 --- a/content/en/docs/reference/cc-backend/schemas/_index.md +++ b/content/en/docs/reference/cc-backend/schemas/_index.md @@ -16,7 +16,7 @@ ClusterCockpit Schema References for * Job Archive Job Metadata * Job Archive Job Metricdata -The schemas in their raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/schema/schemas) repository. +The schemas in their raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/main/pkg/schema/schemas) repository. {{< alert title="Manual Updates">}} Changes to the original JSON schemas found in the repository are not automatically rendered in this reference documentation.

diff --git a/content/en/docs/reference/cc-backend/schemas/cluster-schema.md b/content/en/docs/reference/cc-backend/schemas/cluster-schema.md index 60f4863..9eb1ac5 100644 --- a/content/en/docs/reference/cc-backend/schemas/cluster-schema.md +++ b/content/en/docs/reference/cc-backend/schemas/cluster-schema.md @@ -6,7 +6,7 @@ tags: [Backend] weight: 2 --- -The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/schema/schemas) repository. +The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/main/pkg/schema/schemas) repository. {{< alert title="Manual Updates">}} Changes to the original JSON schema found in the repository are not automatically rendered in this reference documentation.

diff --git a/content/en/docs/reference/cc-backend/schemas/config-schema.md b/content/en/docs/reference/cc-backend/schemas/config-schema.md index a86b052..78113e3 100644 --- a/content/en/docs/reference/cc-backend/schemas/config-schema.md +++ b/content/en/docs/reference/cc-backend/schemas/config-schema.md @@ -8,7 +8,7 @@ weight: 1 A detailed description of each of the application configuration options can be found in the [config documentation]({{< ref "ccb-configuration" >}} "CC-Backend Configuration"). -The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/schema/schemas) repository. +The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/main/pkg/schema/schemas) repository. {{< alert title="Manual Updates">}} Changes to the original JSON schema found in the repository are not automatically rendered in this reference documentation.

diff --git a/content/en/docs/reference/cc-backend/schemas/job-data-schema.md b/content/en/docs/reference/cc-backend/schemas/job-data-schema.md index 7fe836f..eab6915 100644 --- a/content/en/docs/reference/cc-backend/schemas/job-data-schema.md +++ b/content/en/docs/reference/cc-backend/schemas/job-data-schema.md @@ -6,7 +6,7 @@ tags: [Backend] weight: 3 --- -The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/schema/schemas) repository. +The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/main/pkg/schema/schemas) repository. {{< alert title="Manual Updates">}} Changes to the original JSON schema found in the repository are not automatically rendered in this reference documentation.

diff --git a/content/en/docs/reference/cc-backend/schemas/job-meta-schema.md b/content/en/docs/reference/cc-backend/schemas/job-meta-schema.md index c54cee8..d86f434 100644 --- a/content/en/docs/reference/cc-backend/schemas/job-meta-schema.md +++ b/content/en/docs/reference/cc-backend/schemas/job-meta-schema.md @@ -6,7 +6,7 @@ tags: [Backend, Archive] weight: 6 --- -The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/schema/schemas) repository. +The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/main/pkg/schema/schemas) repository. {{< alert title="Manual Updates">}} Changes to the original JSON schema found in the repository are not automatically rendered in this reference documentation.

diff --git a/content/en/docs/reference/cc-backend/schemas/job-metric-data-schema.md b/content/en/docs/reference/cc-backend/schemas/job-metric-data-schema.md index e5a4535..637a652 100644 --- a/content/en/docs/reference/cc-backend/schemas/job-metric-data-schema.md +++ b/content/en/docs/reference/cc-backend/schemas/job-metric-data-schema.md @@ -6,7 +6,7 @@ tags: [Backend, Archive] weight: 7 --- -The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/schema/schemas) repository. +The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/main/pkg/schema/schemas) repository. {{< alert title="Manual Updates">}} Changes to the original JSON schema found in the repository are not automatically rendered in this reference documentation.

diff --git a/content/en/docs/reference/cc-backend/schemas/job-metric-statistics-schema.md b/content/en/docs/reference/cc-backend/schemas/job-metric-statistics-schema.md index 31e9943..10b450a 100644 --- a/content/en/docs/reference/cc-backend/schemas/job-metric-statistics-schema.md +++ b/content/en/docs/reference/cc-backend/schemas/job-metric-statistics-schema.md @@ -6,7 +6,7 @@ tags: [Backend] weight: 4 --- -The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/schema/schemas) repository. +The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/main/pkg/schema/schemas) repository. {{< alert title="Manual Updates">}} Changes to the original JSON schema found in the repository are not automatically rendered in this reference documentation.

diff --git a/content/en/docs/reference/cc-backend/schemas/unit-schema.md b/content/en/docs/reference/cc-backend/schemas/unit-schema.md index 701f807..b3e54c6 100644 --- a/content/en/docs/reference/cc-backend/schemas/unit-schema.md +++ b/content/en/docs/reference/cc-backend/schemas/unit-schema.md @@ -6,7 +6,7 @@ tags: [Backend] weight: 5 --- -The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/schema/schemas) repository. +The following schema in its raw form can be found in the [ClusterCockpit GitHub](https://github.com/ClusterCockpit/cc-backend/tree/main/pkg/schema/schemas) repository. {{< alert title="Manual Updates">}} Changes to the original JSON schema found in the repository are not automatically rendered in this reference documentation.