Interface web Temporal (temporal-ui)
Interface web pour inspecter et piloter les workflows Temporal du Navin Control Plane : espaces de noms, workflows, files de tâches, planifications. Sans état, elle lit le frontend Temporal en gRPC.
Généré depuis catalog/services/temporal-ui.yaml : ne pas modifier à la main.
Résumé
| Version | 2.57.0 |
| Usage | installer et configurer |
| Couche | infrastructure (présentée à part) |
| Catégorie | Plateformes de données |
| Méthodes d'installation | binary, podman |
| Connexion externe | non |
| Réservé au bac à sable | non |
Licence
| Identifiant SPDX | MIT |
| Politique de licence | licence socle (MIT ou Apache-2.0) |
| Exception de licence | - |
| Composant de la plateforme | temporal-ui |
Paquets et artefacts
Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.
| Type | Paquet | Version | Licence | Détails |
|---|---|---|---|---|
| image de conteneur | docker.io/temporalio/ui | 2.57.0 | MIT | clé d'image ui, utilisée par ui, condensé sha256:d944f959d0923c35cd991a17a0edbe087770eff843724b181933e0cfdd563ab2 |
| archive binaire | ui-server_2.57.0_linux_amd64.tar.gz | 2.57.0 | MIT | https://github.com/temporalio/ui-server/releases/download/v2.57.0/ui-server_2.57.0_linux_amd64.tar.gz, x86_64, somme de contrôle sha256 |
Les images sont épinglées par étiquette dans le descripteur, et par condensé (digest) quand le descripteur en déclare un (le bundle hors ligne refuse alors une image téléchargée qui ne le porte pas) ; le condensé est enregistré dans le miroir du Manager à l'import du bundle hors ligne, et chaque téléchargement ou chargement est vérifié par rapport à lui.
Systèmes et architectures pris en charge
| Méthode | Systèmes d'exploitation | Architectures |
|---|---|---|
binary | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64 (architecture des artefacts du descripteur) |
podman | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64, aarch64 (non restreintes par le descripteur) |
Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.
Prérequis
Hôte
- au moins 256 Mo de mémoire (bloquant,
memory).
Réseau et ports
| Composant | Nom du port | Port | Ouvert dans le pare-feu de l'hôte |
|---|---|---|---|
ui | web | 8233/tcp | oui |
Services et connexions nécessaires
temporal:temporal.
Détail et résolution : voir Dépendances.
Méthodes et modes d'installation
| Méthode | Défaut | Ce que la méthode utilise |
|---|---|---|
binary | oui | les archives binaires du descripteur, décompressées dans le répertoire du service |
podman | - | les images de conteneur du descripteur, exécutées par Podman sous systemd |
Composants
| Composant | Type | Méthodes d'installation | Ports |
|---|---|---|---|
Serveur de l'interface web (ui) | maître | binary, podman | 8233/tcp |
Instance unique (single) (par défaut)
Un seul serveur d'interface, suffisant pour la plupart des installations.
Ce que le mode déploie :
| Composant | Placement |
|---|---|
ui | min 1, max 1 |
Répliqué (replicated)
Plusieurs serveurs sans état derrière le répartiteur de charge (HAProxy) ; indiquez l'URL publique du répartiteur.
Ce que le mode déploie :
| Composant | Placement |
|---|---|
ui | min 2, recommandé 2 |
Installer ce service
L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.
-
Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.
-
Choisissez le service. À l'étape Service, sélectionnez Interface web Temporal. La carte affiche la licence
MITet les dépendances dont l'installation a besoin. Choisissez la Méthode parmibinary,podman(par défautbinary). -
Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode :
single(par défaut),replicated. Chaque mode déploie les composants listés dans Méthodes et modes d'installation. -
Liez les dépendances. À l'étape Liaisons, choisissez pour chaque dépendance (
temporal) Installer avec la plateforme ou Utiliser une connexion existante ; une dépendance facultative peut rester sur Aucune liaison. -
Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.
-
Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.
-
Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services.
Haute disponibilité
| Cluster | réplicas (replication) |
| Haute disponibilité | externe (external) |
| Bascule | répartiteur (load-balancer) |
| Réplication | aucun (none) |
| Quorum | aucun (none) |
| Découverte | aucun (none) |
| Point d'entrée | répartiteur (load-balancer) |
| Documentation officielle | https://docs.temporal.io/references/web-ui-configuration |
Prérequis
| Prérequis | Doit être hautement disponible | Modes | Description |
|---|---|---|---|
temporal | oui | modes de niveau ha ou cluster | Temporal Server joignable en gRPC, lui-même hautement disponible. |
Topologie par mode
| Modes | Niveau le plus haut du catalogue | Répartition | Composant du quorum | Domaines de panne | Description |
|---|---|---|---|---|---|
single | autonome (standalone) | unique (single) | - | 1 | Une instance, sans tolérance aux pannes. |
replicated | ha (ha) | actif-actif (active-active) | - | 2 | Plusieurs serveurs sans état derrière HAProxy ; l'URL publique pointe vers le répartiteur. |
Paramètres de configuration
Réseau
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Port web (port) | port | 8233 | - | non | non | oui | Port de l'interface web et de son point de contrôle /healthz. |
TLS (tls_enabled) | bool | false | - | non | non | oui | Servir l'interface en TLS avec un certificat émis par l'autorité de la console. |
URL publique (public_url) | url | (vide) | - | non | non | non | Adresse utilisée par les opérateurs, par exemple le répartiteur de charge devant une interface répliquée. Vide : l'adresse de l'hôte. |
Origines supplémentaires (cors_origins) | list | [] | - | non | non | non | Autres origines autorisées à appeler l'interface (l'URL publique l'est toujours). (avancé) |
Affichage
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Espace de noms par défaut (default_namespace) | string | default | ^[A-Za-z0-9][A-Za-z0-9._-]{0,254}$ | non | non | non | Espace de noms ouvert en premier par l'interface. |
Lecture seule (read_only) | bool | false | - | non | non | non | Masquer toutes les actions d'écriture (arrêt, annulation, signal, réinitialisation, lancement) : les opérateurs ne peuvent qu'inspecter. |
Bannière d'environnement (banner_text) | string | (vide) | ^[A-Za-z0-9 ._-]{1,60}$ | non | non | non | Texte d'une bannière permanente, par exemple PRODUCTION (lettres, chiffres, espaces, points, tirets). Vide : aucune bannière. |
Couleur de la bannière (banner_color) | enum | warning | neutral, info, warning, success, danger, error, accent | non | non | non | Couleur prédéfinie de la bannière d'environnement. |
Authentification unique
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Connexion OIDC (oidc_enabled) | bool | false | - | non | non | non | Exiger une connexion OpenID Connect (Keycloak de la plateforme ou fournisseur d'identité de la banque). |
URL du fournisseur (oidc_provider_url) | url | (vide) | - | non | non | non | URL de l'émetteur du fournisseur OIDC, par exemple https://sso.bank.internal/realms/navin. |
Identifiant du client (oidc_client_id) | string | (vide) | - | non | non | non | Client enregistré pour l'interface auprès du fournisseur OIDC. |
Secret du client (oidc_client_secret) | password | - | - | non | oui | non | Secret du client OIDC (stocké scellé, écrit seulement dans un fichier lisible par le service). |
Dépendances
Pour chaque dépendance active, le Manager prend la première solution parmi : la liaison choisie dans l'assistant ; un service de la même installation qui la fournit ; un service déjà installé dans le cluster ; la seule connexion du type attendu. Sinon, une dépendance facultative reste non liée, et une dépendance obligatoire est ajoutée à l'installation dans son mode par défaut (la colonne ci-dessous nomme le service du catalogue ajouté).
| Liaison | Fournie par | Type de connexion | Point d'accès | Facultative | Quand rien n'est lié | Description |
|---|---|---|---|---|---|---|
temporal | temporal | - | frontend | non | temporal est ajouté à l'installation | Frontend Temporal (gRPC) que l'interface web lit et pilote. |
Points d'accès
| Point d'accès | Schéma | Composant | Port | Chemin | Paramètre TLS | Paramètres de liaison | Secrets de liaison | Commande de provisionnement |
|---|---|---|---|---|---|---|---|---|
web | http | ui | 8233 (port) | - | tls_enabled | - | - | - |
Contrôles de santé
Vivacité (par instance)
| Composant | Contrôle | Détails |
|---|---|---|
ui | HTTP {{ ('https://' ~ host.fqdn) if config.tls_enabled else ('http://' ~ (host.ip or '127.0.0.1')) }}:{{ config.port }}/healthz | Attendu 200 ; 30 tentatives ; intervalle 2 s ; délai 3 s |
Disponibilité (contrôle du service)
| Contrôle | Détails |
|---|---|
HTTP {{ ('https://' ~ host.fqdn) if config.tls_enabled else ('http://' ~ (host.ip or '127.0.0.1')) }}:{{ config.port }}/healthz | Attendu 200 ; Attendu OK ; 5 tentatives ; intervalle 2 s ; délai 5 s |
Contrôles préalables
| Contrôle | Type | Signification | Sévérité | Composants |
|---|---|---|---|---|
memory | memory_mb {"min": 256} | au moins 256 Mo de mémoire | bloquant | tous les composants |
web_port_free | port_free {"param": "port"} | port 8233 libre sur l'hôte | bloquant | tous les composants |
Désinstallation
Chemins supprimés quand les données sont purgées : {{ paths.log }}.
Liens rapides
- Interface web Temporal :
{{ (config.public_url or ((('https' if config.tls_enabled else 'http')) ~ '://' ~ host.fqdn ~ ':' ~ config.port)).rstrip('/') ~ '/' }}
Documentation amont
- Site : https://docs.temporal.io/web-ui
- Sources : https://github.com/temporalio/ui-server
- Haute disponibilité : https://docs.temporal.io/references/web-ui-configuration