{"action":"closed","issue":{"url":"https://api.github.com/repos/xm-online/xm-online/issues/84","repository_url":"https://api.github.com/repos/xm-online/xm-online","labels_url":"https://api.github.com/repos/xm-online/xm-online/issues/84/labels{/name}","comments_url":"https://api.github.com/repos/xm-online/xm-online/issues/84/comments","events_url":"https://api.github.com/repos/xm-online/xm-online/issues/84/events","html_url":"https://github.com/xm-online/xm-online/issues/84","id":310893157,"number":84,"title":"Import widgets API in the MS Dashboard","user":{"login":"ishkurko","id":7899393,"avatar_url":"https://avatars1.githubusercontent.com/u/7899393?v=4","gravatar_id":"","url":"https://api.github.com/users/ishkurko","html_url":"https://github.com/ishkurko","followers_url":"https://api.github.com/users/ishkurko/followers","following_url":"https://api.github.com/users/ishkurko/following{/other_user}","gists_url":"https://api.github.com/users/ishkurko/gists{/gist_id}","starred_url":"https://api.github.com/users/ishkurko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ishkurko/subscriptions","organizations_url":"https://api.github.com/users/ishkurko/orgs","repos_url":"https://api.github.com/users/ishkurko/repos","events_url":"https://api.github.com/users/ishkurko/events{/privacy}","received_events_url":"https://api.github.com/users/ishkurko/received_events","type":"User","site_admin":false},"labels":[{"id":764370794,"url":"https://api.github.com/repos/xm-online/xm-online/labels/feature","name":"feature","color":"5319e7","default":false}],"state":"closed","locked":false,"assignee":{"login":"amedvedchuk","id":10553379,"avatar_url":"https://avatars3.githubusercontent.com/u/10553379?v=4","gravatar_id":"","url":"https://api.github.com/users/amedvedchuk","html_url":"https://github.com/amedvedchuk","followers_url":"https://api.github.com/users/amedvedchuk/followers","following_url":"https://api.github.com/users/amedvedchuk/following{/other_user}","gists_url":"https://api.github.com/users/amedvedchuk/gists{/gist_id}","starred_url":"https://api.github.com/users/amedvedchuk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amedvedchuk/subscriptions","organizations_url":"https://api.github.com/users/amedvedchuk/orgs","repos_url":"https://api.github.com/users/amedvedchuk/repos","events_url":"https://api.github.com/users/amedvedchuk/events{/privacy}","received_events_url":"https://api.github.com/users/amedvedchuk/received_events","type":"User","site_admin":false},"assignees":[{"login":"amedvedchuk","id":10553379,"avatar_url":"https://avatars3.githubusercontent.com/u/10553379?v=4","gravatar_id":"","url":"https://api.github.com/users/amedvedchuk","html_url":"https://github.com/amedvedchuk","followers_url":"https://api.github.com/users/amedvedchuk/followers","following_url":"https://api.github.com/users/amedvedchuk/following{/other_user}","gists_url":"https://api.github.com/users/amedvedchuk/gists{/gist_id}","starred_url":"https://api.github.com/users/amedvedchuk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amedvedchuk/subscriptions","organizations_url":"https://api.github.com/users/amedvedchuk/orgs","repos_url":"https://api.github.com/users/amedvedchuk/repos","events_url":"https://api.github.com/users/amedvedchuk/events{/privacy}","received_events_url":"https://api.github.com/users/amedvedchuk/received_events","type":"User","site_admin":false}],"milestone":null,"comments":2,"created_at":"2018-04-03T15:47:04Z","updated_at":"2018-05-07T18:42:14Z","closed_at":"2018-05-07T18:42:14Z","author_association":"CONTRIBUTOR","body":"Implement `import` administration API to support dashboards and widgets mass upload based on the other tenant or for the data migration.\r\n\r\nFeatures to support:\r\n- [ ] API should support model from the GET /api/widgets response\r\n```\r\nInline Model [\r\n  Inline Model 1\r\n]\r\nInline Model 1 {\r\n  config (object, optional): Widget configuration in JSON format. Format on Java level is Map ,\r\n  dashboard (Dashboard, optional),\r\n  id (integer, optional),\r\n  isPublic (boolean, optional): Public widgets could be shown for not authorized users. ,\r\n  name (string): Widget display name. ,\r\n  selector (string): Widget unique web component selector. Examples: xm-widget-map, xm-widget- \r\n profile, xm-widget-last-viewed, etc.\r\n}\r\nDashboard {\r\n  config (object, optional): Particular dashboard configuration that is not related to the layout. Format on API level is JSON. Format on Java level is Map ,\r\n  id (integer, optional),\r\n  isPublic (boolean, optional): Public dashboard could be shown for not authorized users. At the same time, only public widgets should be shown. ,\r\n  layout (object, optional): Dashboard layout configuration. Format on API level is JSON. Format on Java level is Map ,\r\n  name (string): Dashboard display name. ,\r\n  owner (string): Dashboard owner user key. ,\r\n  typeKey (string): Dashboard type key.\r\n}\r\n```\r\n\r\n- [ ] API should have query parameter `clear`with boolean type to remove all dashboards and widgets before import if `true`. The default value is `false`.\r\n- [ ] API call should be allowed only for the super administrator role.\r\n- [ ] API should create a dashboard based on the `id` uniqueness or `typeKey` uniqueness if `id` not present\r\n- [ ] API should not use widget or dashboard `ids` for inserts."}}
{"actor":{"display_login":"ishkurko"}}