Aller au contenu

Installation & Configuration

Dernière mise à jour : 19 octobre 2026


Cette page est la référence de tous les paramètres de Tolk for Cisco UC. Toute la configuration se fait depuis l'interface Web d'administration : un chapitre par page, une section par onglet et, pour chaque paramètre, sa clé, sa description et sa valeur par défaut.


Modifier les paramètres

Les pages de paramètres (Paramètres globaux, Produits) regroupent les paramètres de chaque onglet dans des cartes. Chaque ligne affiche la clé, sa valeur courante et une icône ? avec une aide contextuelle.

  • Modifier : survolez une valeur et cliquez sur l'icône crayon. La page d'édition affiche la valeur courante, vérifie la nouvelle (type, plage, cohérence) et propose Réinitialiser par défaut lorsque la valeur diffère de la valeur par défaut.
  • Modifications en attente : une valeur enregistrée n'est pas appliquée immédiatement. La ligne passe en orange et un bandeau indique le nombre de modifications en attente.
  • Appliquer : ouvrez Système & reload → Appliquer / Redémarrer. La page liste chaque modification (avant / après, auteur), exécute des contrôles avant redémarrage (intégrité, certificats TLS, clients actifs, sessions d'administration actives) et permet d'annuler une modification ou toutes. Redémarrer maintenant applique la configuration (le serveur MCP et les sessions d'administration sont brièvement interrompus).
  • Instantanés : un instantané horodaté de la configuration est conservé avant chaque modification (voir BACKUP_ADMIN_UI_ENV_BACKUP_RETENTION).
  • Nouveaux paramètres : après une mise à jour, les paramètres ajoutés par la nouvelle version sont surlignés en bleu jusqu'à leur modification, leur acquittement (Marquer comme vus) ou pendant 7 jours.
  • Paramètres grisés : un paramètre rendu sans objet par un autre est grisé (p. ex. tous les BACKUP_* lorsque BACKUP_ENABLED vaut 0).
  • Filtres : la barre d'onglets propose une zone de recherche et l'option Masquer les paramètres dont la valeur est par défaut.
  • Fichiers et magasins de confiance : les paramètres qui désignent un fichier (clés, certificats, known_hosts…) ou un magasin de certificats d'AC ne se modifient pas en ligne : un lien Voir / Éditer ouvre une page dédiée (métadonnées, contenu, génération, import…).

Droits d'accès

La modification nécessite le niveau d'accès lecture-écriture (RW) sur la page, accordé par le profil de l'administrateur (voir Administrateurs).


Paramètres globaux

Menu Paramètres globaux. La page comporte huit onglets.

Server

Identité

Clé Description Défaut
MCP_SERVER_NAME Nom d'affichage du serveur MCP. Tolk for Cisco UC
MCP_SERVER_INSTRUCTIONS Instructions annoncées aux agents IA qui se connectent (le texte intégré leur demande d'appeler d'abord infra_init_session). (texte intégré)
HOST_FQDN FQDN de l'hôte Docker (résultat de hostname -f), et non du conteneur. Sert de nom d'hôte du conteneur et au rattachement de la licence : doit correspondre à la licence. (à renseigner)

Conteneur Docker

Clé Description Défaut
UID Identifiant numérique d'utilisateur du conteneur (résultat de id -u pour le compte de service). Doit être propriétaire des répertoires montés. 0 (root) est refusé. 1000
GID Identifiant numérique de groupe du conteneur (résultat de id -g pour le compte de service). Doit correspondre au groupe des répertoires montés. 0 (root) est refusé. 1000

Appliqué par Docker Compose

UID / GID sont lus par Docker Compose à la création du conteneur : après une modification, exécutez docker compose up -d sur l'hôte — Appliquer & redémarrer ne suffit pas. Changez en conséquence le propriétaire des répertoires montés (sudo chown -R <uid>:<gid> ~/tolk) avant de recréer le conteneur.

Données persistantes (volumes bind-mount)

La configuration et toutes les données d'exécution sont conservées sur l'hôte, dans le répertoire d'installation, via des volumes bind-mount :

Chemin hôte Chemin conteneur Usage
./secrets/ /app/secrets/ Clés RSA, certificats TLS, licence, comptes admin
./clients/ /app/clients/ Données des clients, rapports
./profiles/clients/_live /app/profiles/clients/_live Profils RBAC des clients (copies de travail)
./profiles/webadmin/_live /app/profiles/webadmin/_live Profils RBAC de l'interface d'administration
./logs/ /app/logs/ Journaux applicatifs & d'audit
./backups/ /app/backups/ Sauvegardes chiffrées
./servers-data/ /app/servers-data/ Schémas AXL/RIS, magasins de confiance, prompts perso.

Reverse proxy

Clé Description Défaut
MCP_SERVER_PUBLIC_URL URL de base publique utilisée par les clients via un reverse proxy / VIP (https://hôte[:port], sans chemin). Automatiquement autorisée dans MCP_SERVER_SECURITY_ALLOWED_HOSTS / MCP_SERVER_SECURITY_ALLOWED_ORIGINS, annoncée à la place d'AUTH_ISSUER (découverte OAuth, /status, URL de connexion des clients) et ajoutée en SAN secondaire. Vide = pas de proxy. (vide)
TRUSTED_PROXY_IPS Reverse proxies (IP / CIDR séparés par des virgules) placés devant le serveur MCP et l'interface d'administration. X-Forwarded-For n'est utilisé que depuis ces sources pour identifier le client réel (logs, liste noire, statistiques, ADMIN_UI_TRUSTED_IPS) ; elles ne sont jamais mises en liste noire. Vide = pas de proxy. (vide)

Transport

Clé Description Défaut
MCP_SERVER_HOST Adresse d'écoute dans le conteneur. Doit rester 0.0.0.0 pour le mappage de ports Docker. 0.0.0.0
MCP_SERVER_PORT Port TCP d'écoute du serveur MCP (HTTPS, défaut 8443). 8443
MCP_SERVER_TRANSPORT Protocole de transport MCP. streamable-http est le seul transport supporté. streamable-http
MCP_SERVER_SECURITY_TRANSPORT_ENABLED Protection contre le DNS rebinding sur le transport (1 = activé, 0 = désactivé). 1
MCP_SERVER_URL_PATH Chemin d'URL sous lequel le point d'accès MCP est exposé. /mcp
MCP_SERVER_SECURITY_ALLOWED_HOSTS Valeurs d'en-tête Host autorisées (séparées par des virgules, port joker possible), p. ex. tolk.domaine.com:*. Les hôtes loopback et l'hôte de MCP_SERVER_PUBLIC_URL sont implicites. Les entrées non-loopback sont ajoutées en SAN du certificat auto-signé et du CSR. (à renseigner)
MCP_SERVER_SECURITY_ALLOWED_ORIGINS Valeurs d'en-tête Origin autorisées (séparées par des virgules, https://), p. ex. https://tolk.domaine.com:8443. Les origines loopback et celle de MCP_SERVER_PUBLIC_URL sont implicites. (à renseigner)

Protection contre le DNS rebinding

Passer MCP_SERVER_SECURITY_TRANSPORT_ENABLED à 0 désactive la validation des en-têtes Host / Origin. Ne la désactivez que sur des réseaux totalement isolés, où les attaques par DNS rebinding ne sont pas un risque. Ces contrôles s'appliquent au port MCP uniquement, pas à l'interface d'administration.

Mode maintenance

Clé Description Défaut
MAINTENANCE_IDLE_TIMEOUT_SECONDS Mode maintenance actif (page Système & reload) : un client inactif depuis plus de ce nombre de secondes voit ses requêtes MCP refusées (« réessayer plus tard »). Les clients actifs continuent ; les nouvelles sessions sont toujours refusées. 300
MAINTENANCE_MAX_DRAIN_SECONDS Durée maximale de vidange optionnelle, en secondes, après l'activation du mode maintenance : une fois écoulée, toute requête MCP est refusée, client actif ou non. 0 = pas de limite. 0

Le mode maintenance lui-même s'active et se désactive depuis la page Système & reload.

Autres

Clé Description Défaut
SERVER_HEALTHCHECK_STATUS_RESPONSE Corps renvoyé par le point de contrôle de santé lorsque le serveur est opérationnel. ok
INTEGRITY_CHECK_INTERVAL_HOURS Intervalle (en heures) de la vérification d'intégrité des fichiers par le watchdog. 24

Infos

Ces valeurs en lecture seule identifient l'installation. Elles sont mises à jour automatiquement à chaque mise à jour.

Clé Description Défaut
PROJECT_CREATOR Métadonnée auteur/créateur du projet (informatif). Pierre SOURDEAU
PROJECT_NAME Métadonnée nom du projet (informatif). tolk-for-cisco-uc
PROJECT_VERSION Version du projet/build ; également utilisée par le manifeste d'intégrité. (version installée)

Authentication

Identité

Clé Description Défaut
AUTH_AUDIENCE Claim JWT aud attendu, qui identifie ce serveur comme destinataire des jetons. mcp-clients
AUTH_ISSUER URL HTTPS publique du serveur (p. ex. https://tolk.domaine.com:8443) : claim JWT iss, URL de base du serveur d'autorisation OAuth 2.1 et CN des certificats générés. (à renseigner)
AUTH_MODE Mode d'authentification global : jwt, oauth2 ou jwt+oauth2 (voir Modes d'authentification). jwt
CLIENTS_DIR Répertoire des données de chaque client (identifiants, rapports). ./clients/

Les clients MCP ne sont pas déclarés ici mais sur la page Clients.

Modes d'authentification

AUTH_MODE Identifiants Usage type
jwt Jeton JWT signé de longue durée (Bearer), pré-généré pour chaque client Agents IA configurés avec un jeton statique
oauth2 OAuth 2.1 : client_id / client_secret, jetons d'accès de courte durée Agents IA (connexion interactive par navigateur ou connexion automatique), scripts / pipelines
jwt+oauth2 Les deux : chaque client a son propre mode (jwt, oauth2 ou les deux) Environnements mixtes
Mode JWT (par défaut)
  • Un JWT RS256 signé est généré pour chaque client et affiché une seule fois via Voir les identifiants sur la page Clients.
  • Sa durée de vie est fixée par AUTH_TOKEN_EXPIRY_DAYS (par défaut : 365 jours).
  • Au démarrage, un jeton est renouvelé automatiquement s'il est absent, corrompu, mal signé, ou si ses claims ou son sujet ont changé.
  • Réinitialiser les tokens (page Clients) révoque immédiatement le jeton courant et en génère un nouveau.

Claims du JWT :

Claim Description
sub Sujet du client
iss Émetteur (AUTH_ISSUER)
aud Audience (AUTH_AUDIENCE)
iat Date d'émission
exp Date d'expiration
jti Identifiant unique (révocation)
client_id Nom du client
Mode OAuth 2.1

OAuth 2.1 utilise des jetons dynamiques de courte durée, mieux adaptés aux pipelines automatisés et aux environnements exigeants en matière d'hygiène des identifiants.

  • client_id = nom du client, créé sur la page Clients (pas d'enregistrement dynamique de client). Le client_secret est affiché une seule fois via Voir les identifiants ; seul son hash bcrypt est conservé.
  • Durée de vie des jetons d'accès : AUTH_OAUTH_TOKEN_EXPIRY_SECONDS (par défaut : 3600 s). Aucun jeton de rafraîchissement n'est émis : à l'expiration, l'agent obtient un nouveau jeton par le même mécanisme.
  • Réinitialiser les tokens (page Clients) renouvelle le client_secret : l'ancien secret ne permet plus d'obtenir de jeton.
  • Endpoints : GET/POST /authorize, POST /token, POST /revoke (RFC 7009), GET /.well-known/oauth-authorization-server (RFC 8414), GET /.well-known/oauth-protected-resource (RFC 9728).

Un agent IA obtient ses jetons de l'une des deux façons suivantes, selon ce qu'il supporte :

Connexion interactive (navigateur) Connexion automatique (client credentials)
Type d'autorisation OAuth authorization_code + PKCE (RFC 7636) client_credentials (RFC 6749 §4.4)
Configuration de l'agent URL du serveur, plus le client_id si l'agent l'accepte URL du serveur, client_id et client_secret
Saisie du secret Par l'utilisateur, sur la page de connexion Tolk Aucune : l'agent le lit dans son fichier de configuration
Navigateur Oui Non
Expiration du jeton L'agent rouvre la page de connexion L'agent redemande un jeton de lui-même, sans action de l'utilisateur
Liste blanche des redirect URI S'applique (voir Liste blanche des redirect URI OAuth) Non utilisée
Clients typiques IDE IA et agents avec connexion par navigateur (p. ex. OpenCode) Agents supportant le type client credentials (p. ex. Claude Desktop), SDK MCP, plateformes d'automatisation, scripts

Connexion interactive (authorization_code + PKCE) :

  1. L'agent reçoit une réponse 401 et effectue la découverte OAuth (/.well-known/...).
  2. Il ouvre la page de connexion Tolk dans le navigateur (GET /authorize), avec le client_id prérempli si sa configuration le fournit.
  3. L'utilisateur saisit le client_id (s'il est vide) et le client_secret.
  4. Le navigateur est redirigé vers l'agent (redirect_uri) avec un code d'autorisation.
  5. L'agent échange le code contre un jeton d'accès (POST /token), protégé par PKCE.

Note

Dans ce mode, le secret est toujours saisi sur la page de connexion : même si la configuration de l'agent contient aussi un client_secret, Tolk ne l'utilise pas et le navigateur s'ouvre quand même. Seul un agent utilisant le type client credentials se connecte sans action de l'utilisateur.

Connexion automatique (client_credentials) :

  1. L'agent lit le client_id et le client_secret dans sa configuration.
  2. Il les envoie à POST /token avec grant_type=client_credentials, dans l'en-tête HTTP Basic (client_secret_basic) ou dans le corps du formulaire (client_secret_post).
  3. Il appelle le serveur MCP avec le jeton d'accès reçu (Authorization: Bearer ...).
  4. À l'expiration du jeton (expires_in), il en redemande un de la même façon.

Requête équivalente avec curl :

curl -sk -X POST https://tolk.domaine.com:8443/token \
  -u "<client_id>:<client_secret>" \
  -d "grant_type=client_credentials"

Secret stocké dans la configuration de l'agent

En connexion automatique, le client_secret est stocké en clair dans le fichier de configuration de l'agent : restreignez ses droits d'accès, et créez un client par utilisateur et par agent afin que Réinitialiser les tokens n'affecte que cet agent.

Mode hybride JWT + OAuth 2.1

En jwt+oauth2, le formulaire client de la page Clients affiche un champ Mode d'authentification : chaque client utilise jwt, oauth2 ou les deux. Certains clients peuvent ainsi utiliser des jetons JWT statiques, d'autres OAuth 2.1.

Protection anti brute-force

Clé Description Défaut
AUTH_FAIL_LIMIT Nombre d'échecs d'authentification autorisés avant mise en liste noire de l'IP source. 10
AUTH_FAIL_WINDOW_SECONDS Fenêtre glissante (en secondes) sur laquelle les échecs d'authentification sont comptés. 300
AUTH_BLACKLIST_DURATION_SECONDS Durée (en secondes) de mise en liste noire d'une IP après dépassement du seuil d'échecs d'authentification. 900

Expiration des jetons

Clé Description Défaut
AUTH_TOKEN_EXPIRY_DAYS Durée de vie (en jours) des jetons JWT statiques émis en mode jwt. 365
AUTH_OAUTH_TOKEN_EXPIRY_SECONDS Durée de vie des jetons d'accès OAuth2, en secondes (utilisé seulement si AUTH_MODE inclut oauth2). 3600

URIs de redirection OAuth2

Clé Description Défaut
AUTH_OAUTH_REDIRECT_URIS Liste blanche JSON par client des redirect_uri OAuth 2.1 (voir Liste blanche des redirect URI OAuth). Vide = pas de liste blanche. (vide)
AUTH_OAUTH_REDIRECT_URI_ENFORCEMENT off (liste blanche non appliquée, les écarts sont seulement audités) ou strict (recommandé en production : une redirect_uri absente de la liste est rejetée). off
Liste blanche des redirect URI OAuth

Dans le flux authorization_code, le navigateur est redirigé vers la redirect_uri fournie par l'agent IA. La liste blanche restreint ces URI, client par client :

{"alice": ["http://127.0.0.1:19876/mcp/oauth/callback"], "*": ["http://127.0.0.1:19876/mcp/oauth/*"]}
  • Clé = nom du client (client_id). La clé "*" contient les URI autorisées pour tous les clients ; elles s'ajoutent à la liste propre de chaque client.
  • Correspondance : exacte, ou par préfixe lorsque l'entrée se termine par *. Gardez le schéma, l'hôte, le port et le chemin dans un préfixe (http://127.0.0.1/* ne correspond pas à http://127.0.0.1:19876/...).
  • Plusieurs agents : créez un client par utilisateur et par agent, et listez toutes ses URI ; un client peut en avoir plusieurs (p. ex. OpenCode et un autre outil).
  • URI inconnue : en mode strict avec une liste vide, rien n'est bloqué et la redirect_uri reçue est journalisée en avertissement dans le journal applicatif. Ajoutez-la à la liste, puis appliquez.
Agent redirect_uri par défaut
OpenCode http://127.0.0.1:19876/mcp/oauth/callback (fixable par serveur avec "oauth": {"redirectUri": "..."} dans opencode.json)

Production

Passez AUTH_OAUTH_REDIRECT_URI_ENFORCEMENT à strict avec des URI exactes. La liste blanche n'est utilisée que lorsque AUTH_MODE vaut oauth2 ou jwt+oauth2.

Clés RSA

Clé Description Défaut
AUTH_RSA_KEY_SIZE Taille en bits de la paire de clés RSA du serveur (2048, 3072 ou 4096), utilisée lors de sa (re)génération. 4096
AUTH_RSA_PRIVATE_KEY_FILE Clé privée RSA : signe les jetons JWT et déchiffre les sauvegardes. ./secrets/rsa_private.pem
AUTH_RSA_PUBLIC_KEY_FILE Clé publique RSA : vérifie les jetons JWT et chiffre les sauvegardes. ./secrets/rsa_public.pem

La paire de clés RSA du serveur signe les jetons JWT et chiffre les sauvegardes. Le bouton Régénérer la paire de cette carte effectue une rotation complète : sauvegarde complète du système, archivage de la paire courante, génération d'une nouvelle paire et réémission des jetons de tous les clients. Communiquez ensuite les nouveaux jetons via Voir les identifiants sur la page Clients, puis appliquez le redémarrage en attente.

Impact d'une régénération

Tous les jetons clients existants deviennent invalides, et les sauvegardes chiffrées avec l'ancienne clé ne peuvent être déchiffrées qu'avec la clé archivée : exportez-la hors ligne. Voir Rotation des clés RSA.


TLS / Crypto

Certificat du serveur MCP

Clé Description Défaut
MCP_TLS_CSR_FILE Demande de signature (CSR) du certificat du serveur MCP (Générer un CSR…). ./secrets/server.csr
MCP_TLS_KEY_FILE Clé privée du certificat du serveur MCP (auto-signé ou signé par une AC) ; signe aussi le CSR. ./secrets/server.key
MCP_TLS_CERT_FILE Certificat du serveur MCP, auto-signé ou signé par une AC (voir Certificats TLS). ./secrets/server.crt
MCP_TLS_SELFSIGNED_VALIDITY_DAYS Durée de validité (en jours) du certificat serveur auto-signé généré (défaut 365). 365

Infos certificat

Ces valeurs alimentent le sujet des CSR ; le CN est toujours l'hôte de AUTH_ISSUER.

Clé Description Défaut
CERT_COUNTRY Champ Pays (C) du sujet de la CSR / du certificat généré. FR
CERT_STATE Champ Région/État (ST) du sujet de la CSR / du certificat généré. STATE
CERT_LOCATION Champ Localité (L) du sujet de la CSR / du certificat généré. LOCATION
CERT_ORG Champ Organisation (O) du sujet de la CSR / du certificat généré. ORG
CERT_OU Champ Unité organisationnelle (OU) du sujet de la CSR / du certificat généré. OU
CERT_KEY_SIZE Taille en bits de la clé RSA utilisée lors de la génération d'une nouvelle clé privée de certificat. 4096

Crypto

Clé Description Défaut
CRYPTO_SALT_FILE Chemin du fichier de sel côté serveur utilisé pour les dérivations cryptographiques. .salt
CRYPTO_SECRETS_DIR Répertoire des secrets cryptographiques du serveur (clés, certificats, sel). ./secrets/

Certificats TLS

Chaque écouteur utilise une unique paire certificat / clé, auto-signée ou signée par une AC :

Écouteur Paramètres certificat / clé
Serveur MCP MCP_TLS_CERT_FILE / MCP_TLS_KEY_FILE
Interface d'administration ADMIN_UI_TLS_CERT_FILE / ADMIN_UI_TLS_KEY_FILE (seulement si ADMIN_UI_TLS_REUSE_MCP_CERT vaut 0 ; voir Admin UI → TLS)

Le type est déduit du certificat lui-même (émetteur = sujet → auto-signé, sinon signé par une AC).

Certificat auto-signé (par défaut)

Au démarrage, lorsque la paire est absente (ou qu'un seul des deux fichiers existe), Tolk génère un certificat auto-signé :

  • CN = hôte de AUTH_ISSUER ;
  • SAN = le CN + chaque hôte non-loopback de MCP_SERVER_SECURITY_ALLOWED_HOSTS (interface d'administration : ADMIN_UI_TLS_ALLOWED_HOSTS, ou la liste MCP si vide) + l'hôte de MCP_SERVER_PUBLIC_URL. localhost / 127.0.0.1 ne sont jamais inclus.

Un certificat auto-signé existant est régénéré au démarrage lorsque plus de 50 % de sa durée de vie est écoulée, lorsque son CN / ses SAN ne correspondent plus à la configuration, ou lorsqu'il ne correspond plus à sa clé privée.

Régénération uniquement au redémarrage

Un certificat auto-signé n'est jamais renouvelé pendant que le serveur tourne. Dès qu'il a dépassé 50 % de sa durée de vie, l'en-tête affiche Certificat TLS : REDÉMARRAGE REQUIS, le bandeau de redémarrage apparaît sur toutes les pages et la page Appliquer & redémarrer liste le certificat comme modification en attente (auteur Système). Redémarrez le serveur pour le régénérer.

Sans redémarrage, le certificat actuel continue d'être servi jusqu'à son expiration ; les agents IA rejettent alors la connexion TLS. Le redémarrage suivant le régénère. Un certificat régénéré est un nouveau certificat : les agents qui font explicitement confiance à l'ancien doivent faire confiance au nouveau.

Certificat signé par une AC
  1. Cliquez sur Voir / Éditer sur MCP_TLS_CSR_FILE, puis Générer le CSR… : un aperçu affiche le sujet et les SAN, que l'on peut retirer ou ajouter pour cette demande uniquement.
  2. Faites signer le CSR par votre AC.
  3. Importez le certificat signé sur la page MCP_TLS_CERT_FILE. Il remplace le certificat auto-signé (la clé privée est conservée) et le CSR consommé est supprimé.
  4. Appliquez & redémarrez.

Un certificat signé par une AC n'est jamais écrasé ni renouvelé par Tolk. Au démarrage, un certificat signé par une AC expiré est bloquant pour le serveur MCP (l'écouteur de l'interface d'administration est désactivé à la place). Pour revenir à un certificat auto-signé, utilisez Supprimer certificat + clé : une nouvelle paire auto-signée est générée au prochain redémarrage.

Recommandé en production

Un certificat signé par une AC supprime les avertissements de confiance TLS sur les agents IA et est fortement recommandé pour tout déploiement de production.

État des certificats

Le tableau de bord (zone Sécurité), la page Système & reload et l'en-tête appliquent la même règle, pour les deux certificats et les deux types :

  • 🟢 OK — moins de 50 % de la durée de vie écoulée ;
  • 🟠 Renouvellement recommandé — plus de 50 % écoulés (auto-signé : redémarrage requis, le redémarrage le régénère ; signé par une AC : générez un nouveau CSR et installez le certificat re-signé) ;
  • 🔴 Expiré.

Admin UI

Général

Clé Description Défaut
ADMIN_UI_ENABLED Interrupteur principal de toute l'interface web d'administration (0 = le port HTTPS dédié n'est pas ouvert). 1
ADMIN_UI_DEFAULT_LANGUAGE Langue de l'interface avant connexion : en ou fr. en

Désactiver l'interface d'administration

Avec ADMIN_UI_ENABLED à 0, le port d'administration est fermé après le redémarrage et l'interface Web n'est plus accessible.

Transport

Clé Description Défaut
ADMIN_UI_HOST Adresse d'écoute de l'interface d'administration dans le conteneur. Doit rester 0.0.0.0 pour le mappage de ports Docker (avec 127.0.0.1 ou une IP de l'hôte, l'interface d'administration est injoignable depuis l'extérieur du conteneur) ; restreindre l'accès via le pare-feu de l'hôte et ADMIN_UI_TRUSTED_IPS. 0.0.0.0
ADMIN_UI_PORT Port HTTPS dédié de l'interface d'administration (doit différer de MCP_SERVER_PORT). 9443
ADMIN_UI_TRUSTED_IPS Liste blanche d'accès (CIDR séparés par des virgules) évaluée sur l'IP du client (IP de la socket TCP, ou X-Forwarded-For derrière un proxy listé dans TRUSTED_PROXY_IPS). Vide = tout refuser. 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

Loopback toujours autorisé

127.0.0.1/32 est toujours autorisé, même s'il n'est pas listé dans ADMIN_UI_TRUSTED_IPS (contrôle de santé du conteneur et récupération locale).

Protection anti brute-force

Clé Description Défaut
ADMIN_UI_LOGIN_LOCKOUT_MINUTES Durée (en minutes) du blocage après trop de connexions admin échouées. 15
ADMIN_UI_LOGIN_MAX_ATTEMPTS Nombre de connexions admin échouées autorisées avant blocage temporaire. 5
ADMIN_UI_LOGIN_WINDOW_SECONDS Fenêtre glissante (en secondes) sur laquelle les connexions admin échouées sont comptées. 300

Politique de mot de passe

Clé Description Défaut
ADMIN_UI_PWD_MIN_LENGTH Longueur minimale des mots de passe admin (12 recommandé au minimum). 12
ADMIN_UI_PWD_REQUIRE_COMPLEXITY Exige des types de caractères variés dans les mots de passe admin (1 = activé, 0 = désactivé). 1
ADMIN_UI_PWD_BCRYPT_COST Facteur de coût bcrypt (log2 du nombre de tours) des mots de passe des comptes admin, appliqué quand un mot de passe est défini (changement, création de compte, réinitialisation, admin_set_password.py). Chaque +1 double le temps de hachage, y compris à chaque connexion (≈ 0,2 s à 12, 0,8 s à 14). Les mots de passe existants conservent leur coût jusqu'à leur changement. Plage 4 à 16. Ne s'applique pas aux secrets OAuth des clients. 12

Session

Clé Description Défaut
ADMIN_UI_SESSION_IDLE_MINUTES Délai d'inactivité (en minutes) avant expiration automatique d'une session admin. 15
ADMIN_UI_SESSION_REMEMBER_DAYS Durée (en jours) d'une session persistante lorsque « Rester connecté » est coché. 7
ADMIN_UI_SESSION_TTL_MINUTES Durée de vie maximale d'une session admin, en minutes. 30
ADMIN_UI_SESSION_SECRET_FILE Chemin du secret de signature des cookies de session admin (créé automatiquement s'il est absent). ./secrets/admins/sessions.key

TLS

Clé Description Défaut
ADMIN_UI_TLS_REUSE_MCP_CERT Réutilise le certificat TLS du MCP sur le port d'admin (1) ou sert un certificat dédié (0). 1
ADMIN_UI_TLS_CSR_FILE Chemin du CSR pour obtenir un certificat admin signé par une CA. Généré depuis l'admin UI et signé avec la clé privée de l'admin UI (la clé est conservée). ./secrets/admins/admin-ui.csr
ADMIN_UI_TLS_KEY_FILE Clé privée du certificat dédié de l'admin (utilisée seulement si reuse=0). ./secrets/admins/admin-ui.key
ADMIN_UI_TLS_CERT_FILE Certificat dédié de l'interface d'administration, auto-signé ou signé par une AC (utilisé seulement si ADMIN_UI_TLS_REUSE_MCP_CERT vaut 0). ./secrets/admins/admin-ui.crt
ADMIN_UI_TLS_ALLOWED_HOSTS SAN supplémentaires du certificat dédié de l'interface d'administration (hôte[:port] séparés par des virgules). Vide = reprend MCP_SERVER_SECURITY_ALLOWED_HOSTS. (vide)
ADMIN_UI_TLS_SELFSIGNED_VALIDITY_DAYS Durée de validité (en jours) du certificat auto-signé de l'interface d'administration. 365

Par défaut, l'interface d'administration réutilise le certificat du serveur MCP. Avec ADMIN_UI_TLS_REUSE_MCP_CERT à 0, elle présente son propre certificat, géré comme celui du MCP (voir Certificats TLS).

Autres

Clé Description Défaut
ADMIN_UI_HELP_LINK URL ouverte par l'icône d'aide (?) de la page de connexion et du menu latéral (http:// ou https://). Pointez-la vers un miroir interne de la documentation sur les sites isolés. https://tolk.sourdeau.com
ADMIN_UI_PROMPTS_EDITOR_ENABLED Éditeur de prompts personnalisés : 1 = modifiable depuis l'interface Web, 0 = lecture seule. 1
ADMIN_UI_SEASONAL_EFFECTS Animation décorative de la page de connexion : off, auto (thème saisonnier selon la date) ou un thème forcé (snow, christmas, spring, summer, autumn). auto

Modèle d'affichage des identifiants client

La carte Modèle d'affichage des identifiants client définit le texte affiché par Voir les identifiants sur la page Clients (informations de connexion à transmettre à un client). Variables : {server_name}, {server_url}, {client_id}, {jwt_token}, {oauth_client_secret}.


Logging

Général

Clé Description Défaut
LOGGING_LEVEL Niveau minimal de journalisation : debug, info, warning, error ou critical. info
LOGGING_DIR Répertoire d'écriture des fichiers de journalisation. ./logs/
LOGGING_ENCODING_FORMAT Encodage de caractères des fichiers de log (ex. utf-8). utf-8

Niveau debug

debug est très verbeux et signalé par une icône d'avertissement dans l'interface Web. Ne l'utilisez que pour le dépannage.

Rotation des logs applicatifs

Clé Description Défaut
LOGGING_ROTATE_FILES Nombre d'archives de journal applicatif à conserver après rotation. 3
LOGGING_ROTATE_SIZE Taille (en octets) déclenchant la rotation du journal applicatif. 5_000_000

Rotation des logs d'audit

Clé Description Défaut
LOGGING_AUDIT_ROTATE_FILES Nombre d'archives de journal d'audit à conserver après rotation. 10
LOGGING_AUDIT_ROTATE_SIZE Taille (en octets) déclenchant la rotation du journal d'audit. 10_000_000

Journalisation console

Clé Description Défaut
LOGGING_CONSOLE_ENABLED Active la sortie des journaux en console (1 = activé, 0 = désactivé). 0
LOGGING_COLORED_CRITICAL Couleur ANSI des lignes CRITICAL dans la sortie console. bold_red
LOGGING_COLORED_DEBUG Couleur ANSI des lignes DEBUG dans la sortie console. cyan
LOGGING_COLORED_ERROR Couleur ANSI des lignes ERROR dans la sortie console. red
LOGGING_COLORED_INFO Couleur ANSI des lignes INFO dans la sortie console. green
LOGGING_COLORED_WARNING Couleur ANSI des lignes WARNING dans la sortie console. yellow

Autres

Clé Description Défaut
LOGGING_SHOW_TECH_BACKUP_RETENTION Conservation des archives show-tech, en jours (0 = jamais purgées). 30

Backup

Les sauvegardes sont chiffrées (AES-256-GCM + RSA OAEP) et peuvent aussi être lancées et restaurées depuis la page Sauvegarde / Restauration. Voir Sauvegarde & Restauration pour le modèle de chiffrement et la procédure de restauration.

Général

Clé Description Défaut
BACKUP_ENABLED Active les sauvegardes périodiques automatiques (1 = activé, 0 = désactivé). 1
BACKUP_DIR Répertoire local de stockage des archives de sauvegarde. ./backups/
BACKUP_INTERVAL_HOURS Intervalle entre deux sauvegardes automatiques, en heures. 168
BACKUP_RETENTION Nombre d'archives de sauvegarde locales à conserver. 4
BACKUP_EXCLUDE_DIRS Répertoires (relatifs à la racine du projet) exclus des sauvegardes, séparés par des virgules. ./backups/,./.git/,./__pycache__/,./.venv/,./dist/,./build/

Export SFTP de sauvegarde

Après chaque sauvegarde locale, l'archive peut être envoyée vers un serveur SFTP distant.

Un répertoire distant par serveur Tolk

Si plusieurs serveurs Tolk exportent vers le même serveur SFTP, chacun doit utiliser son propre répertoire ou sous-répertoire dans BACKUP_SFTP_REMOTE_PATH (p. ex. /backups/tolk-1/, /backups/tolk-2/). Ne partagez jamais un répertoire distant entre deux serveurs Tolk.

Clé Description Défaut
BACKUP_SFTP_HOST Nom d'hôte du serveur SFTP pour l'export des sauvegardes (vide = export SFTP désactivé). (vide)
BACKUP_SFTP_PORT Port TCP du serveur SFTP (défaut 22). 22
BACKUP_SFTP_AUTH Méthode d'authentification SFTP pour l'export distant : key (clé) ou password (mot de passe). key
BACKUP_SFTP_USER Nom d'utilisateur pour la connexion d'export SFTP. (vide)
BACKUP_SFTP_PASSWORD_ENC Mot de passe SFTP (si BACKUP_SFTP_AUTH vaut password), stocké chiffré. À saisir via le lien Définir le mot de passe. (vide)
BACKUP_SFTP_KEY_FILE Clé privée SSH utilisée pour l'export SFTP (si BACKUP_SFTP_AUTH vaut key). ./secrets/backup_ssh_key
BACKUP_SFTP_REMOTE_PATH Répertoire de destination sur le serveur SFTP, dédié à ce serveur Tolk. /backups/tolk/
BACKUP_SFTP_RETENTION Nombre d'archives de sauvegarde à conserver sur le serveur SFTP. 52
BACKUP_SFTP_KNOWN_HOSTS Fichier OpenSSH known_hosts qui épingle la clé d'hôte du serveur SFTP (obligatoire avant le premier transfert). ./secrets/sftp_known_hosts

Faire d'abord confiance à la clé d'hôte du serveur SFTP

Sans entrée pour le serveur dans BACKUP_SFTP_KNOWN_HOSTS, aucun transfert n'a jamais lieu : le transfert s'interrompt avant l'envoi de tout identifiant (anti-MITM). Cliquez sur Voir / Éditer sur BACKUP_SFTP_KNOWN_HOSTS, puis Récupérer les clés du serveur : les clés d'hôte de BACKUP_SFTP_HOST / BACKUP_SFTP_PORT sont récupérées (sans authentification) avec leurs empreintes SHA-256. Vérifiez les empreintes par un autre canal auprès de l'administrateur SFTP, puis cliquez sur Enregistrer.

Réglez BACKUP_SFTP_AUTH sur key. Cliquez sur Voir / Éditer sur BACKUP_SFTP_KEY_FILE pour générer la clé (Régénérer la clé) ou la remplacer, puis autorisez la clé publique correspondante sur le serveur SFTP.

Réglez BACKUP_SFTP_AUTH sur password, puis cliquez sur Définir le mot de passe sur la ligne BACKUP_SFTP_PASSWORD_ENC. Le mot de passe est chiffré avec la clé du serveur ; il n'est jamais stocké en clair.

Autres sauvegardes

Instantanés pris automatiquement par l'interface Web avant une modification.

Clé Description Défaut
BACKUP_ADMIN_UI_ENV_BACKUP_RETENTION Nombre maximal d'instantanés de la configuration conservés (un instantané est pris avant chaque modification). 16
BACKUP_ADMIN_UI_CERT_BACKUP_RETENTION Nombre maximal d'instantanés de certificat, clé et CSR conservés par fichier dans le répertoire backups/certificates. 16
BACKUP_ADMIN_UI_RSA_BACKUP_RETENTION Nombre maximal d'instantanés de la paire de clés RSA du serveur (AUTH_RSA) conservés par fichier de clé dans le répertoire backups/rsa_keys. 16

Rate limiting

En plus des limites par client définies dans chaque profil client, une limite globale optionnelle (tous clients confondus) protège chaque nœud Cisco. Elle est comptée par hôte de destination et par service, après le contrôle par client. Les plafonds par produit se trouvent sur la page Produits.

Général

Clé Description Défaut
RATELIMIT_GLOBAL_ENABLED Interrupteur principal du limiteur de débit global (tous clients). true
RATELIMIT_WINDOW_SECONDS Durée de la fenêtre du limiteur global, en secondes (défaut 60). 60

Commun

Clé Description Défaut
RATELIMIT_GLOBAL_COMMON_REPORT Plafond global (requêtes par fenêtre, tous clients confondus) pour l'écriture de rapports. 120

Sémantique par destination

Chaque plafond s'applique par hôte de destination : chaque nœud Cisco dispose de son propre budget. 0 désactive le plafond global pour ce service. Un rejet global émet une ligne d'audit RATE_LIMITED_GLOBAL et incrémente mcp_global_rate_limit_hits_total.

Pool SSH

Les sessions SSH vers les nœuds Cisco sont mutualisées et réutilisées.

Clé Description Défaut
SSH_POOL_MAX_SESSIONS_PER_HOST Plafond strict de sessions SSH simultanées ouvertes par le pool vers chaque nœud de destination. Les commandes au-delà sont mises en file jusqu'à libération d'une session (défaut : 3). 3
SSH_POOL_ACQUIRE_TIMEOUT Nombre maximal de secondes qu'une commande en file attend une session SSH libre avant d'échouer en pool timeout (défaut : 120). 120
SSH_POOL_IDLE_TTL Secondes pendant lesquelles une session SSH inactive est conservée dans le pool avant fermeture par le reaper (défaut : 300). 300
SSH_POOL_HEALTH_CHECK_TIMEOUT Secondes pour sonder une session SSH réutilisée (attente du prompt admin) avant de la déclarer non saine (défaut : 5). 5

Reports

Graphiques

Clé Description Défaut
REPORT_CHARTS_COLORS Palette de couleurs (séparées par des virgules) utilisée pour les graphiques des rapports générés. PASS=#78F5AE,WARN=#FFBE54,FAIL=#FF6F61,INFO=#69C2FF,N/A=#BACCCC

Limites de taille

Clé Description Défaut
REPORT_MAX_CHUNK_BYTES Taille maximale de contenu par appel write_report ; au-delà, le contenu est tronqué. 204800
REPORT_MAX_FILE_SIZE_BYTES Taille maximale d'un fichier de rapport avant découpage automatique en une nouvelle partie. 2097152
REPORT_RESUME_TAIL_BYTES Nombre d'octets de fin renvoyés lors de la reprise d'une écriture de rapport. 8192
REPORT_RETENTION_DAYS Nombre de jours de conservation des rapports clients avant purge automatique (0 désactive la purge). 30

Produits

Menu Produits. Un onglet par produit activé par la licence (les produits hors licence sont grisés). Ces paramètres s'appliquent à tous les nœuds du produit.

Serveurs Cisco UC et identifiants

Les nœuds Cisco UC et leurs identifiants ne se configurent pas sur cette page : ils sont stockés chiffrés par client MCP, via les outils *_store_credentials appelés par l'agent IA (voir Référence).

CUCM

AXL (SOAP)

Clé Description Défaut
SERVER_CUCM_AXL_PORT Port TCP de l'API SOAP AXL du CUCM (typiquement 8443). 8443
SERVER_CUCM_AXL_SCHEMAS_DIR Répertoire local des schémas WSDL/XSD AXL du CUCM. ./servers-data/cucm/axl-schemas/
SERVER_CUCM_AXL_WSDL_TIMEOUT Délai HTTP de téléchargement du WSDL AXL du CUCM, en secondes. 10

RIS (RisPort)

Clé Description Défaut
SERVER_CUCM_RIS_MAX_DEVICE_NAMES Nombre maximal de noms de devices acceptés par appel cucm_risport_query, tous résolus en une seule requête RisPort ; au-delà, la liste doit être découpée en lots. 1000
SERVER_CUCM_RIS_PORT Port TCP de l'API RisPort (temps réel) du CUCM. 8443
SERVER_CUCM_RIS_SCHEMAS_DIR Répertoire local des schémas WSDL/XSD RisPort du CUCM. ./servers-data/cucm/ris-schemas/
SERVER_CUCM_RIS_WSDL_TIMEOUT Délai HTTP de téléchargement du WSDL RisPort du CUCM, en secondes. 15

Téléphones IP

Clé Description Défaut
SERVER_CUCM_PHONES_ENABLED Charge le sous-module CUCM Téléphones IP (outils cucm_phone_* et prompt de procédure téléphone) : 1 = chargé (défaut), 0 = non chargé. Appliqué au redémarrage. 1
SERVER_CUCM_PHONES_SSL_CA_BUNDLE Magasin de confiance utilisé pour les téléphones IP si SERVER_CUCM_PHONES_SSL_VERIFY vaut True (p. ex. AC émettrice CAPF / LSC). ./servers-data/cucm/certs-trust-store-phones/
SERVER_CUCM_PHONES_SSL_VERIFY Vérifie la chaîne du certificat HTTPS des téléphones IP avec le magasin de confiance téléphones (nom d'hôte non vérifié : téléphones joints par IP). False
SERVER_CUCM_PHONE_CAMPAIGN_RETENTION_DAYS Jours de conservation des journaux des campagnes de mise à jour des téléphones IP terminées ou jamais démarrées, avant la purge nocturne (03:15). Une campagne en cours ou suspendue n'est jamais purgée. 0 = jamais purgés. 30
SERVER_CUCM_PHONE_MESSAGE_CONCURRENCY Nombre maximal de terminaux contactés en parallèle lors d'un même appel cucm_phone_send_message. 10
SERVER_CUCM_PHONE_MESSAGE_MAX_TARGETS Nombre maximal de terminaux acceptés par appel cucm_phone_send_message ; au-delà, la liste doit être découpée en lots. 50
SERVER_CUCM_PHONE_MESSAGE_TIMEOUT Délai HTTP d'envoi d'un message texte à un téléphone IP Cisco 88xx/98xx, en secondes. 10
SERVER_CUCM_PHONE_SCREENSHOT_TIMEOUT Délai HTTP de capture d'écran d'un téléphone CUCM, en secondes. 10
SERVER_CUCM_PHONE_WEB_BATCH_TIMEOUT Budget de temps d'un appel cucm_phone_web_info avec ip_phones, en secondes : les téléphones et pages non commencés dans ce délai sont signalés comme non lus. 120
SERVER_CUCM_PHONE_WEB_CONCURRENCY Nombre maximal de téléphones lus en parallèle lors d'un même appel cucm_phone_web_info avec ip_phones (les pages d'un téléphone sont toujours lues séquentiellement). 5
SERVER_CUCM_PHONE_WEB_MAX_TARGETS Nombre maximal de téléphones acceptés par appel cucm_phone_web_info avec ip_phones ; les listes plus longues doivent être découpées en lots. 20
SERVER_CUCM_PHONE_WEB_TIMEOUT Délai HTTP de lecture d'une page d'information web d'un téléphone IP Cisco 88xx/98xx (cucm_phone_web_info), en secondes. 10

Codecs RoomOS

Clé Description Défaut
SERVER_CUCM_ROOMOS_CAMPAIGN_RETENTION_DAYS Jours de conservation des journaux des campagnes de mise à jour RoomOS terminées ou jamais démarrées, avant la purge nocturne (03:15). Une campagne en cours ou suspendue n'est jamais purgée. 0 = jamais purgés. 30
SERVER_CUCM_ROOMOS_ENABLED Charge le sous-module CUCM RoomOS (outils cucm_roomos_*, prompt de procédure RoomOS et référence xAPI) : 1 = chargé (défaut), 0 = non chargé. Appliqué au redémarrage. 1
SERVER_CUCM_ROOMOS_MESSAGE_CONCURRENCY Nombre maximal de codecs contactés en parallèle lors d'un même appel cucm_roomos_send_message. 10
SERVER_CUCM_ROOMOS_MESSAGE_MAX_TARGETS Nombre maximal de codecs acceptés par appel cucm_roomos_send_message ; au-delà, la liste doit être découpée en lots. 50
SERVER_CUCM_ROOMOS_SSL_CA_BUNDLE Magasin de confiance utilisé pour les codecs RoomOS si SERVER_CUCM_ROOMOS_SSL_VERIFY vaut True (p. ex. AC émettrice CAPF / LSC). ./servers-data/cucm/certs-trust-store-roomos/
SERVER_CUCM_ROOMOS_SSL_VERIFY Vérifie la chaîne du certificat HTTPS des codecs RoomOS avec le magasin de confiance RoomOS (nom d'hôte non vérifié : codecs joints par IP). False
SERVER_CUCM_ROOMOS_TIMEOUT Délai HTTP d'une requête xAPI (getxml/putxml) vers un codec RoomOS, en secondes. 10

Sous-modules CUCM

Les téléphones IP et les codecs RoomOS sont deux sous-modules CUCM optionnels. Un sous-module désactivé (SERVER_CUCM_PHONES_ENABLED / SERVER_CUCM_ROOMOS_ENABLED = 0) ne charge aucun de ses outils, prompts ou ressources, et ses paramètres sont grisés. Une modification nécessite un redémarrage.

Vérification des certificats des terminaux

La vérification des certificats est désactivée par défaut pour les téléphones et les codecs : ils sont joints par adresse IP et présentent généralement un certificat constructeur (MIC) ou auto-signé. Lorsque *_SSL_VERIFY vaut True, la chaîne du certificat est vérifiée avec le magasin de confiance du sous-module (pas le nom d'hôte). Ajoutez les AC émettrices (émetteur CAPF / LSC, AC d'entreprise) via Voir / Éditer sur SERVER_CUCM_PHONES_SSL_CA_BUNDLE / SERVER_CUCM_ROOMOS_SSL_CA_BUNDLE. La sécurité repose aussi sur l'isolation VLAN des terminaux, les identifiants HTTP et l'obtention de l'IP du terminal depuis CUCM (RIS/AXL).

SSH / CLI

Clé Description Défaut
SERVER_CUCM_SSH_PORT Port TCP du SSH CUCM (CLI admin OS), typiquement 22. 22
SERVER_CUCM_SSH_TERM Type de terminal annoncé pour les sessions SSH CUCM (ex. vt100). dumb
SERVER_CUCM_SSH_TERM_HEIGHT Hauteur (lignes) du pseudo-terminal des sessions SSH CUCM. 50
SERVER_CUCM_SSH_TERM_WIDTH Largeur (colonnes) du pseudo-terminal des sessions SSH CUCM. 220
SERVER_CUCM_SSH_TIMEOUT Délai des commandes SSH CUCM, en secondes. 120

Timeout SSH

Le timeout SSH vaut 120 secondes par défaut sur tous les produits : certaines commandes (p. ex. l'état du cluster sur CUCM) mettent du temps à répondre.

TLS / certificats

Clé Description Défaut
SERVER_CUCM_SSL_CA_BUNDLE Magasin de confiance utilisé pour vérifier le certificat CUCM (AC privée ou certificats du produit). ./servers-data/cucm/certs-trust-store/
SERVER_CUCM_SSL_VERIFY Vérifie le certificat TLS du CUCM. True recommandé ; False (labo uniquement) expose le trafic au MITM et journalise un événement CRITICAL. True

AC privée pour les connexions Cisco UC

Pour faire confiance à une AC interne (ou aux certificats du produit) pour les connexions AXL / RIS / CUPI, cliquez sur Voir / Éditer sur SERVER_<PRODUIT>_SSL_CA_BUNDLE et collez les certificats PEM. Passer SERVER_<PRODUIT>_SSL_VERIFY à False est réservé aux labos (exposition au MITM, événement CRITICAL journalisé).

SOAP (Zeep)

Clé Description Défaut
SERVER_CUCM_ZEEP_TIMEOUT Délai du transport SOAP Zeep pour CUCM AXL/RisPort, en secondes. 30

Limitation de débit

Plafonds globaux par nœud CUCM, tous clients confondus (voir Rate limiting).

Clé Description Défaut
RATELIMIT_GLOBAL_CUCM_AXL Plafond global (tous clients confondus) pour les appels CUCM AXL par hôte de destination. 500
RATELIMIT_GLOBAL_CUCM_PHONE Plafond global pour les appels CUCM téléphone (capture/web) par hôte de destination. 500
RATELIMIT_GLOBAL_CUCM_RIS Plafond global pour les appels CUCM RisPort par hôte de destination. 300
RATELIMIT_GLOBAL_CUCM_ROOMOS Plafond global pour les appels xAPI vers les codecs RoomOS, par hôte CUCM (tous clients confondus). 500
RATELIMIT_GLOBAL_CUCM_SSH Plafond global pour les sessions SSH CUCM par hôte de destination. 60

IMP

AXL (SOAP)

Clé Description Défaut
SERVER_IMP_AXL_PORT Port TCP de l'API SOAP AXL de l'IM&P. 8443
SERVER_IMP_AXL_SCHEMAS_DIR Répertoire local des schémas WSDL/XSD AXL de l'IM&P. ./servers-data/imp/axl-schemas/
SERVER_IMP_AXL_WSDL_TIMEOUT Délai HTTP de téléchargement du WSDL AXL de l'IM&P, en secondes. 10

SSH / CLI

Clé Description Défaut
SERVER_IMP_SSH_PORT Port TCP du SSH IM&P (CLI admin OS), typiquement 22. 22
SERVER_IMP_SSH_TERM Type de terminal annoncé pour les sessions SSH IM&P. dumb
SERVER_IMP_SSH_TERM_HEIGHT Hauteur (lignes) du pseudo-terminal des sessions SSH IM&P. 50
SERVER_IMP_SSH_TERM_WIDTH Largeur (colonnes) du pseudo-terminal des sessions SSH IM&P. 220
SERVER_IMP_SSH_TIMEOUT Délai des commandes SSH IM&P, en secondes. 120

TLS / certificats

Clé Description Défaut
SERVER_IMP_SSL_CA_BUNDLE Magasin de confiance utilisé pour vérifier le certificat IM&P (AC privée ou certificats du produit). ./servers-data/imp/certs-trust-store/
SERVER_IMP_SSL_VERIFY Vérifie le certificat TLS de l'IM&P. True recommandé ; False (labo uniquement) expose le trafic au MITM et journalise un événement CRITICAL. True

SOAP (Zeep)

Clé Description Défaut
SERVER_IMP_ZEEP_TIMEOUT Délai du transport SOAP Zeep pour IM&P AXL, en secondes. 30

Limitation de débit

Clé Description Défaut
RATELIMIT_GLOBAL_IMP_AXL Plafond global pour les appels IM&P AXL par hôte de destination. 300
RATELIMIT_GLOBAL_IMP_SSH Plafond global pour les sessions SSH IM&P par hôte de destination. 60

CUC

CUPI (messagerie)

Clé Description Défaut
SERVER_CUC_CUPI_PORT Port TCP de l'API REST CUPI du CUC (provisioning Unity). 8443
SERVER_CUC_CUPI_TIMEOUT Délai HTTP des appels REST CUPI du CUC, en secondes. 30

SSH / CLI

Clé Description Défaut
SERVER_CUC_SSH_PORT Port TCP du SSH CUC (CLI admin OS), typiquement 22. 22
SERVER_CUC_SSH_TERM Type de terminal annoncé pour les sessions SSH CUC. dumb
SERVER_CUC_SSH_TERM_HEIGHT Hauteur (lignes) du pseudo-terminal des sessions SSH CUC. 50
SERVER_CUC_SSH_TERM_WIDTH Largeur (colonnes) du pseudo-terminal des sessions SSH CUC. 220
SERVER_CUC_SSH_TIMEOUT Délai des commandes SSH CUC, en secondes. 120

TLS / certificats

Clé Description Défaut
SERVER_CUC_SSL_CA_BUNDLE Magasin de confiance utilisé pour vérifier le certificat CUC (AC privée ou certificats du produit). ./servers-data/cuc/certs-trust-store/
SERVER_CUC_SSL_VERIFY Vérifie le certificat TLS du CUC. True recommandé ; False réservé au labo/dev. True

Limitation de débit

Clé Description Défaut
RATELIMIT_GLOBAL_CUC_CUPI Plafond global pour les appels REST CUC CUPI par hôte de destination. 300
RATELIMIT_GLOBAL_CUC_SSH Plafond global pour les sessions SSH CUC par hôte de destination. 60

Prompts personnalisés

Menu Prompts personnalisés. Un onglet par produit sous licence (CUCM, IMP, CUC). Chaque prompt est une consigne réutilisable publiée aux agents IA sous forme de prompt MCP.

Champ Description
Nom Identifiant unique : minuscules, chiffres, tirets bas
Titre Titre d'affichage optionnel
Description Texte visible par les clients MCP
Étiquettes Optionnelles, séparées par des virgules (p. ex. audit, security)
Contenu du prompt Texte de la consigne
Activé Publié ou non
Ajouter la synthèse de fin de workflow commune Ajoute la synthèse client commune à la fin du prompt (voir ci-dessous)
  • Ajouter un prompt personnalisé, modifier, activer / désactiver ou supprimer un prompt depuis la liste.
  • Charger un fichier de définition de prompts : importez des prompts depuis un fichier .json (ou un contenu collé) et cochez ceux à ajouter ; les prompts existants sont ignorés.
  • Synthèse de fin de workflow : une fois cochée ("summary": true dans le fichier .json), un modèle commun est ajouté au prompt. L'agent IA termine alors le workflow — succès, échec, interruption ou rien à faire — par une courte synthèse client : opération, référence / dates, résultat global (✅ / ⚠️ / ❌ / ⏸️ / ➖), chiffres clés, modifications, points d'attention, actions restantes, retour arrière. Une forme courte (opération, résultat, modifications, retour arrière) est utilisée pour les opérations sur un seul objet. Placez le contenu propre au workflow (contenu de chaque ligne, emplacement de la synthèse) dans une section ## Summary specifics du corps du prompt. Une étiquette Synthèse signale ces prompts dans la liste.
  • Les modifications s'appliquent après un redémarrage.
  • Avec ADMIN_UI_PROMPTS_EDITOR_ENABLED à 0 (onglet Admin UI), les prompts sont en lecture seule.

Administrateurs

Menu Administrateurs : comptes et droits d'accès de l'interface Web d'administration. Les modifications prennent effet immédiatement.

Comptes

Champ Description
Identifiant Nom du compte
Mot de passe Soumis à la politique de mot de passe (ADMIN_UI_PWD_*)
Profil Profil d'administrateur (voir l'onglet Profils)
Verrouillé Un compte verrouillé ne peut pas se connecter
Changer le mot de passe à la prochaine connexion Impose un nouveau mot de passe à la prochaine connexion
  • Ajouter un compte, modifier, verrouiller ou supprimer un compte ; Réinitialiser le mot de passe définit un mot de passe temporaire à changer à la prochaine connexion.
  • Vous ne pouvez ni verrouiller ni supprimer votre propre compte, ni supprimer le dernier compte superadmin.
  • Le premier mot de passe superadmin est défini en ligne de commande à l'installation (voir Démarrage).

Profils

Un profil fixe un niveau d'accès pour chaque page de l'interface Web : aucun accès, lecture seule (RO) ou lecture-écriture (RW).

  • superadmin est intégré, dispose du RW sur toutes les pages et n'est pas modifiable.
  • Ajouter un profil crée un nouveau profil ; un profil encore attribué à un compte ne peut pas être supprimé.

Clients

Menu Clients : les clients MCP (agents IA, scripts) et leurs profils RBAC. Les modifications des clients sont mises en attente et s'appliquent après Appliquer & redémarrer.

Comptes

Champs d'un client

Champ Règles
Nom Identifiant unique, utilisé comme client_id et comme nom du répertoire du client. Lettres, chiffres et tirets.
Sujet Claim JWT sub. Format recommandé : sub-<nom>-AAAAMMJJ.
Profil Profil RBAC du client (voir l'onglet Profils).
Mode d'authentification jwt, oauth2 ou jwt+oauth2. Affiché seulement si AUTH_MODE vaut jwt+oauth2 ; sinon le client utilise le mode global.

Immuabilité du sujet

Le sujet est intégré dans chaque jeton JWT émis. Le modifier invalide tous les jetons déjà distribués. Choisissez-le avec soin avant de distribuer les jetons.

Identifiants

  • Après le redémarrage qui crée un client (ou après Réinitialiser les tokens), un bouton Voir les identifiants affiche une seule fois les informations de connexion : URL du serveur, client_id, jeton JWT et/ou client_secret OAuth, mis en forme avec le modèle d'affichage. Copiez-les et transmettez-les de manière sécurisée au client.
  • Réinitialiser les tokens révoque immédiatement le jeton JWT courant et en génère un nouveau. Les jetons d'accès OAuth déjà émis expirent d'eux-mêmes.

Cycle de vie des clients

À chaque démarrage, le serveur synchronise les répertoires des clients avec les clients déclarés :

Condition Action
Nouveau client Répertoire créé, identifiants générés
Client existant, jeton valide Aucune action
Client existant, jeton invalide (expiré, signature invalide, claims modifiés) Jeton renouvelé automatiquement
Client supprimé Répertoire purgé

Purge automatique

Supprimer un client puis redémarrer supprime définitivement son répertoire, y compris ses rapports et ses identifiants. Exportez d'abord les données utiles.

Profils

Un profil client définit les produits, opérations et commandes qu'un client peut utiliser, ainsi que ses limites de débit par client.

Profils prédéfinis

Profil Périmètre produits Opérations AXL Accès SSH Accès RIS Téléphone RoomOS xAPI Accès CUPI (CUC) Limites (req/min)
admin Tous Tous préfixes + SQL Update Toutes commandes Toutes classes d'équipement Screenshot, infos web, message Status, Configuration (lecture/écriture), toutes les Commands Tous les verbes (GET/POST/PUT/DELETE) 60 / 5 / 20 / 100 / 60 / 60
operator cucm, imp, cuc get, list + écriture phone + SQLQuery show uniquement Phone uniquement Screenshot, infos web, message Status, Configuration (lecture), Phonebook, Message, Standby GET + PUT ciblés (users, callhandlers) 30 / 5 / 20 / 100 / 30 / 30
auditor cucm, imp, cuc get, list + SQLQuery show + utils d'audit Toutes classes d'équipement Screenshot, infos web Status, Configuration (lecture), Phonebook Search GET /vmrest/ uniquement (lecture seule) 30 / 5 / 20 / 100 / 30 / 30

Colonnes des limites

Les colonnes de limites représentent : AXL / SSH / RIS / Téléphone / RoomOS / Commun (rapports), en requêtes par minute et par client.

Redémarrage des services CUCM (serviceability)

Seul admin accorde cucm_restart_feature_service (préfixe restart). Les feature services (Cisco Tftp, Cisco CallManager…) ne peuvent pas être redémarrés depuis la CLI VOS ; les services réseau / plateforme se redémarrent en CLI avec utils service restart <service> (permission SSH).

Opérations RoomOS sensibles

Les opérations RoomOS sensibles (réinitialisation usine, mise à jour logicielle, clés d'option, macros, HttpClient, gestion des utilisateurs, sécurité, provisioning, et les branches set Configuration correspondantes) apparaissent en tuiles rouges dans la liste RoomOS de chaque profil. Elles sont bloquées par défaut, même pour admin : une opération sous un préfixe sensible n'est autorisée que si ce préfixe (ou un préfixe plus fin) est accordé explicitement — cochez sa tuile pour l'autoriser.

Profils par défaut

Les profils prédéfinis sont installés au premier démarrage et ne sont plus jamais écrasés ensuite : vos modifications sont conservées lors des mises à jour.

Modifier un profil

  • Ajouter un profil crée un profil à partir d'un modèle (un profil prédéfini ou existant).
  • Dans l'éditeur, chaque permission est une tuile : vert = autorisé, rouge = refusé ; cliquez sur une tuile pour l'inverser. Un champ sous chaque liste ajoute des préfixes personnalisés (séparés par des virgules ou des retours à la ligne). Chaque service a sa propre limite de débit (requêtes par minute).
  • Comparer affiche les profils sélectionnés côte à côte.
  • Les modifications enregistrées s'appliquent sans redémarrage. Un profil encore attribué à un client ne peut pas être supprimé.

Règles de correspondance

Portée Règle Exemple
Préfixe AXL Toute opération commençant par le préfixe est autorisée list → autorise listPhone, listLine, listUser, …
AXL exact Correspondance exacte du nom d'opération uniquement executeSQLQuery → autorise uniquement cet appel
Préfixe SSH La commande doit être égale au préfixe ou commencer par <préfixe> (séparé par un espace) show → autorise show version, show interface, …
Filtres RIS Les classes d'équipement et statuts sont optionnels ; s'ils sont absents, aucun filtre n'est appliqué Phone → limite aux enregistrements de téléphones
Préfixe CUPI Appels CUPI autorisés — correspondance de préfixe sur <MÉTHODE> <chemin> (CUC uniquement) GET /vmrest/ → autorise tout GET sous /vmrest/
Préfixe RoomOS Opération xAPI get Status <chemin> / get Configuration <chemin> / set Configuration <chemin> / Command <chemin>, comparée nœud par nœud ; les préfixes sensibles (réinitialisation usine, macros, sécurité…) exigent une entrée explicite Command Phonebook → autorise Command Phonebook Search, Command Phonebook Contact Add, …
Préfixe Serviceability Opération sur feature service CUCM restart <nom du service>, insensible à la casse, mot par mot restart → tous les feature services ; restart Cisco Tftp → Cisco Tftp uniquement

Pas de section SSH

Si un profil n'accorde aucune permission SSH pour un produit, l'accès SSH est refusé pour ce produit.