dataspace-ce

8

Описание

Platform V DataSpace Community Edition — это программный компонент с открытым исходным кодом, ускоряющий создание бизнес-приложений и снижающий затраты на разработку благодаря быстрому созданию решений для работы с данными на основе модели предметной области и гибкому манипулированию данными через GraphQL.

https://platformv.sbertech.ru/products/low-code/dataspace

Языки

  • Java73,1%
  • Kotlin21,7%
  • TypeScript2,3%
  • Shell1,2%
  • ANTLR0,8%
  • Fluent0,5%
  • Остальные0,4%
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
README.md

Platform V DataSpace Community Edition

Platform V DataSpace Community Edition – это программный компонент, который помогает ускорить создание бизнес-приложений и уменьшить затраты на их разработку.

Ключевые возможности продукта

  • Быстрое создание решения для работы с данными на основе модели предметной области
  • Гибкий поиск и манипулирование данными (создание, изменение, удаление) с помощью языка запросов GraphQL

Обучающий курс

https://platformv.sbertech.ru/data-space-course/

Необходимые компоненты

Установка и запуск

Далее будет рассмотрен процесс запуска DataSpace с моделью данных по умолчанию на примере медицинской клиники. Помимо это, также есть возможность ознакомиться с работой продукта на примере fullstack-приложения "Трекер задач", в рамках которого можно увидеть взаимодействие DataSpace с frontend-приложением, а также системой авторизации и аутентификации (KeyCloak) для более комплексного понимания возможностей системы.

  1. Скачайте репозиторий проекта:
  1. Перейдите в папку скачанного проекта:
  1. Запуск проекта:

Возможны 2 вариант запуска:

  • быстрый с готовыми Docker образами (упрощенный режим)
  • сборка проекта, подготовка и запуск локальных Docker-образов

В процессе исполнения в терминале будет отображаться различная диагностическая информация о ходе процесса сборки и запуска приложения. Также в файле скрипта присутствуют краткие комментарии выполняемых действий на случай необходимости более детального понимания.

После успешного запуска DataSpace можно увидеть список загруженных моделей по адресу:
http://localhost:8080/actuator/models

Также появляется возможность создавать и выполнять GraphQL-запросы к модели данных DatSpace в удобном Web-редакторе:
http://localhost:8080/graphiql?path=/models/1/graphql

По умолчанию в приложении загружается модель с примером сервиса "Медицинская клиника: запись на прием"

При необходимости загрузки своей модели, файл с ее описанием необходимо разместить в каталоге files/resources/src-model, имя файла - model.xml. Более подробную информацию о структуре и правилах описания модели можно найти в Руководстве по ведению модели

Выполнение GraphQL-запросов на примере модели "Медицинская клиника: запись на прием"

Для быстрого ознакомления с GraphQL перейдите в Web-редактор http://localhost:8080/graphiql?path=/models/1/graphql

В раздел Variables укажите значения атрибутов для запроса на создание сущности:

Затем выполните GraphQL-запрос createClinicMutation через Web-редактор:

Для просмотра списка клиник выполните запрос searchClinicsQuery:

По умолчанию в демо-примере отключен функционал разграничения прав доступа. Функционал разграничения прав доступа (далее Security) способен ограничивать доступ к данным на основе разрешений (permissions). Для его включения необходимо раскомментировать в файле context-child.properties параметр, определяющий правила описания логики разрешений (permissions):

dataspace.security.graphql.permissions.source=file

После этого необходимо:

Для выполнения запросов в режиме Security через Web-редактор необходимо добавить токен JWT (JSON Web Token)в раздел Headers:

В присутствующем в заголовке JWT содержатся ограничения:

  • получение только клиники в "г.Москва"

jwt.png

Создайте дополнительную клинику в другом населенном пункте сменив значение Variables:

{ "input": { "name": "Городская поликлиника №1", "address": { "city": "Торжок", "street": "ул. Ленина", "flatNo": "23" } } }

и выполнив затем запрос:

mutation createClinicMutation($input: _CreateClinicInput!) { packet { createClinic(input: $input) { id name address { city street flatNo } } } }

Вновь запросим список доступных нам клиник:

query searchClinicsQuery { searchClinic { elems { id name address { city } } } }

Согласно функционалу Security в ответе по-прежнему будет присутствовать только клиника в г.Москва

Чтобы узнать больше о возможностях Security, ознакомьтесь с документацией по Security

Взаимодействие с GraphQL без UI:

получим ответ:

Текущий проект запущен с демонстрационной моделью "Медицинская клиника: запись на прием".

Для расширения/изменения этой модели обратитесь к разделу Изменение модели данных в model-guide.md

Системные требования DataSpace Community Edition

  • Поддерживаемые платформы: x86, x64
  • Поддерживаемые операционные системы: Linux, Windows, Mac OS
  • Минимальная конфигурация аппаратного обеспечения: 1 CPU, 256Mb ОЗУ

Для дальнейшего ознакомления с Platform V DataSpace Community Edition обратитесь к документации.