Imported from explyt/example-qa-ts (
AGENTS.md). Install upstream withnpx skills add explyt/example-qa-ts. Copyright stays with the author.
О тестируемом приложении NocoDB
1) Компоненты разработки
Backend API компонент
- Назначение: Обрабатывает разработку и обслуживание backend API
- Сфера: Работает с пакетом
nocodb - Технологии: Node.js, TypeScript, NestJS, Express
- Функции:
- Разработка REST API v1 (аутентификация на основе JWT)
- Поддержка Legacy API (аутентификация на основе сессий)
- Операции с базой данных и оптимизацияц
- Реализация бизнес-логики
Frontend UI компонент
- Назначение: Управляет разработкой пользовательского интерфейса
- Сфера: Работает с пакетом
nc-gui - Технологии: Vue.js, Nuxt.js, TypeScript, Tailwind CSS
- Функции:
- Реализация веб-интерфейса
- Улучшение пользовательского опыта
- Адаптивный дизайн
- Управление состоянием
Компонент интеграции
- Назначение: Управляет интеграциями со сторонними сервисами
- Сфера: Работает с пакетом
noco-integrations - Технологии: Node.js, TypeScript
- Функции:
- Разработка API-коннекторов
- Логика синхронизации данных
- Тестирование интеграций
- Обработка вебхуков
2) Компоненты аутентификации
Компонент JWT аутентификации
- Управление токенами:
- Эндпоинт:
POST /api/v1/auth/login - Заголовок:
Authorization: Bearer <jwt_token> - Обновление токена через
POST /api/v1/auth/refresh
- Эндпоинт:
- Структура токена:
- Алгоритм: HMAC-SHA256
- Claims: Содержит информацию об аккаунте
- Подписывается секретным ключом из конфигурации
Компонент сессионной аутентификации
- Управление сессиями:
- Заголовок:
X-Session-Id: <session_id> - Получение сессии:
POST /api/login - Возвращает ID сессии в JSON-ответе
- Используется для совместимости с Legacy API
- Заголовок:
Компонент аутентификации веб-интерфейса
- Процесс входа:
- Эндпоинт:
POST /login/(веб-форма) - Content-Type:
application/x-www-form-urlencoded - Поля формы:
username,password - Устанавливает cookie сессии после входа
- Эндпоинт:
3) Компоненты управления аккаунтами
Компонент модели аккаунта
- Основные поля:
id(int): Уникальный идентификаторusername(string): Уникальное имя пользователяpassword(string): Пароль, хешированный bcryptowner(boolean): Статус владельца (админ)config(UserConfig): Пользовательские настройки
Компонент пользовательской конфигурации
- Структура конфигурации:
ShowId: Показывать ID закладокListMode: Режим спискаHideThumbnail: Скрывать миниатюрыHideExcerpt: Скрывать выдержкиTheme: Тема интерфейсаKeepMetadata: Сохранять метаданныеUseArchive: Использовать архивCreateEbook: Создавать электронные книгиMakePublic: Делать закладки публичными по умолчанию
4) Компоненты тестирования
Компонент модульного тестирования
- Назначение: Обеспечивает качество кода с помощью модульных тестов
- Сфера: Все пакеты в монорепозитории
- Технологии: Jest, Vitest
- Функции:
- Написание модульных тестов
- Анализ покрытия тестами
- Создание мок-данных
Компонент E2E тестирования
- Назначение: Проверяет полные пользовательские сценарии
- Сфера: Полное тестирование приложения
- Технологии: Playwright, TypeScript
- Функции:
- Создание сквозных сценариев
- Автоматизация тестирования в браузере
- Проверка кросс-браузерной совместимости
5) Компоненты API эндпоинтов
Компонент аутентификационного API
- Базовый URL:
/api/v1/ - Эндпоинты:
POST /api/v1/auth/login- Вход и получение JWT-токенаPOST /api/v1/auth/refresh- Обновление JWT-токенаPOST /api/v1/auth/logout- ВыходGET /api/v1/auth/me- Информация о текущем пользователеPUT /api/v1/auth/account- Обновление аккаунта
Компонент управления закладками
- Эндпоинты:
GET /api/v1/bookmarks- Список закладокGET /api/v1/bookmarks/{id}- Детали закладкиPOST /api/v1/bookmarks- Создание закладкиPUT /api/v1/bookmarks/{id}- Обновление закладкиDELETE /api/v1/bookmarks/{id}- Удаление закладки
Компонент управления тегами
- Эндпоинты:
GET /api/v1/tags- Список теговGET /api/v1/tags/{id}- Детали тегаPOST /api/v1/tags- Создание тегаPUT /api/v1/tags/{id}- Обновление тегаDELETE /api/v1/tags/{id}- Удаление тега
Компонент администрирования аккаунтов
- Эндпоинты (Только для владельца):
GET /api/v1/accounts- Список аккаунтовPOST /api/v1/accounts- Создание аккаунтаPUT /api/v1/accounts/{id}- Обновление аккаунтаDELETE /api/v1/accounts/{id}- Удаление аккаунта
6) Компоненты моделей данных
Компонент модели закладки
- Основные поля:
id(int): Уникальный идентификаторurl(string): URL страницыtitle(string): Заголовок страницыexcerpt(string): Краткое описаниеpublic(int): Статус публичности (0-приватная, 1-публичная)createdAt(string): Дата создания (ISO 8601)modifiedAt(string): Дата изменения (ISO 8601)tags([]Tag): Массив тегов
Компонент модели тега
- Основные поля:
id(int): Уникальный идентификаторname(string): Название тегаbookmark_count(int): Количество закладок с этим тегом
7) Компоненты конфигурации
Компонент конфигурации среды
- Основные настройки:
SHIORI_PORT- Порт сервера (по умолчанию 8080)SHIORI_DBMS- Тип базы данных (sqlite, mysql, postgresql)SHIORI_DATABASE_URL- Строка подключения к БДSHIORI_DATA_DIR- Директория данных (по умолчанию ./data)
Компонент конфигурации безопасности
- Настройки JWT:
- Алгоритм HMAC-SHA256
- Секретный ключ из конфигурации
- Срок действия и обновление токена
8) Компоненты документации
Компонент документации API
- Эндпоинты Swagger:
GET /swagger/index.html- Интерактивная документация APIGET /swagger/doc.json- Спецификация OpenAPI в JSONGET /swagger/swagger.yaml- Спецификация OpenAPI в YAML
Компонент технической документации
- Функции:
- Поддержка документации API
- Руководства пользователя и обучающие материалы
- Примеры кода
- Документация по архитектуре
9) Компоненты развертывания
Компонент контейнерного развертывания
- Технологии: Docker, Docker Compose
- Функции:
- Создание и оптимизация Dockerfile
- Многоступенчатые процессы сборки
- Безопасность контейнеров
- Согласованность среды
Компонент CI/CD
- Технологии: GitHub Actions
- Функции:
- Конфигурация пайплайнов
- Автоматизированные тестовые процессы
- Автоматизация развертывания
- Управление релизами
10) Компоненты обеспечения качества
Компонент качества кода
- Технологии: ESLint, Prettier
- Функции:
- Обеспечение стиля кода
- Статический анализ
- Метрики качества кода
- Автоматическое форматирование
Компонент безопасности
- Технологии: Snyk, OWASP tools
- Функции:
- Сканирование уязвимостей
- Рекомендации по безопасности
- Мониторинг зависимостей
- Тестирование на проникновение