Files
mono/.env.example
Alex Ant 7ef138ba19
Trigger Contracts Docs Deploy / trigger-coopenomics (push) Failing after 7s
Publish Docs / build-and-publish-docs (push) Failing after 17m11s
feat(file-storage): универсальное файловое хранилище контура кооператива (MinIO/S3-портабельное) (#359)
* [E59-2][@ant] feat(inter): InterFileStorage порт — типы, токен INTER_FILE_STORAGE и типизированные ошибки для универсального файлового хранилища контура кооператива

* [E59-3][@ant] feat(controller): MinIO-адаптер InterFileStoragePort, реестр бакетов, @UseBucket/@InjectBucket декораторы и FileStorageInfrastructureModule с forRoot/forFeature; 36 unit-тестов на адаптер, реестр, декоратор и HMAC-подписание

* [E59-4][@ant] feat(controller): HTTP-ручка GET /api/storage/:bucket/:key с HMAC-валидацией подписи и стримом из MinIO; fetchObjectForReadProxy на адаптере, controller registered в FileStorageInfrastructureModule.forRoot; 9 e2e-тестов через supertest на 200/403/404/502

* [E59-5][@ant] test(controller): integration suite против реального MinIO — 8 сценариев на полный цикл put/head/getReadUrl/GET/delete + ошибки лимитов/MIME/metadata + HMAC-роут 200/403/404; docker-compose рядом с тестами, npm run test:integration:file-storage с автодетектом доступности MinIO

* [E59-6][@ant] feat(controller,compose): MinIO в dev docker-compose, env-валидация и FileStorageInfrastructureModule.forRoot в app.module — контроллер на старте идемпотентно создаёт бакет coop-<coopname>; integration-тесты проходят против MinIO из dev compose

* [E59-6][@ant] docs(file-storage): краткий README для разработчиков расширений — пример @UseBucket/@InjectBucket/forFeature, операции, ошибки, env, как запускать тесты

---------

Co-authored-by: coopops <coopos@coopenomics.world>
2026-05-14 23:14:10 +05:00

42 lines
2.1 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Шаблон per-instance конфига. Скопируй в .env и подправь под свой инстанс.
#
# Зачем: docker-compose.yaml и boot-скрипты параметризованы — это
# позволяет держать несколько копий репо (mono-ai-1, mono-ai-2 ...) с
# полностью изолированной инфраструктурой и запускать их параллельно.
#
# Без .env compose поднимется с дефолтами (как у mono-ai-1).
# Дефолты ниже соответствуют первому инстансу — для второго и далее
# применяй смещение portов: offset = (INSTANCE_INDEX - 1) * 10.
# Индекс инстанса (1 = базовый, 2/3/... = параллельные копии).
INSTANCE_INDEX=1
# Имя docker compose проекта. Определяет префикс автогенерируемых
# имён контейнеров (mongo → <COMPOSE_PROJECT_NAME>-mongo-1).
# По умолчанию compose возьмёт имя папки — оставь как есть, если папка
# уже называется уникально (например, mono-ai-1).
COMPOSE_PROJECT_NAME=mono-ai-1
# Host-порты (для INSTANCE_INDEX=2 прибавь +10 к каждому, для =3 +20 и т.д.).
NODE_HTTP_PORT=8888
NODE_P2P_PORT=9876
NODE_HISTORY_PORT=8070
MONGO_HOST_PORT=27017
REDIS_HOST_PORT=6379
PG_HOST_PORT=5532
COOPBACK_HOST_PORT=2998
DESKTOP_HOST_PORT=2999
OPENSEARCH_HOST_PORT=9200
MINIO_HOST_PORT=9000
MINIO_CONSOLE_HOST_PORT=9001
# MinIO root credentials (только для локального dev; на prod подменяются плейбуком).
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin
# URL для скриптов и кода, запускаемого с хоста (boot, networks.sh,
# preactivate.sh, health.ts). Должны соответствовать host-портам выше.
CHAIN_URL=http://127.0.0.1:8888
API_URL=http://127.0.0.1:2998/v1/graphql
MONGODB_URL=mongodb://127.0.0.1:27017