CUBA Platform is a high level open source Java web framework for the rapid development of enterprise applications with rich web interfaces. The platform abstracts developers from underlying technologies so they can focus on the business tasks, whilst retaining full flexibility by providing unrestricted access to low level code.
The unique Extensions concept enables developers to customise a distributable product to individual client requirements whilst retaining the benefits of all platform features and future updates - delivering bespoke products without branching.
CUBA Platform is available under the open source Apache 2.0 license, which ensures the freedom to use the platform and your applications for any purpose.
The easiest way to get started:
- 1Install CUBA Studio
- 2Create a new project
- 3Studio will automatically configure dependencies and download CUBA Platform artifacts and source code.
The source code of the platform is also available on GitHub. We encourage developers to submit pull requests to contribute to the CUBA Platform development.
- A comprehensive set of data-aware visual components
- Interactive charts and Google Maps integration
- Generic data filter
- Entities inspector
Use a dynamic interface to edit reference data without the need to create specific screens.
- Built-in reporting engine
- UI styles customization
Select from standard UI themes, or customize UI styles with SCSS to match company brandbook.
- Multiple languages support
Let users choose preferred application language with the help of messages localization.
- User management
Set up scheduled tasks to run asynchronous background processes coordinated within the middleware cluster.
Data access control
Configure CRUD permissions for entities, attributes, menu items and screen components and define custom access restrictions via powerful management tools, available at runtime. Restrict visibility of individual data entries based on given criteria with row-level access control.
- Full audit of user actions
Stay in control with convenient JMX console, web interface for server logs, data recovery, performance statistics and user sessions monitoring tools.
- And more...
Adapt your product to meet individual customers’ needs with the unique Extensions feature. Modify data model, UI and business logic of the base product, without modifying its source code. Keeping all changes in a client-specific extension enables seamless upgrades of the base product versions.
Use the same approach to tailor platform functionality to your project requirements.
- Business process management
Let users extend your data model on the fly or store sparse data efficiently thanks to the full support of the Entity-Attribute-Value model in addition to the classic relational database schema.
- Full-text search
Reliable asynchronous email sending
Make sure no email will be lost with status tracking, logs and automatic retries.
Display dates in current user's timezone where required.
Any Java EE Web Profile server
Deploy your CUBA application to any Java EE Web Profile server: Tomcat, Glassfish, Jetty, WebSphere, etc.
Popular DBMS support out-of-the-box
Use PostgreSQL, Oracle Database, MySQL or Microsoft SQL Server as primary data storage or start with the built-in HSQLDB at the application prototyping stage. The platform is DB-agnostic, so it can be adapted to use other DBMS.
Easy deployment to the cloud
Run CUBA applications in popular aPaaS clouds like IBM Bluemix, Pivotal Cloud Foundry and RedHat OpenShift.
Deploy applications to a Jelastic cloud in one click from Studio.
Keep binary data separate from the database using the file storage facility.
Highly available deployment configurations
Choose from flexible deployment options from a standalone server to distributed failover configurations.
Generic REST API
Integrate with external systems via a generic REST API. The API enables invoking middleware services and loading graphs of domain entities in JSON or XML formats.
- LDAP integration
“There are many pretenders for a suitable application generation framework but few reduce the effort needed to deliver a working application. The CUBA Platform does and provides enough out-of-the-box capability to be truly productive. The architecture suits a continuous-integration ‘DevOps' strategy. The inclusion of components such as row-level security, BPM, self-service reporting and full text search is significant and provide enterprise-class features without heavy lifting.”
Vaadin framework is used in the web client to display the generic user interface. Vaadin offers a comprehensive set of extensible components and supports SCSS for UI customization. At the same time its server-based implementation model improves security and allows to unify the UI code between web and desktop clients.
Spring container provides core infrastructure for the middle tier and the application’s client blocks. The framework is also used to establish remote interaction between blocks and for web services implementation.
EclipseLink framework is used as ORM implementation to model the domain in accordance with JPA standards and perform complex object-oriented queries. Regular SQL can also be used via JDBC or MyBatis.
Projects are built with the popular Gradle tool. It enables encapsulating the specifics of building CUBA applications in plug-ins and at the same time offers unlimited capabilities for customization of Groovy build scripts.
CUBA Platform's BPM module is based on Activiti and provides tools to design, execute and manage business processes, supporting BPMN 2.0 standard.