{"id":45464657,"url":"https://github.com/dapr-sandbox/dapr-logicapps-extension","last_synced_at":"2026-03-07T11:00:48.440Z","repository":{"id":44203222,"uuid":"244780976","full_name":"dapr-sandbox/dapr-logicapps-extension","owner":"dapr-sandbox","description":"Run Cloud Native workflows on any environment using Dapr","archived":true,"fork":false,"pushed_at":"2022-12-06T21:38:11.000Z","size":127103,"stargazers_count":135,"open_issues_count":14,"forks_count":29,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-10-10T15:08:06.240Z","etag":null,"topics":["cloud-native","dapr","workflow","workflow-engine"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dapr-sandbox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-04T01:33:40.000Z","updated_at":"2024-11-05T00:18:33.000Z","dependencies_parsed_at":"2023-01-23T15:16:50.171Z","dependency_job_id":null,"html_url":"https://github.com/dapr-sandbox/dapr-logicapps-extension","commit_stats":null,"previous_names":["dapr/workflows"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/dapr-sandbox/dapr-logicapps-extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapr-sandbox%2Fdapr-logicapps-extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapr-sandbox%2Fdapr-logicapps-extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapr-sandbox%2Fdapr-logicapps-extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapr-sandbox%2Fdapr-logicapps-extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dapr-sandbox","download_url":"https://codeload.github.com/dapr-sandbox/dapr-logicapps-extension/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapr-sandbox%2Fdapr-logicapps-extension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30212103,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T09:02:10.694Z","status":"ssl_error","status_checked_at":"2026-03-07T09:02:08.429Z","response_time":53,"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":["cloud-native","dapr","workflow","workflow-engine"],"created_at":"2026-02-22T09:00:32.512Z","updated_at":"2026-03-07T11:00:48.434Z","avatar_url":"https://github.com/dapr-sandbox.png","language":"C#","funding_links":[],"categories":["Workflow Orchestration"],"sub_categories":["LangManus"],"readme":"# Dapr LogicApps Extension - Run Cloud-Native Workflows using Dapr and LogicApps\n\nThis project is a lightweight host that allows developers to run cloud-native workflows locally, on-premises or any cloud environment using the [Azure Logic Apps](https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-overview) workflow engine and [Dapr](https://github.com/dapr/dapr).\n\n| :warning: ARCHIVED          |\n|:---------------------------|\n| This project is now archived and transferred to the fork under the Azure organization in GitHub: https://github.com/Azure/dapr-logicapps-extension  |\n\n\nWatch this [video](https://youtu.be/7fP-0Ixmi-w?t=116) for overview of Dapr Workflows. \n\n![Build Status](https://github.com/dapr/workflows/workflows/build/badge.svg)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## Contents\n\n- [Benefits](#benefits)\n- [How it works](#how-it-works)\n- [Example](#example)\n- [Get Started](#get-started)\n- [Supported workflow features](#supported-workflow-features)\n- [Build](#build)\n\n## Benefits\n\nBy using a workflow engine, business logic can be defined in a declarative, no-code fashion so application code doesn't need to change when a workflow changes. Dapr Workflows allows you to use workflows in a distributed application along with these added benefits:\n\n* Run workflows anywhere - on your local machine, on-premises, on Kubernetes or in the cloud\n* Built-in tracing, metrics and mTLS through Dapr\n* gRPC and HTTP endpoints for your workflows\n* Kick off workflows based on Dapr bindings events\n* Orchestrate complex workflows by calling back to Dapr to save state, publish a message and more\n\n## How it works\n\n\u003e**New to Dapr?**\n\u003e Learn more about Dapr with [this overview](https://docs.dapr.io/concepts/overview/)\n\nDapr Workflows hosts a gRPC server that implements the Dapr Client API.\n\nThis allows users to start workflows using gRPC and HTTP endpoints through Dapr, or start a workflow asynchronously using Dapr bindings.\nOnce a workflow request comes in, Dapr Workflows uses the Logic Apps SDK to execute the workflow.\n\n![Diagram](./assets/architecture_diagram.png)\n\n## Example\n\nDapr Workflows can be used as the orchestrator for many otherwise complex activities. For example, invoking an external endpoint, saving the data to a state store, publishing the result to a different app or invoking a binding can all be done by calling back into Dapr from the workflow itself.\n\nThis is due to the fact Dapr runs as a sidecar next to the workflow host just as if it was any other app.\n\nExamine [workflow2.json](./samples/workflow2.json) as an example of a workflow that does the following:\n\n1. Calls into Azure Functions to get a JSON response\n2. Saves the result to a Dapr state store\n3. Sends the result to a Dapr binding\n4. Returns the result to the caller\n\nSince Dapr supports many pluggable state stores and bindings, the workflow becomes portable between different environments (cloud, edge or on-premises) without the user changing the code - *because there is no code involved*.\n\n## Get Started\n\nPrerequisites:\n\n1. Install the [Dapr CLI](https://github.com/dapr/cli#getting-started)\n2. [Azure Blob Storage Account](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-create-account-block-blob?tabs=azure-portal)\n\n**Supported Dapr Version: 0.10.0 and above**\n\n### Self hosted (running locally)\n\n#### Deploy Dapr\n\nOnce you have the Dapr CLI installed, run:\n\n```\ndapr init\n```\n\n#### Invoke Logic Apps using Dapr\n\nFirst, set up the environment variables containing the Azure Storage Account credentials:\n\nMac / Linux\n\n```bash\nexport STORAGE_ACCOUNT_KEY=\u003cYOUR-STORAGE-ACCOUNT-KEY\u003e\nexport STORAGE_ACCOUNT_NAME=\u003cYOUR-STORAGE-ACCOUNT-NAME\u003e\n```\n\nWindows\n\n```bash\nset STORAGE_ACCOUNT_KEY=\u003cYOUR-STORAGE-ACCOUNT-KEY\u003e\nset STORAGE_ACCOUNT_NAME=\u003cYOUR-STORAGE-ACCOUNT-NAME\u003e\n```\n\n```\ncd src/Dapr.Workflows\n\ndapr run --app-id workflows --protocol grpc --port 3500 --app-port 50003 -- dotnet run --workflows-path ../../samples\n\ncurl http://localhost:3500/v1.0/invoke/workflows/method/workflow1\n\n{\"value\":\"Hello from Logic App workflow running with Dapr!\"}                                                                                   \n```\n\nRejoice!\n\n### Kubernetes\n\nMake sure you have a running Kubernetes cluster and `kubectl` in your path.\n\n#### Deploy Dapr\n\nOnce you have the Dapr CLI installed, run:\n\n```\ndapr init --kubernetes\n```\n\nWait until the Dapr pods have the status `Running`.\n\n#### Create a Config Map for the workflow\n\n```\nkubectl create configmap workflows --from-file ./samples/workflow1.json\n```\n\n#### Create a secret containing the Azure Storage Account credentials\n\nReplace the account name and key values below with the actual credentials:\n\n```\nkubectl create secret generic dapr-workflows --from-literal=accountName=\u003cYOUR-STORAGE-ACCOUNT-NAME\u003e --from-literal=accountKey=\u003cYOUR-STORAGE-ACCOUNT-KEY\u003e\n```\n\n#### Deploy Dapr Worfklows\n\n```\nkubectl apply -f deploy/deploy.yaml\n```\n\n#### Invoke the workflow using Dapr\n\nCreate a port-forward to the dapr workflows container:\n\n```\nkubectl port-forward deploy/dapr-workflows-host 3500:3500\n```\n\nNow, invoke logic apps through Dapr:\n\n```\ncurl http://localhost:3500/v1.0/invoke/workflows/method/workflow1\n\n{\"value\":\"Hello from Logic App workflow running with Dapr!\"}                                                                                   \n```\n\nRejoice once more!\n\n### Invoking workflows using Dapr bindings\n\nFirst, create any Dapr binding of your choice.\n\nSee [this](https://docs.dapr.io/developing-applications/building-blocks/bindings/howto-triggers/) How-To tutorial and [sample](https://github.com/dapr/samples/tree/master/5.bindings) to get started.\n\nIn order for Dapr Workflows to be able to start a workflow from a Dapr binding event, simply name the binding with the name of the workflow you want it to trigger.\nCouldn't get any simpler!\n\nHere's an example of a Kafka binding that will trigger a workflow named `workflow1`:\n\n```yaml\napiVersion: dapr.io/v1alpha1\nkind: Component\nmetadata:\n  name: workflow1\nspec:\n  type: bindings.kafka\n  metadata:\n  - name: topics\n    value: topic1\n  - name: brokers\n    value: localhost:9092\n  - name: consumerGroup\n    value: group1\n  - name: authRequired\n    value: \"false\"\n```\n\n#### Self hosted\n\nPlace the binding yaml file above in a `components` directory at the root of your application.\n\n#### Kubernetes\n\n```\nkubectl apply -f my_binding.yaml\n```\n\n#### Seeing events triggering logic apps\n\nOnce an event is sent to the bindings component, check the logs Dapr Workflows to see the output.\n\nIn standalone mode, the output will be printed to the local terminal.\n\nOn Kubernetes, run the following command:\n\n```\nkubectl logs -l app=dapr-workflows-host -c host\n```\n## Supported workflow features\n\n### Supported Actions and Triggers\n\n* [HTTP](https://docs.microsoft.com/en-us/azure/connectors/connectors-native-http)\n* [Schedule](https://docs.microsoft.com/en-us/azure/logic-apps/concepts-schedule-automated-recurring-tasks-workflows)\n* [Request / Response](https://docs.microsoft.com/en-us/azure/connectors/connectors-native-reqres)\n\n### Supported Control Workflows\n\n* [All Control Workflows](https://docs.microsoft.com/en-us/azure/connectors/apis-list#control-workflow)\n\n### Supported Data Manipulation\n\n* [All Data Operations](https://docs.microsoft.com/en-us/azure/connectors/apis-list#manage-or-manipulate-data)\n\n### Not supported\n\n* [Managed Connectors](https://docs.microsoft.com/en-us/azure/connectors/apis-list#managed-connectors)\n\n## Build\n\nMake sure you have dotnet core installed on your machine. At minimum, you need [.NET Core SDK 3.1](https://dotnet.microsoft.com/download/dotnet-core/3.1) to build.\n\n1. Clone the repo\n2. Inside the top level dir, run: `dotnet build`\n\n### Build Docker Image\n\nMake sure you have Docker installed on your machine.\n\nCompile to release mode:\n\n```\ndotnet publish -c Release -r linux-x64 --self-contained false\n```\n\nBuild image:\n\n```\ndocker build -t \u003cregistry\u003e/\u003cimage\u003e .\n```\n\nPush image:\n\n```\ndocker push \u003cregistry\u003e/\u003cimage\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdapr-sandbox%2Fdapr-logicapps-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdapr-sandbox%2Fdapr-logicapps-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdapr-sandbox%2Fdapr-logicapps-extension/lists"}