Документація

Налаштуйте синхронізацію та керуйте tenant-ом

Практичний довідник для інтегратора й адміністратора: від підключення datasource до перевірки SQL-шаблонів і контролю sync-сесій.

01 · Конфігурація

Синхронізаційні скрипти

Кожний запис sync_table_config описує одну логічну таблицю мобільної бази. Напрямок визначається автоматично за заповненими SQL-шаблонами: download, upload або both.

Рекомендований порядок

Створіть конфігурацію вимкненою, налаштуйте ключі й SQL, виконайте Validate та Dry-run, і лише після успішної перевірки увімкніть таблицю.

table_name

Унікальне ім’я таблиці в протоколі та локальній SQLite.

primary_keys[]

Стабільні колонки, що однозначно ідентифікують рядок.

enabled

Вмикає таблицю для нових sync-сесій після завершення перевірок.

parameter mappings

JSON-масиви відповідності параметрів для insert, update і delete.

Призначення SQL-полів

read_actual_sqlЗавантажує актуальні рядки, змінені в межах sync-вікна.
read_deleted_sqlПовертає ключі видалених рядків для очищення локальної SQLite.
insert_sqlСтворює на сервері рядок, доданий мобільним клієнтом.
update_sqlЗастосовує локальні зміни до наявного серверного рядка.
delete_sqlВидаляє або логічно позначає серверний рядок.

02 · SQL templates

Плейсхолдери та параметри

Значення ніколи не конкатенуються з SQL. Renderer замінює плейсхолдери на bound parameters, а NULL обробляє як SQL literal.

Session values{{s.last_table_download}}{{s.to_ts}}{{s.username}}{{s.device_id}}
Record values{{r.id}}{{r.customer_id}}{{r.updated_at}}Доступні колонки конкретного upload-запису.
Download example
SELECT id, customer_id, total, updated_at
FROM sales_order
WHERE updated_at > {{s.last_table_download}}
  AND updated_at <= {{s.to_ts}}
Upload example
UPDATE sales_order
SET total = {{r.total}}, updated_at = {{r.updated_at}}
WHERE id = {{r.id}}

Для таблиць із локально генерованим INTEGER AUTOINCREMENT увімкніть calculate_client_pk, задайте client_pk_column, розмір діапазону та read-only SELECT read_client_pk_max_sql, який повертає одну колонку sequence_value.

03 · Безпечний rollout

Перевірка, Dry-run та аудит

  1. 1
    Validate

    Перевіряє відомі плейсхолдери, структуру mappings та SQL через adapter обраного tenant-а.

  2. 2
    Dry-run

    Виконуйте лише read-шаблони з тестовими user/device, часовим вікном і лімітом до 500 рядків.

  3. 3
    Перевірте результат

    Зіставте колонки з мобільною схемою, перевірте первинні ключі, межі timestamp і відсутність зайвих даних.

  4. 4
    Збережіть та увімкніть

    Audit History фіксує автора, час, diff і snapshot кожної зміни.

Не використовуйте user input у тексті SQL. Передавайте session/record values тільки через {{s.*}} та {{r.*}}. Спочатку тестуйте на обмеженому наборі даних.

04 · Tenant administration

Адміністрування tenant-а

Tenant ізолює datasource, користувачів, API key, sync-конфігурації та операційні дані. Поточна консоль надає глобальне керування tenant-ами ролі superadmin; tenant-scoped admin і viewer працюють лише в межах призначеного tenant-а.

General і datasource

Задайте name, slug, статус, gRPC endpoint, invitation TTL та дозволені типи БД. У Datasource налаштуйте driver, host, port, database, schema, username і password, після чого виконайте Test Connection.

Користувачі

Створюйте tenant-користувачів із ролями admin або viewer. Viewer призначений для read-only моніторингу; пароль можна обертати без зміни username.

Мобільний доступ

API key tenant-а показується лише один раз під час створення. Зберігайте його в secret store. Для підключення пристроїв використовуйте керовані invitations із визначеним TTL.

Контроль змін

Переглядайте audit history конфігурацій, sync-сесії, події, user state та queue. Не передавайте datasource password через admin або adapter API.

Порядок первинного налаштування

  1. Створіть tenant і одразу збережіть виданий API key.
  2. Вкажіть sync endpoint та строк дії мобільних запрошень.
  3. Оберіть дозволений database driver і налаштуйте datasource.
  4. Запустіть Test Connection перед створенням sync-конфігурацій.
  5. Створіть admin/viewer accounts і мобільне invitation.
  6. Додайте, перевірте та поступово ввімкніть sync-таблиці.

05 · Operations

Щоденний контроль

DashboardПеревіряйте failed sessions, disabled tables і проблеми queue.
SessionsВідкривайте події по порядку та знаходьте фазу, таблицю й текст помилки.
User StateКонтролюйте access status і час останніх download/upload для користувача та пристрою.
QueueПовторюйте failed upload лише після усунення причини; viewer не може виконувати retry.