AIDB Dev Center

Readable architecture document

AIDB System Structure Canon

Каноническая структура system/ и границы системных пакетов.

activesource: AIDB_SYSTEM_STRUCTURE_CANON.md

AIDB System Structure Canon

Статус

Статус: active system structure canon.

Дата: 2026-05-20.

Этот документ фиксирует каноническую структуру system/ в проекте AIDB.

1. Главный принцип

system/ хранит системный код, системные пакеты, системные шаблоны, системные contracts и системные правила.

system/ не хранит клиентский инвентарь, клиентские документы, клиентские storefront pages и локальные данные конкретного бизнеса.

Для этого существует children/.

2. Каноническая структура system

system/
  shell/
  gate/
  appmarket/
  applications/
  contours/
  storefront/
  backend/
  database/
  runtime/
  languages/
  themes/
  shared/

Эти зоны являются канонической верхнеуровневой структурой system/.

3. Shell

Путь:

system/shell/

Shell - это системный рабочий каркас платформы.

В Shell входят:

  • верхняя панель;
  • навигация;
  • левое меню;
  • рабочая область;
  • открытие карточек;
  • открытие приложений;
  • открытие бизнес-контуров;
  • глобальные действия;
  • language/theme switching;
  • current contour routing;
  • базовая orchestration-логика рабочей среды.

В Shell не входят:

  • login;
  • registration;
  • password reset;
  • бизнес-логика приложений;
  • бизнес-логика бизнес-контуров;
  • клиентские данные;
  • торговые данные;
  • intercompany;
  • supplier/client cabinet logic.

Минимальный пакет Shell:

system/shell/
  interface.html
  logic.js
  manifest.json
  settings.json
  texts.json
  README.md
  developer.md
  contracts/

4. Gate

Путь:

system/gate/

Gate - это входной пакет до рабочей среды.

В Gate входят:

  • login;
  • registration;
  • invite and verification flows;
  • password reset;
  • session bootstrap;
  • входная проверка доступа;
  • pre-shell flows.

Gate не превращается в mini-shell.

Минимальный пакет Gate:

system/gate/
  interface.html
  logic.js
  manifest.json
  settings.json
  texts.json
  README.md
  developer.md
  contracts/

5. AppMarket

Путь:

system/appmarket/

AppMarket - внутренний рынок AIDB для подключения приложений и бизнес-контуров внутри платформы.

В него входят:

  • catalog UI;
  • install flows;
  • app cards;
  • contour cards;
  • availability display;
  • install permissions;
  • trial/subscription display rules;
  • appmarket docs and contracts.

AppMarket используют владельцы/администраторы бизнес-центров и бизнес-уровней после входа в систему. Это не внешний публичный магазин для случайных посетителей и не общая рекламная витрина.

Минимальный пакет:

system/appmarket/
  interface.html
  logic.js
  manifest.json
  settings.json
  texts.json
  README.md
  developer.md
  contracts/

6. Applications

Путь:

system/applications/

Это встроенные системные приложения.

Примеры:

  • messages;
  • tasks;
  • calendar;
  • documents;
  • profile;
  • settings;
  • administration;
  • management;
  • personal-cabinet;
  • позже mail.

Каждое приложение живет в своей отдельной папке:

system/applications/<app_code>/
  interface.html
  logic.js
  manifest.json
  settings.json
  texts.json
  README.md
  developer.md
  user-guide.md
  contracts/

7. Contours

Путь:

system/contours/

Это installable business contour packages.

Каждый контур живет в своей отдельной системной папке:

system/contours/<business_contour_code>/
  interface.html
  logic.js
  manifest.json
  settings.json
  texts.json
  README.md
  developer.md
  user-guide.md
  contracts/

Тут хранится системный шаблон контура, а не клиентский установленный экземпляр.

8. Storefront

Путь:

system/storefront/

Это системная зона storefront-движков и системных шаблонов публикации.

Здесь живут:

  • storefront engines;
  • storefront contracts;
  • storefront templates;
  • publication helpers;
  • rendering rules;
  • системные storefront assets.

Конкретные страницы конкретного клиента здесь не живут.

Они живут в children/ у владельца.

9. Backend

Путь:

system/backend/

Это системный backend AIDB.

Рекомендуемая структура:

system/backend/
  modules/
  services/
  shared/
  entrypoints/

Минимально backend должен быть модульным по доменам:

  • shell;
  • gate;
  • appmarket;
  • applications;
  • business contours;
  • employees and RBAC;
  • cards;
  • commercial proposals;
  • storefront;
  • personal cabinet;
  • intercompany.

Не строить один большой общий route-файл как основу архитектуры.

10. Database

Путь:

system/database/

Это системная зона database-структуры.

Рекомендуемая структура:

system/database/
  config/
  migrations/
  schema/
  seeds/

Здесь хранятся:

  • database config;
  • migrations;
  • schema/models;
  • seed/demo data.

11. Runtime

Путь:

system/runtime/

Это системная runtime-зона.

Рекомендуемая структура:

system/runtime/
  modules/
  workers/
  schedulers/
  storage/
  contracts/

Здесь хранятся:

  • runtime contracts;
  • workers;
  • scheduled jobs;
  • upload/download handlers;
  • runtime orchestration;
  • общие runtime helpers.

12. Languages

Путь:

system/languages/

Каноническая структура:

system/languages/
  en/
  ru/
  az/
  zh/
  ar/

Это централизованная зона языков.

Каждый системный пакет и каждый модуль должен использовать общую language architecture, а не локальный хаотичный словарь.

13. Themes

Путь:

system/themes/

Здесь живут:

  • системные темы;
  • theme contracts;
  • shared visual tokens;
  • theme assets.

14. Shared

Путь:

system/shared/

Это зона общих ресурсов, которые не принадлежат одному модулю.

Здесь могут жить:

  • shared schemas;
  • shared contracts;
  • shared helpers;
  • shared UI assets;
  • shared icons;
  • shared validation logic.

shared/ не должен превращаться в свалку всего подряд.

15. Что нельзя класть в system

В system/ нельзя класть:

  • клиентские документы;
  • клиентские storefront pages;
  • клиентские uploads;
  • локальный инвентарь конкретного business_center;
  • локальный runtime state конкретного клиента;
  • данные конкретного поставщика как владельца;
  • данные конкретного клиента как владельца.

Все это живет в children/ и/или в базе.

16. Критерий готовности

System structure считается зафиксированной, если:

  • каждая системная зона имеет понятную границу;
  • Shell и Gate разделены;
  • AppMarket и storefront разделены;
  • applications и contours разделены;
  • backend, database и runtime не смешаны;
  • languages и themes централизованы;
  • client inventory не попадает в system/.