MOJ Forms Tech Docs
Who is this documentation for?
These Tech Docs are used and maintained by the MoJ Forms team and provide technical information for maintaining the services.
For more information on the product there is a product website.
MOJ Forms Platform
MOJ Forms is a tool for creating and publishing digital forms using components from the GOV.UK Design System.
The whole platform can be broken down into smaller parts.
- Backend Services
- Deployments
- Submitter
- Editor
- Admin Features
- Runner
- Hosting
- API and Adapter
- Authentication
How does MOJ Forms handle security?
High level overview on what is in place to cover security concerns.
Github Repositories
List of the github repositories for the MOJ Forms platform. Most are public, but some of these will be private.
Runbooks
Procedures and operations that the MoJ Forms Tech Team carry out, these can be used for reference also.
- Admin Tasks
- Alerts Quick Guide
- Change the Form Name
- CircleCI Service Account Token Rotation
- Databases
- Delayed Job Failures
- Disaster Recovery
- Editor’s Delayed Job Failures
- git-crypt
- Maintainance Mode
- Regenerate Google Refresh Token
- Regenerating MS Lists
- Resending Submissions
- Reviewing Kibana Logs
- Rotate Mircosoft Secrets
- Rotate Service Token Cache Bearer Token
- Update GOV.Notify API Key
FAQs
Frequently asked questions - if the answer you’re looking for isn’t here, try #ask-formbuilder on slack
How We Work
Documentation on how the technical team works and the process for doing awesome work.
Incident Process
Our process for managing incidents
Architecture
Architecture Decision Records
To understand why we are recording decisions and how we are doing it, please see ADR-001.
[ADR-001 - Record architecture decisions](/documentation/adr/ADR-001-record-architecture-decisions.html) ♻️ (Amended)
[ADR-002 - Secure JSON Output](/documentation/adr/ADR-002-secure-json-output.html) ✅ (Accepted)
[ADR-003 - Files in JSON Output](/documentation/adr/ADR-003-files-in-JSON-output.html) ✅ (Accepted)
[ADR-004 - Microservice authentication](/documentation/adr/ADR-004-microservice-authentication.html) ✅ (Accepted)
[ADR-005 - Integration with Github](/documentation/adr/ADR-005-Integration-with-Github.html) ⌛️ (Superseded)
[ADR-006 - Reduce the number of emails per submission](/documentation/adr/ADR-006-reduce-number-of-emails-per-submission.html) ✅ (Accepted)
[ADR-007 - Replacing the storage](/documentation/adr/ADR-007-replacing-storage.html) ✅ (Accepted)
[ADR-008 - The Runner](/documentation/adr/ADR-008-the-runner.html) ✅ (Accepted)
[ADR-009 - The Online Editor](/documentation/adr/ADR-009-the-editor.html) ✅ (Accepted)
[ADR-010 - Testing the Editor Pipeline](/documentation/adr/ADR-010-testing-the-editor-pipeline.html) ✅ (Accepted)
[ADR-011 - Improving the Anti-virus](/documentation/adr/ADR-011-improving-the-antivirus.html) ⌛️ (Superseded)
[ADR-012 - Autocomplete Editor Data Storage](/documentation/adr/ADR-012-autocomplete-editor-data-storage.html) ✅ (Accepted)
[ADR-013 - Autocomplete Runner Data Retrieval](/documentation/adr/ADR-013-autocomplete-runner-data-retrieval.html) ✅ (Accepted)
[ADR-014 - Save And Return](/documentation/adr/ADR-014-save-and-return.html) ✅ (Accepted)
[ADR-015 - Monitoring and Testing MS List Submission](/documentation/adr/ADR-015-monitoring-and-testing-ms-list-integration.html) ✅ (Accepted)
[ADR-016 - Using Gov.Notify in the Editor](/documentation/adr/ADR-016-use-notify-in-the-editor.html) ✅ (Accepted)
[ADR-017 - Email Attachements](/documentation/adr/ADR-017-email-attachments.html) 🤔 (Proposed)
Statuses: 🤔 Proposed ✅ Accepted ❌ Rejected ♻️ Amended ⌛️ Superseded
Architectural principles for MOJ Forms
Legacy Form Builder (decommissioned)
Jumping off point for the Legacy Form Builder Documentation [to be Archived]
The Legacy Form Builder Guide and Runbook [to be Archived]
Updating the Tech Docs
- Write content tips
- run local
- Raise PR
- Merge
