Mod-reading-room Module submission self-evaluation

  • Step 1 - select one of the 3 results below against each criteria:
  • ACCEPTABLE
  • UNACCEPTABLE
  • INAPPLICABLE
  • Step 2 - provide evidence 

CriteriaComments/ Action Items
  • Evaluation result: 
  • ACCEPTABLE
  • UNACCEPTABLE
  • INAPPLICABLE
  • Evidence:


1

 Uses Apache 2.0 license


Acceptablehttps://github.com/folio-org/mod-reading-room/blob/master/LICENSE
2

 Module build MUST produce a valid module descriptor


Acceptablehttps://github.com/folio-org/mod-reading-room/blob/master/descriptors/ModuleDescriptor-template.json
3

 Module descriptor MUST include interface requirements for all consumed APIs


Acceptable
4

 Third party dependencies use an Apache 2.0 compatible license


Acceptable
5In order to ensure reproducible builds, snapshot versions of build-time dependencies should not be referenced.
Acceptablehttps://github.com/folio-org/mod-reading-room/blob/master/pom.xml
6

 Installation documentation is included


Acceptable

7

 Personal data form is completed, accurate, and provided as PERSONAL_DATA_DISCLOSURE.md file


Acceptablehttps://github.com/folio-org/mod-reading-room/blob/master/PERSONAL_DATA_DISCLOSURE.md
8

 Sensitive and environment-specific information is not checked into git repository


Acceptable
9

 Module is written in a language and framework from the officially approved technologies page


Acceptable
10

 Module only uses FOLIO interfaces already provided by previously accepted modules e.g. a UI module cannot be accepted that relies on an interface only provided by a back end module that hasn't been accepted yet


Acceptablehttps://github.com/folio-org/mod-reading-room/blob/master/descriptors/ModuleDescriptor-template.json
11

 Module gracefully handles the absence of third party systems or related configuration


Acceptable


12

 Sonarqube hasn't identified any security issues, major code smells or excessive (>3%) duplication


Acceptablehttps://sonarcloud.io/project/overview?id=org.folio%3Amod-reading-room
13

 Uses officially supported build tools


Acceptable

https://github.com/folio-org/mod-reading-room/blob/e117ae4e11e31978681fab19687642cfd724c9ef/pom.xml#L27

https://github.com/folio-org/mod-reading-room/blob/master/Dockerfile

14

 Unit tests have 80% coverage or greater and are based on officially approved technologies


Acceptablehttps://sonarcloud.io/summary/new_code?id=org.folio%3Amod-reading-room
15
Acceptablehttps://github.com/folio-org/mod-reading-room/blob/master/descriptors/ModuleDescriptor-template.json
16

 Module includes executable implementations of all endpoints in the provides section of the Module Descriptor


Acceptablehttps://github.com/folio-org/mod-reading-room/blob/master/descriptors/ModuleDescriptor-template.json
17

Environment vars are documented in the ModuleDescriptor


Acceptablehttps://github.com/folio-org/mod-reading-room/blob/e117ae4e11e31978681fab19687642cfd724c9ef/descriptors/ModuleDescriptor-template.json#L150
18

 If a module provides interfaces intended to be consumed by other FOLIO Modules, they must be defined in the Module Descriptor "provides" section


Acceptablehttps://github.com/folio-org/mod-reading-room/blob/e117ae4e11e31978681fab19687642cfd724c9ef/descriptors/ModuleDescriptor-template.json#L14
19

 All API endpoints are documented in RAML or OpenAPI


Acceptablehttps://github.com/folio-org/mod-reading-room/blob/e117ae4e11e31978681fab19687642cfd724c9ef/pom.xml#L42
20

 All API endpoints protected with appropriate permissions as per the following guidelines and recommendations, e.g. avoid using *.all permissions, all necessary module permissions are assigned, etc.


Acceptable

https://github.com/folio-org/mod-reading-room/blob/e117ae4e11e31978681fab19687642cfd724c9ef/descriptors/ModuleDescriptor-template.json#L22

21

 Module provides reference data (if applicable), e.g. if there is a controlled vocabulary where the module requires at least one value


Inapplicable


22

 If provided, integration (API) tests must be written in an officially approved technology


Acceptablehttps://jenkins-aws.indexdata.com/job/Testing/job/Scheduled%20Karate%20Tests/1272/cucumber-html-reports/report-feature_432_2373279349.html
23

 Data is segregated by tenant at the storage layer


Acceptable
24

 The module doesn't access data in DB schemas other than its own and public


Acceptable
25 Any dependencies, other than on defined interfaces, are declared in the README.MD
InapplicableNo other external dependency
26

 The module responds with a tenant's content based on x-okapi-tenant header


Acceptable
27

 Standard GET /admin/health endpoint returning a 200 response


Acceptable

https://github.com/folio-org/mod-reading-room/blob/e117ae4e11e31978681fab19687642cfd724c9ef/pom.xml#L68

https://github.com/folio-org/mod-reading-room/blob/e117ae4e11e31978681fab19687642cfd724c9ef/src/main/resources/application.yml#L49

28

 High Availability (HA) compliant

    • Possible red flags:
      • Connection affinity / sticky sessions / etc. are used
      • Local container storage is used
      • Services are stateful

Acceptable
29

 The module only uses infrastructure/platform technologies on the officially approved technologies list.

    • e.g. PostgreSQL, ElasticSearch, etc.

Acceptable