3.2.0 Release Notes - 1 September 2017

Status: Stable

3.2.0 is a stable release, and all users of OpenLMIS version 3 are encouraged to adopt it.

Release Notes

The OpenLMIS Community is excited to announce the 3.2.0 release of OpenLMIS!

This release represents another major milestone in the version 3 series, which is the result of a software re-architecture that allows more functionality to be shared among the community of OpenLMIS users.

3.2.0 includes a beta version of the new Cold Chain Equipment (CCE) service and other improvemen ts for Vaccine/EPI programs. This represents the first milestone towards the Vaccines MVP feature set. 3.2.0 also contains more contributions from the Malawi implementation, a national implementation that is now live on OpenLMIS version 3.

After 3.2.0, there are further planned milestone releases and patch releases that will add more features to support Vaccine/EPI programs and continue making OpenLMIS a full-featured electronic logistics management information system (LMIS). Please reference the Living Product Roadmap for the upcoming release priorities. Patch releases will continue to include bug fixes, performance improvements, and pull requests are welcomed.

Compatibility

All changes are backwards-compatible. Any changes to data include automated migrations from previous versions back to version 3.0.1. Any exceptions are identified in the Components sections below.

Important: 3.2.0 contains a data migration script that must be applied in order to upgrade from older version 3 to 3.2.0. This migration has its own GitHub repo and Docker image. See Adjustment Reason Migration.

For background information on OpenLMIS version 3’s new micro-service architecture, extensions/customizations, and upgrade paths for OpenLMIS versions 1 and 2, see the 3.0.0 Release Notes.

Download or View on GitHub

OpenLMIS Reference Distribution 3.2.0

New Features

This is a new section to flag all the new features specifically. Hopefully many of these are configurable or have a toggle so new features will not negatively impact existing implementations.

  • CCE Service (beta) and Reference Data contain new features for cold chain equipment (see CCE component below)
  • Stock Management component is now an official release (it was previously a beta component)
  • Report service is now its own separate component to provide reporting features (TBD)

Changes to Existing Functionality

Version 3.2.0 contains changes that impact users of existing functionality. Please review these changes which may require informing end-users and/or updating your customizations/extensions:

  • Requisition Service now uses Stock Management to handle adjustment reasons and to store stock data in stock cards. This change does not alter end-user functionality in Requisitions, but it does allow users with Stock Management rights to begin viewing stock cards with data populated from requisitions. This change also requires a data migration script to upgrade olderx version 3 systems to 3.2.0. (See Requisition component below.)

API Changes

Some APIs have changes to their contracts and/or their request-response data structures. These changes impact developers and systems integrating with OpenLMIS:

  • Auth Service uses Authorization header instead of access_token (see Auth OLMIS-2871 below)
  • Fulfillment Service and Requisition Service changed some dates from ZonedDateTime to LocalDate (see OLMIS-2898 below)
  • ReferenceData contains changes to Facility search and Geographic Search APIs (see component below)
  • Requisition Service now requires use of the Stock Management service and connects to Stock service to handle adjustment reasons and store data on stock cards (see Requisition component)
  • Configuration settings endpoints (/api/settings) are no longer available; use environment variables to configure the application (see OLMIS-2612 below)
  • postgres database now requires one additional extension: uuid. It is already included in the postgres component (see postgres component below), but those hosting on Amazon AWS RDS will need to add the extension.

All Changes by Component

Version 3.2.0 of the Reference Distribution contains updated versions of the components listed below. The Reference Distribution bundles these component together using Docker to create a complete OpenLMIS instance. Each component has its own own public GitHub repository (source code) and DockerHub repository (release image). The Reference Distribution and components are versioned independently; for details see Versioning and Releasing.

Auth Service 3.1.0

Improvements which are backwards-compatible:

  • OLMIS-1498: The service will now fetch list of available services from consul, and update OAuth2 resources dynamically when a new service is registered or de-registered. Those tokens are no longer hard-coded.
  • OLMIS-2866: The service will no longer used self-contained user roles (USER, ADMIN), and depend solely on referencedata’s roles for user management.
  • OLMIS-2871: The service now uses an Authorization header instead of an access_token request parameter when communicating with other services.

Source: Auth CHANGELOG

CCE Service 1.0.0-beta

This component is a beta of new Cold Chain Equipment functionality to support Vaccines in medical supply chains. This API service component has an accompanying beta CCE UI component.

CCE 1.0.0-beta includes many new features:

  • Configuring a cold chain equipment catalog
  • Managing cold chain equipment inventory
  • Capturing functionality status of equipment

For details, see the functional documentation: Cold Chain Equipment Management

Warning: This is a beta component, and is not yet intended for production use. APIs and functionality are still subject to change until the official release.

Fulfillment Service 6.0.0

Contract breaking changes:

  • OLMIS-2898: Changed POD receivedDate from ZonedDateTime to LocalDate.

New functionality added in a backwards-compatible manner:

  • OLMIS-2724: Added an endpoint for retrieving all the available, distinct requesting facilities.

Bug fixes and improvements (backwards-compatible):

  • OLMIS-2871: The service now uses an Authorization header instead of an access_token request parameter when communicating with other services.
  • OLMIS-3059: The search orders endpoint now sorts the orders by created date property (most recent first).

Source: Fulfillment CHANGELOG

nginx

TBD

Notification Service 3.1.0

Bug fixes, security and performance improvements (backwards-compatible):

  • OLMIS-2871: The service now uses an Authorization header instead of an access_token request parameter when communicating with other services.

Source: Notification CHANGELOG

postgres

TBD: explain new version and link to documentation about adding uuid extension

Reference Data Service 8.0.0

