Skip to content

Загальна інформація

Починаючи з версії 3.0 деякі задачі в "Рахівниці" були виділені в окремі мікросервіси - невеликі програми з котрими користувач безпосередньо не взаємодіє, але котрі використовуються іншими програмами. Всі вони представляють REST API для комунікації і побудовані за схожими принципами.

Всі мікросервіси працюють як демони в Linux або служби у Windows. Всі вони конфігуруються одноіменним .ini файлом. При запуску у Linux конфігураційний файл шукається в таких місцях: - $XDG_CONFIG_HOME/abacus/ - $HOME/.config/abacus/ - /opt/abacus/etc/ - /etc/abacus/ - власний каталог програми

При запуску у Windows файл шукається в наступних місцях: - %PROGRAMDATA%\Abacus\ - %LOCALAPPDATA%\Abacus\ - власний каталог програми

Використовується перший знайдений файл, тому якщо ви редагуєте .ini файл що лежить поруч з бінарником і програма ігнорує ваші зміни, перевірте чи часом у вас немає ще одного-двох конфігів у інших місцях з переліку вище.

Кожна програма веде .log файл. Як і у випадку з файлами конфігурації, використовуєтсья перший з доступних для запису каталогів у такій послідовності: для Linux - /var/log/abacus/ - /opt/abacus/log/ - $HOME/.config/abacus/log/ для Windows - %PROGRAMDATA%\Abacus\Logs\ - .\Logs\ - %LOCALAPPDATA%\Abacus\Logs\

Доступ до REST API кожного сервісу конфігурується у елементі whitelist у файлах конфігурації. Додатково, кожен запит повинен містити заголовок X-API-KEY з валідним ключем.

Abasyn

abasyn — це сервіс синхронізації та реплікації баз даних Abacus.

Детально що таке реплікація та як нею користуватись описано тут.

Керування реплікацією

Для активації реплікації необхідно: 1. Додати записи про бази-приймачі в таблицю rpl_databases головної бази даних (поля dbname, dbuser, dbpass). 2. Виконати POST-запит на /api/repl/initialize. Це ініціалізує необхідні метадані та тригери в БД. 3. Перевірити статус можна через GET-запит на /api/repl/status або /api/repl/receivers.

Abhard

abhard — проксі-сервіс для роботи з торговим обладнанням (сканери, принтери, ваги, ПРРО).

Конфігурація (abhard.ini)

Конфігурація складається з основної секції [main] та описів пристроїв [device_...]. - Сканери: підтримуються serial (COM-порт), hid та devfile (/dev/hidraw). - Принтери: escpos (через USB порт або пристрій) та dummy (запис у файл для тестування). - Ваги: моделі VTA16, DigiDS. - ПРРО: інтеграція через бібліотеку eusign (необхідно вказати шляхи до ключів та сертифікатів).

База користувачів та токени

abhard використовує систему токенів, що зберігаються у файлі tokens.json. При першому запуску файл відсутній. Щоб його створити, потрібно відправити запит на /api/admin/initialise. Програма ініціалізує базу користувачів та створює токен адміністратора котрий відпраляється у відповіді на запит. Його необхідно зберегти та використовувати в заголовку X-API-KEY для подальшого керування токенами та обладнанням. Його не треба використовувати для звичайної роботи. Для цього потрібно створити токен користувача що на даний момент може мати два типи: worker та probationer. Токен worker використовується для звичайної роботи працівника і має повний доступ до обладнання. Токен probationer використовується для користувачів що не повинні мати доступ до певного функціоналу. На даний момент з цим токеном не можна відкрити та закрити фіскальну зміну.

Abrest

abrest — REST-сервіс для доступу до даних основної системи. Наразі знаходиться в активній розробці. Мінімальний функціонал повинен забезпечити синхронізацію залишків та документів між базою даних Abacus та інтернет-магазинами.