Improvements:
- SELV3-781: Extension of catchment population logic.
- Feature Flag Implementation:
- Implement a feature flag (CATCHMENT_POPULATION_CALC_AUTO) to control the aggregation and editing behavior of catchment population data.
- Automatic Aggregation Logic:
- If the feature flag is enabled (CATCHMENT_POPULATION_CALC_AUTO=true), automatically aggregate population data from the lowest geographic level to higher levels.
- If the feature flag is disabled (CATCHMENT_POPULATION_CALC_AUTO=false), prevent automatic aggregation and allow editing of population data at higher levels.
- Import Logic:
- Implement logic to support CSV import of population data for geographic zones.
- Fix /geographicZone/search endpoint so it’s parameters are optional.
GET /geographicZone/search?parent=UUID
is now possible.
- Feature Flag Implementation:
Improvements:
- OLMIS-7989: Extension of import functionality by adding possibility to import
facilities and supported programs.
- Improved performance.
- Improved csv files validation
- OLMIS-7895: Add demo data for BUQ and TB Monthly
- OLMIS-7988: Add DHIS2 integration rights
- OLMIS-7953: Improve some API calls performance
- OIS-14: Upgrade Transifex API version
- OIS-48: Update service base images to versions without known vulnerabilities
- MW-1367: Add active flag to MinimalFacilityDto
- AO-802: Add endpoint
GET api/orderables/{product_id}
to retrieve the history of price changes
New functionality added in a backwards-compatible manner:
- OLMIS-7670: Add
POST api/importData
endpoint - OLMIS-7671: Add functionality for reading uploaded zip archive
- OLMIS-7672: Add functionality to import orderable.csv
- OLMIS-7757: Add functionality to import programOrderable.csv
- OLMIS-7759: Add functionality to import tradeItem.csv
- OLMIS-7753: Add validation for csv content
- OLMIS-7751: Add validation for uploaded files
- OLMIS-7720: Add data import right
New functionality added in a backwards-compatible manner:
- OLMIS-7643: Add DataExportController and
GET /exportData
endpoint - TZUP-280: Added ExtraData property in basic facility dto to enable extra data column in facility search API.
- OLMIS-7644: Add DataExportService and functionality to generate orderable.csv
- OLMIS-7646: Add functionality to generate programOrderable.csv
- OLMIS-7645: Add functionality to generate orderableIdentifier.csv
- OLMIS-7647: Add functionality to generate tradeItem.csv
- OLMIS-7648: Add mapping files
- OLMIS-7706: Add data export right, modify DataExportController
- OLMIS-7718: Add
GET /facilities/full
endpoint
New functionality added in a backwards-compatible manner:
- OLMIS-7443: GET /lots can filter by orderableId
- OLMIS-7444: Add LotValidator extension
- OLMIS-7452: Add CREATE_ORDER right and assign to users with REQUISITION_APPROVE
- OLMIS-6546: Add product code unique validation rule to OrderableValidator
- OLMIS-7501: Add CCE_INVENTORY_TRANSFER right
Breaking changes:
- OLMIS-7472: Use postgres v12
Bux fixes:
- OLMIS-7496: Fix CREATE_ORDER right not working for users who had Approve requisition
- OLMIS-7534: OLMIS-7534 Fix unique code validation for existing orderable
- OLMIS-7525: Change values of orderable identifiers in demo data to lowercase
Improvements:
- OLMIS-7568: Use openlmis/dev:7 and openlmis/service-base:6.1
New functionality added in a backwards-compatible manner:
- OLMIS-7307: Added extension point for postprocess create and update products.
Improvements:
- OLMIS-7273: Improve performance of fetching orderables by ids.
Bug fixes:
- OLMIS-6008: The ability to create a facility type with the same name has been removed.
Improvements:
- OLMIS-7192: Improve performance of orderables fetch.
Bug fixes:
- OLMIS-7248: Fix product creation in Products view.
- OLMIS-7251: Fix fetching programs for product when filtering by program code.
New functionality added in a backwards-compatible manner:
- OLMIS-6783: Update Spring Boot version to 2.x:
- Spring Boot version is 2.2.2.
- Flyway is at 6.0.8, new mechanism for loading Spring Security for OAuth2 (matching Spring Boot version), new versions for REST Assured, RAML tester, RAML parser, PowerMock, Mockito (so tests will pass) and Java callback mechanism has changed to a general handle() method.
- Spring application properties for Flyway have changed.
- Re-implement generation of Jasper reports.
- Fix repository method signatures (findOne is now findById, etc.); additionally they return Optional.
- Fix unit tests.
- Fix integration tests. Use TestApplication which sets default redis server in order to get the tests to run.
- API definitions require "Keep-Alive" header for web integration tests.
- Pagination does not allow a null sort, and by default returns an object, rather than an array, so add CustomSortSerializer to serialize Sort
- Hibernate Spatial using 5.3 instead of latest to use old JTS classes (issues with using new classes that are difficult to resolve).
- Remove migration integration tests as they are not necessary if migrations do not change.
- Fix Jackson issue in supported programs in FacilityDto.
- Remove order by pageable SQL (not necessary in Spring Boot 2)
- OLMIS-3100: Removed stock adjustment reasons endpoint
- OLMIS-6941: Added missing pageable parameter when no supply partners configured. Bug fixes:
- OLMIS-6943: Added missing Json annotation to restore child orderables support
- OLMIS-6950: Added missing pagable parameter to fix users filter.
Bug fixes:
- OLMIS-6676: Enabled trade items to share lot codes.
- OLMIS-6749: Requisition group updates can no longer modify supervisory nodes.
- OLMIS-6790: Enabled creating lots with lot code that is partly included in any existing lot code.
- OLMIS-6776: Fixed the issue with invalid token error:
- A mechanism to retry authentication load after encountering the error was introduced.
New functionality added in a backwards-compatible manner:
- OLMIS-6726: Added volume and temperature info to Orderables.
Breaking changes:
- OLMIS-6658: Improved performance of FTAP and Orderable Search by Params. To achieve it, the following actions were taken:
- Native query was changed to Criteria query
- Active flag of ProgramOrderables does no longer impact FTAP endpoints
Bug fixes:
- OLMIS-6575: Fixed Internal Server Error in supervisoryNodes endpoint.
Improvements:
- OLMIS-6611: Changed queries to retrieve only last update date instead of orderables collection to improve performance.
- OLMIS-6566: Refactored orderable query to avoid native and added entity graph.
Breaking changes:
- OLMIS-6351: Drop reference to orderable version from Facility Type Approved Product
- Facility Type Approved Product references an orderable by its ID.
- OLMIS-5008: Removed
GET /api/facilities/supplying
endpoint
New functionality added in a backwards-compatible manner:
- OLMIS-6322: Added new ADMINISTRATIVE_MESSAGES_MANAGE right. Assigned to System Administrator role by default.
- OLMIS-6347: Added CRUD for administrative messages and renamed ADMINISTRATIVE_MESSAGES_MANAGE right to SYSTEM_NOTIFICATIONS_MANAGE.
- OLMIS-6352: Added active flag to Facility Type Approved Products
- OLMIS-6361: Added expand pattern to GET /api/systemNotifications endpoint.
- OLMIS-6388: Added setting isDisplayed flag in system notification based on startDate, expiryDate and active flag.
- OLMIS-6358: Added versioning to Facility Type Approved Product resource.
- OLMIS-6430: Added ability to search orderables by identities.
- To use this feature please use the new
POST /api/orderables/search
endpoint - For now, both
id
andversionNumber
fields must be provided in the request body to find an orderable
- To use this feature please use the new
- OLMIS-6463: Updated GET /facilityTypeApproveProducts to enable searching by orderableId.
- OLMIS-6471: Added new LOTS_MANAGE right. Assigned to System Administrator role by default.
- OLMIS-6475: Orderables Get by ID now supports If-Modified-Since request header
- OLMIS-6476: Orderables Get and Orderables Post Search now support If-Modified-Since request header.
- OLMIS-6485: Added Last-Modified header to POST and PUT /orderables endpoints
Bug fixes:
- OLMIS-6188: Added validation for name when creating a processing period.
- OLMIS-6306: Fixed exception in /orderableFulfills endpoint (added countQuery)
- OLMIS-6403: Fixed error message for Start Date before Expiry Date in system notifications.
- OLMIS-6438: Fixed searching for orderables in API console.
- OLMIS-6528: Fixed Internal Server Error after searching for orderables with null or malformed id.
- OLMIS-6470: Fix for SupervisoryNodes and RequisitionGroups: creating and updating SN with and without RG + validation; updating SN via PUT api/requisitionGroups/{id}; validation when creating RG with already assigned SN
- OLMIS-6564: Fixed responses compression in the referencedata service.
- OLMIS-6588: Fixed orderable mapping in the OrderableChildrenDto.
Improvements:
- OLMIS-6127: Introduced second-level caching for Orderable.
- OLMIS-6362: Update facility names for demo data with meaningful names.
- OLMIS-6384: Added new profilers to
/orderableFulfills
endpoint - OLMIS-6129: Added package-lock.json file and removed package-lock.json from .gitignore.
- OLMIS-6390: Provided serializable isolation level to Orderable update & create.
- OLMIS-6374: Add new profile for audit logging.
- OLMIS-6363: Update product names and codes for demo data to be more meaningful.
- OLMIS-6414: Added missing FTAPs to demo data.
- OLMIS-6408: Added pageable validator.
- OLMIS-6402: Renamed versionId field to versionNumber.
- OLMIS-6474: Performance improvements of
GET /api/orderableFulfills
endpoint. - OLMIS-6614: Added serving of facilityId and programId params and reduced number of queries to DB made by
GET /api/orderableFulfills
endpoint.
Breaking changes:
- OLMIS-3773: Changed
GET /api/facilities
to return page of BasicFacilityDto. - OLMIS-3586: Changed
GET /api/facilities
andPOST /api/facilities/search
endpoints to do conjunction search. - OLMIS-5000: Merged all supply line searching endpoints to on GET /api/supplyLines endpoint with programId, supervisoryNodeId and supplyingFacilityId (multiple) parameters.
- OLMIS-5853: Change supervisory node edit validation sequence fix functional test error
- OLMIS-3641: Added expand pattern to GET /api/supplyLines endpoint.
New functionality added in a backwards-compatible manner:
- OLMIS-5990: Added ability to search roles by right ID
- OLMIS-683: Update orderable model to Allow for definition of kits.
- OLMIS-6055: Added rights per superset report.
Improvements:
- OLMIS-5527: On facility list screen, sort facility by name
- OLMIS-4291: Improved performance of GET /api/facilities/{facility_id}/approvedProducts endpoint.
- OLMIS-6005: Improved performance of GET /api/supervisoryNodes/{supervisoryNode_id}/supervisingUsers endpoint.
- OLMIS-5853: Add Unique Name constraint on Supervisory Node
- OLMIS-5852: Add Case Insensitive Unique Code constraint on Supervisory Node
- OLMIS-6004 : Add sortable parameter to program search api
- OLMIS-6056 : Added redis caching for getting Supervisory Node Dto and Program
- OLMIS-4531: Added compressing HTTP POST responses.
- OLMIS-3494: Refactored searching for processing periods to use one query and not retrieve unnecessary data.
Bug fixes:
- OLMIS-5981: Updated /supervisoryNodes/{supervisoryNode_id} PUT to throw exception when requisition group is missing and when requisition group is changed to another.
- OLMIS-6172: Fixed PUT /processingPeriods/id not to throw ClassCastException
Breaking changes:
- OLMIS-3341: Removed
DELETE /api/processingPeriods/{id}
endpoint - OLMIS-4292: Removed
GET /api/users/{id}/supervisedFacilities
endpoint - OLMIS-5635: Changed supervisory node structure
- OLMIS-5668: Removed login restricted from the User model
New functionality added in a backwards-compatible manner:
- OLMIS-4940: Ensured that the microservice gets system time zone from configuration on startup:
- Added GET api/localeSettings endpoint for retrieving time zone information from properties.
- OLMIS-5262: Added ability to syncing FHIR-related reference data changes to Hearth FHIR server
- OLMIS-5384: Added authorization options for FHIR client
- OLMIS-3885: Added versionId to orderable model.
- OLMIS-4942: Added loading currency, number and date settings from properties on startup.
- Also extended /localeSettings endpoint with currency, number and date settings.
- OLMIS-5343: Added ability to find user by home facility supervision
- the supervisoryNodeId parameter for the /api/users/rightSearch is optional
- if provided, results will contain only users that have at least one supervisory supervision role assignment for the given supervisory node
- otherwise, results will contain only users that have at least one home facility supervision role. For both cases, other parameters have to match.
- the supervisoryNodeId parameter for the /api/users/rightSearch is optional
- OLMIS-5415: Handle requests from HAPI FHIR server:
- Added extra data field to geographic zone resources.
- Added check for the
isManagedExternally
flag which is stored in the extraData field in facility and geographic zone classes- only service-level and API key tokens can set and modify the flag
- user is not be able to set this field - the error message should be shown
- If the FHIR client in the service is enabled and a request comes from an FHIR server, the service will not send a request to the FHIR server because this creates an endless loop of sending requests between those services.
- Added special facility type for FHIR resources.
- OLMIS-5140: Added supply partner resource
- Added ability to find FTAPs for several facility types
- Added ability to retrieve all supervising facilities for the given supervisory node.
- OLMIS-5143: Added
extraData
field to supervisory node resource - OLMIS-5614: Provided validation for supply partner resource
- Added bidirectional relation between regular and partner nodes
Improvements:
- OLMIS-4295: Updated checkstyle to use newest google style.
- OLMIS-3078: Made Javers log initializer not iterate over all items, only those without logs.
- OLMIS-4926: Updated demo data README.md, added and update roles list and associated rights
Bug fixes, security and performance improvements, also backwards-compatible:
- OLMIS-4949: Fixed problem with updating a facility
- Made that the facility code is unique case insensitive
- OLMIS-5627: Fixed problem with updating a supervisory node
- OLMIS-5007: Marked
GET /api/facilities/supplying
endpoint as deprecated - OLMIS-4948: Fixed Internal server error by adding processing schedule message
- OLMIS-5850: Fixed the role name to be unique when different casing is used
Breaking changes:
- OLMIS-4985: Changed the user resource structure
New functionality added in a backwards-compatible manner:
- OLMIS-2245: Added user count to Role resource.
- OLMIS-4730: Allow to update basic information by user
- added job title and phone number fields
- OLMIS-4908: Send user's contact details to the notification service
- OLMIS-4980: Add extra data to processing period model (for report only flag)
- OLMIS-4871: Move reference data to new demo data strategy.
Bug fixes, security and performance improvements, also backwards-compatible:
- OLMIS-4422: Stop creating right assignments for supervision role assignments when user has no home facility.
- OLMIS-4172: It is no longer possible to create an orderable with more than one active association to the same program.
- OLMIS-4695: Added Missing ID check on updating facility
- OLMIS-3288: Add option of fetching processing periods only by programId. Useful for report filters
- OLMIS-3982: Add validation for one program not to be assigned more that one time for a facility
- OLMIS-3705: the GET /api/users endpoint will not omit other parameters if "id" parameter is passed
- OLMIS-5019: Fixed problem with creating Facility Type Approved Products
Improvements:
- OLMIS-3498: Added Jenkinsfile
- OLMIS-4818: GET /api/programs endpoint now accepts "name" and multiple "id" parameters.
- OLMIS-4819: GET /api/processingPeriods endpoint now accepts multiple "id" parameters.
Breaking changes:
- OLMIS-3600: Paginate and add get by ids parameters to get users endpoint
- OLMIS-3448: Paginate minimal facilities endpoint
- OLMIS-2695: Paginate get all processing schedules endpoint.
- OLMIS-2695: Merged processing period search endpoints with get all periods endpoint. Convert endpoint to be pageable.
- OLMIS-3821: Update search lot endpoint to follow REST
- OLMIS-3821: Facility approved products endpoint is paginated now, fullSupply" flag is optional and products can be filtered by multiple orderable ids.
- OLMIS-4168: Removed PODS_MANAGE from roles. Made PODS_MANAGE a supervision right. Added new PODS_VIEW supervision right
- OLMIS-4027: Added pagination and sorting to facility type endpoint, can be searched using active query parameter.
- OLMIS-4281: Added search abilities to /api/orderables endpoint, removed /api/orderables/search
- OLMIS-4384: Removed POST /api/supervisoryNodes/search endpoint and merged it with GET /api/supervisoryNodes which now is paginated and supports batch fetch.
- OLMIS-4452: Added filtering Processing Periods by end date, start date is now filtering out all previous periods instead of those after given date.
New functionality added in a backwards-compatible manner:
- OLMIS-3077: Added GTIN to TradeItem
- OLMIS-3782: Ability to set up program to skip requisition authorization step
- OLMIS-3135: Ability to create, use and delete API keys.
- Handle API Key requests. (For now all requests are blocked.)
- OLMIS-3726: Ability to have a fulfillment roles by non-warehouses.
- OLMIS-3818: Added new role assignment to rivo for the Niassa Provincial Store.
- OLMIS-3805: Added new param to minimal facilities endpoint which allows returning only active ones.
- OLMIS-3918: Added locallyFulfilled flag to supported program resource
- OLMIS-3947: added /api/orderableFulfills endpoint
- The response have answers on two questions about the Orderables:
- which orderables can fulfill the following orderable
- what orderables can be fulfilled by the following orderable
- The response have answers on two questions about the Orderables:
- OLMIS-3940: Added ability to search by facilityId, commodityTypeId and processingPeriodId to /api/idealStockAmounts endpoint
- OLMIS-3387: Added /api/Location endpoint
- the endpoint will return geographic zones as FHIR Location instances
- OLMIS-3389: Provide Facility as FHIR Location with /api/Location endpoint
- OLMIS-4017: Support GTIN attributes in Orderable's dispensable
Bug fixes that are backwards-compatible:
- OLMIS-3502: fix search users by home facility id
- OLMIS-2419: Supervisory Node name is now required and facility is not required.
- OLMIS-3625: Increase performance of facility endpoints
- added several indexes on foreign keys on facility and related tables
- use HQL to retrieve facilities instead of creating query from scratch
- set lazy loading on some relations so related entities will be retrieved only when there is a need
- modified /api/facilities/supplying to retrieve facilities directly from the database
- improved Get Facilities and Search Facility endpoints by using geographic zone IDs instead of full representation.
- create single query to retrieve facilities by all parameters
- OLMIS-2666: Removed java validation and added database constraint for program code uniqueness.
- OLMIS-3537: Usernames are now case-insensitive. (Note: Implementations need to handle this before upgrading this component, if they use usernames that differ by letter casing only)
- OLMIS-3614: Added ftaps with warehouse facility type to demo data
- OLMIS-3819: Fix orderable demo data to only be backed by commodity type or trade item, not both.
- OLMIS-3838: Ensure right assignments are updated properly when user is saved.
- OLMIS-3778: Fixed service checks the rights of a wrong user.
- OLMIS-3845: Fixed facility search endpoint returns duplicated values.
- OLMIS-4038: In 9.0.0 the ISA upload would always create new entries, even if it was supposed to udpate. This has been fixed and works correctly now.
- OLMIS-4064: Change Location's partOf to reference a Location, not geographicZone.
- OLMIS-4041: Restricted thread pool for right assignment regeneration task to 1.
- OLMIS-3599: Removed unused PRODUCTS_MANAGE right
Improvements:
- OLMIS-3925: Added unique constraint on program and supervisory node in supply line.
- OLMIS-3984: Changed primary key for suported programs from id to facility-program composite
- Id column has been removed.
- Equals and hashcode methods work only on facility and program fields.
- OLMIS-4108: Facility Types can be searched by multiple "id" parameters.
- OLMIS-4227: Updated README, roles' descriptions, removed PODS_MANAGE right from Warehouse Clerk and added to Delivery Approver and Storeroom Manager.
Breaking changes:
- OLMIS-3116: User DTO now returns home facility UUID instead of Facility object.
- OLMIS-3105: User DTO now returns UUIDs instead of codes for role assignments.
- OLMIS-3293: Paginate search facilityTypeApprovedProducts and made endpoit RESTful
New functionality added in a backwards-compatible manner:
- OLMIS-2892: Added ideal stock amounts model.
- OLMIS-2966: Create User Rights for Managing Ideal Stock Amounts.
- OLMIS-3227: Added GET Ideal Stock Amounts endpoint with download csv functionality.
- OLMIS-3022: Refresh right assignments on role-based access control (RBAC) structural changes.
- OLMIS-3263: Added new ISA dto with links to nested objects.
- OLMIS-396: Added ISA upload endpoint.
- OLMIS-3200: Designed and added new demo data for EPI (Vaccines) program.
- OLMIS-3254: Un-restrict most GET APIs for most resources.
- OLMIS-3351: Added search by ids to /api/facilities endpoint.
- OLMIS-3512: Added code validation for supervisory node create and update endpoints.
Bug fixes, security and performance improvements, also backwards-compatible:
- OLMIS-2857: Refactored user search repository method to user database pagination and sorting.
- OLMIS-2913: add DIVO user and assign to Inventory Manager role for SN1 and SN2
- OLMIS-3146: added PROGRAMS_MANAGE right and enforce it on CUD endpoints.
- OLMIS-3209: Fixed problem with parsing orderable DTO when it contains several program orderables.
- OLMIS-3290: Fixed searching Orderables by code and name.
- OLMIS-3291: Fixed searching RequisitionGroups by supervisoryNode.
- OLMIS-3346: Decreased number of database calls to retrieve Facility Type Approved Products
Bug fixes, security and performance improvements, also backwards-compatible:
- OLMIS-3130: Fixed high memory usage during right assignment migration.
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.
- OLMIS-2811: Added API endpoint for user's permission strings.
- OLMIS-2885: Added ETag support for programs and facilities endpointsw.
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
- OLMIS-2238: Added sorting users by username in user search endpoint.
- MW-412: Added CORS support.
- MW-430: Added missing foreign keys in FTAP.
- MW-129: Introduced JaVers to all domain objects.
- OLMIS-2901: Added keys to the lots table.
- OLMIS-2724: Facility minimal endpoint will not be protected by admin right.
- OLMIS-2831: Deprecate stock adjustment reason APIs in RAML.
Breaking changes:
- OLMIS-2280: Added pagination, new parameters (zoneId, name, code) to supervisory node search endpoint
- OLMIS-2277: Validate email adress
New functionality added in a backwards-compatible manner:
- OLMIS-2611: Added using locale from env file
- OLMIS-2729: Added endpoint for get user supported programs for home facility
- We should not really require client apps to filter if programs are supported by user facility. The logic should be shared in backend service.
Bug fixes, security and performance improvements, also backwards-compatible:
- OLMIS-2606: Fix saving requisition groups with requisition group program schedules.
- OLMIS-2628: Fixes 6.0.0 Reference Data migrations with wrong timestamps - this fixes problems with the database migration from 5.0.0/5.0.1, by fixing wrong timestamps in migrations. It makes migrating from 6.0.0 to 6.0.1 problematic, hence we advise migrating straight to this version.
New functionality added in a backwards-compatible manner:
- OLMIS-2492: Added new query param to facility search endpoint - code (facility type code)
- Moved warehouse facility type from demo data to initial data.
- OLMIS-2370: Added paginated search orderables endpoint.
- Description field was added to Orderable class.
- OLMIS-2357: Added audit logs for User entity.
Breaking changes:
- OLMIS-1696:
In our medical commodities model, we changed how Orderables, TradeItems and CommodityTypes are associated - both internally to the Reference Data service, but also to external services.
Before, the code modeled this relationship as Orderables being an abstract base class to TradeItem and CommodityType. Orderable no longer are abstract, and TradeItem/CommodityType are not inherited, but rather having a "has a" relationship to Orderable.
- CommodityType and TradeItem no longer inherit from Orderable.
- Orderable, TradeItem and CommodityType all migrated to separate tables.
- Orderable is no longer an abstract class - objects may be instantiated from it.
- Orderable accept a map of identifiers where the key of that map is the type of identifier, and the value is the identifier.
- When creating an Orderable, one should give it's identifier in the Orderable's map as e.g. key = commodityType (or tradeItem), value = uuid.
- CommodityTypes is able of having 0 or more Orderables.
- Removed description from CommodityType, added name (string), classificationSystem (string), classificationId (string). All required.
- TradeItem is capable of having 0 or more Orderable.
- Added Dtos for: TradeItem, CommodityType, OrderableDisplayCategory, TradeItemClassification, Dispensable.
- Added get endpoint for retrieve all commoditytypes.
- Added endpoint for create orderables.
- Added pagination for getAll/search endpoints for Orderables, CommodityTypes and TradeItems.
- Added validation for orderable, commodity type and trade item.
- Added data migrations.
- Removed redundant code.
Bug fixes, security and performance improvements, also backwards-compatible:
- OLMIS-2479: Fix database migration error in 5.0.0
Breaking changes:
- OLMIS-2320: Refactor FTAP - ProgramOrderable association
- OLMIS-2284: Pagination for search facilities endpoint
New functionality added in a backwards-compatible manner:
- OLMIS-2262: Lot domain object added
- OLMIS-2259: Support for searching by right type to the 'api/rights/search' endpoint
- OLMIS-2264: Lot repository and controller with POST and PUT methods
- OLMIS-2265: Right check for PUT Lot
- OLMIS-2263: Lot paginated search endpoint
- OLMIS-2266: Lot GET endpoint
- OLMIS-2338: Search user based on rights endpoint
Bug fixes, security and performance improvements, also backwards-compatible:
- OLMIS-2258: Rights GET endpoint is available to users
- OLMIS-2267: Made email an optional field for user
- OLMIS-2155: Performance issue with custom ZonedDateTimeAttributeConverter
- OLMIS-2319: Fixed creating new Commodity Type
- OLMIS-2342: Lot expiration/manufacture dates changed from ZonedDateTime to LocalDate
- OLMIS-1695: Refactor CommodityType - TradeItem association
- Requisition Group endpoints allow associating facilities and schedules
- OLMIS-2404: Fixed concurrency issues in FTAP search
- OLMIS-2369: Allow creating facilities without supported programs
- OLMIS-2382: Check for creating duplicated FTAP
Dev and tooling updates made in a backwards-compatible manner:
- OLMIS-2296: Lot demo data
- OLMIS-2343: Lot endpoints marked as experimental
- OLMIS-1972: Update Postgres from 9.4 to 9.6
- This upgrade will apply automatically and all data will migrate.
- Update Docker Dev Image for builds from v1 to v2
- Moves the sync_transifex.sh script out of each service and into the Docker Dev Image.
- Improve demo data
- OLMIS-2188: Description for roles in demo data
- OLMIS-2098: Stock manager role assigned to administrator
Breaking changes:
- OLMIS-2143, OLMIS-2202: Add pagination to the users search endpoint
- OLMIS-1776: Trade Item: rename manufacturer for GS1.
- TradeItem.manufacturer => TradeItem.manufacturerOfTradeItem
- OLMIS-1773: Orderable: rename packSize and name for GS1.
- Orderable.name => Orderable.fullProductName
- Orderable.packSize => Orderable.netContent
- Facility search endpoint now uses POST method instead of GET.
- The parameters are passed in request body, similarly to /api/users/search endpoint.
- The "zone" parameter was renamed to "zoneId"
New functionality added in a backwards-compatible manner:
- OLMIS-1779: Add validations on saving program
- code can not be null
- code can not change - once set, it's set
- code can not be an empty string
- OLMIS-1970: Add validations on updating processing periods
- It is not possible to modify any fields but name and description
- Skip lastEndDate validation if period already exists
- The Processing Period endpoints now include a schema
- OLMIS-1985: Add data validation to the PUT /facilities/{id} endpoint
- We do not allow saving with null supported programs
- We do not allow saving with an empty list of supported programs
- OLMIS-1965: Add validation for existing products that are not a commodity type
- OLMIS-2027: Create unit and integration tests for repository/service/controller methods added during reporting rate/timeliness report development
- OLMIS-2148,
OLMIS-633,
OLMIS-632,
OLMIS-629
Add new rights for stock manager role:
- STOCK_INVENTORIES_EDIT
- STOCK_ADJUST
- STOCK_CARDS_VIEW
- STOCK_SOURCES_MANAGE
- STOCK_DESTINATIONS_MANAGE
- STOCK_CARD_LINE_ITEM_REASONS_MANAGE
- STOCK_ORGANIZATIONS_MANAGE
Bug fixes, security and performance improvements, also backwards-compatible:
- OLMIS-1694: Remove Referencedata service to dependency to Auth service
- Removed calls to auth service in PUT /api/users
- The endpoints for changing and resetting password were removed from referencedata service. These were not included in RAML.
- OLMIS-1977: Fix sending reset password emails for new user.
- The user is now created even if there is a faliure sending notification email.
- OLMIS-2185: Attempt to create invalid user now results in a proper error message.
- The validations for User were added: The username, email, first and last names are required, the username and email have to be unique. The username cannot contain invalid characters (only letters, numbers, dashes and underscores are permitted).
- OLMIS-2130: Assign Stock Event Manage role to srmanager2
- OLMIS-1989: Assign Store Manager role to Administrator
- Released openlmis-referencedata 3.0.0 as part of openlmis-ref-distro 3.0.0. See 3.0.0 Release Notes.
- This was the first stable release of openlmis-referencedata. It builds on the code, patterns, and lessons learned from OpenLMIS 1 and 2.