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.
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
| Field | Type | Required | Description |
|---|---|---|---|
license_b64 | string | Yes | Base64-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
| Field | Type | Description |
|---|---|---|
validation_success | boolean | Whether the license is valid. |
validation_message | string | null | Error or info message if validation failed. |
company | string | null | Licensed company name. |
features | string[] | List of licensed feature identifiers. |
feature_count | integer | null | Total number of licensed features. |
licensed_endpoints | integer | null | Maximum number of managed OPC UA endpoints allowed. |
validity_start | string | null | License validity start date. |
validity_end | string | null | License validity end date. |
product | string | null | Product name. |
product_version | string | null | Product version string. |
license_type | string | null | License type (e.g. "commercial", "trial"). |
is_currently_valid | boolean | null | Whether the license is valid at the current time. |
days_until_expiry | integer | null | Days until the license expires. |
is_expired | boolean | null | Whether 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": []
}
Deleting the license immediately disables all feature-gated endpoints. Ensure a replacement license is available before removing the current one in production.