{"id":19763521,"url":"https://github.com/netgrif/application-engine","last_synced_at":"2026-03-02T10:08:55.598Z","repository":{"id":37089732,"uuid":"454435420","full_name":"netgrif/application-engine","owner":"netgrif","description":"Workflow management system fully supporting low-code language Petriflow.","archived":false,"fork":false,"pushed_at":"2026-02-24T14:35:39.000Z","size":180544,"stargazers_count":25,"open_issues_count":41,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-02-24T15:50:57.034Z","etag":null,"topics":["information-systems","java","low-code","netgrif","petri-nets","petriflow","wms","workflow"],"latest_commit_sha":null,"homepage":"https://engine.netgrif.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netgrif.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-02-01T15:12:27.000Z","updated_at":"2026-01-24T21:21:14.000Z","dependencies_parsed_at":"2024-06-17T08:44:01.172Z","dependency_job_id":"af54d4f0-4c56-4e56-8466-5da057d583ef","html_url":"https://github.com/netgrif/application-engine","commit_stats":null,"previous_names":[],"tags_count":155,"template":false,"template_full_name":null,"purl":"pkg:github/netgrif/application-engine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgrif%2Fapplication-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgrif%2Fapplication-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgrif%2Fapplication-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgrif%2Fapplication-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netgrif","download_url":"https://codeload.github.com/netgrif/application-engine/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgrif%2Fapplication-engine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29998303,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T09:59:02.300Z","status":"ssl_error","status_checked_at":"2026-03-02T09:59:02.001Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["information-systems","java","low-code","netgrif","petri-nets","petriflow","wms","workflow"],"created_at":"2024-11-12T04:09:39.025Z","updated_at":"2026-03-02T10:08:55.559Z","avatar_url":"https://github.com/netgrif.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Netgrif Application Engine\n\n[![License](https://img.shields.io/badge/license-NETGRIF%20Community%20License-green)](https://netgrif.com/license)\n[![Java](https://img.shields.io/badge/Java-11-red)](https://openjdk.java.net/projects/jdk/11/)\n[![Petriflow 1.0.1](https://img.shields.io/badge/Petriflow-1.0.1-0aa8ff)](https://petriflow.com)\n[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/netgrif/application-engine?sort=semver\u0026display_name=tag)](https://github.com/netgrif/application-engine/releases)\n[![build](https://github.com/netgrif/application-engine/actions/workflows/master-build.yml/badge.svg)](https://github.com/netgrif/application-engine/actions/workflows/master-build.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=netgrif_application-engine\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=netgrif_application-engine)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=netgrif_application-engine\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=netgrif_application-engine)\n[![Known Vulnerabilities](https://snyk.io/test/github/netgrif/application-engine/badge.svg)](https://snyk.io/test/github/netgrif/application-engine)\n\n\u003e Next-generation end-to-end low code platform.\n\nApplication Engine is a workflow management system fully supporting low-code language Petriflow. Application Engine (NAE\nfor short)\nis based on Spring framework with fully complaint Petriflow language interpreter. NAE runs inside the Java Virtual\nMachine. It can be embedded into Java 11 project or used as a standalone process server. On top of the process server,\nNAE provides additional components to make integration to your project/environment seamless.\n\n* Petriflow low-code language: [http://petriflow.com](https://petriflow.com)\n* Documentation: [https://engine.netgrif.com](https://engine.netgrif.com)\n\u003c!-- * Getting Started: [https://engine.netgrif.com/get_started](https://engine.netgrif.com/get_started) --\u003e\n* Issue Tracker: [GitHub issues](https://github.com/netgrif/application-engine/issues)\n* Java docs: [https://engine.netgrif.com/javadoc](https://engine.netgrif.com/javadoc)\n\u003c!-- * Roadmap: [https://engine.netgrif.com/roadmap](https://engine.netgrif.com/#/roadmap) --\u003e\n* License: [NETGRIF Community License](https://netgrif.com/license)\n\n## Components\n\nNetgrif Application Engine (or NAE for short) consists of several key components:\n\n* **Workflow engine**\n    * **Process executions** - Process instance and task management\n    * [**Actions and Events processing**](https://engine.netgrif.com/#/events/events) - Compiling and running action's\n      code, handling events in processes\n    * [**Roles management and permissions resolution**](https://engine.netgrif.com/#/roles/permissions) - Permissions and\n      restrictions resolving for processes\n    * [**Search and filters**](https://engine.netgrif.com/#/search/filter) - Indexing, querying and filter management.\n* **Authentication and authorization** - User management and application-wide permissions\n    * [**LDAP**](https://engine.netgrif.com/#/integration/ad_kerberos) - Integration to authentication solution via LDAP\n      protocol.\n    * **Organization structures** - Managing organization structure for application users\n* **Business rules engine** - Rules execution across whole application based on [Drools](https://drools.org/)\n* **Logging and auditing** - Logging to text file and Event/Audit log generation to the main database\n* **Mail service** - Mail client for sending and receiving emails\n* **Extension services**\n    * [**PDF generator**](https://engine.netgrif.com/#/services/pdf_generator) - Generate PDF from process form / task\n    * **QR code generator** - Generate QR code from process data\n\n## Requirements\n\nThe Application engine has some requirements for runtime environment. The following table is summary of requirements to\nrun and use the engine:\n\n| Name                                                   | Version | Description                                                     | Recommendation                                                         |\n|--------------------------------------------------------|---------|-----------------------------------------------------------------|------------------------------------------------------------------------|\n| [Java](https://openjdk.java.net/)                      | 11+     | Java Development Kit                                            | [OpenJDK 11](https://openjdk.java.net/install/)                        |\n| [Redis](https://redis.io/)                             | 5+      | Key-value in-memory database used for user sessions and caching | [Redis 6.2.6](https://redis.io/download)                               |\n| [MongoDB](https://www.mongodb.com/)                    | 4.4+    | Main document store database                                    | [MongoDB 4.4.11](https://docs.mongodb.com/v4.4/installation/)          |\n| [Elasticsearch](https://www.elastic.co/elasticsearch/) | 7.17+   | Index database used for better application search               | [Elasticsearch 7.17.3](https://www.elastic.co/downloads/past-releases/elasticsearch-7-17-3) |\n\nIf you are planning on developing docker container based solution you can use our [docker-compose](docker-compose.yml)\nconfiguration to run all necessary databases to develop with NAE.\n\n\u003c!-- If you are going to deploy your application on Kubernetes cluster please check out documentation\nfor [Kubernetes deployment](https://engine.netgrif.com/#/devops/kubernetes). --\u003e\n\n## Installation\n\n### Running as standalone\n\nYou can start using the NAE by its self and then upload your processes via API. You run the NAE from JAR (Java Archive)\nfile or as docker container.\n\n#### Running a JAR file\n\nTo run the engine from the jar file you can use a release package available from this repository. The latest release\npackage you can download from [here](https://github.com/netgrif/application-engine/releases/latest). Before you start\nyou must generate own RSA key pair for session tokens, you can\nfollow [this guide](https://engine.netgrif.com/#/views/public_view?id=backend).\n\nTo quickly start working with the engine just write the following commands to download, unzip, generate security keys\nand start:\n\n```shell\n$ wget -O nae.zip https://github.com/netgrif/application-engine/releases/latest\n$ unzip nae.zip\n$ cd nae\n$ cd src/main/resources/certificates \u0026\u0026 openssl genrsa -out keypair.pem 4096 \u0026\u0026 openssl rsa -in keypair.pem -pubout -out public.crt \u0026\u0026 openssl pkcs8 -topk8 -inform PEM -outform DER -nocrypt -in keypair.pem -out private.der \u0026\u0026 cd ../../../..\n$ java -jar nae.jar\n```\n\nOnly generate security keys:\n\n```shell\n$ cd src/main/resources/certificates \u0026\u0026 openssl genrsa -out keypair.pem 4096 \u0026\u0026 openssl rsa -in keypair.pem -pubout -out public.crt \u0026\u0026 openssl pkcs8 -topk8 -inform PEM -outform DER -nocrypt -in keypair.pem -out private.der \u0026\u0026 cd ../../../..\n```\n\nBy default, the engine assumes that all databases are running locally. If you are running required database on server or\non different ports, you can pass these settings as arguments to NAE.\n\n```shell\n$ java -jar nae.jar --spring.data.mongodb.uri=mongodb://localhost:27017/nae --spring.data.elasticsearch.url=localhost --spring.session.redis.host=localhost\n```\n\n\u003c!-- For complete list of all configurable application properties\nsee [article in documentation](https://engine.netgrif.com/properties). --\u003e\n\n#### Running as Docker container\n\nYou can also use docker to run the engine from the official image\non [Docker hub](https://hub.docker.com/r/netgrif/application-engine).\n\n```shell\n$ docker pull netgrif/application-engine\n$ docker run -d -p 8080:8080 netgrif/application-engine\n```\n\nAs the engine connects by default to locally ran databases for more precise configuration we recommend to use Docker\ncompose file or Kubernetes manifest to run whole stack all at once. \u003c!-- You can read more about it\nin [this guide](https://engine.netgrif.com/#/devops). --\u003e\n\n### Embedding\n\nThe Application Engine can be used inside your java application as a java library. The engine is written in Spring\nframework, so you can seamlessly integrate it to your Spring Boot application. The engine can be linked as a Maven\ndependency:\n\n```XML\n\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.netgrif\u003c/groupId\u003e\n    \u003cartifactId\u003eapplication-engine\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n\n\u003c!-- For more information please read instructions in [Get Started](https://engine.netgrif.com/#/get_started) --\u003e\n\n## Other projects\n\n\u003c!-- ### Frontend library\n\nFor complete Netgrif Application Engine experience check out\nour [Angular library - Netgrif Components](https://github.com/netgrif/components)\nfor building frontend applications in Application Engine platform powered by Petriflow processes. --\u003e\n\n### Application Builder\n\nFor creating processes in Petriflow language try our free Application Builder\non [https://builder.netgrif.com](https://builder.netgrif.com). You can start from scratch or import existing process in\nBPMN 2.0 and builder automatically converts it into Petriflow.\n\n### NCLI (Coming soon)\n\nIf you need help with setting up project or looking for tool to automate your developer work with NAE based\napplications, take a look on [NCLI (Netgrif Command Line Interface)](https://github.com/netgrif/ncli).\n\n## Reporting issues\n\nIf you find a bug, let us know at [Issue page](https://github.com/netgrif/application-engine/issues). First, please read\nour [Contribution guide](https://github.com/netgrif/application-engine/blob/master/CONTRIBUTING.md)\n\n## License\n\nThe software is licensed under NETGRIF Community license. You may be found this license\nat [the LICENSE file](https://github.com/netgrif/application-engine/blob/master/LICENSE) in the repository. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetgrif%2Fapplication-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetgrif%2Fapplication-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetgrif%2Fapplication-engine/lists"}