@sap/cds-oyster
Runs tenant-specific extension code inside a WebAssembly sandbox, so a SaaS application can accept custom logic from a customer without running it unguarded.
Facts
Where it sits
Before choosing this
Conditions
LicenceSAP Developer License Agreement 3.2 CAP§ 1, 2, 3A cds-plugin is used with SAP CAP materials, or an artifact is explicitly identified as a CAP plugin or application.
- § 1 License. Productive customer applications are limited to SAP BTP or another SAP-licensed platform, and mass extraction to a non-SAP product is restricted except where solely required for SAP interoperability.
- § 2 Intellectual Property. The agreement retains SAP's rights in the covered materials and limits making APIs, tools or software available to third parties, while preserving ownership of customer applications subject to SAP's underlying rights.
- § 3 Artificial Intelligence Training. The agreement prohibits use of the covered materials and customer applications for training artificial-intelligence models or systems.
What it declares
Every artifact
- Type
- CDS plugin
- Origin
- By SAP
As a CDS plugin
- Declared for
- ^9 || ^10
- Distributed through
- npm
Connections
Serving many tenants from one deployment
Download
Install
npm add @sap/cds-oysterDerived from the package name. No recipe recorded; the README has the configuration.
Learn more
- Custom Business Logic Extensibility in CAP (CDS-Oyster)Custom Business Logic Extensibility in CAP (CDS-Oyster)A Devtoberfest 2026 session walking @sap/cds-oyster — at version 0.55, with 1.0 stated for Q4 — end to end on a multitenant xtravels, from the application developer's side and the extension developer's side. The application developer adds a submit-for-review action to the status flow and opens exactly one surface for custom code: a separate extension service marked as extensible code, holding a no-op validate action and two read-only helper entities, which the host application calls before the status change; nothing else is extensible, because the annotation defaults to false. The extension developer works in a project whose base model came from cds pull, with test data, a server.js and types from @cap-js/cds-typer added so the UI and code completion work, debugs the handler locally and pushes it as an @sap/cds-mtxs extension, after which the next request rejects a travel over the policy limit without a restart — the code having been stored as an annotation in the tenant's model and run in a Rust WebAssembly sandbox with no database connection, whose queries go back to the CAP runtime as CQL strings, which is tenant extensibility extended from fields to logic.published 2026-10-09Nick Josipovic, DJ Adams, YouTube — SAP Developers playlists
- Everything new: Try out the latest features in CAPEverything new: Try out the latest features in CAPCAP (@sap/cds) gains the features this hands-on session works through: declarative constraints, which is the input validation concern, status flows as status transition flows, a cds REPL, extensibility through @sap/cds-oyster, and HCQL, which SAP's abstract calls CAP's native query-over-HTTP protocol, after an opening stretch of AI-driven app development. The abstract names the features and stops there; what each one does is not described. A TechEd 2026 hands-on session (Wednesday 28 October, Berlin), presented by Daniel Hutzel, Daniel Schlachter, Marc Huber and Tim Back, written here from SAP's abstract; the recording is not yet published.Daniel Hutzel, Daniel Schlachter, SAP TechEd — session catalogue
- v0.5.1
The
runtimeoption is nowsandbox, withwasmforoysterandmockedfordebug; development defaults tomockedand production allows onlywasm.extensibleAnnotationdefaults totrue, so@extensible.codedecides which code extensions are allowed instead of the extension allow-list, and themaxResultSizeoption andreq.userin the sandbox are removed.Makes stale:Configuration that sets
runtimetooyster, or that relies onextension-allowlistto gate code extensions.
README
quoted from @sap/cds-oyster@0.5.5, read@sap/cds-oyster - Code Sandboxing for CAP
History
Features 1, Fixes 5
Fixes 2
Fixes 1
Fixes 1
Removed 2, Deprecated 1, Features 5, Changed 5, Fixes 1
Features 4, Changed 4, Fixes 2
Changed 4, Fixes 1
Features 1, Fixes 1
Fixes 2
Removed 2, Features 2, Changed 4, Fixes 3
Features 1
Features 1
Others providing
Compare all 7 on the Multitenancy page →- SAP Software-as-a-Service Provisioning serviceSAP Software-as-a-Service Provisioning serviceRegisters a multitenant application so that subaccounts can subscribe to it, and calls the application back on every subscribe and unsubscribe.sap official, btpRegisters a multitenant application for subaccount subscriptionsfrom BTP/BAIP
- com.sap.cds:cds-feature-mtcom.sap.cds:cds-feature-mtThe CAP Java feature that makes a Maven application multitenant aware: tenant lifecycle events, per-tenant database containers, and the wiring to the Node.js MTX sidecar.sap official, capMultitenancy for CAP Java: tenant lifecycle and per-tenant containersfrom CAP
- com.sap.cds:cds-services-bomcom.sap.cds:cds-services-bomThe Maven bill of materials for CAP Java, pinning every com.sap.cds module in a release, from the API and core runtime to the Spring Boot starters and the CQN engine, to the same version.sap official, capMaven bill of materials pinning CAP Java module versionsfrom CAP
- @cap-js-community/mtx-tool@cap-js-community/mtx-toolCLI for operating multitenant CAP applications — inspecting, upgrading and repairing tenants across a landscape.community org, capCLI for operating tenants of multitenant CAP applicationsfrom CAP
- @sap/cds-mtxs@sap/cds-mtxsMultitenancy, tenant provisioning and model extensibility for CAP.sap official, capMultitenancy, tenant provisioning and extensibility for CAPfrom CAP
- @sap/cds@sap/cdsThe CAP Node.js runtime, which compiles the CDS model, serves the services declared in it, answers generic requests before any handler runs, and loads every cds-plugin.sap official, capCAP Node.js runtimefrom CAP
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
Flavors
“a secure execution environment for tenant-specific code in the Node.js version of CAP” — @sap/cds-oyster — npm README
History in the atlas
- npm: https://www.npmjs.com/package/@sap/cds-oyster
- Runs tenant-specific extension code inside a WebAssembly sandbox, so a SaaS application can accept custom logic from a customer without running it unguarded.
- First seen.
For your agent
- Ref
artifact:sap-cds-oyster- JSON
- /artifacts/sap-cds-oyster.json
- MCP
- Connecting an agent