{"ref":"artifact:cap-js-change-tracking","page":"/artifacts/cap-js-change-tracking","json":"/artifacts/cap-js-change-tracking.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"cap-js-change-tracking","name":"@cap-js/change-tracking","artifact_type":"cds-plugin","ecosystem":"cap","domain":"operations-and-runtime","origin_ring":"sap-official","description":{"one_line":"Out-of-the-box change history for annotated entities.","short":"Change history for annotated CAP entities"},"links":{"npm":"https://www.npmjs.com/package/@cap-js/change-tracking","repo":"https://github.com/cap-js/change-tracking"},"compat":{"runtimes":["node"]},"type_properties":{"distribution":{"value":["npm"],"sources":[{"url":"https://github.com/cap-js/change-tracking","title":"@cap-js/change-tracking — README","checked":"2026-10-18","quote":"npm add @cap-js/change-tracking"}]}},"provenance":{"discovered_via":[{"source":"source:npm"},{"source":"source:github","channel":"cap-js"}],"first_seen":"2026-08-31"},"provides":[{"capability":"capability:change-tracking","what_it_does":"Records changes to elements annotated @changelog in sap.changelog.Changes with database triggers on SAP HANA Cloud, SQLite and PostgreSQL, and adds a Change History facet to the Fiori object page.","sources":[{"url":"https://cap.cloud.sap/docs/plugins/","title":"CAP Plugins & Enhancements","checked":"2026-09-20","quote":"The Change Tracking plugin provides out-of-the box support for automated capturing, storing, and viewing of the change records of modeled entities."},{"url":"https://github.com/cap-js/change-tracking","title":"cap-js/change-tracking — README","checked":"2026-09-20","quote":"Change tracking is implemented with Database triggers and supports HANA Cloud, SQLite and Postgres."}]}],"maintainers":["actor:cap-js"],"contributors":["actor:akshay11298","actor:bobdenos","actor:chgeo","actor:cschuerings","actor:danjoa","actor:frankvisuals","actor:hakimio","actor:jocelyngu135","actor:johannes-vogel","actor:koblers","actor:mnkiefer","actor:nkaputnik","actor:pandayo","actor:patricebender","actor:schiwekm","actor:schmarvinius","actor:sirsimon04","actor:sjvans","actor:smahati","actor:stefanrudi","actor:sv7ennowitzki","actor:swaldmann"],"drafted_with_ai":true,"changed_in":[{"version":"2.0.0","date":"2026-06-12","what_changed":"Changes are captured by database triggers generated for SQLite, SAP HANA, PostgreSQL and H2 instead of by event handlers. The `sap.changelog.ChangeLog` entity is folded into `sap.changelog.Changes`, where `entityID` is renamed `objectID` and `serviceEntityPath` and `keys` are removed, and the `considerLocalizedValues` option is gone.","invalidates":"Queries, views or annotations that read `sap.changelog.ChangeLog` or the `entityID` column, and configurations that set `considerLocalizedValues`.","source":{"url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-200---2026-06-12","title":"@cap-js/change-tracking changelog, 2.0.0","checked":"2026-10-19","quote":"Entity `sap.changelog.ChangeLog` and flattened into `sap.changelog.Changes`"}}]},"effective_normative_relations":[{"instrument":"instrument:sap-developer-license-3-2-cap","relation":"use-constrained-by","sections":["1","2","3"],"applies_when":"A cds-plugin is used with SAP CAP materials, or an artifact is explicitly identified as a CAP plugin or application.","note":"This is inherited applicability, not a licence verdict about the artifact itself. Review the agreement for the actual materials and use; an explicit artifact relationship to another revision takes precedence.","scope":{"kind":"artifact"},"sources":[{"url":"https://cap.cloud.sap/resources/license/developer-license-3_2_CAP.txt","title":"SAP Developer License Agreement 3.2 CAP","checked":"2026-09-16","quote":"documentation, plug-ins, templates, scripts and sample code, libraries, software development kits"}],"inherited_from":"cap-plugins-and-applications","relevant_capabilities":["agent-systems-access","async-processing","data-import-export","database-connectors","deployment","destinations","llm-integration","mcp-servers","plugin-authoring","replication","retrieval-augmented-generation","rfc-connectivity"]}],"readings":{"liveness":[{"label":"Maintenance","tier":"good","evidence":"released this month"},{"label":"Continuity","tier":"good","evidence":"27 contributors, 3 publishers, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":">=8.5 — includes cds 10 and 9"},{"label":"Survived majors","tier":"good","evidence":"released before and after @sap/cds 10"},{"label":"Maintainer's CI","tier":"poor","evidence":"Performance tests failure, 2026-10-09"}],"practice":[{"label":"Tests","tier":"good","evidence":"119 test files, npm test"},{"label":"Docs","tier":"good","evidence":"README 29 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the repo"}],"reach":[{"value":8736,"unit":"installs/week"},{"value":43,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","latest_version":"2.2.3","majors":{"1":{"version":"1.0.0","date":"2023-10-18"},"2":{"version":"2.0.0","date":"2026-06-12"}},"license":"Apache-2.0","first_release":"2023-10-18","last_release":"2026-10-09","releases":39,"cadence_days":8,"maintainers":3,"repository":"git+https://github.com/cap-js/change-tracking.git","peer_cds":">=8.5","test_script":true,"types":false,"downloads_weekly":8736,"stars":43,"forks":16,"open_issues":8,"archived":false,"pushed_at":"2026-10-15","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","contributors":27,"tree_truncated":false,"test_files":119,"workflows":10,"other_ci":false,"readme_bytes":29958,"docs_files":0,"changelog":true,"license_file":true,"dts_files":0,"ci_status":"failure","ci_run_at":"2026-10-09","ci_workflow":"Performance tests","ci_event":"push","readme_path":"README.md","readme_sha":"0a0dd7b2b5ad10c95a7abdbe239c9ea7efaaccc9","months_since_release":0,"dormant":false,"repository_directory":null,"dependencies":0,"node_engine":null,"downloads_monthly":56935,"created_at":"2023-03-01T23:53:45Z","open_prs":3,"first_commit":"2023-04-03","last_commit":"2026-10-09","commits":264,"repo_read":"2026-10-24"},"release_notes":{"license":"Apache-2.0","quotable":true,"prereleases":13,"source":{"kind":"npm","path":"CHANGELOG.md","version":"2.2.3","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md"},"format":"keep-a-changelog","releases":[{"version":"2.2.3","date":"2026-10-09","date_source":"heading","heading":"Version 2.2.3 - 2026-10-09","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-223---2026-10-09","sections":[{"kind":"feature","heading":"Added","items":1},{"kind":"fix","heading":"Fixed","items":3}],"hash":"d0e81d0b13490ff4"},{"version":"2.2.2","date":"2026-09-02","date_source":"heading","heading":"Version 2.2.2 - 2026-09-02","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-222---2026-09-02","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"a7e033764ad0272c"},{"version":"2.2.1","date":"2026-08-27","date_source":"heading","heading":"Version 2.2.1 - 2026-08-27","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-221---2026-08-27","sections":[{"kind":"change","heading":"Changed","items":1},{"kind":"fix","heading":"Fixed","items":1}],"hash":"064d89d0471e2575"},{"version":"2.2.0","date":"2026-08-19","date_source":"heading","heading":"Version 2.2.0 - 2026-08-19","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-220---2026-08-19","sections":[{"kind":"fix","heading":"Fixed","items":5}],"hash":"bbaa4fc76655255c"},{"version":"2.1.0","date":"2026-07-28","date_source":"heading","heading":"Version 2.1.0 - 2026-07-28","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-210---2026-07-28","sections":[{"kind":"fix","heading":"Fixed","items":5}],"hash":"1b9b0799fccebdb1"},{"version":"2.0.3","date":"2026-07-21","date_source":"heading","heading":"Version 2.0.3 - 2026-07-21","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-203---2026-07-21","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"3f58c9495522b630"},{"version":"2.0.2","date":"2026-07-13","date_source":"heading","heading":"Version 2.0.2 - 2026-07-13","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-202---2026-07-13","sections":[{"kind":"fix","heading":"Fixed","items":3}],"hash":"dd8ff61203ecc1b8"},{"version":"2.0.1","date":"2026-06-19","date_source":"heading","heading":"Version 2.0.1 - 2026-06-19","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-201---2026-06-19","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"da927701f372682c"},{"version":"2.0.0","date":"2026-06-12","date_source":"heading","heading":"Version 2.0.0 - 2026-06-12","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-200---2026-06-12","sections":[{"kind":"feature","heading":"Added","items":12},{"kind":"change","heading":"Changed","items":7},{"kind":"fix","heading":"Fixed","items":7},{"kind":"removal","heading":"Removed","items":4}],"hash":"a42ffeb7932b08fc","cited_by":[{"version":"2.0.0","date":"2026-06-12"}]},{"version":"1.1.4","date":"2025-12-03","date_source":"heading","heading":"Version 1.1.4 - 2025-12-03","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-114---2025-12-03","sections":[{"kind":"fix","heading":"Fixed","items":2}],"hash":"0280265b01981aaf"},{"version":"1.1.3","date":"2025-10-27","date_source":"heading","heading":"Version 1.1.3 - 2025-10-27","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-113---2025-10-27","sections":[{"kind":"change","heading":"Changed","items":1}],"hash":"9afbc5943bd8bb51"},{"version":"1.1.2","date":"2025-10-23","date_source":"heading","heading":"Version 1.1.2 - 2025-10-23","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-112---2025-10-23","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"4b2c3eca2eaa5ac1"},{"version":"1.1.1","date":"2025-10-17","date_source":"heading","heading":"Version 1.1.1 - 2025-10-17","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-111---2025-10-17","sections":[{"kind":"feature","heading":"Added","items":2},{"kind":"change","heading":"Changed","items":1}],"hash":"85ec72b3474f156a"},{"version":"1.1.0","date":"2025-10-13","date_source":"heading","heading":"Version 1.1.0 - 2025-10-13","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-110---2025-10-13","sections":[{"kind":"feature","heading":"Added","items":2},{"kind":"fix","heading":"Fixed","items":3},{"kind":"change","heading":"Changed","items":1}],"hash":"eebf58a5bb68a916"},{"version":"1.0.8","date":"2025-03-28","date_source":"heading","heading":"Version 1.0.8 - 2025-03-28","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-108---2025-03-28","sections":[{"kind":"feature","heading":"Added","items":3},{"kind":"fix","heading":"Fixed","items":7},{"kind":"change","heading":"Changed","items":4}],"hash":"fa1cf4dd0756bb62"},{"version":"1.0.7","date":"2024-08-20","date_source":"heading","heading":"Version 1.0.7 - 2024-08-20","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-107---2024-08-20","sections":[{"kind":"feature","heading":"Added","items":2},{"kind":"fix","heading":"Fixed","items":8},{"kind":"change","heading":"Changed","items":3}],"hash":"896e6637eec34a10"},{"version":"1.0.6","date":"2024-04-29","date_source":"heading","heading":"Version 1.0.6 - 2024-04-29","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-106---2024-04-29","sections":[{"kind":"fix","heading":"Fixed","items":3},{"kind":"feature","heading":"Added","items":1},{"kind":"change","heading":"Changed","items":1}],"hash":"3e6683b9b6271313"},{"version":"1.0.5","date":"2024-01-15","date_source":"heading","heading":"Version 1.0.5 - 2024-01-15","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-105---2024-01-15","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"b54ba9f16451a3ae"},{"version":"1.0.4","date":"2024-01-08","date_source":"heading","heading":"Version 1.0.4 - 2024-01-08","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-104---2024-01-08","sections":[{"kind":"feature","heading":"Added","items":1},{"kind":"change","heading":"Changed","items":1},{"kind":"fix","heading":"Fixed","items":2}],"hash":"db40f7e9db42667a"},{"version":"1.0.3","date":"2023-11-10","date_source":"heading","heading":"Version 1.0.3 - 2023-11-10","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-103---2023-11-10","sections":[{"kind":"feature","heading":"Added","items":2},{"kind":"change","heading":"Changed","items":2}],"hash":"e0466de78cbf1019"},{"version":"1.0.2","date":"2023-10-31","date_source":"heading","heading":"Version 1.0.2 - 2023-10-31","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-102---2023-10-31","sections":[{"kind":"change","heading":"Changed","items":1}],"hash":"9d0a021abc27913d"},{"version":"1.0.1","date":"2023-10-26","date_source":"heading","heading":"Version 1.0.1 - 2023-10-26","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-101---2023-10-26","sections":[{"kind":"change","heading":"Changed","items":1},{"kind":"fix","heading":"Fixed","items":1}],"hash":"0b9daf078760e12f"},{"version":"1.0.0","date":"2023-10-18","date_source":"heading","heading":"Version 1.0.0 - 2023-10-18","url":"https://github.com/cap-js/change-tracking/blob/main/CHANGELOG.md#version-100---2023-10-18","sections":[{"kind":"feature","heading":"Added","items":1}],"hash":"955492c926db47de"}],"versions":[{"version":"2.2.3","date":"2026-10-09"},{"version":"2.2.2","date":"2026-09-02"},{"version":"2.2.1","date":"2026-08-27"},{"version":"2.2.0","date":"2026-08-19"},{"version":"2.1.0","date":"2026-07-28"},{"version":"2.0.3","date":"2026-07-21"},{"version":"2.0.2","date":"2026-07-13"},{"version":"2.0.1","date":"2026-06-19"},{"version":"2.0.0","date":"2026-06-12"},{"version":"1.2.2","date":"2026-06-02"},{"version":"1.2.1","date":"2026-03-26"},{"version":"1.2.0","date":"2026-03-25"},{"version":"1.1.4","date":"2025-12-03"},{"version":"1.1.3","date":"2025-10-27"},{"version":"1.1.2","date":"2025-10-23"},{"version":"1.1.1","date":"2025-10-17"},{"version":"1.1.0","date":"2025-10-13"},{"version":"1.0.8","date":"2025-03-28"},{"version":"1.0.7","date":"2024-08-20"},{"version":"1.0.6","date":"2024-04-29"},{"version":"1.0.5","date":"2024-01-17"},{"version":"1.0.4","date":"2024-01-08"},{"version":"1.0.3","date":"2023-11-10"},{"version":"1.0.2","date":"2023-10-31"},{"version":"1.0.1","date":"2023-10-26"},{"version":"1.0.0","date":"2023-10-18"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:cap-js","name":"SAP Cloud Application Programming Model","json":"/actors/cap-js.json"}],"contributors":[{"ref":"actor:akshay11298","name":"Akshay Avinash","json":"/actors/akshay11298.json"},{"ref":"actor:bobdenos","name":"Bob den Os","json":"/actors/bobdenos.json"},{"ref":"actor:chgeo","name":"Christian Georgi","json":"/actors/chgeo.json"},{"ref":"actor:cschuerings","name":"Christian Schürings","json":"/actors/cschuerings.json"},{"ref":"actor:danjoa","name":"Daniel Hutzel","json":"/actors/danjoa.json"},{"ref":"actor:frankvisuals","name":"Frank Hufnagel","json":"/actors/frankvisuals.json"},{"ref":"actor:jocelyngu135","name":"JocelynGu135","json":"/actors/jocelyngu135.json"},{"ref":"actor:johannes-vogel","name":"Johannes Vogel","json":"/actors/johannes-vogel.json"},{"ref":"actor:pandayo","name":"Lukas Schwabe","json":"/actors/pandayo.json"},{"ref":"actor:smahati","name":"Mahati Shankar","json":"/actors/smahati.json"},{"ref":"actor:mnkiefer","name":"Mara Nikola Kiefer","json":"/actors/mnkiefer.json"},{"ref":"actor:schiwekm","name":"Marten Schiwek","json":"/actors/schiwekm.json"},{"ref":"actor:schmarvinius","name":"Marvin L","json":"/actors/schmarvinius.json"},{"ref":"actor:nkaputnik","name":"Nick Josipovic","json":"/actors/nkaputnik.json"},{"ref":"actor:patricebender","name":"Patrice Bender","json":"/actors/patricebender.json"},{"ref":"actor:sirsimon04","name":"Simon Engel","json":"/actors/sirsimon04.json"},{"ref":"actor:koblers","name":"Simon Kobler","json":"/actors/koblers.json"},{"ref":"actor:sjvans","name":"sjvans","json":"/actors/sjvans.json"},{"ref":"actor:stefanrudi","name":"Stefan Rudi","json":"/actors/stefanrudi.json"},{"ref":"actor:swaldmann","name":"Steffen Waldmann","json":"/actors/swaldmann.json"},{"ref":"actor:hakimio","name":"Tomas Rimkus","json":"/actors/hakimio.json"},{"ref":"actor:sv7ennowitzki","name":"Wenjun Zheng","json":"/actors/sv7ennowitzki.json"}],"explained_by":[{"ref":"content:new-and-improved-change-tracking-plugin","name":"New and improved: Change Tracking plugin","json":"/content/new-and-improved-change-tracking-plugin.json"}],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}