User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
public:bc_services_card [2023/03/24 21:43]
jeff [Creating a patron self-registration application]
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://docs.evergreen-ils.org/eg/docs/latest/circulation/circulation_patron_records_web_client.html#_registering_new_patrons|docs]]). We also have custom scripts for importing patron records from student management systems for a few post-secondary libraries. There's no official API or process specifically intended to enable third-party applications to create/import/validate patron records (EG needs more third-party-friendly APIs generally), but there's a feature request to include a standard import script: [[https://bugs.launchpad.net/evergreen/+bug/1786524|LP#1786524]] Patrons are normally registered via the EG staff client, by staff at the circ desk ([[https://docs.evergreen-ils.org/eg/docs/latest/circulation/circulation_patron_records_web_client.html#_registering_new_patrons|docs]]). We also have custom scripts for importing patron records from student management systems for a few post-secondary libraries. There's no official API or process specifically intended to enable third-party applications to create/import/validate patron records (EG needs more third-party-friendly APIs generally), but there's a feature request to include a standard import script: [[https://bugs.launchpad.net/evergreen/+bug/1786524|LP#1786524]]
  
-Several other Evergreen consortia (PINES and KCLS) use Quipu's eCARD product which has some overlap with BC Services Card use cases. There's been some effort to bring their Quipu integration into mainline Evergreen, ideally in a generic way that could also support similar products: [[https://bugs.launchpad.net/evergreen/+bug/1902937|LP#1902937]]+Several other Evergreen consortia (PINES and KCLS) use Quipu's eCARD product which has some overlap with BC Services Card use cases. There's been some effort to bring their Quipu integration into mainline Evergreen, ideally in a generic way that could also support similar products: [[https://bugs.launchpad.net/evergreen/+bug/1902937|LP#1902937]] (there's some discussion here of account renewal requirements at non-Sitka libraries which may be of interest too).
  
 Evergreen also has a patron self-registration feature ([[https://docs.evergreen-ils.org/eg/docs/latest/circulation/circulation_patron_records_web_client.html#_patron_self_registration|main docs]] / [[https://docs.evergreen-ils.org/eg/docs/latest/admin/patron_self_registration.html|admin docs]]). <del>We're not using it, but</del> it's a good fit for this project; if nothing else, it provides a model for how to go about creating patron-initiated "pending" accounts in EG. Evergreen also has a patron self-registration feature ([[https://docs.evergreen-ils.org/eg/docs/latest/circulation/circulation_patron_records_web_client.html#_patron_self_registration|main docs]] / [[https://docs.evergreen-ils.org/eg/docs/latest/admin/patron_self_registration.html|admin docs]]). <del>We're not using it, but</del> it's a good fit for this project; if nothing else, it provides a model for how to go about creating patron-initiated "pending" accounts in EG.
Line 70: Line 70:
  
 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 ''open-ils.actor.user.stage.create'' API. This would mean that our application doesn't have to know anything about Evergreen objects or the fieldmapper. The service could also include some kind of simple "API key" type mechanism that indicates which application provided the patron data; this could be leveraged to speed up the approval process, since BC Services Card-based account requests are presumed to be trustworthy. For simplicity's sake, the service could be exposed as another Evergreen API via the OpenSRF gateway. This would obviously require some Evergreen-specific development, but implementation would not be an enormous project for a knowledgeable Evergreen developer, and the actual self-registration application could be built separately by devs who don't need to have much experience with Evergreen. 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 ''open-ils.actor.user.stage.create'' API. This would mean that our application doesn't have to know anything about Evergreen objects or the fieldmapper. The service could also include some kind of simple "API key" type mechanism that indicates which application provided the patron data; this could be leveraged to speed up the approval process, since BC Services Card-based account requests are presumed to be trustworthy. For simplicity's sake, the service could be exposed as another Evergreen API via the OpenSRF gateway. This would obviously require some Evergreen-specific development, but implementation would not be an enormous project for a knowledgeable Evergreen developer, and the actual self-registration application could be built separately by devs who don't need to have much experience with Evergreen.
 +
 +4. We could skip the API and allow the application to insert patron data directly into staging.user_stage and related tables in Evergreen's Postgres database.
  
 ==== Matching existing accounts ==== ==== Matching existing accounts ====
Line 77: Line 79:
 Many BC public library patrons have their driver's license or BC Services Card number in the ident_value field, but this data is not controlled or validated and we can't guarantee its accuracy. Many BC public library patrons have their driver's license or BC Services Card number in the ident_value field, but this data is not controlled or validated and we can't guarantee its accuracy.
  
 +==== Further information ====
 +
 +
 +[[https://docs.evergreen-ils.org/eg/docs/latest/integrations/web_services.html|More information about Evergreen web services (OpenSRF gateway etc.)]]. Some of this info may be outdated.
 +
 +[[https://docs.evergreen-ils.org/eg/docs/latest/development/intro_opensrf.html|Easing Gently into OpenSRF]] - an overview of how to write an OpenSRF service; provides a good introduction to some OpenSRF concepts and how to use them.
 +
 +[[https://wiki.evergreen-ils.org/doku.php?id=newdevs:start|Documentation for new Evergreen developers]] - very incomplete, but perhaps useful for orientation purposes.
  
 ---- ----
public/bc_services_card.1679694238.txt.gz · Last modified: 2023/03/24 21:43 by jeff