{"id":20626448,"url":"https://github.com/chgeuer/ex_microsoft_arm_evaluator","last_synced_at":"2026-05-19T19:03:18.031Z","repository":{"id":68105730,"uuid":"214992356","full_name":"chgeuer/ex_microsoft_arm_evaluator","owner":"chgeuer","description":"A utility to provide quick feedback on Azure ARM templates.","archived":false,"fork":false,"pushed_at":"2019-10-15T08:41:11.000Z","size":49,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-15T04:27:07.053Z","etag":null,"topics":["azure","azure-resource-manager","azure-templates","elixir","elixir-examples","parser-combinators"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chgeuer.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-14T08:44:00.000Z","updated_at":"2019-10-15T08:41:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"e8078aad-bfb0-4050-9b54-e7e1c28b8785","html_url":"https://github.com/chgeuer/ex_microsoft_arm_evaluator","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/chgeuer/ex_microsoft_arm_evaluator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chgeuer%2Fex_microsoft_arm_evaluator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chgeuer%2Fex_microsoft_arm_evaluator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chgeuer%2Fex_microsoft_arm_evaluator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chgeuer%2Fex_microsoft_arm_evaluator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chgeuer","download_url":"https://codeload.github.com/chgeuer/ex_microsoft_arm_evaluator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chgeuer%2Fex_microsoft_arm_evaluator/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265175567,"owners_count":23722661,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["azure","azure-resource-manager","azure-templates","elixir","elixir-examples","parser-combinators"],"created_at":"2024-11-16T13:13:16.925Z","updated_at":"2026-05-19T19:03:17.980Z","avatar_url":"https://github.com/chgeuer.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Microsoft.ARM.Evaluator\n\nCheck the blog article here: [blog.geuer-pollmann.de/blog/2019/10/14/locally-evaluating-azure-arm-templates](https://blog.geuer-pollmann.de/blog/2019/10/14/locally-evaluating-azure-arm-templates/) ...\n\n## How to install\n\n- Install Erlang from [erlang.org](https://www.erlang.org/downloads)\n- Install Elixir from [elixir-lang.org](https://elixir-lang.org/install.html)\n\n### Clone the code\n\n```bash\ngit clone https://github.com/chgeuer/ex_microsoft_arm_evaluator\ncd ex_microsoft_arm_evaluator\n```\n\n### Fetch required Elixir packages\n\n```bash\nmix deps.get\n```\n\n### Compile the whole thing\n\n```bash\nmix compile\n```\n\n### On Windows, set this env variable\n\n```cmd\nset iex_with_werl=true\n```\n\n### Launch the interactive Elixir shell\n\n```bash\niex -S mix\n```\n\n## demo time\n\n```cmd\nstart https://microsoft.com/devicelogin\n```\n\n```elixir\nalias Microsoft.Azure.TemplateLanguageExpressions.{Resource, Context, DeploymentContext, Evaluator.Resource}\n\nlogin_cred = DemoUtil.login()\n\nsub = \"724467b5-bee4-484b-bf13-d6a5505d2b51\"\n\ndeploymentContext = %DeploymentContext{ subscriptionId: sub, resourceGroup: \"longterm\" } |\u003e DeploymentContext.with_device_login(login_cred)\n\nResource.subscription([], Context.new() |\u003e Context.with_deployment_context(deploymentContext))\n\n\"sample_files/1.json\" |\u003e DemoUtil.transform(deploymentContext, %{})\n\n\"sample_files/automation.json\" |\u003e DemoUtil.transform(deploymentContext, %{\"adminPassword\" =\u003e \"SuperSecret123.-##\"})\n```\n\n## Implementation Status\n\n- [x] All numeric / logical / array\u0026objects / comparison functions\n- [x] Custom function definitions should work\n- [ ] The `reference()` function needs more [dummy data](lib/evaluator/dummy_data.json) for scenarios where the users are not signed-in to their real subscription.\n- [ ] The `copyIndex()` function currently doesn't duplicate nodes in the document.\n\n## Other projects in that problem space\n\n- Check [`ChrisLGardner/ArmTemplateValidation`](https://github.com/ChrisLGardner/ArmTemplateValidation) for a PowerShell-based implementation by [@HalbaradKenafin](https://twitter.com/HalbaradKenafin/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchgeuer%2Fex_microsoft_arm_evaluator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchgeuer%2Fex_microsoft_arm_evaluator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchgeuer%2Fex_microsoft_arm_evaluator/lists"}