Веб-сервис на Flask: согласование документов и маршруты
Согласование договоров на Flask: маршруты, SLA и версии файла — не BPM из коробки.
Celery, Flask, PostgreSQL, workflow
Я делал внутренний веб-сервис на Flask — согласование договоров и служебных записок: маршрут, роли, версии файла, комментарии. Не конструктор «BPM из коробки», а явная state-машина под регламент заказчика.
Я описал состояния документа (черновик → согласование → правки → утверждён / отклонён) и переходы с проверкой, кто имеет право на шаг. Я написал маршруты: последовательный и параллельный контур, эскалация по SLA, если согласующий молчит.
Я собрал UI на Jinja + серверные формы: список «мои на согласовании», превью PDF, diff версий. Файлы — в объектное хранилище, в БД только метаданные и checksum. Я закрыл доступ по отделам и запретил скачивание чужих вложений прямой ссылкой.
Я добавил аудит и выгрузку журнала для проверки. Стек: Flask, SQLAlchemy, PostgreSQL, Redis, Celery (напоминания), Gunicorn, Docker. NDA: компания не публикуется.