NewSAP Cloud Application Programming Model
Domain Process & WorkflowDomain Developer ExperienceDomain Protocols & APIs

Today
14 changes
enforce-export-coverageadded to the atlasStatic check that each exported TypeScript function has a testCLI,
hana-linteradded to the atlasRegex naming rules for SAP HANA artifacts in a CAP projectCLI,
My CAP Projects ToolboxpublishedA working inventory of daily CAP tooling: scaffolding a project with cds init and growing it facet by facet through cds add (TypeScript, seed data, an .http test file, a handler stub), then running it with cds watch and setting a breakpoint in a custom handler from SAP Business Application Studio's JavaScript Debug Terminal. It also walks through an @open entity that accepts properties the model never declared, and reading temporal data defined with CAP's temporal aspect, where a plain read returns only what is valid now and a custom handler is needed to retrieve every time slice.Blog,
Debuggingcore coverage, coverage by ecosystem revisedReassessed against the graph (check:capabilities): seven ABAP providers newer than the block were never named. State stays core-and-community.Capability,
Show 10 more
Editor supportcore coverage, coverage by ecosystem revisedReassessed against the graph (check:capabilities): the providers behind the UI5 door are SAP's (UI5 Language Assistant, and SAP Build Code and SAP Web IDE Full-Stack, which serve ui5). The community SAPUI5 Extension is an entry in the graph but has no provides edge to this capability.Capability,
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.Capability,
Generatorscore coverage, coverage by ecosystem, framing by ecosystem revisedReassessed against the graph (check:capabilities): the atlas holds these entries, so the links point at them and not at their repositories (docs/WRITING.md section 4).Capability,
Local developmentcoverage by ecosystem, coverage by flavor revisedReassessed against the graph (check:capabilities): the note counted providers and claimed an absence about who has built something, which goes stale as providers arrive.Capability,
Model visualisationcoverage by ecosystem revisedReassessed against the graph (check:capabilities): abapGraph and abap-search-tools-ui arrived after the ABAP block was last looked at and the text never named them. No state changed.Capability,
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.Capability,
Seed datacore coverage, coverage by ecosystem revisedReassessed against the graph (check:capabilities): no artifact provides seed-data for the UI5 door; the two tools the sentence named provide ui5-testing. The core stays present on the sourced what_core_does. The tools stay on the graph under ui5-testing.Capability,
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.Capability,
TypeScript patternscore coverage revisedReassessed against the graph (check:capabilities): removes the count of ways and links the providers that define each kind (decorators, method names, folder layout, persistence), as WRITING §3 asks.Capability,
Workflow integrationcore coverage revisedReassessed against the graph (check:capabilities): the CAP Java n8n plugin is SAP-official and uses the outbox, so outbox dispatch is no longer only a community addition. Source: the plugin's README. State unchanged.Capability,
Yesterday
1 change
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'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.Blog,
Sat 24
2 changes
Edge Integration Cell : Design, deploy and manage APIspublishedWalks through creating an API artifact in API Management on the customer-managed Edge Integration Cell runtime, including the option to generate the artifact by importing an OpenAPI 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.Blog,
Part 2 – Empowering SAP BTP CAP Services through Open API Spec and Annotations for Effective Communication, Collaboration and GovernancepublishedWalks through generating an OpenAPI specification for a Node.js CAP service: installing cds-swagger-ui-express, 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.Blog,
Fri 23
2 changes
cds-hyper-app-servicelifecycle 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.Package,
cds-internal-toollifecycle 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.Package,
Mon 19
7 changes
DRY CAP – Making Sustainable Solutions Through PluginspublishedA Devtoberfest 2026 building-apps session on packaging the things you would otherwise write twice, from in-house API clients and shared data models to validation logic, as a CAP plugin. The presenter builds one live: a cds-plugin.js next to package.json is what makes CAP notice the plugin at all, an index.cds carries a reusable user context and service that the consuming application projects into its own and protects there, and the plugin registers an Express middleware at a chosen step of the bootstrap to put user properties on the request. A feature-flagging plugin his team already uses closes it, and the whole walkthrough is the edge to Plugin authoring.Talk,
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 Playwright and browser dev tools, then annotates the catalogue service with the MCP protocol through @cap-js/mcp, 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.Talk,
Supply Chain Rescueadded to the atlasCAP and SAPUI5 demo of recovery from a supply disruptionSample,
What's in Daniel Hutzel's brain?publishedA Devtoberfest 2026 session in the building-apps track, in which Daniel Hutzel and DJ Adams 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 MCP, Agent tooling and Agent guidance 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 authoring.Talk,
Show 3 more
Editor supportecosystems revisedUI5 Language Assistant, SAP's VS Code extension for UI5 XML views and manifest.json, and the SAPUI5 Extension by iljapostnovs were staged in intake-20261019-bestofui5 with this concern as their best fit, and the capability was not open on the UI5 door. The UI5 reading comes from the UI5 Language Assistant README.Capability,
Lintingcoverage by ecosystem revisedUI5 linter (@ui5/linter) and ui5plugin-linter were staged in intake-20261019-bestofui5 with provides edges here, so the note that the graph holds no UI5 linter no longer holds and a community linter is present. The UI5 linter README was read again on 2026-10-19.Capability,
Seed dataecosystems revisedvscode-ui5-odata-mock-generator and openui5-smart-mockserver were staged in intake-20261019-bestofui5 under ui5-testing; the first one's drafter noted that seed-data fit better but was not open on the UI5 door. The UI5 reading comes from the OpenUI5 mock server pages and SAP's ui5-middleware-fe-mockserver README.Capability,
Sun 18
5 changes
CAP in the age of AIpublishedSeven live episodes of Hands-on SAP Dev in which DJ Adams 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: 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 — 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 Cloud.Series,
CAP in the age of AI #1 - the MCP adapterpublishedThe episode that opens the series and the first pass over @cap-js/mcp, 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.Video,
CAP in the age of AI #2 - more on the MCP adapterpublishedWhat the query tool costs in tokens, and the third tool @cap-js/mcp 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.Video,
CAP in the age of AI #3 - from MCP to A2ApublishedThe episode that finishes @cap-js/mcp 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, which serves it over A2A with an agent card and a chat preview, runs first against a mocked response and then against SAP AI Core bound with cds bind and a hybrid profile, and reuses the MCP adapter's tools rather than defining new ones.Video,
Show 1 more
@odatano/nightgatereleased 0.35.0Client code and examples written against the /api/v1/… service paths.CDS plugin,
Sat 17
98 changes
#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).Blog,
A Fiori Launchpad Sandbox for all your CAP-based projects - Overviewexplains 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).Blog,
A Fiori Launchpad Sandbox for all your CAP-based projects – Sample project setupexplains 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).Blog,
A modern workflow for SAP Cloud Integration with CAP and Azure DevOpsexplains 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).Blog,
Show 94 more
Add useful Extensions to Dev spaces in SAP Business Application Studioexplains 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).Blog,
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).Blog,
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).Blog,
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).Blog,
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).Blog,
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).Talk,
AI-enabled administration: Automating log analysis with generative AI hubexplains 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).Talk,
An introduction to CDS Graphical Modeler for SAP Business Application Studioexplains 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).Blog,
Automate your Job Postings Using Generative AI (ChatGPT) & SAP Build Process Automation 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).Blog,
Avoid design time CAP server restarts when maintaining local data filesexplains 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).Blog,
Avoiding Data Loss When Loading Initial Data with CSV Files in 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).Blog,
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).Blog,
CAP full-stack testing with BDD flavourexplains 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).Blog,
CAP Initializr: Generate SAP CAP Projects in Secondsexplains 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).Blog,
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).Video,
CAP Typescript + Fiori Typescript + live reload Initial app setupexplains 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).Blog,
CAP with Local App Previews – Tips for Smooth Developmentexplains 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).Blog,
CAP: Unit Testing using Mocha and Chaiexplains 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).Blog,
cds-launchpad-plugin supercharged & ready for the future - CAP Plugin, UI5 Tooling support & Async Launchpadexplains 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).Blog,
cf-create-app: Create End-to-End apps and deploy to Cloud Foundry in minutesexplains 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).Blog,
CI/CD pipelinesdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.btp. Maintainer-requested scope audit.Capability,
Create a Simple CAP Application and Explore the Defaultsexplains 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).Workshop,
Create Automated System Tests for SAP Cloud Application Programming Model 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).Tutorial,
Creating a Hybrid CAP (Node.js) Profile with PostgreSQL on BTP from Business Application Studioexplains 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).Blog,
Creating new services using the CDS Graphical Modeler for SAP Business Application Studioexplains 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).Blog,
Creating structured types, enums and named aspects 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).Blog,
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).Blog,
debug a CAP app with UI5 TypeScript UI component with VS 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).Blog,
Develop CAP Project with Lazyvim in Dockerexplains 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).Blog,
Develop SAP CAP apps inside a VS Code Docker Containerexplains 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).Blog,
Developing CAP applications in SAP Business Application Studioexplains 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).Blog,
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).Blog,
Enhancing Unit Testing in SAP CAP Java Applications with GitHub Copilotexplains 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).Blog,
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).Blog,
Full Stack TypeScript App for Cloud Foundry - Sample Repositoryexplains 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).Blog,
Get an introduction to the cds REPLexplains 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).Tutorial,
Get familiar with your first CAPM project using CDS graphic 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).Blog,
Get Started with an SAP Cloud Application Programming Model Project in SAP Continuous Integration and Deliveryexplains 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).Tutorial,
Getting Started with Unit Testing in SAP CAP Java 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).Blog,
Handling CSV Data Deployment in CAP HDI Without Data Lossexplains 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).Blog,
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).Blog,
How to fix npm error notarget @sap/hdi-deploy when you create a CAP app in BASexplains 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).Blog,
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).Blog,
Importing @sap/cds common.cds 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).Blog,
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).Blog,
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).Blog,
Integration Tests in a Cloud Foundry Java App using 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).Blog,
Introducing eslint-plugin-better-cap-config an ESLint plugin to improve CAP configurationexplains 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).Blog,
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).Blog,
ISO content for common CAP typesexplains 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).Blog,
Lintingdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
Making CAP Application Development Easier and Faster with the Help of Storyboard in SAP Business Application Studioexplains 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).Blog,
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).Blog,
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).Blog,
Migrating Your CAP Applications from SAP Web IDE to SAP Business Application Studioexplains 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).Blog,
Model visualisationdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
ODatadescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
OpenAPIdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
Part 1: How to create CAPM project in BASexplains 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).Blog,
Plugin authoringdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
Prompt-Driven Development: Building Full-Stack SAP CAP Apps from User Storiesexplains 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).Blog,
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).Blog,
Remote Debugging of SAP CAPM App - Nodejsexplains 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).Blog,
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).Blog,
Running CAP Node Applications in SAP Business Application Studioexplains 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).Blog,
SAP AI Services - DOX - Gen AI with SAP CAP Plugin - Part 3explains 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).Blog,
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).Blog,
SAP BTP Showcase – SAP Continuous Integration and Delivery (SAP CI&D) for SAP HANA 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).Blog,
SAP Build Process Automation – Use Principal Propagation in Actions sample: CAP Node.js 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).Blog,
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).Blog,
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).Blog,
SAP CAP: Best VSCode extensions for TypeScript development (UI5 & NodeJS)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).Blog,
SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1explains 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).Blog,
Serve your application over MCPdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
Set up a self-contained development environment for CAP Node.jsexplains 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).Tutorial,
Set up VS Code on Chrome OS for local Application Programming Model developmentexplains 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).Blog,
Storyboard for cloud business applications using CAP in SAP Business Application Studioexplains 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).Blog,
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).Blog,
Streamlining CAP Development with CDS Graphical Modeler in SAP Business Application Studioexplains 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).Blog,
Surviving and Thriving with the SAP Cloud Application Programming Model: Local development hurdlesexplains 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).Blog,
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).Blog,
Testingecosystems revisedThe same concern on the SAP Digital Manufacturing door, opened 2026-10-17: SAP published test automation modules for the product's standard apps.Capability,
Testing your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbviewexplains 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).Blog,
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).Blog,
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).Blog,
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).Blog,
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).Reference architecture,
Tips and Tricks for Working with Annotations in CAP Projects using Language Server Protocol (LSP) capabilitiesexplains 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).Blog,
Triggering SAP Build Process Automation Processes from SAP Cloud Application Programming (CAP) 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).Blog,
TypeScript patternsdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
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).Blog,
Use Tasks in Visual Studio Code to start a cds service, an approuter and launch a browser in one goexplains 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).Blog,
Workflow integrationdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
加速开发和部署的CAP CDS和Fiori一些实用命令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).Blog,
Thu 15
16 changes
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 Suite and Joule Studio are described as SAP-provided paths. Hosting a server on BTP does not automatically supply its governance controls.Reference architecture,
@dxfrontier/cds-ts-dispatcherprovides[typescript-patterns] revisedThe edge said only that the package answers the capability. It now says what it contributes — decorators binding handlers, the three layers its documentation recommends, injection between them and the draft decorators — and states the four comparison facets the capability declares, each on the README sentence it rests on.Package,
@dxfrontier/cds-ts-repositoryprovides[typescript-patterns] revisedThe edge carried no sentence. It now says which half of the arrangement the package answers, names the two ways its own documentation shows it being used, and states the persistence value of the capability's layers facet. draft_events is left unstated on purpose: BaseRepositoryDraft reads and writes the draft entity, which is not a place to handle the draft events, and stating the flag here would make the two look like the same fact.Package,
@neoimpulse/cap-js-bootstrapprovides[capability:local-development] revisedcapability:local-development curation on 2026-10-15. The edge was a bare reference: the one capability this package answers carried no sentence and no source, which rule 10 does not allow. The package's own npm text names what it starts, cds watch per service and the router through cds bind --exec, and is quoted in its own language. Read through registry.npmjs.org because npmjs.com refuses the fetcher.CLI,
Show 12 more
@sang2x/captoolsprovides[capability:local-development] revisedcapability:local-development curation on 2026-10-15. Its own command description states that it writes the resolved VCAP_SERVICES into default-env.json, which is the documented difference against cds bind, where only the place the credentials can be fetched from is stored on the machine. Stated as a fact about the file, with the consequence for a project named in when_not_to_use rather than as a judgement on the tool.CLI,
@sap/cds-dkprovides[capability:local-development] revisedcapability:local-development curation on 2026-10-15. The edge named the hybrid profile without naming cds bind, and the capability's new comparison columns need the sourced answers here: the parts of the local stack this starts, that it binds cloud services, and that only the location of the credentials is stored on the machine, which is the difference against a helper that writes them into a file.CLI,
cap-handler-frameworkprovides[typescript-patterns] revisedThe edge carried no sentence while the artifact's own description carried the detail. It now says what the package contributes to this capability — method names as the binding, the generated index the service reads, the separate draft hooks and the shared context — and states handler_binding, dependency_injection and draft_events on the README sentences they rest on. The layers facet is left unstated: the feature list read today names no layer above the handlers.CDS plugin,
cds-plugin-handlersprovides[typescript-patterns] revisedThe edge carried no sentence. It now says how the plugin decides where a handler goes, which is by folder and file name rather than by a decorator, and states the handler_binding and layers values of the capability's comparison, each on the README sentence it rests on. dependency_injection and draft_events are left unstated: the README mentions neither.CDS plugin,
cds-plugin-typescriptprovides[typescript-patterns] revisedThe edge carried no sentence. It now says what the plugin does at build time and that it says nothing about the arrangement of the code it compiles. Whether the edge belongs on typescript-patterns is an open editorial question recorded with the capability's review: capire now ships a cds build task for TypeScript in @cap-js/cds-typer, which puts this plugin beside the core's toolchain answer rather than beside the arrangement options. No facet values are stated, because the capability's four facets ask about the arrangement and the README answers none of them.Build tool,
cds-routing-handlersprovides[typescript-patterns] revisedThe edge carried no sentence. It now says what the package binds and where it stops, and states the handler_binding and layers values of the capability's comparison on the README sentences they rest on. No lifecycle field was added: the README read today carries no statement by its maintainer about the package's end, and the predecessor sentence in the one-liner is another author's reading, already attributed as such.Package,
cds2typeslifecycle, provides[typescript-patterns] revisedThe edge carried no sentence. It now says what the tool produces and that it says nothing about the arrangement of the code around it. Whether this edge belongs on typescript-patterns at all is an open editorial question recorded with the capability's review: generating types from a model is the typing concern, and this pass does not move the edge.CLI,
com.sap.cds:cds-maven-pluginprovides[capability:local-development] revisedcapability:local-development curation on 2026-10-15. The edge said the goal rebuilds and restarts and left out that whether it restarts or reloads depends on Spring Boot Devtools, and that on Windows it does not work without them, which is the difference a reader on this flavor meets first.Build tool,
dev-approuterprovides[capability:local-development] revisedcapability:local-development curation on 2026-10-15. The capability now compares its options by the part of the local stack each one starts, and this package's own description states the part. Nothing was entered for the two flags: the registry page carries no README, so whether it resolves a cloud binding itself is not stated anywhere read here.Build tool,
Local developmentcore coverage, coverage by flavor, framing by flavor, facets revisedNine options answered this capability with nothing to compare them by, and they are not variants of one tool: the first question a reader has is which part of the local stack an option starts. The two flags separate the hybrid-testing helpers, where cds bind states that only the location of the credentials is stored on the machine and @sang2x/captools states that it writes the resolved VCAP_SERVICES into default-env.json.Capability,
Testingcoverage by ecosystem revisedIntake of @saptools/bruno, which runs request collections against services deployed to Cloud Foundry: the concern exists behind the BTP door.Capability,
TypeScript patternscore coverage, coverage by flavor, facets, changed in revisedRead from capire's December 2024 release notes, so the setup steps in readings published before it can be seen to predate the change. The release page names the month only; the date is its first day.Capability,
Tue 13
1 change
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 environment 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.Blog,
Mon 12
11 changes
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 publishing and CRUD requests, fills in primary keys and audit data, and writes trace and audit logs 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 annotations work in CAP.Blog,
Model Context Protocol Adapter — CAP guidepublishedDocuments @cap-js/mcp and com.sap.cds:cds-adapter-mcp, 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.Doc,
@odatano/nightgatereleased 0.32.0Calls to the sponsor actions that pass a sponsorSessionId.CDS plugin,
@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.CDS plugin,
Show 7 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.CDS plugin,
@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.CDS plugin,
@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.MCP server,
@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.MCP server,
cap-mcp-pluginprovides[mcp-servers], provides revisedResolves the requested review findings while preserving the structured comparison values, runtime scopes and implementation restrictions.CDS plugin,
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.Package,
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.Capability,
Sun 11
5 changes
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 MCP concern, and SAP AI Core is the LLM integration 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 Hutzel, Daniel Schlachter, Marc Huber and Sami Lechner, written here from SAP's abstract; the recording is not yet published.Talk,
AI needs a foundation: A map of the plug-in ecosystem for CAPpublishedA map of the plug-ins for CAP (@sap/cds), official, community and independent, drawn across regions such as integration, performance and tooling, so that a team can see what exists to reuse and what it would have to build: the question plugin authoring answers from the other side. SAP's abstract places CAP at the centre of its AI strategy, with model context protocol support, and the map is offered as the foundation under that. A TechEd 2026 session (Tuesday 27 October, Community Theater, Berlin), presented by Mike Zaschka, written here from SAP's abstract; the recording is not yet published.Talk,
AI-enabled administration: Automating log analysis with generative AI hubpublishedA log analysis tool for incident work, built in SAP Business Application Studio with the generative AI hub feature, which SAP AI Core ships as its LLM integration by its own documentation: it automates root-cause analysis over system errors and masks sensitive data. SAP's abstract states the tool's jobs and not how the hub is called, what the masking covers or which model answers. A TechEd 2026 session (Wednesday 28 October, Berlin), with no speaker listed in the catalogue at the time of writing, written here from SAP's abstract; the recording is not yet published.Talk,
From Dashboard to Conversational AI in Minutes: Adding MCP to an Existing CAP ApplicationpublishedA walkthrough of adding @cap-js/mcp 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.Blog,
Show 1 more
September 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 server 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 GraphQL 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 tooling; 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 publishing.Blog,
Sat 10
2 changes
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 WebSocket channel through @cap-js-community/websocket, while Draft handling gains ABAP RAP's live field locking on CAP Node.js through Sören Leibach's own cap-collaborative-draft plugin. Both rest on Fiori annotations such as Common.SideEffects and CollaborativeDraft.enabled, which the frontend reads rather than requiring a manifest flag.Blog,
SAP Cloud Application Programming Model(CAP):カスタムロジックの実装 – Part 2publishedA walkthrough of implementing custom logic in a CAP Node.js service for the capire bookshop 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.Blog,
Fri 9
2 changes
Don't "let it crash", is this the new CAP guideline?publishedDinu traces a change in error handling in CAP's Node.js runtime: @sap/cds@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.Blog,
Serve 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.Capability,
Thu 8
4 changes
cap-cds-typeradded to the atlasCAP service in TypeScript using types from @cap-js/cds-typerSample,
cap-github-actionadded to the atlasCAP project built and deployed to Cloud Foundry by GitHub ActionsSample,
cap-java-childadded to the atlasConsumer side of a CAP Java parent pom promotion model with RenovateSample,
cap-java-parent-pom-sampleadded to the atlasMaven parent pom pinning cds-services-bom and Spring Boot for CAP JavaSample,
Tue 6
1 change
@cap-js/openapireleased 1.7.0OpenAPI documents generated before 1.7.0 for services without a @protocol, which described REST paths for them.CDS plugin,
Sat 3
1 change
CAP Node.js Expert Session #6 - The MCP AdapterpublishedDaniel Schlachter and DJ Adams add @cap-js/mcp 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.Video,

