Repository navigation
Releases: datagems-eosc/ap-explanation
Releases · datagems-eosc/ap-explanation
Release list
Release v1.2.0
v1.2.0
Full Changelog: v1.1.1...v1.2.0
Release v1.1.1
v1.1.1
Full Changelog: v1.1.0...v1.1.1
Release v1.1.0
v1.1.0
Full Changelog: v1.0.2...v1.1.0
Release v1.0.2
v1.0.2
Full Changelog: v1.0.1...v1.0.2
Release v1.0.1
v1.0.1
Full Changelog: v1.0.0...v1.0.1
Release v1.0.0
v1.0.0 — 2026-08-26
Breaking Changes
- provsql 1.12.0 required — Existing database volumes upgrade automatically on restart via
ALTER EXTENSION provsql UPDATEin the entrypoint; annotating a table afterwards (add_semiring) migrates its mapping to the new format - AP labels now follow the MoMa vocabulary —
Relational_Database→RelationalDatabase,CSV_Set→CsvSet, and thecontainedge →containedIn. APs using the old labels are rejected. TheProvenance_SQL_Operator/Provenance_Annotate_Dataset_Operatoroperators are unchanged — MoMa has no provenance node types yet. - APs are validated against the MoMa graph schema — node and edge ids must be valid UUIDs, every node must carry a
propertiesobject whose keys match^[a-z@][a-zA-Z0-9_]*$, and edge labels are restricted to MoMa's closed set. Any string was previously accepted.
New Features
- Stable row references: Instead of using CTIDs, every annotated table now carries a
provsql_refcolumn instead of relying on physical row location.CtidMappingis removed;KeyMappingreplaces it. - AP models come from
moma-domain— the hand-maintainedPgJsoncopy is gone;AnalyticalPatternnow builds onmoma_management.domain, so the graph vocabulary stays owned by moma-management. Only moma'sStructureStepruns, not its fullSchemaStep & StructureStep & MappingStepchain, sinceSchemaStepwould reject the provenance operators.
Misc
- Provsql >=1.11.0 add_provenance() and remove_provenance() are now idempotent, unnecessary workaround were removed as a consequence.
Full Changelog: v0.14.0...v1.0.0
Release v0.14.0
Changelog
v0.12.0 — 2026-06-01
Breaking Changes
- Removed manual endpoints —
POST /api/v1/aps/explanation/manual/annotations,POST /api/v1/aps/explanation/manual/computations, andDELETE /api/v1/aps/explanation/manual/annotationshave been removed. Use the managed lifecycle (POST /api/v1/aps/explanation) instead. aggregate_functionremoved fromDbSemiring— Theaggregate_functionfield on semiring definitions has been removed. Both aggregate and non-aggregate queries now useretrieval_function. Custom semiring configurations that setaggregate_functionmust be updated.- Semiring names and functions changed — The
booleansemiring has been renamed toboolexpr. All semiring retrieval functions have been renamed to match their native provsql equivalents:formula→sr_formula,whyPROV_now→sr_why,bool_formula→sr_boolexpr. The custom SQL semiring implementation (03_setup_semiring_parallel.sql) has been removed; provsql's built-in C++ semirings are now used directly. - provsql 1.8.0 required — The postgres-provsql image has been updated to
sotrx/postgres-provsql:17-v1.8.0. Environments running an older provsql extension must upgrade.
New Features
- Authentication (OIDC) — All explanation endpoints now support bearer token authentication via OIDC. Set
OIDC_ISSUER,OIDC_CLIENT_ID,OIDC_CLIENT_SECRET, andOIDC_EXCHANGE_SCOPEto enable it. WhenOIDC_ISSUERis unset, authentication is disabled and endpoints remain publicly accessible.UserIdandClientIdare now bound to structured logs per request. howandwhichsemirings — Two new built-in semirings (how,which) are now available, backed by provsql's nativesr_howandsr_whichC++ functions.- Automatic provsql extension upgrade — The postgres-provsql container now runs
ALTER EXTENSION provsql UPDATEon every start. Existing database volumes are automatically upgraded when the image is rebuilt with a newer provsql version; no manual intervention required. - Semiring dropdown in API — The explanation endpoint now exposes available semirings as a selectable list.
build-postgres-provsqlMakefile rule — Added a convenience target to build the postgres-provsql image locally.
Bug Fixes
- Correlation ID always present in response headers — The
x-tracking-correlationheader is now set on all responses, including error responses. Previously, unhandled exceptions caused the header to be omitted. - Authentication dependency not invoked —
require_authenticationwas passed toDepends()without being called, causing FastAPI to inject the factory function itself rather than executing the auth check. Fixed toDepends(require_authentication()). POST /api/v1/aps/explanation/{semiring_name}unauthenticated — The semiring-specific explanation endpoint was missing therequire_authentication()dependency entirely.boolexprsemiring returning empty data — Thesr_boolexprfunction requires amapping_tableargument in provsql 1.8.0. The rewriter was not passing it, causingdata: []in all responses. Fixed by ensuring the mapping argument is included whenmapping_tableis set on the semiring.
What's Changed
Features
- feat: otel integration
Full Changelog: v0.13.1...v0.14.0
Release v0.13.1
Changelog
v0.12.0 — 2026-06-01
Breaking Changes
- Removed manual endpoints —
POST /api/v1/aps/explanation/manual/annotations,POST /api/v1/aps/explanation/manual/computations, andDELETE /api/v1/aps/explanation/manual/annotationshave been removed. Use the managed lifecycle (POST /api/v1/aps/explanation) instead. aggregate_functionremoved fromDbSemiring— Theaggregate_functionfield on semiring definitions has been removed. Both aggregate and non-aggregate queries now useretrieval_function. Custom semiring configurations that setaggregate_functionmust be updated.- Semiring names and functions changed — The
booleansemiring has been renamed toboolexpr. All semiring retrieval functions have been renamed to match their native provsql equivalents:formula→sr_formula,whyPROV_now→sr_why,bool_formula→sr_boolexpr. The custom SQL semiring implementation (03_setup_semiring_parallel.sql) has been removed; provsql's built-in C++ semirings are now used directly. - provsql 1.8.0 required — The postgres-provsql image has been updated to
sotrx/postgres-provsql:17-v1.8.0. Environments running an older provsql extension must upgrade.
New Features
- Authentication (OIDC) — All explanation endpoints now support bearer token authentication via OIDC. Set
OIDC_ISSUER,OIDC_CLIENT_ID,OIDC_CLIENT_SECRET, andOIDC_EXCHANGE_SCOPEto enable it. WhenOIDC_ISSUERis unset, authentication is disabled and endpoints remain publicly accessible.UserIdandClientIdare now bound to structured logs per request. howandwhichsemirings — Two new built-in semirings (how,which) are now available, backed by provsql's nativesr_howandsr_whichC++ functions.- Automatic provsql extension upgrade — The postgres-provsql container now runs
ALTER EXTENSION provsql UPDATEon every start. Existing database volumes are automatically upgraded when the image is rebuilt with a newer provsql version; no manual intervention required. - Semiring dropdown in API — The explanation endpoint now exposes available semirings as a selectable list.
build-postgres-provsqlMakefile rule — Added a convenience target to build the postgres-provsql image locally.
Bug Fixes
- Correlation ID always present in response headers — The
x-tracking-correlationheader is now set on all responses, including error responses. Previously, unhandled exceptions caused the header to be omitted. - Authentication dependency not invoked —
require_authenticationwas passed toDepends()without being called, causing FastAPI to inject the factory function itself rather than executing the auth check. Fixed toDepends(require_authentication()). POST /api/v1/aps/explanation/{semiring_name}unauthenticated — The semiring-specific explanation endpoint was missing therequire_authentication()dependency entirely.boolexprsemiring returning empty data — Thesr_boolexprfunction requires amapping_tableargument in provsql 1.8.0. The rewriter was not passing it, causingdata: []in all responses. Fixed by ensuring the mapping argument is included whenmapping_tableis set on the semiring.
What's Changed
Bug Fixes
- fix: Adapting for provsql > 1.9.0 changes in PierreSenellart/provsql@11ac91f
- fix: Fixing change in provsql not throwing duplicate table error every time
Full Changelog: v0.13.0...v0.13.1
Release v0.13.0
Changelog
v0.12.0 — 2026-06-01
Breaking Changes
- Removed manual endpoints —
POST /api/v1/aps/explanation/manual/annotations,POST /api/v1/aps/explanation/manual/computations, andDELETE /api/v1/aps/explanation/manual/annotationshave been removed. Use the managed lifecycle (POST /api/v1/aps/explanation) instead. aggregate_functionremoved fromDbSemiring— Theaggregate_functionfield on semiring definitions has been removed. Both aggregate and non-aggregate queries now useretrieval_function. Custom semiring configurations that setaggregate_functionmust be updated.- Semiring names and functions changed — The
booleansemiring has been renamed toboolexpr. All semiring retrieval functions have been renamed to match their native provsql equivalents:formula→sr_formula,whyPROV_now→sr_why,bool_formula→sr_boolexpr. The custom SQL semiring implementation (03_setup_semiring_parallel.sql) has been removed; provsql's built-in C++ semirings are now used directly. - provsql 1.8.0 required — The postgres-provsql image has been updated to
sotrx/postgres-provsql:17-v1.8.0. Environments running an older provsql extension must upgrade.
New Features
- Authentication (OIDC) — All explanation endpoints now support bearer token authentication via OIDC. Set
OIDC_ISSUER,OIDC_CLIENT_ID,OIDC_CLIENT_SECRET, andOIDC_EXCHANGE_SCOPEto enable it. WhenOIDC_ISSUERis unset, authentication is disabled and endpoints remain publicly accessible.UserIdandClientIdare now bound to structured logs per request. howandwhichsemirings — Two new built-in semirings (how,which) are now available, backed by provsql's nativesr_howandsr_whichC++ functions.- Automatic provsql extension upgrade — The postgres-provsql container now runs
ALTER EXTENSION provsql UPDATEon every start. Existing database volumes are automatically upgraded when the image is rebuilt with a newer provsql version; no manual intervention required. - Semiring dropdown in API — The explanation endpoint now exposes available semirings as a selectable list.
build-postgres-provsqlMakefile rule — Added a convenience target to build the postgres-provsql image locally.
Bug Fixes
- Correlation ID always present in response headers — The
x-tracking-correlationheader is now set on all responses, including error responses. Previously, unhandled exceptions caused the header to be omitted. - Authentication dependency not invoked —
require_authenticationwas passed toDepends()without being called, causing FastAPI to inject the factory function itself rather than executing the auth check. Fixed toDepends(require_authentication()). POST /api/v1/aps/explanation/{semiring_name}unauthenticated — The semiring-specific explanation endpoint was missing therequire_authentication()dependency entirely.boolexprsemiring returning empty data — Thesr_boolexprfunction requires amapping_tableargument in provsql 1.8.0. The rewriter was not passing it, causingdata: []in all responses. Fixed by ensuring the mapping argument is included whenmapping_tableis set on the semiring.
What's Changed
Bug Fixes
- fix: Adapating for input edge reversal datagems-eosc/moma-management#21
Full Changelog: v0.12.0...v0.13.0
Release v0.12.0
Changelog
v0.12.0 — 2026-06-01
Breaking Changes
- Removed manual endpoints —
POST /api/v1/aps/explanation/manual/annotations,POST /api/v1/aps/explanation/manual/computations, andDELETE /api/v1/aps/explanation/manual/annotationshave been removed. Use the managed lifecycle (POST /api/v1/aps/explanation) instead. aggregate_functionremoved fromDbSemiring— Theaggregate_functionfield on semiring definitions has been removed. Both aggregate and non-aggregate queries now useretrieval_function. Custom semiring configurations that setaggregate_functionmust be updated.- Semiring names and functions changed — The
booleansemiring has been renamed toboolexpr. All semiring retrieval functions have been renamed to match their native provsql equivalents:formula→sr_formula,whyPROV_now→sr_why,bool_formula→sr_boolexpr. The custom SQL semiring implementation (03_setup_semiring_parallel.sql) has been removed; provsql's built-in C++ semirings are now used directly. - provsql 1.8.0 required — The postgres-provsql image has been updated to
sotrx/postgres-provsql:17-v1.8.0. Environments running an older provsql extension must upgrade.
New Features
- Authentication (OIDC) — All explanation endpoints now support bearer token authentication via OIDC. Set
OIDC_ISSUER,OIDC_CLIENT_ID,OIDC_CLIENT_SECRET, andOIDC_EXCHANGE_SCOPEto enable it. WhenOIDC_ISSUERis unset, authentication is disabled and endpoints remain publicly accessible.UserIdandClientIdare now bound to structured logs per request. howandwhichsemirings — Two new built-in semirings (how,which) are now available, backed by provsql's nativesr_howandsr_whichC++ functions.- Automatic provsql extension upgrade — The postgres-provsql container now runs
ALTER EXTENSION provsql UPDATEon every start. Existing database volumes are automatically upgraded when the image is rebuilt with a newer provsql version; no manual intervention required. - Semiring dropdown in API — The explanation endpoint now exposes available semirings as a selectable list.
build-postgres-provsqlMakefile rule — Added a convenience target to build the postgres-provsql image locally.
Bug Fixes
- Correlation ID always present in response headers — The
x-tracking-correlationheader is now set on all responses, including error responses. Previously, unhandled exceptions caused the header to be omitted. - Authentication dependency not invoked —
require_authenticationwas passed toDepends()without being called, causing FastAPI to inject the factory function itself rather than executing the auth check. Fixed toDepends(require_authentication()). POST /api/v1/aps/explanation/{semiring_name}unauthenticated — The semiring-specific explanation endpoint was missing therequire_authentication()dependency entirely.boolexprsemiring returning empty data — Thesr_boolexprfunction requires amapping_tableargument in provsql 1.8.0. The rewriter was not passing it, causingdata: []in all responses. Fixed by ensuring the mapping argument is included whenmapping_tableis set on the semiring.
What's Changed
Features
- feat: Using provsql internal semiring instead of custom sql one Closes #1
Other Changes
- chore: changelog for 0.12 Bumping default app version in docker-compose to v0.12
- chore: Bumping dependencies
- chore: Enhancing devcontainer to support DNS shenanigans
- chore: Rename pg_version to pg_major in workflow and Dockerfile for consistency
- chore: Ehancing postgres-provsql image to have a prebuild image on demand, Adding a gh action to do this
- chore: Removing unused correlation id in state
- Update dependabot.yml
- chore: Update dependabot configuration for weekly checks
Full Changelog: v0.11.0...v0.12.0