Главный приоритет — совместимость существующих и новых расширений .epas/.wepas, включая модули, которые зависят от Windows API, DLL, COM/OLE и настольного интерфейса.
Это независимая экспериментальная работа на основе открытых исходников Павла Дуборкина. Проект не является официальным облачным сервисом DataExpress.
Что уже сделано
- Создан публичный репозиторий:
https://github.com/rausNT/mydataexpress-web - Подготовлена установка на чистую Ubuntu одной командой:
Код: Выделить всё
curl -fsSL https://raw.githubusercontent.com/rausNT/mydataexpress-web/main/deploy/install.sh | sudo bash - Развёрнут рабочий демонстрационный сервер:
http://74.208.142.118/ - Реализована загрузка через браузер файлов .DXDB, .FDB и официальных .DXDB.zip, а также комплектов шаблонов.
- Добавлена автоматическая проверка Firebird, перенос старых ODS 11/12 в Firebird 5 ODS 13 и обновление необходимых служебных таблиц DataExpress.
- На сервер добавлены официальные демонстрационные базы и бесплатные базы из раздела форума. На главной указаны понятные названия, описания и найденные демо-логины.
- Установлены найденные комплекты DOCX, DOCM, XML, ODT, ODS и HTML-шаблонов.
- Исправлена часть проблем старой вёрстки: наложение полей, высоты элементов, отображение выпадающих списков и обновление статических ресурсов.
- Добавлены общий каталог .wepas, автоматический выбор совместимой версии DX_PLUS_WEB, аудит функций и действий расширений и инструменты миграции .epas в веб-модули.
- Настроены Nginx, UFW, Fail2ban, ограничение частоты запросов, автоматические обновления безопасности и изоляция системных служб.
- Настроена CI-проверка Linux- и Win32-сборок. Автоматические тесты проверяют сервер, загрузку баз, миграцию расширений, provider API и веб-интерфейс.
Честный текущий статус расширений
Проект пока не объявляет, что поддерживаются все расширения.
Например, проверка реальной стоматологической базы обнаруживает:
- 33 функции расширений, из них готовых веб-реализаций — 0;
- 86 действий расширений, из них готовых веб-реализаций — 29.
Остальные модули не скрываются и не считаются рабочими формально: сервер показывает точный список отсутствующих реализаций. Среди найденных зависимостей: BtnMLCaption, DRTS, exec_act, j_module, MenuItem, RecordEditor, SirWolf_module, SMART, Color Field, Export Excel и другие.
Устранение этого разрыва — задача № 1.
Как планируется поддержать Windows-зависимые модули
- Переносимый код исходного .epas автоматически пробуется в штатном PascalScript Web Server без переписывания алгоритма.
- Браузерные действия получают адаптер веб-интерфейса вместо настольных окон и модальных диалогов.
- COM/OLE, WinAPI и настоящие 32-битные DLL направляются в изолированный Windows-совместимый исполнитель. Проверяется Win32-сборка сервера под Wine; полноценная Windows-VM остаётся запасным вариантом.
- После загрузки базы автоматический аудит показывает, какие функции и действия реально компилируются и выполняются, а какие требуют адаптера.
- Новые .epas/.wepas должны проходить тот же автоматический конвейер без необходимости заранее вносить имя каждого модуля в код сервера.
Важно: одна только установка Windows или Wine не превращает настольный интерфейс в браузерный. Официальный Web Server использует отдельный API и сопоставляет функции по имени, а действия — по GUID. Поэтому для полной совместимости нужны одновременно автоматический компилятор, адаптер интерфейса и Windows-исполнитель для действительно платформенных вызовов.
Какой ИИ участвует в разработке
Кодовую базу исследует и модернизирует агент OpenAI Codex на базе GPT-5. Он:
- анализирует исходники DataExpress и документацию;
- пишет код, миграции, тесты и документацию;
- собирает Linux- и Win32-версии через CI;
- разворачивает проверенные изменения на тестовом сервере;
- запускает smoke-тесты баз и анализирует журналы ошибок.
ИИ не является владельцем проекта и не принимает юридические или продуктовые решения вместо человека. Изменения публикуются открыто, проверяются тестами и могут быть независимо просмотрены в GitHub.
Как можно помочь
Особенно нужны:
- .epas, .wepas и связанные DLL, которые используются в реальных базах;
- ссылка на тему и версию расширения;
- небольшая тестовая база без персональных и коммерческих данных;
- точные шаги: форма, кнопка или выражение, ожидаемый результат;
- информация об условиях распространения модуля и DLL;
- готовые официальные веб-модули авторов расширений.
Не присылайте базы с реальными пациентами, сотрудниками, платежами, паролями, медицинской тайной или другими персональными и конфиденциальными сведениями.
Учебный режим и журналирование
Демо-сервер предназначен только для учебных и проверочных данных. Запрещены незаконная деятельность, использование сервера как мессенджера или файлообменника, попытки взлома и создание помех его работе.
Для защиты от злоупотреблений журналируются IP-адрес, время, идентификатор запроса, HTTP-метод, путь без query-параметров, статус, объём, длительность и User-Agent. Тела запросов, пароли и ключ администратора в обычный access-log не записываются. Стандартный срок хранения журнала — до 30 суток.
Полные правила:
http://74.208.142.118/html/demo-terms.html
Ссылки
- Проект и задачи:
https://github.com/rausNT/mydataexpress-web - Рабочий демо-сервер:
http://74.208.142.118/ - Исходный DataExpress Web Server:
https://github.com/dxbit/dxwebserver - Исходный настольный DataExpress:
https://github.com/dxbit/dataexpress - Зависимости:
https://github.com/dxbit/dataexpress-depend - Сайт DataExpress:
https://mydataexpress.ru/ - Документация по расширениям:
https://wiki.mydataexpress.ru/programmirovanie_v_dx:razrabotka_rasshirenij - Документация по Web Server:
https://wiki.mydataexpress.ru/programmirovanie_v_dx:veb-server - Бесплатные базы на форуме:
https://forum.mydataexpress.ru/viewforum.php?f=40
Будем благодарны за реальные примеры и замечания. Лучше одна воспроизводимая кнопка с конкретным расширением, чем общий скриншот «что-то не работает»: такой пример можно превратить в автоматический тест и больше не сломать в следующих версиях.