#Ячейки и данные
Статус: Доступно. Ячейки, их границы данных и журнал выдач ПДн; метод
GET /disclosures— Планируется.
Назначение: какие бывают ячейки, на какой адрес слать запросы, что значит «ключ одной ячейки», как распределены обязанности по персональным данным.
#Три ячейки
Платформа работает тремя независимыми боевыми ячейками. У каждой отдельные серверы, отдельная база, отдельные секреты и своё юридическое лицо. Данные одной ячейки не видны в другой.
| Ячейка | Бренд / домен | Базовый адрес API | Языки страниц |
|---|---|---|---|
| RU | Формула крема — formula-cream.pro | https://formula-cream.pro/api/public/v1 | русский |
| EN | Walker Formulation Academy — wfacademy.org | https://wfacademy.org/api/public/v1 | английский, русский |
| ID | wfacademy.id | https://wfacademy.id/api/public/v1 | индонезийский, английский, русский |
Ячейка, в которой вы зарегистрированы, определяет:
- адрес API, виджета и загрузчика;
- валюту кошелька и платных операций (RU — рубли, EN — фунты, ID — рупии);
- юридическое лицо, с которым заключён договор;
- где физически хранятся ваши данные.
Язык страницы — не ячейка. Сайт ячейки ID отдаёт страницы и по-индонезийски, и по-английски, и по-русски. Не определяйте ячейку по языку: используйте адрес, на котором вы входите в кабинет, либо префикс своего ключа.
#Ключ одной ячейки
Ключ действует только на адресе той ячейки, где выпущен. Префикс показывает ячейку:
| Префикс | Ячейка |
|---|---|
sap_ru_… | RU |
sap_en_… | EN |
sap_id_… | ID |
Ключ нельзя перенести в другую ячейку. Если у вас есть аккаунты в нескольких ячейках, это независимые аккаунты: в каждой ячейке свои интеграции и свои ключи.
#Ошибка wrong_cell
Если вызвать API ячейки EN ключом RU, вернётся:
HTTP/1.1 401 Unauthorized
Content-Type: application/problem+json
X-Request-Id: req_EXAMPLE0002
{
"type": "https://wfacademy.org/developers/errors#wrong_cell",
"title": "Ключ принадлежит другой ячейке",
"status": 401,
"code": "wrong_cell",
"detail": "Этот ключ выпущен в другой ячейке. Используйте адрес из поля correct_base_url.",
"correct_base_url": "https://formula-cream.pro/api/public/v1",
"request_id": "req_EXAMPLE0002"
}
Что делать: взять адрес из поля correct_base_url и исправить базовый адрес в конфигурации. Если вы обслуживаете арендаторов нескольких ячеек, храните пары «ключ — базовый адрес» вместе и выводите адрес из префикса ключа (sap_<ячейка>_…).
#Хранение данных и ответственность
| Вопрос | Ответ |
|---|---|
| Кто оператор ПДн | Арендатор. Он определяет цели и основания обработки ПДн своих клиентов. |
| Кто мы | Обработчик по поручению арендатора. |
| Где данные RU | В России. Из ячейки RU персональные данные трансгранично не передаются. |
| Где данные EN и ID | В своей ячейке, на своей базе. |
| Можно ли получить данные другой ячейки | Нет. Запросы всегда идут в ячейку ключа. |
#ПДн в ячейке RU
Ограничение ключа одной ячейкой гарантирует, что платформа хранит данные RU в России. Оно не мешает вам получить данные запросом с российского адреса и переслать их за рубеж: с момента выдачи ответственность за соблюдение закона об ПДн несёт арендатор как оператор.
Точки API с ПДн (диалоги, сообщения, лиды, контакты) открыты на всех ячейках. В ячейке RU для областей с ПДн (conversations:*, leads:*) действуют дополнительные условия:
| Условие | Как выполняется |
|---|---|
| Список разрешённых IP | Обязателен для интеграции: ключ с такими областями без списка не выпускается |
| Страна размещения принимающей системы | Указывается при подключении интеграции; допускается только РФ |
| Основание передачи | Указывается при подключении интеграции |
| Запрет трансграничной передачи | Если страна размещения не РФ, области conversations:*, leads:* и флаг include_pii для этой интеграции не выдаются: ответ 403 pii_transfer_not_allowed |
| Журнал раскрытий и журнал выдач | Ведутся автоматически, см. ниже |
#Передача ПДн во внешние системы
Подключение внешней CRM или вебхука с include_pii: true — это передача ПДн третьему лицу по решению арендатора. Для неё:
- арендатор указывает страну размещения внешней системы и основание передачи;
- на RU ПДн передаются только получателям, размещённым в РФ: если указана иная страна, области
conversations:*,leads:*иinclude_piiдля интеграции не выдаются, отказ —403 pii_transfer_not_allowed; - запись о раскрытии попадает в журнал раскрытий (интеграция, перечень полей, основание, страна, время).
Подробно — Передача ПДн.
#Журнал выдач ПДн
Каждая выдача ПДн через API (ответ с контактом, событие с include_pii: true) фиксируется строкой журнала: кто (интеграция и ключ), что (тип данных), сколько записей. Сами значения в журнал не пишутся.
Журнал виден арендатору в кабинете и по GET /disclosures (Планируется; курсорный список, Соглашения). Хранится 3 года.
#Что платформа делает с ПДн по умолчанию
- Тексты, отправляемые языковым моделям, проходят маскировку ПДн (телефон, почта, карта, мессенджеры, паспорт, СНИЛС, ИНН, имена, адреса заменяются заглушками).
- События вебхуков по умолчанию «тонкие»: в них только идентификаторы и тип, а ПДн запрашиваются отдельно с ключом; флаг подписки
include_piiвключает их в событие явно. - В журналах запросов нет тел запросов и ответов.
#Сроки хранения служебных данных
| Данные | Срок |
|---|---|
| Журнал запросов API (без тел и ПДн) | 90 суток |
| Журнал доставок вебхуков | 30 суток |
| Журнал выдач ПДн и журнал раскрытий | 3 года |
| Кэш идемпотентности | 24 часа |
| Курсор списка | 24 часа |
Надгробия удалённых записей (include_deleted) | 30 суток |
| Хиты трекера (в аналитике) | 180 суток |
Сроки хранения самих диалогов, лидов и контактов определяются настройками арендатора и договором.
#Что отличается между ячейками
| Что | Поведение |
|---|---|
| Базовый адрес и ключи | свои у каждой ячейки |
| Валюта денег и кошелька | RUB, GBP, IDR |
| Состав языков | см. таблицу выше |
| Серверный маяк модулей по умолчанию | RU — полный; EN и ID — анонимный |
| ПДн-точки API | открыты на всех ячейках; обязательный список IP, страна и основание передачи, а также запрет передачи получателям вне РФ — только для RU |
Форма запросов, ошибок и вебхуков одинакова во всех ячейках. Различаются только адреса, валюты и условия по ПДн.
#Заметки
- Если вы работаете с несколькими ячейками, держите отдельные интеграции, ключи и вебхуки для каждой.
- События вебхуков отправляются из той ячейки, где находится арендатор; принимающая сторона не должна считать адрес отправителя постоянным — опирайтесь на подпись (Вебхуки).