Referencia
Community frente a Enterprise
Qué incluye cada edición, cómo funciona la licencia y cómo habilitar las funciones EE.
AskAIs Customer Service se ofrece en dos ediciones: la Community Edition (CE, AGPL-3.0, gratuita) y la Enterprise Edition (EE, licencia comercial). Ambas se ejecutan desde una única imagen Docker: la diferencia es si los paquetes EE están instalados y se ha configurado una LICENSE_KEY válida.
Matriz de funciones
- CE: bandeja de entrada multiinquilino, streaming de IA, RAG, widget web, API, webhooks, facturación con Stripe, todos los SDK nativos
- EE: SSO (SAML/OIDC), marca blanca, enrutamiento inteligente de modelos, informes avanzados (CSAT/SLA/cohortes), exportación del registro de auditoría, opción de código disponible
Cómo funciona el control de EE en tiempo de ejecución
- El equipo de ventas firma una licencia con la clave privada Ed25519 del License Server (almacenada solo en el License Server).
- El cliente recibe un token que coloca en
LICENSE_KEY. - Al arrancar, la web app verifica la firma del token con la clave pública correspondiente (
LICENSE_PUBLIC_KEY) y decodifica la lista de funciones. - Para cada función,
loadEeModule()intenta importar dinámicamente el paquete EE correspondiente. Si el paquete no está instalado → respaldo CE.
Generar claves (operador del 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 instancesFirmar una licencia
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)Verificar una licencia (lado del cliente)
Las instancias autoalojadas pueden llamar al License Server para comprobar el estado de revocación más allá de la verificación de firma en caché:
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" }Latidos (heartbeats)
Las instancias EE envían un ping cada 24 horas para que podamos advertir a los clientes sobre el uso que supera los asientos y rastrear qué versiones están implementadas para los avisos de seguridad. La carga útil es pequeña e incluye solo: nombre de host, versión, número de agentes activos.
POST /api/v1/license/heartbeat
{
"licenseKey": "...",
"hostname": "chat.acme.internal",
"version": "1.4.2",
"activeAgents": 23
}Marca registrada
La AGPL otorga permisos de fuente/código pero noderechos de marca registrada. Si haces un fork de la CE y la operas como un servicio bajo una marca diferente, cambia el nombre del producto. El nombre y el logotipo de "AskAIs Customer Service" están reservados para nuestro propio uso y el de nuestros titulares de Licencia Comercial.
Preguntas frecuentes
- ¿Puedo ejecutar la CE sin contactar para nada con el License Server? Sí — solo se contacta si tienes configurada
LICENSE_KEY. Sin telemetría. - ¿Qué ocurre si mi licencia caduca? Las funciones EE se desactivan (se muestran avisos de actualización), la CE sigue funcionando con normalidad.
- ¿Puedo obtener acceso al código fuente de EE? Sí, en el plan Source-Available. Consulta precios.