All Versions
17
Latest Version
Avg Release Cycle
82 days
Latest Release
137 days ago

Changelog History
Page 1

  • v5.3.2 Changes

    May 12, 2022

    โž• Added

    • ๐Ÿ”Œ Pluggable exporters for CRUD.
    • Configuration abstraction, integrated with Spring's Environment (which includes application.properties in Spring Boot).

    ๐Ÿ”„ Changed

    • Refactored the CRUD's JSON output logic into a separate exporter class. This is a breaking API change for CRUD extensions overriding jsonXYZData methods.
    • 0๏ธโƒฃ In Spring Boot applications, when using Jersey (the default), allow Portofino actions to coexist with Boot services such as actuators.

    ๐Ÿ›  Fixed

    • Multiple issues with the Spring Boot-based archetypes, including but not limited to:
      • Application generated from Java service archetype searches for action classes in src/main/resources/portofino
      • Unsupported CORS with service archetypes. By default, archetypes will use an embedded Tomcat instead of Undertow for the time being (startup is slower)
      • Misleading Java service archetype SpringConfiguration.java
  • v5.3.1 Changes

    March 10, 2022

    โž• Added

    • ๐Ÿ‘Œ Support building on Java 17
    • Generic CRUD page upstairs
    • ๐Ÿ‘ Allow resource-actions to return synthetic resource-actions without any file object
    • ๐Ÿ”ง Configurable API path with Spring Boot
    • Include sample GitHub action in archetypes
    • AWS S3 blob manager
    • ๐Ÿ”ง Ability to disable a database connection with an annotation (adapted from Portofino 4 which uses a configuration property instead)

    ๐Ÿ”„ Changed

    • โšก๏ธ Updated Angular libraries and material icons package
    • โšก๏ธ Updated several Java libraries to fix vulnerabilities. Note that all the Portofino versions in the last decade (4.x and 5.x) do NOT suffer from log4shell because they don't use Log4j (unless you explicitly replace Logback with Log4j in your project, of course).

    ๐Ÿ›  Fixed

    • ๐Ÿ”’ Refreshing the UI's security token when the app is starting
    • Validation issues during insertion float/double numbers in Postgres #471
    • Several issues with the Maven archetypes
  • v5.3.0 Changes

    September 13, 2021

    โž• Added

    • ๐Ÿš€ Microservice deployment options using Spring Boot.
    • ๐Ÿ‘ท Easier Quartz job registration using Spring beans.
    • Email microservice.
    • โฑ Quartz scheduler microservice.
    • ๐Ÿ”’ Possibility to exclude Shiro-based security from the application (and implement security using other libraries).
    • ๐Ÿ‘Œ Support for multi-tenancy in Hibernate.

    ๐Ÿ”„ Changed

    • ๐Ÿ›  Authentication/authorization endpoint is now fixed (/:auth) and forwards to the login action. This makes life a little easier for clients.
    • Simplify initialization by removing PortofinoListener.
    • URL to trigger mail sender changed from /actions/mail-sender-run to /portofino-send-mail and HTTP method changed from GET to POST.
    • Mail sender action can be disabled with mail.sender.action.enabled=false.
    • Ensured that Java-only microservices without Groovy are possible.
    • โšก๏ธ Optimized selection providers based on foreign keys on save.
    • โฌ‡๏ธ Reduce assumptions on persistent entities by CRUD actions allowing more possibilities for custom entities.
    • โšก๏ธ Liquibase updated to version 4, minor library updates to fix vulnerabilities.
  • v5.2.1 Changes

    April 10, 2020

    โž• Added

    • Possibility to reorder table columns in the tables section upstairs.

    ๐Ÿ”„ Changed

    • 0๏ธโƒฃ Render internal links in text pages with no target attribute (that the Quill editor adds by default).
    • The welcome page is now a standard text page.
    • ๐Ÿ”’ Security.groovy can now have user beans injected with @Autowired.

    ๐Ÿ›  Fixed

    • ๐Ÿ”’ Important security vulnerability that may have allowed access with forged tokens.
    • Authentication token refresh after expiration. #430
    • โช Backwards compatibility: revert T extends Serializable in CRUD actions, introduced in v5.2.0. #428
  • v5.2.0 Changes

    November 30, 2020

    โž• Added

    • ๐Ÿ‘‰ User interface extensibility improvements:
      • Custom pages in HTML and JavaScript with no Angular knowledge required (example in demo-tt)
      • All pages can load custom JavaScript (example in demo-tt)
      • Page templates can include several sections where child pages can be embedded (like Portofino 4)
      • demo-tt profile page (example of custom component)
      • Progressive Web Application (PWA) using angular-pwa, example in demo-tt
    • ๐Ÿ‘ Full support for POJO-based persistence:
      • Export generated classes to actions and shared code
      • Export generated classes to the file system so that your IDE can pick them up
      • Allow to configure the entity mode of each database mapping from the UI (the default is still map-based)
    • Authentication improvements:
      • Better support for external auth (e.g., in a microservices setting). Built-in support for authentication against KeyCloak.
      • application/json login endpoint (in addition to the existing form-based endpoint).
      • Better handling of token expiration in the client.
    • Per-database Hibernate properties.
    • ๐Ÿ‘Œ Support annotations on databases.
    • ๐Ÿ‘ท Quartz jobs now run with a working Shiro environment.
    • Ability for extensions and user code to "mount" actions to arbitrary mount points in the action tree.

    ๐Ÿ”„ Changed

    • โšก๏ธ Angular updated to version 11
    • โšก๏ธ Groovy updated to version 3
    • โšก๏ธ Various other dependencies updated for security & bug fixes
    • CRUD REST API versioning with X-Portofino-API-Version header
    • 0๏ธโƒฃ CRUD REST API changes (legacy behavior is still the default):
      • Bulk update (PUT) optionally returns list of modified IDs
      • Bulk delete (DELETE) optionally returns list of deleted IDs
    • ๐Ÿ”’ Generated Security.groovy is now based on annotations on the model rather than hard-coded values

    โœ‚ Removed

    • ๐Ÿณ Maven profile "portofino-development" which has been superseded by Docker
    • ๐Ÿ— Maven profile "no-frontend-build" (use -P-build-frontend)
    • PortofinoRoot.mount method and related methods, replaced by ActionLogic.mount. This is a breaking API change for extensions making use of the removed methods, but none are known to us (also because the methods are undocumented and only used internally by portofino-upstairs).

    ๐Ÿ›  Fixed

    • ๐Ÿ†• Newly created CRUD pages don't have create/update buttons (#406)
    • ๐Ÿ”ง Page configuration is broken for pages using the default template implicitly (#423).
    • ๐Ÿ‘‰ User self-registration is broken in several ways (#414). Note that this involves a breaking API change in Security.groovy, specifically, the signature of the method saveSelfRegisteredUser has changed to return both the token and the email of the newly saved user. However, typical Security.groovy files (generated by the wizard) don't override that method, so most users shouldn't have to do anything.
  • v5.1.4 Changes

    July 04, 2020

    โž• Added

    • ๐Ÿš€ "Fat jar" deployment option (with embedded Tomcat)
    • โช Restored the profile section of demo-tt with an example custom Angular component
    • Included the MariaDB JDBC driver in the binary distribution

    ๐Ÿ”„ Changed

    • ๐Ÿ‘Œ Improved wizard and UI
    • โšก๏ธ Postgres driver version updated
    • Include explicit 'tt' schema in SQL queries in demo-tt (plays nicer with Postgres)
    • Mail module as a separate artifact

    ๐Ÿ›  Fixed

    • CRUD pages generated by wizard don't have buttons (#372)
    • Broken blob download URL and code (#384)
    • Pressing the Enter key on a search field does not perform a search (#383)
  • v5.1.3 Changes

    May 17, 2020

    โž• Added

    • Notifications bell showing up to 20 messages
    • More error reporting in the wizard
    • ๐ŸŒ Spanish translation of the UI, thanks to Gabriel Mautino
    • Possibility for buttons to prevent double submit by returning an Observable
    • ๐Ÿ‘ RestEasy support (alternative to Jersey JAX-RS)
    • โœ… Tested on WildFly 19.0.0.Final
    • ๐Ÿณ Docker image for the upstairs application

    ๐Ÿ”„ Changed

    • ๐Ÿ’… Polished the Maven archetype

    ๐Ÿ›  Fixed

    • Database views aren't usable in practice
    • ๐Ÿšš Move page broken for text pages (#349)
    • JWT filter eats the Authorization header even if it's not a JWT (#367)
    • OpenAPI manifest only shows root resource (#369)
  • v5.1.2 Changes

    March 02, 2020

    โž• Added

    • API for pages to compute their navigation menu
    • ๐Ÿ‘Œ Support for buttons with only an icon and no text
    • Button to refresh the CRUD search

    ๐Ÿ”„ Changed

    • Wizard is a bit more user-friendly
    • ๐Ÿ–จ Pretty-print saved config.json

    ๐Ÿ›  Fixed

    • SendMailAction not working (#323)
    • Arrays in XML annotations (#325)
    • Local API with IPv6 addresses (#327)
    • Can't save selection providers (#328)
    • ๐Ÿ”’ Generated Security.groovy errors when loading groups (#329)
    • OPTIONS with expired JWT fails triggering bad CORS (#333)
    • โš  Server-side localized info/warning/error messages (#334)
  • v5.1.1 Changes

    January 10, 2020

    โž• Added

    • Text pages (client only, no I18n).
    • ๐Ÿ‘Œ Support deployment behind a proxy.
    • ๐Ÿ“š Documentation of Docker development, debugging and deployment in the archetype.
    • ๐Ÿš€ Example deployment of demo-tt as Docker containers on Amazon ECS.
    • ๐Ÿš€ Sample Docker deployment with the backend and frontend separated into different containers.
    • ๐Ÿ‘ Bare-bones support for mapping tables as POJO's (objects) rather than maps.

    ๐Ÿ”„ Changed

    • ๐Ÿ”’ Give pages more control on security checks, allowing for client-only pages.
    • ๐Ÿ‘Œ Improve performance of selection providers by asking for data lazily in certain cases.
    • ๐Ÿš€ Properly support Docker deployments using the image built by the standard pom of archetype-generated projects.
    • ๐Ÿ›  Several wizard improvements and fixes.

    ๐Ÿ›  Fixed

    • Model not properly saved (#294, #303).
    • ๐Ÿ”ง Page configuration not properly saved (#310, #311).
    • Names of mapped database objects not escaped (#297).
    • ๐Ÿ†• New actions added with bad class names (#301).
    • ๐Ÿ”€ Database synchronization issues with MariaDB and PostgreSQL (#283, #298).
    • KeyManager with no password (ported from Portofino 4).
  • v5.1.0 Changes

    October 31, 2019

    โž• Added

    • 0๏ธโƒฃ Map database views, by default as read-only, but overridable.
    • ๐Ÿ‘Œ Support non insertable and/or non updatable entities in CRUD actions.
    • Annotations are propagated from model to annotated classes.
    • ๐Ÿ‘Œ Support persistent Java 8+ Date and time API values.
    • Generic database platform for unrecognized databases.
    • ๐Ÿ‘Œ Support for development and debug with Docker, both in demo-tt and in the archetype.
    • Periodically retry database connections that have failed at startup if Quartz is available.
    • Fallback database platform for unrecognized database systems.
    • Filter CRUD fields according to permissions (at the level of the ClassAccessor).
    • ๐Ÿ”ง Filter configuration fields according to permissions. In particular, the CRUD query is hidden if the user is not a developer.
    • ๐Ÿ‘ Proper support for @DatabaseBlob upstairs.

    ๐Ÿ”„ Changed

    • โšก๏ธ Update Hibernate to the 5.x branch, in particular to version 5.4.7.Final. The Hibernate Session factory is now configured with annotated Java classes generated at runtime. The ad-hoc code for Hibernate 4 has been removed.
    • ๐Ÿ—„ Deprecate the single portofino-model.xml file in favor of multiple portofino-model/<database-name>/database.xml files. Legacy files are supported and converted to the new format upon save.
    • ๐Ÿ”„ Change the format of annotations in the model and in configuration.xml. Annotations in the legacy format are converted upon save.
    • Replace java.io.File with Apache Commons VFS FileObject in Persistence. This is a breaking API change.
    • โšก๏ธ Update all uses of Commons Configuration to version 2.6, including Commons Configuration 1.x uses. This is a breaking API change.
    • Ensure that Portofino 5 can run without a Java compiler (JDK) available.

    ๐Ÿ›  Fixed

    • Virtual properties not saved properly [#269].
    • Wizard failing on connections to Oracle databases [#271].
    • ๐Ÿ”’ Minor upstairs, Spring and Security.groovy fixes.