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

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 (AUTH_ENABLED=true)

Consultez le guide OIDC pour la configuration complète. 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.

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.