Ramsons (2024 R2) release, see upgrade notes.
New features:
- RMB-993 Set db connection application_name for Postgres' pg_stat_activity
- RMB-994 Cache loading of schema.json in CQL2PgJSON
- RMB-997 Avoid left(...,600) for sqlExpression/sqlExpressionQuery
- RMB-998, RMB-1007 Upgrade dependencies for Ramsons; add license
- RMB-985 Avoid SET ROLE/SET SCHEMA in Shared Pool
- RMB-1000 Provide ObjectMapperTool.valueAsString
- RMB-975 Define DB_HOST_ASYNC_READER, DB_PORT_ASYNC_READER
- RMB-1003 Replace deprecated io.vertx.core.logging.Logger by org.apache.logging.log4j.Logger
- RMB-1008 Upgrade PostgreSQL from 12 to 16 for Ramsons
- RMB-360 db init without superuser/create rule/create schema privileges
Bug fixes:
- RMB-1005 Unset DB_ env fixing Failed to resolve 'myhost'
- RMB-1004 Recreate rmb_internal row
- Fix wrong urlEncode example code, use PercentCodec instead
- RMB-1001 API is unable to parse "" (empty string) as an optionally empty field
Bug fixes:
- RMB-943 Support deserialization of long to Date
Bug fixes:
- RMB-991 Vert.x 4.5.5 fixing PostgreSQL SSL/TLS/https hostname verification
- RMB-943 Some dates are not deserialized properly (year 0)
- RMB-992 Don't increment optimistic locking _version when updating non-jsonb columns
Quesnelia release, see upgrade notes.
New features:
- RMB-990 Quesnelia dependencies: Vert.x 4.5.4, jakarta.validation, …
Bug fixes:
- RMB-984 Rename TESTCONTAINERS_POSTGRES to TESTCONTAINERS_POSTGRES_IMAGE
- RMB-987 Put empty lines before and after snippet and snippetPath
- RMB-929 Use a case insensitive Map to merge headers in HttpModuleClient2
- RMB-989 Vert.x 4.4.7 fixing FastThreadLocal memory leak CVE-2024-1023
Bug fixes:
- RMB-981: maven-shade-plugin 3.5.1 and disabling reduced pom
- RMB-983: Vert.x 4.4.6 fixing netty-codec-http2 DoS (CVE-2023-44487)
New features:
- RMB-979: Poppy dependencies: Vert.x 4.4.5, log4j 2.20.0, ...
- RMB-978: TESTCONTAINERS_POSTGRES
- RMB-971: Update to Java 17
- RMB-973: If CQL is invalid PgUtil.getStream should log it
- CIRCSTORE-377: Set correct db search_path for tenant_module user
- RMB-970: Add PgExceptionFacade.isVersionConflict()
- RMB-938: Provide postgres-testing containers with read/write split
- RMB-966: sendResponse 204 with body: Content-Length/chunked error
- FOLIO-3678, RMB-964: Use GitHub Workflows api-lint and api-schema-lint and api-doc
- RMB-965: runSqlFile with failed Future on SQL failure
- RMB-962: Report missing snippetPath file in schema.json
- RMB-955: Set search_path when doing "SET ROLE" for shared pool conn
Bug fixes: See 3.0.1 ... 3.0.6.
Bug fixes:
- RMB-961 Vert.x 4.3.8, Micrometer 1.10.3
Bug fixes:
- RMB-957 "duplicate key" error on parallel CREATE EXTENSION
- RMB-959 UXPROD-3833: Logging adjustment (NFR) includeTimeMillis
- RMB-960 Upgrade dependencies: Vert.x 4.3.7, aspectj-maven-plugin 1.13.1, ...
Bug fixes:
- RMB-955 Set search_path when doing "SET ROLE" for shared pool connection
- RMB-944 Migration "ERROR: tuple concurrently updated" on DROP TRIGGER
- RMB-947 LocalRowSet for RowDesc from both 4.3.3 and 4.3.4
- RMB-952 Deprecate .impl.RowDesc usage in LocalRowDesc
- RMB-956 Upgrade to Vert.x 4.3.5
Bug fixes:
- RMB-948 jackson-databind 2.13.4.2 fixing DoS CVE-2022-42003
Bug fixes:
- RMB-949 Report PostgreSQL URI on timeout
Bug fixes:
- RMB-945 Vert.x 4.3.4, micrometer 1.9.4, log4j 2.19.0, okapi 4.14.5
New features:
- RMB-939 failOnConflictUnlessSuppressed for optimistic locking
- RMB-937 Fix previous version used for migration scripts
- RMB-348 Add support for database read/write splitting to RAML Module Builder
- RMB-926 Minimum PostgreSQL version: make configurable, fix int comp
Bug fixes:
- RMB-940 postgresql client 42.5.0 fixing SQL Injection CVE-2022-31197
- RMB-937 Fix previous version used for migration scripts
- RMB-931 Migrate date formatting in x_set_md and set_x_md_json
- RMB-934 Vert.x 4.3.3 fixing disabled SSL in 4.3.0/4.3.1
- RMB-933 exclude self reference elements from URI encoding
- RMB-932 Broken empty string matching: uuidfield == ""
- RMB-930 Upgrade git-commit-id-plugin for JDK 17
- RMB-927 http: Do not join response headers
- RMB-922 Migrate to case insensitive x-okapi-tenant header
Bug fix:
- RMB-931 Migrate date formatting in x_set_md and set_x_md_json
Bug fix:
- RMB-934 Vert.x 4.3.3 fixing disabled SSL in 4.3.0/4.3.1
New feature:
- RMB-926 Minimum PostgreSQL version: make configurable, fix int comparison
Documentation:
- RMB-922 Migrate to case insensitive x-okapi-tenant header
Breaking changes:
- RMB 817 Remove broken PostgresClient.get(String table, Object entity, ...) methods
- RMB-759 Consistent format for createdDate and updatedDate metadata
- RMB-815 Remove UtilityClassTester
- RMB-817 Remove broken PostgresClient.get(String table, Object entity, ...) methods
- RMB-883 Delete deprecated TenantLoading.addJsonIdContent, .addJsonIdBasename
- RMB-884 Delete deprecated RollBackURL
- RMB-885 Delete deprecated PostgresClient.get, .streamGet methods
- RMB-904 Remove unused object2Bytes, readURL, isValidURL in NetworkUtils
New features:
- RMB-546 Support TLS/SSL connections to Postgres
- RMB-547 PostgreSQL SSL CA Certificate configuration option
- RMB-817 Make maxFormAttributeSize configurable
- RMB-886 TenantLoading withPostIgnore(), no overwrite on upgrade
- RMB-887 deadlock in saveBatch, updateBatch, upsertBatch
- RMB-897 Use org.folio.okapi.common.XOkapiHeaders
- RMB-910 Replace JUL logging by log4j logging
Bug fixes:
- RMB-888 Log4j 2.15.0 fixing remote execution (CVE-2021-44228)
- RMB-889 Log4j 2.16.0 disabling JDNI and lookups (CVE-2021-44228)
- RMB-890 No context parameters logged
- RMB-891 Log4j 2.17.0 fixing self-referential lookups in MDC (CVE-2021-45105)
- RMB-893 Bump dependencies: Vert.x 4.2.3, log4j 2.17.1, etc.
- RMB-894 Exclude duplicate dependencies
- RMB-898 Update Vertx (to 4.2.5) and other dependencies
- RMB-901 Set reconnectAttempts and reconnectInterval for PgConnectOptions
- RMB-907 Vert.x 4.2.6, log4j 2.17.2, jackson-databind 2.13.2.1 (CVE-2020-36518)
- RMB-908 Skip indexes, foreign key, OL of deleted table
- RMB-909 Wording of warning about missing table configuration
- RMB-911 Optimistic locking _version overflow
- RMB-913 Fail if PostgreSQL version is too old
- RMB-914 Update raml-util to avoid localhost fetch RMB-914
- RMB-915 public PostgresClient#getTenantId()
- RMB-917 id == "", foreignKeyId == "" should never match
- RMB-918 Fix Jakarta Expression Language validation (CVE-2021-28170)
- RMB-919 Delete by CQL rejects missing or empty CQL
- RMB-920 Upgrade dependencies: Vert.x 4.3.1, ...
Fixes:
- RMB-872 Optimistic locking support for TenantLoading PUT
- RMB-877 Schema name can't replace in snippet (schema.json)
- RMB-881 Reduce logging level of loadDbSchema messages
- RMB-880 Update Vert.x from 4.1.4 to 4.2.1
- #989, #990: Updated most dependencies to latest version.
New features:
- RMB-664 One connection pool for all tenants
- RMB-718 totalRecords=none to avoid calling count_estimate()
Fix/feature:
- RMB-874 Update Vert.x to 4.1.4 and okapi-common to 4.9.0
Fixes:
- RMB-863 Free streamGet PreparedStatement fixing Aggressive DB Memory Consumption
- RMB-538 JSON validation: read-only sub-fields, translation code
- RMB-850 Fix sonarqube bugs + vulnerabilities + security hot spots
New features:
- RMB-403 The 422 message should be human readable (duplicate key, foreign key, invalid uuid, ...)
- RMB-868 PostgresClient.runSQL should append the database exception message
Documentation:
- RMB-852 Update documentation for domain-models-interface-extensions removal
- #965 AES.java: Fix README example, suppress algo warning, add tests
- #962 Explain optional fromModuleVersion
Fixes:
- RMB-589 Response With Schema Name For Some AdminAPIs
- RMB-628 PgUtil.put should find super.setId(String)
- RMB-859 Remove xerces:xmlParserAPIs dependency
- RMB-862 Update Vert.x to 4.1.2
- RMB-864 Ignore deleted index in schema.json
- RMB-865 Ensure that PgUtil returns 400 (not 500) on invalid CQL and 500 (not 400) on invalid table name
Fixes:
- RMB-858 HttpClientMock2 not enabled due to race condition
Fixes:
- RMB-854 Increase FORM_ATTRIBUTE_SIZE_MAX from 16384 to 32768
- RMB-851 Upgrade to final version of Vert.x 4.1.0
- RMB-849 Remove duplicate ModuleName class from domain-models-api-interfaces
Documentation:
- RMB-855 Mention that loading db conf from url was removed
- RMB-848 Always close PostgresTester on reuse (test, javadoc)
- RMB-853 ModuleName.getModuleVersion() replacing PomReader.INSTANCE.getVersion()
- RMB-852 Update documentation for domain-models-interface-extensions removal
Unlike pre4, this is using Vert.x 4.1.0.CR1. Use that version in your project or later veresion in 4.1.0-series.
Fixes:
- RMB-843 Use percent encoding, not url encoding, for HTTP requests
- RMB-844 Properly report POST tenant with null exception message
Other:
- RMB-847 Update to Vert.x 4.1.0CR1
- Use okapi-common 4.8.0
This is a bug fix release. Module must use Vert.x 4.1.0.Beta1.
Fixes:
- RMB-842 33.0.0-pre3 leaks SQL connections
Other:
- RMB-839 Upgrade to Vert.x 4.1.0.Beta1
This release fixes a serious problem with pre2 release (RMB-840). RMB is using Vert.x 4.0.3. Use same Vert.x version in module.
New feature:
- RMB-832 Implement upsert, updateBatch for optimistic locking
Fixes:
- RMB-840 IllegalStateException in handleClosed (ConnectionPool)
- RMB-838 Publish source jar and javadoc jar on repository.folio.org
- Bump jersey-media-json-jackson from 2.29.1 to 2.34 (CVE-2021-28168)
- RMB-837 Upgrade vertx-sql-client to v4.0.3-FOLIO
- RMB-834 Fix form key is lost for large value
- RMB-833 Update commons-io from 2.6 to 2.8.0
- RMB-831 raml plugin no generated clients
- RMB-830 foreign key non-alias sub-field - "missing FROM-clause"
Changes and improvements:
- RMB-826 Only use postgresTester (testContainers) on "empty" db configuration
- RMB-602 PostgresClient futurisation for Vert.x 4, Part 1
- RMB-814 PostgresClient futurisation for Vert.x 4, Part 2
- RMB-783 ClientGenerator futurisation for Vert.x 4
- RMB-789 Remove support of EmbeddedPostgres
- RMB-796 ClientGenerator: add new HttpClient constructor, explain "close"
- RMB-717 Deprecate HttpClientInterface, HttpModuleClient2, HttpClientMock2
- RMB-812 Make PostgresClientStreamResult public
Fixes:
- RMB-829 Suppress "Table audit_... NOT FOUND" in loadDbSchema()
- RMB-823 Update maven.indexdata.com url
- RMB-819 Atomic batch PostgresClient.execute with List
- RMB-810 domain-models-maven-plugin can not be resolved
- RMB-808 METHOD_URL of AnnotationGrabber should not be a "half" regular expression
- RMB-784 Reenable DB_CONNECTIONRELEASEDELAY
- RMB-586 == foreign key sub-field query causes "missing FROM-clause" error
Changes and improvements:
- RMB-785 Convert GenerateRunner into maven plugin
- RMB-800 Generated Client should not throw generic exception
Fixes:
Other:
- RMB-770 Add personal data disclosure form
- RMB-787 Document guidance on API and Schema versioning for OptimisticLocking
- RMB-793 Documentation updates / mention testing artifact
New API features:
- RMB-741 PostgresClient.withTransaction
- RMB-483 TestContainers instead of postgresql-embedded
- RMB-601 PgUtil futurisation for Vert.x 4
- RMB-806 TenantClient: async utility
Other changes:
* RMB-519 Default Accept: /, Content-Type: application/json
- RMB-768 Default log4j2 logging should be line based patternlayout * RMB-786 Change OL trigger notice level
Bugs fixed:
* RMB-799 Update Vert.x from 4.0.0 to 4.0.2
- RMB-788 invalid id for GET /_/tenant/id hangs * RMB-803 Fix URL encoding in BuildCQL preventing CQL injection
- RMB-782 Make postTenantSync public
- RMB-781 Mention raml-util update for RMB upgrade notes
- RMB-642 Remove JDBC driver, use vertx-pg-client for running migrations
- RMB-780 NPE in logs after migrating to RMB v32.0.0
New features (some of which are breaking changes):
- RMB-609 Update to Vert.x 4.0.0
- RMB-655 Add default metrics to RMB: Outgoing API calls
- RMB-669 Add default metrics to RMB: incoming API calls
- RMB-720 Replace DropWizard with Micrometer InfluxDB metrics options
- RMB-727 Implement support for optimistic locking
- RMB-754 Provide implementation for the async tenant API
- RMB-772 Persist tenant operation
- RMB-759 Consistent format for createdDate and updatedDate metadata
- RMB-389 PgUtil.delete by CQL
- RMB-388 PostgresClient.getById with transaction, with "SELECT … FOR UPDATE"
- RMB-735 Reject unsupported sort modifiers in getWithOptimizedSql
- RMB-736 Enable Prometheus support for micrometer metrics
- Use okapi-common 4.5.0 (which is also using Vert.x 4.0.0)
Fixes:
- RMB-744 Q2 to Q3 upgrade - "POST request for module_version /_/tenant failed with REVOKE ALL PRIVILEGES ON SCHEMA public FROM module_schema;"
- RMB-728 Unable to use 'var' keyword when a module uses aspects plugin
- RMB-699 Fix Module name detection broken
- RMB-684 Fix GET query returns no records when offset value > estimated totalRecords
- RMB-701 Update to Vert.x 3.9.2
- RMB-700 NPE when RestVerticle calls LogUtil.formatStatsLogMessage
- RMB-677 Close PostgreSQL connection after invalid CQL failure
- RMB-553 Add postSync to PgUtil
- RMB-697 Explain Vert.x 4 futurisation
- RMB-698 saveBatch and upsertBatch should create metadata
- RMB-703 Full text search doesn't match URLs containing &
- RMB-721 NPE in PomReader while PostgresClient.getInstance
- RMB-723 Close database connection after dropping schema and role
- RMB-702 {version} path variable no longer allowed in RAML
- RMB-704 RestVerticle "singleField" is nullable
- RMB-705 Refactor assertThrows lambda to have only one invocation throwing an exception
- RMB-706 Critical code smell constant name, hardcoded password and ip address
- RMB-707 Remove JwtUtils in favour of okapi-common's OkapiToken
- RMB-711 Remove Java 8 and Maven 3.3 check
- RMB-712 [Snyk] Update javax.validation:validation-api to 2.0.1.Final
- RMB-713 [Snyk] Update org.aspectj:aspectjrt to 1.9.6
- RMB-715 [Snyk] Update commons-cli from 1.3.1 to 1.4
- RMB-716 [Snyk] Update javaparser-core from 3.3.0 to 3.16.1
- RMB-714 Remove unused aws-lambda-java-core dependency
- RMB-725 StringUtil.cqlEncode masking CQL characters preventing CQL injection
- RMB-328 Make RMB OpenJDK 11 compliant
- RMB-694 Upgrade foreign key of a sub-field like "fieldName": "foo.bar"
- RMB-693 Close prepared statements in PostgresClient stream get
- RMB-686 Fix documentation about postTenant error handling
- RMB-687 ResponseException for TenantAPI, fix wrong postTenant HTTP status code
- Drop obsolete rmb_internal_index
- RMB-675 Move pg_trgm from wrong to public schema, don't drop & recreate
- RMB-673 totalRecords returns exact hit count for limit=0
- RMB-670 Fix RestVerticle requestId logging, replace log4j 1.2 MDC by log4j 2 ThreadContext
- RMB-671 Reinstall PostgreSQL extensions on upgrade, drop pg_catalog.pg_trgm
- RMB-657 Default 60s connectionReleaseDelay prevents streaming large data
- RMB-656 NPE at startup when an OPTIONS endpoint is defined in RAML
- RMB-662 Remove parseDatabaseSchemaString and org.json:json
- RMB-660 com.thoughtworks.xstream vulnerability (CVE-2017-7957)
- RMB-661 Update log4j to 2.13.3 fixing SMTPS host mismatch (CVE-2020-9488)
RMB 30.0 and 30.1 are discontinued. Only RMB >= 30.2 will receive bug and security fixes.
- RMB-653 Urldecode path parameters like /perms/users/12%2334
- RMB-649 Remove duplicate foreign key constraints for unchanged tables
Note error message regression: RMB-652 "may not be null" changed to "must not be null" (hibernate-validator)
- RMB-648 org.hibernate:hibernate-validator vulnerability
- RMB-649 Remove duplicate foreign key constraints for unchanged tables
- RMB-650 Client generator should support Date query parameter
- RMB-645 Use where-only clause for the "count query"
- RMB-643 Support generating wrapped native types
- RMB-640 Sortby title and limit=0 gives zero hits
- RMB-639 Unexpected breaking changes streamGet and getWithOptimizedSql
- RMB-638 Revert PgUtil.streamGet parameter reordering
- RMB-636 Support PATCH requests
- RMB-634 PostgresClient does not provide access to db connection configs
- RMB-626 Remove sample, sample2
- RMB-615 Cancel queries that take longer than limit
- RMB-555 Upgrade creates duplicate foreign key constraints
- RMB-495 Date types of query parameters do not work correctly
- RMB-632 Tenant upgrade fails on foreignKey targetPath
- RMB-634 PostgresClient does not provide access to db connection configs
- RMB-637 Run ANALYZE after index (re-)creation
- RMB-627 Generate valid SQL for index with "stringType" false
- RMB-525 Removes drools validation
- RMB-625 Remove PostgresRunner; not in use anywhere
- RMB-624 GenerateRunner/SchemaDereferencer fails with InvocationTargetException/DecodeException "Failed to decode"
- Upgrade to Vert.x 3.9.1. Release Notes and Deprecations and breaking changes
- RMB-629 Fix null pointer exception in deserializeRow
- Various fixes and clean up to upgrading notes
See upgrade notes
- RMB-552 smart index recreation on module upgrade
- RMB-583 move f_unaccent and concat* from public to schema, fix search_path
- RMB-164 Incorrect moduleVersion and rmbVersion in rmb_internal table
- RMB-491 Migrate deprecated/removed Future calls in preparation for vert.x4 migration
- RMB-575 Add "sqlExpressionQuery" parameter
- RMB-587 Do not use public schema, remove it from search_path
- RMB-588 investigate wrong value passed from "module_from" to ${version}
- RMB-594 Random and changing order of GenerateRunner class generation
- RMB-565 Review if all CQL to SQL generation code is using masking
- RMB-590 Persist schema.json in rmb_internal
- RMB-591 Remove or harmonize 'optimizedSql' execution path
- RMB-580 Unit tests in Jenkins fail which seem related to streamGet
- RMB-605 Combining characters (diacritics, umlauts) not found
- RMB-606 HridSettingsIncreaseMaxValueMigrationTest has stopped working
- RMB-607
${myuniversity}_${mymodule}.gin_trgm_ops
- RMB-612 PostgresClientIT can not be executed in isolation
- RMB-246 migrate to reactive postgres client (vertx-pg-client)
- RMB-600 PostgresClient.upsertBatch
- RMB-619 Update Vert.x to 3.9.0
- RMB-622 PgExceptionUtil.getMessage: Compose a message of all PgException fields.
- RMB-569 Drop fromModuleVersion and tOps from table section, use schema.json comparison instead
- RMB-610 Remove JobAPI code
- RMB-616 Update readme to specify permissionsRequired
- RMB-620 Configure idle timeout with connectionReleaseDelay
- RMB-499 add "normalizeDigits" function
- RMB-500 PostgresClient.streamGet with total hits and error handling
- RMB-549 Mismatch lower() for compound index
- RMB-559 Add stream get utility that produces HTTP result
- RMB-560 Upgrade vert.x from 3.8.4 to 3.8.5 fixing CompositeFuture
- RMB-563 SQL injection in PostgresClient.update by id
- RMB-562 Switch back to upstream vertx-mysql-postgresql-client
- RMB-568 Add JSON object array helper functions
- RMB-498 Truncate b-tree string for 2712 index row size
- RMB-533 Performance: Fix lower/f_unaccent usage by checking all 5 index types
- RMB-532 Criterion get does not select id (only jsonb)
- RMB-536 Missing f_unaccent for compound fields full text index
- RMB-537 f_unaccent single quote fullText tsquery sql injection
- RMB-540 Unique index must not truncate for 2712 max index byte size
- RMB-542 Implement streamGet with CQLWrapper as parameter
- RMB-541 contributors and identifiers search perf regression with RMB 29.1.3/29.1.4
- RMB-529 Upgrade Vert.x 3.8.4 fixing Netty HTTP request smuggling
- RMB-471 Fix ddlgen/Index.java StringBuilder code smells
- RMB-486 Use indexed id fields in foreign tables, such as
holdingsRecords.permanentLocationId==abc*
from mod-inventory-storage - RMB-487 support also field[*] notation
- RMB-404 Use org.folio.okapi.common.SemVer rather than copying Apache Maven code
- RMB-506 Estimate hit counts
- RMB-522 TenantLoading in sequence - rather than parallel
- RMB-523 TenantLoading Retry with 422 for PUT/POST attempt
- RMB-524 TenantLoading does not work on Windows (path problem)
- RMB-528 schema.json's fromModuleVersion messy and buggy
- Update jackson to 2.10.1
- RMB-518 Extract index2sqlText and index2sqlJson for reuse
- RMB-516 Rename Cql2SqlUtil.hasCqlWildCardd to hasCqlWildCard
- RMB-514 Update to aspectj 1.9.4 and aspectj-maven-plugin 1.11
- RMB-511 Use log4js MDC class, rather than slf4j
- RMB-510 Breaking change: POST /_/tenant requires JSON body with module_to
- RMB-509 POST /_/tenant returns invalid JSON: "[ ]"
- RMB-508 Integration tests for /_/tenant with X-Okapi-Request-Id
- RMB-507 TenantAPI POST NullPointerException if tenant already exists
- RMB-497 Replace JSQL parser by using SqlSelect from CQL2PgJSON
- RMB-504 Jackson-* version 2.10.0, fixes jackson-databind security
- RMB-474 Support 'field[*].subfield' syntax in multiFieldNames
- Mention Vert.x 3.8 Future/Premise changes in upgrading.md
- Fix upgrading wording for fullText defaultDictionary
- RMB-433 Fix saveBatch must not overwrite existing id
- RMB-492 Remove unnecessary JSQLParserException error log if query
- RMB-493 Fix CQLWrapper.addWrapper not left associative as it should be was parsed successfully
- RMB-496 connectionReleaseDelay: Use 1 minute as default, add config
- RMB-485: RMB modules leak PostgreSQLConnection objects
- RMB-476: PgUtil.post: Return after-trigger value (INSERT ... RETURNING jsonb)
- RMB-482: Dropwizard metrics disabling
- RMB-427: StatsTracker not being synchronized can fail PostgresClient operations when run in parallel
- RMB-469: "multiFieldNames": "firstName , lastName" fails on spaces around the comma
- RMB-470: "multiFieldNames" fail on nested fields (subfields) like proxy.personal.firstName
- RMB-462: fullText / defaultDictionary not used in queries
- RMB-478 RMB echoes all headers
See also 27.1 upgrading instructions.
- RMB-444 Documentation: Name of generated .java files (resource, model)
- RMB-385 add 'queryIndexName' to schema.json and allow compound indexes
- RMB-421 422 JSON error message for PgUtil
- RMB-457 option to enable: analyze explain queries
- RMB-466 drop CQL2PgJSON view constructor
- RMB-464 Upgrade to Vert.x 3.8.1
- RMB-468 Foreign key field index
- RMB-477 jackson-databind 2.9.10 fix CVE-2019-16335, CVE-2019-14540
Breaking changes:
- RMB-451 add "targetPath" to disambiguate multi-table joins
- RMB-452 make tableAlias and targetTableAlias explicit properties
- RMB-318 Database config: Drop deprecated dot (db.port) variables, use underscore (DB_PORT)
- RMB-460 Add 'snippetPath' to 'scripts' in schema.json
- RMB-445 rename HttpStatus.HTTP_VALIDATION_ERROR to HttpStatus.HTTP_UNPROCESSABLE_ENTITY for 422
Bug fixes, new features:
- RMB-200 Single quote SQL Injection in PostgresClient.update(table, updateSection, ...)
- RMB-459 Populate metadata for reference data/sample data
- RMB-460 Add 'snippetPath' to 'scripts' in schema.json
- RMB-438 contributor search returns no results when name contains "-"
- RMB-432 fulltext: word splitting and punctuation removal
- RMB-443 HttpStatus.java: Explain FOLIO's 400 and 422 status code usage
- RMB-442 Fix security vulnerabilities reported in jackson-databind >= 2.0.0, < 2.9.9.2
- RMB-440 Skip logging GIN index missing if b-tree index can be used
- RMB-439 Remove "-" token for full search to unblock CIRCSTORE-138
- RMB-437 Fix queries with facet fail
- RMB-436 Log both CQL and SQL within the missing index line
- RMB-435 CVE-2019-12814 jackson-databind security vulnerability
- RMB-411 Implement poLine.id = * style cql for subquery
- RMB-395 Aupport nested sub queries across multiple tables
- RMB-430 Audit table PK (id) unique constraint violation on concurrent queries
- RMB-417 Optimize search for array relation modifiers
- RMB-422 Fix Invalid SQL for array modifiers
- RMB-426 Consider also arraySubfield as relation modifier (with or without value)
- RMB-429 Fix fulltext mismatch WRT accents. Note that this affects schema generation, so tenant data should be re-generated to ensure good performance.
- RMB-419 Fix syntax error at or near "." because table name is reserved word
- #460 Bug fix: Reject foreign table processing if current table is unknown
- #462 Bug fix: Do auditingSnippet null tests separately for declare and statement
- RMB-380 RMB-416 RMB-418 CQL extension: Implement /@ modifier for searching array-of-objects fields.
- RMB-387 RMB-391 CQL extension: Implement foreign key joins (two tables).
- RMB-397 Bug fix: Regression with $ref paths
- RMB-400 Bug fix: PgUtil should return 400 (not 500) on invalid UUID id
- RMB-401 Bug fix: PgUtil.post: Object or POJO type for entity parameter of respond201WithApplicationJson
- RMB-402 RMB-414: Major change: Restructured audit (history) table
- RMB-405 Bug fix: PostgresClient.save: Create random UUID if id is missing
There are several breaking changes, see upgrading instructions.
- RMB-199 Fixed Single quote SQL Injection in
PostgresClient.delete(table, pojo, handler)
- RMB-376 Merge CQL2PG into RMB. Project cql2pgjson-java is now a subject part of RMB. This should not impact users of RMB.
- RMB-379 Remove
Critiera.setValue
and replace it withCriteria.setVal
to fix wrong Criteria value masking results in SQL Injection. This is major change. - RMB-125 Fix no way to indicate a removal of the metadata trigger in the schema.json
- RMB-277 Always 'id' for primary key name, drop configuration option. This is a major change.
- RMB-346 Drop the
populateJsonWithId
option. This is a major change. - RMB-347 Remove
gen_random_uuid()
as it fails in replication environments. ThegenerateId
option is removed from schema.json. This is major change. - RMB-375 Fix AnnotationGrabberTest not executed
- RMB-377 jackson-databind 2.9.9: Block one more gadget type (CVE-2019-12086)
- RMB-378 Update jersey to 2.28, fixing security issues
- RMB-383
PgUtil.deleteById
: make it return 400 on foreign key violation - RMB-384 Fix Generated models might have "readOnly" properties which are not in schema.
- RMB-392 Move CQL2PgJSON.java from
org.z3950.zing.cql.cql2pgjson
toorg.folio.cql2pgjson
package . This is major change. - RMB-396 mask ) ] } in regexp to prevent SQL injection
- RMB-368 Update RMB for non-schema usage and CQLPG-90 CQL2PgJSON constructors removed:
CQL2PgJSON(Map<String,String> fieldsAndSchemaJsons)
CQL2PgJSON(String field, String schemaJson)
CQL2PgJSON(Map<String,String> fieldsAndSchemaJsons, List<String> serverChoiceIndexes)
Public Criteria removes:
Criteria(String schema)
boolean isJSONB()
String getArrayField()
void setArrayField(String arrayField)
String getForceCast()
Criteria setForceCast(String forceCast)
- PostgresClient.streamGet: use Void for stream async result handler
- RMB-357 Increase code coverage of PostgresClient
- RMB-352 Increase code coverage of PgUtil
- RMB-350 PgUtilIT not tested
- RMB-331 Tenant upgrade failed if older version has no db schema
- RMB-335 Signal stream closed (prematurely)
- RMB-343 Get rid of " WARNING Problem parsing x-okapi-token header" message
- RMB-345 Document TenantLoading and proper behavior of CRUD services
- RMB-349 Do not spawn postgres-runner when using -Dmaven.test.skip=true
- RMB-351 Enable Junit4 + Junit5 and make it work in Eclipse
- RMB-354 Add PostgresClient.saveBatch variant with SQLConnection parameter
- RMB-355 Facets broken in RMB 22 (and later)
- RMB-342 TenantLoading / empty list for empty directory
- RMB-341 Log CQL and generated SQL WHERE clause together
- RMB-339/RMB-340 More facilities for TenantLoading
- RMB-334 Add option to generate toString, hashCode and equals methods in generated classes
- Enable JUnit5 in Eclipse
- Minimum Java version runtime check
- RMB-338 TenantLoading: allow property of JSON Object to be set
- Generated HTTP client now sets X-Okapi-Url header
- TenantLoading: handle null TenantAttributes
- RMB-337 Extend TenangLoading API
- RMB-324 Fix No Content-Type for most errors returned by RMB
- RMB-325 Make /_/jsonSchemas to return schemas from subfolders
- RMB-326 Fix Upload: complete state set before end-of-stream
- Document headers streamed_id and complete
- RMB-304 PostgresClient.get(txConn, sql, params, replyHandler) for SELECT in a transaction
- RMB-305 Add support for DISTINCT ON
- RMB-310 XML handling different when going to RAML 1.0 / RMB 20+
- RMB-312 Integration tests fails: too many open files
- RMB-313 NullPointerException PostgresClientIT.tearDownClass on Windows
- RMB-315 Fix security vulnerabilities in jackson-databind >= 2.9.0, < 2.9.8
- RMB-322 Add offset and limit getter in CQLWrapper
- RMB-162 Simplify PostgresClient.getInstance
- RMB-185 Nicer constructor for the CQLWrapper
- RMB-288 StorageHelper post put deleteById getById
- RMB-293 executeTransParamSyntaxError: IllegalStateException: Test already completed
- RMB-308 enum values not matched
- RMB-311 Validation of URI parameters
- Update to cql2pgjson 3.0.3
- RMB-296 Tenant init for loading reference data
- RMB-299 simplify embedded postgres start
- RMB-300 Optional leading slash for ResourceUtil::asString
- RMB-303 Remove org.junit.Assert dependency from UtilityClassTester
- RMB-306 Add support for application/vnd.api+json content type for POST requests
- RMB-307 Type check for query parameters broken
- RMB-297 Several connection.close() missing - totalCount calculation hangs after 5-12 errors.
- RMB-282 Use description fields in RAML JSON schemas.
- RMB-290 Document why environment variables with dots/periods are deprecated.
- RMB-291 Exclude android, fix jzlib compression bug.
- RMB-292 Enable compression of HTTP traffic in RestVerticle.
- RMB-294 Broken maven-surefire-plugin.
- RMB-295 Fix broken link to schema.json.example.json.
- RMB-284 id="foo*" search results in QueryValidationException: CQL: Invalid UUID foo*.
- RMB-18 The "local apidocs" for "admin" and "jobs" has extra "/v1/" in path.
- RMB-275 Windows backslash: Illegal character in opaque part at index 7: file:C:\Users...
- RMB-279 Fix false positive password vulnerability warning (sonarqube/sonarlint).
- RMB-280 Provide a POM snippet to configure local apidocs.
- RMB-281 Update vert.x libraries to fix security vulnerabilities (CVE-2018-12537)
- RMB-255 Add streaming support to RMB.
- RMB-265 Allow recursion in JSON schema references (loops).
- RMB-274 Implement PostgresClient::save(sqlConnection, table, id, entity, replyHandler).
- RMB-273 CQL2PG v3.0.1: Fix validating of array field names.
- RMB-272 Update cql2pg-json to version 3.0.0:
- CQLPG-63 Drop field name to full field path resolution. This is a breaking change, using the unambiguous suffix "email" no longer resolves to "personal.email".
- CQLPG-61 Equals empty is not same as equals star. Matching "*" means all records, matching "" means all records where that field is defined. This is a breaking change.
- CQLPG-58 Performance: Convert id searches using '=' or '==' into primary key _id searches. This is a breaking change because it restricts the operators allowed for id and assumes that id is a UUID.
- RMB-271 Also accept windows \r\n line endings in unit test.
- RMB-256 Unit tests for PostgresClient.doGet.
- RMB-257 Unit tests for PostgresClient.processResult.
- RMB-289 private class TotaledResults: total needs to be Integer to afford null.
- RMB-268 Remove finished MD creation code.
- RMB-261 Skip all tests in PostgresClientIT on Windows.
- RMB-262 Disable warning "Overriding managed version 3.5.1 for vertx-mysql-postgresql-client.
- RMB-243 Add PostgresClient.execute(...) with SQL placeholders/parameters.
- RMB-258 Drop IOException of ResourceUtils.resource2String.
- RMB-230, RMB-254 PostgresClient: init moduleName, add getTenantId() and getSchemaName().
- RMB-266 Fix path parameters reversed when calling handler
- RMB-259 Windows compile failure - schema files.
- RMB-251 Add tests for missign query returns 500 Internal Error.
- RMB-250 Fix fulltext search: stop words, trailing space and *.
- RMB-249 Default to the 'simple' directory for fulltext searches.
- RMB-245 Fix Invalid path for client generator
- RMB-213 Commence doc directory, move upgrading notes, tidy for RMBv20+
- RMB-237 Do we need to bundle twitter.raml, github.raml, .. in fat jar?
- RMB-238 Extend PostgresClient.getById with POJO (change of API)
- RMB-239 Fix apidocs of RMB does not support RAML 1.0
- RMB-221 Single quote SQL Injection in PostgresClient.saveBatch(table, list, handler)
- RMB-231 Errors in mod-inventory-storage when upgrading RMB from 19.1.5 to 19.3.1
- RMB-1 Specifying a RAML that only uses GET fails with RMB
- RMB-44 use generics for PostgresClient.get(...) and .join(...)
- RMB-109 RAML 1.0 support: use raml-for-jax-rs rather than obsolete raml-jaxrs-codegen
- RMB-149 Security update PostgreSQL 10.3 CVE-2018-1058 search_path
- RMB-174 mvn install leaves a postgres process running
- RMB-186 HTTP_ACCEPTED = 202, HTTP_OK = 200
- RMB-191 Reenable JUnit 5
- RMB-192 Add AdminAPI.postAdminImportSQL error reporting
- RMB-193 Add RestVerticle stacktrace error reporting
- RMB-195 Stacktrace logging on exception in AdminAPI
- RMB-202 Create small RMB example
- RMB-203 $ref should follow the JSON schema spec
- RMB-206 Add PostgresClient.getById
- RMB-207 Upgrade to maven-compiler-plugin 3.8.0
- RMB-225 PostgresClient: Replace "Object conn" by "Future conn"
- RMB-227 raml-cop rejects jobs.raml of RMB
- RMB-229 PostgresClientTransactionsIT hangs on old database
- RMB-234 Do NOT create tsvector indexes with lowercase/unaccent
- Fix regression caused by RMB-176
- RMB-176 Support index for multiple properties in declarative schema
- RMB-179 net.sf.jsqlparser does not support "IS TRUE" and "a@>b"
- RMB-178 parseQuery throws StackOverflowError for deeply nested SQL query
- RMB-181 Rewrite getLastStartPos for reducing stack size
- RMB-154 Investigate postgresql connection pool
- RMB-167 consistently use runOnContext for DB operations
- RMB-172 add /admin api to drop , create indexes per module
- RMB-168 PostgresClient makes a wrong callback
- RMB-163 Fail to find API implementation due to subtle class loading order difference
- RMB-166 Reduce stack size for SQL queries
- RMB-136: Default paging in storage modules prevents operations on entire contents
- RMB-138: SchemaDereferencer: Support name to name.schema resolution
- RMB-143: Version update: vertx 3.5.1, jackson 2.9.4
- RMB-144: Security update PostgreSQL 10.2
- RMB-146: Add support for faceting on fields in arrays
- RMB-148: Configure implementation specific paging limits per endpoint
- RMB-150: High number of facets seems to cause error
- RMB-151: AspectJ not running when recompiling
- RMB-152:
/_/tenant
DELETE: consider to use 4xx over 500 if tenant does not exist - RMB-153: Add folio/util/StringUtil.urlencode(String)
- RMB-156: Allow saving base64 encoded data as a jsonarray
- RMB-157: Helper for error handling
- RMB-160: allow registering a custom deserializer to the static object mapper
- FOLIO-1202: improve README raml section
- FOLIO-1179: Fix dev URLs
- FOLIO-1187: Add lint-raml-cop.sh
-
RMB-140: Move to v19, 18.0.1 requires entry in pom
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <id>add-raml-jaxrs-source</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${project.build.directory}/generated-sources/raml-jaxrs</source> </sources> </configuration> </execution> </executions> </plugin>
- RMB-130: Use target/generated-sources for generated code
- RMB-135: Parse version from Module ID in
module_{from,to}
- RMB-137: Move JsonPathParser.main() to JsonPathParserTest; use JUnit
- RMB-139: Add transaction support for get() and delete()
- RMB-133: start, rollback and end transactions should use a handler of type
handler<asyncresult<object>>
- RMB-132: Allow update() method to be called within a transaction.
- RMB-131: PostgresClient: asynchronous functions must not throw exceptions
- RMB-128: Upgrade to postgres v10
- RMB-119: CQL's default relation "=" now uses "adj" relation for strings (was "all")
- CQLPG-30, CQLPG-31: Fix number handling in CQL queries
- RMB-124: Lift time limit of PostgresClientMultiVertxIT
- RMB-122: Setting caseSensitive= true, removeAccents = false in regular index declaration corrupts generated schema
- RMB-121: mod-configuration doesn't build with Postgres 10
- RMB-120: README should suggest to use UUID, not SERIAL
- RMB-119: CQL's default relation "=" should use "adj" for a string
- RMB-118: add a
/admin/db_maintenance
api - RMB-115: jaxrs test cleanup results in compile failure
- RMB-114: Security update postgres-embedded:2.6
- RMB-113: Dereference raml-util if ramls directory does not exist
- RMB-112: Use logger rather than standard output/standard error
- RMB-104: optimize join views + add support for more than 2 tables
- RMB-98: Foreign key trigger created in public schema and not in tenant's schema
- RMB-103: Schema dereferencing requires a ramls/ directory with the raml and schema files.
- RMB-106: Set Locale.US, use Logger, split into separate tests.
- importSQL tenant sensitive
- RMB-110: Lift time limit in PostgresClientIT.parallel(...)
- hack to handle simple text response for rmb http client
- ResourceUtil.asString(...): more documentation, more options
- CQLPG-29 "sortBy field" sorts by null (cql2pgjson:1.3.3)
- RMB-94: "readonly" fields should be ignored
- MODINVSTOR-38: Fix number in string by updating cql2pgjson to 1.3.2
- UICHKOUT-39: Update cql2pgjson to v1.3.1 fixing number handling
- RMB-56 add SchemaDereferencer that replaces "$ref" in raml files
- RMB-82 additional / optimize counting of results via postgresClient
- RMB-84 fix facet mechanism to use new counting RMB-82
- RMB-88 optimize facet query
- RMB-91 Remove case insensitive support and use generic ->'' operator
- RMB-89 Performance checklist - various performance issues
- RMB-99 sql EXPLAIN returns very in-accurate counts on a view , OR queries
- RMB-77 fix documentation for declaration of json schema
- RMB-64
- RMB-63
- RMB-66
- RMB-70
- RMB-71 move rmb to log4j with proper log patterns
- RMB-73
- RMB-77
- Support regular BTree indexes
- RMB-61 move sql templates into rmb (break backwards compatibility for implementing modules using the sql scripts to generate a DB schema on tenant creation / update / delete)
- RMB-59 implement faceting framework (breaks backwards compatibility - postgresClient's get() now returns a org.folio.rest.persist.interfaces.Result object and not an Object[])
- RMB-51 add read only field usage
- RMB-57 Add upsert support to rmb db client
- RMB-52 Change name of expected metadata property (breaks backwards compatibility)
- RMB-60 Mark vertx-unit to compile scope (breaking change for modules that use the vertx-unit packaged in RMB)
- RMB-48 implement handling of meta-data section in RMB
- FOLIO-727 Support multi-field queries in CQL2PgJSON (upgraded CQL2PgJSON for this functionality)
- RMB-46 RMB's http client caches requests by default
- RMB-42 Generated clients populate Authorization header with okapi tenant
- RMB-34 Validation response does not include content-type header
- FOLIO-693 document HTTP status codes
- DMOD-164 unit tests for Tenant API
- FOLIO-685 explore auto-generation of fakes (mocks) for module testing
- RMB-32 fix JSON encoding of String in UpdateSection
- RMB-40 submodule util with ResourceUtil.asString(...), IOUtil.toUTF8String(InputStream)
- RMB-36 fix PostgresClient.runSQLFile(...) when last sql statement does not end with ;
- RMB-31 Foreign key documentation and performance test
- RMB-38 PostgresClient on 2nd vertx throws RejectedExecutionException
- Support cross module join functionality - see MODUSERBL-7
- v1.23 of embedded postgres fails to start on windows - upgrade to v2.2 RMB-25
- Split PostgresClient RMB-10
- getting module name from pom error RMB-28
- tenant api - unit tests and code cleanup RMB-3
- Provide UtilityClassTester
- includes trait added to raml-util
- raml-util updated
- Support passing List to implementing function when query param is repeated in query string
- When additionalProperties is set to false return a 422 RMB-16
- When additionalProperties is set to false, getting old db objects are ignored but count remains RMB-22
- Requests to /admin/health require X-Okapi-Tenant RMB-24
- HTTP Join functionality across modules
- Not passing x-okapi-tenant returns 400
- Criteria auto type detection for single quoted strings
- Criteria accepts schema for validation + tests
- Fix embedded-postgres cleanup causing unit test failure RMB-23
- Date format of JSONs is saved as yyyy-MM-dd'T'HH:mm:ss.SSSZ
- HTTP Join functionality across modules
- Allow indicating package to log in debug mode via command line: debug_log_package=[, a.b., a.b.c] RMB-13
- Preserve exceptions in reply handler RMB-15
- Cross module http join: many to many, one to many support
- Non-snapshot version.