Цели примера:
- Снизить порог вхождения в DocHub за счет исследования полнофункционального работающего примера.
- Показать пример структуры репозитория с метамоделью на основе рекомендаций SEAF
- Показать примеры расширения дефолтной метамодели
Это метамодель реализованная для примера https://github.com/ValentinKozlov/DocHubExampleManifest
|- dochub - Дефолтная метамодель от Романа Пионтика
| |- entities - Описание дефолтных сущностей метамодели
| |- functions - Дефолтные функции
| |- rules - Дефолтные валидаторы ядра метамодели
| |- root.yaml - В файле осуществляется импорт всех элементов дефолтной метамодели, также описана структура пакета дефолтной метамодели [archpkg](https://www.npmjs.com/package/archpkg)
|- mm-descovery - Расширение для визуализации метамодели
| |- entities - Описание сущности для исследования метамодели
| |- tools - Вспомогательные средства для отображения метамодели
| |- README.md - Описание расширения root.yaml
| |- root.yaml - Импорт расширения
|- sweaf-core - Swamp Enterprise Architecture Framework (SWEAF) - расширение дефолтной метамодели под потребности ГК Болота
| |- datasets - Общие datasets используемые в рамках всей метамодели, например, для отчетов
| |- entities - Описание кастомных сущностей, а также расширения для дефолтных сущностей.
| |- functions - Кастомные функции. Реализовано оба варианта: новый и через eval. Рекомендуется использовать новый вариант
| |- rules - Кастомные валидаторы
| |- README.md - Подробное описание кастомной метамодели
| |- root.yaml - Импорт всех элементов кастомной метамодели, также описана структура пакета кастомной метамодели [archpkg](https://www.npmjs.com/package/archpkg)
|- dochub.yaml - Корневой манифест
|- README.md - Описание репозитория
|- root.yaml - Импорт всего репозитория, базовые настройки работы репозитория
Самый простой способ запустить метамодель - это воспользоваться репозиторием https://github.com/cu3blukekc/SwampHub.
Остальные способы вариативны и зависят от глубины понимания вами принципов работы DocHub.
В данной версии примера обновление метамоделей сильно упрощено, так как теперь кастомная метамодель sweaf-core содержит либо новые сущности, либо только изменения к дефолтной. Для обновления выполните следующие шаги:
- В папке dochub найдите все вложенные файлы импорта (root.yaml) элементов метамодели и посмотрите какие элементы метамоддели отключены, например в данном примере в данном примере отключены штатные валидаторы
rules/root.yaml
иsummary.yaml
для компонентов - С родительского репозитория полностью обновите папку dochub
- Отключите импорт нужных элементов дефолтной метамодели
- В кастомной метамоделе найдите расширения для дефолтной метамодели и сделайте merge файлов, перенося нужные изменения
- Проверьте что все работает
- Данный репозиторий был подготовлен Валентином Козловым https://t.me/i_frog_i.
- В пример были включены наработки в части реализации кастомных сущностей следующих людей:
- Александра Трубникова
- Андрея Бизяева
- Никиты Пермякова
В дальнейшем планируется собрать на базе этого репозитория все интересные наработки сообщества опубликованные здесь.
Распространяется под лицензией Apache License 2.0 Open source license.