Позиция по безопасности
Готовность к статье 28 GDPR · поставщик услуг CCPA · SOC 2 Type I в процессе
Ataski управляет единой многоарендной базой данных Postgres с защитой на уровне строк (Row Level Security), применяемой на уровне базы данных; журналом аудита только для добавления по каждому действию; и ограничителями стоимости на каждого арендатора для сдерживания ущерба от компрометации любого отдельного набора учётных данных. Эта страница — готовая к закупкам сводка — для контрактно обязывающей поверхности см. Соглашение об обработке данных.
Многоарендность
Каждая таблица с данными клиента несёт столбец tenant_id и политику Row Level Security Postgres, которая фильтрует каждое чтение и запись по сессионной переменной привязанного арендатора. Приложение устанавливает переменную из аутентифицированного субъекта в начале каждого запроса; база данных отклоняет любой запрос, пытающийся читать или писать за пределами привязанного арендатора, независимо от корректности на уровне приложения.
Эшелонированная защита для поверхностей, находящихся вне Postgres: кэш LiteLLM разделяет пространство имён каждого промпта по соли на каждого арендатора, так что попадания в кэш не могут пересекать арендаторов; полезные нагрузки долговременных рабочих процессов шифруются ключами на каждого арендатора на границе рабочего процесса; а объектное хранилище R2 разделяет пространство имён каждого ключа под tenants/<uuid>/…, так что утёкший URL не может перечислить других арендаторов.
Журнал аудита
Каждый вызов LLM, вызов внешнего API и модификация данных записываются в единую таблицу audit_log только для добавления с ключом (tenant_id, correlation_id). Таблица заблокирована на уровне базы данных (REVOKE UPDATE, DELETE для роли приложения) — единственный путь изменить историю аудита — прямой административный доступ операционной службы Ataski, который сам создаёт строки аудита с отдельным маркером actor_type="ops".
Шифрование
- При хранении. Каждый набор учётных данных клиента (refresh-токен OAuth, API-ключ, секрет вебхука) оборачивается Fernet (AES-128 в режиме CBC с аутентификацией HMAC-SHA-256) перед сохранением как BYTEA. Ключи шифрования данных на каждого арендатора находятся в дорожной карте; шифрование на уровне хранилища (AES-256) сегодня обеспечивается Neon для Postgres и Cloudflare R2 для объектного хранилища.
- При передаче. TLS 1.3 — минимум на каждом публичном эндпоинте и каждом исходящем вызове суб-обработчика.
Контроль доступа
Аутентификация делегирована WorkOS (SSO, SAML, беспарольный вход). Авторизация ограничена ролью на уровне маршрута: действия с высокими ставками (одобрение пакета для совета директоров, отправка ежемесячного обновления для инвесторов, запуск исходящей кампании) требуют именованной роли (founder или finance_lead) в рабочем пространстве.
Области доступа коннекторов
Каждая подключаемая оператором система работает с задокументированным набором областей доступа на стороне провайдера. Список ниже формируется из нашего внутреннего манифеста областей доступа — то, что вы видите, и есть то, что фактически запрашивает клиент OAuth (или эквивалентные учётные данные).
- Anthropic (Bring Your Own Key). Routes every Anthropic worker + supervisor LLM call through your own Anthropic API key (sk-ant-*). Ataski stores the key Fernet-encrypted at rest and reads it only through the LiteLLM gateway proxy at call time; no copy lives anywhere else. Anthropic invoices you directly; Ataski's invoice excludes LLM cost for any traffic routed through this key. Rotate or deactivate from /app/llm-keys at any time.
- HubSpot. Reads deals, contacts, and companies. Cannot create or modify any HubSpot record.
- NetSuite. Reads GL transactions, AR aging, AP aging, accrual snapshots, and subsidiary roster via NetSuite Token-Based Authentication (TBA) — an OAuth 1.0a-flavoured credential the customer generates inside their NetSuite UI (Setup → Users/Roles → Access Tokens). NetSuite does not offer OAuth 2.0 for SuiteTalk REST; the customer creates the Integration record + Access Token bound to a read-only NetSuite role of their choice, and Ataski only issues read queries against it. Cannot post journal entries, modify records, or close accounting periods.
- OpenAI (Bring Your Own Key). Routes every OpenAI supervisor + embedding call through your own OpenAI API key (sk-*). Ataski stores the key Fernet-encrypted at rest and reads it only through the LiteLLM gateway proxy at call time; no copy lives anywhere else. OpenAI invoices you directly; Ataski's invoice excludes LLM cost for any traffic routed through this key. Rotate or deactivate from /app/llm-keys at any time.
- QuickBooks Online. Reads chart of accounts, P&L, balance sheet, cash flow, invoices, customers, and vendors. Cannot write or modify any QuickBooks data.
- Recall.ai. Creates bots that join scheduled meetings and reads back their transcripts and engagement metadata. Write surface is limited to dispatching the bot; cannot mutate any calendar, video-conference, or meeting-host data.
- Sage Intacct. Reads GL accounts, journal entries, AR/AP, and trial balance via a customer-provisioned read-only Web Services user. Sage Intacct does not offer OAuth; the customer creates the WS user inside their Sage Intacct admin and supplies its credentials. Cannot post journal entries or modify any Sage Intacct data.
- Stripe. Reads subscriptions, invoices, customers, refunds, and payment intents via a customer-provided Restricted API key. Cannot create, modify, or refund charges.
- Xero. Reads the P&L, reports, invoices, and organisation settings via OAuth. Cannot create or modify any Xero data.
Обработка PII
Ataski действует как поставщик услуг по CCPA (Cal. Civ. Code §1798.140(ag)), а не брокер данных. Контактные записи остаются в области RLS каждого арендатора и никогда не агрегируются между арендаторами; фирмографические не-PII (название компании, отрасль, публичные деловые записи) могут кэшироваться между арендаторами для производительности. Мы не зависим от поставщиков-брокеров данных для поиска email (Hunter, Apollo, Findymail, ZoomInfo, Coresignal); поиск контактов использует паттерны составления из открытых источников. Удаление по каждому получателю в течение 45 дней с момента запроса через /privacy/optout.
Суб-обработчики
Канонический список суб-обработчиков опубликован на /legal/subprocessors и в настоящее время насчитывает 18 поставщиков. Изменения суб-обработчиков сопровождаются уведомлением за 30 дней через внутрипродуктовый баннер и email администратору рабочего пространства; Клиент может возразить на разумных основаниях в течение этого окна.
Соглашение об обработке данных
Основное DPA охватывает статью 28 GDPR, UK GDPR и обязательства поставщика услуг по CCPA: прочитайте его на /legal/dpa. Аутентифицированная версия на /app/legal/dpa заполняет поля Контролёра из рабочего пространства и поддерживает электронную подпись основателем или финансовым руководителем рабочего пространства.
Реагирование на инциденты
Ошибки и исключения фиксируются в Bugsink (хостируемая замена Sentry); дежурная смена рассматривает критичность инцидента в течение одного часа с первого сигнала. Статус операционных эндпоинтов публикуется на публичной странице статуса. По любому инциденту, затрагивающему данные Клиента, мы уведомляем затронутого Контролёра без неоправданной задержки и в течение 72 часов согласно статье 33 GDPR.
Позиция по соответствию
- Готовность к статье 28 GDPR. Основное DPA доступно для скачивания и электронной подписи; список суб-обработчиков опубликован и снабжён отпечатком.
- Поставщик услуг CCPA. Позиция Cal. Civ. Code §1798.140(ag) — никакой деятельности брокера данных, область каждого арендатора для всех контактных данных, опубликован эндпоинт удаления.
- SOC 2 Type I в процессе. Определение объёма аудита завершено; период наблюдения начинается в Q3 2026. Отчёт будет доступен по NDA после выпуска.