Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: folio-org/mod-ncip
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.7.0
Choose a base ref
...
head repository: folio-org/mod-ncip
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Mar 17, 2021

  1. Tmp 1.7.0 (#40)

    * Updating readme
    new timeout
    typo
    
    * updating news.md
    
    * [maven-release-plugin] prepare release v1.7.0
    
    * [maven-release-plugin] prepare for next development iteration
    mis306lu authored Mar 17, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    e38c788 View commit details

Commits on Apr 2, 2021

  1. Tmp 1.7.1 (#41)

    * Bumping to mod-circ 10.0
    
    * News update
    
    * [maven-release-plugin] prepare release v1.7.1
    
    * [maven-release-plugin] prepare for next development iteration
    mis306lu authored Apr 2, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    01b4176 View commit details

Commits on Apr 19, 2021

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    e3a3443 View commit details

Commits on May 20, 2021

  1. Copy the full SHA
    5c4a965 View commit details

Commits on May 21, 2021

  1. Merge pull request #44 from alexanderkurash/MODNCIP-21

    MODNCIP-21 Update circulation interface version
    alexanderkurash authored May 21, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    1aefd9c View commit details

Commits on Jun 15, 2021

  1. Tmp v1.8.0 (#47)

    * news update
    
    * pom version update for release
    mis306lu authored Jun 15, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    9f64e4d View commit details

Commits on Jul 2, 2021

  1. Copy the full SHA
    16f8da5 View commit details

Commits on Jul 6, 2021

  1. MODNCIP-23: Bump inventory dependencies for Optimistic Locking (#49)

    Optimistic locking adds a `_version` property to instance,
    holdings and item records. This affects GET and PUT.
    
    mod-ncip uses POST and DELETE only and therefore is no
    affected. It can bump the inventory dependency versions
    safely.
    julianladisch authored Jul 6, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    990a36d View commit details

Commits on Jul 26, 2021

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    681c95d View commit details

Commits on Aug 4, 2021

  1. Merge pull request #48 from julianladisch/MODNCIP-27-close-input-stream

    MODNCIP-27: Resource leak, input stream not closed
    julianladisch authored Aug 4, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    c156c73 View commit details

Commits on Oct 11, 2021

  1. V1.9.0 temp (#50)

    * readme update MODNCIP-23
    
    * [maven-release-plugin] prepare release v1.9.0
    
    * [maven-release-plugin] prepare for next development iteration
    mis306lu authored Oct 11, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    2b443aa View commit details

Commits on Oct 12, 2021

  1. Bump httpclient from 4.5.3 to 4.5.13 (#45)

    Bumps httpclient from 4.5.3 to 4.5.13.
    
    ---
    updated-dependencies:
    - dependency-name: org.apache.httpcomponents:httpclient
      dependency-type: direct:production
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Oct 12, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    4eeb01f View commit details
  2. Bump commons-io from 2.6 to 2.7 (#43)

    Bumps commons-io from 2.6 to 2.7.
    
    Signed-off-by: dependabot[bot] <support@github.com>
    
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: mis306lu <msuranofsky@ebsco.com>
    dependabot[bot] and mis306lu authored Oct 12, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    500cdf3 View commit details
  3. Copy the full SHA
    f093287 View commit details
  4. Copy the full SHA
    e36ee94 View commit details
  5. Copy the full SHA
    a3e017d View commit details
  6. Copy the full SHA
    79f8699 View commit details
  7. Copy the full SHA
    a096031 View commit details
  8. Copy the full SHA
    6353e10 View commit details

Commits on Oct 25, 2021

  1. Merge pull request #51 from folio-org/health-check

    Enable health check, fix Promises and surefire, MainVerticleTest
    julianladisch authored Oct 25, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    dd66faa View commit details

Commits on Dec 17, 2021

  1. Bump log4j-api from 2.11.1 to 2.16.0 (#53)

    Bumps log4j-api from 2.11.1 to 2.16.0.
    
    ---
    updated-dependencies:
    - dependency-name: org.apache.logging.log4j:log4j-api
      dependency-type: direct:production
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Dec 17, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    22d0620 View commit details

Commits on Dec 21, 2021

  1. Bump log4j-api from 2.16.0 to 2.17.0 (#56)

    * Bump log4j-api from 2.16.0 to 2.17.0
    
    ---
    updated-dependencies:
    - dependency-name: org.apache.logging.log4j:log4j-api
      dependency-type: direct:production
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Dec 21, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    4a1cd51 View commit details

Commits on Dec 30, 2021

  1. MODNCIP-33 Adapt the module to TLR (#58)

    * MODNCIP-33 Adapt the module to TLR
    
    * Update ModuleDescriptor-template.json
    Mykyta-Varenyk authored Dec 30, 2021

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    67aa262 View commit details

Commits on Jan 21, 2022

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    3d962d9 View commit details

Commits on Feb 25, 2022

  1. date formats changed & log4j to 2.17.1 (#61)

    * date formats changed
    
    * adding MODNCIP-33 to news for v1.10.0
    
    * update news for MODNCIP-37
    
    * adding MODNCIP-27 to news
    
    * remove console
    
    * log4j-api from 2.17.0 to 2.17.1
    
    * FolioRemoteServiceManager - date format
    
    * [maven-release-plugin] prepare release v1.10.0
    
    * [maven-release-plugin] prepare for next development iteration
    mis306lu authored Feb 25, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    e01e9d2 View commit details

Commits on Apr 21, 2022

  1. Copy the full SHA
    ed46421 View commit details
  2. Remove old API config FOLIO-3231

    If needed in future then use api-lint and api-doc.
    dcrossleyau committed Apr 21, 2022
    Copy the full SHA
    ad5aad0 View commit details
  3. Merge pull request #62 from folio-org/FOLIO-3231-remove-unused-api-co…

    …nfig
    
    FOLIO-3231 Remove old API lint and doc config
    dcrossleyau authored Apr 21, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    593fa08 View commit details

Commits on Jun 24, 2022

  1. v1.11.0 temp (#63)

    * MODNCIP-40
    
    update vertx
    
    * MODNCIP-40
    
    vertx update
    
    * update pom
    mis306lu authored Jun 24, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    05e8ef3 View commit details
  2. V1.11.0 temp (#64)

    * MODNCIP-40
    
    update vertx
    
    * MODNCIP-40
    
    vertx update
    
    * update pom
    
    * update news
    
    * [maven-release-plugin] prepare release v1.11.0
    
    * [maven-release-plugin] prepare for next development iteration
    mis306lu authored Jun 24, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    6314204 View commit details

Commits on Aug 10, 2022

  1. Personal disclosure form (#65)

    * blank personal disclosure form added
    
    * adding ncip details
    
    * returns personal info (adding transmits)
    mis306lu authored Aug 10, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    9f057b6 View commit details

Commits on Aug 24, 2022

  1. MODNCIP-43: Support holdings-storage 6.0 interface

    mod-inventory-storage has new major interface versions:
    
    instance-storage 9.0
    holdings-storage 6.0
    item-storage 10.0
    
    mod-ncip only uses the holdings-storage interfaces, it doesn't use the two other interfaces.
    
    mod-ncip is not affected because the incompatible change is in the DELETE all APIs only that is not used by mod-ncip.
    
    Only the okapiInterfaces need to be bumped in "requires" section of ModuleDescriptor-template.json
    julianladisch committed Aug 24, 2022
    Copy the full SHA
    0b833a1 View commit details
  2. Merge pull request #66 from folio-org/MODNCIP-43-holdings-storage-6.0

    MODNCIP-43: Support holdings-storage 6.0 interface
    julianladisch authored Aug 24, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    22f327d View commit details

Commits on Aug 29, 2022

  1. V1.11.1 temp (#67)

    * testing new ncip toolkit version
    
    * MODNCIP-39
    
    * remove target files
    
    * [maven-release-plugin] prepare release v1.11.1
    
    * [maven-release-plugin] prepare for next development iteration
    mis306lu authored Aug 29, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    4e0c916 View commit details

Commits on Aug 31, 2022

  1. MODNCIP-44: Support inventory 12.0 in ModuleDescriptor "requires"

    Add version 12.0 to the list of supported inventory interface versions in ModuleDescriptor "requires" section.
    
    DELETE /inventory/instances and DELETE /inventory/items have been deleting all records.
    
    MODINV-731 changed them to delete records by CQL, this requires a major interface version bump.
    
    mod-ncip doesn't need any code change for this because it doesn't use these two DELETE APIs.
    julianladisch committed Aug 31, 2022
    Copy the full SHA
    482ec71 View commit details

Commits on Sep 2, 2022

  1. Merge pull request #68 from folio-org/MODNCIP-44-inventory-12.0

    MODNCIP-44: Support inventory 12.0 in ModuleDescriptor "requires"
    julianladisch authored Sep 2, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    566a32d View commit details

Commits on Oct 24, 2022

  1. V1.12.0 temp (#69)

    * MODNCIP-44 news.md
    
    * [maven-release-plugin] prepare release v1.12.0
    
    * [maven-release-plugin] prepare for next development iteration
    mis306lu authored Oct 24, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    c10cfd4 View commit details

Commits on Nov 8, 2022

  1. MODNCIP-46: Replace slf4j-log4j12 by log4j-slf4j-impl fixing vulns

    Replace org.slf4j:slf4j-log4j12:1.7.13 by org.apache.logging.log4j:log4j-slf4j-impl:2.19.0.
    
    org.slf4j:slf4j-log4j12 has log4j:log4j as transitive dependency.
    
    log4j:log4j has reached its end of life 2015 and is no longer supported.
    
    log4j:log4j has multiple security vulnerabilities:
    https://nvd.nist.gov/vuln/detail/CVE-2022-23305
    https://nvd.nist.gov/vuln/detail/CVE-2022-23302
    https://nvd.nist.gov/vuln/detail/CVE-2021-4104
    https://nvd.nist.gov/vuln/detail/CVE-2019-17571
    
    Migrating from log4j:log4j to org.apache.logging.log4j:log4j-slf4j-impl fixes them.
    julianladisch committed Nov 8, 2022
    Copy the full SHA
    fb4cc83 View commit details

Commits on Nov 22, 2022

  1. Merge pull request #70 from folio-org/MODNCIP-46-log4j-slf4j-impl

    MODNCIP-46: Replace slf4j-log4j12 by log4j-slf4j-impl fixing vulns
    julianladisch authored Nov 22, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    957171f View commit details
  2. MODNCIP-48: Use == not = for userId manualblocks lookup

    Use the field match == operator, not the word match = operator when looking up menualblocks for a userId.
    https://dev.folio.org/faqs/explain-cql/
    Only the field match == operator has a database index:
    https://github.com/folio-org/mod-feesfines/blame/v18.1.1/src/main/resources/templates/db_scripts/schema.json#L94-L104
    Using the word match = operator results in a full table scan with bad performance when the the manualblocks table gets bigger.
    julianladisch committed Nov 22, 2022
    Copy the full SHA
    690b765 View commit details
  3. Merge pull request #72 from folio-org/MODNCIP-48-manualblocks-userId-…

    …performance
    
    MODNCIP-48: Use == not = for userId manualblocks lookup
    julianladisch authored Nov 22, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    89543a9 View commit details

Commits on Nov 30, 2022

  1. V1.12.1 temp (#73)

    * MODNCIP-44 news.md
    
    * [maven-release-plugin] prepare release v1.12.0
    
    * [maven-release-plugin] prepare for next development iteration
    
    * MODNCIP-50 MODNCIP-47
    
    * pom update
    
    * holdings source id lookup
    
    * use default
    
    * [maven-release-plugin] prepare release v1.12.1
    
    * [maven-release-plugin] prepare for next development iteration
    mis306lu authored Nov 30, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    09b9c42 View commit details

Commits on Dec 2, 2022

  1. V1.12.2 temp (#74)

    * MODNCIP-44 news.md
    
    * [maven-release-plugin] prepare release v1.12.0
    
    * [maven-release-plugin] prepare for next development iteration
    
    * MODNCIP-50 MODNCIP-47
    
    * pom update
    
    * holdings source id lookup
    
    * use default
    
    * [maven-release-plugin] prepare release v1.12.1
    
    * [maven-release-plugin] prepare for next development iteration
    
    * MODNCIP-46
    
    * [maven-release-plugin] prepare release v1.12.2
    
    * [maven-release-plugin] prepare for next development iteration
    mis306lu authored Dec 2, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    7204ac7 View commit details
  2. readme updates (#76)

    * pom version
    
    * readme update
    
    adding holdings.source.name
    mis306lu authored Dec 2, 2022

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    19914d9 View commit details

Commits on Jan 26, 2023

  1. MODNCIP-52 (#77)

    mis306lu authored Jan 26, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    9dbef0f View commit details

Commits on Jan 27, 2023

  1. Modncip 52 tmp (#78)

    * MODNCIP-52
    
    * MODNCIP-52 correct POM
    mis306lu authored Jan 27, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    5787e60 View commit details

Commits on Mar 2, 2023

  1. MODNCIP-49 (#79)

    * MODNCIP-49
    
    * temporary change for testing
    
    * testing encode
    
    * testing encoding
    
    * encoding
    
    * encoding
    
    * encoding
    
    * logging test
    
    * pom logging
    
    * logging test
    
    * testing logging
    
    * logging
    
    * logging test
    
    * testing logging
    
    * logging test
    
    * update for orchid
    
    * merge prep
    
    * logging
    
    * nolana test
    
    * remove logging
    
    * correction to logging class name
    
    * PercentCodec corrections
    
    * fix pom and type cqlEncode
    
    * log4j properties
    
    * adding limits
    
    * changed type check and added default config values
    
    * corrected mod-inventory version
    
    * update news for release
    
    * mentioned logging in news
    
    * [maven-release-plugin] prepare release v1.13.0
    
    * [maven-release-plugin] prepare for next development iteration
    
    * test build
    
    * Logging on MockServer
    
    * encoding
    
    * encoding
    
    * encoding
    
    * testing mock server
    
    * Mockserver logging & one other cqlEncode
    
    * remove target
    
    * update readme
    mis306lu authored Mar 2, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    2e58323 View commit details

Commits on Apr 13, 2023

  1. V1.13.1 temp (#80)

    * MODNCIP-49
    
    * temporary change for testing
    
    * testing encode
    
    * testing encoding
    
    * encoding
    
    * encoding
    
    * encoding
    
    * logging test
    
    * pom logging
    
    * logging test
    
    * testing logging
    
    * logging
    
    * logging test
    
    * testing logging
    
    * logging test
    
    * update for orchid
    
    * merge prep
    
    * logging
    
    * nolana test
    
    * remove logging
    
    * correction to logging class name
    
    * PercentCodec corrections
    
    * fix pom and type cqlEncode
    
    * log4j properties
    
    * adding limits
    
    * changed type check and added default config values
    
    * corrected mod-inventory version
    
    * update news for release
    
    * mentioned logging in news
    
    * [maven-release-plugin] prepare release v1.13.0
    
    * [maven-release-plugin] prepare for next development iteration
    
    * test build
    
    * Logging on MockServer
    
    * encoding
    
    * encoding
    
    * encoding
    
    * testing mock server
    
    * Mockserver logging & one other cqlEncode
    
    * remove target
    
    * update readme
    
    * MODNCIP-55
    
    * MODNCIP-55
    
    * move limit
    
    * remove cql
    
    * remove cql
    
    * PercentCodec.encode added
    
    * PercentCodec.encode
    
    * externalSystemId case sensitive
    
    * externalsystemid is case sensitive
    
    * check user type
    
    * remove log statement
    
    * Update NEWS.md
    
    * [maven-release-plugin] prepare release v1.13.1
    
    * [maven-release-plugin] prepare for next development iteration
    mis306lu authored Apr 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    2c9456f View commit details

Commits on May 4, 2023

  1. updating circ interface

    K-Felk committed May 4, 2023
    Copy the full SHA
    03e9b6c View commit details

Commits on May 12, 2023

  1. Merge pull request #81 from folio-org/MODNCIP-57

    MODNCIP-57: updating circ interface
    K-Felk authored May 12, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    ac584e3 View commit details
Showing with 3,840 additions and 629 deletions.
  1. +6 −1 Dockerfile
  2. +2 −3 Jenkinsfile
  3. +73 −1 NEWS.md
  4. +84 −0 PERSONAL_DATA_DISCLOSURE.md
  5. +49 −25 README.md
  6. +20 −5 descriptors/ModuleDescriptor-template.json
  7. +82 −52 pom.xml
  8. +43 −3 src/main/java/org/folio/ncip/Constants.java
  9. +70 −45 src/main/java/org/folio/ncip/FolioNcipHelper.java
  10. +494 −82 src/main/java/org/folio/ncip/FolioRemoteServiceManager.java
  11. +61 −44 src/main/java/org/folio/ncip/MainVerticle.java
  12. +5 −4 src/main/java/org/folio/ncip/NcipConfigCheck.java
  13. +9 −8 src/main/java/org/folio/ncip/services/FolioAcceptItemService.java
  14. +89 −0 src/main/java/org/folio/ncip/services/FolioCancelRequestItemService.java
  15. +15 −1 src/main/java/org/folio/ncip/services/FolioCheckInItemService.java
  16. +20 −0 src/main/java/org/folio/ncip/services/FolioCheckOutItemService.java
  17. +64 −0 src/main/java/org/folio/ncip/services/FolioCreateUserFiscalTransactionService.java
  18. +69 −0 src/main/java/org/folio/ncip/services/FolioDeleteItemService.java
  19. +64 −38 src/main/java/org/folio/ncip/services/FolioLookupUserService.java
  20. +9 −1 src/main/java/org/folio/ncip/services/FolioNcipService.java
  21. +142 −0 src/main/java/org/folio/ncip/services/FolioRequestItemService.java
  22. +28 −2 src/main/resources/init-values.properties
  23. +0 −29 src/main/resources/log4j.properties
  24. +39 −0 src/main/resources/log4j2-json.properties
  25. +19 −0 src/main/resources/log4j2.properties
  26. +12 −1 src/main/resources/ncip.properties
  27. +5 −2 src/main/resources/toolkit.properties
  28. +32 −0 src/test/java/org/folio/ncip/AcceptItem.java
  29. +47 −0 src/test/java/org/folio/ncip/CancelRequestItem.java
  30. +21 −0 src/test/java/org/folio/ncip/CheckOutItem.java
  31. +41 −0 src/test/java/org/folio/ncip/CreateUserFiscalTransaction.java
  32. +46 −0 src/test/java/org/folio/ncip/DeleteItem.java
  33. +12 −23 src/test/java/org/folio/ncip/LookupUser.java
  34. +97 −0 src/test/java/org/folio/ncip/MainVerticleTest.java
  35. +394 −205 src/test/java/org/folio/ncip/MockServer.java
  36. +9 −15 src/test/java/org/folio/ncip/NcipTestSuite.java
  37. +65 −0 src/test/java/org/folio/ncip/RequestItem.java
  38. +2 −0 src/test/java/org/folio/ncip/TestConstants.java
  39. +43 −0 src/test/java/org/folio/ncip/services/RequestItemServiceTests.java
  40. +0 −35 src/test/java/org/folio/ncip/services/UnitTestSuite.java
  41. +23 −0 src/test/resources/mockdata/accounts-post.json
  42. +71 −0 src/test/resources/mockdata/addressTypes-get.json
  43. +17 −0 src/test/resources/mockdata/cancellationReason-get.json
  44. +1 −1 src/test/resources/mockdata/circ-requests-post.json
  45. +50 −0 src/test/resources/mockdata/circulationRequest-get.json
  46. +66 −0 src/test/resources/mockdata/circulationRequestList-get.json
  47. +16 −0 src/test/resources/mockdata/feeOwners-get.json
  48. +23 −0 src/test/resources/mockdata/feefines-get.json
  49. +10 −0 src/test/resources/mockdata/feefines-getEmpty.json
  50. +12 −0 src/test/resources/mockdata/groups-getStaff.json
  51. +29 −0 src/test/resources/mockdata/holdingsById-get.json
  52. +16 −0 src/test/resources/mockdata/holdingsSources-get.json
  53. +89 −0 src/test/resources/mockdata/instances-post.json
  54. +94 −0 src/test/resources/mockdata/instancesByHrid-get.json
  55. +81 −0 src/test/resources/mockdata/items-post.json
  56. +86 −0 src/test/resources/mockdata/itemsByHrid-get.json
  57. +57 −0 src/test/resources/mockdata/loan-get.json
  58. +43 −0 src/test/resources/mockdata/ncip-acceptItem-blocked.xml
  59. +7 −0 src/test/resources/mockdata/ncip-acceptItem.xml
  60. +25 −0 src/test/resources/mockdata/ncip-cancelRequestItem-blockedUser.xml
  61. +25 −0 src/test/resources/mockdata/ncip-cancelRequestItem-missingAgency.xml
  62. +21 −0 src/test/resources/mockdata/ncip-cancelRequestItem-missingUser.xml
  63. +25 −0 src/test/resources/mockdata/ncip-cancelRequestItem.xml
  64. +26 −0 src/test/resources/mockdata/ncip-checkout-full.xml
  65. +87 −2 src/test/resources/mockdata/ncip-configs.json
  66. +30 −0 src/test/resources/mockdata/ncip-createUserFiscalTransaction.xml
  67. +24 −0 src/test/resources/mockdata/ncip-createUserFiscalTransactionBlocked.xml
  68. +17 −0 src/test/resources/mockdata/ncip-createUserFiscalTransactionNoTrans.xml
  69. +16 −0 src/test/resources/mockdata/ncip-deleteItem-error.xml
  70. +16 −0 src/test/resources/mockdata/ncip-deleteItem-missingAgency.xml
  71. +13 −0 src/test/resources/mockdata/ncip-deleteItem-missingItem.xml
  72. +16 −0 src/test/resources/mockdata/ncip-deleteItem.xml
  73. +24 −0 src/test/resources/mockdata/ncip-lookupUserCheckPin.xml
  74. +24 −0 src/test/resources/mockdata/ncip-lookupUserCheckPinFailed.xml
  75. +29 −0 src/test/resources/mockdata/ncip-requestitem-title.xml
  76. +39 −0 src/test/resources/mockdata/ncip-requestitem-titleLocation.xml
  77. +28 −0 src/test/resources/mockdata/ncip-requestitem.xml
  78. +18 −0 src/test/resources/mockdata/noteTypes-get.json
  79. +113 −0 src/test/resources/mockdata/requests-post.json
  80. +1 −1 src/test/resources/mockdata/usersByBarcode-get-blocked.json
  81. +50 −0 utils/setNcipProperties_diku.py
7 changes: 6 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
FROM folioci/alpine-jre-openjdk11:latest
FROM folioci/alpine-jre-openjdk17:latest

# Install latest patch versions of packages: https://pythonspeed.com/articles/security-updates-in-docker/
USER root
RUN apk upgrade --no-cache
USER folio

ENV VERTICLE_FILE mod-ncip-fat.jar

5 changes: 2 additions & 3 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
buildMvn {
publishModDescriptor = true
mvnDeploy = true
publishAPI = false
runLintRamlCop = false
buildNode = 'jenkins-agent-java11'
buildNode = 'jenkins-agent-java17'

doDocker = {
buildJavaDocker {
publishMaster = true
healthChk = false
healthChkCmd = 'curl -sS --fail -o /dev/null http://localhost:8081/admin/health/ || exit 1'
}
}
}
74 changes: 73 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,81 @@
## 1.15.6 2024-11-21
* Fix missing permission issue
* Use item call number from AcceptItem request if it is provided

## 1.15.5 2024-11-12
* Add new configuration options
* Make sure default values are used

## 1.15.4 2024-11-11
* Update documentation
* Clean configuration
* Fix bug in fee search

## 1.15.3 2024-10-31
* [MODNCIP-75](https://folio-org.atlassian.net/browse/MODNCIP-75) inventory API version update (13.0 to 14.0)
* [MODNCIP-76](https://folio-org.atlassian.net/browse/MODNCIP-76) Upgrade `holdings-storage` to 8.0
* Update modulePermissions for new services

## 1.15.2 2024-10-08
* Return user UUID in LookupUser call

## 1.15.1 2024-10-03
* [MODNCIP-71](https://folio-org.atlassian.net/browse/MODNCIP-71) Upgrade dependencies for Ramsons
* [MODNCIP-68](https://folio-org.atlassian.net/browse/MODNCIP-68) Add callNumber to CheckOutItem response

## 1.15.0 2024-09-04
* [MODNCIP-69](https://folio-org.atlassian.net/browse/MODNCIP-69) API version update (mod-inventory-storage)
* [MODNCIP-67](https://folio-org.atlassian.net/browse/MODNCIP-67) mod-ncip v1.14.X asserts compatibility with circulation interface v12 and 13 but actually requires v14
* [PR-1709](https://openlibraryfoundation.atlassian.net/browse/PR-1709) Implement NCIP RequestItem function in FOLIO mod-ncip
* [PR-1786](https://openlibraryfoundation.atlassian.net/browse/PR-1786) Implement NCIP CancelRequestItem
* [PR-1785](https://openlibraryfoundation.atlassian.net/browse/PR-1785) Implement NCIP DeleteItem
* [PR-1814](https://openlibraryfoundation.atlassian.net/browse/PR-1814) Check user pin
* [PR-1861](https://openlibraryfoundation.atlassian.net/browse/PR-1861) Implement CreateUserFiscalTransaction for charging fees
* [PR-1910](https://openlibraryfoundation.atlassian.net/browse/PR-1910) Add item soft delete option
## 1.14.5 2024-04-04
* [MODNCIP-65](https://folio-org.atlassian.net/browse/MODNCIP-65) if preferredFirstName is present use in lookupUserResponse
## 1.14.4 2023-10-25
* [MODNCIP-63](https://issues.folio.org/browse/MODNCIP-63) Give user.email.type a default value
## 1.14.3 2023-10-16
* [MODNCIP-62](https://issues.folio.org/browse/MODNCIP-62) Upgrade dependencies (Spring, Vert.x, ...) for Poppy
## 1.14.1 2023-10-04
* Fix circulation interface version
## 1.14.0 2023-10-04
* [MODNCIP-59](https://issues.folio.org/browse/MODNCIP-59) Update to Java 17 mod-ncip
* [MODNCIP-61](https://issues.folio.org/browse/MODNCIP-61) config option for ElectronicAddressType
* [MODNCIP-60](https://issues.folio.org/browse/MODNCIP-60) RequestItemService placeholder
## 1.13.1 2023-04-05
* [MODNCIP-55](https://issues.folio.org/browse/MODNCIP-55)- alternate user lookup service fix
## 1.13.0 2023-02-23
* [MODNCIP-49](https://issues.folio.org/browse/MODNCIP-49) -CQL and URL injection
* Updated logging - common logging
## 1.12.2 2022-12-01
* [MODNCIP-46](https://issues.folio.org/browse/MODNCIP-46) - Replace slf4j-log4j12 by log4j-slf4j-impl fixing vulns
## 1.12.1 2022-11-22
* [MODNCIP-47](https://issues.folio.org/browse/MODNCIP-47) - Create holdings record with holdings source ID
* [MODNCIP-50](https://issues.folio.org/browse/MODNCIP-50) - support additional fields for user search
## 1.12.0 2022-10-24
* [MODNCIP-44](https://issues.folio.org/browse/MODNCIP-44) - Support inventory 12.0 in ModuleDescriptor "requires"
## 1.11.1 2022-08-29
* [MODNCIP-39](https://issues.folio.org/browse/MODNCIP-39) - Dependency vulnerabilities
## 1.11.0 2022-06-24
* [MODNCIP-40](https://issues.folio.org/browse/MODNCIP-40) - mod-ncip - Morning Glory 2022 R2 - Vert.x 3.9.9/v4 upgrade
## 1.10.0 2022-02-24
* [MODNCIP-33](https://issues.folio.org/browse/MODNCIP-33) - Adapt mod-ncip to the request schema changes
* [MODNCIP-37](https://issues.folio.org/browse/MODNCIP-37) - Support circulation interface v13
* [MODNCIP-27](https://issues.folio.org/browse/MODNCIP-27) - Resource leak, input stream not closed
## 1.9.0 2021-10-11
* [MODNCIP-23](https://issues.folio.org/browse/MODNCIP-23) - align dependency versions affected by Inventory's Optimistic Locking
## 1.8.0 2021-06-15
* [MODNCIP-21](https://issues.folio.org/browse/MODNCIP-21) - Update circulation interface dependency to support v11
## 1.7.0 2021-03-17
* Correcting version number for R1 2021
* README updates
## 1.6.4 2021-03-05
* [MODNCIP-15](https://issues.folio.org/browse/MODNCIP-15) - specify UTF-8 in POST
* Default timeout changed to 30 secs (3 was too short - implementers seeing timeouts when system is slow). As before, the default can be modified on startup.
* Attempt checkin if checkout fails due to timeout (for convenience). Only happens when the system gets extremely slow.
* Removed 'Problem element unknown' from the response when the problem doesn't relate to a specific element. This was confusing.
* Moved to vertx 4
## 1.6.3 2020-11-11
* Putting back patron group lookup (was unintentionally removed)
## 1.6.2 2020-11-09
84 changes: 84 additions & 0 deletions PERSONAL_DATA_DISCLOSURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
## Overview

The purpose of this form is to disclose the types of personal data[^1] (PD) stored by each module. This information enables those hosting FOLIO to better manage and comply with various privacy laws and restrictions, e.g. GDPR.

It's important to note that PD is not limited to that which can be used to identify a person on it's own (e.g. Social security number), but also data used in conjunction with other data to identify a person (e.g. date of birth + city + gender, or dynamic IP address + date + time), and any information about such a person (e.g. has loaned 5 items, 2 of which are overdue).

For the purposes of this form, "store" includes the following:

* Persisting to storage - Either internal (e.g. Postgres) or external (e.g. S3, etc.) to FOLIO
* Caching - In-memory, etc.
* Logging
* Sending to an external piece of infrastructure such as a queue (e.g. Kafka), database (e.g. Elasticsearch, Library Data Platform), distributed table, etc.

## Personal Data processed by this Module

- [ ] This module does not store any PD.
- [ ] This module does not process any PD.
- [ ] This module provides [custom fields](https://github.com/folio-org/folio-custom-fields).
- [ ] This module stores fields with free-form text (tags, notes, descriptions, etc.)
- [ ] This module caches PD
- [x] This module logs PD
- [ ] Log level ERROR includes PD
- [ ] Log level WARNING includes PD
- [ ] Log level INFO includes PD
- [ ] Log level DEBUG includes PD
- [x] This module transmits PD (including queues, additional databases, etc.)

---

### Identifiable information

- [ ] Passport number / National identification numbers
- [ ] Driver’s license number
- [ ] Social security number
- [ ] Financial account information

### Identifiable information if linked

Information can be combined with others to form a person’s identity.

- [x] First name
- [x] Last name
- [ ] Gender
- [ ] Date of birth
- [ ] Place of birth
- [ ] Racial or ethnic origin
- [x] Address
- [ ] Location information
- [ ] Geolocation data
- [x] Phone number(s)
- [ ] Pseudonym / Alias / Nickname
- [x] Username / User Identifier (UUID)
- [x] Email address
- [ ] Financial information / Fees or Fines
- [x] Circulation transaction(s)
- [ ] Web cookies
- [ ] IP address / MAC address
- [ ] Photographs of users (profile picture)
- [x] Other PD
* User status (blocked or okay)
* Patron group
* Patron service point preference

**NOTE** This is not intended to be a comprehensive list, but instead provide a starting point for module developers/maintainers to use.

## Privacy Laws, Regulations, and Policies

Numerous laws and policies were considered when creating the list of personal data fields above. For additional information, please refer to the following:
* [General Data Protection Regulation (GDPR)](https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:02016R0679-20160504)
* [What are identifiers and related factors? (ico.org.uk)](https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/what-is-personal-data/what-are-identifiers-and-related-factors/)
* [What is the meaning of 'relates to'? (ico.org.uk)](https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/what-is-personal-data/what-is-the-meaning-of-relates-to/)
* [Opinion 4/2007 on the concept of personal data (Article 29 working party)](https://ec.europa.eu/justice/article-29/documentation/opinion-recommendation/files/2007/wp136_en.pdf)
* [California Consumer Privacy Act (CCPA)](https://oag.ca.gov/privacy/ccpa)
* [U.S. Department of Labor: Guidance on the Protection of Personal Identifiable Information](https://www.dol.gov/general/ppii)
* Cybersecurity Law of the People's Republic of China
* https://www.newamerica.org/cybersecurity-initiative/digichina/blog/translation-cybersecurity-law-peoples-republic-china/
* http://en.east-concord.com/zygd/Article/20203/ArticleContent_1690.html
* [Personal Data Protection Bill, 2019 (India)](https://www.prsindia.org/billtrack/personal-data-protection-bill-2019)
* [Data protection act 2018 (UK)](https://www.legislation.gov.uk/ukpga/2018/12/section/3/enacted)

---
[^1]: Personal data is "any information relating to an identified or identifiable natural person". [GDPR Article 4](https://web.archive.org/web/20220308161519/https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679#d1e1374-1-1)

v1.1
74 changes: 49 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# mod-ncip

Copyright (C) 2019-2020 The Open Library Foundation
Copyright (C) 2019-2023 The Open Library Foundation

This software is distributed under the terms of the Apache License,
Version 2.0. See the file "[LICENSE](LICENSE)" for more information.
@@ -13,13 +13,13 @@ NISO Circulation Interchange Protocol (NCIP) support in FOLIO
## Preparation
1. The NCIP module requires a FOLIO user with the following permissions:
```
ncip.all
inventory-storage.items.collection.get
ui-circulation.settings.overdue-fines-policies
ui-circulation.settings.lost-item-fees-policies
automated-patron-blocks.collection.get
circulation-storage.circulation-rules.get
ncip.all
inventory-storage.items.collection.get
ui-circulation.settings.lost-item-fees-policies
ui-circulation.settings.overdue-fines-policies
automated-patron-blocks.collection.get
circulation-storage.circulation-rules.get
manualblocks.collection.get
```
### IMPORTANT NOTE ABOUT FOLIO USER - It has to be assigned a patron group. There is an issue with 'create item' which requires the user to be assigned a patron group.

@@ -40,6 +40,16 @@ NISO Circulation Interchange Protocol (NCIP) support in FOLIO
* (11) response.includes.physical.address (optional - will default to false. For LookupUser response)
* (12) user.priv.ok.status (optional - will default to "ACTIVE")
* (13) user.priv.blocked.status (optional - will default to "BLOCKED")
* (14) holdings.source.name (optional - will default to "FOLIO")
* (15) user.email.type (optional - will default to "electronic mail address" For LookupUser response)
* (16) cancel.request.reason.name Reason for request cancellation when different item is checkout (Settings -> Circulation -> Request cancellation reasons)
* (17) cancel.request.reason.patron.name Reason for request cancellation when patron did not checkout item (Settings -> Circulation -> Request cancellation reasons)
* (18) request.note.name Request note name. Default value "ILL note"
* (19) request.note.enabled Request note enabled. Will add ILL request ID to loan and ILS request. Default value `false`
* (20) item.soft.delete DeleteItem will use soft delete or delete entities. Default value `true`
* (21) request.fulfillment_preference ILS request fulfillment preference when RequestItem. Default value `Hold Shelf`
* (22) request.accept.fulfillment_preference ILS request fulfillment preference when AcceptItem. Default value `Hold Shelf`
* (23) checkout.loan.info.type In checkout process if note is enabled then use this type to add info. Default value `patronInfoAdded` other possible value `staffInfoAdded`

Notes
* You can assign different values to these settings per Agency ID used in the NCIP requests. This approach lets you setup different values for different Agency IDs. For example, if Relais calls your NCIP server with the Agency ID of 'Relais' you can configure values for that agency. If ReShare calls your NCIP server using a different Agency ID, you can set up different configuration values to be used for ReShare requests. These settings have to exist for each Agency ID that will be used in the NCIP requests.
@@ -91,7 +101,7 @@ https://github.com/folio-org/edge-ncip
</td>
<td>int
</td>
<td>Timeout setting in milliseconds that mod-ncip will use when calling FOLIO APIs (e.g. checkout-item-by-barcode). Defaults to 3000. <br><b>11/2020 NOTE: </b>we've seen timeouts...so you should plan on using this setting and increasing the timeout (-Dservice_manager_timeout_ms=6000). I am considering increasing the default in the next release.
<td>Timeout setting in milliseconds that mod-ncip will use when calling FOLIO APIs (e.g. checkout-item-by-barcode). Defaults to 30000.
</td>
</tr>
</table>
@@ -132,21 +142,30 @@ There are three types of settings that can exist in mod-configuration for the NC

#### NCIP Properties

| MODULE | configName (the AgencyID) | code | value (examples) |
| ------------- |:-------------:| :-----------------------------|------------------:|
| NCIP | Relais | instance.type.name | RESHARE |
| NCIP | Relais | instance.source | RESHARE |
| NCIP | Relais | item.material.type.name | RESHARE |
| NCIP | Relais | item.perm.loan.type.name | RESHARE |
| NCIP | Relais | item.status.name | Available |
| NCIP | Relais | item.perm.location.code | RESHARE_DATALOGISK |
| NCIP | Relais | holdings.perm.location.code | RESHARE_DATALOGISK |
| NCIP | Relais | instance.custom.identifier.name| ReShare Request ID |
| NCIP | Relais | checkout.service.point.code | online |
| NCIP | Relais | checkin.service.point.code | online |
| NCIP | Relais | response.includes.physical.address | false |
| NCIP | Relais | user.priv.ok.status | OK |
| NCIP | Relais | user.priv.blocked.status | BLOCKED |
| MODULE | configName (the AgencyID) | code | value (examples) |
|-----------|:-------------------------:|:--------------------------------------|-------------------:|
| NCIP | Relais | instance.type.name | RESHARE |
| NCIP | Relais | instance.source | RESHARE |
| NCIP | Relais | item.material.type.name | RESHARE |
| NCIP | Relais | item.perm.loan.type.name | RESHARE |
| NCIP | Relais | item.status.name | Available |
| NCIP | Relais | item.perm.location.code | RESHARE_DATALOGISK |
| NCIP | Relais | holdings.perm.location.code | RESHARE_DATALOGISK |
| NCIP | Relais | instance.custom.identifier.nam | ReShare Request ID |
| NCIP | Relais | checkout.service.point.code | online |
| NCIP | Relais | checkin.service.point.code | online |
| NCIP | Relais | response.includes.physical.address | false |
| NCIP | Relais | user.priv.ok.status | OK |
| NCIP | Relais | user.priv.blocked.status | BLOCKED |
| NCIP | Relais | cancel.request.reason.name | Item Not Available |
| NCIP | Relais | cancel.request.reason.patron.name | Item Not Available |
| NCIP | Relais | request.note.name | ILL note |
| NCIP | Relais | request.note.enabled | false |
| NCIP | Relais | item.soft.delete | true |
| NCIP | Relais | user.email.type | mailto |
| NCIP | Relais | request.fulfillment_preference | Hold Shelf |
| NCIP | Relais | request.accept.fulfillment_preference | Hold Shelf |
| NCIP | Relais | checkout.loan.info.type | patronInfoAdded |


You will need a set of these settings in mod-configuration for each individual Agency ID making NCIP requests. Example of an AgencyID in an NCIP request:
@@ -241,6 +260,11 @@ Sample XML Request:

https://github.com/folio-org/mod-ncip/blob/master/docs/sampleNcipMessages/checkInItem.xml

##### Delete Item
##### Request Item
##### Cancel Request Item
##### Create User Fiscal Transaction

### About the Extensible Catalog NCIP Toolkit

The eXtensible Catalog (XC) NCIP Toolkit was developed as a stand-alone Web application that would receive NCIP requests, communicate with your ILS (via a ‘connector’) and send back an XML response.
@@ -259,7 +283,7 @@ Note: Correct capitalization is important for this configuration. CheckinItemSe

![Illustrates updating the toolkit.properties file by adding a configuration for the Request Item Service](docs/images/newServiceToolkit.png?raw=true "Illustrates updating the toolkit.properties file")

These are the default values used for the NCIP Toolkit configuraiton.
These are the default values used for the NCIP Toolkit configuration.

#### Step 2: Create the class you configured in step 1
The new class should implement the Toolkit's interface for this service. In this example your new class would implement the RequestItemService interface. This means your class is required to have a 'performService' method as illustrated below.
Loading