Giter VIP home page Giter VIP logo

community's Introduction

Camunda-Community-Hub_1500x500

Welcome to the Camunda Community Hub!

A project to empower our open source community extension maintainers, and encourage new contributors to get started contributing to the Camunda open source ecosystem.

Table of Contents

What is the Camunda Community Hub?

The Camunda Community Hub is a GitHub Organization for all of our community-contributed extensions.

Extensions in the Camunda Community Hub organization are independently led and maintained projects by members of the broader Camunda open source community, some of whom happen to be Camunda employees, or are projects/tutorials that are created and maintained by the Camunda Developer Relations team!

We’ve put together some commonly asked questions and answers about the Camunda Community Hub, our approach to open source contributions and maintainership, and how we hope to empower our open source community in the future.

How to contribute

  • Start a new community extension by opening an issue using the New Community Extension Proposal template. Follow our complete documentation on creating a new extension here.
  • Transfer your existing repository into the Camunda Community Hub (do not fork it into the Hub) following these instructions.
  • Browse our existing projects and contribute -- code and non-code contributions welcome!

All contributors also must sign our CLA and agree to our Code of Conduct. Then, review our Contributor Guide.

Contributor resources & documentation

Communication guidelines and expectations

As is the nature of open source software, maintainers and extension creators often wear many hats. These range from administrative, to QA, and much more. As extensions in the Camunda Community Hub are community led, it is crucial that users of extensions understand that maintainers are often working on community extensions in their free time. Please remember to be kind, and follow the Camunda Community Code of Conduct and Camunda Community Values when interacting with project maintainers.

Keep in mind that communication styles vary, and no two individuals communicate in the same way. Please do your best to remain helpful, and try to avoid making sweeping demands or generalizations whenever possible. It is expected that Maintainers will follow the Camunda Code of Conduct when interacting with community members, and the same holds true for community members interacting with extension maintainers.

Not ideal: “This feature doesn’t work, please fix it!”

Preferred: “This feature doesn’t work as expected when I [do XYZ], do you have any suggestions as to how I can fix it? Thank you so much!”

When closing a pull request as a community extension maintainer, please keep in mind the following examples of helpful communication:

Not ideal “This is not following the current pull request conventions! I’m closing this issue.”

Preferred: “I am closing this PR because this extension can’t support [use case]. In its current form, it would be improved by/better contributed to [XYZ]. Thank you so much for your work on this!”

Troubleshooting and community support

If you’re encountering a problem with an extension or the Community Hub, remember that the community is here to help! Please feel free to start a post on the Camunda community forums, or the Camunda Community Hub GitHub Discussions.

If you have a question related to getting started contributing to the Camunda open source ecosystem, or need to reach out to the Camunda team, you can start a topic in our Discussions, tag the Camunda DevRel team in an Issue or PR, or reach out via email: [email protected].

We highly encourage you to post on the Camunda community forums about your extension, its wider impact for the open source community, and what made you decide to build a community extension.

Meet the Camunda Developer Relations team

The Camunda Developer Relations team exists to serve the Camunda developer community, from internal employees to open source contributors, Enterprise customers, and the broader tech community. It is our goal to provide opportunities for developers to be more successful by making them aware of our solutions, enabling them to be successful through great experiences, and fostering a culture of collaboration.

Inspiration

This documentation was inspired by the following resources:

community's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

community's Issues

Helm charts repository for community extensions

Camunda Community Hub Extension Proposal

Extension description

This proposal is not exactly an extension but merely a centralized repository of helm charts for the camunda community extensions. It is meant to be a community version of this one

Suggested use case

It will help to generate kubernetes packages for the extensions who needs it. For example the one I am maintaining.

Configuration

n/a

Dependencies

n/a

Issues/Challenges

n/a

Extension lifecycle

It's more or less a proof of concept

Additional Context

n/a

Maintainer Needed?

'This extension is actively seeking a maintainer'

Please invite me to the camunda community

Hi all,

Please invite me to join the camunda community. I'm looking to contribute code to spring-zeebe, initially related to customization of the ZeebeClient's channel to support mutual TLS. I've agreed to the CLA as well and will be contributing on behalf of my employer.

Thanks very much,
Rob Cossin

New community extension: Camunda Automation Platform 7 Webapps translations

New community extension Camunda 7 Webapps translations

Extension description

The extension provides translations in 16 different languages (e.g., Japanese, Danish, Nepali, etc.) for Camunda 7 Tasklist, Cockpit Basic/Full, and Admin.

