Skip to content

Support extension-owned schema artifact providers - #1389

Draft
jwils wants to merge 2 commits into
joshuaw/validate-ingestion-adaptersfrom
joshuaw/json-artifact-compatibility
Draft

jwils wants to merge 2 commits into
joshuaw/validate-ingestion-adaptersfrom
joshuaw/json-artifact-compatibility

Conversation

@jwils

@jwils jwils commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Why

Disk-backed artifacts and in-memory schema results expose different JSON APIs. Adding each ingestion format's methods to core would require changes there for every third-party format.

What

Add an extension-owned artifact registry shared by disk and in-memory results. JSON and protobuf provide their own artifact APIs through this registry.

How

Extensions register a name, factory, require path, and configuration during schema definition. Runtime metadata preserves that registration. Each factory supplies disk and in-memory providers with the same extension-specific interface.

schema_artifacts.extension_artifacts.fetch(name) loads and caches only the requested provider. Core defines no JSON or protobuf artifact methods. A custom-provider test exercises registration, artifact generation, disk loading, configuration, and coexistence with another format. Other tests cover absent providers, duplicate registration, lazy loading, and instance isolation.

Risk

Callers of JSON methods on FromDisk or Results must use extension_artifacts.fetch("json") first. Existing artifacts must be regenerated to include provider registrations. Applications need the provider gems they access; unrelated providers remain unloaded.

Testing

No manual testing. Local datastore tests remain blocked by Docker Desktop's required organization sign-in.

Bigger picture

Stacked on #1384. Third-party gems can now expose custom artifact APIs without adding format-specific methods or dependencies to core.

@jwils
jwils added this pull request to stack #1390 September 14, 2026 13:45
@jwils jwils changed the title joshuaw/json artifact compatibility Restore the JSON artifact interface on results Sep 14, 2026
@jwils jwils changed the title Restore the JSON artifact interface on results Support extension-owned schema artifact providers Sep 14, 2026
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.

1 participant