Последняя версия DataExpress 26.10.11

Изображение Скачать | Изображение Что нового? | Демо

DataExpress Web: открытая модернизация сервера и совместимость расширений

Любые вопросы, связанные с веб-сервером DataExpress Web Server.
Аватара пользователя
rausNT
Эксперт
Сообщения: 1130
Зарегистрирован: 24 авг 2017, 09:23
Благодарил (а): 408 раз
Поблагодарили: 81 раз

DataExpress Web: открытая модернизация сервера и совместимость расширений

Сообщение rausNT » 25 июл 2026, 21:34

Мы начали публичную модернизацию DataExpress Web Server. Цель проекта — сделать понятную веб-версию, в которую можно загрузить существующую базу DataExpress и открыть её в браузере без ручной настройки сервера.

Главный приоритет — совместимость существующих и новых расширений .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-зависимые модули

  1. Переносимый код исходного .epas автоматически пробуется в штатном PascalScript Web Server без переписывания алгоритма.
  2. Браузерные действия получают адаптер веб-интерфейса вместо настольных окон и модальных диалогов.
  3. COM/OLE, WinAPI и настоящие 32-битные DLL направляются в изолированный Windows-совместимый исполнитель. Проверяется Win32-сборка сервера под Wine; полноценная Windows-VM остаётся запасным вариантом.
  4. После загрузки базы автоматический аудит показывает, какие функции и действия реально компилируются и выполняются, а какие требуют адаптера.
  5. Новые .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

Ссылки


Будем благодарны за реальные примеры и замечания. Лучше одна воспроизводимая кнопка с конкретным расширением, чем общий скриншот «что-то не работает»: такой пример можно превратить в автоматический тест и больше не сломать в следующих версиях.
We are uncovering better ways of developing
software by doing it and helping others do it.

Аватара пользователя
rausNT
Эксперт
Сообщения: 1130
Зарегистрирован: 24 авг 2017, 09:23
Благодарил (а): 408 раз
Поблагодарили: 81 раз

DataExpress Web: открытая модернизация сервера и совместимость расширений

Сообщение rausNT » 25 июл 2026, 22:51

текст Кодекс написал, дальше он тоже от моего имени будет писать. поэтому сорян за стилистику
We are uncovering better ways of developing
software by doing it and helping others do it.

Аватара пользователя
rausNT
Эксперт
Сообщения: 1130
Зарегистрирован: 24 авг 2017, 09:23
Благодарил (а): 408 раз
Поблагодарили: 81 раз

DataExpress Web: открытая модернизация сервера и совместимость расширений

Сообщение rausNT » 25 июл 2026, 23:52

Отчёт за 25.07.2026

Сегодня работа шла по двум направлениям: эксплуатация публичного демо-сервера и задача № 1 — совместимость старых и новых .epas/.wepas.

Уже работает на публичном сервере
  • Подключён постоянный адрес с HTTPS: https://dx.74-208-142-118.sslip.io/. Сертификат Let's Encrypt установлен, автоматическое продление включено. Доступ по старому IP также сохранён.
  • На главную и в favicon установлен новый логотип с Linux-пингвином.
  • Добавлена переключаемая тёмная тема. Сейчас это beta: старые формы хранят собственные цвета и растровые подложки, поэтому по найденным примерам последовательно исправляются контраст и яркие «островки».
  • Добавлены правила учебного использования, предупреждение о запрете реальных данных и незаконной деятельности, а также описание журналирования.
  • Сервер журналирует IP, переходы, загрузки форм, HTTP-статусы и ошибки без записи паролей и ключа администратора в обычный access-log.
  • Продолжают работать загрузка баз через веб-интерфейс, автоматическая проверка Firebird и каталог демо-баз.

