Skip to main content

License Management

These endpoints manage the IDIAL license. The license controls which features are available and how many endpoints (OPC UA devices) can be managed. License validation is cached for one hour.

note

These endpoints are not present in the existing bxc-documentation. They document a feature introduced after the last bxc-documentation update.

POST /systeminfo/lic​

Installs a license. The license is stored in the database and validated immediately. The validation result is returned in the response.

Authentication: Required (X-API-Key header — license feature check is skipped for this endpoint)

Request​

curl -X POST http://localhost:5000/systeminfo/lic \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"license_b64": "eyJsaWNlbnNlIjogIi4uLiJ9..."}'

Request Fields​

FieldTypeRequiredDescription
license_b64stringYesBase64-encoded .lic file content.

Response 201​

{
"validation_success": true,
"validation_message": null,
"company": "Example GmbH",
"features": ["core", "enterprise_user_management"],
"feature_count": 2,
"licensed_endpoints": 50,
"validity_start": "2026-01-01",
"validity_end": "2027-01-01",
"product": "IDIAL",
"product_version": "1",
"license_type": "commercial",
"is_currently_valid": true,
"days_until_expiry": 241,
"is_expired": false
}

Response Fields​

FieldTypeDescription
validation_successbooleanWhether the license is valid.
validation_messagestring | nullError or info message if validation failed.
companystring | nullLicensed company name.
featuresstring[]List of licensed feature identifiers.
feature_countinteger | nullTotal number of licensed features.
licensed_endpointsinteger | nullMaximum number of managed OPC UA endpoints allowed.
validity_startstring | nullLicense validity start date.
validity_endstring | nullLicense validity end date.
productstring | nullProduct name.
product_versionstring | nullProduct version string.
license_typestring | nullLicense type (e.g. "commercial", "trial").
is_currently_validboolean | nullWhether the license is valid at the current time.
days_until_expiryinteger | nullDays until the license expires.
is_expiredboolean | nullWhether the license has already expired.

Response 400​

{"error": "license_b64 is not valid base64"}

GET /systeminfo/lic​

Validates and returns details about the currently installed license.

Authentication: Required (X-API-Key header)

Request​

curl -X GET http://localhost:5000/systeminfo/lic \
-H "X-API-Key: your-api-key"

Response 200​

Response matches the format of POST /systeminfo/lic.

Response 404​

{"error": "No license stored"}

DELETE /systeminfo/lic​

Removes the installed license from the database. After deletion all feature-gated endpoints return 403 until a new license is installed.

Authentication: Required (X-API-Key header)

Request​

curl -X DELETE http://localhost:5000/systeminfo/lic \
-H "X-API-Key: your-api-key"

Response 200​

{
"validation_success": false,
"validation_message": "License removed",
"features": []
}
warning

Deleting the license immediately disables all feature-gated endpoints. Ensure a replacement license is available before removing the current one in production.