将自定义全局数据保存到租户中

时间:2017-12-04 20:33:55

标签: cumulocity

我想要实现的是拥有一个包含自定义数据的全局片段。此数据片段必须随时可从中央源访问,并且租户之间可能不同。所有设备都需要此数据

我有两个想法

租客: 将自定义数据保存到租户片段的最佳方法是什么?我尝试过使用以下请求,但没有运气。

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属性,我会收费吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

这两种方法在这里都有效

将其存储在租户对象中

您的请求(几乎)正确,但此请求无法与tenant1的用户执行。租户无法更新自己的租户对象。您需要从父租户(管理租户或如果它是另一个租户的子租户,您也可以从那里执行)执行此请求。 现在几乎部分:对于租户,你不能直接创建任意片段。您需要将自定义数据放入名为" customProperties"的片段中。你放在那个片段中的内容再次由你决定。

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

要访问此数据,您可以使用API​​ / tenant / currentTenant。无论访问权限如何,此API始终可供每个经过身份验证的用户使用。它将返回租户信息(包括customProperties)。此API也是只读的,它类似于/ user / currentUser API。

在托管对象中存储

在库存API中,您可以添加片段" c8y_Global"到一个对象。这将使每个用户都可以使用此托管对象,无论访问权限如何(当然,您仍然需要有效的凭证给承租人。

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

关于充电,请直接与您的平台提供商联系,但通常只有设备是充电的一部分,这不会被视为设备。仪表板也是btw,只有这种带有c8y_Global标志的managedObjects。