HMRC Manuals API
This app provides URLs for pushing HMRC manuals to the GOV.UK Publishing API.
Manual: HMRC manual with title and description, contains many Sections. See Adding or updating a manual for more details. Before adding a manual through the api, a new slug should be added to the list of known slugs.
Section: Sections can contain sub-sections and/or a content body. See Adding or updating a section for more details.
Adding a new slug
Before adding a new manual through the api, the slug for the manual must be added to /config/initializers/known_manual_slugs.rb and the application re-deployed.
The workflow for this is likely to be initiated by a zendesk ticket raised by HMRC with the new slug. A developer can then add the slug and re-deploy the application and inform HMRC that the slug is ready to be published against.
Provides an API for a system built by HMRC to publish tax manuals onto GOV.UK. In many ways it is analogous to a backend/admin app for publishing on GOV.UK. Content which passes validation and checks for unsanitary content is submitted to the GOV.UK Publishing API application. The application does not have a database itself. An HMRC manual consists of two document types: the manual itself and manual sections.
See the extended documentation for details:
- Connecting to the API
- Adding or updating a manual
- Adding or updating a section
- Responses to PUT requests
- Slugs, Section Ids and Urls
- Content Ids
- Manual Tags
- Removing published manuals
- Testing publishing in the GOVUK dev vm
- Managing manuals and sections with rake
- alphagov/rummager: allows document sections to be retrieved
- alphagov/publishing-api: allows documents to be published to the Publishing queue
Running the application
bundle install to install dependencies and runs the app on port
When using the GOV.UK development VM use
bowl hmrc-manuals-api in the Dev VM
development directory. The app will be available at http://hmrc-manuals-api.dev.gov.uk/.
Running the test suite
bundle exec rake
Any deviations from idiomatic Rails/Go etc.
The application does not have a database itself, it sends on requests to the Publishing API.