Aller au contenu principal

Server

Le serveur Wirety fournit des API REST et WebSocket, orchestre les peers, les incidents, les ACL et l'IPAM.

Variables d'environnement

Core

VariableDescriptionDéfaut
HTTP_PORTPort HTTP du serveur8080
CORS_ORIGINOrigine(s) CORS autorisée(s) — séparées par des virgules pour plusieurs origines (ex. https://app.example.com,https://admin.example.com). ALLOWED_ORIGIN est un alias hérité.*
AUDIT_LOGActiver la journalisation d'audit JSON structurée sur stdoutfalse

Authentification

VariableDescriptionDéfaut
AUTH_ENABLEDActiver l'authentification OIDC (false = auth simple)false
AUTH_ISSUER_URLURL du fournisseur OIDC (ex. https://keycloak.example.com/realms/wirety)-
AUTH_CLIENT_IDID client OIDC-
AUTH_CLIENT_SECRETSecret client OIDC-
AUTH_JWKS_CACHE_TTLDurée du cache JWKS en secondes3600
AUTH_PASSWORDMot de passe administrateur pour le mode auth simplegénéré automatiquement (journalisé au démarrage)
COOKIE_SECUREActive l'attribut Secure sur le cookie de session — désactiver uniquement en HTTP local (développement)true
AUTH_EMAIL_CLAIMRevendication JWT à utiliser comme adresse e-mail de l'utilisateur (utile quand le fournisseur utilise un nom de revendication non standard)email
AUTH_GROUPS_CLAIMRevendication JWT portant les appartenances de groupe de l'utilisateur (ex. groups, roles). Obligatoire pour activer le contrôle d'accès basé sur les groupes avec les fournisseurs OIDC.-
AUTH_ADMIN_GROUPListe de groupes séparés par des virgules dont les membres reçoivent le rôle administrator. Prend le dessus sur AUTH_USER_GROUP. Pour GitHub, utilisez les noms d'organisation (mon-org) ou les slugs d'équipe (mon-org/mon-equipe).-
AUTH_USER_GROUPListe de groupes séparés par des virgules requis pour la connexion d'un utilisateur ordinaire. Les utilisateurs n'appartenant à aucun de ces groupes sont rejetés. Doit être défini conjointement avec AUTH_ADMIN_GROUP. Pour GitHub, utilisez le même format org ou org/equipe.-

Base de données

VariableDescriptionDéfaut
DB_ENABLEDActiver la persistance PostgreSQL (false = en mémoire)false
DB_DSNChaîne de connexion PostgreSQLpostgres://wirety:wirety@localhost:5432/wirety?sslmode=disable
DB_MIGRATIONS_DIRChemin vers les fichiers de migration SQLcmd/kodata

Modes d'authentification

Auth simple (défaut, AUTH_ENABLED=false)

Au premier démarrage, le serveur génère un mot de passe administrateur aléatoire et le journalise :

WRN Simple auth enabled - generated admin password password=abc123 username=admin

Définir un mot de passe fixe via AUTH_PASSWORD pour éviter la régénération au redémarrage.

Connexion via POST /api/v1/auth/simple-login avec {"username":"admin","password":"..."}.

OIDC / OAuth (AUTH_ENABLED=true)

Les utilisateurs s'authentifient via votre fournisseur d'identité ; leurs rôles et accès réseau sont gérés dans l'interface Wirety.

Consultez le guide Fournisseurs d'identité pour la configuration étape par étape avec Keycloak, Azure Entra ID, Slack et GitHub. Tout autre fournisseur OIDC standard fonctionne également sans configuration supplémentaire.

Tokens API

Les utilisateurs peuvent créer des tokens API à longue durée de vie (mêmes permissions que leur compte) pour les scripts et intégrations :

# Créer un token
curl -X POST http://localhost:8080/api/v1/users/me/tokens \
-H "Authorization: Bearer <session-token>" \
-H "Content-Type: application/json" \
-d '{"name": "my-ci-token"}'

# Utiliser un token
curl http://localhost:8080/api/v1/networks \
-H "Authorization: Bearer wirety_<64-hex-chars>"

Les tokens utilisent le préfixe wirety_ et sont acceptés en mode auth simple et OIDC. Le token brut n'est affiché qu'une seule fois à la création ; seul son hash SHA-256 est stocké.

Serveur MCP

Un serveur Model Context Protocol intégré est disponible à GET/POST /mcp avec le transport HTTP Streamable. Il expose les capacités de Wirety comme des outils appelables par l'IA (lister/créer/supprimer réseaux, peers, groupes, politiques, routes, incidents et tokens API).

L'authentification utilise les mêmes tokens API que l'API REST :

{
"mcpServers": {
"wirety": {
"type": "http",
"url": "http://localhost:8080/mcp",
"headers": { "Authorization": "Bearer wirety_<token>" }
}
}
}

Consultez la documentation MCP pour la configuration Claude Desktop / Claude Code.

Données stockées

  • Peers (clé publique, endpoint, flags, token, IP supplémentaires autorisées).
  • Réseaux (CIDR, domaine, liste de peers).
  • Carte ACL BlockedPeers.
  • États des incidents + audit (resolvedBy).
  • Allocations IPAM.
  • Tokens API (hachés).

Swagger / OpenAPI

La documentation Swagger est disponible à /swagger/docs/index.html lors de l'exécution du serveur. L'API est documentée avec :

  • Titre : Wirety Server API
  • Version : 1.0
  • BasePath : /api/v1
  • Sécurité : authentification par token Bearer (JWT ou token API wirety_)

Notifications

Le canal WebSocket émet des événements de mise à jour des peers réseau, permettant aux agents de rafraîchir leurs configurations.