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.
- Hosting
- Editor
- API and Adapter
- Runner
- Authentication
- Backend Services
- Deployments
- Submitter
- Admin Features
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.
- Rotate Service Token Cache Bearer Token
- Delayed Job Failures
- Update GOV.Notify API Key
- Change the Form Name
- Reviewing Kibana Logs
- Alerts Quick Guide
- CircleCI Service Account Token Rotation
- Regenerating MS Lists
- Using git-crypt
- Regenerate Google Refresh Token
- Admin Tasks
- Disaster Recovery
- Editor’s Delayed Job Failures
- Maintainance Mode
- Databases
- Resending Submissions
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)
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
