NewSAP Cloud Application Programming Model
In the last 30 days
176 changes
Today
git-env-branchesadded to the atlasShows which feature branches reached which environment branchChange promotion
Change promotioncore coverage, id, ecosystems, name revisedPublic feedback issue #9. The ABAP name is kept in framing_by_ecosystem.abap; the default name and description now state the cross-door concern.Change promotion
Configurationcoverage by ecosystem revisedReassessed against the graph (check:capabilities): config-management arrived as a provider after the block was last looked at; the state stays core-and-community.Configuration
Deploymentcoverage by ecosystem revisedReassessed against the graph (check:capabilities): SAP's BTP services now provide this capability behind the door, so the note's count-like absence of providers no longer holds. The state stays core-only: the providers are SAP-official and none comes from the community.Deployment
Show 8 more
Error handlingcoverage by ecosystem revisedReassessed against the graph (check:capabilities): brandeis-consulting-abap-prc arrived after the block was last looked at, and the block named no community kinds.Error handling
Health checkscore coverage revisedReassessed against the graph (check:capabilities): the only provider behind the CAP door is the runtime core @sap/cds, so no provider of another origin counts for the door. The state follows the providers; the block's prose already names no community answer.Health checks
Knowing the maintenance status of a releasecore coverage, coverage by ecosystem revisedui5-task-check-eocp, from public feedback issue #6, is the first independent provider on the UI5 door, beside SAP's SAPUI5 version overview.Knowing the maintenance status of a release
Loggingcoverage by ecosystem revisedReassessed against the graph (check:capabilities): the state is now community-only and the block needed to say what the community adds.Logging
ODatacoverage by ecosystem revisedReassessed against the graph (check:capabilities): the note counted the repositories and named none of the kinds that arrived since the block was assessed; it now names the kinds and links the ones that define them. State unchanged.OData
Platform migrationcore coverage revisedReassessed against the graph (check:capabilities): a partner artifact serving the BTP door provides this capability, which the core-only state contradicted. The core stays, since what_core_does is sourced.Platform migration
Serve your application over MCPcoverage by ecosystem, coverage by flavor revisedReassessed against the graph (check:capabilities): the note counted providers, and sap-security-mcp no longer provides this capability. The unmapped state is unchanged.Serve your application over MCP
Telemetrycoverage by ecosystem, coverage by flavor revisedReassessed against the graph (check:capabilities): removes a universal claim about the providers that goes stale as they arrive.Telemetry
Yesterday
#BTP #SAPCAP: Quirky Nuggets (N05-N06)publishedOn SAP BTP, Cloud Foundry RuntimeSAP BTP, Cloud Foundry RuntimeThe Cloud Foundry runtime of SAP BTP: memory for applications in a Cloud Foundry org, run from SAP's Java, Node.js and Python buildpacks or community buildpacks and managed with the standard Cloud Foundry tools.sap official, btp, a one-shot PostgreSQL db-deployer app can be restarted by the platform's default port-type health check inside its 60-second timeout, re-running the deploy and duplicating data in the PostgreSQLPostgreSQLA relational database. For CAP it is the production database when the answer is not HANA, reached through an adapter that translates CDS queries into its SQL. database; setting health-check-type to process or http, via cf commands or the app's mta.yaml parameters, avoids it. In CAP, a remote service's entities are imported and consumed through cds.connect.to and queried via a projection, but its functions and actions cannot be projected: they must be redefined in the consuming service's own interface, with the handler forwarding the call to the remote proxy.Health checks
From SAP Sales and Service Cloud V2 APIs to AI: Building an MCP Server with CAP Node.jspublishedA step-by-step CAP Node.js walkthrough that wraps the SAP Sales Cloud V2 Case API as a remote service, then exposes the resulting service over both OData V4 and MCP through a single
@protocol: ['odata-v4', 'mcp'] annotation together with @cap-js/mcp@cap-js/mcpA CAP plugin that serves an @mcp-annotated service over MCP with three generated tools, describe, query and call_action, and writes its endpoint into the local agent's configuration in development.sap official, cap's per_action_tool setting. Each CDS action — listCases, getCaseById, createCase, patchCase — becomes its own MCP tool served at /mcp/caseservices, discoverable through tools/list and invoked from a natural-language request.Serve your application over MCPSat 24
Edge Integration Cell : Design, deploy and manage APIspublishedWalks through creating an API artifact in API ManagementAPI ManagementAPI proxies in front of backend services, with security and traffic management policies attached to them, and Developer Hub where consumers subscribe.sap official, btp on the customer-managed Edge Integration Cell runtime, including the option to generate the artifact by importing an OpenAPIOpenAPIHanding a description of the service to clients and tools — an API portal, a code generator, a partner who wants a contract before they write anything.SAP and community, narrow by design specification rather than from a URL or by hand. It then attaches an Authentication policy and a Quota step capped at four calls per minute, deploys, and shows both the resulting 401 and the quota-breach error in the Monitor logs. The author frames it as the first of a series on Edge Integration Cell's policies.OpenAPI
Part 2 – Empowering SAP BTP CAP Services through Open API Spec and Annotations for Effective Communication, Collaboration and GovernancepublishedWalks through generating an OpenAPIOpenAPIHanding a description of the service to clients and tools — an API portal, a code generator, a partner who wants a contract before they write anything.SAP and community, narrow by design specification for a Node.js CAP service: installing cds-swagger-ui-expresscds-swagger-ui-expressServes a CAP service's OpenAPI definition as a browsable Swagger UI, which is the page @cap-js/openapi's document does not come with.independent, cap, bootstrapping it in server.js, a sample CDS data model with associations and compositions, and the YUML diagram and endpoint details the Open API Preview renders in Business Application Studio. Also shows gating the Swagger UI behind a user-defined environment variable so it is served in development and QA subaccounts but excluded from the production deployment on Cloud Foundry. Second of a three-part series; the first covers the concepts and the third goes deeper into annotations.OpenAPI
Fri 23
🚀 秒速で学ぶ SAP AI Core Agent 開発 🚀 - Part 8 CloudFoundry にデプロイpublishedPart 8 of a Japanese-language series deploys the Python backend and SAPUI5 chat UI built in earlier parts to SAP BTP, Cloud Foundry RuntimeSAP BTP, Cloud Foundry RuntimeThe Cloud Foundry runtime of SAP BTP: memory for applications in a Cloud Foundry org, run from SAP's Java, Node.js and Python buildpacks or community buildpacks and managed with the standard Cloud Foundry tools.sap official, btp: the backend's manifest.yaml declares its buildpack, memory and start command for cf push, while the UI's MTA project is built with mbt build and uploaded with cf deploy, then has its ENDPOINT constant repointed at the live API's route. It closes with adding the deployed HTML5 app to SAP Build Work Zone, standard editionSAP Build Work Zone, standard editionA role-based business site on BTP that puts SAP, custom-built and third-party applications and extensions, cloud and on premise, behind one point of access.sap official, btp through Channel Manager's content sync, Content Explorer and a new Site Directory site.Deployment
cds-feature-togglelifecycle revisedThe maintainer's GitHub profile states that the account was archived (profile changed 2026-10-11); the repositories are gone and the package stays published on npm. His words, quoted and dated, in the field made for a maker's statement about an end; nothing written about the person.Feature toggles
opentelemetry-cdslifecycle revisedThe maintainer's GitHub profile states that the account was archived (profile changed 2026-10-11); the repositories are gone and the package stays published on npm. His words, quoted and dated, in the field made for a maker's statement about an end; nothing written about the person.Telemetry
Mon 19
CAP: The Road Ahead - Simplicity in an AI ErapublishedDevtoberfest 2026 session CAP10, from the head of SAP's Cloud Application Programming Model: forty minutes of live building rather than slides, on the argument that the cheapest code in an AI project is code nobody has to generate. Claude Code builds an invoice-matching workspace from cds init onwards, and each step is one the framework answers rather than the agent: a 42-line domain model that @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, cap serves as OData and Fiori elements with a status flow, data privacy and change-tracking annotations that produce audit log entries in the console and would reach the SAP Audit Log service once deployed, an imported S/4HANA supplier data product, and semantic matching from a local embedding model after @cap-js/ai@cap-js/aiOut-of-the-box value-help recommendations powered by SAP RPT-1, SAP AI Core as a standard CAP service, and an experimental local embedding model behind SQLite's vector functions.sap official, cap is added. The last three steps are annotations: @mcp beside @odata turns the service into an MCP serverServe your application over MCPExposing selected application data and business operations to an AI agent through the Model Context Protocol. An application may also integrate remote services through service integration, connecting its exposed contract with agent access to your systems. Development assistance belongs to agent access to your code.SAP and community, narrow by design that a second Claude session queries through @cap-js/mcp@cap-js/mcpA CAP plugin that serves an @mcp-annotated service over MCP with three generated tools, describe, query and call_action, and writes its endpoint into the local agent's configuration in development.sap official, cap, an agent annotation adds the A2A protocol with an agent card and an audit log entry for the agent task, and a skill file gives the agent the matching policy.Configuration
Custom Business Logic Extensibility in CAP (CDS-Oyster)publishedA 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.Multitenancy
SAP Meets the Agentic Web: CAP MCP - UI5 WebMCPpublishedA Devtoberfest 2026 session (CAP-42) that puts MCP and WebMCP side by side: MCP exposes a backend to an agent, WebMCP exposes the tools of a web page to whatever agent arrives at it, and only Chrome behind a flag and Cloudflare's Kite browser support the second one today. The CAP half starts with two agents scraping a Fiori elements app with PlaywrightPlaywrightA library that drives Chromium, Firefox and WebKit from code, written for end-to-end browser testing. For the things here it is the browser a tool starts itself, to get through an SAP login or to load a page headless and photograph it. and browser dev tools, then annotates the catalogue service with the MCP protocol through @cap-js/mcp@cap-js/mcpA CAP plugin that serves an @mcp-annotated service over MCP with three generated tools, describe, query and call_action, and writes its endpoint into the local agent's configuration in development.sap official, cap, after which the agent calls the generated describe tool instead of parsing pages. The UI5 half registers a search-authors tool on the browser's model context API inside the same app, with the cross-origin isolation header the API requires, and lists it through the WebMCP Chrome extension — the agent run against it ends on an exhausted Gemini key rather than a result.Serve your application over MCP
What's in Daniel Hutzel's brain?publishedA Devtoberfest 2026 session in the building-apps track, in which Daniel HutzelDaniel Hutzelgave 3 talks, contributed to 32 entriessap official and DJ AdamsDJ Adamscreated 22 pieces, contributed to 20 entriessap official work through what the CAP team is building for agents. A bookshop gets an MCP endpoint beside its OData one from a single annotation, with the plugin writing the coding agent's configuration itself; in the xt-travels sample five services that know nothing about each other are served over MCP and an agent does the orchestration the hand-built UI and its value helps used to do. Hutzel then annotates a service as an agent so the ReAct loop and the choice of model move into the CAP service, and finally drops MCP for a skill that teaches the agent CQL instead, which is where the edges to Serve your application over MCPServe your application over MCPExposing selected application data and business operations to an AI agent through the Model Context Protocol. An application may also integrate remote services through service integration, connecting its exposed contract with agent access to your systems. Development assistance belongs to agent access to your code.SAP and community, narrow by design, Agent toolingAgent toolingBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.SAP and community, unassessed and Agent guidanceAgent guidancePackaged knowledge you hand a coding agent so it gets a framework right unprompted — skills, rule files, instruction packs. Distinct from agent tooling, which is about building agentic features into your application, and from agent access to your code, where the agent reads the real project instead of being handed a file about it.SAP and community, core adopted it come from. The mechanism under all of it, a plugin file in the package root and event handlers that can be added to any CAP service, is the edge to Plugin authoringPlugin authoringWriting a package that extends a framework or runtime rather than an application that uses it — a reusable extension loaded by its host, and the question you arrive at once solving a problem twice makes you want to solve it once for everyone.SAP only.Serve your application over MCP
Show 1 more
Loggingecosystems revisedSRBJSLogger and openui5-error-collector were staged in intake-20261019-bestofui5 with no capability edge, because this capability was not open on the UI5 door. The UI5 reading comes from the sap/base/Log API documentation and the OpenUI5 Logging and Tracing page.Logging
Sun 18
CAP in the age of AIpublishedSeven live episodes of Hands-on SAP Dev in which DJ AdamsDJ Adamscreated 22 pieces, contributed to 20 entriessap official works through CAP's AI features with the people who build them, each one a screen-share against a sample project. The first three are @cap-js/mcp@cap-js/mcpA CAP plugin that serves an @mcp-annotated service over MCP with three generated tools, describe, query and call_action, and writes its endpoint into the local agent's configuration in development.sap official, cap: the
@mcp annotation on a service, the describe, query and call tools, CQL as the query format, and what authorisation takes out of the tool list. From episode three the run moves to A2A and @cap-js/agents@cap-js/agentsSAP's own CDS plugin for building agents inside a CAP service, wired to audit logging and telemetry through peer dependencies rather than leaving observability to the author.sap official, cap — human approval of an action, agents.md and skills, session persistence, telemetry and sub-agents — and the last two episodes are vector embeddings in CDS, local on SQLite and native on SAP HANA CloudSAP HANA CloudThe managed database under most of this: CAP's default target, the store Datasphere and Analytics Cloud sit on, and a service with plans and components.sap official, btp.Serve your application over MCPCAP in the age of AI #1 - the MCP adapterpublishedThe episode that opens the series and the first pass over @cap-js/mcp@cap-js/mcpA CAP plugin that serves an @mcp-annotated service over MCP with three generated tools, describe, query and call_action, and writes its endpoint into the local agent's configuration in development.sap official, cap, with four of the people building it on the call. Two of the adapter's tools are worked through:
describe, the one an MCP client reaches for first to get the overview of what it may do, and query, which the panel establishes as read-only. It also writes the server entry into a local agent's own configuration file, which episode three comes back to as auto-wiring.Serve your application over MCPCAP in the age of AI #2 - more on the MCP adapterpublishedWhat the query tool costs in tokens, and the third tool @cap-js/mcp@cap-js/mcpA CAP plugin that serves an @mcp-annotated service over MCP with three generated tools, describe, query and call_action, and writes its endpoint into the local agent's configuration in development.sap official, cap registers. Counted against a model running locally under llama.cpp, the same query is 26 tokens as CQL and 173 as CQN, and the tool definition sent with every system prompt drops from around 5,500 tokens to around 600 — the reason CQL became the default format. The
call tool then exposes a service's unbound actions and functions, as one generic tool or, behind a flag, one tool per action with its own description and input schema; a question from the chat about extension points gets the answer that the adapter does the tools, which the panel calls a small subset of the protocol.Serve your application over MCPCAP in the age of AI #3 - from MCP to A2ApublishedThe episode that finishes @cap-js/mcp@cap-js/mcpA CAP plugin that serves an @mcp-annotated service over MCP with three generated tools, describe, query and call_action, and writes its endpoint into the local agent's configuration in development.sap official, cap with authorisation and then crosses to agents.
@requires and @restrict are the same annotations CAP already has, and the plugin reads them to filter the tool list and the describe output per user and per request, so a model is not told about entities the caller cannot reach — where the OData metadata of the same service lists every exposed entity regardless. The second half annotates a service with @agent from @cap-js/agents@cap-js/agentsSAP's own CDS plugin for building agents inside a CAP service, wired to audit logging and telemetry through peer dependencies rather than leaving observability to the author.sap official, cap, which serves it over A2A with an agent card and a chat preview, runs first against a mocked response and then against SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp bound with cds bind and a hybrid profile, and reuses the MCP adapter's tools rather than defining new ones.Serve your application over MCPShow 2 more
SAP Job Scheduling Service: Set Job Run Status with the REST API and Node.jspublishedWalks through recovering a stuck asynchronous job run in SAP Job Scheduling serviceSAP Job Scheduling serviceCalls an application's endpoint on a schedule or once at a time and keeps the log of every run — cron without a process of your own to keep alive.sap official, btp: when a triggered app fails to call back, the run stays at ACK_RECEIVED and eventually UNKNOWN, since the scheduler never assumes success or failure on its own. The fix is a Node.js script that reads a downloaded service key, gets an OAuth2 client-credentials token, and calls
PUT /scheduler/jobs/{jobId}/schedules/{scheduleId}/runs/{runId} with a success/message body to set the run to FAILURE or SUCCESS by hand.Job scheduling@odatano/nightgatereleased 0.35.0Client code and examples written against the
/api/v1/… service paths.ODataSat 17
#BTP #SAPCAP: Quirky Nuggets (N03-N04)explains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
A 25x faster mta.yaml build for SAP CAP Node.js projectsexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Adding a Swagger UI to Your SAP Cloud Application Programming Model / Node.js Serviceexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).OpenAPI
Adding Custom Metrics to a CAP application using cap-js/telementry plugin and SAP Cloud Loggingexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Telemetry
Show 79 more
Adding Immutable Blockchain Proofs to SAP With CAP - Cardano and OData V4explains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
Adding Shell Plugin to SAP Fiori CAP Application and Deploying to Cloud Portal Serviceexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Agentic AI on BTP: a Multi‑Agent App with Pydantic AIexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Serve your application over MCP
Agentic AI on BTP: a Single Agent with LangGraphexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Serve your application over MCP
Agentic CAP: Build MCP servers and enterprise AI agentsexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Serve your application over MCP
BTP Audit Log MCP Server: Security Monitoring with AI Assistantsexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Serve your application over MCP
Build, Configure, and Deploy SAP CAP Projects to the Cloudexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Building a SaaS Multitenant Application Using SAP CAP Framework — Without a Databaseexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
CAP multitenancy with Work Zoneexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
CAP Node.js Expert Session #6 - The MCP Adapterexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Serve your application over MCP
CAP on Kyma - Deploy your CAP apps to SAP BTP, Kyma Runtimeexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Change promotiondescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.abap. Maintainer-requested scope audit.Change promotion
Custom Functions in OData V4 – SAP Cloud Application Programming Modelexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
Declarative Programming in CAP: Less Code, More Valueexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Configuration
Deploy a Full-Stack CAP Application in SAP BTPexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Deploy and Run the Incident Management Application in the SAP BTP, Kyma Runtime with a Mock Serverexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Deploying a CAP Application to SAP Cloud Platform, Kyma runtime & connecting an iOS appexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Deploying first CAP Project in SAP Cloud : A Step-by-Step Guideexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Deploymentdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Deployment
Deployment and operatordescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Deployment and operator
Developing CAP java/node.js mixed mono Multitenant SaaS Applications with Shared Databaseexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Multitenancy
DevOps with SAP BTPexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Effective Axios Error Logging for Robust SAP Integrationsexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Error handling
Everything new: Try out the latest features in CAPexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Configuration
Extend SAP SuccessFactors on SAP BTP with CAP - Create the CAP Serviceexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
Fullstack CAP Application with HANA Cloud (Decoupled Architecture) [Part-6]explains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Getting your head into Cloud Application Programming model multitenancyexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
Health checksdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Health checks
How to add OData v2 adapter proxy to your CAP projectexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
How to rename an OData V4 service?explains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
HTML5.Timeout for CAP destinations in mta.yaml longer than defaultexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Implementation of Observability using OpenTelemetry in SAP BTPexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Telemetry
Importing an external data model using CDS Graphical Modeler for Visual Studio Codeexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Metadata publishing
Importing external edmx files to your CAP project using the CDS Graphical Modelerexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Metadata publishing
Invoke OpenAPI-documented APIs remotely with SAP Cloud Application Programming Modelexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OpenAPI
Kyma Evolution: Transforming SAP Kyma into a tailor-made SaaS Platform for sbs extensionsexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Kyma Integration with SAP Cloud Logging. Part 2: Let's ship some tracesexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Telemetry
MCP Servers are the New Z-Tablesexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Serve your application over MCP
Messaging System for Transferring Error, Warning, and Information Messages from OData V4 Services to HTTP Client Applicationsexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
Multitenant application using Cloud Application Programming Model (CAP)explains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
Multitenant Business Applications with CAP | Hands-on Video Tutorialsexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
Multitenant SaaS Application using CAPexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
Multitenant SaaS applications on SAP BTP using CAP - The Reloaded Version!explains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
Multitenant SaaS applications on SAP BTP using CAP? SAP BTP, Kyma Runtime!explains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
Multitenant SaaS applications on SAP BTP using CAP? Tried-and-True!explains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
Multitenant SaaS apps on SAP BTP using CAP? Tried-and-True! – The Advanced Versionexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
Multitenant SaaS apps on SAP BTP using CAP? Tried-and-True! – The Basic Versionexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
Multitenant SaaS apps on SAP BTP using CAP? Tried-and-True! – The Expert Featuresexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
ODatadescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.OData
Open Sourcing CAP – how to learn more or get involvedexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Feature toggles
OpenAPIdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.OpenAPI
Part 2: Runtime Architecture & Cost efficiency gainsexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Platform migrationdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.btp. Maintainer-requested scope audit.Platform migration
Product Updates for SAP Build Code – June 2025 Editionexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Platform migration
Quickly Deploy a Sample CAP Application to BTPexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Real-Time Architecture in SAP CAP: Mastering Asynchronous Jobs, Gateways with WebSocketsexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).WebSocket
Resolving date serialization issues when using an external OData v2 service with CAPexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
SaaS Self-Onboarding and One-Domain Concept in SAP BTP, Kyma Runtime using CAPexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
SAP BTP SDK for iOS & CAP with OData V4 supportexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
SAP CAP - Optimize your build MTA projects with several ui appsexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
SAP CAP Adapter to expose OData as custom REST Serviceexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
SAP CAP function and action with Unstructured/Dynamic Type Input/Outputexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
SAP Cloud Logging Serviceでコンテナメトリクスを監視するexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Logging
SAP Job Scheduling Service: 🔧 Generate Your Own Client Library from OpenAPI Specexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Job scheduling
Serve your application over MCPdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Serve your application over MCP
Speed up deployment for CAP using Turborepoexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Streaming LLM Output with CAP and WebSocketsexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).WebSocket
Streamline User Targeting with Segments in SAP Feature Flagsexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Feature toggles
Streamlined Kyma deployment for CAP applicationsexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Surviving and Thriving with the SAP Cloud Application Programming Model: Deployment to SAP BTP, Kyma runtimeexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Swagger UI | SAP BTP Extension Generators | Hands-on Video Tutorialsexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OpenAPI
The Complete Guide to Calling Actions in UI5 with Custom Codeexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
The Easiest Way to Expose a CAP Node.js Project as an MCP Serverexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Serve your application over MCP
The End2End Journey: Advocates Service – CAP Service, OData V2/4 & REST in One single Projectexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
The fastest way to a deployable CAP app on SAP BTP Cloud Foundryexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
The Future of Continuous Delivery for SAP Cloud SDK and SAP Cloud Application Programming Modelexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
Third-Party MCP Server Access to SAP Solutions on BTPexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Serve your application over MCP
Tips for running CAP nodejs in SAP BTPexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
UI for the BTP Application Vulnerability Reportexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
Thu 15
Automate Recurring Data Updates in SAP HANA CloudpublishedA walkthrough for marking inventory rows stale after 30 days using SAP HANA CloudSAP HANA CloudThe managed database under most of this: CAP's default target, the store Datasphere and Analytics Cloud sit on, and a service with plans and components.sap official, btp's own scheduler: a SQLScript procedure, a
CREATE SCHEDULER JOB statement with its 7-field cron pattern, the M_SCHEDULER_JOBS monitoring view, and the matching DROP statements to remove both. It then names where that approach stops and lists the alternatives for scheduling outside the database: SAP Integration SuiteSAP Integration SuiteSAP's integration service on BTP: Cloud Integration for orchestration, API Management in front of it, and an MCP gateway that serves a managed API to agents.sap official, btp's Timer Event, the SAP Job Scheduling serviceSAP Job Scheduling serviceCalls an application's endpoint on a schedule or once at a time and keeps the log of every run — cron without a process of your own to keep alive.sap official, btp, SAP Automation PilotSAP Automation PilotA BTP service that runs operations commands: catalogues SAP ships for BTP DevOps scenarios and commands a team composes, started by hand, on a schedule or by an event.sap official, btp for infrastructure commands, and a custom approach for triggering scheduled REST calls from an application.Job schedulingcap-redisadded to the atlasApprouter session held in a bound Redis cache instance
cap-uiadded to the atlasMTA deploying CAP, HDI container and a Fiori elements app
Third-Party MCP Server Access to SAP Solutions on BTPpublishedDescribes external MCP servers and custom servers on BTP, assigning their operators responsibility for authentication, scoped identity, API limits, logging and lifecycle. The permitted use remains conditional on the SAP API Policy, while SAP Integration SuiteSAP Integration SuiteSAP's integration service on BTP: Cloud Integration for orchestration, API Management in front of it, and an MCP gateway that serves a managed API to agents.sap official, btp and Joule Studio are described as SAP-provided paths. Hosting a server on BTP does not automatically supply its governance controls.Serve your application over MCP
Show 8 more
@cap-js-community/business-metricsdescription revisedTelemetry curation for the CAP door. The README opens by calling it an extension library for @cap-js/telemetry and lists telemetry enabled in the application configuration as a prerequisite, and the graph held no edge between the two. Read against the README at commit eee01d0.Telemetry
@cap-js/telemetrydescription revisedTelemetry curation for the CAP door. The entry carried no paragraph and no property values, so the capability's comparison had nothing from the runtime's own answer on Node.js. Read against the README at commit e97874b, the 2.1.0 release, and capire's plugins page.Telemetry
@sanjay-sde/cap-js-log-controlprovides revisedTelemetry curation for the CAP door. The edge carried no sentence, and what the plugin does here is narrow: it lowers the verbosity of the telemetry logger and of the OpenTelemetry DiagLogger rather than producing or exporting a signal, so it states no signal and no destination. Read against the README at commit 587455e. Whether this entry belongs under telemetry or under logging is left open for review.Telemetry
@sap-ux/telemetryprovides revisedTelemetry curation for the CAP door. The entry stood among the options a reader compares for observing a running CAP service, and its own README places it elsewhere: a library SAP Fiori tools use to collect anonymous usage data. The sentence is recorded so the page states what it is; whether the edge, the cds-plugin type and the CAP door are right is left for review rather than changed here.Telemetry
cap-mcp-guardprovides revisedTelemetry curation for the CAP door. The edge said nothing about what the plugin contributes, and the README's own statement is narrow and conditional: one span per agent request, emitted into an OpenTelemetry SDK the application configures, with no exporter of its own. Read against the README at the master branch, last pushed 2026-08-14.Telemetry
cap-ui-telemetrydescription revisedTelemetry curation for the CAP door. This is the one option in the corpus answering the boundary the core states, that traces begin when a request arrives, and the entry did not say how it does it or that its records are logs rather than spans. Read against the README at commit 78e5d75.Telemetry
com.sap.cds:cds-services-bomprovides revisedThe entry carried the Fiori draft lifecycle and not the annotations the same guide documents for Java. Capire's Serving SAP Fiori UIs guide names the Java configuration for the Fiori preview and one annotation the Java runtime reads itself, @cds.java.descendants.aggregate for a hierarchy view over aggregates. Without this edge the java flavor of capability:fiori-annotations had no provider of its own, although CAP Java serves the same annotated metadata. @http.CacheControl, which the same guide states is supported only on the Java runtime, is a response header rather than a rendering instruction and is left to capability:pagination-and-streaming.Configuration
Telemetrycore coverage, coverage by flavor, framing by flavor, framing by ecosystem, facets revisedThree questions the sources answer differently for the CAP options and that change which one a reader reaches for: which signals it produces, where it can send them, and whether the application has to write code for a signal of its own. Scoped to the CAP door; the ABAP and BTP options were not assessed in this pass.Telemetry
Tue 13
How to rename an OData V4 service?publishedRenaming an OData V4 service binding changes its Service Alias and the resulting service URL, breaking any app already deployed against the old one — shown on a /DMO/TRAVEL-based example in the SAP BTP ABAP environmentSAP BTP ABAP environmentSAP's ABAP runtime on BTP: ABAP systems developed in the ABAP Cloud model on SAP HANA Cloud, for cloud apps, OData services and side-by-side extensions of SAP S/4HANA.sap official, btp by unpublishing, renaming and republishing the binding, then reading the new URL back from the OData V4 service catalog's ServiceGroups entry. It weighs that against two alternatives: adding a second service definition and publishing it as a new service version under the same binding, or creating an entirely new service definition and binding, which keeps the original URL live during the cutover.OData
Mon 12
Introducing the Cloud Application Programming Model (CAP)publishedSAP's own general-availability announcement for CAP, laid out as a Golden Path: a data model and service defined in CDS gets a generated service provider that serves metadata publishingMetadata publishingDescribing a service to something other than a human — service metadata for clients, and machine-readable descriptions for registries and discovery.SAP and community, narrow by design and CRUD requests, fills in primary keys and audit data, and writes trace and audit logsAudit loggingRecording who touched personal or sensitive data, in a form an auditor accepts, without hand-writing it in every handler. It is often confused with application logging, which records what the code did rather than who accessed what.SAP only without application code. The same CDS model carries annotations that translate to OData vocabularies and generate a Fiori elements app skeleton, which is how Fiori annotationsFiori annotationsDescribing a service so a Fiori client can render it without hand-written UI code — titles, value helps, hierarchies and visibility expressed as model annotations rather than screen logic.SAP and community, unassessed work in CAP.Metadata publishing
Model Context Protocol Adapter — CAP guidepublishedDocuments @cap-js/mcp@cap-js/mcpA CAP plugin that serves an @mcp-annotated service over MCP with three generated tools, describe, query and call_action, and writes its endpoint into the local agent's configuration in development.sap official, cap and com.sap.cds:cds-adapter-mcpcom.sap.cds:cds-adapter-mcpThe MCP protocol adapter for CAP Java, serving an @mcp-annotated Application Service as an MCP server with three generated tools, describe, query and call, and data changes only through unbound actions.sap official, cap, service annotations, generated describe/query/call tools and local client setup. The guide records Java doc-comment configuration, unbound-action-based data changes, incomplete XSUAA PKCE support and the adapter’s governance boundaries.Serve your application over MCP
@odatano/nightgatereleased 0.32.0Calls to the sponsor actions that pass a
sponsorSessionId.OData@cap-js/mcpprovides[mcp-servers], provides, description revisedThe maintainer explicitly approved this public wording after independent review. Keeps the accepted ADR-0066 application of the SAP gateway/proxy prohibition in history, removes the internal decision identifier from reader-facing prose, and preserves all implementation restrictions.Serve your application over MCP
Show 8 more
@gavdi/cap-mcpprovides[mcp-servers], provides revisedConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.Serve your application over MCP
@neoimpulse/cap-js-mcpdescription, provides[mcp-servers], provides revisedConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.Serve your application over MCP
@odatano/core-mcpprovides[mcp-servers], provides revisedConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.Serve your application over MCP
@odatano/nightgate-mcpprovides[mcp-servers], provides revisedConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.Serve your application over MCP
cap-mcp-pluginprovides[mcp-servers], provides revisedResolves the requested review findings while preserving the structured comparison values, runtime scopes and implementation restrictions.Serve your application over MCP
com.sap.cds:cds-adapter-mcpprovides[mcp-servers], provides, description revisedResolves the requested review findings while preserving the structured comparison values, runtime scopes and implementation restrictions.Serve your application over MCP
Knowing the maintenance status of a releaseentry revisedDrafted with sap-support-radar and pam-mcp-server, the first umbrella artifacts (ADR-0063), which had no concern to attach to: mcp-servers is serving an application one built, agent-systems-access reaches into a running SAP system, and documentation is first-party docs made searchable. On the ABAP, CAP and UI5 doors because each has a published SAP answer of its own: the Product Availability Matrix, capire's release schedule and the SAPUI5 version overview. BTP is left out: its services name plans and regions rather than releases, and no page was read that states a maintenance period for one. core-only on every door because SAP publishes the answer and no door holds an option of its own; the umbrella entries count into no door's coverage by construction.Knowing the maintenance status of a release
Serve your application over MCPcore coverage, coverage by ecosystem, core coverage, description, facets revisedThe comparison separates exposed contracts, context mechanisms, execution paths and surface selection; provider explanations retain conditions and restrictions. The capability definition and all nine provider conversions must be published together; accepting only the vocabulary leaves legacy provider strings incompatible.Serve your application over MCP
Sun 11
Agentic CAP: Build MCP servers and enterprise AI agentspublishedCAP applications become AI agents over the Model Context Protocol and the Agent2Agent protocol, which is the serve your application over MCPServe your application over MCPExposing selected application data and business operations to an AI agent through the Model Context Protocol. An application may also integrate remote services through service integration, connecting its exposed contract with agent access to your systems. Development assistance belongs to agent access to your code.SAP and community, narrow by design concern, and SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp is the LLM integrationLLM integrationCalling a language model from application code with the tenant, destination and credential handling already solved instead using an SDK call with a hand-rolled key.SAP and community, narrow by design through which AI is embedded in a CAP app, with recommendations from the SAP-RPT-1 model as the abstract's example. The abstract names the two protocols and the one model and does not say which packages carry them. A two-hour TechEd 2026 session in a hands-on room (Tuesday 27 October, Berlin), presented by Daniel HutzelDaniel Hutzelgave 3 talks, contributed to 32 entriessap official, Daniel SchlachterDaniel Schlachtercreated 9 pieces, contributed to 10 entriessap official, Marc Huber and Sami Lechner, written here from SAP's abstract; the recording is not yet published.Serve your application over MCP
Deploy, review, break, fix: Govern cloud transports with agility and AIpublishedFive BTP services in one delivery chain, as the abstract lays it out: a transport is triggered in SAP Content Agent ServiceSAP Content Agent ServiceA BTP service that assembles content from other BTP services into an MTAR with its dependencies, then downloads it, exports it to a transport queue or imports it into another subaccount.sap official, btp, tested in SAP Cloud Transport ManagementSAP Cloud Transport ManagementMoves software deliverables between SAP BTP accounts along a modelled landscape of transport nodes and routes: Multitarget Application archives, and application-specific content such as SAP Cloud Integration iFlows.sap official, btp, its failure is raised by SAP Alert Notification service for SAP BTPSAP Alert Notification service for SAP BTPA BTP service with one API for publishing alerts and subscribing to them: built-in events about BTP resources and an application's own, delivered to a communication channel or monitoring tool.sap official, btp and remediated by a SAP JouleSAP JouleSAP's unified AI engagement layer across SAP applications: Joule Work is where a user expresses intent, Joule Assistants coordinate agents across business functions, and Joule Agents carry out the tasks, provisioned on BTP as a formation against SAP Cloud Identity Services.sap official, btp agent with SAP Automation PilotSAP Automation PilotA BTP service that runs operations commands: catalogues SAP ships for BTP DevOps scenarios and commands a team composes, started by hand, on a schedule or by an event.sap official, btp, and SAP Cloud LoggingSAP Cloud LoggingAn instance-based observability service built on OpenSearch that stores and analyses logs, metrics and traces from Cloud Foundry, Kyma, Kubernetes and other runtime environments.sap official, btp keeps the history for root-cause analysis. The chain from alert to remediation is the operations automationOperations automationActing on a running landscape without someone at the console: an alert routed to where a person or a system will pick it up, and a command that troubleshoots or remediates when it arrives. Logging, telemetry and health checks observe; this acts on what they report. Running an application's own recurring work is job scheduling.SAP only concern; what the Joule agent decides on its own is not in the abstract. A TechEd 2026 session (Thursday 29 October, Berlin), presented by Biser Simeonov, Daniel Funkert, Sven Rullmann and Thorsten SandfuchsThorsten Sandfuchsgave 3 talks, contributed to 3 entries, written here from SAP's abstract; the recording is not yet published.Deployment
Everything new: Try out the latest features in CAPpublishedCAP (@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, cap) gains the features this hands-on session works through: declarative constraints, which is the input validationInput validationRejecting bad input before it reaches the database. While this can be done manually inside a handler, there are solutions in place to derive type, range, enum and mandatory checks from the model definitions.SAP and community, unassessed concern, status flowsStatus flowsDeclaring in the model which status transitions an entity may make, so the runtime rejects a transition nobody declared and sets the status itself when the bound action runs, instead of a check written by hand in every handler. Not input validation: that checks a value, this checks a transition. Not workflow integration: that drives an external engine, and this stays inside the model.SAP only as status transition flows, a cds REPL, extensibility through @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, 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 HutzelDaniel Hutzelgave 3 talks, contributed to 32 entriessap official, Daniel SchlachterDaniel Schlachtercreated 9 pieces, contributed to 10 entriessap official, Marc Huber and Tim Back, written here from SAP's abstract; the recording is not yet published.Configuration
Extending SAP Autonomous SuitepublishedExtensibility across SAP Autonomous Suite: AI-enabled development in SAP Build solutions, the ABAP Cloud model among them, as the way extensions are designed, generated and deployed, and a direction for making extensions ready for agentic AI. The abstract names the suite, SAP Build and the ABAP Cloud model and no single feature, so the edges are to ExtensibilityExtensibilityLetting a customer change delivered behaviour without modifying it — key-user fields and logic, developer extensions, and the released extension points that make either safe across an upgrade.SAP and community, unassessed, the concern, and to SAP Build CodeSAP Build CodeSAP's development environment on BTP for SAPUI5, SAP Fiori, mobile and CAP applications that run on the SAP BTP, Cloud Foundry Runtime, in which Joule generates models, services, logic, tests and apps.sap official, btp, the SAP Build solution held here in which Joule generates and deploys development; which other SAP Build solutions the session shows is not stated. A TechEd 2026 session (Tuesday 27 October, Berlin), presented by Alexander Rother and Khaled MUSILHY, written here from SAP's abstract; the recording is not yet published.Extensibility
Show 2 more
From Dashboard to Conversational AI in Minutes: Adding MCP to an Existing CAP ApplicationpublishedA walkthrough of adding @cap-js/mcp@cap-js/mcpA CAP plugin that serves an @mcp-annotated service over MCP with three generated tools, describe, query and call_action, and writes its endpoint into the local agent's configuration in development.sap official, cap to an existing CAP service behind the SuccessFactors Localization Dashboard: two annotations (
@odata, @mcp) expose the service over MCP beside its existing OData endpoint, and doc comments added to the 18 entities and their fields are surfaced through the describe tool so a querying model gets business context instead of bare field names. During local development cds watch auto-registers the endpoint in ~/.claude.json, and the author connects the same endpoint to Joule Work Desktop as an MCP connector so users can ask coverage questions in natural language.Serve your application over MCPSeptember 15th: What's New on developers.sap.compublishedThomas Jung walks through a week of changes aimed at agentic consumption of developers.sap.com itself: the hosted MCP serverServe your application over MCPExposing selected application data and business operations to an AI agent through the Model Context Protocol. An application may also integrate remote services through service integration, connecting its exposed contract with agent access to your systems. Development assistance belongs to agent access to your code.SAP and community, narrow by design gains a published
.well-known/mcp.json manifest, curated tools (search_tutorials, get_tutorial_step with a Markdown format option, search_channels), and a listing in the ORD catalog beside its OData, REST and GraphQLGraphQLServing the same model over GraphQL instead of OData — one endpoint, the client naming the fields it wants, for consumers who expect that shape rather than an OData one.SAP only APIs. It also documents the site's existing A2A endpoint for the first time and ships a way to turn a tutorial into an installable, cryptographically signed AI Skill with a generated verification script, both concrete instances of agent toolingAgent toolingBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.SAP and community, unassessed; separately, five broken GraphQL example queries were fixed and the full SDL is now served, and new sitemap.md, llms.txt fixes and ORD entries round out the site's own metadata publishingMetadata publishingDescribing a service to something other than a human — service metadata for clients, and machine-readable descriptions for registries and discovery.SAP and community, narrow by design.Serve your application over MCPSat 10
Reading Between the Lines: Under-Documented Fiori Elements Capabilities in SAPUI5 1.149publishedReads SAPUI5 1.149's framework source, not its release notes, to show Fiori Elements shifting side-effect refresh, AI field placeholders and multi-user drafting from controller extensions into what the backing service annotates. Event-driven SideEffects push over a WebSocketWebSocketPushing to a browser that already has the page open, rather than making it ask again — the half of a UI that polling imitates badly.Community only channel through @cap-js-community/websocket@cap-js-community/websocketA WebSocket adapter for CDS services, speaking either the plain WebSocket protocol or Socket.IO, so a service can push instead of being polled.community org, cap, while Draft handlingDraft handlingLetting a user edit a record over several requests before it becomes real — saving unfinished changes, locking, and activating a completed draft.SAP and community, narrow by design gains ABAP RAP's live field locking on CAP Node.js through Sören LeibachSören Leibachmaintains 6 entries, wrote 1 post, contributed to 5 entriesindependent's own cap-collaborative-draftcap-collaborative-draftA cds-plugin that gives a CAP Node.js service the OData contract, tables and handlers Fiori elements needs for collaborative draft, so a second user joins an open draft instead of meeting HTTP 423.independent, cap plugin. Both rest on Fiori annotationsFiori annotationsDescribing a service so a Fiori client can render it without hand-written UI code — titles, value helps, hierarchies and visibility expressed as model annotations rather than screen logic.SAP and community, unassessed such as
Common.SideEffects and CollaborativeDraft.enabled, which the frontend reads rather than requiring a manifest flag.WebSocketSAP BTP Cloud foundry Job Scheduling for CAP based projectpublishedWalks through binding the SAP Job Scheduling serviceSAP Job Scheduling serviceCalls an application's endpoint on a schedule or once at a time and keeps the log of every run — cron without a process of your own to keep alive.sap official, btp's trial instance to a CAP application's own custom action endpoint, so the service calls it on a configured interval and keeps a log of each run. The action itself is ordinary application code — here, sending an email through a third-party library — and the trial subaccount the author used could only run the job once, not on a repeating schedule.Job scheduling
SAP Cloud Application Programming Model(CAP):カスタムロジックの実装 – Part 2publishedA walkthrough of implementing custom logic in a CAP Node.js service for the capire bookshopcapire/bookshopThe primer of CAP: a bookshop small enough to read in one sitting, whose Books and Authors every CAP explanation, including this graph's, assumes you have already seen.sap official, cap sample, registering before, on and after handlers around the generated CRUD service for its Books and Orders entities. The before handler validates an incoming order's amount and runs a transactional CQN UPDATE to decrement stock, raising a 400 or 409 through req.error when the amount is invalid or no rows match; an after handler on READ appends a discount note to overstocked books.Error handling
Fri 9
Don't "let it crash", is this the new CAP guideline?publishedDinu traces a change in error handling in CAP's Node.jsNode.jsA cross-platform JavaScript runtime that servers, command line tools and scripts written in JavaScript are run with. For the things here, the prerequisite a repository names when its build is a set of npm scripts. runtime: @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, cap@8.2.0 adds a
cds.server.shutdown_on_uncaught_errors config flag, defaulting to true, but invoking an operation with an undefined variable no longer takes the server down, with or without the flag, where the same code crashed it on cds@6 and cds@7, and the author notes the old behaviour was already missing in cds@8.1. It still crashes with features.odata_new_adapter turned off to use the old OData parser, so it is the new OData adapter, like the REST adapter before it, that answers an uncaught error with a 500 instead of taking the process down.Error handlingServe your application over MCPecosystems, name revisedThe Commerce and SuccessFactors providers reach into a system from outside and moved to agent access to your systems with their slots.Serve your application over MCP
Tue 6
@cap-js/openapireleased 1.7.0OpenAPI documents generated before 1.7.0 for services without a
@protocol, which described REST paths for them.OpenAPISat 3
CAP Node.js Expert Session #6 - The MCP AdapterpublishedDaniel SchlachterDaniel Schlachtercreated 9 pieces, contributed to 10 entriessap official and DJ AdamsDJ Adamscreated 22 pieces, contributed to 20 entriessap official add @cap-js/mcp@cap-js/mcpA CAP plugin that serves an @mcp-annotated service over MCP with three generated tools, describe, query and call_action, and writes its endpoint into the local agent's configuration in development.sap official, cap to a bookshop service, inspect its describe, query and action tools, and query the catalogue through an AI agent. The session distinguishes this runtime adapter from the development-time MCP server and demonstrates automatic registration of the running service with a local agent. The recording describes the adapter as beta in July 2026, with read-only queries and writes through unbound actions.Serve your application over MCP
Thu 1
Product Updates for SAP Build Code – June 2025 EditionpublishedThe Q2-2025 release of SAP Build CodeSAP Build CodeSAP's development environment on BTP for SAPUI5, SAP Fiori, mobile and CAP applications that run on the SAP BTP, Cloud Foundry Runtime, in which Joule generates models, services, logic, tests and apps.sap official, btp adds a Joule-based SAP HANA Application Migration Assistant extension that automates converting XS Classic and XS Advanced service-layer artifacts — XSJSLIB, XSODATA and XSJS — into CAP service definitions and handlers on SAP HANA CloudSAP HANA CloudThe managed database under most of this: CAP's default target, the store Datasphere and Analytics Cloud sit on, and a service with plans and components.sap official, btp, extending the existing database migration assistant with generative AI. It walks through the "XS Classic to CAP" and "XS Advanced to CAP" templates that trigger the conversion.Platform migration
Tue 29
Agentic AI on BTP: a Multi‑Agent App with Pydantic AIpublishedSplits a single CAP/TypeScript agent that had grown to juggle five BTP MCP servers behind one bloated tool list into btp-multiagent-app, a Python and Pydantic AI rewrite where the Cloud Foundry and BTP Core MCP serversServe your application over MCPExposing selected application data and business operations to an AI agent through the Model Context Protocol. An application may also integrate remote services through service integration, connecting its exposed contract with agent access to your systems. Development assistance belongs to agent access to your code.SAP and community, narrow by design each get a dedicated specialist agent, with an audit log specialist scaffolded but left disabled, behind an orchestrator whose only tools are delegation calls to those specialists, which is the agent-toolingAgent toolingBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.SAP and community, unassessed pattern the piece works through. Each specialist authenticates to its MCP server over Streamable HTTP with OAuth 2.1, and a shared module centralises the SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp GenAI Hub model setup behind two credential layouts, one for local runs and one for the Cloud Foundry service binding, the LLM integrationLLM integrationCalling a language model from application code with the tenant, destination and credential handling already solved instead using an SDK call with a hand-rolled key.SAP and community, narrow by design side of the rewrite. Tool lists per agent drop from well over a hundred to a dozen or two, and routing failures become separable from tool-misuse failures by reading the trace.Serve your application over MCP
Agentic AI on BTP: a Single Agent with LangGraphpublishedA CAP TypeScript agent puts a LangGraph StateGraph in front of AzureOpenAiChatClient from @sap-ai-sdk/langchain, reaching SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp's Generative AI Hub, and lets its tool-calling loop draw on five deployed MCP serversServe your application over MCPExposing selected application data and business operations to an AI agent through the Model Context Protocol. An application may also integrate remote services through service integration, connecting its exposed contract with agent access to your systems. Development assistance belongs to agent access to your code.SAP and community, narrow by design — OData MCP Proxyodata-mcp-proxyA config-driven proxy that turns OData and REST endpoints into MCP tools from a JSON file — no code — and runs on BTP Cloud Foundry against BTP Destinations.independent, btp, CI MCP ServerCI MCP ServerAn MCP server that exposes SAP Cloud Integration's OData APIs as tools, defined entirely in one JSON config file, so an assistant works integration content, logs and configurations in natural language.independent, btp, AI Core MCP ServerAI Core MCP ServerAn MCP server that exposes SAP AI Core's APIs as tools, defined entirely in one JSON config file for a proxy, so deployments, configurations and scenarios are managed through an assistant.independent, btp, BTP MCP ServerBTP MCP ServerBTP Core Services as MCP tools, and the only server in this corner that renders dashboards inside the chat — a subaccount overview with drill-down, a geomap of data-centre locations, consumption and users.independent, btp and BTP CF MCP ServerBTP CF MCP ServerThe Cloud Foundry V3 API on SAP BTP as MCP tools — apps, orgs, spaces, services, routes and quotas — declared in one JSON config file and run by odata-mcp-proxy.independent, btp — through @langchain/mcp-adapters' MultiServerMCPClient. Because agent, servers and APIs share one XSUAA tenant, the chat service forwards the signed-in user's own JWT instead of a service account, so each downstream server enforces that user's own authorizations. Past roughly a hundred combined tools the single prompt slows down and stops separating concerns, which is why the author's next post splits it into one specialist agent per MCP server behind an orchestrator.Serve your application over MCP
BTP Audit Log MCP Server: Security Monitoring with AI AssistantspublishedWouter Lemaire builds an MCP server over SAP BTP's Audit Log Retrieval API using odata-mcp-proxyodata-mcp-proxyA config-driven proxy that turns OData and REST endpoints into MCP tools from a JSON file — no code — and runs on BTP Cloud Foundry against BTP Destinations.independent, btp, with a single entity set and zero custom code, so an AI assistant can answer natural-language questions like "Were there any configuration changes yesterday?" by calling AuditLogRecords_list against a BTP destination authenticated with the Audit Log serviceSAP Audit Log serviceIngests compliance audit data from BTP services and applications and keeps it for ninety days by default; retrieval and longer retention are separate services.sap official, btp's service key. It covers the destination setup, the entity-set configuration that maps the PascalCase entity name to a lowercase auditlogrecords path, and handling the API's 500-record pagination limit.Serve your application over MCP
Mon 28
Extend SAP SuccessFactors on SAP BTP with CAP - Create the CAP ServicepublishedWalks through writing a service definition in SAP Business Application StudioSAP Business Application StudioSAP's development environment for business applications, delivered as a cloud service and opened in a browser, where work happens in preconfigured dev spaces.sap official, btp that projects entities from an existing CDS model: one entity gets
@odata.draft.enabled because Fiori Elements only shows CRUD actions on a draft-enabled entity, and a read-only projection of an already-imported SuccessFactors OData entity fails with the generic handlers because the call is delegated to the remote service, so a custom handler is needed. Running cds watch then serves the entities, drafts and $metadata at the declared service path.ODataImporting an external data model using CDS Graphical Modeler for Visual Studio CodepublishedWalks through the CDS Graphical Modeler for Visual Studio Code: creating a "Customers" entity, importing an external OData model from an edmx file into the CDS model, and drawing a managed association from the new entity to an entity from the imported namespace. The import happens through the modeler's GUI rather than the
cds import command, and the imported edmx becomes a CDS file the modeler can open directly.Metadata publishingSAP CAP Adapter to expose OData as custom REST ServicepublishedWalks through consuming an external OData V2 service in a CAP project —
cds import converts the Northwind service's EDMX into a CSN and cds.connect.to wires up the remote proxy — then re-exposing it as plain REST with the @protocol:'rest' annotation instead of ODataODataExposing data and operations through OData, including the service model, metadata and protocol versions clients require. Version differences affect which clients can consume a service and which query features they can use.SAP and community, narrow by design's own envelope. Shows two ways to reshape the response, renaming and dropping fields in a CDS projection or rewriting the returned objects in a custom service handler, and remaps ?pageSize and ?offset onto OData's $top and $skip in that same handler.ODataSAP Cloud Platform Backend service: Tutorial [12]: CDS : local: buildpublishedCompiling a CDS model locally with the
cds command-line tool, installed from @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, cap via SAP's own npm registry, before uploading it to SAP Cloud Platform Backend service: cds compile converts the model to CSN by default, --to edmx or --to edm produces the OData V2 or V4 metadata document, and --to hana or --to sql produces the database-specific definition files. It shows the local build catching an error the CDS editor's own validation misses — an entity with no key, valid CSN but invalid OData — before the same model reaches the server's compiler.Metadata publishingSun 27
@odatano/nightgatereleased 0.27.0Queries that read the full contract state from every
ContractActions row.OData@odatano/nightgatereleased 0.28.0Client code that branches on
error.code being "400".OData@cap-js-community/odata-v2-adapterprovides[odata] revisedThe option states the protocol it serves for this concern, from its README (docs/concepts/design-roles-and-interfaces.md, P2): the odata facet is what is served, and the adapter serves V2; the V4 the same sentence names is what it translates into, which @sap/cds serves and states. The checker's reading found the runtime the README calls mandatory carried by no edge; it is one now.OData
@sap_oss/vscode-mta-toolslinks revisedThe old repository's README says it has moved to the app-studio-toolkit monorepo; the edge now cites the README at the new address.Deployment and operator
Show 12 more
@sap/cdsprovides[service-integration] revisedThe option states the protocols it speaks for this concern, from its documentation's sentence (docs/concepts/design-roles-and-interfaces.md, P2). Both facets cite the published capire pages, and each value carries the sentence that names it. What it serves rests on cds.protocols, which names OData V4 and REST outright. What it consumes rests on the Remote Services page, which names OData and plain REST, and, for the OData versions, on the Consuming Services guide, the one capire page that enumerates them; that guide says it is outdated and kept for archival purposes, so the entry dates the reading. HCQL, which CAP-level Service Integration calls CAP's native protocol, is not in the atlas's protocol list and stays out until it is.Configuration
Configurationcore coverage revisedcapire audit 2026-09-27, judgement pages read once more: a page this capability owns was cited nowhere.Configuration
Deploymentcore coverage revisedcapire audit 2026-09-27: a page this capability owns was cited nowhere.Deployment
Feature togglescore coverage revisedcapire audit 2026-09-27: the Feature Toggles guide documents toggled features as built into both runtimes, with the production toggle provider left to the project, which is exactly what the one community option supplies. The capability had no core paragraph and no source.Feature toggles
Health checkscore coverage revisedP1 backfill 2026-09-27: the paragraph and the runtime edge now rest on a page in common.Health checks
Loggingcore coverage revisedcapire audit 2026-09-27: a page this capability owns was cited nowhere.Logging
Metadata publishingcore coverage revisedcapire audit 2026-09-27: a page this capability owns was cited nowhere.Metadata publishing
Multitenancycore coverage revisedP1 backfill 2026-09-27: the paragraph and the runtime edge now rest on a page in common.Multitenancy
Multitenant SaaS Application using CAPparts, areas, edges revisedThe record states what its source draws around and between the parts (docs/concepts/reference-architectures.md §9.2): the provider and consumer subaccounts, the users and API clients, and the flow of subscription, data and authentication as the architecture page states it. On the checker's reading of the first draft: only the application is placed in the provider subaccount, since the page places nothing else there; the registration with the SaaS Provisioning service is the stated direction, not events the service raises; and API Management's policies are stated with no path, so no arrow.Multitenancy
ODatacore coverage, facets revisedA role in a design is filled from evidence that an option speaks what the fixed part exposes, and that join runs over one protocol vocabulary (docs/concepts/design-roles-and-interfaces.md, P2). Declared here so options can state it; absent stays "does not say".OData
Serve your application over MCPcore coverage revisedcapire audit 2026-09-27, link-only pages read a fourth time: MCP services are one of the three things SAP frames as CAP's native AI support, in the one sentence the section's index says of its own.Serve your application over MCP
Telemetrycore coverage revisedcapire audit 2026-09-27: a page this capability owns was cited nowhere.Telemetry
Sat 26
@odatano/nightgatereleased 0.26.0Upgrade notes that move to 0.26.0 without running
nightgate-rewrap-keys.OData