Developing the SchemaΒΆ
The project metadata schema is maintained with a combination of JSON Schema
files that are referenced by the classes and methods of the datacatalog
package which implement linkage and management workflow. Many nodes in the
schema are defined by static files, but some are built dynamically using
web service queries or other external sources of truth. Furthermore, the
rendered schema documents are stamped with date and current git commit and
validated against all versions of the JSON schema specification.
Consequently, extending the project schema requires a bit of Python development experience in order to safely contribute to this shared and project-critical resource. It is advisable to become familiar with the Python package architecture overview and guidance on how to contribute to it.
The major classes in the Python package that are extensible via editing their JSON schema are listed here in order of increasing technical complexity.