{"ref":"artifact:open-abap-express-icf-shim","page":"/artifacts/open-abap-express-icf-shim","json":"/artifacts/open-abap-express-icf-shim.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"open-abap-express-icf-shim","name":"express-icf-shim","artifact_type":"package","ecosystem":"abap","domain":"developer-experience","origin_ring":"community-org","description":{"one_line":"A shim that runs an ABAP ICF handler written against if_http_extension behind an Express 4.x server, for ABAP transpiled to JavaScript and run on Node.js in testing and continuous integration.","short":"Shim running an ABAP ICF handler behind an Express 4.x server","what_it_solves":"Serves an ICF service written in ABAP from an [Express](https://expressjs.com) 4.x app: after `initializeABAP()`, a route calls `cl_express_icf_shim.run` with the request, the response and the name of the handler class, such as `ZCL_HTTP_HANDLER`, and the handler's `if_http_extension` code answers the request. [open-abap.org](https://open-abap.org), where ABAP runs on [Node.js](external:nodejs) by transpiling it to JavaScript, lists it among the shims for testing and continuous integration. The ABAP code has to set the correct status and content type on each response itself, as the README states."},"links":{"repo":"https://github.com/open-abap/express-icf-shim"},"identity":{"author":"open-abap","license":"MIT"},"compat":{"runtimes":["node"]},"type_properties":{"distribution":{"value":["npm"],"sources":[{"url":"https://github.com/open-abap/express-icf-shim","title":"express-icf-shim — README","checked":"2026-10-18","quote":"npm install express@4 --save-dev"}]}},"source_available":true,"provides":[{"capability":"capability:abap-unit-testing","what_it_does":"Serves an ABAP ICF handler, transpiled to JavaScript, from an Express server on [Node.js](external:nodejs), so an HTTP service written in ABAP can be exercised in tests outside a system.","sources":[{"url":"https://github.com/open-abap/express-icf-shim","title":"open-abap/express-icf-shim — README","checked":"2026-10-15","quote":"express 4.x ICF shim, `if_http_extension`"},{"url":"https://open-abap.org","title":"open-abap.org","checked":"2026-10-15","quote":"express-icf-shim, Shim for running ICF services on Express"},{"url":"https://open-abap.org","title":"open-abap.org","checked":"2026-10-15","quote":"By transpiling ABAP to Javascript, ABAP can run on Node.js."},{"url":"https://open-abap.org","title":"open-abap.org","checked":"2026-10-15","quote":"Shims Testing and Continuous Integration"}]}],"maintainers":["actor:open-abap"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-10-15"},"contributors":["actor:larshp","actor:oisee"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"2 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-09, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"abaplint syntax open-abap, no release"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"fair","evidence":"workflows present, no completed run on the default branch"}],"practice":[{"label":"Tests","tier":"good","evidence":"5 test files"},{"label":"Docs","tier":"poor","evidence":"README 1 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":2,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":2,"forks":1,"open_issues":4,"archived":false,"pushed_at":"2026-09-25","license_spdx":"MIT","org_owned":true,"default_branch":"main","created_at":"2022-01-10T12:28:14Z","open_prs":0,"tree_truncated":false,"test_files":5,"workflows":1,"other_ci":false,"readme_bytes":584,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2022-01-10","last_commit":"2026-09-25","commits":36,"contributors":2,"readme_path":"README.md","readme_sha":"943713909a4f53057e0cf580b27156ea1943f750","repo_read":"2026-10-26","abap_syntax":{"repo":"open-abap/express-icf-shim","file":"abaplint.jsonc","url":"https://github.com/open-abap/express-icf-shim/blob/HEAD/abaplint.jsonc","version":"open-abap","checked":"2026-10-26"}},"edges":{"maintainers":[{"ref":"actor:open-abap","name":"open-abap","json":"/actors/open-abap.json"}],"contributors":[{"ref":"actor:oisee","name":"Alice V.","json":"/actors/oisee.json"},{"ref":"actor:larshp","name":"Lars Hvam","json":"/actors/larshp.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[{"ref":"artifact:abap2ui5-web-abap2ui5","name":"web-abap2UI5","json":"/artifacts/abap2ui5-web-abap2ui5.json","requirement":"required"}],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}