Обозреватель и редактор BSN данных, а также набор вспомогательных инструментов для работы с блокчейном Stellar для нужд, прежде всего, участников Ассоциации Монтелиберо.
Минималистичный no-js-first сервис. Часть данных берёт из bsn_crawler, часть подгружает в процессе.
- Запустить хотя бы раз bsn_crawler.
- Создать
.envна основе.env.example. - Запустить
docker compose up.
PHP-проверки запускаются из каталога app одной командой:
composer install
composer checkОна выполняет PHP lint, Twig lint, PHPStan, regression-тесты и проверку Composer security advisories. Проверка набора Font Awesome запускается из корня проекта командой npm run fa_test.
В pull request workflow дополнительно собирается production image и запускается изолированный HTTP route smoke с временными MongoDB и Memcached. Публикация образа разрешена только после успешного прохождения обоих CI jobs.
- В docker-compose добавлен сервис
mongo(порт27017, volumemongo_data). Обновите.envпо образцу и поднимите контейнерыdocker compose up. - Быстрый доступ из терминала:
docker compose exec mongo mongosh -u "$MONGO_ROOT_USERNAME" -p "$MONGO_ROOT_PASSWORD". - Индексы (
usernames,contacts) создаются при старте контейнераappчерезapp/cli/mongo-indexes.php(запуск изinit.sh).
Grist webhooks используют существующие POST-адреса:
/tokens/reload_known_tokens;/mtla/reload_members;/documents/update_from_grist.
Webhook только планирует полное обновление соответствующей таблицы. Каждое следующее событие переносит запуск ещё на 60 секунд; app-cron обрабатывает готовые задачи раз в минуту. Дополнительно раз в час планируется полная сверка всех трёх источников.
Для каждого Grist-документа предусмотрен отдельный bearer secret:
GRIST_WEBHOOK_SECRET_KNOWN_TOKENS;GRIST_WEBHOOK_SECRET_MTLA_MEMBERS;GRIST_WEBHOOK_SECRET_DOCUMENTS.
Секрет задаётся в Grist в поле Header Authorization как Bearer <secret>. Пока соответствующая переменная окружения пуста, endpoint принимает webhook без проверки — это режим миграции, а не рекомендуемая постоянная конфигурация.
Операторы, чьи Stellar-аккаунты перечислены в ADMINS, могут посмотреть состояние синхронизаций и запустить любую из них немедленно на странице /admin/caches/.
Стоит согласовать с @sozidatel (в телеграме одноимённый аккаунт) планируемый пул реквест. Приветствуется оптимизация и улучшение архитектуры, добавление новых tools в ответ на боли участников МТЛА.
This project is dedicated to the public domain under the CC0 1.0 Universal license.
You are free to copy, modify, and use it for any purpose, without permission.
На русском:
Проект BSN Expert передан в общественное достояние по лицензии CC0 1.0 Universal.
Вы можете свободно копировать, изменять и использовать материалы без ограничений и без разрешения автора.