This repository includes an accerator to get you started with your very own Digital Integration Hub architecture. The repo includes:
- Azure Functions front end API
- Postgresql data layer (with preloaded data for quick dev/test)
- Logic App integration layer
The deployment aspects of this architecture are included in the .github/workflows folder and include GitHub Actions to:
- build each individual component
- run unit tests
- convert Bicep --> ARM (to deploy all ancillary services such as API Management)
- deploy components to infrastructure
NOTE: Check below for required secrets and changes to get started
To get started, simply open the repository in Codespaces and start debugging. This is possible because the accelerator has a development environment defined in a container (a .devcontainer). There are database migration and seed data processes configured to run when your devcontainer starts, so expect some data to show up.
The webapp has a single model and route implemented. You can simply go ahead and add your business model and logic to the app.
Most of the routines you would want to run when developing are implemeted as make targets, so simply invoke 'make build' to build the application, or use VS Code tasks to run 'make test' - and checkout the testing framework implemented.
On checkins, the app builds and a Porter bundle is being created and pushed to a registry (To be implemented in #11).
In order to deploy the application and all the required resources, checkin a change to an environment file (To be implemented #11). The environment file also includes all the parameters used for that deployment.
-
Setup an ARC-enabled Kubernetes cluster, by following these instructions. The src/ARC/lima-setup.sh script can help, but check the setup instructions in the above link, as these change frequently.
-
Enable CNAB bundle support in GitHub
- Follow this guide to enable support for CNAB on GitHub
-
Set following deployment time parameters as GitHub secrets
Parameter GitHub Secret Description Teams Webhook TEAMS_WEBHOOK_URL
Create a Team Channel and add an Incoming Webhook
connector.Package admin PACKAGE_ADMIN
Create a personal access token with 'write:packages' permissions and save the value to this secret Azure credentials AZURE_CREDENTIALS
az login -o none && az ad sp create-for-rbac --role contributor --sdk-auth
Postgres admin password POSTGRES_DB_ADMIN_PASSWORD
Configure what postgres database admin password you want to use - more info by saving the password to a GitHub Secrets name -
Check the environment.yaml file. For ARC deployments, ensure to include the correct App Service Environment to use. The syntax is commented in the file.
-
Run the build workflow, this will eventually kick-off the deployment workflow as well.