Breaking changes:

  • OLMIS-2709: Facility search now returns smaller objects.
  • OLMIS-2698: Geographic Zone search endpoint now is paginated and accepts POST requests, also has new parameters: name and code.

New functionality added in a backwards-compatible manner:

  • OLMIS-2609: Created rights to manage CCE and assigned to system administrator.
  • OLMIS-2610: Added CCE Inventory View/Edit rights, added demo data for those rights.
  • OLMIS-2696: Added search requisition groups endpoint.
  • OLMIS-2780: Added endpoint for getting all facilities with minimal representation.
  • Introduced JaVers to all domain entities. Also each domain entity has endpoint to get the audit information.
  • OLMIS-3023: Added enableDatePhysicalStockCountCompleted field to program settings.
  • OLMIS-2619: Added CCE Manager role and assigned CCE Manager and Inventory Manager roles to new user ccemanager.

Bug fixes, security and performance improvements, also backwards-compatible:

  • OLMIS-2871: The service now uses an Authorization header instead of an access_token request parameter when communicating with other services.
  • OLMIS-2534: Fixed potential huge performance issue.
  • OLMIS-2716: Set productCode field in Orderable as unique.

Source: ReferenceData CHANGELOG

Reference UI 6.0.0

The Reference UI bundles the following UI components together using Docker images specified in its compose file.

auth-ui 5.0.3

See openlmis-auth-ui CHANGELOG

cce-ui 1.0.0-beta

Beta release of CCE UI. See CCE service component below for more info.

fulfillment-ui 5.0.3

See openlmis-fulfillment-ui CHANGELOG

referencedata-ui 5.2.1

See openlmis-referencedata-ui CHANGELOG

report-ui 5.0.3

See openlmis-report-ui CHANGELOG

requisition-ui 5.1.1

See openlmis-requisition-ui CHANGELOG

stockmanagement-ui 1.0.0

First release of Stock Management UI. See Stock Management service component below for more info.

ui-components 5.1.1

See openlmis-ui-components CHANGELOG

ui-layout:5.0.2

See openlmis-ui-layout CHANGELOG

Report Service 1.0.0

TBD

Requisition Service 5.0.0

Contract breaking changes:

  • OLMIS-2612: Configuration settings endpoints (/api/settings) are no longer available. Use environment variables to configure the application.
  • MW-365: Requisition search endpoints: requisitionsForApproval and requisitionsForConvert will now return smaller basic dtos.
  • OLMIS-2833: Added date physical stock count completed to Requisition
  • OLMIS-2671: Stock Management service is now required by Requisition
  • OLMIS-2694: Changed Requisition adjustment reasons to come from Stock Service
  • OLMIS-2898: Requisition search endpoint takes from/to parameters as dates without time part.
  • OLMIS-2830: As of this version, Requisition now uses Stock Management as the source for adjustment reasons, moreover it stores snapshots of these available reasons during initiation. Important: in order to migrate from older versions, running this migration is required: https://github.com/OpenLMIS/openlmis-adjustment-reason-migration

New functionality added in a backwards-compatible manner:

  • OLMIS-2709: Changed ReferenceData facility service search endpoint to use smaller dto.
  • The /requisitions/requisitionsForConvert endpoint accepts several sortBy parameters. Data returned by the endpoint will be sorted by those parameters in order of occurrence. By defaults data will be sorted by emergency flag and program name.
  • OLMIS-2928: Introduced new batch endpoints, that allow retrieval and approval of several requisitions at once. This also refactored the error handling.

Bug fixes added in a backwards-compatible manner:

  • OLMIS-2788: Fixed print requisition.
  • OLMIS-2747: Fixed bug preventing user from being able to re-initiate a requisition after being removed, when there’s already a requisition for next period.
  • OLMIS-2871: The service now uses an Authorization header instead of an access_token request parameter when communicating with other services.
  • OLMIS-2534: Fixed potential huge performance issue. The javers log initializer will not retrieve all domain objects at once if a repository implemenets PagingAndSortingRepository
  • OLMIS-3008: Add correct error message when trying to convert requisition to an order with approved quantity disabled in the the requisition template.
  • OLMIS-2908: Added a unique partial index on requisitions, which prevents creation of requisitions which have the same facility, program and processing period while being a non-emergency requsition. This is now enforced by the database, not only the application logic.
  • OLMIS-3019: Removed clearance of beginning balance and price per pack fields from skipped line items while authorizing.

Source: Requisition CHANGELOG

Stock Management 1.0.0

This is the first official release of the new Stock Management service. Its beta version was previously released in Reference Distribution 3.1.0. Since then, the major improvements are:

  • OLMIS-2710: Configure VVM use per product
  • OLMIS-2654 and OLMIS-2663: Record VVM status with physical stock count and adjustments
  • OLMIS-2711: Change Physical Inventory to include reasons for discrepancy
  • OLMIS-2834: Requisition form info gets pushed into Stock cards (see more in Requisition component)
  • plus lots of technical work including Flyway migrations, RAML, tests, validations, translations, documentation, and demo data.

Watch a video demo of the Stock Management functionality: https://www.youtube.com/watch?v=QMcXX3tUTHE (English) or https://www.youtube.com/watch?v=G8BK0izxbnQ (French)

Now that this is an official release, the Stock service is considered stable for production use. Future changes to functionality or APIs will be tracked and documented.

For a list of all commits since 1.0.0-beta, see GitHub commits

Components with No Changes

Other tooling components have not changed, including: the logging service and a library for shared Java code called service-util.

Contributions

Thanks to the Malawi implementation team who has continued contributing many pull requests to add functionality, performance improvements, and customization in ways that have global shared benefit. Also, thanks to everyone who contributed to OpenLMIS 3.0.0.

Further Resources

View all JIRA Tickets in 3.2.0.

Learn more about the OpenLMIS Community and how to get involved!