mdclasses icon indicating copy to clipboard operation
mdclasses copied to clipboard

API для записи объектов метаданных из стороннего приложения

Open aliczin opened this issue 4 years ago • 5 comments

просили issue - создадим

суть в следующем - сейчас библиотеки представляет модель для чтения - то есть сериализации из файлов в объект. а хочется запись - то есть изменять объекты MD и десериализовать в файлы.

помимо всяких Ынтырпрайз сценариев использования есть один важный открытый сценарий

в Github встроили https://github.com/features/codespaces да и не только туда - многие развертывают VSCode как отдельный сервис для Bitbucket/Gitlab, чтобы позволить кодировать прямо в браузере

изображение

Такому сервису понадобится не только запись BSL языка, но еще и изменение метаданных.

То есть "слева" будет дерево метаданных с командами - на панели. изображение

для указанных сценариев и придется делать "запись", помимо чтения. У меня сейчас в работе пилотный сценарий "Из DWH на Oracle в 1С метаданные" - но это уже другая история, хотя функциональность будет таже.

aliczin avatar Dec 21 '20 07:12 aliczin

@otymko переведи плз этот поток сознания в осмысленную таску =)

asosnoviy avatar Dec 22 '20 11:12 asosnoviy

@asosnoviy конечно-конечно - больше осмыслений. Больше ищузов и больше коментов. ;-).

А существует какой-то формат по которой ты/Вы определяете осмысленность НЕосмысленность таски ? Лех забей - будет PR - сразу станет все понятно ;-)

aliczin avatar Dec 22 '20 11:12 aliczin

@aliczin кейсы мне понятны. Что-то подобное для VSC предполагалось делать. Но описанная задача выше - она глобальная и даже трудно прикинуть трудозатраты на нее. Я бы начал со следующего:

  • Выбор минимального кейса, например отрисовка дерева метаданных "крупными" мазками.
  • Возможность в дереве метаданных выше менять порядок, с отражением изменений в формате edt / original.
  • Сразу вырисовывается вопрос по взаимодействию VSC / Monako / Codespaces. Т.к. они на другом стеке (ts и т.п.), нужно будет организовывать между ними обмен. Через JSON RPC например.

Пример более сложный сходу на стороне текущего проекта не получится сделать - т.к. многих вещей не хватает в моделях метаданных.

otymko avatar Dec 22 '20 14:12 otymko

я вообще не уверен, что взаимодействие с пользователем имеет смысл делать на стороне mdclasses. само апи сериализации - да, вполне. а отприсовка и UI/UX - это явно ide-specific задача, и для панели нужно делать отдельный плагин/доработку существующих плагинов. mdclasses все же довольно низкоуровневая библиотека.

эндпоинты для таких операций можно реализовать в виде protocol extension для bsl ls, дабы не утяжелять библиотеку. а panel api - уже задача плагина

nixel2007 avatar Dec 22 '20 14:12 nixel2007

@nixel2007 именно API - в MDClasses именно API

aliczin avatar Dec 22 '20 14:12 aliczin