Aller au contenu

Préférences de l'opérateur

Chaque opérateur peut personnaliser son expérience Stentor via les préférences de chaque utilisateur. Les paramètres incluent la sélection du thème de l'interface utilisateur, la couleur d'accentuation, la police et les couleurs de la console, la police graphique, la plage de ports VNC, le format de rapport par défaut et le téléchargement d'un logo personnalisé. Les préférences sont stockées côté serveur au format JSONB et persistent sur toutes les sessions et tous les appareils.


Aperçu

Les préférences sont limitées à l'opérateur authentifié : chaque utilisateur possède ses propres paramètres indépendants. Lorsqu'aucune préférence n'a été enregistrée, le système renvoie des valeurs par défaut raisonnables (police 14px, rapports PDF, thème système).

graph LR
    A[Operator UI] -->|PUT /preferences| B[Backend API]
    B --> C[operator_preferences<br/>JSONB column]
    A -->|GET /preferences| B
    A -->|POST /preferences/logo| B
    B --> D[custom_logo<br/>BYTEA column]

Paramètres disponibles

Thème

Stentor est livré avec plus de 25 thèmes intégrés organisés en catégories. Les thèmes sont appliqués instantanément lors de la sélection et enregistrés sur le serveur pour une persistance sur plusieurs appareils.

Catégorie Thèmes
Par défaut Valorant, Matrix, Cobalt Strike, Arctique, Ambre, Minuit
Éditeur Dracula, Nord, One Dark, Tokyo Night, Gruvbox Dark, Catppuccin
Lumière Papier, lumière solarisée, lumière GitHub, Rose Pine Dawn, lumière Gruvbox
Créatif Cyberpunk, Synthwave, Océan, Coucher de soleil, Forêt, Cerise, Aurore
Accessibilité Foncé à contraste élevé, clair à contraste élevé, vert terminal

Aperçu instantané

Les thèmes s'appliquent immédiatement lorsque vous cliquez dessus - pas besoin de les enregistrer au préalable. Le thème sélectionné est conservé sur le serveur en arrière-plan.

Couleur d'accentuation

Définissez la couleur d'accent principale à l'aide d'une valeur oklch (par exemple, oklch(0.7 0.15 250)). La page des préférences fournit des boutons prédéfinis pour les couleurs courantes :

Préréglage Valeur
Bleu oklch(0.7 0.15 250)
Vert oklch(0.7 0.18 155)
Rouge oklch(0.65 0.2 25)
Violet oklch(0.65 0.18 300)
Orange oklch(0.7 0.16 55)

Laissez la couleur d’accent vide pour utiliser la valeur par défaut du thème.

Apparence de la console

Personnalisez l'apparence de la sortie du terminal et de la console :

Paramètre Champ Contraintes Par défaut
Taille de la police console_font_size 8 à 32 px 14
Famille de polices console_font_family 100 caractères maximum Valeur par défaut du système
Couleur de premier plan console_fg_color 20 caractères maximum Thème par défaut
Couleur de fond console_bg_color 20 caractères maximum Thème par défaut
Couleur de surbrillance console_highlight_color 20 caractères maximum Thème par défaut

Préréglages de polices de console disponibles : JetBrains Mono, Fira Code, Source Code Pro, Cascadia Code, IBM Plex Mono, Consolas, monospace.

La page des préférences comprend un aperçu en direct montrant un exemple de sortie du terminal avec la taille et la famille de police sélectionnées.

Police du graphique

Choisissez la police utilisée dans les graphiques croisés dynamiques et les visualisations de réseau.

Préréglages disponibles : Inter, JetBrains Mono, monospace, serif, sans-serif ou valeur par défaut du système.

Champ Contraintes Par défaut
graph_font 100 caractères maximum Valeur par défaut du système

Plage de ports VNC

Configurez la plage de ports utilisée pour les connexions de bureau VNC aux machines cibles.

Champ Contraintes Par défaut
vnc_port_min 1024 -- 65535 ou 0 (système par défaut) 0
vnc_port_max 1024 -- 65535 ou 0 (système par défaut) 0

Validation de la plage de ports

vnc_port_max doit être supérieur ou égal à vnc_port_min. Les deux valeurs doivent être soit 0 (valeur par défaut du système), soit comprises entre 1 024 et 65 535. Les ports inférieurs à 1024 sont réservés et non acceptés.

Format du rapport

Définissez le format d'exportation par défaut pour les rapports d'engagement.

