{"id":25873188,"url":"https://github.com/boriszn/azurevalidationmiddleware","last_synced_at":"2025-07-23T06:37:19.885Z","repository":{"id":144225382,"uuid":"234103404","full_name":"Boriszn/AzureValidationMiddleware","owner":"Boriszn","description":"Azure Validation Middleware solution which build using Azure Functions, Azure Event Grid and Azure Queue demonstrates power of Event Driven Architecture. ","archived":false,"fork":false,"pushed_at":"2020-03-24T13:38:32.000Z","size":4801,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-22T00:22:02.300Z","etag":null,"topics":["azure","azure-devops","azure-functions","event-driven-architecture","microservices"],"latest_commit_sha":null,"homepage":"https://itnext.io/event-driven-and-microservices-architecture-with-azure-function-and-azure-event-grid-51bd612d99b6","language":"PowerShell","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/Boriszn.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}},"created_at":"2020-01-15T14:53:51.000Z","updated_at":"2021-11-15T12:05:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"d40ba827-5033-428c-9fe0-b06eaad41325","html_url":"https://github.com/Boriszn/AzureValidationMiddleware","commit_stats":{"total_commits":11,"total_committers":2,"mean_commits":5.5,"dds":0.09090909090909094,"last_synced_commit":"cb956f1b99d3a7ae404f77136b070b5c639f3fb3"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Boriszn/AzureValidationMiddleware","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Boriszn%2FAzureValidationMiddleware","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Boriszn%2FAzureValidationMiddleware/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Boriszn%2FAzureValidationMiddleware/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Boriszn%2FAzureValidationMiddleware/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Boriszn","download_url":"https://codeload.github.com/Boriszn/AzureValidationMiddleware/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Boriszn%2FAzureValidationMiddleware/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266631701,"owners_count":23959422,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"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":["azure","azure-devops","azure-functions","event-driven-architecture","microservices"],"created_at":"2025-03-02T08:30:28.862Z","updated_at":"2025-07-23T06:37:19.853Z","avatar_url":"https://github.com/Boriszn.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n![logo header](https://raw.githubusercontent.com/Boriszn/AzureValidationMiddleware/master/src/assets/img/logo-header.jpg  \"logo header\")\n\n# Azure Validation Middleware  \n\nAzure Validation Middleware solution which build using Azure Functions, Azure Event Grid and Azure Queue demonstrates power of Event Driven Architecture.\nSolution was build using PowerShell Classes and uses OOP approach.  \n\nSolution includes following azure resources:\n- Azure EventGrid - as main event processor \n- Azure Queue Storage - as event storage\n- Azure Function - as microservice which contains all validation and message processing logic\n\nBelow the use case where current solution/architecture: \n\nSubscription contains:\n- Virtual Machines which grouped by recourse group or DevTestLab \n- Automation account's runbook - which setups some tools on VM\n(perform VM hardening process) which requires connection on one or several Databases \n\nCurrent solution validates if required DB is exist and if yes it will trigger runbook otherwise it will retry/check N times \nand if it doesn't work after retries it will trigger alert within Log Analytics.\n\nAlso following solution recommended to use in following cases: \n\n- SSL certificate management (check certificate expiration time, log and inform, update certificate automatically)\n- Create custom logic to build cloud expense reports  \n- Cloud resources backup, check availability and log using Log Analytics   \n- Resource clean up management \n\n## Hight-level Architecture \n\n![Azure Validation Middleware](https://raw.githubusercontent.com/Boriszn/AzureValidationMiddleware/master/src/assets/img/event-driven-architecture-main.jpg   \"Azure Validation Middleware\")\n\n### Azure function's workflow  \n\n![Azure function's workflow](https://raw.githubusercontent.com/Boriszn/AzureValidationMiddleware/master/src/assets/img/event-queue-functions-workflow.jpg   \"Azure function's workflow\")\n\n![Runbook workflow triggering](https://raw.githubusercontent.com/Boriszn/AzureValidationMiddleware/master/src/assets/img/event-queue-functions-workflow-runbook.jpg  \"Runbook workflow triggering\")\n\n## Contributing\n\n1. Fork it!\n2. Create your feature branch: `git checkout -b my-new-feature`\n3. Commit your changes: `git commit -am 'Add some feature'`\n4. Push to the branch: `git push origin my-new-feature`\n5. Submit a pull request","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboriszn%2Fazurevalidationmiddleware","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboriszn%2Fazurevalidationmiddleware","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboriszn%2Fazurevalidationmiddleware/lists"}