Points de terminaison et informations d'identification
bext expose plusieurs groupes de points de terminaison intégrés pour les vérifications de l'état, les métriques, la gestion, l'observabilité et le panneau d'administration. Vous pouvez contrôler quels groupes sont visibles et créer des informations d'identification d'administrateur directement à partir de la CLI.
Lorsqu'un groupe est désactivé, ses routes renvoient 404 — et non 403. Les scanners externes ne verront aucun signal indiquant que le point de terminaison existe. La désactivation de metrics et admin est recommandée pour les déploiements accessibles sur Internet.
Visibilité des points de terminaison#
Par défaut, tous les groupes de points de terminaison sont activés. Ajoutez une section [endpoints] à bext.config.toml pour masquer sélectivement les groupes :
[endpoints]
health = true # GET /health
metrics = false # GET /metrics (Prometheus)
api = true # /api/* management endpoints (requires super_admin)
obs = true # /__bext/obs/* observability (requires viewer)
admin = true # /__bext/admin/* panel
Lorsqu'un groupe est désactivé, ses routes ne sont pas enregistrées du tout : les requêtes renvoient 404 comme si les points de terminaison n'avaient jamais existé. Ceci est utile pour renforcer les déploiements de production dans lesquels vous ne souhaitez pas exposer les métriques ou le panneau d'administration en externe.
Groupes de points de terminaison#
| Groupe | Points de terminaison | Authentification requise | Description |
|---|---|---|---|
health |
GET /health |
Non | Bilan de santé des équilibreurs de charge et des moniteurs de disponibilité |
metrics |
GET /metrics |
Non | Exportation de métriques au format Prometheus |
api |
/api/* (12 points de terminaison) |
super_admin | API de gestion : invalider, recharger, déployer, configurer |
obs |
/__bext/obs/* (9 points de terminaison) |
téléspectateur | Tableau de bord, journaux, inspection du cache, alertes, SLO, analyses |
admin |
/__bext/admin/* (plus de 40 points de terminaison) |
téléspectateur | Panneau d'administration complet avec connexion, cache, WAF, Workers, flux |
Remplacement de l'administrateur#
Le champ admin dans [endpoints] accepte true ou false. Lorsqu'il est omis, il suit le paramètre [admin].enabled. Lorsqu'il est explicitement défini, il le remplace :
[admin]
enabled = true # Admin panel is configured...
[endpoints]
admin = false # ...but hidden from the network
Cela vous permet de conserver la configuration de l'administrateur (utilisateurs, secret JWT) tout en masquant temporairement le panneau.
CLI : gérer les points de terminaison#
Répertorier toutes les URL#
Affichez chaque URL de point de terminaison intégrée, regroupée par catégorie, avec l'état de visibilité actuel :
bext config endpoints list
Sortir:
health [enabled]
GET /health
metrics [disabled]
GET /metrics (hidden)
api [enabled]
POST /api/invalidate
POST /api/revalidate
...
obs [enabled]
GET /__bext/obs/dashboard
...
admin [enabled]
GET /__bext/admin/login
...
Utilisez --json pour une sortie lisible par machine :
bext config endpoints list --json
Afficher l'état de visibilité#
Vue compacte des groupes activés ou désactivés :
bext config endpoints show
Endpoint visibility:
health ● GET /health
metrics ○ GET /metrics
api ● /api/* management (super_admin)
obs ● /__bext/obs/* observability (viewer)
admin ● /__bext/admin/* panel (follows [admin].enabled)
Activer/Désactiver un groupe#
Imprimez l'extrait TOML à ajouter à votre configuration :
bext config endpoints disable metrics
To disable the metrics endpoints, add this to your bext.config.toml:
[endpoints]
metrics = false
Then restart bext for the change to take effect.
Noms de groupe valides : health, metrics, api, obs, admin.
CLI : Gérer les informations d'identification#
Créer des informations d'identification d'administrateur#
Générez une entrée [[admin.users]] avec un mot de passe haché argon2id :
bext config credentials create --username admin --role super_admin
Lorsque --password est omis, bext vous invite de manière interactive avec une saisie et une confirmation masquées :
Password:
Confirm:
Add this to your bext.config.toml:
[[admin.users]]
username = "admin"
password_hash = "$argon2id$v=19$m=19456,t=2,p=1$..."
role = "super_admin"
Make sure [admin] enabled = true and jwt_secret is set.
Pour les scripts et CI, transmettez directement le mot de passe :
bext config credentials create \
--username deploy-bot \
--role viewer \
--password "$ADMIN_PASSWORD" \
--json
Sortie JSON :
{
"username": "deploy-bot",
"password_hash": "$argon2id$v=19$m=19456,t=2,p=1$...",
"role": "viewer"
}
| Drapeau | Défaut | Description |
|---|---|---|
--username |
(requis) | Nom d'utilisateur pour l'utilisateur administrateur |
--role |
super_admin |
Rôle : super_admin, tenant_admin ou viewer |
--password |
(interactif) | Mot de passe (invite masquée si omise) |
--tenant-id |
(aucun) | ID de locataire (obligatoire pour le rôle tenant_admin) |
--json |
FAUX | Sortie en JSON au lieu de TOML |
Hachez un mot de passe#
Si vous avez juste besoin de la chaîne de hachage pour l'édition manuelle de la configuration :
bext config credentials hash
Ou de manière non interactive :
bext config credentials hash "my-password"
Imprime uniquement le hachage argon2id :
$argon2id$v=19$m=19456,t=2,p=1$randomsalt$hashvalue
Rôles#
| Rôle | Niveau d'accès | Description |
|---|---|---|
super_admin |
Complet | Toutes les opérations de gestion et d'administration |
tenant_admin |
Portée | Mutations au sein de votre propre locataire uniquement |
viewer |
Lecture seule | Tableau de bord, journaux, métriques, inspection du cache |
Exemple complet#
Utilisez bext config credentials create plutôt que de hacher manuellement les mots de passe : il utilise argon2id avec des paramètres optimisés et génère l'extrait TOML exact à coller dans votre configuration.
Une configuration de production avec des métriques masquées, un administrateur activé et deux utilisateurs :
[server]
listen = "0.0.0.0:443"
[admin]
enabled = true
jwt_secret = "change-me-to-a-random-secret"
[[admin.users]]
username = "admin"
password_hash = "$argon2id$v=19$m=19456,t=2,p=1$..."
role = "super_admin"
[[admin.users]]
username = "ops"
password_hash = "$argon2id$v=19$m=19456,t=2,p=1$..."
role = "viewer"
[endpoints]
health = true
metrics = false
api = true
obs = true
En rapport#
- bext.config.toml — référence complète des sections
[admin]et[endpoints] - Référence CLI — Commandes
bext config endpointsetbext config credentials - Opérations : sécurité – renforcement des déploiements de production
- Opérations : surveillance — en utilisant les points de terminaison
obsetmetrics - Opérations : journalisation — accès aux journaux via le panneau d'administration