CKAN: structured metadata and separate indexing flows
Extension developer and custom metadata-indexing contributor
I developed ckanext-jsonschema for richer metadata forms, validation and Solr indexing. My wider work includes technical leadership of FAO’s ISO metadata catalogue and a separate custom Eventarc indexing integration with Elasticsearch, Solr and object storage.
Problem: rich metadata in a catalog built around simpler fields
Geospatial and other domain metadata can contain nested structures, schema-specific fields and validation rules. A catalog needs a usable editing experience and a way to discover the resulting records without flattening away their meaning.
The public extension addresses that CKAN metadata problem. The separate multi-destination event design addresses propagation to additional representations. They are related concerns, but the extension repository does not establish that it implements the external pipeline.
Architecture: the public extension’s documented surface
The public repository’s extra branch describes JSON Schema metadata types stored with CKAN extra fields, a JSON Editor interface and validation. It also documents schema registries, import/export, cloning and related metadata functions.
Solr projection fields support schema-related resource/view metadata, and the documented view search concerns public metadata. This is evidence for the extension’s CKAN/Solr feature set; it is not proof of a particular CKAN callback or database commit hook.
CKAN extension and documented Solr projection
The public extension boundary includes structured metadata editing and validation plus its documented Solr projection. CKAN stores the metadata; Solr serves a derived discovery representation. The arrow into Solr is labeled as a documented projection, without claiming an inspected commit hook or delivery guarantee.
Decisions: separate provenance from a plausible architecture
Separately, I implemented a custom metadata indexer with Eventarc and destinations in Elasticsearch, Solr and object storage. The integration overview shows my implementation account alongside the public extension. The public README does not establish the external publisher, authoritative record or purpose of the bucket.
Google’s Eventarc Standard documentation specifies at-least-once delivery and no FIFO ordering guarantee. Therefore duplicate and stale-event handling are requirements to examine, not capabilities to assume were already implemented in this integration.
For a retrospective design review, I would compare a stable versioned snapshot event with an event that contains only an entity reference. A snapshot improves repeatable replay but can spread stale or private data; a reference reduces payload duplication but requires source availability and a clear version policy.
Idempotent destination updates, visibility-change removal, replay and reconciliation are sensible reliability controls to evaluate. They are presented as review considerations, not as fabricated historical implementation details.
Custom metadata indexing integration
A metadata publisher sends change events through Eventarc to a custom metadata indexer, which updates configured Elasticsearch, Solr and object-storage destinations. This overview is grounded in my contribution account. The exact publisher, authority and replay implementation are not established by the extension README.
Outcomes: a public extension with visible scope
The repository documents a substantial metadata extension and Solr-based view-search behavior. My public CKAN discussion describes releasing it with ISO metadata work and import/export/clone/validation/indexing functions.
I lead the technical work on FAO’s ISO metadata catalogue, associated with data.fao.org and the agro-informatics portal and supporting a broad range of FAO projects. I also participated in ISO 19115-4 standardization work. The companion AIP catalogue case explains that institutional context alongside the separate STAC discovery lane.
The external pipeline is documented separately through my implementation account. Neither the README nor that account establishes operational volume, index freshness, an availability target or a production reliability result.
Learning: every projection needs a reason to exist
An architecture drawing becomes useful when it can say why each destination exists, who owns the canonical record and what happens when visibility changes. Adding a bucket and two search engines does not answer those questions by itself.
This case preserves the gap rather than inventing a precise event envelope or integration hook. The next step for a deeper review is to trace one real update and one delete through each destination, then test replay and stale-event behavior.
Questions & discussion
Does ckanext-jsonschema implement Eventarc or Elasticsearch?
The public README documents CKAN metadata and Solr indexing. I implemented the Eventarc/Elasticsearch/object-storage integration separately; those services are not features established by the public extension repository.
Read the relevant sectionWhich destination is authoritative?
CKAN metadata is the source within the extension diagram. The separate pipeline’s authority and bucket role require confirmation. Search projections should not silently become authority merely because they are convenient to query.
Read the relevant sectionHow would you review ordering and duplicates?
Start from Eventarc’s at-least-once, unordered delivery. Inspect the actual event identity/version and destination update behavior. Version checks and idempotent writes are proposed review criteria until their implementation is established.
Read the relevant sectionSources & scope
- ckanext-jsonschema repository
README on extra branch, inspected October 2026; Public extension repository
- CKAN community discussion of the extension
Public discussion; Author’s public contribution account
- Eventarc Standard overview
Current product documentation inspected October 2026; Google Cloud; product behavior is not deployment evidence
- Separate custom metadata indexing integration
My supplied architecture account; Source link documents the extension only; the external design is candidate-described
- FAO catalogue leadership and institutional scope
Technical leadership and broad project support confirmed October 2026; Candidate-confirmed institutional contribution
- ISO/TR 19115-4 project context
Official Technical Report entry under publication, inspected October 2026; ISO project context; my participation is candidate-confirmed