📚 Capital - База знаний (Knowledge Base)
Внутренняя документация банковской платформы Capital (собственная копия Iorys, whitelabel под Stefa Pay group). Секретов здесь НЕТ by design - только архитектура, ранбуки, процессы и решения.
🗂 Индекс
📐 architecture/ - как устроено
| Файл | Про что |
|---|---|
| Обзор платформы - единый пульт | 🏦 единый пульт: домены, доступы, инфра, ностро, расходы, задачи, план |
| Архитектура Capital v1.0 | 🏗 прод-инфраструктура (серверы, бэкапы, мониторинг, деплой, бюджет) - утв. CEO 15.09.2026 |
| 01 - Обзор сервисов и репозиториев | 🧱 3 сервиса + capital_shared, стек, порты, репозитории |
| 02 - Модель данных | 🗃 33 ORM-модели: назначение, ключевые поля, инварианты |
| 03 - Интеграции | 🔌 SumSub · Papaya · NS Cards · KYT · Resend (режимы simulate/live) |
| 04 - RBAC и роли | 🔑 роли/права back-office, изоляция кабинета, CSRF, сессии |
| 05 - Модель безопасности | 🛡 изоляция client_id, идемпотентность денег, 4-eyes, PAN, вебхуки |
| 06 - Функциональные модули | 🧩 что реализовано и LIVE, паритет с Iorys ~88% |
| 07 - Карта Ledger | 🗺 18 разделов back-office: маршруты, назначение, права |
| 08 - XBO | 🪙 крипто-шлюз: USDT-TRC20 → фиат → ностро, статус этапов |
| 09 - Казначейка | 💰 read-only монитор: экраны, безопасность, путь до прода |
🛠 runbooks/ - как эксплуатировать
| Файл | Про что |
|---|---|
| deploy | 🚀 деплой на capital-prod (rsync→build→migrate→up), гочи |
| rollback | ⏪ откат кода/данных/DR |
| MIGRATIONS | 🗄 миграции Alembic (изменение схемы, baseline) |
| backup-restore | 💾 интерим-бэкапы (age) + восстановление |
| hardening-server | 🔒 чеклист hardening сервера (состояние + шаги) |
| incident-response | 🧯 реагирование на инцидент, матрица отказов |
Целевые бэкапы (pgBackRest + WAL/PITR → B2) - в
deploy/pgbackrest/README.mdголовного репозиторияcapital.
🔄 processes/ - как работать
| Файл | Про что |
|---|---|
| 01 - Онбординг клиента | 📝 email-first (2 шага) → анкета 9 блоков → SumSub → активация → кабинет |
| 02 - Релиз-процесс | 🚢 от кода до прода, проверки качества, expand/contract |
| 03 - Параллельная разработка | 🧭 ⚠️ параллелить по репо-сервисам, subtree-workflow, замок на schema |
🗺 Карта репозиториев Capital
| Репозиторий | Назначение |
|---|---|
| capital | 🏛 Головной: compose, миграции, деплой, интеграция компонентов |
| capital-ledger | 🗄 Ledger (back-office операторов) = backoffice/ |
| capital-portal | 🧑💼 Клиентский портал (кабинет) = cabinet/ |
| capital-shared | 🧩 Общий пакет (ORM-модели, ledger-ядро, rails, cards) = shared/ |
| capital-kyc | 🪪 KYC-мост (SumSub) |
| capital-hub | 🌐 Hub (зарезервирован; роль закрывает партнёрский rail Papaya) |
| capital-kb | 📚 Эта база знаний |
| capital-support | 🛟 Поддержка: инциденты, хотфиксы, диагностика |
🌐 Визуальная база знаний (листаемый сайт)
Вся документация собрана в статический сайт - листаемую в браузере wiki с боковой навигацией, хлебными крошками, поиском по заголовкам и брендом Stefa Pay (navy + gold, щит-логотип). Полностью офлайн: без интернета, без CDN, без сборки - открывается двойным кликом.
Как открыть
- Локально (офлайн): открыть в браузере файл
site/index.html(двойной клик в файловом менеджере или перетащить в окно браузера). Все страницы, стили, шрифты, поиск - внутри HTML, никаких внешних запросов. - Точка входа:
site/index.html(главная = индекс базы знаний). - Разделы слева: Обзор · Архитектура · Runbooks · Процессы. Поиск - в панели слева.
Как пересобрать (после правок в .md)
python3 build_site.py # перегенерит папку site/ из всех .md (нужен пакет `markdown`)
Скрипт build_site.py рендерит каждый markdown в отдельный site/*.html, переписывает
ссылки между документами, строит навигацию/поиск и вшивает бренд-оформление инлайн.
Единственная зависимость сборки - Python-пакет markdown (pip install markdown);
на выходе - чистая статика без зависимостей.
Правила
- Пишем по-русски, технические термины - как есть.
- Никаких секретов, токенов, паролей - только ИМЕНА переменных и пути.
- Каждое крупное решение - отдельный файл в
architecture/с датой. - Правишь
.md- перегенери сайт (python3 build_site.py) и закоммитьsite/.