RSS

Forums/Announcements

ScreenSteps Live User Provisioning API

Greg DeVore
posted this on Jun 23 09:37

We are happy to announce a new beta version of a ScreenSteps Live User Provisioning API. 

Why would I want to use this?

The ScreenSteps Live User Provisioning API will allow you create, edit and delete users and their viewing permissions from your own applications or services. Possible uses include:

  • Creating new reader accounts and assigning them to protected spaces.
  • Synchronizing user passwords with an external system.
  • Deleting users that need to be removed from your system.
  • Creating groups and adding/removing them from spaces.

How does it work?

The ScreenSteps Live User Provisioning API is RESTful API. Authentication is handled through HTTP Basic Authentication with your username and password. Here are the pertinent urls:

URL Result
/admin/users List all users on your account
/admin/users/:user_id Retrieve information for a single user
/admin/groups List all groups in your account
/admin/groups/:group_id Retrieve information for a single group
/admin/spaces  List all spaces in your account
/admin/spaces/:space_id  Retrieve information for a single space 
POST /admin/spaces/:space_id/viewers?id=:user_id&type=user Add a user to a space
POST /admin/spaces/:space_id/viewers?id=:group_id&type=group  Add a group to a space 
POST /admin/groups/:group_id/members&id=:user_id Add a user to a group 
PUT /admin/users/:user_id  Update a user
DELETE /admin/users/:user_id Delete a user
DELETE /admin/groups/:group_id Delete a group
DELETE /admin/spaces/:space_id/viewers/:user_id&type=user Remove a user from a space
DELETE /admin/spaces/:space_id/viewers/:group_id&type=group Remove a group from a space
DELETE /admin/groups/:group_id/members/:user_id Remove a user from a group
# RESTful API
# Spaces
/admin/spaces
# Users
/admin/users
# Groups
/admin/groups
# add user to a group
post /admin/groups/#{group_id}/members, :id => user_id
# requred params for new group (login, email, password, password_confirmation, role)
# email is not required for api access user
# role can be one of admin, author, editor, reader, api access
# Group Members
/admin/groups/#{group_id}/members
# Space viewers (can contain users and/or groups)
/admin/spaces/#{space_id}/viewers
# Adding a group to a space
post /admin/spaces/#{space_id}/viewers, :id => group_id, :type => "group"
# Adding a user to a space
post /admin/spaces/#{space_id}/viewers, :id => user_id, :type => "user"
Remove user from a space
delete /admin/spaces/#{space_id}/viewers/#{user_id}, :type => "user"
Remove group from a space
delete /admin/spaces/#{space_id}/viewers/#{group_id}, :type => "group"

 

Required parameters for creating a new user include:

login, email*, password, password_confirmation, role

Valid roles are:

admin, author, editor, reader, api access

Optional parameters include:

first_name, last_name, time_zone

 

* Email addresses are not required for api access users.

 

The only required field for a new group is title.

 

Ruby Wrapper

We have also provided an ActiveResource wrapper for the user provisioning API. You can get it on GitHub:

http://github.com/bluemango/ScreenSteps-Live-User-Provisioning-Ruby...