{"ref":"artifact:open-abap-open-abap-odata","page":"/artifacts/open-abap-open-abap-odata","json":"/artifacts/open-abap-open-abap-odata.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"open-abap-open-abap-odata","name":"open-abap-odata","artifact_type":"package","ecosystem":"abap","flavors":[{"key":"standard-abap","source":{"url":"https://open-abap.org","title":"open-abap.org","checked":"2026-10-15","quote":"Multi-target ABAP libraries. Run on ECC + Steampunk + Node.js"}},{"key":"abap-cloud","source":{"url":"https://github.com/open-abap/open-abap-odata","title":"open-abap/open-abap-odata — README","checked":"2026-10-15","quote":"OData shims for Node.js and Steampunk"}}],"domain":"protocols-and-apis","origin_ring":"community-org","description":{"one_line":"A set of OData and Gateway shims in ABAP that serve services built the SEGW way, from a model provider and a data provider class, on Node.js and in \"Steampunk\".","short":"OData and Gateway shims serving SEGW-style services on Node.js","what_it_solves":"Serves OData services built the SEGW way, from a model provider class and a data provider class, on [Node.js](external:nodejs) and in \"Steampunk\". A service is registered by name with its two classes before the first request, the way SEGW registration does it on a real system, and `ZCL_OAO_HTTP_HANDLER` resolves `/sap/opu/odata/sap/<service>/...` through that registry and creates the classes dynamically, so the shim holds no concrete service class and can be consumed as a transpiler library. It stops at the handler: the `IF_HTTP_EXTENSION` and `IF_HTTP_SERVICE_EXTENSION` scaffolding is implemented separately on the target system and calls the handler's methods. Running it locally takes NodeJS 16 or later."},"links":{"repo":"https://github.com/open-abap/open-abap-odata"},"identity":{"author":"open-abap","license":"MIT"},"source_available":true,"provides":[{"capability":"capability:odata","what_it_does":"Serves OData services defined by SEGW model and data provider classes on [Node.js](external:nodejs) and in \"Steampunk\", resolving `/sap/opu/odata/sap/<service>/...` through a registry of service names.","sources":[{"url":"https://github.com/open-abap/open-abap-odata","title":"open-abap/open-abap-odata — README","checked":"2026-10-15","quote":"`ZCL_OAO_HTTP_HANDLER` resolves `/sap/opu/odata/sap/<service>/...` through the registry and instantiates the classes dynamically, so the shim can be consumed as a transpiler lib without any concrete service class in it."},{"url":"https://open-abap.org","title":"open-abap.org","checked":"2026-10-15","quote":"open-abap-odata, OData/Gateway shims for Node.js and Steampunk"}]}],"requires":[{"ref":"external:nodejs","requirement":"conditional","condition":"it is run locally, outside an ABAP system","for":"running it and its tests locally, with NodeJS 16 or later","sources":[{"url":"https://github.com/open-abap/open-abap-odata","title":"open-abap/open-abap-odata — README","checked":"2026-10-15","quote":"Run locally with NodeJS 16+, `npm install && npm test`"}]}],"maintainers":["actor:open-abap"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-10-15"},"contributors":["actor:bazhukovtima","actor:larshp","actor:oisee"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"3 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, 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":"23 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":12,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","npm":"not published under this name","stars":12,"forks":4,"open_issues":0,"archived":false,"pushed_at":"2026-10-07","license_spdx":"MIT","org_owned":true,"default_branch":"main","created_at":"2022-11-14T06:48:38Z","open_prs":0,"tree_truncated":false,"test_files":23,"workflows":1,"other_ci":false,"readme_bytes":851,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2022-11-14","last_commit":"2026-10-07","commits":68,"contributors":3,"readme_path":"README.md","readme_sha":"dfd0959921df8f4091d6217a285896aacc517fa4","repo_read":"2026-10-25","abap_syntax":{"repo":"open-abap/open-abap-odata","file":"abaplint.jsonc","url":"https://github.com/open-abap/open-abap-odata/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"},{"ref":"actor:bazhukovtima","name":"Timofei Bazhukov","json":"/actors/bazhukovtima.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}