govuk-content-schemas
govuk-content-schemas copied to clipboard
Definitions of the data formats used to represent content on GOV.UK
GOV.UK content schemas
Content schemas have now been merged into publishing api so this repository is archived.
Background
This repo contains JSON Schema files and examples of the content that uses them on GOV.UK.
The actual JSON schema files live in dist
and are generated from Jsonnet templates in source
. Using templates makes it easier to duplicate common blocks across multiple schemas e.g. format and URL fields. Do not edit files in dist
manually, as they will be overwritten.
Nomenclature
Schemas and examples are divided into three categories:
-
publisher_v2
- for when a publishing application transmits data to the content store -
frontend
- for data returned by the content store for a frontend application request -
notification
- for broadcasting messages about content items on the message queue
Technical documentation
You can use the GOV.UK Docker environment to run the tests with all the necessary dependencies. Follow the usage instructions to get started.
Use GOV.UK Docker to run any commands that follow.
Running the tests
Run the full test suite and linting:
bundle exec rake
Run the tests only:
bundle exec rake spec
Building the schemas
Use this to validate a change to the schemas, without having to run the tests.
bundle exec rake build
Further documentation
- How to change an existing content schema
- How to add a new content schema
- Working with JSON Schema keywords
- Contract testing against govuk-content-schemas
- Running your frontend against the examples and random content (content-store not needed)
Licence
MIT Licence