Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Сборщик данных для bem-site-engine
Используется как dev-зависимость в bem-site-engine в режиме разработки.
В качестве хранилища данных используется база данных LevelDB
Соответствующий nodejs модуль для работы с базой данных.
Архитектурно данный сборщик представляет собой nodejs приложение, которое имеет command line интерфейс и предоставляет определенное js API для возможности вызова основных команд из сторонних приложений.
Структура работы основана на создании сценариев и последовательном выполнении всех этапов в данных сценариях.
Доступные сценарии описаны модулями которые находятся в директории targets
Сценарий представляет собой класс который должен быть унаследован от класса TargetBase
var TargetBase = require('./base').TargetBase,
TargetFoo = function (options) {
this.init(options);
};
TargetFoo.prototype = Object.create(TargetBase.prototype);
TargetFoo.prototype.init = function (options) {
[
// Set list of tasks here
].forEach(function (task) {
this.addTask(task);
}, this);
TargetBase.prototype.init.call(this, options);
};
TargetFoo.prototype.getName = function () {
return 'Your target name';
};
exports.TargetFoo = TargetFoo;
При создании сценария должны быть переопределен метод init
в котором нужно указать массив тех
шагов которые должны быть выполнены для данного сценария в той последовательности в какой они написаны.
Также должен быть переопределен метод getName
который должен возвращать название сценария.
Это необходимо для построения логов.
Удаляет все записи из базы данных.
CLEAR DATABASE
Собирает *.json
файл из js - структуры описания модели и шлет его на сервер провайдера данных.
UPDATE MODEL
Основной сценарий выполнения. Проверяет наличие обновленного файла модели.
Синхронизирует модель, проверяет обновление документации, новых версий библиотек и мета-информации по
авторам и переводчикам. Переопределяет ссылки в документах, строит файл sitemap.xml
. При наличии изменений
создает копию базы данных в папке с текущей датой.
NODES SYNCHRONIZATION
Сценарий приложения в режиме разработки. В отличие от полной сборки работает с js файловой структурой модели. Не создает копий базы данных.
NODES DEV SYNCHRONIZATION
Вариант сборки при котором проверяется и синхронизируется только содержимое *.md
файлов документации.
Кроме этого выполняется проверка информации по автором и переводчикам а также общие шаги
типа переопредления ссылок и создания sitemap.xml
файла.
Главным образом данный сценарий используется для поиска ошибок на этапе разработки.
DOCS SYNCHRONIZATION
Вариант сборки при котором проверяется и синхронизируется только содержимое библиотек блоков.
Кроме этого выполняются общие шаги типа переопредления ссылок и создания sitemap.xml
файла.
Главным образом данный сценарий используется для поиска ошибок на этапе разработки.
LIBRARIES SYNCHRONIZATION
Этапы сборки представляет собой модуль, который экспортирует функцию принимающую аргументом объект сценария сборки и возвращающую fullfill vow promise c объектом сценария сборки при успешном прохождении этапа сборки и reject vow promise с объектом ошибки выполнения.
Код простейшего модуля удовлетворяющего таким требованиям представлен ниже:
var vow = require('vow');
module.exports = function (target) {
console.log('Hello world')
return vow.resolve(target);
};
Если добавить такой этап сборки в любой из сценариев, то при выполнении такого модуля в консоль выведется "Hello world".
Модули всех этапов сборки раположены в директории targets.
Удаляет все записи из базы данных.
Последний модуль в очереди выполнения для всех сценариев. Предназначен для вывод финального лога.
Кроме того в нем можно определить например отключение от базы данных.
Собирает единый *.json
файл модели из js - файлов распределенных по папкам.
Сохраняет этот *.json
файл на файловую систему в папку './cache'.
Инициализирует подключение к локальной базе данных и github API.
Очищает файловый кэш для данных сборки по библиотекам. Дополнительные опции переданных на данный этап сборки позволяют выборочно очистить кэш для определенной библиотеки или выбранной версии библиотеки.
Сверяет информацию по авторам и переводчикам между той версией, которая находится в базе данных и версией расположенной на github. При различии данных скачивает файл с обновленной информацией по авторам и переводчикам с github и обновляет данные в локальной базе.
Удаляет файл модели после ее успешной обработки. Нужен для предотвращения повторной синхронизации данных при последующих запусках сборщика данных.
Этот модуль собирает все узлы имеющие url и и строит js модель соответствующую файлу sitemap.xml для индексации сайта поисковыми системами. Узлы могут содержать параметры которые переопределяют стандартные настройки индексации.
После построения модели она конвертируется в xml и сохраняется в базу данных.
При наличии собранных изменений в процессе сборки на этом этапе
все файлы базы данных копируются в папку snapshots/{dd:mm:yyyy-hh:mm:ss}
где dd:mm:yyyy-hh:mm:ss
дата создания копии базы данных в соответствующем формате.
Кроме файлов базы данных, папка бэкапа также содержит, файл data.json
,
который содержит дату сборки и список изменений данных, которые произошли в результате сборки.
Также присуствуют файлы libraries.json
и blocks.json
которые нужны для сервисов поиска.
Существует 2 симлинки расположенные в папке db
:
Папки, на которые указывают эти симлинки запрашиваются сайтом соответственно с тестового и боевого окружений.
При этом тестовая симлинка переключается на последний созданный snapshot сразу же после его создания.
Открывает, архивирует и отправляет файл модели на сервер сборки.
Необходим для оптимальной работы роутера на сайте. Задача роутера - нахождение нужного узла модели (точнее id узла) по url запроса.
Этот модуль строит карту соответствия всех маршрутов сайта узлам модели.
Ответственный за разработку: @tormozz48
FAQs
bse-admin =========
We found that bse-admin demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.