This structure diagram show all directories and specific files of interest. It does not capture ALL files present in the architecture of this project.
.
├── .github # Contains GitHub Actions Related sources
| ├── ISSUE_TEMPLATE # Github Templates for bug reports and feature requests
| ├── helpers # Re-usable shell scripts used in deployment pipelines
| ├── workflows # Contains Github Actions for CI/CD tasks
| | ├── build-deploy-api-v2.yaml # Github Action run on merge to main that builds, tags, pushes and deploys the API image to the DEV openshift namespace
| | ├── build-deploy-app-v2.yaml # Github Action run on merge to main that builds, tags, pushes and deploys the React App image to the DEV openshift namespace
| | ├── tag-deploy-*-test.yaml # Github Action to tag and deploy the latest API/React App images to the TEST openshift namespace
| | ├── tag-deploy-*-prod.yaml # Github Action to tag and deploy the latest API/React App images to the PROD openshift namespace
| | ├── pilot-build-tag-deploy-*.yaml # Github Action to build, tag, push and deploy API/React App images to separate deployment configs in DEV (pipeline changes action)
| | ├── *-lint.yaml # Github Actions run on pull request open to run linting against either the API or React App source code
| | ├── code-climate.yaml # Github Action that creates, formats and uploads API test coverage score to code climate for reporting
| | └── zap-*-scan.yaml # Github Actions for the API and React App to run zap scans against
| ├── PULL_REQUEST_TEMPLATE.md # Template to be filled out each time a branch is compared to main in a pull request
| ├── auto-action-config.yaml # yaml file that will tag reviewers and assignees of pull requests opened against main branch
| ├── dependabot.yaml # file that controls dependabot coverage scans
| ├── labeler.yaml # yaml file that controls tags applied to pull requests based on where code diff lives
| └── README.md # Github Actions and Environments specific Documentation
├── .husky #
| └── pre-commit # shell script run before a branch can be pushed up to remote repository for pre-linting
├── docs # Relevant Documentation incl. Architecture diagrams
├── openshift # Openshift Object Repository
| ├── backup # Directory containing k8s artifacts and documentation related to deploying postgres backup containers to DEV/TEST/PROD
| | ├── README.md #
| | ├── backup-build.yaml #
| | ├── backup-deploy.yaml #
| | └── backup.conf #
| └── templates # Directory container k8s artifacts related to CD process into openshift namespaces
| ├── api #
| ├── app #
| ├── network-policies #
| └── rolebindings #
├── src # Project Source Code Components
│ ├── backend # All API related source code
| | ├── .config #
| | ├── .docker #
| | ├── src #
| | | ├── assets #
| | | ├── common #
| | | ├── config #
| | | ├── health #
| | | ├── migrations #
| | | └── modules #
│ └── frontend # All React App related source code
| ├── .config #
| ├── .docker #
| ├── public #
| └── src #
| ├── assets #
| ├── components #
| ├── constant #
| ├── hooks #
| ├── pages #
| ├── routes #
| ├── sass #
| ├── types #
| └── utils #
├── .codeclimate.yaml # yaml file that controls thresholds for project specific reporting criteria
├── .gitattributes # file that controls attributes given to specific pathnames
├── .gitignore # list of files that are omitted from commits to this repository
├── MAKEFILE # Project specific tasks run to simplify running/accessing project resources
├── README.md # You're reading me right now!
├── docker-compose.local.yaml # docker-compose file used specifically for local workstation development
├── docker-compose.yaml # docker-compose file used specifically for CI/CD purposes
└── docker-entrypoint.sh # shell script run to make changes to docker containers on startup
$ make api-setup-env
$ make app-run
To setup project specific docker containers, first make sure you have Docker Desktop installed on your machine. Next, run the following command.
docker compose up -d [SPACE SEPARATED LIST OF CONTAINERS]
This command will build the project API and Web App containers in headless mode. If you need to only run one container remove "dpia-api dpia-webapp" and replace with the name of the container you'd like to build and run. The name of all containers used within the DPIA project can be found in the docker-compose file found at the root level of this repository.
- local (developers local workstation of choice)
- Development (DEV) API Frontend
- Test (TEST) API Frontend
- Production (PROD) API Frontend
If you'd like to be provisioned access to one of the following resources:
- DPIA Openshift Namespaces
- Github Collaborators Write or Admin Groups
- DPIA SSO Portal
Please email your request to adam.kroon@gov.bc.ca