33 lines
2.3 KiB
Markdown
33 lines
2.3 KiB
Markdown
# Upstream provenance
|
||
|
||
`upstream/` — вендоренная копия <https://github.com/yjrszcq/dsh-docker> (MIT).
|
||
|
||
- базовый commit: `2564866f7844f334379dc4913dc466a5a4138306` (main, 2026-09-19)
|
||
- причина вендоринга: самодостаточность репо (пересборка образа без внешних
|
||
зависимостей); лицензия MIT допускает копирование при сохранении уведомления
|
||
(см. `upstream/LICENSE`).
|
||
|
||
## Наши изменения относительно upstream
|
||
|
||
1. **`container/environment/resources/patches/managed-lifecycle.mjs`** — якоря
|
||
патча адаптированы к dsh 0.2.x (обратная совместимость с 0.1.x сохранена,
|
||
проверено на 0.2.0-rc.2 и 0.1.5-rc.2):
|
||
- динамический импорт Web Profile: в 0.2.x фасад `./profile-boot.js` без хэша
|
||
и с любым стилем кавычек;
|
||
- SIGTERM-handler и settled-return: регэксп по форме вместо точного отступа
|
||
(0.1.x — 2/1 таб, 0.2.x — 3/2 таба);
|
||
- dispatch в `bin.js`: список известных сигнатур `parseDshArgs`
|
||
(0.2.x добавила `version, manageDesktopProfile` из scope `runCli`).
|
||
Именно из-за этих якорей у автора стоит пин `latestSupportedDsh` — с
|
||
толерантными якорями образ собирается на новых версиях без поднятия пина
|
||
(dev-ветка сборки пин не проверяет).
|
||
2. **`container/control-plane/hooks/dsh-web-ready.mjs`** — дрейф контрактов
|
||
web-сервера 0.2.x:
|
||
- token-exchange редирект: допускается `location: './'` (0.2.x) помимо `/`
|
||
(0.1.x) — без этого runtime падал «DSH Web authentication exchange failed»;
|
||
- URL ресурсов плагинов в boot-манифесте 0.2.x корневые-относительные
|
||
(`plugins/…`) — нормализуются до `/plugins/…` перед проверкой и загрузкой.
|
||
|
||
Остальное (compose, scripts/, docs/, README) лежит на верхнем уровне и в
|
||
upstream не вмешивается.
|