CompositionalIT / farmer

Repeatable Azure deployments with ARM templates - made easy!
https://compositionalit.github.io/farmer
MIT License
526 stars 159 forks source link

Support for Logic Apps #77

Closed malthe closed 2 years ago

malthe commented 4 years ago

Logic Apps are defined in a custom Workflow Definition Language (WDL) which is rather similar to ARM templates.

When you deploy a Logic App via ARM template, a workflow definition is embedded as a resource, see for example this reference on deploying Logic Apps using CI/CD.

This issue is a request to add support for the Logic App WDL in Farmer such that we can safely generate Logic Apps using code.

isaacabraham commented 4 years ago

Did you really have to show me that 😉

Dzoukr commented 4 years ago

I am currently working on project using Logic Apps (please don't ask 😄) so I would really love to have it under Farmer's control like everything else without clicking these things. The problem with Logic Apps is that its definition is a mess and having separate DSL would be so complex (with all the adapters available) that you could call it Farmer v2.

I am thinking about lightweight support for Logic Apps in Farmer where it will nicely take care of deploy + setup via raw json definition from file or string.

let myApp = logicApp {
  name "my-logic-app"
  // load from file
  definition_file "path/to/my/definition.json"
  // set from json string
  definition "{ json content }"
}

@isaacabraham would you be interested in something like that?

isaacabraham commented 4 years ago

Yes, definitely. I thought of this as a first path to bringing in Logic Apps - first start with raw json for the content of the app but at least use Farmer for the orchestration. I think Logic Apps is so complex that we could look at making a dedicated Farmer.LogicApps package which would be a DSL that emitted the JSON for Farmer, but had its own DSL for constructing the logic app content.