Licensing

Using the licensed products

All Agile Content Processing products require a valid license file to operate. For the server products a few endpoints such as /metrics and /licensing are accessible without a valid license, but the core functionality requires a license.

The license file

The license file must be obtained from Agile Content along with your software. Depending on your agreement the file will contain either an online or offline license. For online licenses, the machine running the service, must have an internet connection, in order to access the license server.

The command-line products, such as ew-vodingest only support offline licenses.

Using the license file

The license must be placed in: /etc/edgeware/<product-name>/license.json e.g: /etc/edgeware/ew-vod2cbm/license.json You must never attempt to edit the license file. When you receive a new license.json, and your product is a service, the service must be restarted.

License expiry

Your product will not work beyond the expiry date. For online as well as offline licenses the server product logs will warn you that the service is about to expire, when the expiry date is closer than 7 days. For automatic expiry monitoring, the /licensing HTTP endpoint is recommended. Please note that there will be no warning before expiry for command-line products.

When the service, under a valid service contract, is about to expire, your license must be renewed:

  • For online licenses, Agile Content should renew your service license on a central license server. The licensing status can be checked by calling the /licensing endpoint (see below).
  • For offline licenses, you should obtain a new license file.

Online licenses

Less than three minutes after a service is started it starts to query the license server periodically. In case of temporary network or license server outages (up to 2 hours), your service will continue to function.

Checking the license: /licensing endpoint

You may query status of your license by querying your service with the /licensing endpoint. The response, in JSON-format, looks like:

$ curl localhost:8090/licensing
{
    "status": "valid",
    "pending_until": "",
    "expiry": "2022-12-31T23:59:29Z",
    "invalid_reason": "",
    "license_type": "online"
}

The call will return "status": "pending" during temporary network outage and for less than three minutes after the service has been restarted. The response for an expired license looks like:

{
    "status": "invalid",
    "pending_until": "",
    "expiry": "2021-12-31T23:59:29Z",
    "invalid_reason": "expired",
    "license_type": "online"
}

Checking the license: server log

If the service has, or is about to expire, the server log will show the status under "topic":"licensing". For example:

{"level":"warn","request_id":"adam/HLYRsgfrwz-000005","topic":"licensing",
"LicenseExpiryDate":"2022-08-30T23:59:09Z","time":"2022-08-24T11:42:28Z",
"message":"License will expire in less than 7 days, please remember to get a renewed license"}

These log messages only appear when a licensed endpoint e.g. /segment_times.json is called.