Suggested use case

Making the Camunda 7 Webapps available in other languages than English and German.

Configuration

Just copy one or more of the language files to a webapp and include them in the config file as described in the User Guide.

Dependencies

None.

Issues/Challenges

None.

Extension lifecycle

The extension already exists but should be moved into the community hub:
https://github.com/camunda/camunda-webapp-translations/

Additional context

None.

Maintainer needed?

This extension is actively seeking a maintainer.

Camunda Cloud Self Managed Docker Compose file (Zeebe, Elasticsearch, Operate, Tasklist, IAM, IAM database, and Optimize)

Camunda Community Hub Extension Proposal

Hello, I'd like to put our internal project, creating a docker-compose file to stand up a complete CCSM (Zeebe, Elasticsearch, Operate, Tasklist, IAM, IAM database, and Optimize) locally for development, out into the community for others to use

Extension description

The project can be found here:
https://github.com/camunda-consulting/ccsm

It allows folks who have docker-compose to quickly start a Cloud environment and get a better understanding of its value in an offline fashion. The topic of standing up a local environment does come up from time to time in Slack and the Forum in the community.

Suggested use case

For anybody who wants to explore CCSM

Configuration

Configuration is explained in the readme

Dependencies

Docker, Docker Compose

Issues/Challenges

There could be issues depending on the versions of the applications used, if changed

Extension lifecycle

camunda-cloud

Additional Context

None

Maintainer Needed?

No

Camunda Modeler Setup Manager (on a Mac)

Camunda Community Hub Extension Proposal

Extension description

This project helps you with the tasks to setup the Camunda Modeler.

  • Install/ Update the Modeler.
  • Install/ Update useful Plugins.
  • Installl/ Update the Script Plugin (extra Task as it is huge😳)

https://github.com/pme123/camunda-modeler-plugin-manager

Suggested use case

Installing und updating Modeler Plugins is quite cumbersome. So why not automate this process.

Configuration

None

Dependencies

Ammonite

Issues/Challenges

None

Extension lifecycle

Ready to use

Additional Context

Maintainer Needed?

No

Pull Request

Camunda Community Hub Pull Request Template

Description

Additional context

Testing your changes

Types of changes

  • Bug fix (non-breaking change which fixes an existing open issue)
  • New feature (non-breaking change which adds functionality to an extension)
  • Breaking change (fix or feature that would cause existing functionality of an extension to change)
  • Documentation update (changes made to an existing piece of documentation)

Checklist:

  • My code adheres to the syntax used by this extension.
  • My pull request requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the Camunda Community Hub documentation
  • I have read the Pull Request Process documentation
  • I have added or suggested tests to cover my changes suggested in this pull request.
  • All new and existing CI/CD tests passed.
  • I will /assign myself this issue, and add the relevant [issue labels] to it if they are not automatically generated by Probot.
  • I will tag @celanthe in a new comment on this issue if 30 days have passed since my pull request was opened and I have not received a response from the extension's Maintainer

C8 SaaS mock workers web application

Camunda Community Hub Extension Proposal

Extension description

Small web application where a user can upload a C8 SaaS credentials file and a BPMN file. The application will create mock workers for all service tasks in the BPMN file. All worker can then be configured to generate a error, execute for X amount of second, change return variable or just stop. The application can also start instances with a configurable cadence.

Suggested use case

  • Assisted onboarding (business can model and execute the process without worrying with service tasks implementation)
  • Diagram testing
  • Accelerator for PoCs

Configuration

N/A - is a simple spring boot application

Dependencies

C8 SaaS account

Issues/Challenges

None - is a very naïve implementation but I hope refined it.

Extension lifecycle

Incubating

Additional Context

N/A

Maintainer Needed?

No

New Community Extension: Internal Task Handler for Camunda 7

Extension description

The extension aims to combine all advantages of embedding code and engine to the same application with the advantages of the external task pattern.

The extension contains Java Native Factories to spin up an external task client that is attached to the Camunda Java API.
The API is very close to the external task worker Java API, but it does not require network traffic or a REST API.
Workers can be registered and work on tasks. The API also contains the possibility to manage the threads that the workers use.

Building up on this, there is also a spring-boot-starter in place that manages the lifecycle of this client.

Suggested use case

If there is a valid reason to use the external task pattern, but the setup / environment makes it hard to run multiple applications or the REST API cannot be used for various reasons.

One thing to keep in mind is that migration to C8 will be a lot easier when the external task pattern was used in first place.

