{"ref":"artifact:martinpankraz-az-private-linky-cap","page":"/artifacts/martinpankraz-az-private-linky-cap","json":"/artifacts/martinpankraz-az-private-linky-cap.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"martinpankraz-az-private-linky-cap","name":"az-private-linky-cap","artifact_type":"sample","ecosystem":"cap","serves_ecosystems":["btp"],"use_as":"starting-point","domain":"integration-and-messaging","origin_ring":"independent","description":{"one_line":"A CAP project reaching an S/4 backend through SAP BTP Private Link Service for Azure, with the private hostname and the credentials held in a destination.","short":"CAP project reaching S/4 via SAP BTP Private Link Service for Azure","what_it_solves":"A deployable CAP service whose subject is one destination: proxy type `PrivateLink`, a URL that is a private hostname rather than an internet address, and `TrustAll` set because, as the README says, CAP v1 does not yet apply a Destination custom trust store. That is what stands in for a [Cloud Connector](artifact:sap-cloud-connector) in front of an on-premise system; the README calls it a managed component that exposes SAP backends to BTP on Azure without one, written against S4, with ECC, BO, PI/PO and SolMan named as reachable the same way. The CAP side is thin: it reads `/sap/opu/odata/sap/epm_ref_apps_prod_man_srv`, deploys as an MTA, and binds the `az-destinations` [SAP Destination service](artifact:btp-destination) instance through `cds bind` for hybrid testing. It stops at the backend, since the Fiori front end and the Integration Suite iFlow are separate repositories the README links, and provisioning [SAP BTP Private Link Service for Azure](https://help.sap.com/viewer/product/PRIVATE_LINK/CLOUD/en-US) itself is outside it."},"links":{"repo":"https://github.com/MartinPankraz/az-private-linky-cap","issues":"https://github.com/MartinPankraz/az-private-linky-cap/issues"},"source_available":true,"compat":{"runtimes":["node"],"deployment":["cf","hybrid"]},"type_properties":{"form":{"value":"tutorial","sources":[{"url":"https://github.com/MartinPankraz/az-private-linky-cap","title":"az-private-linky-cap — README","checked":"2026-10-18","quote":"Find my blog post series on the topic [here](https://blogs.sap.com/2021/12/29/getting-started-with-btp-private-link-service-for-azure/)."}]}},"demonstrates":["capability:destinations"],"requires":[{"ref":"artifact:btp-destination","for":"The private hostname, the credentials and the PrivateLink proxy type are held in a destination named az-destinations, which the deployed application and the local hybrid profile both bind.","requirement":"required","sources":[{"url":"https://github.com/MartinPankraz/az-private-linky-cap","title":"MartinPankraz/az-private-linky-cap — README, Getting Started from SAP Business Application Studio","checked":"2026-09-18","quote":"Maintain your target on the deployed Destination service az-destinations"}]}],"maintainers":["actor:martinpankraz"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-18"},"contributors":["actor:martinpankraz"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"2 contributors"},{"label":"Repository","tier":"poor","evidence":"pushed 2024-02, 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":"fair","evidence":"README 4 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":0,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":0,"forks":0,"open_issues":6,"archived":false,"pushed_at":"2024-02-26","license_spdx":null,"org_owned":false,"default_branch":"master","created_at":"2021-07-01T11:24:55Z","tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":3779,"docs_files":0,"changelog":false,"license_file":false,"dts_files":0,"first_commit":"2021-07-01","last_commit":"2023-11-27","commits":31,"contributors":2,"readme_path":"README.md","readme_sha":"def372de2584132b4b8838eaaa2bbeec6905d06c","open_prs":6,"repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:martinpankraz","name":"Martin Pankraz","json":"/actors/martinpankraz.json"}],"contributors":[{"ref":"actor:martinpankraz","name":"Martin Pankraz","json":"/actors/martinpankraz.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}