Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

A guide to configuring the SimplyE Circulation Manager, for hosting/implementation providers or technical library staff

Purpose


Note
titleStatus: Development

This guide is currently under development. We're converting from a previous set of documents, so a few of the instructions and links are no longer valid. As soon as the conversion and initial edit is complete, we'll update the status to draft. Nevertheless, comments and feedback are welcome.


Purpose

This document provides the basic instructions necessary to configure a demonstration implementation of the Circulation Manager. They provide access to a This document provides the basic instructions necessary to configure a demonstration implementation of the Circulation Manager. They provide access to a single library with a small, open access collection. This configuration does not yet demonstrate configuring a DRM-protected library service stream from a commercial service, such as Overdrive, Bibliotheca, or Axis 360. Instead, the aim here is to :meet four goals:

  1. Provide an opportunity to experience actively configuring a Circulation Manager before deploying a production serviceEnsure that the Circulation Manager is deployed successfully,
  2. Review how the Circulation Manager works,
  3. Provide an opportunity to experience actively configuring a Circulation Manager before deploying a production serviceEnsure that the Circulation Manager is deployed successfully, and
  4. Promote confidence that the organization is ready to deploy a more robust, production Circulation Manager.

Though this Quickstart does not demonstrate configuring a library's commercial collection of DRM-protected materials, there are other documents which provide step-by-step guidance. After you have configured this demonstration Circulation Manager, you may wish to see the "Configure" articles in the How-to articles section for integrating a one or more specific commercial provider collection.

NOTE: I need to do something with the following block. After reviewing and editing the doc, 
This document will provide the following:

  1. Getting your initial Circulation Manager installed and configured to a state in which a Sysadmin can access and use the configuration UI
  2. Getting a testable version of the App through test flight so they may evaluate and troubleshoot configurations and operations prior to pilot.

Assumptions

collections.

Assumptions/Requirements

Deployment. Your Circulation Manager should be completely deployed and available on the Internet to fully test the configuration elements presented here. Refer to the Deploying a SimplyE Service document Deployment: Your Circulation Manager should be completely deployed and available on the Internet to fully test the configuration elements presented here. Refer to the Deploying a SimplyE Service document for more information on deployment scenarios and instructions on deploying to virtual servers and or Amazon Web Services.

Requirements

System and Library Information. The instructions below refer to data you will need to complete the configuration of several areas of the Circulation Manager. For example, in a production environment as the hosting provider/implementor, you should have already received information from a library to be added to the Circulation Manager. The required library data is described in detail in the document SimplyE Library Implementation Guide. We've included example data below which you will use if following the demonstration library configuration.

In addition to the library information, we make reference here to system-related information. For example, when you deployed your Circulation Manager infrastructure you should have implemented a domain name for the SimplyE Circulation Manager service and added it to your DNS zone. For a single library implementation within a statewide SimplyE implementation (the original design thinking for the service), the domain name would have the form You will need a Chrome or Firefox web browser to access the configuration panel. The admin panel does not display correctly if using Internet Explorer/Edge.
You also need the domain name for which you created a DNS entry in the previous document. The administrative panel site will have a URL of the following form: http://test.example.com/admin
The following steps are needed to get the SimplyE Circulation Manager server installed and ready for configuration.
Domain Name for Circulation Manager
You will need to secure a domain for your instance of SimplyE. The established convention is https://library_name.simplye-state-abbreviation.org (com or net) You will need SSL certificates as well to establish secure communications with the applciation services.
DRM Token for Adobe Vendor ID
To enable a library to borrow ebooks from its various provider collections (Overdrive, Axis360, etc.) in the SimplyE apps, you need to register your library deployment with NYPL's SimplyE Adobe ID service. This allows your Circulation Manager to authorize users with the NYPL Adobe ID license. You'll need to contact NYPL staff using their SimplyE Slack site as mentioned above.
Here is a basic outline of the process:

  • Send a direct message (DM) to Leonard Richardson (@leonardr), supplying the following information (the information is the same as you will gather and enter into the Library configuration page below):
  • Leonard will create a shortname for your library, six characters long. The first two characters will be a two-character postal abbreviation.
  • Leonard will create a shared secret for your Circulation Manager to use in creating a token for use in borrow actions using the NYPL Adobe ID license.
  • During the process of adding the new library to the Circulation Manager, you'll run a script on the (or one of) your webapp servers to register the library with NYPL's service. See section Register a Library with the NYPL Adobe ID Service for details.
  • Send a direct message to Greg O'Neill with the following information:
    • The URL of the circulation manager and library (the library's feed URL: see section X.y below [TBD])
    • The barcode/user_id and PIN/password for the library's "good" test user
    • Potentially, information referencing the library's logo and color choice [Feedback needed: what is required/optional; is this only set in the library's Circulation Manager configuration?]
  • When the Test Flight mobile applications are updated and tested, Greg will respond back with links to/copies of the test applications.

...

  1. Configure admin authentication you must do this before you can proceed
  2. Verify the initial server settings automatically created for your system
  3. Configure Elasticsearch AWS Getting Started Guide
  4. Register the circulation manager with the metadata wranglerI need to add this to the guide.. Guide Document
  5. Configure library / libraries. Guide DocumentThis needs a document

Note: When configuring the library, you MUST provide a default email address to use when notifying patrons of changes.

  1. Configure a patron authentication technique (SIP or ILS) and associate it with the libraryDocument needed?
  2. Configure an analytics mechanism and associate it with the library.Document needed?
  3. Configure collections and associate them with the library. Guide Document
  4. Register your library with NYPL's library registry.

...

  • Go to the admin panel using your URL (e.g. https://<your-circ-manager-url>/admin )
  • Scroll to the bottom of the initial entry screen to the "Create a new individual administrator" form.
  • Enter the email address and password for your first administrative user. You can create additional admin accounts in the configuration utility.
  • Click the submit button to create the first admin account.
  • At the resulting login page, enter the admin credentials you created above and click the Sign In button.
  • Click the Configuration link in the upper right corner of the admin panel.
  • You should see the main configuration page with eleven configuration sections in a left sidebar. Those configurations sections are:
    1. Libraries
    2. Collections
    3. Admin Authentication
    4. Patron Authentications
    5. Site Wide Settings
    6. Metadata
    7. Analytics
    8. CDN
    9. Search
    10. Discovery

...

  • Click the Sitewide Settings item in the left sidebar.
  • Click the Base url of the application setting and make sure it is set to the host and domain name you desired (no trailing 'admin' path).
  • For this base testing deployment, no other site settings are necessary.

...

  • Click the Search sidebar item.
  • Click the Create a new search service item.
  • Enter a descriptive name for the service, such as "Elasticsearch indexing server"
  • Currently only the Elasticsearch server is supported, so the default Protocol item is appropriate.
  • Enter the URL to your Elasticsearch service:
    1. for testing Virtualbox and Linode (single-server) implementations, enter the internal container IP-based URL, "{+}http://172.17.0.2:9200+".
    2. for testing AWS implementations using the AWS ES service, enter the URL to the Elasticsearch server as shown in your ES service console.
  • Unless there is a local reason to change it, leave the default Elasticsearch index name as "circulation-works".
  • Click the Submit button.

...

  • Click the Metadata sidebar item.
  • Click the Create a new metadata service item.
  • Enter a name for the shared Library Simplified Metadata Wrangler service; e.g., "NYPL Metadata Wrangler".
  • In the Protocol list, select the "Library Simplified Metadata Wrangler" item.
  • You can accept the supplied URL for the shared wrangler
  • Click the Submit button. Note: If you happen to receive an error message ("Error: The library could not complete your request because a third-party service has failed"), the Wrangler server may be experiencing high volume or be down for maintenance. Try waiting ten minutes or so and re-submit the form.

...

  • Click the Libraries sidebar item.
  • Click the Create a new library item.
  • Enter a descriptive name that uniquely identifies the library and makes it easy to find in a long list of library names hosted on the Circulation Manager; e.g., "Testing - Demo Library 1".
  • Enter the unique shortname for the library (e.g., "XXABCL", created by NYPL as described in DRM Token for Adobe Vendor ID on page three); this value is used in the OPDS feed path (see the last section of this document) for accessing the library's books from the mobile app.
  • Enter a required primary language code for the library's collection(s); e.g., 'eng' for English and/or 'spa' for Spanish. Again, at least one language must be specified.
  • Select a color for your library theming
  • You can upload a logo PNG - (135x135 required)
  • Click the Add button to the right of the primary language field.
  • You can specify other information about the library if desired (help pages, loan periods, etc.), but the above three are required for testing.
  • Click the Submit button to create the library.

...

. With a change in software implementation to host multiple libraries on one Circulation Manager instance, and with providers offering services not constrained by geography, the Circulation Manager domain might take the form https://circulation.org-name.com/ or https://simplye.org-name.com/. For the sample configuration in this document, we will use the fictitious information below:

Info
iconfalse

SimplyE Provider Domain: http://simplye.provider-name.org/ (substitute here and below with the proper domain for your demonstration instance)
Elasticsearch Service URL: http://172.18.0.11:9200 (assuming you follow the demonstration deployment instructions; substitute the proper URL if not)

Library Name: ABC Public Library
Library Website URL: https://www.abclibrary.org/
Library Shortname (supplied by NYPL): TXABCL (shown as an example, but not used if following the demonstration)
Library Shared Secret (supplied by NYPL): a45fc87defbc11f3 (shwon as an example, but not used if following the demonstration)


Note
TECHNICAL NOTE: The provider domain above uses a simple HTTP service, not an encrypted site. The simple test deployment instructions referenced in Deploying a SimplyE Service do not install the OpenSSL library/module needed to provide HTTPS service. This is by design: the circ-webapp container does not include an SSL service. In a production environment, we assume the Circulation Manager application service will actually be deployed as a multi-server cluster behind a load balancer for reliability and scalability. In that case, the HTTPS service will terminate at the load balancer. Communication between the load balancer and the back-end application server instances will be via simple HTTP. This is standard practice as it decreases load on the application servers. If you will deploy a single application server host for your production Circulation Manager service, you will need to implement SSL on the circ-webapp container or potentially build a custom container. In production, then, we expect the provider domain to be available only via HTTPS.

Web Browser. Last, we recommend you use Google Chrome or Mozilla Firefox to work in the Admin configuration interface. The Admin interface did not render correctly in Microsoft's Internet Explorer or Edge browsers in early 2.x versions of the Circulation Manager and occasionally may still exhibit problems in Explorer/Edge.

Overview

Once you have deployed/installed the Circulation Manager software, you're ready to begin configuring the system to connect to the various external systems that make SimplyE work: commercial ebook provider systems and other sources of ebooks, libraries' integrated library systems, indexing/search servers, metadata servers, and analytics systems. The Circulation Manager acts as a nexus of these systems and provides lists of these resources in the form of OPDS feeds, based on the Atom Syndication Format, to remote clients. Currently SimplyE clients are available for both iOS and Android mobile operating systems. Plans are in place for a web-based client as well.

Configuration of the Circulation Manager can be divided into three areas:

  1. Creating administrator users
  2. Configuring system-wide settings:
    1. Verify the Circulation Manager's server-wide settings
    2. Configure Elasticsearch service
    3. Register the Circulation Manager with the NYPL Metadata Wrangler
  3. Configuring one or more libraries:
    1. Create the library record
    2. Configure one or more collections for the library and associate them with the library
    3. Configure a patron authentication technique (SIP or ILS) and associate it with the library
    4. Configure an analytics mechanism and associate it with the library
    5. In a more thorough test or in production, register the library's catalog with NYPL for inclusion in the mobile apps

The following sections show how to configure a demonstration Circulation Manager. This configuration continues the testing implementation begun in the Ansible deployment repositories.

Create a Circulation Manager Administrator User

The first action to take in configuring your Circulation Manager instance is to create an administrative user. Currently, it is possible to use two mechanisms to enable access to the Circulation Manager's admin interface:

  • Creating individual user accounts 
  • Configuring single sign-on using Google accounts

For the first access to the Circulation Manager, we recommend setting up a single user account acting as the primary administrator of the system. Subsequent access can then be configured as needed.

Access the Web-Based Configuration Interface



  1. Open a web browser and go to the /admin path in the Circulation Manager domain,
    as specified above; e.g., http://simplye.provider-name.org/admin 
  2. Scroll the bottom of the initial page to the section Create a new individual admin 
  3. Enter the appropriate administrative user's email address in the Email field
  4. Enter a secure password (12-16 characters recommended) into the Password field
  5. Click the Submit button below the form


Image Added

When the administrator account is created, your browser will be redirected to the Admin login page.

Login as the Administrator



On the Circulation Manager's login page:

  1. Enter the email address of the administrator you created above into the Email field
  2. Enter the password you created for the administrator into the Password field
  3. Click the Sign In button
Image Added

Configure the Circulation Manager System

Login to the Circulation Manager Admin Interface

  1. Go to the admin website: e.g.,http://simplye.provider-name.org/admin
  2. There is a top menubar which contains the following options:
    1. a library section with a drop-down library selector, plus links for the library's
      1. Catalog
      2. Complaints (from users)
      3. Hidden Books
      4. Lists
      5. Lanes (Lanes Manager)
    2. a Dashboard link, providing general collection statistics
    3. a System Configuration link (just Configuration in older versions)
    4. a user drop-down selector with Sign Out option
  3. Click the System Configuration link in the menubar

You will see the main configuration page with thirteen configuration sections in a left sidebar:

    • Libraries
    • Admins
    • Collections
    • Admin Authentication
    • Patron Authentication
    • Sitewide Settings
    • Logging
    • Metadata
    • Analytics
    • CDN
    • Search
    • Storage
    • Discovery

A few of these sections apply only to special cases, but most of them will be touched in production instances. In this demonstration configuration, we will only visit six; but these are the most commonly used and will give you a good experience in creating a useful SimplyE service.

Verify Initial Circulation Manager Settings

There are a number of settings created automatically when the Circulation Manager is installed or accessed the first time. In this case, we want to verify that the Base URL stored for the system matches the URL we entered in the web browser:

  1. Click the Sitewide Settings item in the left sidebar
  2. Click the Base url of the application setting and make sure it is set to the host and domain name you desired (no trailing /admin path)
  3. For this testing deployment, no other site settings are necessary

Create the Elasticsearch Service Integration

The Elasticsearch service is responsible for supplying search results to the SimplyE mobile clients.

Excerpt Include
Configure Search
Configure Search
nopaneltrue

Create a Metadata Wrangler Integration

Excerpt Include
Configure Metadata Wrangler Integration
Configure Metadata Wrangler Integration
nopaneltrue

Configure a Library

Create the Library Record and Configure Usage

Note: When configuring the library, you MUST provide a default email address to use when notifying patrons of changes.

Excerpt Include
Configure Library
Configure Library
nopaneltrue

Create a Test Collection for the Library

Each library in SimplyE can be configured to have one or more collections associated with it. Generally, this means adding library-specific credentials to a commercial ebook provider's lending system. It can also mean adding links to open collections that are available for any library's use. Except for the specific data elements required to access a vendor's system, the process is very similar from vendor to vendor. For our demonstration library we create a simple collection which is a subset of NYPL's larger Library Simplified Open Access collection. This minimizes the ingest time required and enables us to review the system sooner to make sure everything is working properly. Follow these steps to create the collection and associate it with our demonstration library.

  1. Click the Collections sidebar item.
  2. Click the Create a new collection item.
  3. Enter a descriptive name into the Name field that uniquely identifies the collection and makes it easy to find in potentially a long list of collections; e.g., ABC Library - Plympton
  4. For a collection available as a simple public OPDS feed, which we'll use here (note: composed of 'open-access' or 'borrow' acquisition links; 'buy' links are not supported and such books do not appear in the collection's feed in the SimplyE app), accept the "OPDS Import" protocol.
  5. Enter the URL of a publicly accessible feed;

    for initial testing we will use a small subset of the Library Simplified Open Access collection (a small set of books minimizes import/indexing time and makes the full collection viewable in a short period): [{+}http://

    e.g., http://oacontent.librarysimplified.org/works/sources/Plympton

    +

  6. http://oacontent.librarysimplified.org/works/sources/Plympton]

    Give the collection a unique data source name; e.g.,

    "

    oacontent-plympton

    "

  7. Assign the collection to the test library:

    1. In
    the
    1. the Add Library
    dropdown
    1.  dropdown, select the name of the
    test
    1. library you added earlier: ABC Public Library
    2. Click
    the
    1. the Add Library
    button
    1.  button which appears below the dropdown; this links the collection to the library
    .
    1. You will see the library name in a group list and can delete it if necessary by clicking the 'x' to the right of its name

    .

  8. Click

    the

    the Submit

    button

     button to create the collection

    .


Create

...

the Library's Patron Authentication Integration

To enable library users to borrow and return items from the collection, a patron authentication integration must be created for the library. In all cases, this enables the Circulation Manager to check the user's credentials to ensure the user is a authorized user of the library. The patron authentication mechanisms available are generally either API-based, or SIP2-based. However, there is also a simple authentication mechanism available which is only good for initial testing. It provides a means of recording a single user barcode and PIN to test against when attempting to access the library's SimplyE catalog. We'll use the simple authentication for this demonstration library. For detailed information on configuring a patron authentication integration for a specific integrated library system in a production Circulation Manager, see the document Authenticating Library Patrons when it written.

To create a test authentication mechanism:

  1. Click the Patron Authentication sidebar item
  2. Click the Create a new patron authentication service item
  3. Again, give the service a descriptive name that is easy to identify in a long list of services; e.g., ABC Public Library -- Simple Auth
  4. Accept the default "Simple Authentication Provider" in the dropdown list for this test
  5. Enter a test user identifier; for a simulated 14-digit barcode, you might enter the following: 29999087654321
  6. Enter a test password, which in this case should actually be a PIN, something like: 0550
  7. In the Libraries dropdown item, select the library you created
  8. Click the Add Library button at the bottom of the form
  9. Click the Submit button to create the integration
  • Click the Patron Authentication sidebar item.
  • Click the Create a new patron authentication service item.
  • Again, give the service a descriptive name that is easy to identify in a long list of services.
  • Accept the default "Simple Authentication Provider" in the dropdown list for this test.
  • Enter a test user identifier; for a simulated 14-digit barcode, you might enter the following: 29999087654321.
  • Enter a test password, which in this case should actually be a PIN, something like: 0550.
  • In the Libraries dropdown item, select the test library you created.
  • Click the Add Library button at the bottom of the form.
  • Click the Submit button.

...

As mentioned above, new libraries added to the Circulation Manager must be registered with NYPL in order for patrons using the SimplyE app to borrow books from their collection(s). After obtaining the library's shared secret from NYPL staff above (see DRM Token for Adobe Vendor ID on page three), log into the Circulation Manager application server and create a Short Client Token and register the library with the service.
[Steps to be added.]
bin/configuration/short_client_token_library_configuration --website-url="<website_url>" --vendor-id="NYPL" --short-name="<lib_shortcode>" --secret="<secret_from_NYPL>"

...

While the configuration of the collection above creates the database information needed to access the collection, and to contact to the metadata wrangler server at NYPL to provide additional/enhanced metadata if available, it does not actually result in books being added to the collection. The OPDS feed import option does not have a corresponding import script that is scheduled to run on the server. You will need to access the Circulation Manager host and execute the script manually.

...

When deploying the Circulation Manager host resources locally in VirtualBox or online using Linode.com, the instructions provided allow you to connect remotely to the host with a Vagrant command:
vagrant ssh
This will be the simplest way to connect. However, it isn't the most secure way to connect. For production servers, you should disable remote access to the host by the root user and enforce private-key-based access (with passphrase) only.
For deployments to Amazon Web Services, since this repository uses Ansible alone for AWS deployments, one should create a standard SSH connection. Future additions to the documentation will include specific instructions as needed.

...

There are two Docker containers that provide Circulation Manager services: circ-scripts and circ-deploy. The circ-deploy container actually hosts the application; the circ-scripts container hosts the management scripts. Management scripts that are required to keep the Circulation Manager operating appropriately are already scheduled to run periodically.
However, the script which controls OPDS feed imports is not run automatically. To access the proper Docker container and execute the script, first connect to a console session inside the container. Issue the command:
sudo docker exec -it circ-scripts /bin/bash
Once you receive a command prompt in the container, you can begin the import process by running the following command:
../core/bin/run opds_import_monitor >> /var/log/cron.log 2>&1
The test collection, at the time of this writing, has about 70+ titles. Give the server fifteen minutes or so to complete importing the works from the feed.
Once the import process is complete, if you wish to review the import logs, execute the following command:
cat /var/log/libsimple/opds_import_monitor.log
After the title data is imported from the feed, the views of the collection may need to be "refreshed" before those titles will be available in the OPDS feed to the SimplyE app. However, the script to refresh the views only runs every 6 hours. To run the script manually, execute the following command:
../core/bin/run refresh_materialized_views >> /var/log/cron.log 2>&1
Once the "refresh" script is complete, you can return to the host by running the command:
exit

...

Configuring Custom Lanes for the SimplyE Mobile App

The SimplyE mobile app presents subsets of a library's collection, usually specific genres and/or sub-genres of a collection, as a set of a collection, as a set of carousels termed lanes in its primary interface. Lanes are automatically generated from the metadata included in an ebook data feed. However, the lanes presented can be customized. Customize the lanes configuration for a library using the web-based admin panel (as of version 2.1).
This section now needs a step-by-step demo of customizing the swim lanes in the Admin panel.
For previous Circulation Manager versions, you must configure lanes in a JSON-formatted configuration file. Specific elements and examples of lanes are documented in the official Simplifed wiki under LaneConfiguration. An example lane configuration file is provided in the files directory of the repository. Instructions to provide a configuration file in your test deployment are provided in the main README file.

...

carousels termed lanes (swim lanes) in its primary interface. Lanes are automatically generated from the metadata included in an ebook data feed. However, the lanes presented can be customized. The document Customizing Lane Categories, providing a demonstration with step-by-step configuration instructions, is planned for development soon. If you wish to look at the editor interface before that document is ready:

  1. Login to the Circulation Manager admin interface as normal
  2. On the left side of the top menubar, click the drop-down list of libraries
  3. Select the library name for which you would like to customize lanes
  4. In the top menubar, click the Lanes link
  5. Review the Lane Manager sidebar for customization options

More information will follow in the detailed document.

Accessing the Demonstration Collection

Once the system is configured with the library you created and the demonstration collection you imported, you will be able to view the collection in the Circulation Manager Admin interface. 

To access the demonstration collection for the library, log in to the Admin interface as you've done in the sections above. Assuming the demo library is the single library tenant in the Circulation Manager, the library's catalog will be displayed in a series of topic carousels. If you have multiple library tenants in the Circulation Manager, select the desired library name in the library drop-down at the left side of the top Admin interface's top menu. The chosen library's catalog will be displayed.

Register with the Library Simplified Library Registry Service

Viewing a collection in either the beta or production SimplyE mobile apps requires registering the library with NYPL's Library Simplified Library Registry. App use currently is intended only for actual libraries. (Future development tasks have been discussed to enable registering a demonstration library but the feature is not yet available.) Skip this step for the demonstration example.

If you have configured an actual library and wish to include the library in the SimplyE Beta program so staff can fully review their collections in the SimplyE apps, you must register the library. Registration adds the library to the apps' list of libraries participating in SimplyE so users can log in and use materials. It also creates a secret key for the library so the apps can use NYPL's Adobe Vendor ID on behalf of the library in making loan requests of any commercial titles (OverDrive, Bibliotheca, Axis 360, etc.) in the library's collections.

Configuration steps coming soon

...

Once the system is configured and the test feed is imported, you can set up the generic SimplyE mobile app to point to your test library's collection by using a tap sequence to open up a hidden prompt.

  1. Open the SimplyE app on your device.
  2. Tap the menu icon.
  3. Tap the Settings item.
  4. In rapid succession, tap the Version entry eight times.
  5. Tap the Alternate URIs entry which appears.
  6. In the Feed URI field, enter the URL to the test library's OPDS feed; the feed will be of the following form, ending with the shortname mentioned above when creating the library settings:

http://hostname.example.com/shortname

  1. Click the Set button at the bottom of the form.
  2. Click the back arrow icon to go back to Settings.
  3. Click the menu icon.
  4. Click the Catalog item to display books in the test library's collection.

This manual mechanism is available for informally testing library collections. In production scenarios, each library created in the admin panel must be registered using the Discovery sidebar item and the Simplified Library Registry. The process of registering a library's circulation feed will enable the development team to include the library in the selector of available library feeds in the generic SimplyE mobile app. Do not register test libraries.