Действительно и jfrog и доверенный репозиторий относятся к направлению "безопасность цепочек поставок (supply chain security)". И jfrog и доверенный репозиторий собирают информацию о репозиториях исходного кода, о инструментах построения (mvn, gradle) их версиях, плагинах/профилях. На основании этой собранной информации доверенный репозиторий собирает библиотеки/артефакты, осуществляет набор проверок и публикует библиотеки/артефакты.
jfrog не пересобирает библиотеки. Он работает на более высоком уровне, на уровне релиза продукта, содержащего набор библиотек. На основании собранной информации, используя свои внутренние алгоритмы, в том числе AI/ML, куда же без этого, jfrog формирует заключение, что в данном релизе такие то библиотеки соотвествуют критериям и политикам заказчика, такие то не соотвествуют. Доверенный репозиторий такой функциональностью не обладает, во всяком случае пока. jfrog, например, мог бы использовать доверенный репозиторий как один из источников информации для своих алгоритмов.
Другое отличие доверенного репозитория от jfrog: заказчик, при желании, может запросить у нас скрипты сборки, конфигурации проекта, сам пересобрать библиотеку и убедиться, что собранное им самостоятельно то же самое, что опубликовано в доверенном репозитории. Алгоритмы jfrog, формирующие заключение о соответствии/несоответствии библиотеки критериям и политикам заказчика -- это их интеллктуальная собственность, которой они не делятся, по понятным причинам.
Понимаю Ваш скепсис. У нас достаточно нишевые Заказчики. Им важна прозрачность процесса сборки ПО, которую мы помогаем им обеспечить. Кроме того, у нас в разработке дополнительные сервисы, например автоматическая разметка результатов работы статического анализатора кода.
Нет. jfrog, как и sonatype nexus, как и другие подобные продукты -- это "хранилища", которые предоставляют инфрастуктуру для доступа к библиоткеам/артефактам. Мы используем подобную инфрастуктуру. Мы занимаемся наполнением этих "хранилищ" контентом. Если коротко, то мы пересобираем maven central.
При добавлении любой библиотеки в доверенный репозиторий мы клонируем репозиторий исходного кода, используемый разработчиками данной библиотеки (например Kafka). Мы называем его родительский. Со всеми его версиями. У нас реализована автоматическая синхронизации родительского репозитория с тем, который мы склонировали себе в наш внутренний репозиторий. Таким образом, изменения, вносимые разработчиками библиотеки в родительский репозиторий, через короткий промежуток времени оказываются у нас. Далее, при помощи специальных алгоритмов мы определяем как была собрана данная библиотека: какой версией JDK, gradle или maven или ant или чем-то еще. Какие плагины/профили использовались. После этого мы делаем сборку библиотеки, прогоняем соответствующие тесты и верифицируем, что собранная нами библиотека то же самое, что и то, что доступно на maven central. Верификация включает в себя проверку более 10-ти различных параметров. Таким образом, мы гарантируем, что разработчик, используя библиотеку из нашего репозитория, получит ту же самую функциональность что и на maven central. То есть, для разработчика переключение на наш репозиторий происходит бесшовно. Доверенный репозиторий устраняет непрозрачность процесса сборки ПО, при использовании сторонних библиотек. Он позволяет ответить на такие вопросы: из каких исходных кодов собрана библиотека, какие инструменты использовались для сборки, какие тесты прогонялись и каковы результаты прогона. Каковы результаты работы статического анализатора кода, нашли ли что-нибудь антивирусы.
Действительно и jfrog и доверенный репозиторий относятся к направлению "безопасность цепочек поставок (supply chain security)". И jfrog и доверенный репозиторий собирают информацию о репозиториях исходного кода, о инструментах построения (mvn, gradle) их версиях, плагинах/профилях. На основании этой собранной информации доверенный репозиторий собирает библиотеки/артефакты, осуществляет набор проверок и публикует библиотеки/артефакты.
jfrog не пересобирает библиотеки. Он работает на более высоком уровне, на уровне релиза продукта, содержащего набор библиотек. На основании собранной информации, используя свои внутренние алгоритмы, в том числе AI/ML, куда же без этого, jfrog формирует заключение, что в данном релизе такие то библиотеки соотвествуют критериям и политикам заказчика, такие то не соотвествуют. Доверенный репозиторий такой функциональностью не обладает, во всяком случае пока. jfrog, например, мог бы использовать доверенный репозиторий как один из источников информации для своих алгоритмов.
Другое отличие доверенного репозитория от jfrog: заказчик, при желании, может запросить у нас скрипты сборки, конфигурации проекта, сам пересобрать библиотеку и убедиться, что собранное им самостоятельно то же самое, что опубликовано в доверенном репозитории. Алгоритмы jfrog, формирующие заключение о соответствии/несоответствии библиотеки критериям и политикам заказчика -- это их интеллктуальная собственность, которой они не делятся, по понятным причинам.
Понимаю Ваш скепсис. У нас достаточно нишевые Заказчики. Им важна прозрачность процесса сборки ПО, которую мы помогаем им обеспечить. Кроме того, у нас в разработке дополнительные сервисы, например автоматическая разметка результатов работы статического анализатора кода.
Нет. jfrog, как и sonatype nexus, как и другие подобные продукты -- это "хранилища", которые предоставляют инфрастуктуру для доступа к библиоткеам/артефактам. Мы используем подобную инфрастуктуру. Мы занимаемся наполнением этих "хранилищ" контентом. Если коротко, то мы пересобираем maven central.
При добавлении любой библиотеки в доверенный репозиторий мы клонируем репозиторий исходного кода, используемый разработчиками данной библиотеки (например Kafka). Мы называем его родительский. Со всеми его версиями. У нас реализована автоматическая синхронизации родительского репозитория с тем, который мы склонировали себе в наш внутренний репозиторий. Таким образом, изменения, вносимые разработчиками библиотеки в родительский репозиторий, через короткий промежуток времени оказываются у нас. Далее, при помощи специальных алгоритмов мы определяем как была собрана данная библиотека: какой версией JDK, gradle или maven или ant или чем-то еще. Какие плагины/профили использовались. После этого мы делаем сборку библиотеки, прогоняем соответствующие тесты и верифицируем, что собранная нами библиотека то же самое, что и то, что доступно на maven central. Верификация включает в себя проверку более 10-ти различных параметров. Таким образом, мы гарантируем, что разработчик, используя библиотеку из нашего репозитория, получит ту же самую функциональность что и на maven central. То есть, для разработчика переключение на наш репозиторий происходит бесшовно. Доверенный репозиторий устраняет непрозрачность процесса сборки ПО, при использовании сторонних библиотек. Он позволяет ответить на такие вопросы: из каких исходных кодов собрана библиотека, какие инструменты использовались для сборки, какие тесты прогонялись и каковы результаты прогона. Каковы результаты работы статического анализатора кода, нашли ли что-нибудь антивирусы.