Administración de Licencias
Los solvedores de Shardian validan la licencia al arrancar la simulación contra un servidor seguro de autenticación. Esta página detalla el esquema de base de datos, los endpoints administrativos, el demonio systemd y el uso de la herramienta CLI de administración.
1. Esquema de Base de Datos
El servidor de licencias utiliza una base de datos transaccional SQLite ligera (licenses.db) ubicada en el directorio de ejecución del servicio.
erDiagram
LICENSES {
string api_key PK
string scope "both | aero | atmos"
integer active "1 = activo, 0 = revocado"
datetime expires_at
datetime created_at
}
Tabla: licenses
api_key(TEXT, Primary Key): Clave de API generada criptográficamente con prefijosk_live_shardian_.scope(TEXT): Define a qué resolvedor tiene acceso la licencia (aero,atmosoboth).active(INTEGER): Controla si la clave está activa.1significa activo,0significa revocado.expires_at(DATETIME): Marca de tiempo de expiración. Las peticiones tras esta fecha devolverán un HTTP 401.created_at(DATETIME): Fecha de registro de la clave.
2. Endpoints de la API
El servidor expone dos grupos diferenciados de endpoints HTTP/HTTPS:
A. Verificación del Solucionador (Pública)
Llamada por OpenFOAM y WRF durante la fase de inicialización del modelo de turbulencia/capa superficial.
GET /v1/verify- Cabeceras:
Authorization: Bearer <api_key> - Respuesta (200 OK):
- Respuesta (401 Unauthorized):
- Cabeceras:
B. API de Administración (Privada e Interna)
Protegida mediante autenticación básica y restringida a peticiones de bucle de retorno (127.0.0.1) o redes internas de confianza.
POST /v1/admin/keys- Descripción: Genera y registra una nueva clave.
- Cuerpo (JSON):
- Respuesta (200 OK):
DELETE /v1/admin/keys- Descripción: Revoca de forma inmediata una clave activa.
- Cuerpo (JSON):
3. La Herramienta CLI de Administración
Los desarrolladores y administradores de Shardian pueden gestionar las licencias en la máquina host mediante la utilidad CLI compiled en Go license-cli:
Registrar una Nueva Licencia:
Salida:License Key Generated Successfully!
Key: sk_live_shardian_cfd_atmos_2026_eval_4a2c91
Scope: both
Expiry: 2027-06-15 12:00:00 UTC
Status: Registered in licenses.db (active)
Revocar una Licencia:
Salida:Success: Key sk_live_shardian_cfd_atmos_2026_eval_4a2c91 has been deactivated (active=0).
Any simulation using this key will abort immediately at the next time step.
4. Configuración del Demonio Systemd
En el servidor VPS de producción, la API de licencias corre bajo systemd para garantizar su disponibilidad permanente:
# /etc/systemd/system/shardian-license-server.service
[Unit]
Description=Shardian License Verification API Server
After=network.target
[Service]
Type=simple
User=shardian-admin
WorkingDirectory=/var/www/license-server
ExecStart=/var/www/license-server/server
Restart=always
RestartSec=5
Environment=PORT=8080
Environment=DB_PATH=/var/www/license-server/licenses.db
[Install]
WantedBy=multi-user.target
Para recargar el servicio tras realizar cambios: