Open source

Gatehouse

Open source · доступ по принципу just-in-time

Сервис запросов и согласования доступа на собственной инфраструктуре: узкий и временный доступ, а каждое решение записывается в проверяемый журнал аудита.

Gatehouse — превью

Задача

При постоянном доступе к продакшену трудно понять, у кого был доступ, зачем и по правилам ли он выдан.

Решение

Процесс запроса и согласования доступа just-in-time с контекстом политик, изоляцией пространств и журналом аудита на хеш-цепочке.

Под капотом

Ключи идемпотентности, оптимистичные блокировки и журнал аудита на хеш-цепочке для каждого рабочего пространства. Живое демо и публичный OpenAPI.

Обзор

Постоянный доступ к продакшену создаёт неясность во время инцидента: у кого был доступ, зачем он понадобился и соответствовало ли решение политике. Gatehouse отвечает на это небольшим и прозрачным процессом выдачи доступа just-in-time: инженер запрашивает узкий доступ на ограниченное время, а согласующий принимает решение, видя риски и контекст политик.

Бэкенд — асинхронный FastAPI с валидацией на Pydantic, SQLite локально и PostgreSQL в продакшене. Корректность обеспечена явно: ключи идемпотентности, оптимистичные блокировки, TTL в пределах политики и безопасная обработка конфликтующих решений. У каждого рабочего пространства свой журнал аудита на хеш-цепочке, в который можно только добавлять.

Интерфейс согласования на React + TypeScript работает в режимах live и demo, им удобно управлять с клавиатуры. Поставка на том же уровне: многоэтапные образы без root, пробы health и readiness, оверлеи Kustomize, Terraform и публикация образов в GHCR.

Что делает

  • Инженеры запрашивают узкий доступ на ограниченное время
  • Согласующие видят риски и контекст политик до принятия решения
  • Каждое решение попадает в журнал аудита на хеш-цепочке своего рабочего пространства
  • Изоляция рабочих пространств и роли: заявитель, согласующий, администратор

Что дальше

Ищете full-⁠stack, Python- или AI-⁠разработчика — или нужно сделать что-то похожее? Давайте обсудим.

Готов приступить сразу: офис или гибрид в Москве, либо удалённо; полная занятость или контракт. Отвечаю в течение 48 часов, в Telegram — быстрее.

Связаться TelegramСкачать резюме

Альхассан Альфарран.

© 2026 · Спроектировал и сделал сам. Стек сайта: Next.js, Tailwind и Framer Motion.

Моё местное время: · Москва

Заметки
Как устроен этот сайт

Стек

Next.js (App Router) и React, стили на Tailwind CSS, анимации на Framer Motion. Форма обратной связи отправляет письма через Resend, сайт размещён на Vercel.

Три языка, одна вёрстка

У английской, русской и арабской версий свои адреса (/en, /ru, /ar), а собраны они из одних и тех же компонентов. В вёрстке используются логические CSS-свойства (start/end вместо left/right), поэтому арабская версия отражается справа налево без отдельных стилей. Сервер отдаёт каждую страницу сразу с нужным языком и направлением текста, так что после загрузки ничего не перескакивает, а арабский шрифт загружается, только когда на экране есть арабский текст.

Скорость и доступность

Секции ниже первого экрана не отрисовываются, пока страница не прокручена до них, а быстрое меню загружается при первом открытии. Всем можно пользоваться с клавиатуры — есть ссылка для перехода к содержимому и заметный фокус, — а анимации отключаются, если в системе включено уменьшение движения.

Исходный код на GitHub