Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Licenciamiento

Las acciones generate, build y reverse del compilador exigen una licencia. La acción validate no la exige, así que la validación de fuentes (y el IntelliSense de la extensión) funciona siempre.

La licencia se gestiona automáticamente: se toma al usar el compilador y se libera al terminar, sin intervención manual.

Modos de licencia

Organización

Un servicio de licencias administra un conjunto (pool) de seats. El compilador:

  • Se conecta de forma segura al servicio de licencias de tu organización (identificando al servidor con Fingerprint, en la configuración del proyecto). El Host/Port/Fingerprint los entrega quien administra ese servicio — ver Configurar el servicio de licencias si esa persona eres tú.
  • Cada usuario ocupa un solo puesto (seat) a la vez.
  • Si el compilador se cierra o pierde la conexión, el puesto se libera automáticamente — nadie queda ocupando una licencia sin usarla.
  • Compatible con autenticación Kerberos/Active Directory, para integrarse con las credenciales corporativas ya existentes.

Individual

Un archivo de licencia firmado, ligado al equipo, que se valida localmente y sin red. La ruta por defecto es:

  • Linux/macOS: ~/.config/warpgate/license.json
  • Windows: %APPDATA%\warpgate\license.json

Se puede usar otra ruta con File (en @License), --license-file o WARPGATE_LICENSE_FILE.

Configuración

Bloque @License en el .warpcfg

Bloque opcional dentro de cada @Profile (ver Archivo de proyecto) — cada perfil (Dev/UAT/Prod) puede tener su propia configuración de licencia, para consumir licencias o servicios de licenciamiento distintos según el ambiente. Las propiedades no distinguen mayúsculas de minúsculas.

@GeneratorConfig {
    @Profile "Prod" {
        @License {
            Host        : "servidor01.dominio.local"
            Port        : 7443
            Fingerprint : "3f2a9c41d87b05e6a1c4f0937be2d5688a1f4c0d29e7b3a65c8d1f0e4b7a9c23"
        }
    }
}

Con --profile/Default Profile se elige qué perfil (y por tanto qué @License) usar en cada ejecución — ver Proyecto: .warproj y .warpcfg.

ClaveDescripción
HostHost del servicio de licencias. Si está presente, el modo es organización y File se ignora.
PortPuerto TCP del servicio, de 1 a 65535. Por defecto 7443.
FingerprintHuella SHA-256 del certificado del servicio: 64 caracteres hexadecimales (se aceptan mayúsculas y separadores :).
SPNNombre de servicio Kerberos. Por defecto warpgate-license/<host>.
FileRuta del archivo de licencia individual.

Sin Host, el modo es individual.

Flags y variables de entorno

FlagVariable de entornoEquivale a
--license-hostWARPGATE_LICENSE_HOSTHost
--license-portWARPGATE_LICENSE_PORTPort
--license-fingerprintWARPGATE_LICENSE_FINGERPRINTFingerprint
--license-spnWARPGATE_LICENSE_SPNSPN
--license-fileWARPGATE_LICENSE_FILEFile

Precedencia: flag > variable de entorno > .warpcfg.

Con varios @Profile declarados, license-status también respeta --profile/Default Profile para saber de cuál @License leer — ver Proyecto: .warproj y .warpcfg.

Códigos de salida

CódigoSignificado
3No hay licencia disponible. El compilador muestra un mensaje con lo que se debe hacer.
4Se perdió la licencia a mitad de la ejecución.
130Ejecución interrumpida (Ctrl-C/SIGTERM).

Solicitar una licencia

Estas acciones de soporte no toman seat ni necesitan --source; --project es opcional.

warpgate --action license-request --license-id <ID> --license-out request.json

Escribe el archivo de solicitud (--license-out es opcional; por defecto request.json) y muestra el identificador del equipo. Con el archivo de licencia recibido, se copia a la ruta por defecto (o a la indicada con File). Instalar una licencia nueva reemplaza la anterior: la anterior deja de valer por su número de serie.

Cómo obtener una licencia (sin costo, por tiempo limitado)

Actualmente Warpgate se distribuye sin costo: Software House emite licencias individuales gratuitas, válidas por 90 días y renovables. Esta política puede cambiar más adelante, sin afectar las licencias ya emitidas.

  1. En el equipo donde se va a usar el compilador, generar la solicitud:
    warpgate --action license-request --license-id <nombre o empresa> --license-out request.json
    
  2. Enviar a warpgate@softwarehouse.pe:
    • El archivo request.json generado.
    • El identificador del equipo que el comando imprime en pantalla (necesario para emitir la licencia).
  3. Software House responde con un archivo license.json firmado, ligado a ese equipo, válido por 90 días.
  4. Copiar ese archivo a la ruta por defecto (o a la que indiquen --license-file/File/WARPGATE_LICENSE_FILE):
    • Linux/macOS: ~/.config/warpgate/license.json
    • Windows: %APPDATA%\warpgate\license.json
  5. Confirmar con warpgate --action license-status (debe mostrar el estado y la fecha de vencimiento).

Al vencer los 90 días, generate/build/reverse dejan de funcionar hasta renovar — repetir este mismo procedimiento para obtener una licencia nueva. validate sigue funcionando siempre, incluso sin licencia. Para una licencia con seats para varios usuarios (modo organización), escribir también a warpgate@softwarehouse.pe.

Para consultar el estado actual:

warpgate --action license-status

Muestra el modo, la licencia, el vencimiento y, en modo organización, los seats en uso y disponibles.

Alcance de la licencia

Una licencia cubre un producto y una versión mayor (por ejemplo, la serie 0.x). Puede ser perpetua o tener vencimiento.

Desarrollo

Las compilaciones de desarrollo aceptan WARPGATE_LICENSE=off para omitir la exigencia. Los binarios de release no lo aceptan.

Diagnósticos relacionados

CódigoSituación
E00284Port de @License es 0.
E00285Host de @License no es un host válido.
E00286Fingerprint no es una huella SHA-256 válida.
E00287Aviso: hay Host sin Fingerprint.
E00288Aviso: Host y File juntos (File se ignora).