Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

q3-core-access

Package Overview
Dependencies
Maintainers
1
Versions
191
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

q3-core-access

Q3's access control system integrates with Mongoose for role-based querying. It also connects to `q3-core-rest` to automate authorization in the request and response payloads.

  • 1.23.1
  • npm
  • Socket score

Version published
Weekly downloads
99
increased by1000%
Maintainers
1
Weekly downloads
 
Created
Source

Access

Q3's access control system integrates with Mongoose for role-based querying. It also connects to q3-core-rest to automate authorization in the request and response payloads.

Note that the access control's ledger uses a singleton pattern so that grants initialized at run-time can be referenced anywhere. It also relies on a static array, so changes made to permissions will be lost on reboot.

Q3 API automatically loads grants when it detects the q3-access.json file, so most projects will have little else to configure.

Syntax

The JSON object below represents all possible fields.

{
  "fields": ["*"],
  "role": "Developer",
  "coll": "tests",
  "op": "Read",
  "ownership": "Any",
  "documentConditions": [],
  "ownershipAliases": [],
  "ownershipAliasesOnly": false,
  "ownershipAliasesWith": false,
  "ownershipConditions": []
}

Field

The field property determines the attributes within a document a user can access. When left undefined, everything is disallowed. This module interprets fields as globs so that we can define rules and cover datasets. It can support a single rule, an array of rules and conditional rules. For examples, please see below.

Single rule

The field below will only grant access to the foo and bar properties. Everything else will be ignored.

{
  "fields": "{foo,bar}"
}
Array of rules

The field below will not grant access to the foo and bar properties. Everything else will be included. Arrays are best for defining exclusions.

{
  "fields": ["!foo", "!bar"]
}
Conditional rules

The field below will exclude the foo property when the value of bar is greater than 1. The wildcard property can be used if the bar field is nested or repeated throughout the document. An undefined test is assumed to be truthy.

{
  "fields": [
    {
      "glob": "foo",
      "negate": true,
      "wildcard": false,
      "test": ["bar>1"]
    }
  ]
}

FAQs

Package last updated on 22 Nov 2021

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc