githubEdit

sliders-upvalues.schema.json overrides

Instance Level Customization of the Service Catalog

This is the most common customization path.

It lets you change defaults and constraints without forking catalogs.

Use it to:

  • set global policies (example: default RAM, max disk)

  • restrict advanced options to specific roles (example: H100 only for users with a specific role assigned)

Mental model

Some fields in a chart’s values.schema.json point to a schema file.

Onyxia ships a set of “well-known” schema files in the API:

When a chart uses x-onyxia.overwriteSchemaWith, Onyxia resolves that schema path.

How overwriteSchemaWith works

In the catalog charts (example: InseeFrLab/helm-charts-interactive-servicesarrow-up-right), look for x-onyxia.overwriteSchemaWith in charts/*/values.schema.json.

Example:

This means: “for this field, use the schema at ide/customImage.json”.

That schema file can come from:

  • the default schemas embedded in Onyxia API

  • an override you provide at the instance level (see below)

Instance-wide overrides

Let's consider the ide/customImage.jsonarrow-up-right schema for exaple. By default this will be used:

It enable users to provide a custom Docker image for a given service, let's say we want to remove this option. To do that you would configure your Onyxia instance like this:

Result: the “custom image” toggle disappears from the launcher.

chevron-rightOther Example: change default resource slidershashtag

This is a typical way to enforce sane defaults and limits for CPU/memory.

Role-based overrides (different schema per user role)

Instance-wide overrides apply to everyone.

You can also apply schema overrides per role.

Onyxia reads roles from the decoded JWT access token.

By default, it uses the roles claim.

You can change that in your OIDC configuration.

See OpenID Connect Configuration.

Example: let fullgpu users choose H100

Here we override the built-in nodeSelector-gpu.json schema only for users with role fullgpu.

Other users still get the default schema.

Result: fullgpu users can request GPU nodes and select H100.

Next: user-specific defaults

So far you can override schemas:

  • for everyone (instance-wide)

  • for a subset of users (per role)

If you want per-user defaults (prefill from identity), use x-onyxia.overwriteDefaultWith.

Follow up with:

plusx-onyxiachevron-right

Last updated

Was this helpful?