HMPPS Digital Service Patterns
You can use these patterns to design an HMPPS Digital service that will seamlessly integrate with the HMPPS Digital platform. Application of these patterns in your service will shape the technical design to ensure it works with other platform components and can be monitored, managed and supported effectively within HMPPS Digital.
Application Architecture
- Build shared HMPPS Domain services where appropriate
- Separate presentation logic and orchestration into different applications
Hosting and Application Deployment
- Host services on MoJ Cloud Platform
- Create application repositories using standard HMPPS tooling
- Deploy applications using HMPPS GitHub Actions templates
Monitoring and Alerting
- Implement infrastructure-level monitoring and alerting using Cloud Platform
- Implement application-level alerting using Sentry
Analytics
- Implement application analytics using Application Insights
- Implement user analytics using Application Insights ‘Click Analytics’
Identity, Authentication and Authorisation
- Implement user single sign-on using HMPPS Auth
- Implement platform-level user access controls using HMPPS Auth and identity provider roles
- Implement internal application user access controls locally
- Implement service-to-service authentication using HMPPS Auth machine credentials
Communication
Outbound Communication
- Publish HMPPS Domain Events to inform other services of important activity
- Publish APIs to provide other HMPPS services with detailed information
Inbound Communication
- Consume HMPPS Domain Events to understand important activity across the estate
External Communication
- Exchange data with external parties such as other government agencies using the HMPPS External API
Probation-Specific Patterns
Specific patterns for use when building Probation Digital Services applications
Entry Point Services
- Provide a summary API for use in entry point services]
- Provide a UI widget for use in entry point services]
UI and Navigation
- Implement shared UI components using Probation Front End
Searching
- Search for People on Probation using Probation Search services
- Search for supervision history using Probation Search services
Prison-Specific Patterns
Specific patterns for use when building Digital Prisons Services applications
Entry Point Services
- Implement shared UI and navigation using DPS Connected Services