All Projects β†’ orbitdb β†’ orbit-db-access-controllers

orbitdb / orbit-db-access-controllers

Licence: MIT license
Access Controllers for OrbitDB

Programming Languages

javascript
184084 projects - #8 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to orbit-db-access-controllers

pinion
πŸ“ŒPin orbit-db stores and ipfs hashes
Stars: ✭ 29 (+16%)
Mutual labels:  orbit-db
orbitdns
Distributed PKI based DNS
Stars: ✭ 23 (-8%)
Mutual labels:  orbit-db
sqlalchemy-adapter
SQLAlchemy Adapter for PyCasbin
Stars: ✭ 53 (+112%)
Mutual labels:  access-control
nova-permissions
Add Permissions based authorization for your Nova installation via User-based Roles and Permissions. Roles are defined in the database whereas Permissions are defined in the code base.
Stars: ✭ 115 (+360%)
Mutual labels:  access-control
lua-casbin
An authorization library that supports access control models like ACL, RBAC, ABAC in Lua (OpenResty)
Stars: ✭ 43 (+72%)
Mutual labels:  access-control
casbin-pg-adapter
A go-pg adapter for casbin
Stars: ✭ 23 (-8%)
Mutual labels:  access-control
ngx-access
Add access control to your components using hierarchical configuration with logical expressions.
Stars: ✭ 21 (-16%)
Mutual labels:  access-control
privx-on-aws
PrivX - Just-in-time Access Management
Stars: ✭ 18 (-28%)
Mutual labels:  access-control
dart-casbin
An authorization library that supports access control models like ACL, RBAC, ABAC in Dart/Flutter
Stars: ✭ 30 (+20%)
Mutual labels:  access-control
nebula
A distributed block-based data storage and compute engine
Stars: ✭ 127 (+408%)
Mutual labels:  access-control
accessdenied
Access Denied: Artikel oder Kategoriezugriff im Frontend sperren (offline + kein Zugriff)
Stars: ✭ 35 (+40%)
Mutual labels:  access-control
caddy-security
πŸ” Authentication, Authorization, and Accounting (AAA) App and Plugin for Caddy v2. πŸ’Ž Implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0 (Github, Google, Facebook, Okta, etc.), SAML Authentication. MFA/2FA with App Authenticators and Yubico. πŸ’Ž Authorization with JWT/PASETO tokens. πŸ”
Stars: ✭ 696 (+2684%)
Mutual labels:  access-control
SpringSecurityInEasySteps
Learn Spring Security step by step
Stars: ✭ 13 (-48%)
Mutual labels:  access-control
fiware-pep-proxy
Support for proxy functions within OAuth2-based authentication schemas. Also implements PEP functions within an XACML-based access control schema.
Stars: ✭ 26 (+4%)
Mutual labels:  access-control
uhppoted
Cross-platform components for building access control systems based on the UHPPOTE UT0311 TCP/IP access controller boards
Stars: ✭ 19 (-24%)
Mutual labels:  access-control
orbit-db-cli
CLI for orbit-db
Stars: ✭ 60 (+140%)
Mutual labels:  orbit-db
rfid-access-control
Multi-level privilege access control system using RFID tags and passwords. Built with arduino based clients and a django server.
Stars: ✭ 12 (-52%)
Mutual labels:  access-control
server
AuthzForce Server (Community Edition)
Stars: ✭ 48 (+92%)
Mutual labels:  access-control
sqlx-adapter
Asynchronous casbin adapter for mysql, postgres, sqlite based on sqlx-rs
Stars: ✭ 27 (+8%)
Mutual labels:  access-control
objection-authorize
isomorphic, "magical" authorization integration with Objection.js πŸŽ‰
Stars: ✭ 71 (+184%)
Mutual labels:  access-control

orbit-db-access-controllers

Gitter Matrix

Access Controllers for OrbitDB

Install

This project uses npm and nodejs.

npm i orbit-db-access-controllers

Usage

By default, if no write-array is specified in options, the access control is set so that the initial user is the only one who has access (specified by the identity property of the orbitdb instance given in the argument). For the Ethereum-based contract example, the account which deploys the contract is initially given access.

Creating a custom Access Controller

You can create a custom access controller by implementing the AccessController interface and adding it to the AccessControllers object before passing it to OrbitDB. For more detailed examples, see the implementation of the Ethereum Contract Access Controller and OrbitDB Access Controller.

class OtherAccessController extends AccessController {

  static get type () { return 'othertype' } // Return the type for this controller

  async canAppend(entry, identityProvider) {
    // logic to determine if entry can be added, for example:
    if (entry.payload === "hello world" && entry.identity.id === identity.id && identityProvider.verifyIdentity(entry.identity))
      return true

    return false
  }
  async grant (access, identity) {} // Logic for granting access to identity
}

let AccessControllers = require('orbit-db-access-controllers')
AccessControllers.addAccessController({ AccessController: OtherAccessController })

const orbitdb = await OrbitDB.createInstance(ipfs, {
  AccessControllers: AccessControllers
})

const db = await orbitdb.keyvalue('first-database', {
  accessController: {
    type: 'othertype',
    write: [identity.id]
  }
})

Contribute

We would be happy to accept PRs! If you want to work on something, it'd be good to talk beforehand to make sure nobody else is working on it. You can reach us on Gitter, or in the issues section.

We also have regular community calls, which we announce in the issues in the @OrbitDB welcome repository. Join us!

For specific guidelines for contributing to this repository, check out the Contributing guide. For more on contributing to OrbitDB in general, take a look at the OrbitDB welcome repository. Please note that all interactions in @OrbitDB fall under our Code of Conduct.

License

MIT Β© 2018 Haja Networks Oy

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].