Certain objects such as user profiles, product details etc. aren't part of the feeds.
They can however be useful for personalization. To sync this data to Stream you can use the META endpoint.
This endpoint is optimized for batch writes. The example below shows you how to create, update and delete records.
Note that the META endpoint is only available to select Enterprise plans.
// auth details
var jwt = require('jsonwebtoken'),
request = require('request');
var url = 'https://yourcompany.getstream.io/yourcompany/meta/';
var permissions = {
'user_id': '*',
'resource': '*',
'action': '*',
}
var token = jwt.sign(permissions, STREAM_API_SECRET, { algorithm: 'HS256', noTimestamp: true })
// create or update the meta data
var meta = {
'user:1': {'name': 'Kevin', 'interests': ['machine-learning', 'python']},
'user:2': {'name': 'Thierry', 'interests': ['python', 'scalability']},
'product:1': {'name': 'Iphone 7', 'brand': 'Apple'}
}
var data = {'data': meta}
request({
url: url,
qs: {'api_key': STREAM_API_KEY},
method: "POST",
json: data,
headers: {
'authorization': token,
'stream-auth-type': 'jwt'
}
}, function(error, response, body) {
if (error || response.statusCode != 200) {
console.log('Error reading the feed', body);
return callback(error || body);
}
console.log(body)
})
// remove user:1
var meta = {'user:1': undefined, 'user:2': undefined}
var data = {'data': meta}
request({
url: url,
qs: {'api_key': STREAM_API_KEY},
method: "POST",
json: data,
headers: {
'authorization': token,
'stream-auth-type': 'jwt'
}
}, function(error, response, body) {
if (error || response.statusCode != 200) {
console.log('Error reading the feed', body);
return callback(error || body);
}
console.log(body)
})