A modular Java framework providing reusable infrastructure components for building robust, production-grade applications. Originally developed at exense to power the Step automation platform, the framework is open for external use and contributions.
For full documentation, architecture details, and getting started guides, see the main repository: github.com/exense/step
step-framework abstracts away common application server concerns — persistence, REST APIs, authentication, access control, audit logging, and time series metrics — so that teams can focus on business logic rather than infrastructure plumbing.
| Module | Artifact ID | Description |
|---|---|---|
| Core | step-framework-core |
Foundational utilities: async execution, plugin system, classpath scanning, and authentication abstractions |
| Model | step-framework-model |
Shared data model: entity definitions, accessors, collection filters, and object enrichers |
| Collections | step-framework-collections |
Database-agnostic collection API with in-memory and filesystem implementations, a query language (QL), and schema migration support |
| Collections – MongoDB | step-framework-collections-mongodb |
MongoDB backend for the collections API (via MongoJack) |
| Collections – PostgreSQL | step-framework-collections-postgresql |
PostgreSQL backend for the collections API (via HikariCP + JDBC) |
| Server | step-framework-server |
RESTful server framework built on Jersey/Jetty with Swagger/OpenAPI, access control, security, and audit logging |
| Server Plugins | step-framework-server-plugins |
Plugin and version management infrastructure for server extensions |
| Time Series | step-framework-timeseries |
Time series engine: metric definitions, time bucketing, data ingestion, aggregation, and querying |
- Java 11 or later
- Maven 3.6 or later
Add the BOM (Bill of Materials) to your project to manage dependency versions consistently:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>ch.exense.step</groupId>
<artifactId>step-framework</artifactId>
<version>VERSION</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>Then add only the modules you need:
<!-- Core utilities -->
<dependency>
<groupId>ch.exense.step</groupId>
<artifactId>step-framework-core</artifactId>
</dependency>
<!-- Collections with MongoDB backend -->
<dependency>
<groupId>ch.exense.step</groupId>
<artifactId>step-framework-collections-mongodb</artifactId>
</dependency>
<!-- REST server -->
<dependency>
<groupId>ch.exense.step</groupId>
<artifactId>step-framework-server</artifactId>
</dependency>Replace VERSION with the latest release available on Maven Central.
git clone https://github.com/exense/step-framework.git
cd step-framework
mvn clean installTo skip tests during the build:
mvn clean install -DskipTestsstep-framework is part of the Step open-source automation platform. Related repositories:
| Repository | Description |
|---|---|
| step | Core backend — the main Step orchestration platform built on top of this framework |
| step-grid | Distributed execution grid for agent-based keyword execution |
| step-api | Java API for writing Step Keywords |
For platform-level documentation see the Step knowledgebase.
Contributions are welcome. Please open an issue to discuss a bug or feature request before submitting a pull request. All submissions are expected to include appropriate test coverage.
This project is licensed under the Apache License 2.0.