---
title: "Set default dashboard config for a role (admin only)."
method: PUT
path: "/api/v1/settings/dashboard-config/roles/{role_name}"
tags: ["Paramètres"]
---

# Set default dashboard config for a role (admin only).

`PUT /api/v1/settings/dashboard-config/roles/{role_name}`

## Request

- Base URL: `https://erp.eyeot.fr/api/v1`
- URL: `https://erp.eyeot.fr/api/v1/api/v1/settings/dashboard-config/roles/{role_name}`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Set default dashboard config for a role (admin only).

    Sprint +25 Phase 4 (2026-05-18) — RBAC durci : `admin:settings`
    (avant `settings:write` ⇒ accessible aux managers). Modifier le
    dashboard par défaut d'un rôle affecte TOUS les users de ce rôle —
    décision admin org.

**Permissions requises** : `admin:settings`

## Request body

- DashboardConfigUpdate
  - `layout` unknown
  - `widgets` WidgetConfig[], required
    - `key` string, required
    - `order` integer, required
    - `size` 'sm' | 'md' | 'lg' | 'full', required
    - `visible` boolean, required

## Response `200`

Succès — payload `{data, meta}` (cf. API-GUIDE §3.1)

## Other responses

- `400`: Validation Marshmallow échouée. `errors` détaille chaque champ invalide.
- `401`: JWT manquant, expiré ou révoqué.
- `402`: L'organisation n'a pas d'abonnement actif (paywall). Rediriger vers /activate.
- `403`: Permissions `module:action` insuffisantes pour cette route.
- `404`: Ressource introuvable (ou cross-tenant — équivalent à hidden).
- `409`: État incohérent (email dupliqué, ressource déjà dans cet état, etc.).
- `422`: Validation Marshmallow échouée. `errors` détaille chaque champ invalide.
- `429`: Trop de requêtes. Honorer le header `Retry-After` (secondes).

---

[API](https://skmtc.dev/eyeot/apis/eyeot-erp-api.md) · [All operations](https://skmtc.dev/eyeot/apis/eyeot-erp-api/llms.txt) · [OpenAPI document](https://skmtc.dev/eyeot/apis/eyeot-erp-api/revisions/42ab95222a89?raw)
