Skip to content

fix(registry): enforce offline structural schema references (#83, #85) - #108

Merged
LIghtJUNction merged 5 commits into
mainfrom
fix/83-local-schema-references
Sep 27, 2026
Merged

LIghtJUNction merged 5 commits into
mainfrom
fix/83-local-schema-references

Conversation

@LIghtJUNction

Copy link
Copy Markdown
Contributor

Refs #83 and #85. Focused Registry contract hardening; not closure of the broad acceptance issues.

Reproduced gaps

The former canonical-JSON substring check rejects safe local references whenever unrelated metadata mentions HTTP, yet permits file/FTP/relative/URN references and remote dynamic references. A fragment can also point into an annotation containing an external schema.

Changes

  • Inspect actual schema-bearing nodes via referencing, not arbitrary payload keys or examples. Permit only empty or fragment-only references for $ref/$dynamicRef/$recursiveRef.
  • Use an explicit non-retrieving reference registry, so pointers into annotation data cannot activate jsonschema's legacy implicit filesystem/network retrieval.
  • Convert unresolvable-reference exceptions into the stable schema_reference_unresolvable error without disclosing URI/path text.
  • Retain owned schema snapshots, Boolean schemas, local pointers/anchors, published operation versions/short codes and authority ceilings. Declare the directly used referencing dependency.

Verification

31 new cases plus 7 existing ownership cases. Before: 28 failed / 10 passed. After: 38 passed locally on Python 3.13.5; no PostgreSQL substitute is involved in these pure Registry tests. compileall passed. Uploaded registry.py and pyproject.toml Git blob hashes match the locally tested bytes. Full exact-head Python 3.15/PostgreSQL/Valkey/conformance/build CI is required before merge.

A transient publication typo was corrected before this PR; squash merge is intended. No production deployment, data migration, network permission or new operation.

Copilot AI lite review requested due to automatic review settings September 27, 2026 21:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review ✅ Completed 2026-09-27T21:32:37.654087Z b02f5ef PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@LIghtJUNction LIghtJUNction left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed final four-file diff against the tested local blob hashes: schema-bearing traversal preserves annotation/instance data, the explicit reference registry disables implicit external retrieval, failure translation avoids URI/path disclosure, and the earlier ownership protections remain intact. Run 36351787828 completed successfully across all four shards and the contracts gate; shard 0 also passed conformance and installable builds. No authority/operation contract expansion or production deployment. Squash merge removes the corrected intermediate publication typo from main history. The broader #83/#85 acceptance items remain open.

@LIghtJUNction
LIghtJUNction merged commit 4a9378d into main Sep 27, 2026
9 checks passed
LIghtJUNction added a commit that referenced this pull request Sep 27, 2026
…gether

Preserve every main blob except the two reviewed CI evidence files. No test exclusions or application changes.
@github-actions
github-actions Bot deleted the fix/83-local-schema-references branch September 28, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants