This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
public:bc_services_card [2023/03/17 21:40] jeff |
public:bc_services_card [2024/05/09 05:04] (current) |
||
---|---|---|---|
Line 7: | Line 7: | ||
Patrons are normally registered via the EG staff client, by staff at the circ desk ([[https:// | Patrons are normally registered via the EG staff client, by staff at the circ desk ([[https:// | ||
- | Several other Evergreen consortia (PINES and KCLS) use Quipu' | + | Several other Evergreen consortia (PINES and KCLS) use Quipu' |
- | Evergreen also has a patron self-registration feature ([[https:// | + | Evergreen also has a patron self-registration feature ([[https:// |
There' | There' | ||
Line 33: | Line 33: | ||
* When patron self-registration is permitted, the data entered by the patron is initially stored in the staging tables shown on the far right of the diagram. Staff then have the ability to review this pending patron information and approve account creation. | * When patron self-registration is permitted, the data entered by the patron is initially stored in the staging tables shown on the far right of the diagram. Staff then have the ability to review this pending patron information and approve account creation. | ||
+ | |||
+ | ===== User stories for BCSC integration ===== | ||
+ | |||
+ | - As a new patron, I want to register for a library card online so that I can access library resources more easily. | ||
+ | - As circulation staff, I want new patrons to pre-register for an account online so that the registration process is more efficient and accessible and patron information is entered quickly and reliably. | ||
+ | - As circulation staff, I want to auto-validate current patrons when I renew their accounts so that I don't have to do it manually at the circ desk. | ||
+ | - As a library manager, I want patron accounts to be pre-registered/ | ||
+ | - As a Co-op service manager, I want patron data to be validated so that I can use it as a basis for other services. | ||
+ | - As a malicious user, I want to create fake or unauthorized patron accounts so that I can access library resources illegitimately. | ||
+ | |||
+ | |||
+ | ===== Creating a patron self-registration application ===== | ||
+ | |||
+ | Suppose we wanted to create an application that allowed patrons to request a library card using their BC Services Card. That is, instead of using EG's native patron self-registration UI, we'd have an external app that presents the user with a registration form, populates with their personal data based on their BC Services Card, and then submits that data to Evergreen to create a " | ||
+ | |||
+ | How does our application submit the patron data to Evergreen? Our best bet is to use the existing infrastructure for native patron self-registration as much as possible -- that is, create pending patron accounts in the same way that Evergreen itself does. | ||
+ | |||
+ | Native self-reg uses the '' | ||
+ | - user (stgu object) | ||
+ | - mailing address (stgma object) | ||
+ | - billing address (stgma object) | ||
+ | - stat cats (array of stgsc objects) | ||
+ | - user settings (array of stgs objects) | ||
+ | |||
+ | Only the first parameter (user) is required, the others are optional. The object classes (stgu, stgma, stgsc, stgs) are defined by the [[https:// | ||
+ | |||
+ | How do we use this API? There are a few possibilities: | ||
+ | |||
+ | 1. We could use it directly, by submitting HTTP requests to the [[https:// | ||
+ | |||
+ | < | ||
+ | |||
+ | For this to work, our application would need to know how to instantiate Evergreen-specific fieldmapper objects (stgu, etc.) that will be accepted as such when passed to EG via the gateway, which is non-trivial. This is a brittle approach for an external application. | ||
+ | |||
+ | 2. We could build BC Services Card integration directly into Evergreen. This is probably not a good idea, since it requires developers to be knowledgeable about both Evergreen and BC Services Card. Also, we want to leave the door open to using our hypothetical patron self-registration application with non-Evergreen library systems. | ||
+ | |||
+ | 3. We could create a thin wrapper service in Evergreen that accepts patron data as a JSON blob, translates it into native Evergreen objects, and passes the result to the '' | ||
+ | |||
+ | 4. We could skip the API and allow the application to insert patron data directly into staging.user_stage and related tables in Evergreen' | ||
+ | |||
+ | ==== Matching existing accounts ==== | ||
+ | |||
+ | The staff interface for patron registration checks for duplicates during the registration process: it will present a notification if the provided name, email, or address already exists in Evergreen. The duplicate checks are performed using the '' | ||
+ | |||
+ | Many BC public library patrons have their driver' | ||
+ | |||
+ | ==== Further information ==== | ||
+ | |||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[https:// | ||
---- | ---- | ||
Line 38: | Line 92: | ||
* **Inventory of current technologies being used** | * **Inventory of current technologies being used** | ||
+ | * Evergreen uses an open source software stack, primarily Linux + Apache + PostgreSQL + Perl. The public catalogue (OPAC) uses Perl's Template Toolkit engine with some Bootstrap JS. The staff client is an Angular app that makes use of Websockets. [[https:// | ||
* **List of current library sites and what is being managed for them** | * **List of current library sites and what is being managed for them** | ||
* **Any additional common challenges today not identified above** | * **Any additional common challenges today not identified above** | ||
* **General intro to the library system, what changes and what’s static,** | * **General intro to the library system, what changes and what’s static,** | ||
+ | * Not really sure how to answer this, can you be more specific about what you want to know? | ||
* **How are people and accounts created today? Go to branch -> some registration and card issuance, create account at home. What identifiers are collected, email, names, ?** | * **How are people and accounts created today? Go to branch -> some registration and card issuance, create account at home. What identifiers are collected, email, names, ?** | ||
* Potential workflows: | * Potential workflows: | ||
- A new public library patron wants a library account. They go into their local library, go to the circ desk, and show their ID or proof of residency. Circ staff manually enter their info into the patron registration UI (city and province are auto-populated when they enter the postal code) and give the patron a physical library card with barcode. | - A new public library patron wants a library account. They go into their local library, go to the circ desk, and show their ID or proof of residency. Circ staff manually enter their info into the patron registration UI (city and province are auto-populated when they enter the postal code) and give the patron a physical library card with barcode. | ||
- | - A new public library patron wants a library account. They pre-register for an account online. Circ staff review, approve the account, and send a notification to the patron. The patron goes into their local library and picks up their library card at the circ desk. NB: Sitka is not currently using this feature, but it is supported by Evergreen. | + | - A new public library patron wants a library account. They pre-register for an account online. Circ staff review, approve the account, and send a notification to the patron. The patron goes into their local library and picks up their library card at the circ desk. Note that this workflow still involves manual intervention by staff for each new account registration. <del>Sitka is not currently using this feature, but it is supported by Evergreen.</ |
- An existing patron' | - An existing patron' | ||
+ | * The above is based on Jeff's educated assumptions about how patron registration works. We should consult with a few of our libraries to verify the above and see if there' | ||
+ | * During registration, | ||
+ | * PL Adult (default) | ||
+ | * PL Juvenile | ||
+ | * PL Teen | ||
+ | * PL BC OneCard | ||
+ | * PL Non Resident - Adult | ||
+ | * PL Non Resident - Juvenile | ||
+ | * PL Federation | ||
+ | * PL Extended Loans | ||
+ | * PL No-fines | ||
+ | * PL Print Disabled | ||
+ | * PL Home Services | ||
+ | * PL Restricted Access | ||
+ | * PL Custom | ||
+ | * PL Temporary | ||
+ | * PL New User | ||
* Identifiers collected (plus % of current BC public library patrons who have this info in their patron record): | * Identifiers collected (plus % of current BC public library patrons who have this info in their patron record): | ||
* legal name: 100% | * legal name: 100% | ||
Line 58: | Line 131: | ||
* Status Card: <1% | * Status Card: <1% | ||
* Other (unknown type): 5% | * Other (unknown type): 5% | ||
- | * This information is entered manually by staff (except city/ | + | * Examples of other data gathered during patron registration for reporting purposes |
+ | * geographic area, residency, electoral district | ||
+ | * gender (mostly unused now) | ||
+ | * school, grade | ||
+ | * age group | ||
* **When we say “record” what do we mean?** | * **When we say “record” what do we mean?** | ||
+ | * A " | ||
* **How strict are validation rules? How strict would they be with bcsc?** | * **How strict are validation rules? How strict would they be with bcsc?** | ||
+ | * We don't do any automated validation of personal info. Personal information is entered manually by staff (except city/ | ||
* **Is there business value for existing patrons to “link” their BCSC proactively? | * **Is there business value for existing patrons to “link” their BCSC proactively? | ||
* **Privacy/ | * **Privacy/ | ||
Line 68: | Line 147: | ||
* Coop Response: Not sure I fully understand; the Coop (and non-Sitka member libraries) provide a TON of access to digitally licensed products right now. Those 3rd party licensed content providers typically authenticate against accounts from the library ILS through a couple of different methods. The Co-op offers SIP2 interfaces (which were historically developed for in-branch authentication only but have for 20 years been mis-used for cross-internet authentication) as well as an emulation of the " | * Coop Response: Not sure I fully understand; the Coop (and non-Sitka member libraries) provide a TON of access to digitally licensed products right now. Those 3rd party licensed content providers typically authenticate against accounts from the library ILS through a couple of different methods. The Co-op offers SIP2 interfaces (which were historically developed for in-branch authentication only but have for 20 years been mis-used for cross-internet authentication) as well as an emulation of the " | ||
* **Any other tables and key data elements that would be helpful (other than those already provided on the wiki) ?** | * **Any other tables and key data elements that would be helpful (other than those already provided on the wiki) ?** | ||
+ | |||
+ | ==== Further questions from Co-op staff ==== | ||
+ | |||
+ | * There may be information that needs to be captured during registration that can't be validated by the service or provided by the patron (e.g. patron type, stat cats). How to handle that? | ||
+ | * Evergreen workflows require staff to manually approve pre-registered accounts and provide a physical card. Is there a desire to enable account creation without these steps? | ||
+ | * Should we be worried about fraudulent account creation? For example, theoretically someone could register an account with stolen info and steal a bunch of books, and the victim could be on the hook for replacement costs. This becomes a bigger risk if we become the ID provider for other services. | ||
+ | * Are there other privacy/ | ||
===== Docs from Other ILS ===== | ===== Docs from Other ILS ===== | ||
Line 81: | Line 167: | ||
| |Vancouver Island Regional Public Library | | | | |Vancouver Island Regional Public Library | | | ||
| |West Vancouver Memorial Library| | | | |West Vancouver Memorial Library| | | ||
- | |SirsiDynix Horizon |Burnaby Public Library |x | | + | |{{ : |
| |Cranbrook Public Library | | | | |Cranbrook Public Library | | | ||
| |New Westminster Public Library| | | | |New Westminster Public Library| | |