ENbext.dev
DocumentationConfiguration

Traduction automatique depuis l’anglais. Consulter l’original.

Sur cette page

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.

Attention

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 :

toml
[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 :

toml
[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 :

bash
bext config endpoints list

Sortir:

code
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 :

bash
bext config endpoints list --json

Afficher l'état de visibilité#

Vue compacte des groupes activés ou désactivés :

bash
bext config endpoints show
code
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 :

bash
bext config endpoints disable metrics
code
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 :

bash
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 :

code
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 :

bash
bext config credentials create \
  --username deploy-bot \
  --role viewer \
  --password "$ADMIN_PASSWORD" \
  --json

Sortie JSON :

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 :

bash
bext config credentials hash

Ou de manière non interactive :

bash
bext config credentials hash "my-password"

Imprime uniquement le hachage argon2id :

code
$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#

Conseil

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 :

toml
[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#

Modifier cette page ↗Besoin d’aide ? ↗
Rechercher dans la documentation

Saisissez un sujet, une commande ou une question.