2022.3 allows users to request a password reset (when server is configured with SMTP) and introduces new constraints on text values to be stored in the database (see Validation below).

New features and API updates:

  • Password reset API (requires SMTP configuration)
  • @SimpleString validation

Improvements and bug fixes:

  • Added removing crop species endpoint
  • Added Security Action for Crop
  • TaxonomyGenus: Load TaxonomyFamily (as requested by our friends in Palmira)
  • Application startup fixes
  • Pageable default page size
  • Fixed support#141 (@achan), support#140 (@achan)

Database changes:

  • Added Easy-SMTA PID to Cooperator

@SimpleString validation

This update prevents users from entering text that is expected to be "clean". A clean text string does not contain consecutive whitespaces, does not have spaces at the start or end of text, and also does not contain CR (carriage-return) or LF (line-feed) characters:

  • Text must be trimmed: no whitespace before or at the end of the string
  • No double-whitespace allowed: text GRU 123 with two space characters is considered invalid
  • No line-break characters allowed: text must not include carriage return (\r) or line feed (\n) characters

This is applied to select fields in Accession, Inventory and Cooperator. See 78842eef for details.

What does this mean for me: The server will reject all texts that are considered invalid according to this this scheme. Users of GGCE UI will be prompted that their input is invalid.

Default page size for API endpoints

427cbca4 introduces API-wide limits on the maximum records that can be requested in one API call.

The maximum number of records returned in a single API call is limited by MAX_PAGE_SIZE = 200 and the default number of records the server will return if the client does not specify the page size is set to DEFAULT_PAGE_SIZE = 50.

What does this mean for me: Not much, really. GGCE UI already loads records on demand and respects defaults provided by the GGCE server. Your custom code must support pagination and must not rely on loading large pages of data in a single API call.


  • de5f1ab4 Fixed code_value_lang.txt rows
  • 100b7dee Bug: Fixed issue where SysTable#tableFields list contains a null element
  • 69f86899 PDF: Accept entity IDs as request body, not over querystring
  • 427cbca4 Pageable default page size
  • c43e5090 Application startup fixes
  • 54b76803 SMTP: Mail sender is null when mail.host is blank
  • 35a1a5ff SMTP: Added smtpEnabled variable to status API
  • 9c4509b7 TaxonomyGenus: Eager load TaxonomyFamily
  • ce7694fc GZIP: Enable gzip filter
  • 2050c5b7 Serializable: Added serialVersionUID to Filters
  • 9aa76f45 Cleanup: Removed unused imports
  • 514a314e Using String for SecuredAction
  • 514b2e66 Updated adding inventory actions
  • bfe72191 Password reset API
  • 8c8bc8a2 Added Security Action for Crop
  • f63ef8f9 Added removing crop species endpoint
  • 78842eef @SimpleString validation
  • 424f4ac4 Added PID to Cooperator