Tue 29
3 changes
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 servers 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-tooling 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 Core GenAI Hub model setup behind two credential layouts, one for local runs and one for the Cloud Foundry service binding, the LLM integration 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.Blog,
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 Core's Generative AI Hub, and lets its tool-calling loop draw on five deployed MCP servers — OData MCP Proxy, CI MCP Server, AI Core MCP Server, BTP MCP Server and BTP CF MCP Server — 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.Blog,
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-proxy, 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 service'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.Blog,
Mon 28
6 changes
Extend SAP SuccessFactors on SAP BTP with CAP - Create the CAP ServicepublishedWalks through writing a service definition in SAP Business Application Studio 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.Blog,
How to build reusable plugin components for CAP Java applicationspublishedA companion to Daniel Schlachter's Reusable components for CAP with cds-plugin, showing the same mechanism on CAP Java: a plugin ships as its own Maven artifact with an event handler and a CdsRuntimeConfiguration implementation, registered through the JDK's ServiceLoader rather than any CAP-specific wiring. The walkthrough builds a cds-emoji-plugin-java jar that decorates @emoji-annotated fields on read, installs it to the local Maven repository, and adds it as a runtime dependency to a cds init --add java bookshop application. It argues the plugin mechanism was not new to CAP Java, just previously undocumented.Blog,
Importing 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.Blog,
SAP 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 OData'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.Blog,
Show 2 more
SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1publishedIntroduces SAP Cloud Application Programming Model as an open, opinionated framework that shoulders OData plumbing and database-specific code so a domain is modelled once in CDS, then builds a small bookshop project to show it: @sap/cds-dk's cds init scaffolds the project, cds watch serves it locally with live reload against an in-memory SQLite database, and a CatalogService projects a CDS domain model seeded from CSV files. The result is read as an OData service in the browser and exercised further through a Postman collection, with the optional @sap/vscode-cds extension noted for CDS syntax highlighting and completion in VS Code.Blog,
SAP Cloud Platform Backend service: Tutorial [12]: CDS : local: buildpublishedCompiling a CDS model locally with the cds command-line tool, installed from @sap/cds 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.Blog,
Sun 27
13 changes
@cap-js/processadded to the atlasStarts and manages SAP Build Process Automation processes from CAPCDS plugin,
@odatano/nightgatereleased 0.27.0Queries that read the full contract state from every ContractActions row.CDS plugin,
@odatano/nightgatereleased 0.28.0Client code that branches on error.code being "400".CDS plugin,
@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.CDS plugin,
Show 9 more
cf-setupprovides revisedA GitHub Action runs in a pipeline; it is what ci-cd is about, and deployment is what the pipeline does with it. Filed under deployment before ci-cd reached the CAP door.Build tool,
CI/CD pipelinesecosystems revisedThe capire audit of 2026-09-27 proposed CI/CD as a CAP concern and found this capability already on the BTP door, where the service is. capire's Deploy using CI/CD Pipelines guide is the CAP door's own answer, cds add github-actions and the service's ready-made CAP pipeline; three content entries about CAP pipelines had been filed under deployment for want of the door. Added by the maintainer's decision.Capability,
Debuggingcore coverage revisedPackage pass 2026-09-27: the paragraph named one of the four SAP packages and cited the plugins index only; cds debug and the Java developer dashboard were cited nowhere.Capability,
Local developmentcore coverage revisedcapire audit 2026-09-27, judgement pages read once more: a page this capability owns was cited nowhere.Capability,
Metadata publishingcore coverage revisedcapire audit 2026-09-27: a page this capability owns was cited nowhere.Capability,
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".Capability,
Plugin authoringcore coverage revisedcapire audit 2026-09-27, proposed pages read a fourth time: the paragraph names the cds add and cds build plugin APIs, and the design-time APIs index says which package they are and where they must not run.Capability,
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.Capability,
Testingcore coverage revisedcapire audit 2026-09-27: a page this capability owns was cited nowhere.Capability,
Sat 26
1 change
@odatano/nightgatereleased 0.26.0Upgrade notes that move to 0.26.0 without running nightgate-rewrap-keys.CDS plugin,
The last 30 days. Older changes stay in each entry's history.