Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
syncano-server
Advanced tools
This library supposed to be used in Syncano Sockets (inside scripts) to communicate with Syncano Core Services. Syncano provides various Core Services:
To initialize library simply type:
import { data, users, socket, response, event, logger } from 'syncano-server'
Library initiated that way will grab necessary information from the context of you Socket Script - it means that you don't need to provide additional information such as Instance name or authentication key (token) to your Instance.
If you want to force the library to connect to specified instance type:
import Server from 'syncano-server'
const { data, events } = new Server({
token: '9-12jdiasdnfo23nrokms',
instanceName: 'example-instance-name'
})
In this example tags
is a name of a class (data model) configured for that instance.
// Create new object in tags class
data.tags
.create({
name: 'javascript',
usage_count: 0
})
.then(tag => {});
// Get list of 140 tags used more than 100 times
data.tags
.where('usage_count', 'gt', 100)
.take(140)
.list()
.then(tags => {})
// Get list of post where author is reference to other class
// and author email is john@example.com
data.posts
.where('author.email', 'john@example.com')
.list()
.then(posts => {})
// Get list of post - author column will be expanded with data from target class
data.posts
.with('author')
.list()
.then(posts => {})
// Delete tags with with given array of ids
data.tags.delete([8735, 8733])
// Delete single tag
data.tags.delete(7652)
// Get first user with given mail
users
.where('email', 'john.doe@example.com')
.first()
.then(user => {
// user variable is null if not found
// so no need for catch method
})
// Get first user with given mail, throws error if user was not found
users
.where('email', 'john.doe@example.com')
.firstOrFail()
.then(user => {})
.catch(err => {
// error is thrown if user was not found
})
event.emit('my_signal', {dummyKey: 'dummy_value'})
.then(event => {})
.catch(err => {
// error is thrown if emit was unsuccessful
})
channel.publish('my_channel', {dummyKey: 'dummy_value'})
.then(res => {})
.catch(err => {})
const latestTags = await socket.get('tags/list', { sort: 'latest' })
const createdTag = await socket.post('tags/create', { name: 'nature' })
// Simple text/plain response
// response(content, status, contentType, headers)
response('Hello world')
response('Hello world', 200, 'text/plain', {
'X-RATE-LIMIT': 50
})
// Respond with custom header
response
.header('X-RATE-LIMIT', 50)
.header('X-USAGE', 35)
('Check headers')
// Respond with json string
response.json({
title: "Post title",
content: "Lorem ipsum dolor sit amet."
})
response
.header('X-RATE-LIMIT', 50)
.json({
title: "Post title",
content: "Lorem ipsum dolor sit amet."
})
For debug purposes you can use logger
:
Example:
import {logger} from 'syncano-server'
// Listen for all events
logger.listen(event => {
// Handle event - save to db or send email
})
// Create custom logger levels - optionally
// Defaults are: error, warn, debug, info
logger.levels(['error', 'notice', 'fatal'])
// Initialize logger with scope "User Socket"
const log = logger('User Socket')
// Specific level loggers
log.error('This is error message!')
log.warn('This is warning message!')
log.info('This is info message!', {hello: "world"})
log.debug('This is debug message!')
Check documentation to learn more.
FAQs
A library to intereact with the Syncano API on a server side
The npm package syncano-server receives a total of 12 weekly downloads. As such, syncano-server popularity was classified as not popular.
We found that syncano-server demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.