feat(web-publish): публикация сервисов расширений в default.vrd

publishExtensionsByDefault="true" на <ws> и <httpServices>: сервисы,
поставляемые расширениями конфигурации, публикуются вместе с сервисами
самой конфигурации. Без атрибута HTTP-сервис расширения отдаёт 404,
web-сервис — 500 «Сервис не найден».

Проверено E2E на 8.3.24 (A/B на одном дескрипторе, оба порта).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-08 15:19:08 +03:00
co-authored by Claude Opus 5
parent 27e78859e8
commit 1eeea204c3
4 changed files with 28 additions and 8 deletions
+18 -2
View File
@@ -16,8 +16,8 @@
base="/appname"
ib="connection-string">
<standardOdata enable="true"/>
<ws pointEnableCommon="true"/>
<httpServices publishByDefault="true"/>
<ws pointEnableCommon="true" publishExtensionsByDefault="true"/>
<httpServices publishByDefault="true" publishExtensionsByDefault="true"/>
</point>
```
@@ -62,6 +62,22 @@ URL: `/{AppName}/ws/{WebServiceName}?wsdl`
Публикация HTTP-сервисов. `publishByDefault="true"` публикует все сервисы из конфигурации.
URL: `/{AppName}/hs/{RootUrl}/...`
#### Сервисы расширений — `publishExtensionsByDefault`
Атрибут `publishExtensionsByDefault="true"` на `<ws>` и `<httpServices>` публикует сервисы,
поставляемые **расширениями** конфигурации. По умолчанию платформа их не публикует: без атрибута
HTTP-сервис расширения отдаёт **404**, web-сервис — **500 «Сервис не найден»**. Атрибуты
`pointEnableCommon` / `publishByDefault` на сервисы расширений не распространяются.
Проверено E2E на 8.3.24: A/B на одном и том же дескрипторе — с атрибутами `/hs/...` и `/ws/...?wsdl`
отдают 200, без них 404/500. Перезапуск Apache для смены дескриптора не нужен, vrd читается на запрос.
> Расширение должно быть применено к базе данных (`/db-update -Extension <имя>`), иначе его сервисы
> недоступны независимо от дескриптора.
> **Побочный эффект.** Атрибут действует на все подключённые расширения: любое расширение,
> загруженное в ИБ, автоматически выставляет свои сервисы наружу.
### Расположение
`{ApachePath}/publish/{AppName}/default.vrd`