Configuration

The extension requires the external task service of the Camunda 7 Java API to function. There are some more properties which can be added via builder pattern.

Dependencies

core: only org.camunda.bpm:camunda-engine is required.
spring-boot: core and org.springframework.boot:spring-boot-starter is required.

There are some test dependencies required as well.

Issues/Challenges

I am still investigating on how I should create the binding between task handler and threadExecutor. Currently, it is done via bean name, but I am not yet fully decided.

Extension lifecycle

Despite having test setups and examples added, the extension is in a POC phase and should be hardened by at least one production setup using it. One reason is that the thread management could require some more investigations.

Additional context

EOL will be together with C7, however I like the idea and would like to offer it to the community.

Maintainer eeded?

no

Please invite me to the Camunda Community

Hi all,

Please invite me to join the camunda community. I'm looking to contribute code to spring-zeebe, initially related to customization of the ZeebeClient's channel to support mutual TLS. I've agreed to the CLA as well and will be contributing on behalf of my employer.

Thanks,
Sagar Samant

New Community Extension - Zeebe Worker Scala Template

Camunda Community Hub Extension Proposal

Minimal template for a Zeebe Scala worker. This template adds only the bare minimum of dependencies.

Extension description

This extension allows you to create a Scala worker with minimal dependencies easily.

Suggested use case

For Scala 3 lovers.

Configuration

Configuration is explained in the readme.

Dependencies

Scala

Issues/Challenges

None

Extension lifecycle

Incubating

Additional Context

The extension is currently in the repo here: https://github.com/riccardomerolla/zeebe-worker-scala-template

Maintainer Needed?

No

I want to be a member of community

Hi Team

I am a java full stack developer, having of 8+ year of experience in development of spring application
Could you please invite me to join.

Abandoned Extension Maintainer Proposal - camunda-dmn-xlsx

We would like to make this extension compatible with Java 17, SpringBoot 3 and the recent Camunda Releases. For this the extension needs dependency updates regularly which we would implement in our day-to-day business dealing with other open source software maintained by us.

Our goal as a maintainer is to get this extension up and running with current versions of the software, tools and frameworks it is intended for

We currently maintain the open source software TASKANA. In the project we have a modern CI/CD Pipeline with GithubActions that runs a lot of automated tests. The Test Coverage overall is 80%. We always work in a four-eyes principle, meaning another experienced developer reviews any pull requests that we create ourselves. In addition to that we make use of SonarCloud in our Pipeline which further makes sure that the quality of the new code is sufficient to our standards, e.g. no security hotspots or bugs as well as atleast 80% test coverage

I agree that I have either:

  • Made a good faith effort to contact the extension's original maintainer.
  • Successfully reached the extension’s original maintainer and they are in agreement that I am to maintain this extension moving forward.
  • I will update the documentation accordingly to reflect my status as this extension's Maintainer.
  • I have read the Camunda Community Hub documentation.
  • I have read the Camunda Community Hub abandoned extension Maintainer proposal documentation.
  • I will /assign myself this issue, and add the relevant issue labels to it if they are not automatically generated by Probot.
  • I will tag @camunda-community-hub/devrel in a new comment on this issue if 30 days have passed since my pull request was opened and I haven't received a response from the extension's original maintainer.

New Community Extension - zeebe-clickhouse-exporter

Camunda Community Hub Extension Proposal

Hi there,

I'd like to join the Camunda Community Hub in order to migrate the zeebe-clickhouse-exporter repository.

Extension description

With this exporter, we can export records from Zeebe to ClickHouse and query data from ClickHouse use our own program language.

The project can be found here: https://github.com/skayliu/zeebe-clickhouse-exporter

Suggested use case

None

Configuration

Configuration is explained in the readme.

Dependencies

  • zeebe-exporter-api
  • clickhouse-jdbc

Issues/Challenges

None

Extension lifecycle

Zeebe

Additional Context

None

Maintainer Needed?

No

DMN Tester

Camunda Community Hub Extension Proposal

Extension description

A little DMN Table tester with the following Goals:

  • As a developer I want to test the DMNs that I get from the Business, even not knowing the concrete rules.
  • Business people can create their own tests.
  • They can easily adjust the tests to the dynamic nature of DMN Tables.

See here: https://github.com/pme123/camunda-dmn-tester

Suggested use case

See description.

Configuration

All you need is a Docker Installation.

There is an example in the /demo folder with start scripts.

Dependencies

Issues/Challenges

At the moment there should be none🤞

