{"ref":"artifact:cap-java-sdm","page":"/artifacts/cap-java-sdm","json":"/artifacts/cap-java-sdm.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"cap-java-sdm","name":"com.sap.cds:sdm","artifact_type":"package","ecosystem":"cap","domain":"data-and-persistence","origin_ring":"sap-official","description":{"one_line":"A CAP Java plugin that stores attachments in an SAP Document Management repository through an Attachments aspect, with draft handling and direct creation on active entities; versioned repositories are excluded.","short":"CAP Java plugin for attachments in SAP Document Management","what_it_solves":"Stores CAP Java attachments in an SAP Document Management repository through an Attachments aspect. It documents draft handling and direct attachment creation on active entities. Versioned repositories are excluded.","when_not_to_use":"If document versions are required, the [documented restrictions](https://raw.githubusercontent.com/cap-java/sdm/673769f24ef66fd97daa6a6be41262d45065d3fe/README.md) exclude versioned repositories."},"links":{"repo":"https://github.com/cap-java/sdm"},"source_available":true,"compat":{"runtimes":["java"]},"type_properties":{"placement":{"value":"in-host","sources":[{"url":"https://github.com/cap-java/sdm","title":"com.sap.cds:sdm — README","checked":"2026-10-18","quote":"This plugin can be consumed by the CAP application deployed on BTP to store their documents in the form of attachments in Document Management Repository."}]},"distribution":{"value":["maven"],"sources":[{"url":"https://github.com/cap-java/sdm","title":"com.sap.cds:sdm — README","checked":"2026-10-18","quote":"<artifactId>sdm</artifactId>"}]}},"flavors":[{"key":"java","source":{"url":"https://raw.githubusercontent.com/cap-java/sdm/673769f24ef66fd97daa6a6be41262d45065d3fe/README.md","title":"cap-java/sdm — README","checked":"2026-09-17","quote":"CAP Java plugin"}}],"drafted_with_ai":true,"provides":[{"capability":"capability:attachments","what_it_does":"Stores CAP Java attachments in an SAP Document Management repository through an Attachments aspect. It documents draft handling and direct attachment creation on active entities.","sources":[{"url":"https://raw.githubusercontent.com/cap-java/sdm/673769f24ef66fd97daa6a6be41262d45065d3fe/README.md","title":"cap-java/sdm — README","checked":"2026-09-17","quote":"This plugin can be consumed by the CAP application deployed on BTP to store their documents in the form of attachments in Document Management Repository."},{"url":"https://raw.githubusercontent.com/cap-java/sdm/673769f24ef66fd97daa6a6be41262d45065d3fe/README.md","title":"cap-java/sdm — README","checked":"2026-09-17","quote":"Active entity attachment creation: Provides the capability to create attachments directly on active (non-draft) entities."},{"url":"https://raw.githubusercontent.com/cap-java/sdm/673769f24ef66fd97daa6a6be41262d45065d3fe/README.md","title":"cap-java/sdm — README","checked":"2026-09-17","quote":"Virus scanning : Provides the capability to support malware scan and Trend Micro scan for virus scan enabled repositories."},{"url":"https://raw.githubusercontent.com/cap-java/sdm/673769f24ef66fd97daa6a6be41262d45065d3fe/README.md","title":"cap-java/sdm — README","checked":"2026-09-17","quote":"Repository : This plugin does not support the use of versioned repositories."}],"facets":[{"key":"storage_target","value":"SAP Document Management repository","applies_to":{"ecosystems":["cap"],"flavors":["java"]},"source":{"url":"https://raw.githubusercontent.com/cap-java/sdm/673769f24ef66fd97daa6a6be41262d45065d3fe/README.md","title":"cap-java/sdm — README","checked":"2026-09-17","quote":"This plugin can be consumed by the CAP application deployed on BTP to store their documents in the form of attachments in Document Management Repository."}},{"key":"upload_flow","value":"Draft flow or direct creation on active entities","applies_to":{"ecosystems":["cap"],"flavors":["java"]},"source":{"url":"https://raw.githubusercontent.com/cap-java/sdm/673769f24ef66fd97daa6a6be41262d45065d3fe/README.md","title":"cap-java/sdm — README","checked":"2026-09-17","quote":"Active entity attachment creation: Provides the capability to create attachments directly on active (non-draft) entities."}},{"key":"scan_behaviour","value":"Malware and Trend Micro scan on scan-enabled repositories","applies_to":{"ecosystems":["cap"],"flavors":["java"]},"source":{"url":"https://raw.githubusercontent.com/cap-java/sdm/673769f24ef66fd97daa6a6be41262d45065d3fe/README.md","title":"cap-java/sdm — README","checked":"2026-09-17","quote":"Virus scanning : Provides the capability to support malware scan and Trend Micro scan for virus scan enabled repositories."}},{"key":"versioned_repository","value":false,"applies_to":{"ecosystems":["cap"],"flavors":["java"]},"source":{"url":"https://raw.githubusercontent.com/cap-java/sdm/673769f24ef66fd97daa6a6be41262d45065d3fe/README.md","title":"cap-java/sdm — README","checked":"2026-09-17","quote":"Repository : This plugin does not support the use of versioned repositories."}}]}],"requires":[{"ref":"artifact:btp-document-management-integration","requirement":"required","role":"attachment-storage","sources":[{"url":"https://raw.githubusercontent.com/cap-java/sdm/673769f24ef66fd97daa6a6be41262d45065d3fe/README.md","title":"cap-java/sdm — README","checked":"2026-09-17","quote":"3. Create a SAP Document Management Integration Option [Service instance and key](https://help.sap.com/docs/document-management-service/sap-document-management-service/creating-service-instance-and-service-key). Bind your CAP application to this SDM instance. Add the details of this instance to the resources section in the `mta.yaml` of your CAP application. Refer the following example from a sample Bookshop app."}]}],"history":[{"date":"2026-09-17","field":"provides.what_it_does","from":null,"to":"Stores CAP Java attachments in an SAP Document Management repository through an Attachments aspect. It documents draft handling and direct attachment creation on active entities.","reason":"New CAP Java provider discovered through official CAP documentation. Facts describe the pinned source revision, not verified deployment compatibility."}],"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-17"},"maintainers":["actor:cap-java"],"contributors":["actor:akgarg06","actor:akshatjain-official","actor:chgeo","actor:deepikasingh2711","actor:dheerasameerk","actor:krshubham-1","actor:maheshsooryambylu","actor:mofterdinger","actor:pujadeshmukh17","actor:rashmiangadi05","actor:rishikunnath2747","actor:vibhutikumar07","actor:yashmeet29"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"15 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"good","evidence":"UnitTestsWithCodeCoverage green, 2026-10-07"}],"practice":[{"label":"Tests","tier":"good","evidence":"91 test files"},{"label":"Docs","tier":"good","evidence":"README 73 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":1,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":1,"forks":0,"open_issues":27,"archived":false,"pushed_at":"2026-10-14","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"develop","created_at":"2024-07-17T05:20:12Z","open_prs":26,"tree_truncated":false,"test_files":91,"workflows":21,"other_ci":false,"readme_bytes":75039,"docs_files":0,"changelog":true,"license_file":true,"dts_files":0,"first_commit":"2024-07-17","last_commit":"2026-10-07","commits":2043,"contributors":15,"ci_status":"success","ci_run_at":"2026-10-07","ci_workflow":"UnitTestsWithCodeCoverage","ci_event":"push","readme_path":"README.md","readme_sha":"e2bb94059ee2ad1af3a2f83adb05b4df0db0489b","repo_read":"2026-10-26"},"release_notes":{"license":"Apache-2.0","quotable":true,"source":{"kind":"repo","path":"CHANGELOG.md","ref":"develop","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md"},"format":"keep-a-changelog","releases":[{"version":"1.10.4","heading":"Version 1.10.4","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-1104","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"064632d2646954e5"},{"version":"1.10.3","heading":"Version 1.10.3","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-1103","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"4394da1dfee8f61f"},{"version":"1.10.2","heading":"Version 1.10.2","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-1102","sections":[{"kind":"fix","heading":"Fixed","items":4}],"hash":"36e1d1b0d91a9bf2"},{"version":"1.10.1","heading":"Version 1.10.1","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-1101","sections":[{"kind":"fix","heading":"Fixed","items":3}],"hash":"70aae023aa9103fc"},{"version":"1.10.0","heading":"Version 1.10.0","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-1100","sections":[{"kind":"feature","heading":"Added","items":2},{"kind":"fix","heading":"Fixed","items":5}],"hash":"eb2c6a151cb9f762"},{"version":"1.9.0","heading":"Version 1.9.0","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-190","sections":[{"kind":"feature","heading":"Added","items":1},{"kind":"fix","heading":"Fixed","items":2}],"hash":"5bb933abb37d461a"},{"version":"1.8.1","heading":"Version 1.8.1","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-181","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"d2545e8165eedf04"},{"version":"1.8.0","heading":"Version 1.8.0","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-180","sections":[{"kind":"feature","heading":"Added","items":1},{"kind":"fix","heading":"Fixed","items":5}],"hash":"70feb6a2e1ff0c6c"},{"version":"1.7.0","heading":"Version 1.7.0","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-170","sections":[{"kind":"feature","heading":"Added","items":4},{"kind":"fix","heading":"Fixed","items":2}],"hash":"798ce41ba0b27561"},{"version":"1.6.2","heading":"Version 1.6.2","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-162","sections":[{"kind":"fix","heading":"Fixed","items":5}],"hash":"d21f7264a592e7fc"},{"version":"1.6.1","heading":"Version 1.6.1","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-161","sections":[{"kind":"fix","heading":"Fixed","items":7}],"hash":"632521b28ca446b6"},{"version":"1.6.0","heading":"Version 1.6.0","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-160","sections":[{"kind":"feature","heading":"Added","items":3},{"kind":"fix","heading":"Fixed","items":9}],"hash":"96f4a8ef5f5a31ab"},{"version":"1.5.0","heading":"Version 1.5.0","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-150","sections":[{"kind":"feature","heading":"Added","items":1},{"kind":"fix","heading":"Fixed","items":2}],"hash":"19c002494c2ca2c9"},{"version":"1.4.1","heading":"Version 1.4.1","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-141","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"1415a347e3878b14"},{"version":"1.4.0","heading":"Version 1.4.0","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-140","sections":[{"kind":"feature","heading":"Added","items":2},{"kind":"fix","heading":"Fixed","items":1}],"hash":"c7d596eead77104e"},{"version":"1.3.1","heading":"Version 1.3.1","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-131","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"2c78d7e59d9c2ad3"},{"version":"1.3.0","heading":"Version 1.3.0","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-130","sections":[{"kind":"feature","heading":"Added","items":3}],"hash":"d9fd2e4fadb7f286"},{"version":"1.2.0","heading":"Version 1.2.0","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-120","sections":[{"kind":"fix","heading":"Fixed","items":1},{"kind":"feature","heading":"Added","items":2}],"hash":"48229bd2680d6334"},{"version":"1.1.0","heading":"Version 1.1.0","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-110","sections":[{"kind":"fix","heading":"Fixed","items":3},{"kind":"feature","heading":"Added","items":1}],"hash":"9c621284bb3c47fd"},{"version":"1.0.2","heading":"Version 1.0.2","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-102","sections":[{"kind":"feature","heading":"Added","items":2},{"kind":"fix","heading":"Fixed","items":2}],"hash":"398ab12adf036cde"},{"version":"1.0.1","heading":"Version 1.0.1","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-101","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"e6d8a596cd10dc3d"},{"version":"1.0.0","heading":"Version 1.0.0","url":"https://github.com/cap-java/sdm/blob/develop/CHANGELOG.md#version-100","sections":[{"kind":"feature","heading":"Added","items":7}],"hash":"3989ddc07f665f31"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:cap-java","name":"CAP","json":"/actors/cap-java.json"}],"contributors":[{"ref":"actor:akshatjain-official","name":"Akshat Jain","json":"/actors/akshatjain-official.json"},{"ref":"actor:akgarg06","name":"Ankush Kumar Garg","json":"/actors/akgarg06.json"},{"ref":"actor:chgeo","name":"Christian Georgi","json":"/actors/chgeo.json"},{"ref":"actor:deepikasingh2711","name":"Deepika Singh NS","json":"/actors/deepikasingh2711.json"},{"ref":"actor:dheerasameerk","name":"dheerasameerk","json":"/actors/dheerasameerk.json"},{"ref":"actor:krshubham-1","name":"krshubham-1","json":"/actors/krshubham-1.json"},{"ref":"actor:maheshsooryambylu","name":"maheshsooryambylu","json":"/actors/maheshsooryambylu.json"},{"ref":"actor:mofterdinger","name":"Markus Ofterdinger","json":"/actors/mofterdinger.json"},{"ref":"actor:pujadeshmukh17","name":"PujaDeshmukh17","json":"/actors/pujadeshmukh17.json"},{"ref":"actor:rashmiangadi05","name":"rashmiangadi05","json":"/actors/rashmiangadi05.json"},{"ref":"actor:rishikunnath2747","name":"Rishi Kunnath","json":"/actors/rishikunnath2747.json"},{"ref":"actor:vibhutikumar07","name":"vibhutikumar","json":"/actors/vibhutikumar07.json"},{"ref":"actor:yashmeet29","name":"yashmeet29","json":"/actors/yashmeet29.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}