Документация модуля skydns_website.api.subscription (API Подписки)
Набор представлений для методов Subscription API v 1.9.
skydns_website.api.subscription.views.activate_user(provider, data)
Активировать пользователя провайдера.
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя
|
| Результат: |
|
skydns_website.api.subscription.views.add_ip(provider,user,profile,data)
Метод добавляет один или несколько статических адресов без замены.
Если при этом адрес находится на другом профиле этого же пользователя, то происходит его перепривязка к указанному профилю. Если адрес привязан к профилю другого пользователя, то выдается ошибка для этого или нескольких адресов. Добавление других адресов в наборе происходит без ошибки.
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя
- ip - один или несколько IP адресов
|
Необязательные параметры:
| Параметры: |
- profile - числовой id профиля
- comment - комментарий к ip
|
| Результат: |
|
skydns_website.api.subscription.views.add_vpn(provider,data)
Метод пытается создать сертификат vpn-соединения.
Возможные ошибки:
- при попытке создать для пользователя впн-соединение с именем уже использующимся в его впн-соединениях
- при попытке создать впн-соединений больше определённого для пользователя планфичей vpn
- при попытке создать соединение на несуществующий или принадлежащий другому пользователю профиль(по profile_id)
- при попытке реселлера создать соединение не своему пользователю
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя
- name - название vpn
- profile_id - идентификатор профиля пользователя
|
| Результат: |
{‘ovpn’: vpn.ovpn()}
|
skydns_website.api.subscription.views.clear_ip(provider,data)
Метод очищает все адреса привязанные к профилю.
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя
- profile - числовой id профиля
|
| Результат: |
|
skydns_website.api.subscription.views.clear_vpn_for_profile(provider,data)
Метод удаляет все vpn-соединения для профиля пользователя
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- profile_id - идентификатор профиля пользователя
|
| Результат: |
|
skydns_website.api.subscription.views.clear_vpn_for_user(provider,data>)
Метод удаляет все vpn соединения пользователя
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - логин пользователя, для которого нужно удалить vpn соединения
|
| Результат: |
|
skydns_website.api.subscription.views.create_profile(provider,data)
Метод создает профиль пользователю.
| Параметры: |
- provider - провайдер
- ident - логин пользователя
- name - имя профиля
- tls - использовать ли TLS
- blockpage_id - id страницы блокировки
|
skydns_website.api.subscription.views.deactivate_user(provider,data)
Деактивировать пользователя провайдера.
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя
|
| Результат: |
|
skydns_website.api.subscription.views.get_active_users(provider,data)
Метод возвращает список активных пользователей реселлера и их тарифы.
| Результат: |
список активных пользователей: |
[
{‘username’: ‘username1’, ‘plan_name’: ‘plan name’}, {‘username’: ‘username2’, ‘plan_name’: ‘plan name’}, ...
]
skydns_website.api.subscription.views.get_activity(provider,data)
Информация об активности пользователя за определенную дату. В зависимости от настроек реселлера возвращается старая статистика или аналитика.
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя, для которого необходимо получить информацию.
|
Необязательные параметры:
| Параметры: |
- date - дата, за которую необходимо получить отчет о действиях пользователя в формате YYYY-MM-DD.
- profile_id - идентификатор профиля пользователя, для которого запрашивается отчет
|
| Результат: |
{“requests”: “2600”, “blocks”: “581”} |
skydns_website.api.subscription.views.get_activity_report(provider,data)
Отчет об активности пользователя за определенный период времени.
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя, для которого необходимо получить информацию.
- start - дата начала периода для получения статистики в формате YYYY-MM-DD.
- end - дата окончания периода для получения статистики в формате YYYY-MM-DD.
|
Необязательный параметр: :param profile_id: идентификатор профиля пользователя, для которого запрашивается отчет
{
“labels”: [
“2016-06-29 14:00:00”, “2016-06-29 15:00:00”,
], “datasets”: [
{“label”: “Requests”, “data”: [375, 275]}, {“label”: “Blocks”, “data”: [13, 0]}
]
}
skydns_website.api.subscription.views.get_category_report(provider,data)
Отчет по категориям пользователя за определенный период времени.
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя, для которого необходимо получить информацию.
- start - дата начала периода для получения статистики в формате YYYY-MM-DD.
- end - дата окончания периода для получения статистики в формате YYYY-MM-DD.
|
Необязательный параметр: :param profile_id: идентификатор профиля пользователя, для которого запрашивается отчет
{
“Movies & Video”: “5”, “File Storage”: “2”, “Home & Family”: “3”
}
skydns_website.api.subscription.views.get_daily_stat(provider,data)
Возвращает реселлеру статистику за день для указанного пользователя
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- date - день, за который требуется статистика
- ident - пользователь, чья статистика требуется
|
Необязательные параметры:
| Параметры: |
- email_to - адрес, на который необходимо отправить ссылку со статистикой
- profile_id - id профиля пользователя для которого запрашивается статистика
|
| Return file_url: |
|
ссылка на файл, содержащий статистику
|
Отчет содержит следующие столбцы: “Timestamp”, “Domain name”, “Visits”, “Blocks”, “Categories”, “Profile”, “Username”, “User’s timestamp”.
skydns_website.api.subscription.views.get_list_activity_report(provider,data)
Отчет об активности пользователя за определенный период времени.
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя, для которого необходимо получить информацию (в запросе может быть несколько).
- start - дата начала периода для получения статистики в формате YYYY-MM-DD.
- end - дата окончания периода для получения статистики в формате YYYY-MM-DD.
|
| Результат: |
словарь вида: |
{
“2019-08-01”: {
“username”: {
“visits”: 262972530, “blocks”: 567080
},....
},....
}
skydns_website.api.subscription.views.get_popular_report(provider,data)
Отчет о популярных запросах пользователя за определенный период времени.
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя, для которого необходимо получить информацию.
- start - дата начала периода для получения статистики в формате YYYY-MM-DD.
- end - дата окончания периода для получения статистики в формате YYYY-MM-DD.
|
Необязательный параметр: :param profile_id: идентификатор профиля пользователя, для которого запрашивается отчет
{
“labels”: [“example.com”, “google.com”, “asdfg.com”], “datasets”: [
{“label”: “Requests”, “data”: [630, 474, 290]}, {“label”: “NXdomain”, “data”: [0, 0, 290]},
{“label”: “Blocks”, “data”: [630, 0, 0]}
]
}
skydns_website.api.subscription.views.get_vpn_list(provider,data)
Метод для получения списка vpn соединений пользователя
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - логин пользователя, для которого нужно вернуть список vpn соединений
|
| Результат: |
список vpn соединений пользователя
|
skydns_website.api.subscription.views.list_ip(provider,data)
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя
|
Необязательный параметр: :param profile: числовой id профиля
| Результат: |
все IP адреса привязанные к профилю |
skydns_website.api.subscription.views.method_not_found(*args,**kwargs)
Метод-пустышка-заглушка.
Нужен, чтобы, согласно спецификации jsonrpc, отдавать удобочитаемую ошибку. Ответ полностью соответствует спецификации: https://www.jsonrpc.org/specification.
skydns_website.api.subscription.views.profiles(provider,data)
Метод возвращает список активных профилей пользователя.
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - логин пользователя, для которого нужно получить писок профилей
|
| Return dict: |
список профилей в формате как пример ниже
{
70749: u’Основной’, 93773: u’ДхтСкий’,
}
|
skydns_website.api.subscription.views.prolongate(provider,data)
Включение и изменение платного тарифа для пользователя. Этот метод всегда должен вызываться после метода subscribe для включения услуги пользователю.
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя
|
Необязательный параметр: :param plan: код тарифного плана
skydns_website.api.subscription.views.remove_ip(provider,data)
Удаление IP адреса пользователя.
| Параметры: |
- provider - параметр нормализуется из ApiKey декоратором authenticate_provider
- ident - login пользователя
- ip - IP адрес пользователя
|
| Результат: |
|
skydns_website.api.subscription.views.remove_vpn(provider, data)
Метод для удаления vpn соединения пользователя
| Параметры: |
- provider – параметр нормализуется из ApiKey декоратором authenticate_provider
- id – id vpn соединения
|
| Результат: |
|
send_monthly_stat(provider, data)
Отправка статистики за месяц пользователю по электронной почте.
| Параметры: |
- provider – параметр нормализуется из ApiKey декоратором authenticate_provider
- ident – login пользователя,
- year – год в формате YYYY,
- month – месяц в формате MM, за который необходимо сформировать отчет,
|
Необязательный параметр: :param profile_id: идентификатор профиля пользователя, для которого запрашивается статистика.
Отчет содержит следующие столбцы: “Timestamp”, “Domain name”, “Visits”, “Blocks”, “Profile”, “Categories”.
skydns_website.api.subscription.views.subscribe(provider, data)
Регистрация пользователя в системе с переданными реквизитами и установка тарифа по умолчанию.
| Параметры: |
- provider – параметр нормализуется из ApiKey декоратором authenticate_provider
- password – пароль пользователя
|
Необязательные параметры:
| Параметры: |
- login – login пользователя
- email – адрес электронной почты пользователя
- customer –
|
| Результат: |
|
skydns_website.api.subscription.views.subscribe_plans(provider, data)
Метод возвращает список доступных тарифов, назначаемых при создании/изменении карточки пользователя.
| Параметры: |
provider – параметр нормализуется из ApiKey декоратором authenticate_provider |
skydns_website.api.subscription.views.subscription_info(provider, data)
Информация о подписке. На текущий момент возвращает наступила ли дата окончания подписки.
| Параметры: |
- provider – параметр нормализуется из ApiKey декоратором authenticate_provider
- ident – login пользователя
|
| Результат: |
{‘date_end’: true|false}
|
skydns_website.api.subscription.views.unsubscribe(provider, data)
Отключение пользователя. Пользователь переключается на бесплатный тариф.
| Параметры: |
- provider – параметр нормализуется из ApiKey декоратором authenticate_provider
- ident – login пользователя
|
| Результат: |
|
skydns_website.api.subscription.views.update_email(provider, data)
Изменение email пользователя для восстановления пароля и информационных сообщений.
| Параметры: |
- provider – параметр нормализуется из ApiKey декоратором authenticate_provider
- ident – login пользователя
- email – новый email пользователя
|
| Результат: |
|
skydns_website.api.subscription.views.update_ip(provider, data)
Создать или обновить динамический IP адрес пользователя и привязать его к необходимому профилю фильтрации.
| Параметры: |
- provider – параметр нормализуется из ApiKey декоратором authenticate_provider
- ident – login пользователя
- ip – новый динамический IP адрес пользователя
|
Необязательные параметры:
| Параметры: |
- hostname – для привязки ip к hostname
- profile – числовой id профиля к которому необходимо привязать IP адрес
|
| Результат: |
|
skydns_website.api.subscription.views.update_nat(provider, data)
Метод для добавления или обновления привязки профиля пользователя реселлера к одному из NAT DNS
| Параметры: |
- profile_id – id профиля пользователя.
- address – IP адрес нашего DNS(anycast-address).
|
| Результат: |
None
|
skydns_website.api.subscription.views.update_password(provider, data)
Обновление пароля пользователя.
| Параметры: |
- provider – параметр нормализуется из ApiKey декоратором authenticate_provider
- ident – login пользователя
- password – новый пароль пользователя
|
| Результат: |
|
skydns_website.api.subscription.views.update_profile(provider, data)
Метод для изменения параметров профиля пользователя реселлера
| Параметры: |
- provider – параметр нормализуется из ApiKey декоратором authenticate_provider
- profile_id – id профиля пользователя
|
Необязательные параметры:
| Параметры: |
- name – новое имя профиля пользователя
- tls – булево значение для установки профилю, будет ли использоваться TLS.
|
| Результат: |
{‘id’: profile_id, ‘name’: profile_name, ‘tls’: true|false}
|
Метод для получения списка всех пользователей реселлера
Пример запроса: curl "https://www.skydns.ru/provider_api/users?key=<api_key>"
Результат:
{
"jsonrpc": "1.9",
"status": "ok",
"data": [{"is_active": true, "username": "kok_000001", "date_end": "", "plan": "Бизнес"}, {"is_active": false, "username": "test2", "date_end": "", "plan": "Школа"}, {"is_active": true, "username": "test3", "date_end": "2025-05-01T00:00:00", "plan": "Домашний"}],
"result": [{"is_active": true, "username": "kok_000001", "date_end": "", "plan": "Бизнес"}, {"is_active": false, "username": "test2", "date_end": "", "plan": "Школа"}, {"is_active": true, "username": "test3", "date_end": "2025-05-01T00:00:00", "plan": "Домашний"}]
}
Метод для получения установленных категорий фильтрации на профиле
Возможные ошибки:
- не передан profile_id -
profile_id param required
- пользователь с profile_id не принадлежит реселлеру -
Wrong provider
Пример запроса: curl "https://www.skydns.ru/provider_api/categories?key=<api_key>&profile_id=<profile_id>"
Результат:
{
"status": "ok",
"data": {"block_unknown_sites": true, "categories": [64, 68], "safe_search_enabled": false, "safe_youtube_enabled": true, "white_list_only": false},
"result": {"block_unknown_sites": true, "categories": [64, 68], "safe_search_enabled": false, "safe_youtube_enabled": true, "white_list_only": false},
"jsonrpc": "1.9"
}
Метод для установки категорий фильтрации на профиль
Необязательные параметры:
| Параметры: |
- cat (multiple param)
- safe_youtube_enabled
- block_unknown_sites
- safe_search_enabled
- white_list_only – для привязки ip к hostname
|
Возможные ошибки:
- не передан profile_id -
profile_id param required
- пользователь с profile_id не принадлежит реселлеру -
Wrong provider
- передача white_list_only с выключенной фичей white_list_mode -
white_list_only param is not available for this user
- невалидные значения cat (не преобразуются к инту) -
Invalid cats
- значения cat не могут быть установлены этому пользователя по его тарифному плану либо таких категорий не существует -
Invalid cats
- переданы невалидные значения safe_youtube_enabled/block_unknown_sites/safe_search_enabled/white_list_only -
safe_youtube_enabled/block_unknown_sites/safe_search_enabled/white_list_only param must be True or False
Пример запроса: curl "https://www.skydns.ru/provider_api/set_categories?key=<api_key>&profile_id=<profile_id>&cat=<cat_id1>&cat=<cat_id2>&block_unknown_sites=<true|false>&safe_search_enabled=<true|false>&safe_youtube_enabled=<true|false>&white_list_only=<true|false>"
Результат:
{
"status": "ok",
"jsonrpc": "1.9",
"data": {"safe_search_enabled": false, "white_list_only": false, "block_unknown_sites": true, "safe_youtube_enabled": true, "categories": [64, 68]},
"result": {"safe_search_enabled": false, "white_list_only": false, "block_unknown_sites": true, "safe_youtube_enabled": true, "categories": [64, 68]}
}