Модель даних
Концептуально Tracy нагадує реляційну СУБД, дозволяючи зберігати й опрацьовувати інформацію різних типів.- Набір даних (Dataset) — аналог таблиці в SQL. Визначає структуру інформації певного типу (завдання, товари, клієнти, замовлення тощо), складається з властивостей.
- Властивість (Property) — аналог колонки. Наприклад, товари можуть мати назву й ціну, а клієнти — ім’я й телефон.
- Запис (Record) — аналог рядка таблиці. Належить до конкретного набору даних та складається з датумів і метадатумів.
- Датум (Datum) — аналог значення певної комірки. Атомарна одиниця даних, належить до конкретного запису й відповідає певній властивості.
Зверніть увагу: на відміну від звичайної SQL-комірки, запис може не містити взагалі або містити одразу декілька датумів однієї властивості (наприклад, декілька кольорових тегів або файлів).
- Метадатум (Metadatum) — службова інформація, не містить користувацьких даних. Наприклад, порядок записів у колонці на канбан-дошці.
Керування процесами й правами доступу
Окрім властивостей, набори даних також визначають стани (State), у яких можуть перебувати записи. Наприклад, товари можуть бути в наявності або розпроданими, а замовлення — новими, в обробці чи виконаними. Запис завжди перебуває в певному стані. Для кожного стану можна окремо налаштувати дозволи (Permission) на перегляд або редагування властивостей записів і загалом до дій над ними (створення, зміна стану, архівування й видалення). Доступ налаштовується на основі ролі (Role) користувача й того, чи прив’язаний він до конкретного запису. Наприклад, користувачі ролі «Менеджер» не можуть редагувати інформацію про чужих клієнтів і не можуть бачити їхні документи, тоді як можуть створювати й редагувати власних без обмежень. Ці обмеження діють «вертикально»:- Якщо користувач не бачить жодної властивості запису — він не бачить увесь запис.
- Якщо користувач не бачить жодної властивості набору даних — він не бачить увесь набір даних.
Зверніть увагу: обмеження доступу застосовуються на сервері й не залежать від способу взаємодії з ним (REST API чи вебсокети), тож якщо користувач не має дозволу на перегляд певних даних — для нього їх «не існуватиме».