diff --git a/_data/apigroup.yml b/_data/apigroup.yml index f4496372..e364e281 100644 --- a/_data/apigroup.yml +++ b/_data/apigroup.yml @@ -111,6 +111,7 @@ utilities: - mod-entities-links - mod-notes - mod-tags + - mod-batch-print - mod-bulk-operations - mod-calendar - mod-search diff --git a/_data/remote-docs.json b/_data/remote-docs.json index 1e37945d..8420a166 100644 --- a/_data/remote-docs.json +++ b/_data/remote-docs.json @@ -15,8 +15,8 @@ "https://raw.githubusercontent.com/folio-org/raml-module-builder/master/README.md", "https://raw.githubusercontent.com/folio-org/raml-module-builder/master/doc/upgrading.md", "https://raw.githubusercontent.com/folio-org/rfcs/master/README.md", - "https://raw.githubusercontent.com/folio-org/rfcs/master/text/0000-localizing-api-messages.md", "https://raw.githubusercontent.com/folio-org/rfcs/master/text/0000-pub-sub.md", + "https://raw.githubusercontent.com/folio-org/rfcs/master/text/0001-localizing-api-messages.md", "https://raw.githubusercontent.com/folio-org/rfcs/master/text/0002-kafka-tenant-collection-topics.md", "https://raw.githubusercontent.com/folio-org/rfcs/master/text/0003-folio-breaking-changes.md", "https://raw.githubusercontent.com/folio-org/stripes-cli/master/doc/dev-guide.md", diff --git a/_data/repos.json b/_data/repos.json index a87034a4..83d4e00e 100644 --- a/_data/repos.json +++ b/_data/repos.json @@ -1,6 +1,6 @@ { "metadata": { - "generatedDateTime": "2023-10-06T00:15:10.048026+00:00" + "generatedDateTime": "2023-11-23T21:01:35.445698+00:00" }, "repos": [ { @@ -896,6 +896,29 @@ "api-schema-lint.yml" ] }, + { + "apiTypes": "OAS", + "defaultBranch": "master", + "description": "Batch printing service", + "docDirName": null, + "hintOas": true, + "name": "mod-batch-print", + "org": "folio-org", + "ramlDirName": null, + "repoLanguageHint": "java", + "repoType": "backend-mod", + "snippetIntro": "

mod-batch-print is a service to provide option to print notices in daily batch approach.

", + "workflows": [ + "api-doc.yml", + "api-lint.yml", + "api-schema-lint.yml" + ], + "workflowsFolio": [ + "api-doc.yml", + "api-lint.yml", + "api-schema-lint.yml" + ] + }, { "apiTypes": "OAS", "defaultBranch": "master", @@ -3165,6 +3188,24 @@ "build-npm.yml" ] }, + { + "defaultBranch": "master", + "description": "Stripes components that are specific to use cases that arise in Marc-related modules", + "docDirName": null, + "name": "stripes-marc-components", + "org": "folio-org", + "repoLanguageHint": "node", + "repoType": "stripes", + "snippetIntro": "

This is a library of React components and utility functions for use with the Stripes UI toolkit, part of the FOLIO project.

", + "workflows": [ + "build-npm-release.yml", + "build-npm.yml" + ], + "workflowsFolio": [ + "build-npm-release.yml", + "build-npm.yml" + ] + }, { "defaultBranch": "master", "description": "Configuration for a sample platform and to run a local Stripes UI development server", @@ -4592,15 +4633,7 @@ "name": "ui-rs", "org": "openlibraryenvironment", "repoType": "ui", - "snippetIntro": "

Congratulations on creating a new Stripes UI app module! Follow the instructions below to run ui-rs and start your development.

", - "workflows": [ - "build-npm-release.yml", - "build-npm.yml" - ], - "workflowsFolio": [ - "build-npm-release.yml", - "build-npm.yml" - ] + "snippetIntro": "

Congratulations on creating a new Stripes UI app module! Follow the instructions below to run ui-rs and start your development.

" }, { "defaultBranch": "master", diff --git a/_remote/folio-spring-support/README.md b/_remote/folio-spring-support/README.md index 984e5352..883028da 100644 --- a/_remote/folio-spring-support/README.md +++ b/_remote/folio-spring-support/README.md @@ -28,6 +28,7 @@ Version 2.0. See the file "[LICENSE](LICENSE)" for more information. - [Upon Creation](#upon-creation) - [Upon Deletion](#upon-deletion) - [Sample](#sample) +- [Internationalization](#internationalization) - [Additional information](#additional-information) - [Issue tracker](#issue-tracker) @@ -336,6 +337,10 @@ public class CustomTenantService extends TenantService { } ``` +## Internationalization + +Translations may be performed in backend modules using the `folio-spring-i18n` library. For more information, see the [folio-spring-i18n README](folio-spring-i18n/README.md). + ## Additional information ### Issue tracker diff --git a/_remote/raml-module-builder/README.md b/_remote/raml-module-builder/README.md index f5795e1f..3cdeb5b2 100644 --- a/_remote/raml-module-builder/README.md +++ b/_remote/raml-module-builder/README.md @@ -372,7 +372,7 @@ RMB implementing modules expect a set of environment variables to be passed in a - DB_RECONNECTINTERVAL - DB_EXPLAIN_QUERY_THRESHOLD - DB_ALLOW_SUPPRESS_OPTIMISTIC_LOCKING - - TESTCONTAINERS_POSTGRES + - TESTCONTAINERS_POSTGRES_IMAGE The first five are mandatory, the others are optional. @@ -414,7 +414,7 @@ The environment variables `DB_HOST_READER` and `DB_PORT_READER` are for the [Rea `DB_ALLOW_SUPPRESS_OPTIMISTIC_LOCKING` is a timestamp in the format `2022-12-31T23:59:59Z`. Setting it disables optimistic locking when sending a record that contains `"_version":-1` before that time, after that time `"_version":-1` is rejected. This applies only to tables with `failOnConflictUnlessSuppressed`, see below. The timestamp ensures that disabling this option cannot be forgotten. Suppressing optimistic locking is known to lead to data loss in some cases, don't use in production, you have been warned! -`TESTCONTAINERS_POSTGRES` changes the PostgreSQL container image name used at build time for testing; it is not used at runtime. +`TESTCONTAINERS_POSTGRES_IMAGE` changes the PostgreSQL container image name used at build time for testing; it is not used at runtime. See the [Environment Variables](https://github.com/folio-org/okapi/blob/master/doc/guide.md#environment-variables) section of the Okapi Guide for more information on how to deploy environment variables to RMB modules via Okapi. diff --git a/_remote/raml-module-builder/doc/upgrading.md b/_remote/raml-module-builder/doc/upgrading.md index 32bc6305..8e488df6 100644 --- a/_remote/raml-module-builder/doc/upgrading.md +++ b/_remote/raml-module-builder/doc/upgrading.md @@ -30,7 +30,7 @@ See the [NEWS](../NEWS.md) summary of changes for each version. ## Version 35.1 -This is the Poppy (R2 2023) version. +35.1.\* is the Poppy (R2 2023) version. RMB requires Vert.x 4.4.\*. @@ -40,6 +40,53 @@ RMB uses log4j 2.20.0. Ensure that log4j-bom is listed before vertx-stack-depcha postgres-testing requires testcontainers >= 1.19.0. If log4j-slf4j-impl has been used for testcontainers logging you need to switch to log4j-slf4j2-impl. +RMB no longer can handle uppercase letters in tenant ids. Change unit tests to use +downcase letters only; consider to also remove underscores in tenant ids to completely +comply with +[DR-000002 - Tenant Id and Module Name Restrictions](https://wiki.folio.org/display/TC/DR-000002+-+Tenant+Id+and+Module+Name+Restrictions). + +The next step is not strictly required but is needed to comply with the +[Technical Council decision DR-000012](https://wiki.folio.org/display/TC/DR-000012+-+Localization+parameter+for+back-end). + +It removes the deprecated language query parameter, and introduces the totalRecords +query parameter that exists since RMB 33.2.\*. +Some modules might already have done this step. + +It assumes that https://github.com/folio-org/raml is used as a git submodule at +`ramls/raml-util/` directory. Update the submodule to the latest commit: +``` +git submodule update --remote ramls/raml-util/ +git add ramls/raml-util/ +``` +`git add` prevents `pom.xml` from running a reverting `git submodule update`. + +This removes the language trait and adds totalRecords to the pageable trait: + +* https://github.com/folio-org/raml/pull/141/files +* https://github.com/folio-org/raml/pull/140/files + +Therefore you need to change the parameters of your methods that implement the RAML generated interfaces - +remove the lang parameter, and add the `String totalRecords` parameter before the `int offset` parameter. +The compile will fail unless this is done so it's easy to find affected code. + +Examples: + +Replace + +`public void getMyitems(String query, int offset, int limit, String lang, Map okapiHeaders,` + +by + +`public void getMyitems(String query, String totalRecords, int offset, int limit, Map okapiHeaders,` + +Replace + +`public void postMyitems(String lang, Myitem entity, Map okapiHeaders,` + +by + +`public void postMyitems(Myitem entity, Map okapiHeaders,` + ## Version 35.0 ### [RMB-932](https://issues.folio.org/browse/RMB-932) Broken empty string matching: uuidfield == "" diff --git a/_remote/rfcs/README.md b/_remote/rfcs/README.md index 1ba40bb8..dff93ddf 100644 --- a/_remote/rfcs/README.md +++ b/_remote/rfcs/README.md @@ -11,23 +11,11 @@ For process overview, please see https://wiki.folio.org/display/TC/RFC+Process * Fork the official RFC repo at https://github.com/folio-org/rfcs . This is usually only needed once for any number of RFCs to be submitted. * Create a file in the text directory at the top of the forked repo. It should follow the template defined here. Ensure that the file is named appropriately, taking note of the sequence numbers of existing RFCs. * Fill in the RFC. Put care into the details: RFCs that do not present convincing motivation, do not demonstrate understanding of the impact of the design, or are disingenuous about the drawbacks or alternatives tend to be poorly-received. -* In the forked repo on GitHub, create a PR comparing the branch where edited file is located to the master branch of the official RFC repo. Ensure the name of the pull request has the name of the RFC phase at the beginning. e.g. "[DRAFT REVIEW] Java 17" or "DRAFT REVIEW | Java 17" +* In the forked repo on GitHub, create a PR comparing the branch where the edited file is located to the master branch of the official RFC repo. At each stage, the name of the pull request should have the name of the RFC phase at the beginning, so for your first draft use "PRELIMINARY REVIEW" in the title like "[PRELIMINARY REVIEW] Java 17" or "PRELIMINARY REVIEW | Java 17". Once your PR is created, your RFC is ready for the first stage of review. Full instructions for preparing PRs for each stage of the RFC process are in the branching guide: https://wiki.folio.org/display/TC/RFC+Branching+Guide * As a pull request the RFC will receive design feedback from the larger community, and the author should be prepared to revise it in response. * The Technical Council will assign one or more reviewers to the RFC pull requests and the feedback process will begin. See the wiki for more details: https://wiki.folio.org/display/TC/RFC+Process -## The RFC Lifecycle - -The following states represent the lifecycle of the RFC. The states are implemented as “Labels” on the GitHub pull request corresponding to the RFC draft. - -* **Submitted**: initial state of RFC when submitted by their authors -* **Under Review**: RFC has been assigned to one or more reviewers -* **In Final Review**: RFC is in the final review period -* **Accepted**: RFC has been accepted but is not yet ready for implementation. -* **Active**: RFC has been accepted and is now ready for implementation -* **Rejected**: RFC has been rejected and is now effectively closed. - - **Folio’s RFC process owes its inspiration to the [Ember] and [Rust] RFC processes.** [Ember]: https://github.com/emberjs/rfcs diff --git a/_remote/rfcs/text/0000-pub-sub.md b/_remote/rfcs/text/0000-pub-sub.md index 5da82929..94b5afbf 100644 --- a/_remote/rfcs/text/0000-pub-sub.md +++ b/_remote/rfcs/text/0000-pub-sub.md @@ -4,8 +4,10 @@ layout: null - Start Date: 2019-06-20 -- RFC PR: -- FOLIO Issue: +- Contributors: + - [Taras Spashchenko](taras_spashchenko@epam.com) +- RFC PR: https://github.com/folio-org/rfcs/pull/2 +- Outcome: ACCEPTED # PubSub support in FOLIO (module implementation) diff --git a/_remote/rfcs/text/0000-localizing-api-messages.md b/_remote/rfcs/text/0001-localizing-api-messages.md similarity index 97% rename from _remote/rfcs/text/0000-localizing-api-messages.md rename to _remote/rfcs/text/0001-localizing-api-messages.md index 97b10fd5..30c76cc8 100644 --- a/_remote/rfcs/text/0000-localizing-api-messages.md +++ b/_remote/rfcs/text/0001-localizing-api-messages.md @@ -4,15 +4,15 @@ layout: null * Start Date: 2022-03-29 +* Contributors: + * [Radhakrishnan Gopalakrishnan](rgopalakrishnan@ebsco.com) + * [Zak Burke](zburke@ebsco.com) * RFC PR: * Preliminary Review: https://github.com/folio-org/rfcs/pull/3 * Draft Review : https://github.com/folio-org/rfcs/pull/3 * Public Review : https://github.com/folio-org/rfcs/pull/3 * Final Review : https://github.com/folio-org/rfcs/pull/3 -* FOLIO Issue: -* Current Status: :no_entry_sign: ACCEPTED :no_entry_sign: -* Submitter : Radhakrishnan Gopalakrishnan (rgopalakrishnan@ebsco.com) -* Co-Submitter(s) : Zak Burke (zburke@ebsco.com) +* Current Status: ACCEPTED * Sub Group : * Marc Johnson (marc.johnson@k-int.com) * Julian Ladisch (julian.ladisch@gbv.de) diff --git a/_remote/rfcs/text/0002-kafka-tenant-collection-topics.md b/_remote/rfcs/text/0002-kafka-tenant-collection-topics.md index 2cc8eee9..7fbaede1 100644 --- a/_remote/rfcs/text/0002-kafka-tenant-collection-topics.md +++ b/_remote/rfcs/text/0002-kafka-tenant-collection-topics.md @@ -4,8 +4,15 @@ layout: null - Start Date: 2022-08-12 -- RFC PR: (leave this empty) -- FOLIO Issue: (leave this empty) +- Contributors: + - [Olamide Kolawole](okolawole@ebsco.com) + - [Julian Ladisch](julian.ladisch@gbv.de) +- RFC PRs: + - Preliminary Review: https://github.com/folio-org/rfcs/pull/4 + - Draft Review: https://github.com/folio-org/rfcs/pull/6 + - Public Review: https://github.com/folio-org/rfcs/pull/8 + - Final Review: https://github.com/folio-org/rfcs/pull/8 +- Outcome: ACCEPTED # Tenant Collection Kafka Topics @@ -133,4 +140,4 @@ Another approach to counter FOLIO's multi-versioning is to version messages prod There are edge cases with this approach to think about: - FOLIO modules are not tenant-aware i.e. a module does not know which tenants it can processed, OR which tenant are installed in okApi for its version. This would help in discarding messages easily - tenant id exists as a header in the Kafka message. - Modules need a mechanism to allow compatibility for compatible future versions of a message without a code change. For example, V1 of module A emits V1 message that is consumed by V1 of module B. V2 of module A is introduced which emits a V2 message. How will V1 of module B consume the new version (which is functionally correct to consume, imagine if an extra property is added to the message) if it is strictly coded to accept V1. Will semantic versioning be introduced? -- It would be prudent to maintain an event type registry that will maintain event type version and their schemas. It is not a rule that there must be only one producer into a topic. For example, V1 of module A and V2 of module B can produce V1 of a message into a topic. Since modules are meant to have independent development cycles, it will be important to ensure that the next version of module A and B do not declare the same version of a message but with different schemas. \ No newline at end of file +- It would be prudent to maintain an event type registry that will maintain event type version and their schemas. It is not a rule that there must be only one producer into a topic. For example, V1 of module A and V2 of module B can produce V1 of a message into a topic. Since modules are meant to have independent development cycles, it will be important to ensure that the next version of module A and B do not declare the same version of a message but with different schemas. diff --git a/_remote/rfcs/text/0003-folio-breaking-changes.md b/_remote/rfcs/text/0003-folio-breaking-changes.md index 3c0f0012..91ee9a84 100644 --- a/_remote/rfcs/text/0003-folio-breaking-changes.md +++ b/_remote/rfcs/text/0003-folio-breaking-changes.md @@ -3,9 +3,19 @@ layout: null --- - Start Date: 2022-10-21 -- RFC PR: https://github.com/folio-org/rfcs/pull/5 -- FOLIO Issue: N/a - +- Contributors: + - [Jeremy Huff](huff@library.tamu.edu) + - [Marc Johnson](marc.johnson@k-int.com) + - [Jakub Skoczen](jakub@indexdata.dk) + - [Maccabee Levine](msl321@lehigh.edu) + - [Zak_Burke](zburke@ebsco.com) + - [Ankita Sen](a.sen@ub.uni-mainz.de) +- RFC PRs: + - PRELIMINARY REVIEW: https://github.com/folio-org/rfcs/pull/5 + - DRAFT REVIEW: https://github.com/folio-org/rfcs/pull/5 + - PUBLIC REVIEW: https://github.com/folio-org/rfcs/pull/10 + - FINAL REVIEW: https://github.com/folio-org/rfcs/pull/10 +- Outcome: ACCEPTED # Folio Breaking Changes