Skip to content

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

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

Всі мікросервіси працюють як демони в Linux або служби у Windows. Кожен конфігурується одноіменним .yaml файлом. При запуску у Linux конфігураційний файл шукається в таких місцях:

  • $XDG_CONFIG_HOME/abacus/ (або $HOME/.config/abacus/, якщо змінна не задана)
  • /opt/abacus/etc/
  • /etc/abacus/
  • власний каталог програми

При запуску у Windows файл шукається в наступних місцях:

  • %PROGRAMDATA%\Abacus\Conf\
  • %PROGRAMDATA%\Abacus\
  • %LOCALAPPDATA%\Abacus\
  • %APPDATA%\Abacus\
  • власний каталог програми

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

Якщо конфігурації немає ніде, програма створює її сама — у %PROGRAMDATA%\Abacus\Conf\ для Windows і у $XDG_CONFIG_HOME/abacus/ (або $HOME/.config/abacus/) для Linux. Конфігурацію попередніх версій, що зберігалась у .ini файлі, програма при першому запуску переписує у .yaml поруч і видаляє старий файл — переносити параметри вручну не потрібно.

Поряд із конфігурацією кожна програма тримає власний файл токенів доступу — abhard.json, abrest.json, abasyn.json. У Linux новий такий файл створюється у /opt/abacus/etc/, якщо цей каталог існує.

Кожна програма веде .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.

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

Детально про синхронізацію даних з інтернет-платформами описано тут.

Abhard

abhard — проксі-сервіс для роботи з торговим обладнанням.

Abrest

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