Custom Business Logic Extensibility in CAP (CDS-Oyster)
A Devtoberfest 2026 session walking @sap/cds-oyster@sap/cds-oysterRuns tenant-specific extension code inside a WebAssembly sandbox, so a SaaS application can accept custom logic from a customer without running it unguarded.sap official, cap — at version 0.55, with 1.0 stated for Q4 — end to end on a multitenant xtravelsxtravelsA travel-booking application built on the master data that xflights publishes, composing another package's schema into its own rather than owning master data itself.sap official, cap, 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@cap-js/cds-typerGenerates TypeScript types from a CDS model.sap official, cap added so the UI and code completion work, debugs the handler locally and pushes it as an @sap/cds-mtxs@sap/cds-mtxsMultitenancy, tenant provisioning and model extensibility for CAP.sap official, cap 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 extensibilityTenant extensibilityLetting a customer extend the model of a running SaaS application with extra fields and entities per tenant, without forking the application, as distinct from extending the application's code for every customer at once.SAP and community, unassessed extended from fields to logic.
Where it sits
Who is behind it
In the atlas: contributes to 4, wrote 1@nkaputnikDJ AdamsDJ AdamsWrote this
Developer Advocate
In the atlas: contributes to 20, wrote 22@qmacroauthors
Properties
About this work
Details
Graph
Source
History
- Entered the atlasDiscovered via YouTube — SAP Developers playlists · devtoberfest-2026.
For your agent
- Ref
content:devtoberfest-2026-cap-cds-oyster-extensibility- JSON
- /content/devtoberfest-2026-cap-cds-oyster-extensibility.json
- MCP
- Connecting an agent