Extension lifecycle

Phase of testing with real live DMNs.

Additional Context

Maintainer Needed?

Web Modeler GitHub Sync Template

Camunda Community Hub extension proposal

web-modeler-github-sync-example

Extension description

A template/example script to demonstrate a Web-Modeler-to-GitHub sync via the API.

Suggested use case

A starting point to write a tailored sync to GitHub, likely as a trigger for a CI/CD automation. Demonstration on what can be achieved using the Web Modeler API (https://docs.camunda.io/docs/apis-tools/web-modeler-api/).

Configuration

There are some secrets and project/repo IDs to define in the head of the script.

Dependencies

bash4 or zsh, jq, Web Modeler API client, + personal GitHub repository token

Issues/Challenges

It is at a very early stage, and just to be used for inspiration.

Extension lifecycle

proof-of-concept

Additional context

None

Maintainer needed?

This extension is actively seeking a maintainer

New community extension(s): C7-/C8-migration support by "Separate your actual business logic from the delegates and all Camunda APIs"

C7-/C8-migration support by "Separate your actual business logic from the delegates and all Camunda APIs"

Extension description

As a Camunda Platinum partner our customers ask about how to migrate to Camunda 8 or how to be prepared to migrate in the future. The best answer we can give is already given by Camunda itself: Separate your actual business logic from the delegates and all Camunda APIs (see migration-guide). We already did this separation as part of customer projects and saw that this is hard for beginners to understand and to establish.

In spring of 2022 we decided to provide this "separation" as a blueprint implementation which can be used by Camunda customers to start right away (either by cloning into their repo or by using this as a Maven dependency): https://github.com/phactum/taxiride-blueprint/tree/old_including_spi_and_adapters. The result is ideal for beginners and once they know about the principles the folks also can learn about the details. We used it in one customer project as a proof of concept. There is also a public demo. Two more customer projects started right now and we are about to release the BP- and Camunda-migration-stuff of our blueprint and will name it "VanillaBP".

The blueprint project was not only about migrating Camunda 7 to 8 but also about building Spring Boot based (micro-)services with API-first REST-APIs. VanillaBP is only about the BP- and migration-stuff and the rest will remain in the blueprint project: https://github.com/phactum/taxiride-blueprint. To be able to use Camunda 7 and Camunda 8 without modifications of the business code we introduced adapters for either Camunda 7 and Camunda 8. We would be very glad to have the Camunda adapters we developed for easy 7/8 migration hosted on Camunda Community Hub! Therefore we would like to move those adapters in two separate Camunda community hub projects.

We had a talk at Camunda Summit 2022 about some aspects and Luc Weinbrecht had a talk about the archectural aspects at CamundaCon 2022. These adapters are concrete implemenations of the Separate your actual business logic from the delegates and all Camunda APIs hint (see migration-guide) ready to be used as we do in our customer projects.

Suggested use case

Separate your actual business logic from the delegates and all Camunda APIs for easy C7/C8 migration.

Configuration

The respective adapter is a Maven-dependency (see public demo). Currently, only Spring Boot is supported, so everything is configured via Spring-autoconfiguration. As the adapters use Camunda's standard Spring boot connectors for C7 and C8 configuration we typically use two different Spring boot profiles, but besides that there is no additional configuration.

Dependencies

Issues/Challenges

Hopefully none, since this should make things much easier ;-)

Extension lifecycle

I guess the best fit is

Additional context

The VanillaBP SPI which shows how business code will look like.

Maintainer needed?

No

New Community Extension - camunda-bpm-monitor

Camunda Community Hub Extension Proposal

Extension description

This extensions allows you to easily add application monitoring for your Camunda project on Spring Boot.

The extension creates Micrometer gauge and counter meters for Camunda's Process Instances, Incidents, User Tasks, and External Tasks. These metrics are exposed using Spring Boot's Actuator which provides a vendor-nuetral facade to expose metrics to many popular monitoring systems (i.e. Elastic, Prometheus). See here.

Your chosen monitoring system can then use these metrics for monitoring, health checks and alarming.

Suggested use case

Application monitoring, health checks, and alarming

Configuration

  1. Include the monitor extension dependency
<dependency>
    <groupId>com.squashedbug.camunda.bpm.extension.monitor</groupId>
    <artifactId>camunda-bpm-spring-boot-monitor</artifactId>
    <version>0.1.7</version>
</dependency>
  1. Add the @EnableMonitoring annotation to your application entrypoint class.
