Конструктор блоков
Платформа A-POST-OL — это не пустой фреймворк. Это 26 готовых модулей PostgreSQL и 8+ серверных модулей C++. Из этих блоков собирается информационная система любого направления.
Ниже — карта блоков, организованная по группам. Каждый блок — ссылка на детальную страницу в db-platform wiki, где живёт источник правды.
7 архитектурных решений, отмеченных аудитом
Внешний аудитор апреля 2026 года выделил эти решения платформы как заслуживающие переноса в любой новый стек. Ниже — его формулировки и наши пояснения.
Workflow engine как данные
Состояния, переходы и события бизнес-процессов хранятся в таблицах БД, а не в коде. Меняете workflow без передеплоя сервиса.
«Состояния/переходы/события настраиваемы без деплоя. Действительно полезно.»wiki ↗
Registry — иерархический K/V для конфига
Конфигурация платформы и проекта хранится в реестре по образу Windows Registry. Меняется в runtime — без рестарта сервиса.
«Иерархический K/V для конфига, меняется в runtime.»wiki ↗
Entity file convention
Каждая бизнес-сущность собирается из 8 SQL-файлов: table, view, routine, api, rest, event, init, security. Открыл проект — мгновенно знаешь, где что лежит.
«Entity file convention — консистентная навигация.»wiki ↗
Audit log taxonomy
Реестр кодов событий 1xxx–9xxx с предсказуемой группировкой по подсистемам. Дебаг и трассировка ошибок становятся вопросом одной строки.
«Реестр кодов 1xxx-9xxx действительно упрощает дебаг.»wiki ↗
Three-layer access control (ACU/AMU/AOU)
Доступ контролируется на трёх уровнях: класс (ACU), метод (AMU), объект (AOU). Не просто role-based — тонкая модель для multi-tenant и enterprise.
«Правильная модель доступа, не просто role-based.»wiki ↗
Observer через PG NOTIFY
Pub/sub real-time подписки на события объектов: PostgreSQL LISTEN/NOTIFY → WebSocket → frontend. Без Kafka, без Redis, без оперативного overhead.
«Простые и эффективные real-time подписки без Kafka overhead.»wiki ↗
Role-based DB users
Реальные security boundaries не на уровне приложения, а на уровне PostgreSQL: kernel / admin / daemon / apibot — четыре пользователя БД с разными SECURITY DEFINER правами.
«Реальные security boundaries на уровне БД.»wiki ↗
— из независимого аудита платформы Apostol CSMS, апрель 2026.
Аутентификация и сессии
Готовые блоки авторизации, аутентификации и управления сессиями. Из коробки.
OAuth 2.0
6 grant types · PKCE · JWT (HS/RS/ES/PS)
wiki ↗Регистрация
Signup-flow с подтверждением email/phone
wiki ↗Sign In / Sign Out
Cookie-based и token-based сценарии
wiki ↗Восстановление пароля
Multi-step reset с verification code
wiki ↗Verification Codes
SMS / Email одноразовые коды
wiki ↗Сессии и контекст
User · scope · area · locale · interface
wiki ↗Сущности и объекты
Класс-ориентированная модель данных с наследованием, типами и состояниями.
Object hierarchy
Object → Reference / Document → ваши классы
wiki ↗Object endpoints
Generic CRUD: get / list / count / set / delete
wiki ↗Class endpoints
Per-class REST patterns с workflow-методами
wiki ↗Object Groups / Links
Произвольная группировка и связывание объектов
wiki ↗Object Data
Произвольные данные на объекте: text / JSON / XML / Base64
wiki ↗Object Address / Geolocation
Почтовые адреса и GPS-координаты с временной валидностью
wiki ↗Workflow и события
Машина состояний, аудит-журнал, real-time подписки. Бизнес-процесс — это данные.
Состояния и переходы
AddState / AddTransition в init.sql — настраивается в БД
wiki ↗Методы и события
AddMethod / AddEvent с обработчиками на PL/pgSQL
wiki ↗Workflow customization
Расширение состояний и методов в конфигурации проекта
wiki ↗Audit log
Кодифицированный журнал событий 1xxx–9xxx
wiki ↗Notification
Журнал изменений объектов + диспетчеризация уведомлений
wiki ↗Observer (Pub/Sub)
LISTEN/NOTIFY → WebSocket подписки c filter routing
wiki ↗Файлы, конфиг и данные
Хранение файлов, многоязычный контент, иерархический реестр настроек.
Файловый сервис
Виртуальная FS · UNIX-маски · S3-бакеты
wiki ↗Resource tree
Локализованный иерархический контент (HTML/MD/MIME)
wiki ↗Registry
K/V конфиг по образу Windows Registry, runtime-изменяемый
wiki ↗Локализация
ISO 639-1 + локализованные сообщения ошибок (6 языков)
wiki ↗KLADR
Российский классификатор адресов, готовая интеграция
wiki ↗Replication
Multi-instance синхронизация данных
wiki ↗Доступ и безопасность
Three-layer ACL, изолированные пользователи БД, area-based видимость документов.
ACU — доступ к классу
5 бит: a/c/s/u/d (access/create/select/update/delete)
wiki ↗AMU — доступ к методу
3 бита: x/v/e (execute/visible/enable) workflow-методов
wiki ↗AOU — доступ к объекту
Per-object permissions: select/update/delete
wiki ↗Area — видимость документов
Иерархическая область (филиал/регион/отдел) для multi-tenant
wiki ↗Role-based DB users
kernel / admin / daemon / apibot — реальная изоляция
wiki ↗JWT — issuer / audience
Multi-app сценарии: web, mobile, service-to-service
wiki ↗Коммуникация и интеграции
Уведомления, входящие webhooks, исходящие HTTP-запросы, отчёты.
Notice
Уведомления для пользователей (in-app)
wiki ↗Comment
Иерархические комментарии на объекте
wiki ↗MessageServer
Email / SMS / Push диспетчер (отдельный процесс)
wiki ↗PGFetch — исходящий HTTP
Async fetch к внешним API через LISTEN/NOTIFY
wiki ↗REST + Swagger UI
418 endpoints из коробки · OpenAPI 3.0 авто-генерация
wiki ↗Reports
Конструктор отчётов: tree / form / routine / ready
wiki ↗