Совместимость расширений — задача № 1
  • В реальной базе CAFETERIA воспроизведена ошибка DX_PLUS_WEB-1.71: Invalid number of parameters. Причина найдена точно: старый модуль вызывает GotoForm с исторической сигнатурой из двух параметров, а PascalScript не поддерживает перегрузки методов.
  • В сервер добавлен автоматический нормализатор исторических вариантов GotoForm: старые вызовы с 2 параметрами и варианты с Boolean переводятся в современную сигнатуру с режимом открытия формы. Исходный .wepas менять вручную не требуется.
  • Исправление прошло полный CI: JavaScript-тесты, PascalScript smoke, сборку Win32 и запуск собранного Win32-сервера.
  • Добавлено серверное журналирование ошибок компиляции расширений с именем соединения, модулем, строкой и колонкой.
  • Подготовлена статистика расширений на карточках баз: количество EPAS/WEPAS, сколько модулей заработало автоматически и сколько ещё требует адаптера.
  • CI уже собирает изолированный Win32-пакет для Wine-исполнителя. Он нужен для настоящих WinAPI/DLL/COM-зависимостей, которые нельзя честно эмулировать одним Linux PascalScript.

Что ещё не объявляю готовым
  • Нормализатор GotoForm и новая статистика прошли тесты, но их Linux-сборка ещё разворачивается на публичном сервере. После выкладки отдельно проверю CAFETERIA по тому же сценарию, который дал ошибку.
  • Тёмная тема ещё полируется на реальных формах: сегодня найден случай, где заголовок группы оказался белым на светлом фоне. Исправление уже внесено в стили и проходит проверку.
  • Полная совместимость всех расширений пока не достигнута. Ошибки не скрываются — они превращаются в диагностические записи и воспроизводимые тесты.

Проверки

Завтра продолжаю с автоматической проверкой расширений прямо на загруженных базах, выкладкой исправления GotoForm и расширением Windows/Wine-слоя.
We are uncovering better ways of developing
software by doing it and helping others do it.

Аватара пользователя
admin
Разработчик
Сообщения: 8038
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 292 раза
Поблагодарили: 1919 раз

DataExpress Web: открытая модернизация сервера и совместимость расширений

Сообщение admin » 26 июл 2026, 13:29

Интересно понаблюдать что из этого получится. В какой IDE работаете?

Аватара пользователя
rausNT
Эксперт
Сообщения: 1130
Зарегистрирован: 24 авг 2017, 09:23
Благодарил (а): 408 раз
Поблагодарили: 81 раз

DataExpress Web: открытая модернизация сервера и совместимость расширений

Сообщение rausNT » 26 июл 2026, 13:35

Отчёт за 26.07.2026

Сначала отвечу на вопрос об IDE. Основная работа идёт в Codex Desktop: агент анализирует и правит исходники Pascal/JavaScript/Shell, локальные тесты запускаются из PowerShell, а полноценная сборка FPC/Lazarus и проверка Win32 выполняются в GitHub Actions. Готовые Win32-пакеты затем автоматически проверяются под Wine на Ubuntu-сервере.

Что сделано сегодня

  • Собран, выпущен и развёрнут изолированный Windows/Wine worker v0.1.6. Публичный сервер после обновления проходит авторизацию и открывает реальные формы CAFETERIA.
  • Возвращён веб-адаптер EvalExpr: старые расширения могут вычислять выражения через текущую сессию формы.
  • Добавлены совместимые CanFocus, SetFocus и SelectAll. Запрос фокуса теперь доходит до браузера через autofocus/onfocus, а не остаётся пустой заглушкой.
  • Исторические вызовы GotoForm продолжают автоматически нормализоваться без ручного изменения исходного .wepas.
  • Для CAFETERIA сейчас автоматически или через штатный WEPAS работают 28 из 56 действий и 1 из 2 функций расширений. Ещё 29 сопоставлений честно помечены как ошибки компиляции, а не как «поддерживаемые».
  • Ошибки DX_PLUS продвинулись с Unknown EvalExpr, затем Unknown CanFocus, до следующего реального места — Type mismatch. Это означает, что два отсутствовавших слоя совместимости уже пройдены.
  • В диагностику добавлено сохранение конкретной строки исходника возле ошибки компиляции. Это позволит дальше исправлять EPAS/WEPAS по точному выражению, а не только по номеру строки автоматически сгенерированного модуля.
  • Публичный сервер закрыт от поисковой индексации: robots.txt запрещает обход, ответы содержат X-Robots-Tag: noindex, nofollow, noarchive.
  • Проверены журналы доступа. Боты уже обнаружили публичный адрес, что нормально для открытого сервера; признаков успешного взлома не найдено. IP, переходы, формы, статусы и User-Agent продолжают журналироваться.

