TalkTalktypeA recorded or written talk.See every one →YouTube — SAP Developers playlists

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.

Where it sits

Explains
@sap/cds-oysterCAP@sap/cds-oystercds-pluginRuns tenant-specific extension code inside a WebAssembly sandbox, so a SaaS application can accept custom logic from a customer without running it unguarded.@sap/cds-mtxsCAP@sap/cds-mtxspackageMultitenancy, tenant provisioning and model extensibility for CAP.Tenant extensibilityCAPTenant extensibilitycapabilityLetting 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.
Since then
No major release of @sap/cds-oyster since this was published

Who is behind it

Nick JosipovicNick JosipovicPersonWrote this
In the atlas: contributes to 4, wrote 1
@nkaputnik
DJ AdamsDJ AdamsPersonWrote this
Developer Advocate
In the atlas: contributes to 20, wrote 22
@qmacro
authors

Properties

About this work

declared and crawled
Published
declared

More on this24

Group by24 of 24 pieces
Piece, what it offersStill applies
Also explainingTenant extensibility3
Multitenant SaaS Application using CAP
SAP Architecture Center, SAP Architecture CenterThe reasoningA reference
nothing recorded
Developing CAP java/node.js mixed mono Multitenant SaaS Applications with Shared Database
SAP Community, xuelongA recipeRunnable code
New majors
Everything new: Try out the latest features in CAP
SAP TechEd — session catalogue, Daniel Hutzel, Daniel SchlachterA recipe
nothing recorded
CAP in the age of AI #7 - vector embeddings wrap-up
YouTube — SAP Developers playlists, DJ Adams, Johannes Vogt, part 7 of 7
nothing recorded
CAP in the age of AI #6 - vector embeddings
YouTube — SAP Developers playlists, DJ Adams, Johannes Vogt, Daniel Schlachter, part 6 of 7
nothing recorded
CAP in the age of AI #5 - agents wrap-up
YouTube — SAP Developers playlists, DJ Adams, Johannes Vogt, Simon Engel, Stefan Rudi, Daniel Schlachter, part 5 of 7
nothing recorded
What's in Daniel Hutzel's brain?
YouTube — SAP Developers playlists, Daniel Hutzel, DJ Adams
nothing recorded
CAP in the age of AI #4 - more on agents
YouTube — SAP Developers playlists, DJ Adams, Johannes Vogt, part 4 of 7
nothing recorded
CAP in the age of AI #3 - from MCP to A2A
YouTube — SAP Developers playlists, DJ Adams, Johannes Vogt, Stefan Rudi, part 3 of 7
nothing recorded
CAP in the age of AI #2 - more on the MCP adapter
YouTube — SAP Developers playlists, DJ Adams, Johannes Vogt, Simon Engel, Stefan Rudi, part 2 of 7
nothing recorded
Add MCP capabilities to a CAP service
SAP Developer Center, DJ AdamsThe reasoningA recipe
nothing recorded
CAP in the age of AI #1 - the MCP adapter
YouTube — SAP Developers playlists, DJ Adams, Johannes Vogt, Simon Engel, Stefan Rudi, Daniel Schlachter, part 1 of 7
nothing recorded
CAP in the age of AI
YouTube — SAP Developers playlists, DJ Adams, Johannes Vogt, Simon Engel, Stefan Rudi, Daniel Schlachter
nothing recorded
Avoid design time CAP server restarts when maintaining local data files
SAP Community, DJ AdamsThe reasoningRunnable code
Core changed
CAP, CDS, CDL, CSN and jq - finding associations
SAP Community, DJ AdamsThe reasoning
nothing recorded
CAP, CORS and custom headers
SAP Community, DJ AdamsThe reasoningRunnable code
nothing recorded
ISO content for common CAP types
SAP Community, DJ AdamsThe reasoningRunnable code
Core changed
CAP is important because it's not important
SAP Community, DJ AdamsThe reasoning
nothing recorded
Computed field example in CAP
SAP Community, DJ AdamsThe reasoningA recipeRunnable code
Core changed
Set up VS Code on Chrome OS for local Application Programming Model development
SAP Community, DJ AdamsThe reasoningRunnable code
Core changed
SAP Cloud Application Programming Model (CAP) - start here
SAP Community, DJ AdamsThe reasoning
nothing recorded
CAP Node.js Expert Session #6 - The MCP Adapter
YouTube — SAP Developers playlists, Daniel Schlachter, DJ AdamsThe reasoningA recipe
nothing recorded
Examine the details of the Model Context Protocol on startup
SAP Developer Center, DJ AdamsThe reasoningA recipe
nothing recorded
Define, generate, deploy: AI-driven spec-first Terraform
SAP TechEd — session catalogue, Christian Lechner, DJ AdamsA recipe
nothing recorded

Details

Graph7 edges
← POINTS HERE
POINTS OUT →
explains@sap/cds-oysterartifact
explains@sap/cds-mtxsartifact
explainsTenant extensibilitycapability, core and community
published onYouTube — SAP Developers playlistspublishing source
discovered viaYouTube — SAP Developers playlistsdevtoberfest-2026
Source
Type
talk
Host
youtube.com
First seen
History1
  • 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