Сохранение пользовательских глобальных данных в арендаторе

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

у меня две идеи

Арендатор. Как лучше всего сохранить пользовательские данные во фрагменте арендатора? Я попытался использовать приведенный ниже запрос, но безуспешно.

PUT /tenant/tenants/tenant1 HTTP/1.1
Host: tenant1.enterpise.com
Content-Type: application/json
Accept: application/json
Authorization: Basic 

{
 "customFragment:{
  "forms":[
     {
      "type": ....,
      "inputa" : ...
     },
     .....
   ],
   "products":[
     {
      "name": ....,
      "stock" : ...
     }
   ],
   .....
  }
}

Что я могу сделать?

Использование managementObject с пользовательским фрагментом данных.

Могу ли я использовать объект управления в базе данных для достижения этой цели? Будет ли взиматься плата, если этот объект управления не имеет свойства isDevice?

Заранее спасибо!


person Jorge    schedule 04.12.2017    source источник


Ответы (1)


Здесь применимы оба подхода

Сохранение внутри объекта арендатора

Ваш запрос (почти) правильный, но этот запрос не может быть выполнен с пользователем tenant1. Арендатор не может обновлять свой собственный объект арендатора. Вам необходимо выполнить этот запрос от родительского арендатора (либо арендатора управления, либо, если он является субарендодателем другого арендатора, вы также можете сделать это оттуда). Теперь почти часть: для арендаторов вы не можете напрямую создавать произвольные фрагменты. Вам нужно поместить свои пользовательские данные во фрагмент под названием «customProperties». То, что вы поместите внутрь этого фрагмента, снова зависит от вас.

{
   "customProperties" : {
        "test": "test",
        "abc": {
            "test": 1
        }
   }
}

Для доступа к этим данным вы можете использовать API /tenant/currentTenant. Этот API всегда доступен для каждого аутентифицированного пользователя независимо от прав доступа. Он вернет информацию о арендаторе (включая customProperties). Этот API также доступен только для чтения, он похож на /user/currentUser API.

Хранение внутри управляемого объекта

В API инвентаря вы можете добавить к объекту фрагмент "c8y_Global". Это сделает этот управляемый объект доступным для каждого пользователя независимо от прав доступа (конечно, вам все еще нужны действительные учетные данные для арендатора.

{
   "c8y_Global": {},
   "myConfig": {
        ...
   }
}

Что касается зарядки, лучше проконсультироваться непосредственно с поставщиком вашей платформы, но обычно только устройства являются частью зарядки, и это не будет считаться устройством. Дашборды, между прочим, также являются управляемыми объектами с этим флагом c8y_Global.

person TyrManuZ    schedule 04.12.2017