Référence
Community vs Enterprise
Ce que contient chaque édition, comment fonctionne la licence et comment activer les fonctionnalités EE.
AskAIs Customer Service est proposé en deux éditions : la Community Edition (CE, AGPL-3.0, gratuite) et l'Enterprise Edition (EE, licence commerciale). Les deux fonctionnent à partir d'une seule image Docker — la différence réside dans l'installation des packages EE et la configuration d'une LICENSE_KEY valide.
Matrice des fonctionnalités
- CE : boîte de réception multi-locataire, streaming IA, RAG, widget web, API, webhooks, facturation Stripe, tous les SDK natifs
- EE: SSO (SAML/OIDC), marque blanche, routage intelligent des modèles, rapports avancés (CSAT/SLA/cohortes), export du journal d'audit, option à source disponible
Comment fonctionne le verrouillage EE à l'exécution
- Le service commercial signe une licence avec la clé privée Ed25519 du License Server (stockée uniquement sur le License Server).
- Le client reçoit un jeton qu'il place dans
LICENSE_KEY. - Au démarrage, la web app vérifie la signature du jeton avec la clé publique correspondante (
LICENSE_PUBLIC_KEY) et décode la liste des fonctionnalités. - Pour chaque fonctionnalité,
loadEeModule()tente d'importer dynamiquement le package EE correspondant. Si le package n'est pas installé → repli CE.
Générer des clés (opérateur du License Server)
pnpm tsx scripts/license-keygen.ts
# Output:
# LICENSE_PRIVATE_KEY="..." # keep on the License Server
# LICENSE_PUBLIC_KEY="..." # distribute to all self-hosted instancesSigner une licence
LICENSE_PRIVATE_KEY="..." pnpm tsx scripts/license-sign.ts \
--email customer@acme.com \
--plan ENTERPRISE_PRO \
--agents 50 \
--days 365 \
--features sso,white-label,smart-model-routing
# Stdout: LICENSE_KEY="...." (paste into customer's .env)Vérifier une licence (côté client)
Les instances auto-hébergées peuvent appeler le License Server pour vérifier le statut de révocation au-delà de la vérification de signature mise en cache :
curl -X POST https://cs.askais.com/api/v1/license/verify \
-H "Content-Type: application/json" \
-d '{ "licenseKey": "..." }'
# Response:
# { "valid": true, "payload": { "plan": "ENTERPRISE_PRO", ... } }
# Or if revoked:
# { "valid": false, "reason": "revoked" }Battements de cœur
Les instances EE envoient un ping toutes les 24 heures afin que nous puissions avertir les clients d'une utilisation dépassant le nombre de sièges et suivre les versions déployées pour les avis de sécurité. La charge utile est petite et ne comprend que : le nom d'hôte, la version, le nombre d'agents actifs.
POST /api/v1/license/heartbeat
{
"licenseKey": "...",
"hostname": "chat.acme.internal",
"version": "1.4.2",
"activeAgents": 23
}Marque déposée
L'AGPL accorde des autorisations sur les sources/le code mais pasde droits de marque. Si vous forkez la CE et l'exploitez en tant que service sous une marque différente, veuillez renommer le produit. Le nom et le logo « AskAIs Customer Service » sont réservés à notre propre usage et à celui de nos titulaires de licence commerciale.
FAQ
- Puis-je exécuter la CE sans contacter du tout le License Server ?Oui — il n'est contacté que si vous avez défini
LICENSE_KEY. Aucune télémétrie. - Que se passe-t-il si ma licence expire ?Les fonctionnalités EE sont désactivées (des invites de mise à niveau s'affichent), la CE continue de fonctionner normalement.
- Puis-je obtenir l'accès au code source de l'EE ? Oui, avec le plan Source-Available. Voir tarifs.