mAttachEngines #
Attach multiple devices to multiple tenants.
The device document will be duplicated inside the tenant "devices" collection.
If a device does not exists on the list, process will throw a NotFoundError
Query Syntax #
HTTP #
URL: http://kuzzle:7512/_/device-manager/devices/_mAttach[?refresh=wait_for][&strict]
Method: PUT
Body:
{
// Using JSON
"records" [{
"tenantId": "engine-kuzzle",
"deviceId": "test-id"
}],
// Using CSV syntax
"csv": "tenantId,deviceId\nengine-kuzzle,test-id"
}
Other protocols #
{
"controller": "device-manager/device",
"action": "mAttachEngines",
"body": {
// Using JSON
"records" [{
"tenantId": "engine-kuzzle",
"deviceId": "test-id"
}],
// Using CSV syntax
"csv": "tenantId,deviceId\nengine-kuzzle,test-id",
}
}
Body properties #
Body properties, must contain at least one of
records
: an array of object containingtenantId
anddeviceId
csv
: a csv syntax compatible containing at least this two headerstenantId,deviceId
with their corresponding values
Optional: #
refresh
: if set towait_for
, Kuzzle will not respond until the documents are indexedstrict
: (boolean) if set, makes the process fail preemptively if at least one link cannot be applied (e.g. devices that aren't attached to a tenant, or because of non-existing assets)
Response #
{
"status": 200,
"error": null,
"controller": "device-manager/device",
"action": "mAttachEngines",
"requestId": "<unique request identifier>",
"result": {
"errors": [],
"successes": []
}
}
Events #
Two events when this action is called, allowing to modify the device before it is attached to tenant:
app.pipe.register('device-manager:device:attach-tenant:before', async ({ index, device }) => {
app.log.debug('before attach-tenant trigered');
set(device, 'body.metadata.enrichedByBeforeattachEngine', true);
return { index, device };
})
app.pipe.register('device-manager:device:attach-tenant:after', async ({ index, device }) => {
app.log.debug('after attach-tenant trigered');
return { index, device };
})
Edit this page on Github (opens new window)