Проверки и публикации

  • Локальный набор: 135 тестов, 134 успешно, 1 Linux-only тест штатно пропущен на Windows.
  • Wine worker v0.1.6: релиз GitHub.
  • Последний коммит с расширенной диагностикой: be4b49b.
  • Рабочий сервер: dx.74-208-142-118.sslip.io.

Следующий шаг

Разобрать точный Type mismatch в автоматически сгенерированном остатке DX_PLUS, затем последовательно добавить честные веб-адаптеры для Text/Field, TPopupMenu, TBitmap, TForm и остальных найденных desktop API. Цель не меняется: новый .epas/.wepas должен проходить тот же автоматический конвейер без списка заранее известных имён.
We are uncovering better ways of developing
software by doing it and helping others do it.

Аватара пользователя
rausNT
Эксперт
Сообщения: 1130
Зарегистрирован: 24 авг 2017, 09:23
Благодарил (а): 408 раз
Поблагодарили: 81 раз

DataExpress Web: открытая модернизация сервера и совместимость расширений

Сообщение rausNT » 26 июл 2026, 13:39

и пока все - токены закончились :D
We are uncovering better ways of developing
software by doing it and helping others do it.

neznayka-na-lune
Интересующийся
Сообщения: 130
Зарегистрирован: 22 дек 2025, 16:10
Благодарил (а): 22 раза
Поблагодарили: 17 раз

DataExpress Web: открытая модернизация сервера и совместимость расширений

Сообщение neznayka-na-lune » 26 июл 2026, 20:56

rausNT писал(а):и пока все - токены закончились :D

ну, а я начал присматриваться вот к этой системе https://onebase.ivantitov.tech/index.html#
там, уже на вполне приличном уровне, многие возможности реализованы.
нет привязки к не самому распространенному у нас Firebird
до конца года понаблюдаю за развитием. если интузазизм у Ивана не пропадет и поддержку не забросит - наверно буду пробовать на его системе делать себе ERP.
потому как датаэкспресс, хоть он мне и нравится внешне, слишком нишевый продукт.

Аватара пользователя
rausNT
Эксперт
Сообщения: 1130
Зарегистрирован: 24 авг 2017, 09:23
Благодарил (а): 408 раз
Поблагодарили: 81 раз

DataExpress Web: открытая модернизация сервера и совместимость расширений

Сообщение rausNT » 26 июл 2026, 21:52

neznayka-na-lune писал(а):
rausNT писал(а):потому как датаэкспресс, хоть он мне и нравится внешне, слишком нишевый продукт.


уже очень много написано на DX
We are uncovering better ways of developing
software by doing it and helping others do it.

neznayka-na-lune
Интересующийся
Сообщения: 130
Зарегистрирован: 22 дек 2025, 16:10
Благодарил (а): 22 раза
Поблагодарили: 17 раз

DataExpress Web: открытая модернизация сервера и совместимость расширений

Сообщение neznayka-na-lune » 26 июл 2026, 22:11

rausNT писал(а):
neznayka-na-lune писал(а):
rausNT писал(а):потому как датаэкспресс, хоть он мне и нравится внешне, слишком нишевый продукт.


уже очень много написано на DX

в том то и дело, что чем дальше в лес, тем толще партизаны. 32-разрядность скоро уйдет из поддержки

Аватара пользователя
rausNT
Эксперт
Сообщения: 1130
Зарегистрирован: 24 авг 2017, 09:23
Благодарил (а): 408 раз
Поблагодарили: 81 раз

DataExpress Web: открытая модернизация сервера и совместимость расширений

Сообщение rausNT » 27 июл 2026, 09:07

neznayka-na-lune писал(а):32-разрядность скоро уйдет из поддержки


надо все под капот спрятать. WINE думаю будет поддерживать 32 бита всегда. Меня больше платформозависимость EPAS смущает. 1 августа снова заставлю Кодекс пилить проект. Или у кого есть свободные токены - может присоединятся :D если есть желание.
We are uncovering better ways of developing
software by doing it and helping others do it.


Вернуться в «Общие вопросы»