Skip to content

Add XSD ingestion and schema-driven XML generation - #1458

Merged
Paul Lizer (paullizer) merged 3 commits into
Developmentfrom
paullizer-xsd-ingestion-support
Sep 7, 2026
Merged

Add XSD ingestion and schema-driven XML generation#1458
Paul Lizer (paullizer) merged 3 commits into
Developmentfrom
paullizer-xsd-ingestion-support

Conversation

@paullizer

Copy link
Copy Markdown
Contributor

Summary

  • Add .xsd ingestion for personal, group, public, chat-promotion, generated-artifact promotion, and File Sync paths when Enhanced Citations storage is available.
  • Preserve exact schema bytes at immutable Blob paths, verify SHA-256 and length after upload, and index exactly one bounded schema-summary chunk.
  • Add the fail-closed simplechat-xsd10-subset-profile/1 validator with pinned lxml==6.1.2, closed in-memory include/import resolution, safe logical paths, and whole-document XML validation.
  • Resolve current dependencies from the root schema's owning workspace while independently enforcing approved shares and current group/public membership for every graph member.
  • Revalidate direct and transitive dependents on upload, replacement, deletion, and revision promotion.
  • Use an explicitly selected ready XSD as the authoritative XML contract in Chat, streaming Chat, agents, document Analyze, and Analyze workflows.
  • Suppress generic XML/tabular publishers in schema mode, hide unvalidated streaming output, reload and reauthorize the unchanged complete graph before publication, and publish no artifact on invalid output, cancellation, access revocation, or schema drift.
  • Document the feature and limitations and bump the application version to 0.250.160.

Validation

  • 92 focused XSD, ingestion, mixed-source, generated-export, workflow, projection, logging, and version-guardrail tests pass.
  • All changed Python files compile successfully.
  • git diff --check passes.
  • Three focused code-review passes found no remaining significant issues after the authorization and publication hardening fixes.

Supported profile

This release intentionally implements the documented restricted XSD 1.0 application profile, not complete XSD 1.0 or XSD 1.1. It supports one explicitly selected root schema per request and fails closed for XSD 1.1 constructs, xs:redefine, xs:override, locationless imports, unsafe dependency locations, and unresolved or unauthorized graph members.

Closes #1212

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve current Development export, approval, workflow, and streaming behavior while retaining fail-closed XSD ingestion and schema-validated XML publication.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Comment thread application/single_app/functions_xsd_schema.py Dismissed
Comment thread application/single_app/route_frontend_chats.py Fixed
Comment thread functional_tests/test_xsd_ingestion_generation_integration.py Dismissed
Return only allowlisted XSD ingestion messages and status codes from chat uploads, with a safe fallback for unknown failures.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@paullizer
Paul Lizer (paullizer) merged commit 0050ccf into Development Sep 7, 2026
12 checks passed
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