A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Чек-лист по проекту русское /англ. наименование проекта | ||||||||||||||||||||||||||||||||
2 | |||||||||||||||||||||||||||||||||
3 | Заказчик: | Добавьте нужную информацию | |||||||||||||||||||||||||||||||
4 | Устав: | Добавьте нужную информацию | |||||||||||||||||||||||||||||||
5 | Тестовая среда: | Добавьте нужную информацию | |||||||||||||||||||||||||||||||
6 | Репозиторий: | Добавьте нужную информацию | |||||||||||||||||||||||||||||||
7 | Релиз: | Добавьте нужную информацию | |||||||||||||||||||||||||||||||
8 | Менеджер проекта: | ФИО | |||||||||||||||||||||||||||||||
9 | Наименование задачи в github: | Ссылка на задачу | Исполнитель ФИО | ||||||||||||||||||||||||||||||
10 | Чек-лист ПО Наименование проекта на англ.яз. 1 этап | Добавьте нужную информацию | Добавьте нужную информацию | ||||||||||||||||||||||||||||||
11 | Чек-лист ПО Наименование проекта на англ.яз. 2 этап | Добавьте нужную информацию | Добавьте нужную информацию | ||||||||||||||||||||||||||||||
12 | Чек-лист ПО Наименование проекта на англ.яз. 3 этап | Добавьте нужную информацию | Добавьте нужную информацию | ||||||||||||||||||||||||||||||
13 | |||||||||||||||||||||||||||||||||
14 | |||||||||||||||||||||||||||||||||
15 | N п/п | Наименование | Этапы | Статус | Решение | Описание | Методика проверки/приёмки | Комментарий БыстроБанк | Комментарий ЯКОМПАНИЯ | ||||||||||||||||||||||||
16 | Ядро | ||||||||||||||||||||||||||||||||
17 | I | II | III | ||||||||||||||||||||||||||||||
18 | 1 | Архитектура | |||||||||||||||||||||||||||||||
19 | 1.1 | Карта взаимосвязей приложений | + | ToDo | Отражаем все связи приложения с другими приложениями, сервисами (внешними и внутренними) | 1. Файл схемы (с исходником) в репозитории проекта 2. Проект, подгружаемый через iframe, отражаем 3. Полные имена до доменных имен сайтов (например: avito.ru) | |||||||||||||||||||||||||||
20 | 1.2 | Карта серверов | ToDo | При распределенной архитектуре, когда проекты запускаются на разных технологических стеках. | |||||||||||||||||||||||||||||
21 | 1.3 | Используемые технологии (версии) | + | ToDo | Пример: Используемая версия NodeJS: v14.15.1 (ведутся работы по переходу на v16.17.1) | ||||||||||||||||||||||||||||
22 | |||||||||||||||||||||||||||||||||
23 | 2 | База данных | |||||||||||||||||||||||||||||||
24 | 2.1 | Сервер базы данных и версия | + | ToDo | PostgreSQL | MySQL/PostgreSQL/None | 1. Вопрос-ответ: какую СУБД использует проект и какой версии | ||||||||||||||||||||||||||
25 | 2.2 | Реестр баз данных | ToDo | Стандарт: 1 приложение = 1 база. Расширенная: основная база и историческая база (при необходимости). | 1. Вопрос-опрос: на который в большинстве будет ответ - проект использует только 1 базу | ||||||||||||||||||||||||||||
26 | 2.3 | Описание структуры | + | ToDo | Должно быть: в схеме модели, в исходном коде, в метаданных базы данных. | I этап - наполнение файла schema.prisma II этап - наполнение описанием в бд Правила: 1. "// Комментарий" над таблицей/полем, с заглавной буквы 2. Правильные типы полей 3. Правильные имена полей 4. Форматирование схемы: " createdAt DateTime @default(now())" | На данный момент Prisma не поддерживает автоматическую генерацию комменариев в БД из schema.prisma есть issue на оф ресурсе, но пока тишина https://github.com/prisma/prisma/issues/8703, на данный момент можно добавлять комментарии только через миграции. Решено пока использовать комментарии только в shema.prisma. (Есть вариант написать пакет который анализировал бы схему находил там изменения комментариев и формировал sql код для миграции) пример обновления sql: // Обновление комментария к таблице ALTER TABLE Body COMMENT='Таблица кузовов авто'; // Обновление комментария у поля ALTER TABLE Body CHANGE COLUMN id id INT NOT NULL AUTO_INCREMENT COMMENT 'Идентификатор'; Задачи по исправлению именования и типов полей реализуем по согласованию с заказчиком | ||||||||||||||||||||||||||
27 | |||||||||||||||||||||||||||||||||
28 | 3 | Сторонние ресурсы | |||||||||||||||||||||||||||||||
29 | 3.1 | Карта (шлюзы) | ToDo | (пока все делаем согласно пункта 1.1) | |||||||||||||||||||||||||||||
30 | 3.2 | Описание api внешних сервисов | ToDo | С примерами входных/выходных данных (схемы валидации). | 1. Ссылки на документацию сторонних сервисов 2. Схемы сторонних сервисов | ||||||||||||||||||||||||||||
31 | |||||||||||||||||||||||||||||||||
32 | 4 | Стандарт разработки | |||||||||||||||||||||||||||||||
33 | 4.1 | Структура приложения НЕ СОГЛАСОВНО | + | ToDo | Придерживаемая принципа единой платформы приложений (проекты создаются на базе шаблона проекта github.com/ilb ) | 1. Актуальный шаблон тестового проекта 2. Расположение файла crontab 3. Расположение файла web.xml 4. Расположение каталога /stubs/ 5. Расположение каталога с документацией 6. Команды для сборки и запуска проекта 7. Команды для запуска тестов | |||||||||||||||||||||||||||
34 | 4.2 | Наименование переменных (ресурсов, групп ldap) | + | В работе | Через web.xml v3.1 (env-entry, resource-env-ref) Ссылка на web.xml см документацию | 1. Файл web.xml оформленный по правилам Банка 2. Формирование файла | |||||||||||||||||||||||||||
35 | 4.3 | Коды ответов ошибок | + | ToDo | 45* - ошибки клиента (4** + 50 к стандартным HTTP-кодам) 450 - пользовательские (на которые пользователь может повлиять) 453 - доступ запрещен 454 - данных не существует 550 - ошибки сервера (внутренняя ошибка приложения) см документацию | 1. Проверка apache файла access.log | |||||||||||||||||||||||||||
36 | 4.4 | Форматирование исходного кода | + | ToDo | Включая пустую строку в конце файлов | 1. xml - 4 пробела 2. js - 2 пробела 3. отсуствие таб 4. пробел в конце файла | |||||||||||||||||||||||||||
37 | |||||||||||||||||||||||||||||||||
38 | 5 | Разработка | |||||||||||||||||||||||||||||||
39 | 5.1 | Инструменты разработки (IDE) | + | ToDo | |||||||||||||||||||||||||||||
40 | 5.3 | Расположение исходников | + | ToDo | Ссылки на репозитории: https://github.com/ilb/, https://git.ilb.ru/ | ||||||||||||||||||||||||||||
41 | 5.4 | Расположение сборщика проектов | + | ToDo | В Банке используется jenkins (CI/CD) | 1. Проверка наличия сборки проекта 2. Проверка правильности этипов сборки 3. Проверка сборки составных компонентов проекта | |||||||||||||||||||||||||||
42 | 5.6 | Корректность версий проекта/компонентов | + | ToDo | Версии начинаем с 1.*.* | 1. Контроль package.json 2. Контроль package-lock.json | |||||||||||||||||||||||||||
43 | 5.7 | Карта точек входа (swagger, openapi) | + | ToDo | На проде данный ресурс должен быть заблокирован | 1. Наличие swagger.json/openapi.json | |||||||||||||||||||||||||||
44 | 5.8 | Наличие главной страницы | + | ToDo | Адрес: / | Адрес: / Response code: 200 | |||||||||||||||||||||||||||
45 | 5.9 | Наличие heartbeat | + | ToDo | Адрес: /heartbeat | Адрес: /heartbeat Response code: 200 Response text: OK Content Type: text/plain | |||||||||||||||||||||||||||
46 | 5.10 | Используемые Банковские/единые компоненты | ToDo | Список компонентов @ilb/ | |||||||||||||||||||||||||||||
47 | 5.11 | Поддержка X-FORWARD-SECRET | + | ToDo | curl -vvv http://localhost:3000/ curl -vv http://localhost:3000/bailverificationv2 curl -vvv http://localhost:3000/bailverificationv2/heartbeat curl -vvv http://localhost:3000/bailverificationv2/* (любой путь) Response code: 453 || 403 Response text: Forbidden (обсуждаемо) | ||||||||||||||||||||||||||||
48 | 5.12 | Наличие заглушек | + | ToDo | см документацию | 1. Файлы в /var/apps/<apps>/stub/ 2. Включение заглушек через context.xml | |||||||||||||||||||||||||||
49 | 5.13 | Подключен линтер исходного кода (ESLint, ...) | + | ToDo | |||||||||||||||||||||||||||||
50 | 5.14 | Передача времени с часовым поясом | + | ToDo | Пример: 2023-12-31T23:59:59[.999]+0400 | 1. Проверка json файлов api проекта | |||||||||||||||||||||||||||
51 | 5.15 | Отсутствие недопустимых вещей (гвоздей) в исходном коде | + | ToDo | Включая: url адреса, логины, секреты, ... | 1. Поиск по регулярному выражению - [a-z][а-я]|[а-я][a-z] 2. Поиск http: или https: 3. Поиск секретов в исходниках 4. Поиск условий на "'production" и "devel" | |||||||||||||||||||||||||||
52 | 5.16 | Поддержка браузера SeaMonkey | ToDo | Текущая версия SeaMonkey в Банке 2.53.14 (в каких-то проектах допустимо не обеспечивать) | |||||||||||||||||||||||||||||
53 | 5.17 | Поддержка прокси-сервера | + | ToDo | Актуально для проектов шлюзов, которые получают данные из внешних проектов (например: avito.ru) | 1. Наличие и поддержка ресурса ".internet.proxy.https_apps" в web.xml | |||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||||||||
55 | 6 | Безопасность | |||||||||||||||||||||||||||||||
56 | 6.1 | LDAP авторизация | + | ToDo | 1. Получение данных о текущем пользователе через ldap/posix | ||||||||||||||||||||||||||||
57 | 6.2 | LDAP ресурсы | + | ToDo | Ресурсы до проектов прописываются в web.xml | 1. Получение путей до ресурсов проектов (своих) из ldap/posix | |||||||||||||||||||||||||||
58 | 6.3 | LDAP группы/роли | + | ToDo | Проверка прав доступа к страницам проекта | 1. Проверка прав доступа к страницам проекта с помощью ldap/posix | |||||||||||||||||||||||||||
59 | 6.4 | Переменные секреты заканчиваются на _PASSWORD | + | ToDo | 1. Проверка web.xml 2. Проверка логов на логирование паролей 3. Проверка context.xml | ||||||||||||||||||||||||||||
60 | 6.5 | Отсутствие уязвимостей | ToDo | ||||||||||||||||||||||||||||||
61 | 6.6 | Отсутствие утечек персональных данных | + | ToDo | Расположение: репозиторий, логи, письма, сообщения | 1. Поиск персональных данных в исходниках 2. Поиск персональных данных в базе данных | |||||||||||||||||||||||||||
62 | 6.7 | Способ авторизации | + | ToDo | Без авторизации, ldap-авторизация, двух-факторная авторизация, и т.д. | ||||||||||||||||||||||||||||
63 | 6.8 | Закрываемые пути приложения | + | ToDo | Например закрываются пути группами ldap, либо доступны только в devel среде: /admin/ /heartbeat /swagger.json (/openapi.yaml, ...) /api (?) | ||||||||||||||||||||||||||||
64 | 6.9 | Корректность проверки групп по url'ам приложения | ToDo | 1. Проверка, что адреса закрыты группами согласно ТЗ (включая пути внутри /api/*) | |||||||||||||||||||||||||||||
65 | 6.10 | Обязательная авторизация между фронтом и беком | ToDo | ||||||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||||||||
67 | 7 | Документация | |||||||||||||||||||||||||||||||
68 | 7.1 | Наличие описания проекта | + | ToDo | Краткое описание проекта в About в репозитории | ||||||||||||||||||||||||||||
69 | 7.2 | Наличие технического задания | + | ToDo | |||||||||||||||||||||||||||||
70 | 7.3 | Документация (Javadoc, PHPDoc, JSDoc и т.д.) | ToDo | ||||||||||||||||||||||||||||||
71 | 7.4 | Клиентская документация (+ скриншоты) | ToDo | ||||||||||||||||||||||||||||||
72 | 7.5 | Административная документация | + | ToDo | Требования к железу, установка, настройка, обновление, поддержка (команды). | 1. Файл README.md (пример bail..v2) [черновик, в будушем будет дополнен] | |||||||||||||||||||||||||||
73 | 7.6 | Реестр печатных форм (+ примеры) | ToDo | ||||||||||||||||||||||||||||||
74 | 7.7 | Термины | ToDo | ||||||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||||||||
76 | 8 | Поддержка | |||||||||||||||||||||||||||||||
77 | 8.1 | Время проведение технических работ (приложения, базы данных) | ToDo | ||||||||||||||||||||||||||||||
78 | 8.2 | Каналы получения ошибок по работе проектов (email, sms, боты и т.д.) | ToDo | ||||||||||||||||||||||||||||||
79 | 8.4 | Расписание обновления ключей, сертификатов, секретов, паролей, токенов и т.д. | ToDo | ||||||||||||||||||||||||||||||
80 | 8.5 | Расписание и описания роботов в проекте | ToDo | ||||||||||||||||||||||||||||||
81 | 8.6 | Отправка ошибок на почту (обработчик ошибок) | + | ToDo | Адреса электронных ящиков задаются в processes.json, через SERVER_ADMIN | ||||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||||||||
83 | 9 | Тестирование | |||||||||||||||||||||||||||||||
84 | 9.1 | Инструменты тестирования (скрипты, приложения) | ToDo | ||||||||||||||||||||||||||||||
85 | 9.2 | Тестовый контур (url, права) | ToDo | Адрес тестового контура (сервера ЯКОМПАНИЯ не учитываются) | |||||||||||||||||||||||||||||
86 | 9.3 | Наличие unit-тестов (количество всего/успешных/провальных) | ToDo | ||||||||||||||||||||||||||||||
87 | 9.4 | Проведение ручного тестирования | ToDo | ||||||||||||||||||||||||||||||
88 | 9.5 | Интеграция тестов с jenkins | + | ToDo | Согласование. Ждем от Максима xml для Виталия. И пример от Виталия | ||||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||||||||
90 | 10 | Логирование | |||||||||||||||||||||||||||||||
91 | 10.1 | Хранение логов | + | ToDo | Логи хранятся (один из вариантов, взависимости от стека): /var/log/pm2.*/ - путь задается в processes.json /var/log/webapp/<app>.log - путь задается в web.xml | Согласование. ЖДем Настройки Максима | |||||||||||||||||||||||||||
92 | 10.2 | Формат логирования | ToDo | Каждая строка (блок) лога должна быть в правильном формате для дальнейшего корректного разбора и анализа | |||||||||||||||||||||||||||||
93 | 10.3 | Отсутствие секретов в логах | + | ToDo | Должны быть скрыты | ||||||||||||||||||||||||||||
94 | 10.4 | Отсутствие персональных данных в логах | + | ToDo | Должны быть замаскированы | ||||||||||||||||||||||||||||
95 | 10.5 | Отсутствие любого удаленного логирования | + | ToDo | Тайная отправка логов на сторонние ресурсы (e-mail, и т.д.) | ||||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||||||||
97 | 11 | Аудит | Даёт оценку Банк | ||||||||||||||||||||||||||||||
98 | 11.1 | Контроль качества исходного кода | + | ToDo | |||||||||||||||||||||||||||||
99 | 11.2 | Контроль проектирования базы данных | + | ToDo | |||||||||||||||||||||||||||||
100 | 11.3 | Контроль хранения файлового хранилища | + | ToDo | /var/apps/<app>/ |