Uploading CAWI projects to SCROLL


SCRAPI (SCROLL API) is a system for loading complete, or components of, CAWI projects into SCROLL. It uses a script, scrapi, to load the files.

Loading a complete project

The example below is based on using SCRAPI to load CAWI project myproject into SCROLL account MyAccount on server scroll.infotap.uk.

  • Develop and test the CAWI project on a local machine or a server in the usual way.

  • For convenience add a new user to the SCROLL account for the SCRAPI run.

    If an existing user is used then they will be logged out of any open SCROLL session when scrapi is run. When testing it is convenient to have a SCROLL session open for testing and not have to login again after each SCRAPI update.

    In the example below the main account user is fred.bloggs@gide.net so text "+API" is added to the email of the user created for running SCRAPI. The SCRAPI user must be an Account Administrator with Full project rights.

  • Create file scrapi.json to specify the project account details.

{"server" : "https://scroll.infotap.uk", "email" : "fred.bloggs+API@gide.net", "account" : "MyAccount", "project" : "myproject" }

  • Use scrapi to create the new project in SCROLL with no layout as in the example below:

scrapi create-project myproject "My project title" none

  • Write a script to use scrapi to upload the CAWI files and directories to SCROLL.

scrapi upload dsc myproject.dsc scrapi upload rsc myproject.rsc/* scrapi upload docs myproject.docs/* scrapi upload ini myproject.ini

  • Sign in to SCRAPI

scrapi sign-in

       When prompted enter the SCROLL account password for the user specified in scrapi.json

  • Run the script to run scrapi and upload the CAWI project files.

List of scrapi actions

The full list of actions that can be performed with the scrapi command are listed below. User and account details can be supplied in the scrapi.json file or as arguments to the scrapi command.


scrapi [--arg value ...] action [params ...]

Where arg is:

--server SCROLL server - e.g. https://scroll.infotap.uk --email Email address of user to connect as. --account Name of SCROLL account to access --project Identifier of project to access

and action is:

status Display current authentication status using cached credentials sign-in Authenticate to server (enter password when prompted) sign-out Sign out from server (invalidate current session) list-accounts List all accounts the user can access list-projects List all projects in selected account list-layouts List all layouts available in selected account create-project Create a new project identifier Short identifier title Title layout Layout tag (or "none" for no layout) project-info Return info about selected project upload Upload a file to the development zone dir Target directory (or file) for upload - "dsc", "ini", "rsc" or "docs" file Name of file(s) publish Publish project (copy from development to live zones) upload-data Upload data (.csv, .xlsx, .zip, .scroll) to data zone file Name of file(s) upload-global-data Upload data (.csv, .xlsx, .zip, .scroll) to global distribution list file Name of file(s) delete-data Delete all data from project distribution list delete-global-data Delete all data from a data project

Examples: scrapi --server https://scroll.infotap.uk --email fred.bloggs+API@gide.net sign-in scrapi --server https://scroll.infotap.uk --email fred.bloggs+API@gide.net list-accounts scrapi --server https://scroll.infotap.uk --email fred.bloggs+API@gide.net --account MyAccount list-projects scrapi --server https://scroll.infotap.uk --email fred.bloggs+API@gide.net --account MyAccount --project myproject project-info scrapi --server https://scroll.infotap.uk --email fred.bloggs+API@gide.net --account MyAccount --project myproject upload dsc myproject.dsc