All Versions
18
Latest Version
Avg Release Cycle
88 days
Latest Release
155 days ago

Changelog History
Page 1

  • v5.3.3 Changes

    October 22, 2022

    ➕ Added

    • 🆕 New deployment option: Portofino modules as Spring Boot components, without using Portofino's dispatcher and without setting up Portofino's context hierarchy.

    🔄 Changed

    • ⚡️ Updated Angular to version 13
    • Replaced moment.js with Luxon

    🛠 Fixed

    • Wrong links in the war archetype #556
    • Omitting the login.path property results in a malfunctioning application #557
    • Mounted child path not converted to the native OS format #566
  • 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).