opengeospatial / opengeospatial/bblocks-postprocess

modify postprocess to support displaying resolved json schema for composite building blocks

Open
#61 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1
Forks
6
Avg merge
5d 10h
Merged PRs (30d)
3

Description

I'm assembling profiles from lots of pieces (see https://github.com/usgin/metadataBuildingBlocks), but the full schema displayed by bblocks-viewer shows all the $refs to building block components that are being assembled, making it difficult to figure out if the resolved schema that assembles all the pieces is doing what you want. A resolved schema is also useful for offline testing and validation instance documents using tools like Oxygen.

PR https://github.com/opengeospatial/bblock-template/pull/8 addresses this issue with python codes to generate resolved schema. Also includes a couple tools to generate JSON schema in parallel to the yaml-encoded json schema and check that the JSON and Yaml are equivalent. I'm a lot more comfortable reviewing and testing the JSON serialized schema.

To make the resolves schema visible in the BBlock view requires update to the bblock viewer code (see https://github.com/ogcincubator/bblocks-viewer/issues/5),

This issue addresses the third step to make the resolved schema accessible via the bbtemplate and view-- update to the post processing workflow (Github action) in the Building Block Repository. The postprocess Docker tool generates annotated schemas in build/annotated/, but these still contain $ref references to remote URLs. Building block authors currently have no standard way to produce a fully-resolved, self-contained JSON Schema from their source files — useful for:

  • Local validation (e.g., jsonschema.validate(data, resolved_schema))
  • Tooling integration (e.g., JSON Forms, IDE schema support)
  • Inspection and debugging (single file, no external dependencies)

addressed by https://github.com/opengeospatial/bblocks-postprocess/pull/62

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the postprocess Docker workflow and the annotated schemas generated in build/annotated/, then read the referenced bblocks-postprocess pull request #62. Check how the workflow can expose a fully resolved schema without remote $ref references. Done means building-block authors can obtain a self-contained schema for local validation, tooling integration, and inspection.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, github-actions, json, python
Domain
ci-cd, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.