UNPKG

@getanthill/datastore

Version:

Event-Sourced Datastore

26 lines (25 loc) 1.7 kB
import { Services, authorizations as authz } from '../typings'; import Ajv from 'ajv'; import { Obligation } from '../typings/authorizations'; export interface AuthzConfig { noPolicyVerb: authz.PolicyVerb; } export default class Authz { private config; private services; private validator; constructor(config: AuthzConfig, services: Services); static getScopes(scope: authz.Scope): Array<authz.Scope>; applyObligations(obj: any, obligations: Array<Obligation>): any; static areRulesValidated(validations: Array<authz.RuleValidation>): boolean; static getDecision(decisions: Array<authz.Decision>, config: AuthzConfig): authz.Decision; static isAllowed(decisions: Array<authz.Decision>): boolean; static validateScope(validator: Ajv, schema: authz.JSONSchema, obj: object): authz.ScopeValidation; static validateRules(validator: Ajv, request: authz.AuthorizationRequest, attributes: authz.RequestAttributes, rules: Array<authz.Rule>): Array<authz.RuleValidation>; static validatePolicy(validator: Ajv, request: authz.AuthorizationRequest, attributes: authz.RequestAttributes, policy: authz.Policy): authz.Decision; static validatePolicies(validator: Ajv, request: authz.AuthorizationRequest, attributes: authz.RequestAttributes, policies: Array<authz.Policy>, config: AuthzConfig): authz.Decision; getScopeAttributes(scope: authz.Scope): Promise<Array<authz.Attribute>>; getRequestAttributes(request: authz.AuthorizationRequest): Promise<authz.RequestAttributes>; getRequestPolicies(request: authz.AuthorizationRequest): Promise<Array<authz.Policy>>; authorize(request: authz.AuthorizationRequest): Promise<authz.Decision>; }