Data types

This section describes the data types returned by the API.

Roles

Three built-in roles (permission/clearance levels) exist for accsyn users. The role determines which entities and attributes can be read and written through the API:

  • Administrators (admin); Full read/write access to all data and workspace configuration.
  • Employees (employee); Full access to jobs and data on volumes with explicit access granted.
  • Standard users (standard); External/remote users who receive deliveries and access resources (shared folders, homes, collections, compute resources) only through explicit ACLs (Access Control Lists).

Note

Bound to each role is a set of rights (permissions), an API key can be created with explicit rights.

Entities

Data read from accsyn using the API arrives as JSON dictionaries, categorised by entity types:

accsyn entitytypes and role permissions
Entity type: Description: Admin:   Employee:   Standard:  
    Read Write Read Write Read Write
User Users and their profile data YES YES YES 1 YES 1 YES 2 YES 2
Workspace Global workspace settings YES YES YES no no no
Queue A queue of jobs (transfers, renders
(compute), deliveries, …) to be executed
YES YES YES no no no
Transfer A file transfer job with each task
being a file of folder to transfer (was formerly
known as “job”)
YES YES YES YES YES 3 YES 3
Delivery A delivery package containing one
or more file(s) and/or folder(s) to be delivered
to one or more recipients
YES YES YES YES YES 4 YES 4
Request A request package containing one
or more file(s) and/or folder(s) to be requested
from one or more senders
YES YES YES YES YES 4 YES 4
Stream A video stream of one or more
files to be streamed and/or downloadable by one or
more recipients
YES YES YES YES YES 4 YES 4
Task A file/directory that should be
transferred within a job.
YES YES YES YES YES 3 YES 3
Folder Defines a sub-directory beneath a
volume that should be granted access through ACLs
to one or more standard users.
YES YES YES YES 5 YES 6 YES 6
Collection A virtual shared folder containing
one or more files and/or folders to be granted
access through ACLs to one or more standard users.
YES YES YES YES 5 YES 6 YES 6
Home Defines the special home sub-directory
beneath a volume that should be granted
access through ACLs to a specific user.
YES YES YES YES 5 YES 6 YES 6
Volume Defines a directory, typically on a
network volume, available
to accsyn and
granted access through ACLs to one or more employees.
YES YES no no no no
Site A physical or cloud location where accsyn
can be deployed
YES YES YES no no no
Server A workspace file transfer endpoint or
compute node
YES YES YES no no no
User server A server running remotely in user space
for unattended file deliveries and
globally mapped shares.
YES YES YES YES YES 1 YES 1
Client A user file transfer endpoint running in
app or web browser.
YES YES YES YES YES 1 YES 1
ACL Access control list defining what a user
has access to (workspace, folder, delivery etc.)
YES YES YES YES YES 1 YES 1
  • 1 Their own and standard users.
  • 2 Only their own.
  • 3 If involved in the job as sender or receiver.
  • 4 If an explicit recipient.
  • 5 Except admin or other employee home shares.
  • 6 Home share and share given explicit access through ACL.

A schematic view of the entity types and relationsship can be located here:

https://support.accsyn.com/developer

To retrieve a list of all known entity types:

session.find("entitytypes")

This returns a list of entity type strings — for example ["user","organization","job",..].

Attributes

Each entity has its own attributes, such as id or code (accsyn’s abbreviation for a unique name).

To retrieve known attributes for an entity:

session.find('attributes WHERE entitytype=delivery')

This returns a list of attributes a delivery entity can have — for example ["id","code","status",...].

Note

Available attributes depend on the API user’s role/clearance level.

By default, all readable attributes are returned. To return attributes only allowed during creation and edit:

session.find('attributes WHERE entitytype=folder', create=True)

session.find('attributes WHERE entitytype=folder', update=True)