Formater Valeur
PDF pdf
JSON json
CSV csv

Les opérateurs peuvent télécharger un logo personnalisé qui apparaît dans les rapports et dans la barre latérale. Le logo est stocké sous forme de blob binaire dans la base de données.

Contraintes :

  • Taille maximale du fichier : 500 Ko
  • Formats acceptés : tout type d'image (PNG, JPG, SVG recommandés)
  • Le type de contenu doit commencer par image/

Référence API

Obtenir les préférences

Récupère les préférences de l'opérateur actuel. Renvoie les valeurs par défaut si aucune préférence n'a été enregistrée.

curl -s https://stentor.app/api/v1/preferences \
  -H "Authorization: Bearer $TOKEN" | jq
{
  "accent_color": "oklch(0.7 0.15 250)",
  "console_font_size": 14,
  "console_font_family": "JetBrains Mono",
  "console_fg_color": "",
  "console_bg_color": "",
  "console_highlight_color": "",
  "graph_font": "",
  "vnc_port_min": 0,
  "vnc_port_max": 0,
  "report_format": "pdf",
  "theme": "valorant",
  "has_custom_logo": true,
  "updated_at": "2026-02-21T12:00:00Z"
}

Champs dérivés

Le champ has_custom_logo est calculé à partir de la base de données (vérifie si la colonne custom_logo n'est pas nulle) et ne fait pas partie des préférences JSONB stockées.


Mettre à jour les préférences

Enregistrez les préférences de l'opérateur. Tous les champs sont obligatoires dans le corps de la demande.

curl -s -X PUT https://stentor.app/api/v1/preferences \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "accent_color": "oklch(0.65 0.2 25)",
    "console_font_size": 16,
    "console_font_family": "Fira Code",
    "console_fg_color": "#c9d1d9",
    "console_bg_color": "#0d1117",
    "console_highlight_color": "#264f78",
    "graph_font": "Inter",
    "vnc_port_min": 5900,
    "vnc_port_max": 5999,
    "report_format": "pdf",
    "theme": "dracula"
  }' | jq
{
  "accent_color": "oklch(0.65 0.2 25)",
  "console_font_size": 16,
  "console_font_family": "Fira Code",
  "console_fg_color": "#c9d1d9",
  "console_bg_color": "#0d1117",
  "console_highlight_color": "#264f78",
  "graph_font": "Inter",
  "vnc_port_min": 5900,
  "vnc_port_max": 5999,
  "report_format": "pdf",
  "theme": "dracula",
  "has_custom_logo": false,
  "updated_at": "2026-02-21T12:05:00Z"
}

Règles de validation :

Champ Règle
console_font_size Doit être entre 8 et 32 ans
console_font_family 100 caractères maximum
console_fg_color 20 caractères maximum
console_bg_color 20 caractères maximum
console_highlight_color 20 caractères maximum
graph_font 100 caractères maximum
vnc_port_min 0 ou 1024-65535
vnc_port_max 0 ou 1024-65535, doit être >= vnc_port_min
report_format L'un des : pdf, json, csv
theme Doit être un nom de thème reconnu ou vide

Téléchargez une image de logo personnalisée via les données d'un formulaire en plusieurs parties.

curl -s -X POST https://stentor.app/api/v1/preferences/logo \
  -H "Authorization: Bearer $TOKEN" \
  -F "[email protected]" | jq
{
  "status": "logo uploaded"
}

Récupère le logo personnalisé de l'opérateur actuel sous forme d'image binaire (renvoie le type de contenu image/png).

curl -s https://stentor.app/api/v1/preferences/logo \
  -H "Authorization: Bearer $TOKEN" \
  -o logo.png

Renvoie 404 si aucun logo personnalisé n'a été téléchargé.


Supprimez le logo personnalisé de l'opérateur actuel.

curl -s -X DELETE https://stentor.app/api/v1/preferences/logo \
  -H "Authorization: Bearer $TOKEN" | jq
{
  "status": "logo deleted"
}

Résumé de l'API

Méthode Point de terminaison Description
GET /api/v1/preferences Obtenir les préférences de l'opérateur
PUT /api/v1/preferences Mettre à jour les préférences de l'opérateur
POST /api/v1/preferences/logo Télécharger un logo personnalisé (en plusieurs parties)
GET /api/v1/preferences/logo Télécharger le logo personnalisé (binaire)
DELETE /api/v1/preferences/logo Supprimer le logo personnalisé