Skip to content

License Management

PeSIT Wizard Enterprise uses a license system based on License3j to control access to features.

License Types

The license controls only the number of clusters and pods per cluster. All features are available regardless of the license type.

TypeClustersPods/clusterSupport
Evaluation1330 days, community
Professional13Email (48 business hours)
Business5UnlimitedPriority email (24 business hours)
EnterpriseUnlimitedUnlimitedContractual SLA, dedicated support

Installing a License

Via the REST API

bash
curl -X POST http://localhost:8080/api/v1/license \
  -H "Content-Type: application/json" \
  -d '{"license": "<BASE64_LICENSE>"}'

Via Configuration File

yaml
pesitwizard:
  license:
    file: /app/config/license.bin

Or via environment variable:

yaml
pesitwizard:
  license:
    content: ${PESITWIZARD_LICENSE}

Check the License Status

bash
curl http://localhost:8080/api/v1/license

Response:

json
{
  "valid": true,
  "evaluation": false,
  "type": "PROFESSIONAL",
  "customer": "Acme Corp",
  "expirationDate": "2026-01-01",
  "daysUntilExpiration": 365,
  "maxClusters": 1,
  "maxPodsPerCluster": 3
}

Evaluation Mode

Without a license, PeSIT Wizard Enterprise runs in evaluation mode with a limited period of 30 days.

Evaluation Mode Limits

  • Duration: 30 days from first startup
  • Clusters: 1 maximum
  • Pods: 3 maximum per cluster
  • Features: Basic features only

Evaluation Expiration

After the evaluation period expires, all APIs are blocked except:

  • GET /api/v1/license - Check status
  • POST /api/v1/license - Install a license
  • POST /api/v1/license/extend-evaluation - Extend evaluation (PoC)
  • /actuator/health - Health check

Blocked requests return an HTTP 402 (Payment Required) code:

json
{
  "error": "LICENSE_REQUIRED",
  "message": "Evaluation period has expired. Please install a valid license.",
  "licenseUrl": "/api/v1/license"
}

Evaluation Period Extension (PoC)

For customer Proof of Concept (PoC) scenarios, it is possible to extend the evaluation period:

bash
curl -X POST http://localhost:8080/api/v1/license/extend-evaluation \
  -H "Content-Type: application/json" \
  -d '{"days": 30}'

WARNING

The extension is cumulative. Each call adds days to the remaining period. The maximum extension duration per call is 365 days.

Evaluation Status

The /api/v1/license endpoint returns evaluation information:

json
{
  "valid": false,
  "evaluation": true,
  "blocked": false,
  "evaluationStartDate": "2026-01-20",
  "evaluationExpirationDate": "2026-02-19",
  "evaluationDaysRemaining": 30,
  "maxClusters": 1,
  "maxPodsPerCluster": 3
}

Evaluation Duration Configuration

The default duration can be configured:

yaml
pesitwizard:
  license:
    evaluation-days: 30  # Default: 30 days

License Generation (administrator)

Licenses are generated with the License3j REPL.

REPL Installation

bash
# Download License3j
curl -L -o license3j-repl.jar \
  https://repo1.maven.org/maven2/com/javax0/license3j/license3j/3.3.0/license3j-3.3.0.jar

# Launch the REPL
java -jar license3j-repl.jar

Generate a Key Pair

License3j REPL
L3j> generateKeys algorithm=RSA size=2048 format=BINARY public=license-public.key private=license-private.key

Warning: Keep license-private.key secret! Never commit it.

Copy license-public.key to:

pesitwizard-license/src/main/resources/license-public.key

Create a License

L3j> newLicense
L3j> feature licenseId=UUID
L3j> feature type=PROFESSIONAL
L3j> feature customer=Acme Corp
L3j> feature email=admin@acme.com
L3j> feature maxClusters:INT=1
L3j> feature maxPodsPerCluster:INT=3
L3j> feature expiryDate:DATE=2026-01-01
L3j> sign key=license-private.key
L3j> saveLicense format=BASE64 file=acme-license.txt

Renewal

To renew a license, generate a new license with the new expiration date and install it via the API or configuration file.

PeSIT Wizard Enterprise - Console d'administration