Uploaded image for project: 'mod-circulation'
  1. mod-circulation
  2. CIRC-187

Back end work for UICIRC-164 and UICIRC-165: Include request policy and patron notice policy in circulation rules syntax



    • Story
    • Status: Closed (View Workflow)
    • P1
    • Resolution: Done
    • None
    • 15.0.0
    • Core: F - Sprint 57
    • 13
    • Prokopovych


      In order to support different kinds of policies using the same loan rules, the loan rules syntax will be extended to allow for a rule to (optionally?) define a loan, request, and patron notice policy.

      UICIRC-164 and UICIRC-165 only define editor behaviour for defining the new rules syntax, and not about application of those rules.

      Therefore I am making some inferences as to the scope of this change. jakub cboerema Sean Thomas oleksiy_lemeshko I'd appreciate feedback on whether this scope seems correct and whether we believe this is sufficient elaboration (pre-grooming) for a backend story.


      • Loan rules API should treat the new format as valid
      • Loan rules API will evaluate the loan rules to determine a loan policy
      • Loan rules API will not evaluate the loan rules to determine a request or patron notice policies

      Technical Scope

      • Rename the API endpoints associated with loan rules to be circulation rules instead, to reflect the broader usage
      • Provide circulation 6.0 interface
      • Depend upon circulation-rules-storage 1.0 instead of loan-rules-storage 1.0


      • Given that the rules format is changing, this is a major behavioural change (we may need a decision on FOLIO-1746 prior to merge).
      • Given the broader usage of these rules and the clarification that the domain terminology is circulation-rules a major interface breaking change will also occur to reflect that

      Technical Background

      • The loan rules are parsed using Antlr to generate a Drools rules definition which is stored and then used during evaluation.
      • The loan rules application needs to have an API endpoint for each policy type that is needed. Currently there is only an loan policy API endpoint as there are no other policy types yet.

      Outstanding decisions

      • jakub Do you want this to be an interface major change as well (that is the only way to stop the new UI being deemed compatible with the old backend, and vice versa)?
      • Given the formats are incompatible, do we intend to support the old and new formats together (I don't know if this is possible), or treat this as a breaking change? Julian says: I don't see the need for supporting both, let's make a breaking change.
      • Does this story include evaluating the loan rules to determine a request policy, or does this come later?
      • Does this story include evaluating the loan rules to determine a patron notice policy, or does this come later?
        • Julian says: I suggest to create a separate issue for each of the new policy types.

      TestRail: Results


          Issue Links



                rladdusaw Ryan Laddusaw
                cboerema Cate Boerema
                0 Vote for this issue
                8 Start watching this issue



                  TestRail: Runs

                    TestRail: Cases