@vista.io/vista-api-client
TypeScript icon, indicating that this package has built-in type declarations

0.8.0 • Public • Published

Vista API for NodeJS

NodeJS client for the Vista API.

Reference

Prerequisites

You'll need to create a Vista API key from the Vista Dashboard.

Usage

Install the package:

npm install @vista.io/vista-api-client;

Then in your Node application:

import VistaClient from '@vista.io/vista-api-client';

const VISTA_API_KEY = 'create-in-vista-dashboard';
const client = new VistaClient(VISTA_API_KEY, 'branch_name');
const roles = client.roles.list()

After that you are good to go!

Please see the Vista API Documentation for the API documentation.

All Operator

You can use VistaClient.ALL in place where resource_id or resource_type is accepted to indicate all.

Changing Branches for Operation

Although branch is required as a part of the constructor, one may use client.withBranch(branch: string) to use supply a different branch using the same client.

Usage

The following describes methods namespaced by Vista resources.

Admin

client.admin

method description
createBranch(branch: string) Creates a set of read-only tokens meant to be used by Vista React components
cloneBranch(branch: string, newBranch: string) Clones templates in branch to newBranch
createReadTokens() Creates a set of read-only tokens meant to be used by Vista React components
getCompany() Gets Company ID

Resource Types

client.resourceTypes

method description
list() Lists all Resource Types
upsert(name: string, actions: string[], attributes: {id: string, target_resource_type: string, attribute_type: 'RELATIONSHIP' | 'SCALAR'}[]) Upserts a Resource Type
addRelationship(fromId: string, fromResourceType: string, attribute: string, toId: string, toResourceType: string) Adds an attribute relationship between 2 resourceIds

Roles

client.roles

method description
client.roles.list(orgId?: string) Lists all Roles
client.roles.upsert(roleId: string, permissions: { resourceType: string, attribute: string, action: string, ownerId: string }[] owners: { key: { query: string, dbId: string } }, arentRoles: string[], orgId: string) Upserts a Role

Users

client.users

method description
create(userId: string, orgId: string) Creates new User
list(orgId?: string) Lists Users in orgId
listOrgs() Lists all orgs for set branch
assignToUserset(userId: string, usersetId: string) Adds User to a Userset
removeFromUserset(userId: string, usersetId: string) Removes User from Userset
check(userId: string, action: string, resourceType: string, resourceId: string, attribute?: string) Checks User access
expand(userId: string) Returns all permissions for users (action, resource_type, resource_id)
grantAction(userId: string, action: string, resourceType: string, resourceId: string, attribute?: string?) Allows User to perform action on (resourceId, resourceType)
revokeAction(userId: string, action: string, resourceType: string, resourceId: string, attribute?: string?) Revokes action on (resourceId, resourceType) for User
grantRole(userId: string, roleId: string, resourceType: string, resourceId: string) Grants Role to User
revokeRole(userId: string, roleId: string, resourceType: string, resourceId: string) Revokes Role from User

Usersets

client.usersets

method description
create(userId: string, orgId: string) Creates Userset
inherit(childRoleId: string, parentRoleId: string) Adds Userset as child of parent Userset
grantAction(userId: string, action: string, resourceType: string, resourceId: string, attribute?: string) Allows User to perform action on (resourceId, resourceType)
revokeAction(userId: string, action: string, resourceType: string, resourceId: string, attribute?: string) Revokes action on (resourceId, resourceType) for Userset
grantRole(userId: string, roleId: string, resourceType: string, resourceId: string) Grants Role to Userset
revokeRole(userId: string, roleId: string, resourceType: string, resourceId: string) Revokes Role from Userset

Grants

client.grants

method description
list(userId: string | null, action: string | null, resourceId: string | null, resourceType: string | null, attribute: string | null, orgId: string | null, startTime: string | null, endTime: string | null) List & filter grants by arguments, startTime is inclusive (>=) and endTime is exclusive (<)
listUnflattened(usersetId: string | None, relation: string | None, relationType: string | None, resourceId: string | None, resourceType: string | None, attribute: string | None, orgId: string | None) Filters User or Userset grants

Blueprint

client.blueprint

method description
upsert(fpath: string) Upserts branches, resource types, and roles defined in blueprint file (yaml or json). fpath is the relative path to the vista config file.

Package Sidebar

Install

npm i @vista.io/vista-api-client

Weekly Downloads

1

Version

0.8.0

License

ISC

Unpacked Size

376 kB

Total Files

44

Last publish

Collaborators

  • siddange