Fulling создаёт выделенные рабочие пространства для ИИ: постоянные среды, объединяющие навыки, файлы, память, скрипты и среду выполнения. Текущая основа v3 обеспечивает идентификацию и границу доступа к учётным данным Kubernetes, необходимые для этой продуктовой модели.
Текущая основа
-
Вход только через GitHub с использованием Better Auth
-
Пользователи, аккаунты провайдеров и сессии на основе PostgreSQL
-
Защищённая точка входа в рабочее пространство приложения
-
Один kubeconfig в открытом виде на каждого пользователя
-
Проверка kubeconfig с аутентификацией через Kubernetes
SelfSubjectReview -
Граница клиента Kubernetes на уровне пользователя
Репозиторий намеренно не содержит слоя совместимости с предыдущей продуктовой моделью или системой аутентификации.
Целевая модель рабочего пространства описана в docs/architecture.md. Kubeconfig на уровне пользователя в этой основе не является окончательной моделью владения средой выполнения рабочего пространства.
Требования
-
Node.js 24, включая входящий в комплект npm 11
Публичное приложение не требует PostgreSQL или провайдера OAuth. Устаревшее аутентифицированное рабочее пространство дополнительно требует PostgreSQL и GitHub OAuth App.
Укажите callback-адрес GitHub OAuth следующим образом:
${BETTER_AUTH_URL}/api/auth/callback/github
Локальная разработка
npm ci
npm run dev
Это запускает публичное приложение с отключённым входом. Чтобы проверить вместо этого устаревшее аутентифицированное рабочее пространство:
cp .env.template .env.local
# Заполните значения для базы данных, Better Auth и GitHub.
npm run prisma:migrate
npm run dev
Откройте http://localhost:3000.
Этот релиз использует новую базовую схему. Запускайте его на новой базе данных или на явно сброшенной; миграция данных v2 не предусмотрена.
Команды
npm run dev # Запустить сервер разработки
npm run build # Сгенерировать клиент Prisma и собрать проект
npm run lint # Запустить ESLint
npm test # Запустить Vitest
npm run test:e2e # Запустить Playwright
npm run prisma:format # Отформатировать схему Prisma
npm run prisma:validate # Проверить схему Prisma
npm run prisma:migrate # Применить базовую миграцию
Граница учётных данных
Kubeconfig-файлы хранятся в PostgreSQL в открытом виде. Доступ на чтение к базе данных равнозначен доступу к учётным данным Kubernetes пользователей. API, доступные из браузера, никогда не возвращают сохранённый контент, а в логи не должны попадать токены, ключи, сертификаты и содержимое kubeconfig.
При валидации отклоняются исполняемые плагины для учётных данных (executable credential plugins), плагины auth-provider, локальные поля с указанием файлов для учётных данных, конфигурация прокси, API-серверы без HTTPS, редиректы и анонимные идентификаторы. Аутентифицированные пользователи по-прежнему могут указывать HTTPS API-сервер на любом сетевом адресе. Эта граница аутентифицированных исходящих запросов (SSRF) является осознанным решением на уровне развёртывания.
Сброс при развёртывании
Перед заменой развёртывания v2 ознакомьтесь с docs/v2-resource-inventory.md. Сброс базы данных Fulling не удаляет ресурсы Kubernetes, созданные версией v2.
Используйте docs/github-oauth-verification.md, чтобы проверить реальное OAuth-приложение перед выпуском.
Развёртывание на Vercel
Fulling может использовать нативное развёртывание Next.js на Vercel без файла vercel.json. Публичное приложение собирается и запускается без переменных окружения. Вход через GitHub, рабочее пространство с базой данных и работа с kubeconfig остаются отключёнными до тех пор, пока не будет задана полная конфигурация для устаревшего режима.
Полное описание настройки проекта, поведения без конфигурации, шагов проверки и процедуры отката приведено в docs/vercel-deployment.md.