{"ref":"artifact:sap-cds-oyster","page":"/artifacts/sap-cds-oyster","json":"/artifacts/sap-cds-oyster.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-cds-oyster","name":"@sap/cds-oyster","artifact_type":"cds-plugin","ecosystem":"cap","flavors":[{"key":"node","source":{"url":"https://www.npmjs.com/package/@sap/cds-oyster","title":"@sap/cds-oyster — npm README","checked":"2026-09-13","quote":"a secure execution environment for tenant-specific code in the Node.js version of CAP"}}],"domain":"operations-and-runtime","origin_ring":"sap-official","description":{"one_line":"Runs tenant-specific extension code inside a WebAssembly sandbox, so a SaaS application can accept custom logic from a customer without running it unguarded.","short":"WebAssembly sandbox for tenant-specific extension code in CAP"},"links":{"npm":"https://www.npmjs.com/package/@sap/cds-oyster","homepage":"https://cap.cloud.sap/"},"type_properties":{"distribution":{"value":["npm"],"sources":[{"url":"https://www.npmjs.com/package/@sap/cds-oyster","title":"@sap/cds-oyster — README","checked":"2026-10-18","quote":"npm add @sap/cds-oyster"}]}},"provides":["capability:multitenancy"],"provenance":{"discovered_via":[{"source":"source:npm"},{"source":"source:discover"}],"first_seen":"2026-09-02"},"source_available":false,"history":[{"date":"2026-09-08","field":"links.repo","from":"https://github.com/TODO/sap-cds-oyster","to":"npm: https://www.npmjs.com/package/@sap/cds-oyster","reason":"The repository was a placeholder that never resolved — github.com/TODO/… . There is no public repository for this package, so npm is its address and source_available says why."},{"date":"2026-09-08","field":"description.one_line","from":"CDS plugin providing code extensibility as part of CAP extensibility using @sap/cds-mtxs.","to":"Runs tenant-specific extension code inside a WebAssembly sandbox, so a SaaS application can accept custom logic from a customer without running it unguarded.","reason":"Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim."}],"drafted_with_ai":true,"changed_in":[{"version":"0.2.0","date":"2025-10-06","what_changed":"Extension code can no longer call a bound action as `this.action()`, only unbound actions, and before-READ extension handlers are removed. The same release switches to Oyster v2.","invalidates":"Extension examples that call `this.action()` or register a before-READ handler.","source":{"url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","title":"@sap/cds-oyster changelog, 0.2.0","checked":"2026-10-19","quote":"Calling bound action from extension in form `this.action()`. Only unbound actions are allowed."}},{"version":"0.5.1","date":"2026-07-14","what_changed":"The `runtime` option is now `sandbox`, with `wasm` for `oyster` and `mocked` for `debug`; development defaults to `mocked` and production allows only `wasm`. `extensibleAnnotation` defaults to `true`, so `@extensible.code` decides which code extensions are allowed instead of the extension allow-list, and the `maxResultSize` option and `req.user` in the sandbox are removed.","invalidates":"Configuration that sets `runtime` to `oyster`, or that relies on `extension-allowlist` to gate code extensions.","source":{"url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","title":"@sap/cds-oyster changelog, 0.5.1","checked":"2026-10-19","quote":"`runtime` option is renamed to `sandbox`. The possible values are `wasm` (previously `oyster`) and `mocked` (previously `debug`)."}}]},"effective_normative_relations":[{"instrument":"instrument:sap-developer-license-3-2-cap","relation":"use-constrained-by","sections":["1","2","3"],"applies_when":"A cds-plugin is used with SAP CAP materials, or an artifact is explicitly identified as a CAP plugin or application.","note":"This is inherited applicability, not a licence verdict about the artifact itself. Review the agreement for the actual materials and use; an explicit artifact relationship to another revision takes precedence.","scope":{"kind":"artifact"},"sources":[{"url":"https://cap.cloud.sap/resources/license/developer-license-3_2_CAP.txt","title":"SAP Developer License Agreement 3.2 CAP","checked":"2026-09-16","quote":"documentation, plug-ins, templates, scripts and sample code, libraries, software development kits"}],"inherited_from":"cap-plugins-and-applications","relevant_capabilities":["agent-systems-access","async-processing","data-import-export","database-connectors","deployment","destinations","llm-integration","mcp-servers","plugin-authoring","replication","retrieval-augmented-generation","rfc-connectivity"]}],"readings":{"liveness":[{"label":"Maintenance","tier":"good","evidence":"1 month since release"},{"label":"Continuity","tier":"fair","evidence":"1 publisher on npm"},{"label":"Repository","tier":"unknown","evidence":"no repository data"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"^9 || ^10 — cds 9 only, in maintenance until 2027-06"},{"label":"Survived majors","tier":"good","evidence":"released before and after @sap/cds 10"},{"label":"Maintainer's CI","tier":"unknown","evidence":"no repository data"}],"practice":[{"label":"Tests","tier":"unknown","evidence":"npm test script, tree not read"},{"label":"Docs","tier":"good","evidence":"README 67 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the package"}],"reach":[{"value":153,"unit":"installs/week"},{"value":null,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","latest_version":"0.5.5","majors":{"0.1":{"version":"0.1.0","date":"2025-07-04"},"0.2":{"version":"0.2.0","date":"2025-10-08"},"0.3":{"version":"0.3.0","date":"2026-03-11"},"0.4":{"version":"0.4.0","date":"2026-07-06"},"0.5":{"version":"0.5.1","date":"2026-07-14"}},"license":"SEE LICENSE IN LICENSE","first_release":"2025-07-04","last_release":"2026-09-15","releases":11,"cadence_days":22,"maintainers":1,"repository":null,"peer_cds":"^9 || ^10","test_script":true,"types":true,"downloads_weekly":153,"months_since_release":1,"dormant":false,"repository_directory":null,"dependencies":4,"node_engine":null,"downloads_monthly":1485,"npm_document_version":"0.5.5","npm_document_integrity":"sha512-2f/xIAVipvGxLA/tVs8dYVaRuEwXQb54B8qrtcstMsb2/0kvct8yx+BXt39aYgH2OHTZHVpqSarIeu6rQjVPmQ==","npm_document_tarball":"https://registry.npmjs.org/@sap/cds-oyster/-/cds-oyster-0.5.5.tgz","readme_path":"README.md","readme_bytes":68723,"readme_source":"npm","changelog":true,"changelog_path":"CHANGELOG.md","license_file":true,"license_path":"LICENSE","license_name":"SAP DEVELOPER LICENSE AGREEMENT 3.2 CAP"},"release_notes":{"license":"SAP DEVELOPER LICENSE AGREEMENT 3.2 CAP","quotable":false,"source":{"kind":"npm","path":"CHANGELOG.md","version":"0.5.5","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md"},"format":"keep-a-changelog","releases":[{"version":"0.5.5","date":"2026-09-15","date_source":"heading","heading":"Version 0.5.5 - 2026-09-15","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","sections":[{"kind":"feature","heading":"Add","items":1},{"kind":"fix","heading":"Fixed","items":5}],"hash":"45b4bdc3aa066bfe"},{"version":"0.5.4","date":"2026-08-11","date_source":"heading","heading":"Version 0.5.4 - 2026-08-11","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":2}],"hash":"0d26fcb98241113c"},{"version":"0.5.3","date":"2026-08-05","date_source":"heading","heading":"Version 0.5.3 - 2026-08-05","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"429dfea2708d398f"},{"version":"0.5.2","date":"2026-07-15","date_source":"heading","heading":"Version 0.5.2 - 2026-07-15","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"8cd39c94bd7ee93e"},{"version":"0.5.1","date":"2026-07-14","date_source":"heading","heading":"Version 0.5.1 - 2026-07-14","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":1},{"kind":"change","heading":"Changed","items":5},{"kind":"deprecation","heading":"Deprecated","items":1},{"kind":"feature","heading":"Added","items":5},{"kind":"removal","heading":"Removed","items":2}],"hash":"4c121cf88dce02d5","cited_by":[{"version":"0.5.1","date":"2026-07-14"}]},{"version":"0.4.0","date":"2026-05-29","date_source":"heading","heading":"Version 0.4.0 - 2026-05-29","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":2},{"kind":"change","heading":"Changed","items":4},{"kind":"feature","heading":"Added","items":4}],"hash":"49c1ff81e5519ad4"},{"version":"0.3.1","date":"2026-05-08","date_source":"heading","heading":"Version 0.3.1 - 2026-05-08","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":1},{"kind":"change","heading":"Changed","items":4}],"hash":"5b0ab442f92d1306"},{"version":"0.3.0","date":"2026-03-11","date_source":"heading","heading":"Version 0.3.0 - 2026-03-11","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":1},{"kind":"fix","heading":"Fixed","items":1}],"hash":"21926744d48d1cc3"},{"version":"0.2.1","date":"2025-10-30","date_source":"heading","heading":"Version 0.2.1 - 2025-10-30","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","sections":[{"kind":"fix","heading":"Fixed","items":2}],"hash":"12bf572bcf8c51c2"},{"version":"0.2.0","date":"2025-10-06","date_source":"heading","heading":"Version 0.2.0 - 2025-10-06","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":2},{"kind":"fix","heading":"Fixed","items":3},{"kind":"change","heading":"Changed","items":4},{"kind":"removal","heading":"Removed","items":2}],"hash":"67588ff5744c427e","cited_by":[{"version":"0.2.0","date":"2025-10-06"}]},{"version":"0.1.0","date":"2025-07-03","date_source":"heading","heading":"Version 0.1.0 - 2025-07-03","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":1}],"hash":"7d80f68b563aeb2e"},{"version":"0.0.1","heading":"Version 0.0.1","url":"https://unpkg.com/@sap/cds-oyster@0.5.5/CHANGELOG.md","sections":[{"kind":"feature","heading":"Added","items":1}],"hash":"15728bdb74ec8697"}],"versions":[{"version":"0.5.5","date":"2026-09-15"},{"version":"0.5.4","date":"2026-08-11"},{"version":"0.5.3","date":"2026-08-05"},{"version":"0.5.2","date":"2026-07-15"},{"version":"0.5.1","date":"2026-07-14"},{"version":"0.4.0","date":"2026-07-06"},{"version":"0.3.1","date":"2026-05-08"},{"version":"0.3.0","date":"2026-03-11"},{"version":"0.2.1","date":"2025-10-30"},{"version":"0.2.0","date":"2025-10-08"},{"version":"0.1.0","date":"2025-07-04"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[],"contributors":[],"explained_by":[{"ref":"content:devtoberfest-2026-cap-cds-oyster-extensibility","name":"Custom Business Logic Extensibility in CAP (CDS-Oyster)","json":"/content/devtoberfest-2026-cap-cds-oyster-extensibility.json"},{"ref":"content:teched-2026-ad162","name":"Everything new: Try out the latest features in CAP","json":"/content/teched-2026-ad162.json"}],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}