Discover and vote on upcoming features
CRUD frontend generation
»Generate a simple frontend for selected entities, allowing CRUD operations (list, create, update, delete) in the browser. First version is based on Thymeleaf with a basic styling and could be used for an admin backend as well.
»Add support for MongoDB as a document-oriented database. The schema migration should be done with Mongock, as this is the most mature solution at the moment.
Add changelog breakpoints
»Typically, the database schema grows over time as requirements evolve. With this feature, a developer can add breakpoints to a project. All modifications to the database schema after the breakpoint are written into a new Liquibase changelog / Flyway migration script, so it can be copied and used onto an existing codebase.
Custom startup banner
»Provide a textfield for adding a custom banner text. It is translated to ASCII and shown during application startup.
Allow unidirectional relationships
»In certain use cases you may want to have an unidirectional relationship between two entities, so navigation is limited to one side. This option should be available for all types except Many-to-many.
Spring Security with Keycloak
»Add the option to protect your application with Keycloak, including integration tests / Testcontainers support.
Prepare Spring Native
»Spring Native is still work in progress, but already showing great benefits in startup time and memory consumption. With a new option the code base can be extended to enable this feature.
Add RegistrationController to JWT
»Currently the JWT Security Feature comes without a RegistrationController, because it may look different depending on the project requirements. However Bootify can still provide an option to add a registration endpoint, which doesn't require authentication and does a proper password hashing.
»Many developers prefer application.properties over application.yml. This should be selectable with an option.
Support MapStruct for DTO mapping
»Currently the mapping from a JPA entity to a DTO is done in the service class manually. While this gives a lot of flexibility, with the new option for MapStruct the code is getting shorter and more descriptive.
Upgrade to Java 17
»As Java 17 is officially released and also a Long-Term-Support (LTS) Version, this should be the third option next to Java 8 and 11.
»Add an option for pagination to the generated REST API. Provide a minimal Page class for the response which reflects the current pagination information.
»Add MariaDB to the list of supported Databases.
»Add a possibility to select between Java or Kotlin as the preferred programming language. Use the Kotlin DSL in case of a Gradle build and hide the Lombok option for Kotlin projects.
Separate service and service interface
»The services generated for the CRUD controllers should have a separated interface and a service implementing it. This can be configurable with a dedicated option.
»Add an option for organizing the classes in a more domain-driven way, organizing the classes around the entity.
Use ResponseEntity at controllers
»Most developers prefer to use the ResponseEntity class in RestController methods, keeping the body and HTTP status together.
Add Many-to-many relation type
»In most cases it's preferable to create an intermediate table together with two Many-to-one relations, as this gives more flexibility in the long run. However a Many-to-many relation can be useful for simple assignments with a composite primary key.
Spring Security with JWT
»Add support for protecting the REST API with JWT, backed by Spring Security. Users can be loaded from the database.
Add integration tests
»Generate IT tests based on the controllers of the project (CRUD as well as custom controllers). A containerized instance of the database can be used based on Testcontainers.
Submit missing feature
Are you missing a particular feature? Let us know!