Skip to content

Week 10 Report

Vishmayraj Zala edited this page Aug 19, 2026 · 2 revisions

Weekly Report - Week 10 (August 1 - August 7, 2026)


Note: Met with mentors on August 7 and walked through the completed DCAT-AP 3.0 work end to end. Was handed the authorization layer as the focus for next week.

I performed the following tasks during week 10:

API layer (api.py)

  • Added the new /connector/dcat/root, /connector/dcat/orphan, and /connector/dcat/{network_id} routes, each with a .ttl sibling for Turtle while JSON-LD is the unsuffixed default, as the more broadly consumed format.
  • Registered the static /dcat/root and /dcat/orphan routes ahead of the dynamic /dcat/{network_id} route so the path parameter can't swallow them.
  • /connector root now reports dcat_enabled, dcat_mandatory_fields_set, and DCAT availability/last-fetch alongside the existing STAC fields.
  • Gated every DCAT route behind @_require_enabled(DCAT_TRANSFORMER, "DCAT_TRANSFORMER"), returning a 404 with an explicit "set this env var to enable it" message, distinct from the 503 used for "enabled but not harvested yet."
  • DCAT availability/last-fetch/network-id metadata is now tracked independently of STAC's (dcat:meta:* vs stac:meta:*), so one transformer failing isn't reported as if both did.

SHACL validation and compliance fixes

  • Ran the generated graphs through pyshacl against the official DCAT-AP 3.0 SHACL shapes end to end and worked through what it surfaced: corrected dct:language to point at a URI (EU NAL concept) rather than a literal, and added missing skos:Concept typing plus several other RDF-shape fixes (rdfs:Resource on accessURL/endpointURL targets, dct:Standard typing on conformsTo targets, dct:LicenseDocument/dct:RightsStatement/dct:LinguisticSystem typing).
  • Added modular serialization, JSON-LD as the primary/default format with Turtle available as a secondary, on every cached scope.
  • All scopes (root, orphan, per-Network) now validate clean against the SHACL shapes with zero violations.

PR #208 opened

  • Opened feat(connector): DCAT-AP 3.0 transformer implementation - dataset/series building, license & language resolution, dual-format caching, closing out the DCAT-AP mapping work that had been scoped as "next PR" back in #204. This wraps up everything from weeks 8 through the first half of this week. Depends on #195 and #204.
  • Validated against the dummy_data module's generated dataset under both NETWORK=0 and NETWORK=1; RDFLib parse-back and pyshacl confirm zero dangling links and full DCAT-AP 3.0 conformance across all generated scopes.

Details can be found in:

  • PR: #208
  • API/caching/compliance work: api/app/v1/connector/api.py, cache.py, config.py, dcat_transformer.py

What do I plan to do next week?

  • Implement the authorization layer for the connector: config-driven public/private split for catalog metadata, a way to fully hide specific networks, and the STAC authentication extension.

Am I blocked on anything?

  • No blockages. Automated test coverage for the connector package (both STAC and DCAT sides) is still outstanding and noted as the immediate next step after auth.

Clone this wiki locally