Skip to main content

Client for the Vista API

Project description

Vista API for Python

Python implementation of the Vista API.

Reference

Prerequisites

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

Usage

Install the dependency:

pip install vista_api_client

Then in your Node application:

from vista_api_client import VistaClient

VISTA_API_KEY = 'create-in-vista-dashboard'

client = VistaClient(VISTA_API_KEY, 'branch_name')
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.with_branch(branch: str) to use supply a different branch using the same client.

Usage

The following describes methods namespaced by Vista resources.

Admin

client.admin

method description
create_branch(branch: str) Creates new Branch
clone_branch(branch: str, new_branch: str) Clones templates in branch to newBranch
create_read_tokens() Creates a set of read-only tokens meant to be used by Vista React components
get_company() Gets Company ID

Resource Types

client.resource_types

method description
list() Lists all Resource Types
upsert(name: str, actions: str[], attributes: {id: str, target_resource_type: str, attribute_type: 'RELATIONSHIP' | 'SCALAR'}[]) Upserts a Resource Type
add_relationship(from_id: str, from_resource_type: str, attribute: str, to_id: str, to_resource_type: str) Adds an attribute relationship between 2 resourceIds

Roles

client.roles

method description
list(org_id: str) Lists all Roles
upsert(role_id: str, permissions: { resourceType: str, attribute: str, action: str, ownerId: str }[], owners: { key: str }, parentRoles: string[], orgId: string) Upserts a Role

Users

client.users

method description
create(user_id: str, org_id: str) Creates new User
list(org_id?: str) Lists Users in org_id
list_orgs() Lists all orgs for set branch
assign_to_userset(user_id: str, userset_id: str) Adds User to a Userset
remove_from_userset(user_id: str, userset_id: str) Removes User from Userset
check(user_id: str, action: str, resource_type: str, resource_id: str, attribute?: str) Checks User access
expand(user_id: str) Lists all granted permissions for User.
grant_action(user_id: str, action: str, resource_type: str, resource_id: str, attribute?: str) Allows user to perform action on (resource_id, resource_type)
revoke_action(user_id: str, action: str, resource_type: str, resource_id: str, attribute?: str) Revokes action on (resource_id, resource_type) for User.
grant_role(user_id: str, role_id: str, resource_type: str, resource_id: str) Grants Role to User
revoke_role(user_id: str, role_id: str, resource_type: str, resource_id: str) Revokes Role from User

Usersets

client.usersets

method description
create(user_id: str, org_id: str) Creates Userset
grant_action(user_id: str, action: str, resource_type: str, resource_id: str, attribute?: str) Allows User to perform action on (resource_id, resource_type)
revoke_action(user_id: str, action: str, resource_type: str, resource_id: str, attribute?: str) Revokes action on (resource_id, resource_type) for Userset
grant_role(user_id: str, role_id: str, resource_type: str, resource_id: str) Grants Role to Userset
revoke_role(user_id: str, role_id: str, resource_type: str, resource_id: str) Revokes Role from Userset

Grants

client.grants

method description
list(user_id: str | None, action: str | None, resource_id: str | None, resource_type: str | None, attribute: str | None, org_id: str | None, start_time: str | None, end_time: str | None) List & filter grants by arguments, start_time is inclusive (>=) and end_time is exclusive (<)
list_unflattened(userset_id: str | None, relation: str | None, relation_type: str | None, resource_id: str | None, resource_type: str | None, attribute: str | None, org_id: str | None) Filters User or Userset grants

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vista_api_client-0.7.5.tar.gz (7.4 kB view details)

Uploaded Source

File details

Details for the file vista_api_client-0.7.5.tar.gz.

File metadata

  • Download URL: vista_api_client-0.7.5.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.4

File hashes

Hashes for vista_api_client-0.7.5.tar.gz
Algorithm Hash digest
SHA256 b5b17e097b2206387d5871b6e5c87bf33030435b9a62ebec3850a3ebeba4ebf5
MD5 f7779cea6781998ab4b0509772855054
BLAKE2b-256 e1aaa410c809ecc429c1b1d296d8ebda26b92d5cfae7e843e04ba516818d60fd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page