Overview

Licensing

Questa pagina spiega il licensing dal punto di vista utente finale: cosa serve, come ottenere la licenza e come applicarla.

Come ottenere una licenza

Consulta i piani, le feature incluse per ciascun tier (Base / Pro / Enterprise) e procedi all'acquisto sul sito pubblico:

Dopo l'acquisto riceverai una mail con license-payload + license-signature da installare come descritto nella "Procedura utente finale" qui sotto.

Come funziona

  • La licenza e valida solo se:
  • firma corretta.
  • machineFingerprint del server corrente presente nella lista machineFingerprints del payload firmato.
  • Se la licenza non e valida, la lettura dati (getFlatRecordData) viene limitata a massimo 20 record. Inoltre l'hook host customizeSelect viene bypassato (non invocato).

Dove trovo il machineFingerprint

Endpoint backend (refresh nella pagina di login prima di autenticarsi):

  • GET /api/Meta/FirstRunStatus
  • nel payload trovi machineFingerprint.

Procedura utente finale

1. Recupera machineFingerprint dal tuo host.

2. Invia il valore al fornitore/licensor.

3. Ricevi i valori licenza:

  • license-payload
  • license-signature
  • license-public-key-pem (se previsto dalla tua installazione)

4. Inserisci i valori nel file appsettings.{Environment}.json dell'host in esecuzione, sezione AppSettings.

5. Riavvia il backend.

6. Verifica stato licenza da API:

  • GET /api/Meta/LicenseStatus
  • atteso: licenseValid = true.

Licenza multi-macchina

Un'unica licenza puo autorizzare piu macchine includendo piu valori in machineFingerprints.

Troubleshooting rapido

  • licenseReason = invalid_signature:
  • payload/firma non coerenti tra loro oppure public key diversa.
  • licenseReason = machine_fingerprint_not_authorized:
  • il fingerprint della macchina corrente non e presente nella licenza ricevuta.
  • licenseReason = machine_fingerprint_missing:
  • il runtime non riesce a calcolare il fingerprint locale.
  • licenseReason = license_expired:
  • la licenza e scaduta, richiedi rinnovo.

Screenshot

licensing / LicenseStatus API response (licenseValid=true, tier=developer)
licensing / LicenseStatus API response (licenseValid=true, tier=developer)