{"ref":"content:reusable-components-for-cap-with-cds-plugin","page":"/content/reusable-components-for-cap-with-cds-plugin","json":"/content/reusable-components-for-cap-with-cds-plugin.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"reusable-components-for-cap-with-cds-plugin","title":"Reusable components for CAP with cds-plugin","url":"https://community.sap.com/t5/technology-blog-posts-by-sap/reusable-components-for-cap-with-cds-plugin/ba-p/13562077","content_type":"blog","explains":["capability:plugin-authoring"],"summary":"The post that taught the mechanism, and it teaches it by picking a requirement small enough to be absurd: every string a service returns should end in a random emoji. Working through that on the bookshop example leaves nothing to argue about except the plumbing, which is the point — what a cds-plugin is, where it hooks in, and why packaging it beats copying it into the next project. [Vinícius Barrionuevo](actor:vneecious) credits this post as the thing that gave him the idea for [sap-cap-sdm-plugin](artifact:vneecious-sap-cap-sdm-plugin), and it is hard to read the plugin ecosystem in this graph without it.","short":"Building a cds-plugin that appends an emoji to every string","authors":["actor:danschlachter"],"published":"2023-04-30","sources":[{"url":"https://community.sap.com/t5/technology-blog-posts-by-sap/reusable-components-for-cap-with-cds-plugin/ba-p/13562077","title":"Reusable components for CAP with cds-plugin — SAP Community","checked":"2026-09-08"}],"provenance":{"discovered_via":[{"source":"source:sap-community","channel":"cap-tag"}],"first_seen":"2026-09-08"},"drafted_with_ai":true,"published_on":"source:sap-community"},"readings":{"liveness":[{"label":"Checked against the source","tier":"unknown","evidence":"nobody has checked it"},{"label":"Source reachable","tier":"unknown","evidence":"not crawled"},{"label":"Age","tier":"poor","evidence":"published 42 months ago"}],"compatibility":[{"label":"Version","tier":"unknown","evidence":"no version declared"},{"label":"Moved since?","tier":"good","evidence":"no recorded change after 2023-04-30"},{"label":"Findings","tier":"good","evidence":"none flagged"}],"reach":[{"value":10243,"unit":"views"},{"value":9,"unit":"comments"},{"value":32,"unit":"likes"}]},"signals":{"views":10243,"likes":32,"comments":9,"metrics_at":"2026-10-25"},"series":null,"edges":{"authors":[{"ref":"actor:danschlachter","name":"Daniel Schlachter","json":"/actors/danschlachter.json"}]}}