@SpringBootApplication
@com.squashedbug.camunda.bpm.monitor.EnableMonitoring
public class MyCamundaApp {

    public static void main(String[] args) {

        SpringApplication.run(MyCamundaApp.class, args);
    }

}

Dependencies

Spring Boot

Issues/Challenges

Monitoring system (such as Prometheus) is required to utilise the metrics that this extension provides.

Extension lifecycle

Incubating

Additional Context

The extension is currently in the repo here: https://github.com/bsorahan/camunda-bpm-monitor

Maintainer Needed?

No

Synchronize translation

Camunda Community Hub Extension Proposal

Camunda tool contains translations for multiple languages. The Source of keys is in English (the master dictionary).

Is a language miss keys? Which one? Does a language contain keys which are no longer exist? Should be a good idea to purge them then.

Second, can we propose a translation for the missing keys, in order to reduce the translator's workload?

According to Nikola, it is better to have this tool separate from the translation repository.
(camunda/camunda-webapp-translations#134), it
labels should be camunda_translation, tool

Extension description

The tool takes as a reference a language, by default the English one (master dictionary). Then, it compares the other available translation, and points out the missing keys, and additional keys (which is no more necessary).

The tool can prepare the translator's workload by adding in the dictionary the missing key, with a marker to find them. The translator needs to search markers to find the missing translation.

As a second step, the tool can propose some translations. Multiple strategies are invoked:

  • in the master dictionary, the sentence already exists in another key. And this second key is translated: so propose the same translation
  • use Google translate to propose a translation. A Google API Key must be provided to use this function. Then a proposition is calculated, and the translator must review it.

Suggested use case

Any new version, the tool should be used to verify that translations are complete

Configuration

The configuration is used

Dependencies

No dependencies

Issues/Challenges

None

Extension lifecycle

(https://img.shields.io/badge/Lifecycle-Proof%20of%20Concept-blueviolet)](https://github.com/Camunda-Community-Hub/community/blob/main/extension-lifecycle.md#proof-of-concept-)

(https://img.shields.io/badge/Community%20Extension-An%20open%20source%20community%20maintained%20project-FF4700)](https://github.com/camunda-community-hub/community)

Additional Context

Maintainer Needed?

I will maintain this extension, but other contributors are welcome

Camunda 8 Platform kpt/kustomize project for kubernetes with Istio

Camunda Community Hub extension proposal

I'd like to share my kpt/kustiomize project described in this blog post. It is developed for Swisscom on the Swisscom Helix Kubernetes cluster base configuration.

Extension description

Kubernetes manifests organized as kustomize project with kpt for externalizing the most important parameters (like helm value file).

Suggested use case

The solution allows to deploy camunda 8 platform modularized to any kubernetes cluster. It supports kubernetes ingress as well as Istio network capabilities (see blog). It can be tailored to the following packages:

Camunda Identity, Operate, Tasklist, Optimize, Connectors (8.1.5, optimize: 3.9.3)
Webmodeler 0.4.1-beta
Zeebe, keycloak, elasticsearch can be deployed "internally" - in the target namespace - or consumed by simply setting the URLs to external services.

DB services and elasticsearch clusters (ELK) are already widely available in the k8s space and could ideally reused (data lake concept: bring all together and have it combined).

Configuration

Please see the docs...

Dependencies

No dependencies for full deployment - you can rely on external postgresql, elasticsearch, keycloak and zeebe services.

Issues/Challenges

Please see the docs...

Extension lifecycle

proof-of-concept

Additional context

Maintainer eeded?

help is appreciated but this is open for discussion
I myself am responsible for a first release and would like to see community engagement.

New Community Extension - eze-java

Camunda Community Hub Extension Proposal

Hi there,

I would like to join the Camunda Community Hub in order to migrate the eze-java repository.

A lightweight version of Zeebe from Camunda. It bundles Zeebe's workflow engine including some required parts to a library that can be used by other projects.

Features:

  • Support Zeebe clients and exporters
  • Use RocksDB instead of the in-memory database

Extension description

The project can be found here: https://github.com/Lzgabel/eze-java

Suggested use case

None

Configuration

Configuration is explained in the readme.

Dependencies

Spring Boot

Issues/Challenges

None

Extension lifecycle

Zeebe

Additional Context

None

Maintainer Needed?

No

newPublishMessageCommand

Camunda Community Hub Extension Proposal

Extension description

Suggested use case

Configuration

Dependencies

Issues/Challenges

Extension lifecycle

Additional Context

Maintainer Needed?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.