grpc-acl
Version:
GRPC ACL microservice
71 lines (48 loc) • 2.49 kB
Markdown
GRPC ACL microservice in node. Built on top of [condor-framework](https://github.com/devsu/condor-framework) and [acl](https://github.com/OptimalBits/node_acl).
[](https://travis-ci.org/devsu/grpc-acl)
[](https://coveralls.io/github/devsu/grpc-acl)
```bash
npm i --save grpc-acl
npm i --save condor-framework
npm i --save acl
```
- Copy the [acl.proto](https://github.com/devsu/grpc-acl/blob/master/acl.proto) file.
- Create your server with the following code:
```js
const acl = require('acl');
const AclServer = require('grpc-acl').AclServer;
// Using memory backend. redis, mongo and others available (See acl module documentation)
const backend = new acl.memoryBackend();
const options = {
'host': 'localhost',
'port': 3000,
};
const server = new AclServer(backend, options);
// you can add here your own middleware. (See condor-framework documentation)
server.start();
```
To call the service:
```js
const caller = require('grpc-caller');
const client = caller('localhost:3000', './acl.proto', 'AclService');
client.addUserRoles({'user': 'joed', 'roles': ['guest']}).then(() => {
console.log('done!');
});
```
To find which methods are implemented take a look at the `acl.proto` file. They are pretty similar to the ones found in the documentation of the [acl](https://github.com/OptimalBits/node_acl) module.
You can take the [integration test](https://github.com/devsu/grpc-acl/blob/master/index.integration.spec.js) as an example too.
- `backend`. Check [ACL](https://github.com/OptimalBits/node_acl) documentation.
- `options`.
You can pass any [condor options](http://condorjs.com/options), and also the following:
| Option | Description | Default |
|------------------------|----------------------------------------------------------------------------|-------------------------|
| aclProtoFilePath | Path to the `acl.proto` file | `./acl.proto` |
| aclServiceName | Service name of the AclService (must match to the one in the proto file) | `AclService` |
## License and Credits
MIT License. Copyright 2017
Built by the [GRPC experts](https://devsu.com) at Devsu.