License API
License API е официалният интерфейс на FalcoSoft.uk за валидиране на лицензни ключове, статус, срок и активирани модули. Използва се от инсталациите на ITSystem (клиентски сайтове), за да отключват премиум функционалности по домейн.
Основна идея
Клиентската инсталация прави заявка към FalcoSoft License Server с ключ + домейн. Сървърът връща статус и списък с активни модули. На база на това ITSystem отключва функционалности.
- Валидиране на ключ
- Проверка на домейн
- Срок и статус
- Списък активни модули
Endpoint-и (примерна структура)
Validate
Връща валиден ли е ключът за даден домейн и кои модули са активни.
/api/license/validate
Status
Връща само статуса на ключа (активен/изтекъл/блокиран) + срок.
/api/license/status
Modules
Връща списък активни модули по ключ и домейн.
/api/license/modules
Request формат
Препоръчителен формат: POST JSON с минимални полета:
license_key и domain. По желание: product, ip, version.
{
"license_key": "FS-XXXX-XXXX-XXXX",
"domain": "client-site.com",
"product": "ITSystem",
"version": "1.0.0"
}
Сигурност
- Не изпращайте ключа в URL (GET), използвайте POST body.
- Логвайте само частично ключа (напр. последни 4 символа).
- Rate-limit на IP и domain.
- Препоръчително: HMAC подпис (по желание).
Response формат (пример)
Успешна валидация
{
"ok": true,
"status": "active",
"domain": "client-site.com",
"expires_at": "2026-12-31",
"modules": [
"core",
"marketplace",
"payments",
"tecdoc"
]
}
Неуспешна валидация
{
"ok": false,
"status": "invalid",
"reason": "license_key_not_found"
}
Интеграция от ITSystem (примерен flow)
- Админът въвежда лицензен ключ в ITSystem.
- ITSystem изпраща POST към FalcoSoft License API с ключ + домейн.
- FalcoSoft връща статус + списък активни модули.
- ITSystem записва резултата локално (cache) и отключва модулите.
- Периодично (cron) се прави повторна проверка (например на 6/12 часа).
Препоръчан cache
За да няма излишен трафик и да сте устойчиви при временен проблем с API-то:
- Cache TTL: 6–12 часа
- Fail-open за core, fail-closed за premium (по избор)
- Локално логване на последната успешна валидация
Нужда от реалните endpoint-и?