# @pamlight/admin

> The library for syncing data changes to multiple devices from your database

Latest version **0.1.2** (published 2019-12-02) · ISC license · 0 weekly downloads

## Install

```sh
npm install @pamlight/admin
pnpm add @pamlight/admin
yarn add @pamlight/admin
bun add @pamlight/admin
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.2 |
| Published | 2019-12-02 |
| First published | 2019-10-24 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 38.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Moses Godson |
| Maintainers | pamlight |
| Keywords | real-time, database, javascript, data-sync, mongodb, pamlight |

## Links

- npm: https://www.npmjs.com/package/@pamlight/admin
- Repository: https://github.com/pamlight-db/admin-sdk
- Homepage: https://pamlight.com
- Issues: https://github.com/pamlight-db/admin-sdk/issues
- npm.io page: https://npm.io/package/@pamlight/admin

## Dependencies (2)

- [lodash](https://npm.io/package/lodash.md) ^4.17.15
- [socket.io-client](https://npm.io/package/socket.io-client.md) ^2.2.0

## Alternatives

- [angular-pipes](https://npm.io/package/angular-pipes.md) — 5.6K weekly downloads
- [@ng-web-apis/midi](https://npm.io/package/@ng-web-apis/midi.md) — 2.6K weekly downloads
- [happn-3](https://npm.io/package/happn-3.md) — 1.6K weekly downloads
- [@opensip-cli/lang-go](https://npm.io/package/@opensip-cli/lang-go.md) — 1.2K weekly downloads
- [mongoose-typescript](https://npm.io/package/mongoose-typescript.md) — 85 weekly downloads

## Recent versions

- 0.1.2 (latest) — 2019-12-02
- 0.1.1 — 2019-11-11
- 0.0.5 — 2019-10-26
- 0.0.3 — 2019-10-25
- 0.0.1 — 2019-10-24

## README

# Pamlight Admin SDK

[Pamlight](https://pamlight.com) is a service for managing realtime connections to your database with whatever technology it is powered by. This tool (Admin SDK) is vital for creating secured communication channel between your server and the Pamlight core server.

## Support/Compatibility
* **Node.js support** - Supports Node.js v6.x and higher.
* **Support mongodb adapter** - Implementation for streaming mongodb data changes to clients.

## Getting started
For more detailed instructions and guides on how Pamlight works, see our [official documentations here](https://pamlight.com) as well as [creating new projects](https://pamlight.com).

#### Installation
Install pamlight admin sdk via npm by running the following command: 
> `npm install @pamlight/admin`

#### Setup
> import { PamlightAdmin, PamlightDBWriteTypes } from '@pamlight/admin';

> const credentials = {  
&nbsp;&nbsp;&nbsp;&nbsp;projectId: _`<PROJECT_ID>`_,  
&nbsp;&nbsp;&nbsp;&nbsp;projectKey: _`<SECRET_KEY>`_  
};  
> const admin = new PamlightAdmin(credentials);`

#### configure routes for read operations
> const readConfig = {  
&nbsp;&nbsp;&nbsp;&nbsp;routeId: 'GET_USERS_ROUTE',  
&nbsp;&nbsp;&nbsp;&nbsp;collection: 'users',  
&nbsp;&nbsp;&nbsp;&nbsp;isSingleDocument: false  
};

> admin.reads.route(routeConfig);

#### configure routes for write operations
> const writeConfig = {  
&nbsp;&nbsp;&nbsp;&nbsp;routeId: 'UPDATE_USER',  
&nbsp;&nbsp;&nbsp;&nbsp;collection: 'users',  
&nbsp;&nbsp;&nbsp;&nbsp;isSingleDocument: false,  
&nbsp;&nbsp;&nbsp;&nbsp;writeType: PamlightDBWriteTypes.UPDATE_DOCUMENT,  
&nbsp;&nbsp;&nbsp;&nbsp;docFn: (payload) => {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query: { _id: payload._id },  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;payload: { $set: payload }  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};  
&nbsp;&nbsp;&nbsp;&nbsp;}  
};

> admin.writes.route(writeConfig);

#### start service after route configurations
> admin.start().then(() => {  
&nbsp;&nbsp;&nbsp;&nbsp;console.log('Pamlight service started');  
}).catch(err => {  
&nbsp;&nbsp;&nbsp;&nbsp;throw Error(err);  
});

### Further Reading
For further reading and information, check more [anvanced read operations](https://pamlight.com) as well as [advanced write operations](https://pamlight.com)

---
_Source: https://npm.io/package/@pamlight/admin · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
