Every change is a reviewed pull request that passes automated gates before an automated, reversible deploy.
01Development lifecycle
- Design: changes that touch authentication, authorisation or personal data are designed against the OWASP Top 10 controls.
- Build: all source code lives in private GitHub repositories. Every change is made on a branch and merged through a pull request.
- Verify: type checks, Go tests and build gates run on each change. The gates are themselves tested by injecting a known error and confirming they catch it.
- Release: production deploys run from an automated pipeline on short-lived build machines, using the merged commit only.
- Observe: each release is checked in production after deploy, with the release identifier visible in the response headers.
02Change control
- Infrastructure changes (servers, networks, permissions, alarms) are Terraform and Ansible code and go through the same pull-request flow, with a dedicated infrastructure verification gate.
- Two deploys to the same service never run at the same time.
- Each release is versioned; the previous version is kept on the server, so rolling back is a switch rather than a rebuild.
03Environments and data
Development uses test accounts and test programmes. Production data is not copied to developer machines, and access to production data for support is limited to what the support task needs.
04Contact
Questions about this policy, security questionnaires and Data Processing Agreement requests: privacy@mentornity.com.