{"ref":"artifact:odatano-watch","page":"/artifacts/odatano-watch","json":"/artifacts/odatano-watch.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"odatano-watch","name":"@odatano/watch","artifact_type":"cds-plugin","ecosystem":"cap","domain":"integration-and-messaging","origin_ring":"independent","description":{"one_line":"Watches Cardano addresses, payment credentials and minting policies from inside CAP, emitting events with full UTxO payloads and persisting them so a missed window can be replayed.","short":"CAP plugin watching Cardano addresses and emitting events","what_it_solves":"Persistence for replay is what makes it a CAP plugin rather than a webhook: the chain does not resend, so the record of what was seen has to live somewhere the application can re-read."},"links":{"npm":"https://www.npmjs.com/package/@odatano/watch","repo":"https://github.com/ODATANO/ODATANO-WATCH"},"identity":{"author":"maxalexweber","license":"Apache-2.0"},"compat":{"runtimes":["node"],"cds_range":">=9.0.0"},"type_properties":{"distribution":{"value":["npm"],"sources":[{"url":"https://github.com/ODATANO/ODATANO-WATCH","title":"@odatano/watch — README","checked":"2026-10-18","quote":"npm add @odatano/watch"}]}},"provides":["capability:async-processing"],"provenance":{"discovered_via":[{"source":"source:npm","channel":"keywords:cds"}],"first_seen":"2026-09-07"},"maintainers":["actor:odatano"],"contributors":["actor:maxalexweber1"],"drafted_with_ai":true,"changed_in":[{"version":"0.1.1","date":"2026-01-19","what_changed":"The unused configuration options `blockfrostProjectId`, `batchSize`, `enableWebhooks` and `webhookEndpoint` were removed.","invalidates":"Configurations that set `blockfrostProjectId`, `batchSize` or the webhook options.","source":{"url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#011---2026-01-19","title":"@odatano/watch changelog, 0.1.1","checked":"2026-10-19","quote":"Unused configuration options: `blockfrostProjectId`, `batchSize`, `enableWebhooks`, `webhookEndpoint`"}},{"version":"0.1.1","date":"2026-01-19","what_changed":"Configuration is read consistently from `cds.env.requires.watch`, where earlier releases mixed config keys; the changelog marks this as breaking.","source":{"url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#011---2026-01-19","title":"@odatano/watch changelog, 0.1.1","checked":"2026-10-19","quote":"now consistently uses `cds.env.requires.watch` (previously mixed usage)"}},{"version":"0.1.5","date":"2026-05-03","what_changed":"A newly added watch starts at the current chain tip instead of backfilling from genesis; history comes from `backfill.backfillAddress()`, `backfillCredential()`, `backfillPolicy()` or an earlier `lastCheckedBlock` on the watch.","invalidates":"The expectation that adding an address, credential or policy replays its past transactions.","source":{"url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#015---2026-05-03","title":"@odatano/watch changelog, 0.1.5","checked":"2026-10-19","quote":"Watch-add no longer backfills history by default."}},{"version":"0.1.8","date":"2026-05-08","what_changed":"The plugin registers under `cds.requires.watch`, as the README documents, and no longer under `cds.requires.cardano-watcher`; the environment fallbacks `BLOCKFROST_KEY` and `KOIOS_KEY` are now `BLOCKFROST_API_KEY` and `KOIOS_API_KEY`, with no alias.","invalidates":"Setups that configure `cds.requires.cardano-watcher` or export `BLOCKFROST_KEY` or `KOIOS_KEY`.","source":{"url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#018---2026-05-08","title":"@odatano/watch changelog, 0.1.8","checked":"2026-10-19","quote":"must rename to `cds.requires.watch`. Anyone following the documented config is unaffected."}}]},"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":"fair","evidence":"6 months since release"},{"label":"Continuity","tier":"fair","evidence":"1 contributor, 1 publisher, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-05, not archived"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":">=9.0.0 — includes cds 10 and 9"},{"label":"Survived majors","tier":"poor","evidence":"no release since @sap/cds 10 shipped (July 2026)"},{"label":"Maintainer's CI","tier":"good","evidence":"Watch Tests green, 2026-05-17"}],"practice":[{"label":"Tests","tier":"good","evidence":"14 test files, npm test"},{"label":"Docs","tier":"good","evidence":"docs/ with 3 pages, README 5 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the repo"}],"reach":[{"value":12,"unit":"installs/week"},{"value":0,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","latest_version":"0.1.8","majors":{"0.1":{"version":"0.1.0","date":"2026-01-17"}},"license":"Apache-2.0","first_release":"2026-01-17","last_release":"2026-05-08","releases":9,"cadence_days":3,"maintainers":1,"repository":"git+https://github.com/ODATANO/ODATANO-WATCH.git","peer_cds":">=9.0.0","test_script":true,"types":true,"downloads_weekly":12,"stars":0,"forks":0,"open_issues":0,"archived":false,"pushed_at":"2026-05-17","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","contributors":1,"tree_truncated":false,"test_files":14,"workflows":1,"other_ci":false,"readme_bytes":4940,"docs_files":3,"changelog":true,"license_file":true,"dts_files":0,"ci_status":"success","ci_run_at":"2026-05-17","ci_workflow":"Watch Tests","ci_event":"push","readme_path":"README.md","readme_sha":"39aa787188b71188ee254f860e780f7da214b1ca","months_since_release":6,"dormant":false,"repository_directory":null,"dependencies":6,"node_engine":">=18.0.0","downloads_monthly":63,"created_at":"2026-01-16T08:07:32Z","open_prs":0,"first_commit":"2026-01-16","last_commit":"2026-05-17","commits":24,"repo_read":"2026-10-25"},"release_notes":{"license":"Apache-2.0","quotable":true,"source":{"kind":"npm","path":"CHANGELOG.md","version":"0.1.8","url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md"},"format":"keep-a-changelog","releases":[{"version":"0.1.8","date":"2026-05-08","date_source":"heading","heading":"[0.1.8] - 2026-05-08","url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#018---2026-05-08","sections":[{"kind":"fix","heading":"Fixed","items":1},{"kind":"change","heading":"Changed","items":2},{"kind":"breaking","heading":"Breaking (semantic)","items":2}],"hash":"a484511049c20cb8","cited_by":[{"version":"0.1.8","date":"2026-05-08"}]},{"version":"0.1.7","date":"2026-05-06","date_source":"heading","heading":"[0.1.7] - 2026-05-06","url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#017---2026-05-06","sections":[{"kind":"feature","heading":"Added","items":3}],"hash":"31aa092829088397"},{"version":"0.1.6","date":"2026-05-03","date_source":"heading","heading":"[0.1.6] - 2026-05-03","url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#016---2026-05-03","sections":[{"kind":"fix","heading":"Fixed","items":1},{"kind":"other","heading":"Maintenance","items":1}],"hash":"cef4810b6b000110"},{"version":"0.1.5","date":"2026-05-03","date_source":"heading","heading":"[0.1.5] - 2026-05-03","url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#015---2026-05-03","sections":[{"kind":"fix","heading":"Fixed","items":5},{"kind":"change","heading":"Changed","items":3},{"kind":"breaking","heading":"Breaking (semantic)","items":1}],"hash":"0d2a44c4ee3d7208","cited_by":[{"version":"0.1.5","date":"2026-05-03"}]},{"version":"0.1.4","date":"2026-05-03","date_source":"heading","heading":"[0.1.4] - 2026-05-03","url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#014---2026-05-03","sections":[{"kind":"feature","heading":"Added","items":29},{"kind":"change","heading":"Changed","items":4},{"kind":"fix","heading":"Fixed","items":2},{"kind":"other","heading":"Known limitations","items":5}],"hash":"5d29fd60b824f285"},{"version":"0.1.3","date":"2026-02-07","date_source":"heading","heading":"[0.1.3] - 2026-02-07","url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#013---2026-02-07","sections":[{"kind":"fix","heading":"Fixed","items":2}],"hash":"cc74c1ef4c064712"},{"version":"0.1.2","date":"2026-01-22","date_source":"heading","heading":"[0.1.2] - 2026-01-22","url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#012---2026-01-22","sections":[{"kind":"feature","heading":"Added","items":5},{"kind":"change","heading":"Changed","items":3},{"kind":"fix","heading":"Fixed","items":4},{"kind":"other","heading":"Infrastructure","items":3}],"hash":"10bdd0762a9e1df5"},{"version":"0.1.1","date":"2026-01-19","date_source":"heading","heading":"[0.1.1] - 2026-01-19","url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#011---2026-01-19","sections":[{"kind":"breaking","heading":null,"items":1},{"kind":"change","heading":"Changed","items":3},{"kind":"removal","heading":"Removed","items":2},{"kind":"fix","heading":"Fixed","items":3}],"hash":"dae1206be709d807","cited_by":[{"version":"0.1.1","date":"2026-01-19"},{"version":"0.1.1","date":"2026-01-19"}]},{"version":"0.1.0","date":"2026-01-17","date_source":"heading","heading":"[0.1.0] - 2026-01-17","url":"https://github.com/ODATANO/ODATANO-WATCH/blob/main/CHANGELOG.md#010---2026-01-17","sections":[{"kind":"feature","heading":"Added","items":14},{"kind":"feature","heading":"Features","items":5}],"hash":"bb2406c12d727509"}],"versions":[{"version":"0.1.8","date":"2026-05-08"},{"version":"0.1.7","date":"2026-05-06"},{"version":"0.1.6","date":"2026-05-03"},{"version":"0.1.5","date":"2026-05-03"},{"version":"0.1.4","date":"2026-05-03"},{"version":"0.1.3","date":"2026-02-07"},{"version":"0.1.2","date":"2026-01-22"},{"version":"0.1.1","date":"2026-01-19"},{"version":"0.1.0","date":"2026-01-17"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:odatano","name":"ODATANO","json":"/actors/odatano.json"}],"contributors":[{"ref":"actor:maxalexweber1","name":"Max","json":"/actors/maxalexweber1.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}