{"ref":"artifact:sap-samples-cap-service-integration-codejam","page":"/artifacts/sap-samples-cap-service-integration-codejam","json":"/artifacts/sap-samples-cap-service-integration-codejam.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-samples-cap-service-integration-codejam","name":"SAP-samples/cap-service-integration-codejam","artifact_type":"sample","ecosystem":"cap","flavors":[{"key":"node","source":{"url":"https://github.com/SAP-samples/cap-service-integration-codejam","title":"SAP-samples/cap-service-integration-codejam — README","checked":"2026-09-13","quote":"the Node.js flavor of CAP"}}],"use_as":"starting-point","domain":"integration-and-messaging","origin_ring":"sap-official","description":{"one_line":"A CodeJam on integrating and consuming external services from a CAP project over twelve exercises, from importing and mocking an OData service to the SAP Cloud SDK covering connectivity and destinations.","short":"CodeJam on consuming external services from a CAP project","what_it_solves":"Twelve exercises take a CAP Node.js project through importing an OData service definition, mocking an external service (first in-process, then as a separate process with test data), adding CDS definitions to integrate it, and introducing the SAP Cloud SDK for connectivity and destinations. Later exercises switch the mock for a real remote system, associate local and remote entities, and extend the resulting SAP Fiori elements UI with annotations. The exercise content is based on an earlier SAP TechEd two-hour workshop."},"links":{"repo":"https://github.com/SAP-samples/cap-service-integration-codejam"},"type_properties":{"form":{"value":"workshop","sources":[{"url":"https://github.com/SAP-samples/cap-service-integration-codejam","title":"SAP-samples/cap-service-integration-codejam — README","checked":"2026-10-18","quote":"This repository contains the material for the \"Service Consumption with the SAP Cloud Application Programming Model\" CodeJam, brought to you by the Developer Advocates at SAP."}]}},"identity":{"license":"Apache-2.0"},"source_available":true,"demonstrates":["capability:destinations"],"maintainers":["actor:sap-samples"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-13"},"contributors":["actor:ajinkyapatil8190","actor:beckermarc","actor:btbernard","actor:danschlachter","actor:david-kunz","actor:dennstedtb","actor:dj-adams","actor:hm23","actor:jung-thomas"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"9 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-06, 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":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"fair","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 4 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":52,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":52,"forks":36,"open_issues":2,"archived":false,"pushed_at":"2026-06-05","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2023-01-30T18:35:53Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":4297,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2023-01-30","last_commit":"2026-06-05","commits":223,"contributors":9,"readme_path":"README.md","readme_sha":"bbf17c5a0c861f51d77d2dfc5d30466a39a6ce7b","repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:sap-samples","name":"SAP Samples","json":"/actors/sap-samples.json"}],"contributors":[{"ref":"actor:ajinkyapatil8190","name":"Ajinkya Patil","json":"/actors/ajinkyapatil8190.json"},{"ref":"actor:dennstedtb","name":"Bastian Dennstedt","json":"/actors/dennstedtb.json"},{"ref":"actor:btbernard","name":"Brian Bernard","json":"/actors/btbernard.json"},{"ref":"actor:danschlachter","name":"Daniel Schlachter","json":"/actors/danschlachter.json"},{"ref":"actor:dj-adams","name":"DJ Adams","json":"/actors/dj-adams.json"},{"ref":"actor:david-kunz","name":"Dr. David A. Kunz","json":"/actors/david-kunz.json"},{"ref":"actor:hm23","name":"Heiko Witteborg","json":"/actors/hm23.json"},{"ref":"actor:beckermarc","name":"Marc Becker","json":"/actors/beckermarc.json"},{"ref":"actor:jung-thomas","name":"Thomas Jung","json":"/actors/jung-thomas.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}