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 | |
| JSON | json |
| CSV | csv |
Logo personnalisé¶
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.
{
"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écharger le logo¶
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
Obtenir un logo¶
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é.
Supprimer le logo¶
Supprimez le logo personnalisé de l'opérateur actuel.
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é |