NewSAP Cloud Application Programming Model
Domain Learning & ReferenceDomain Developer Experience

Today
11 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 7 more
Documentationcore coverage, coverage by ecosystem, coverage by flavor revisedReassessed against the graph (check:capabilities): absence claims about providers go stale as providers arrive. The flavor states are unchanged.Capability,
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,
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,
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,
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,
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
4 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,
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,
Sat 17
67 changes
Clean-Core.ioadded to the atlasHosted workspace redrawing custom ABAP as BPMN and grading itWeb tool,
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,
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,
Show 63 more
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,
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,
Build a Business Application Using CAP for Javaexplains 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,
Build a Business Application Using CAP for 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).Workshop,
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 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,
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 a Full-Stack CAP Application Following SAP BTP Developer's 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).Workshop,
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,
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,
From Concept to action: Hands-On with the CAP Operator and the Partner Reference Applicationexplains 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 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,
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,
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,
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,
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,
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,
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,
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 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 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,
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,
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,
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 CAPstone Project: A Journey from Component to 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,
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,
TypeScript patternsdescription revisedKeep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit.Capability,
UI5ers Buzz #56: New full-stack UI5 sample app featuring CAP + OData V4 + draft modeexplains 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,
加速开发和部署的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
15 changes
@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,
@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,
Show 11 more
@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,
Sun 11
2 changes
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,
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,

Mon 28
2 changes
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,
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,
Sun 27
8 changes
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,
Documentationcore coverage revisedPackage pass 2026-09-27: the capability had no paragraph and no source at all.Capability,
Show 4 more
Local developmentcore coverage revisedcapire audit 2026-09-27, judgement pages read once more: a page this capability owns was cited nowhere.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,
Testingcore coverage revisedcapire audit 2026-09-27: a page this capability owns was cited nowhere.Capability,
xtravelsdemonstrates revisedcapire's XTravels Sample for AI page shows the sample integrating several MCP services and CAP-level agents.Sample,
Fri 25
4 changes
@sap-ux/createadded to the atlasCommand line for changing features of an existing Fiori projectCLI,
@sap-ux/fe-fpm-writeradded to the atlasWriter of flexible programming model elements into Fiori elements appsPackage,
@sap-ux/odata-service-writeradded to the atlasWriter that adds an OData service to an existing UI5 projectPackage,
ui5con24-dev-envadded to the atlaspnpm workspace running CAP, a local launchpad and two UI5 appsSample,
Wed 23
1 change
SAP AI Services - DOX - Gen AI with SAP CAP Plugin - Part 3publishedBuilding on Reusable components for CAP with cds-plugin by Daniel Schlachter, this part walks through a custom CAP plugin — a cds-plugin.js plus a lib_cap_dox.js helper — that authenticates against SAP's Document Information Extraction (DOX) service and calls its schema and job-status APIs to fill an entity from extracted document fields. It covers reading the service key from Cloud Foundry (cf service-key) for the OAuth token endpoint, and dynamically mapping DOX's header and line-item output onto CAP entity properties.Blog,
Tue 22
1 change
CAP full-stack testing with BDD flavourpublishedIntroduces Behavior-Driven Development for CAP applications: specifications written in Gherkin against a running app, validated by Cucumber, using cds-cucumber's ready-made step definitions for SAP Fiori elements and OData screens. The library handles service lifecycle — starting the app, assigning a port, driving the browser and authenticating a named user — and its OData steps know the service's entities and fields from the CDS model itself, so a scenario can open a list report, search it and assert row counts without hand-written glue code.Blog,
Sun 20
2 changes
@animb1996/cds-data-driftadded to the atlasCompares a CAP project's CSV data with its database rowsCLI,
Typingcore coverage revisedcds-internal-tool, an independent package, carries a provides edge to this capability on CAP beside the three sap-official providers, so core-only no longer says who is present. relationship is unassessed: no retrieved page gives the history between the two.Capability,
Sat 19
8 changes
com.sap.cds:cds-feature-consoleadded to the atlasConnects a running CAP Java app to CAP console for monitoringPackage,
com.sap.cds:cds-feature-dev-dashboardadded to the atlasBrowser dashboard for a running CAP Java service during developmentApp,
com.sap.cds:cds-maven-pluginadded to the atlasMaven plugin running CDS build steps in a CAP Java projectBuild tool,
com.sap.cds:cds-services-archetypeadded to the atlasMaven archetype generating a new CAP Java projectGenerator,
Show 4 more
com.sap.cds:cds-feature-consoleprovides revisedNew CAP Java provider discovered through the repository's README and its Maven coordinates. Facts describe the pinned source revision, not verified deployment compatibility.Package,
com.sap.cds:cds-feature-dev-dashboardprovides revisedNew CAP Java provider discovered through official CAP documentation. Facts describe the pinned source revision, not verified deployment compatibility.App,
com.sap.cds:cds-maven-pluginprovides revisedNew CAP Java provider discovered through official CAP documentation. Facts describe the pinned source revision, not verified deployment compatibility.Build tool,
com.sap.cds:cds-services-archetypeprovides revisedNew CAP Java provider discovered through official CAP documentation. Facts describe the pinned source revision, not verified deployment compatibility.Generator,
Fri 18
2 changes
@sap-ux/cap-config-writeradded to the atlasWriter module for changing a CAP project's configuration from codePackage,
@sap/ams-devadded to the atlasCompiler from AMS DCL policies to DCN for local runs and testsBuild tool,
Wed 16
1 change
@cap-js/data-inspectorreleased 2.0.0Instructions that open the inspector from the running CAP server, and an mta.yaml that still names capjsdatainspectorapp or the old gen folder.CDS plugin,
Tue 15
7 changes
Before You Upgrade S/4HANA: Static UI5 Checks with MCPpublishedA UI5 version upgrade checked against one app by pairing two MCP servers: the ui5_version_diff tool added to mcp-sap-docs, which reads a bundle from ui5-lib-diff downloaded once at setup and filters it by version range, change type, library or query text, and @ui5/mcp-server, whose get_project_info, get_version_info, run_ui5_linter and run_manifest_validation say what the app uses and what fails. Run with a ui5-versions-upgrade.md skill on the legacy app from From SEGW and Legacy UI5 to RAP with ARC-1, from SAPUI5 1.84.59 to 1.147.2, the diff range held 985 deprecations and 961 What's New entries, and the linting and manifest validation narrowed that to findings in this app, among them jQuery.sap.require, synchronous bootstrap, the sap_belize theme, sap.m.MessagePage and an old manifest _version. The checks read the source in a local checkout and never the deployed app, so the report is a first pass: a changelog entry is not proof that a workaround can be deleted, and the app still has to be run and tested.Blog,
Finally: An MCP Server for ABAPpublishedAnnounces the ABAP variant of mcp-sap-docs, published at mcp-abap.marianzeis.de for GitHub Copilot's Agent Mode in ADT for Eclipse, which the post names as the trigger, with ABAP knowledge still a recurring problem in the models. Documentation irrelevant to ABAP was removed from the SAP docs server and the ABAP Keyword Documentation, the DSAG ABAP Development Guidelines and the ABAP Style Guide were added, with search reaching past the local index to SAP Community posts and SAP Help. Copilot in Eclipse is where the post puts the weight, because SAP Joule for Developers, ABAP AI capabilities in Eclipse is not available for S/4HANA on-premise systems; an update of 2026-02-05 adds Software Heroes as an online source and an abap_feature_matrix tool that checks feature availability across releases and ABAP Cloud, and the server runs hosted or locally with Node or Docker.Blog,
Joule in SAP Build Codeadded to the atlasJoule's generative AI inside SAP Build CodeService,
SAP Build Codeadded to the atlasDevelopment environment on BTP for UI5, Fiori, mobile and CAPService,
Show 3 more
SAP Continuous Integration and Deliveryadded to the atlasPredefined CI/CD pipelines for SAP development projectsService,
Editor supportecosystems, coverage by ecosystem, framing by ecosystem revisedOn BTP the editor is a hosted service rather than a language server or an Eclipse plugin, which is what the CAP and ABAP framings describe.Capability,
TypeScript Sheriff: How can I use TypeScript in the SAP ecosystem? (Part 2 of 3)explains, summary revisedRewritten to say what the post states about each framework, so the new edges hold in the summary, and to drop the sentence on parts one and three that the series section now shows with their decline notes.Blog,
Mon 14
23 changes
approuteradded to the atlasShowcase for dev-approuter in front of two UI5 appsSample,
bookshop-javaadded to the atlasJava implementation of the capire/bookshop getting-started sampleSample,
bookstore-javaadded to the atlasJava implementation of the capire/bookstore composite appSample,
cap-nodejs-dev-envadded to the atlasDevelopment container definition for CAP Node.jsSample,
Show 19 more
cds-bookshopadded to the atlasCAP bookshop showing UI5 development with cds-plugin-ui5Sample,
commonadded to the atlasSample CAP plugin extending @sap/cds/common with reuse dataSample,
ordersadded to the atlasSample CAP reuse service for orders, with a Fiori UISample,
orders-javaadded to the atlasSample CAP Java reuse service for orders, with a Fiori UISample,
reviewsadded to the atlasSample CAP reuse service for reviews, with a Fiori UISample,
reviews-javaadded to the atlasSample CAP Java reuse service for reviews, with a Vue UISample,
tailspendmanagementadded to the atlasCAP reference application for tail spend managementSample,
ui5-bookshop-vieweradded to the atlasUI5 app consuming the cds-bookshop server via ui5-middleware-capSample,
xtravelsadded to the atlasCAP travel-booking app built on xflights master dataSample,
xtravels-javaadded to the atlasCAP Java travel-booking app built on xflights-java master dataSample,
Debuggingcoverage by flavor revisedAssessed for the ABAP Cloud flavor: SAP's own troubleshooting guidance for RAP apps places the ABAP Debugger inside ABAP Development Tools, and the only ABAP-door provider in the corpus, Smart Debugger, states standard-abap only and runs in the SAP GUI New Debugger, not ADT — so no provider states abap-cloud and the core is SAP's own.Capability,
Documentationcoverage by flavor revisedThe only UI5-ecosystem artifact that states web-components in its flavors is ui5-webcomponents-mcp-server, sap-official, and no other UI5-ecosystem provider of this capability names the flavor at all — core-only per the reading rule. framing_by_flavor was left unset: framing_by_ecosystem.ui5 already describes this same artifact, and it already reads as the web-components flavor's own paragraph rather than a cross-flavor one, so a second copy would restate it rather than say something different.Capability,
Editor supportecosystems revisedWidened to ABAP: Xexer/my-ide-actions adds IDE actions to ADT, and DevEpos/abap-tags-backend and DevEpos/abap-call-hierarchy are the ABAP backends of two Eclipse plugins. The description lost its CDS wording, which moved to framing_by_ecosystem.cap.Capability,
Generatorsecosystems revisedAbapGenerator scaffolds ABAP objects from a template package. Thirteen UI5 Community repositories generate UI5 projects or add to one: Easy-UI5 and its npm init wrapper, generators for apps, libraries, controls and tooling extensions, and create-wdi5 and generator-ui5-wdi5, which add wdi5 to an existing app.Capability,
Lintingecosystems revisedui5con-2026-ui5-linter-workshop, a SAP-samples workshop in this batch, runs UI5 linter over a legacy UI5 app, which is this concern on the UI5 door. The UI5 reading comes from the UI5 linter README.Capability,
Local developmentecosystems revisedabapDevSysInit sets up a new ABAP Developer Edition or trial system from one report: the user profile, the GitHub certificates and destination, abapGit standalone, and the repositories to pull.Capability,
Model visualisationecosystems, description revisedThe description named only a CDS model and .cds files, which is false on the ABAP door added the same day. The ABAP half and 'source file' are the only change.Capability,
Reference appscore coverage, ecosystems revisedTwo SAP-samples repositories in this batch are whole applications on other doors: hana-shine-xsa, SHINE for XS Advanced on SAP HANA, and btp-abap-cna, a RAP side-by-side extension on SAP BTP ABAP Environment. Both are samples, so each door opens unmapped.Capability,
Seed dataecosystems revisedabapFaker generates localised fake names, addresses and other values in ABAP for development and tests, so the concern has an answer behind the ABAP door.Capability,
Sun 13
15 changes
dev-approuteradded to the atlasDev-time wrapper for the SAP Application RouterBuild tool,
liteinventorymanagementadded to the atlasCAP reference app for lightweight local inventory managementSample,
SAP-samples/btp-developer-guide-capadded to the atlasIncident Management CAP app for the SAP BTP Developer's GuideSample,
SAP-samples/cap-bookshop-wdi5added to the atlasCAP bookshop with wdi5 system tests for a CI/CD tutorialSample,
Show 11 more
SAP-samples/cap-local-development-workshopadded to the atlasreCAP 2025 workshop on CAP's local-development toolsetSample,
SAP-samples/cap-tour-hands-onadded to the atlasEight-exercise tour of CAP features, from mocking to pluginsSample,
SAP-samples/cloud-cap-samples-javaadded to the atlasBookshop app demonstrating the CAP Java SDK end to endSample,
SAP-samples/e-mobility-driver-appadded to the atlasCAP-based PWA for EV drivers proxying SAP E-Mobility OData APIsSample,
slp-supplier-validationadded to the atlasCAP reference app validating Ariba supplier registration dataSample,
ui5-cap-todoadded to the atlasTodo app with CAP and SAPUI5 in TypeScript over OData V4Sample,
Debuggingecosystems revisedWidened rather than forked: debugging an ABAP program is the same concern, so the node's description became the cross-ecosystem sentence, the CAP wording moved to framing_by_ecosystem.cap, and ABAP got its own framing and coverage. Done so Smart Debugger (staged in intake-20260913-ysichov) can provide it.Capability,
Documentationdescription revisedWidened rather than forked into abap-code-documentation: producing a document of a custom package is the same concern from the writing side. The ABAP coverage moved from community-only to core-and-community because ADT's ABAP Doc export is the core's answer for custom code. Done so abap-doc (staged in intake-20260913-mariokernich) can provide it.Capability,
Generatorsname revisedThe map draws every capability as one tile, and a name that spells out its second half ran to three lines at a size nobody could read. The id already carried the short name; the name now matches it. The concern is unchanged: the description and the coverage say what it spans.Capability,
Reference appsname revisedThe map draws every capability as one tile, and a name that spells out its second half ran to three lines at a size nobody could read. The id already carried the short name; the name now matches it. The concern is unchanged: the description and the coverage say what it spans.Capability,
Seed dataname revisedThe map draws every capability as one tile, and a name that spells out its second half ran to three lines at a size nobody could read. The id already carried the short name; the name now matches it. The concern is unchanged: the description and the coverage say what it spans.Capability,
Fri 11
4 changes
Create your first CAP pluginpublishedA step-by-step guide to the cds-plugin.js extension point: scaffold a package, add an index.cds for shared model artifacts, and test it locally against a throwaway CAP project before publishing to npm, with a separate section on building the same plugin in TypeScript and compiling it with tsc. Points to the author's own cds-plugin-handlers and ui5-cap-serverside-rendering-plugin as worked examples.Blog,
How we could potentially have nestjs as runtime for SAP CAPpublishedA proof-of-concept that swaps @sap/cds's ApplicationService and ODataAdapter dispatch for NestJS controllers, providers and interceptors, built by the author to learn NestJS rather than to ship a runtime. It works through CAP's run-dispatch-handle loop and AsyncLocalStorage-based transaction boundaries in detail before mapping them onto NestJS dependency injection and interceptors — one community answer to the controller-service-repository layering question core TypeScript support leaves open. The author's own conclusion is that the result reimplements CAP Java in Node.js, and they do not plan to take it further.Blog,
Surviving and Thriving with the SAP Cloud Application Programming Model: Local development hurdlespublishedThree hurdles in running a CAP application locally: services mocked with cds run --with-mocks return no data across OData associations until the ON clause is hand-written into the imported CDS, an on-premise API reached through the SAP Cloud Connector times out because its proxy is part of destinations and connectivity and reachable only from inside SAP BTP, and a Fiori frontend served from the HTML5 Application Repository needs the HTML5 Repo Mock to reach a local backend at all. It closes with the launch configurations the author uses for debugging cds watch locally and attaching to a running Cloud Foundry instance.Blog,
mcp-sap-docsdescription revisedCorrected against the README: its offline-sources table lists seventeen repositories, abap-docs-standard through wdi5.MCP server,
Thu 10
1 change
Documentationecosystems revisedArtifacts that answer this concern sat behind the ABAP door with no tile to appear under, so browse counted them and rendered nothing. The concern is one a ABAP developer actually decides there, which is the test for opening a door rather than trimming a serves claim.Capability,
Wed 9
4 changes
mcp-sap-docsadded to the atlasMCP server searching seventeen SAP documentation repositoriesMCP server,
@neoimpulse/cap-js-bootstraplinks revisedThe repository declared in package.json returns 404.CLI,
Documentationcore coverage, ecosystems revisedAn SAP-published MCP server entered from the sap-ai-mcp-servers catalogue answers this concern on the UI5 door, and the door had no tile for it to sit under.Capability,
mcp-sap-docsentry revisedNamed in docs/NEIGHBOURS.md §3.1 as a project of the bestofcapjs author but never entered. It is a documentation retrieval server, not an index of options — the complement posture the same section assigns ARC-1, and hard rule 5 makes it exist here only as an attached entry.MCP server,
Tue 8
76 changes
@cap-js/cds-testadded to the atlasTest support for CAP Node.js: server start, HTTP client, assertionsPackage,
@capire/data-vieweradded to the atlasSample CAP plugin adding a generic data browserSample,
@neoimpulse/cap-js-bootstrapadded to the atlasCLI starting several CAP services and an AppRouter locally togetherCLI,
@sap/ux-cds-odata-language-server-extensionadded to the atlasOData annotation features for the @sap/vscode-cds extensionIDE extension,
Show 72 more
Add useful Extensions to Dev spaces in SAP Business Application StudiopublishedStarts from the point capire makes — that CAP is editor-agnostic and BAS is the preconfigured option — and then does the thing that undoes preconfiguration: adds two extensions to a dev space for initialising data in a CAP application, with the uninstall procedure as well as the install. The uninstall half is what makes it worth keeping.Blog,
An introduction to CDS Graphical Modeler for SAP Business Application StudiopublishedThe announcement of the graphical modeller, from the team that built it — what it draws, how to get a dev space that has it, and what it is for. The starting point for the two posts that follow it, and the record of when this became part of the editor rather than an idea.Blog,
Avoiding Data Loss When Loading Initial Data with CSV Files in CAPpublishedcds add tiny-sample gives you a CSV in db/data and it loads on deploy, which looks like a way to seed a productive application. The catch, stated plainly: change the CSV or the schema and HANA is reinitialised from the file, taking whatever users had entered with it.Blog,
Build a Business Application Using CAP for JavapublishedThe Java counterpart to the Node.js path — eight tutorials, around two and a half hours, from a generated project to a running service. Worth having indexed separately rather than folded in with the Node.js one: the runtimes diverge most in exactly the places a first application touches, and following the wrong path is a slow way to find that out.Workshop,
Build a Business Application Using CAP for Node.jspublishedThe Node.js introduction path, and the shorter of the pair — the runtime most CAP writing assumes, which is why the Java path exists separately.Workshop,
CAP Typescript + Fiori Typescript + live reload Initial app setuppublishedA full-stack TypeScript starting point recorded as it was arrived at — the terminal commands and the configuration files, in order, for the CAP side, the conversion to TypeScript, and then the Fiori side. The author is explicit that it takes a while to go through, which is the honest framing for a setup that has this many steps.Blog,
CAP with Local App Previews – Tips for Smooth DevelopmentpublishedUI5's virtual endpoints remove the sandbox files a local preview used to need, and this is what that means for a CAP project specifically. Tips from trying it rather than an announcement of it.Blog,
CAP: Unit Testing using Mocha and ChaipublishedUnit tests added to an existing CAP service rather than written alongside a new one, which is the harder and more common case. Mocha and Chai wired up by hand, from a time before cds.test was the obvious answer.Blog,
capire/bookshopadded to the atlasCAP's getting-started bookshop sampleSample,
capire/bookstoreadded to the atlasComposite CAP app from separately deployed servicesSample,
capire/docsadded to the atlasSources of capire, the CAP documentationDoc source,
capire/incidents-appadded to the atlasIncident Management reference application for CAPSample,
cf-create-app: Create End-to-End apps and deploy to Cloud Foundry in minutespublishedA generator from 2020 that goes further than scaffolding — an end-to-end application created and deployed to Cloud Foundry in one run. Predates most of what cds add now does.Blog,
Create a Simple CAP Application and Explore the DefaultspublishedThe shortest way in: a project from the wizard, then a look at what CAP assumed on your behalf. The defaults are the subject rather than the application — which is the right first lesson in a framework whose whole argument is convention over configuration.Workshop,
Create Automated System Tests for SAP Cloud Application Programming Model ProjectspublishedEnd-to-end tests driving the UI with wdi5, run in the pipeline — the layer above cds.test, which stops at the service boundary.Tutorial,
Creating a Hybrid CAP (Node.js) Profile with PostgreSQL on BTP from Business Application StudiopublishedHybrid testing is documented for HANA; this is the same profile against a PostgreSQL instance on BTP, driven from a BAS dev space rather than a laptop. Proposed under editor support because of where it runs, but the subject is the binding: what cds bind writes, and what has to be true of the service instance and the tunnel for a local process to reach it.Blog,
Creating new services using the CDS Graphical Modeler for SAP Business Application StudiopublishedThe worked half of the introduction, published the same day: a service defined by drawing rather than by typing, projections included. Assumes the setup from the introduction and does not repeat it, so the two are one piece split in two.Blog,
Creating structured types, enums and named aspects using the CDS Graphical ModelerpublishedThe modelling constructs that are awkward to draw — structured types, enums, named aspects — done in the graphical modeller rather than in CDL.Blog,
Develop a Full-Stack CAP Application Following SAP BTP Developer's GuidepublishedThe eight-part path SAP's own Developer's Guide prescribes: a CAP service, Fiori Elements over it, custom logic, authorization, tests, and the preparation deployment needs. It is the closest thing to an official answer to 'what does a whole CAP application look like', which is why it sits under reference applications rather than under any one of the capabilities it touches.Workshop,
Developing CAP applications in SAP Business Application StudiopublishedThe overview written at the point BAS replaced Web IDE, and it is structured as a comparison — each step of building a CAP application, with the difference from the Web IDE experience called out beside it. Useful now mostly for what it records: which parts of CAP development the editor took over, and when.Blog,
Enhancing Unit Testing in SAP CAP Java Applications with GitHub CopilotpublishedBuilt on SAP's own CAP Java unit-testing guide, and the question is narrow: how much of that does an assistant actually write for you. The author's own getting-started post is the one to read first.Blog,
From Concept to action: Hands-On with the CAP Operator and the Partner Reference ApplicationpublishedThe CAP Operator applied to a real application rather than a sample of its own — SAP's Partner Reference Application, taken from plugin integration through containerisation to custom resources. The transition to CRDs is the part that repays attention: it is where the deployment stops being an mta and becomes Kubernetes.Blog,
Full Stack TypeScript App for Cloud Foundry - Sample RepositorypublishedA whole repository rather than a snippet: a CAP Node.js service and a freestyle SAPUI5 application, both in TypeScript, arranged for Cloud Foundry. The build process gets its own section, which is where a TypeScript full-stack project usually goes wrong.Blog,
Get an introduction to the cds REPLpublishedcds repl as a way to ask the running model questions directly, which is the fastest route from a suspicion about a query to knowing.Tutorial,
Get familiar with your first CAPM project using CDS graphic modelerpublishedThe modeller as an entry point rather than an aid — a first CAPM project built by drawing it, for the developer who has not yet internalised CDL, annotations and metadata.Blog,
Get Started with an SAP Cloud Application Programming Model Project in SAP Continuous Integration and DeliverypublishedWiring a CAP project into SAP's hosted CI/CD service, which is the pipeline you get without assembling one.Tutorial,
Getting Started with Unit Testing in SAP CAP Java ApplicationspublishedThe plain introduction: what the CAP Java framework gives you to test against, and how to start. Prerequisite to the same author's Copilot post.Blog,
Handling CSV Data Deployment in CAP HDI Without Data LosspublishedThe same trap from the HDI side: .hdbtabledata hands the container full ownership of the data, so the next deployment overwrites the table from the file. Two independent posts three months apart on the same sharp edge, which is a fair signal about how sharp it is.Blog,
How to fix npm error notarget @sap/hdi-deploy when you create a CAP app in BASpublishedA specific npm failure when creating a CAP app from a template, and the post now opens with its own July 2025 update saying the version has been published so this instance is gone. It stays useful because the cause — a dependency pointing at a version nobody published yet — recurs, and the unblocking steps are general.Blog,
Importing @sap/cds common.cds to your CAP project using the CDS Graphical ModelerpublishedPulling the common aspects and code lists from @sap/cds into a model through the modeller, so the reuse types appear in the diagram rather than only in the file.Blog,
Integration Tests in a Cloud Foundry Java App using SAP Cloud Application Programming ModelpublishedIntegration rather than unit tests, and from 2020 — the earliest testing entry here, and a reminder of what had to be assembled by hand before the framework had an answer.Blog,
Making CAP Application Development Easier and Faster with the Help of Storyboard in SAP Business Application StudiopublishedThe Storyboard from the other side — someone who came across it while learning the high-productivity tools, rather than someone who shipped it. It follows the whole arc a CAP project takes through the tool: entities, relationships, services, sample data, a UI, roles, and external resources, each as a thing the diagram can add rather than a file you open.Blog,
Migrating Your CAP Applications from SAP Web IDE to SAP Business Application StudiopublishedA migration checklist, and a reminder of how much of a CAP project used to be editor-specific: Web IDE configuration files to delete, a build to move to the Cloud MTA Build Tool, a CAP Java version to raise. Historical — Web IDE is gone — but it is the clearest list of what the tooling boundary used to include.Blog,
Part 1: How to create CAPM project in BASpublishedThe claim in the opening is the interesting part — database, service and UI without switching technologies — and then the project that follows from it. Part one, and it stops at a project that runs.Blog,
Prompt-Driven Development: Building Full-Stack SAP CAP Apps from User StoriespublishedA user story in, a scaffolded full-stack CAP application out, through SAP Build Code and Joule. The question it is actually asking is how much of the foundational code is worth generating, and it answers by generating all of it.Blog,
Quick Implementation of DI/DI Container on SAP CAP: Node.js Hands-on PartpublishedThe hands-on half of a pair — the theory is in the author's earlier post — built on the official bookshop sample with the directories flattened so the pattern is visible rather than the scaffolding. Assumes CAP and TypeScript already.Blog,
Remote Debugging of SAP CAPM App - NodejspublishedDebugging a CAP Node.js application that is not on your machine, built up from cds init and a custom action so there is something to breakpoint. The part people need is at the end; the beginning is there so the end is reproducible.Blog,
Reusable components for CAP with cds-pluginpublishedThe post that taught the mechanism, and it teaches it by picking a requirement small enough to be absurd: every string a service returns should end in a random emoji. Working through that on the bookshop example leaves nothing to argue about except the plumbing, which is the point — what a cds-plugin is, where it hooks in, and why packaging it beats copying it into the next project. Vinícius Barrionuevo credits this post as the thing that gave him the idea for sap-cap-sdm-plugin, and it is hard to read the plugin ecosystem in this graph without it.Blog,
Running CAP Node Applications in SAP Business Application StudiopublishedThe Run Configurations tool, which is where binding and mocking live in BAS rather than in a terminal. Three things it does: several named configurations per application in a tree, dependencies bound to real service instances, and OData dependencies mocked. The author notes the configurations are standard launch entries underneath, which is the detail that lets you leave the tool behind if you want to.Blog,
SAP BTP Showcase – SAP Continuous Integration and Delivery (SAP CI&D) for SAP HANA CloudpublishedA pipeline for the database half of a CAP application, built with cds add pipeline — one command that writes a Jenkinsfile and a .pipeline folder — and then the mta module that makes a database change deploy itself.Blog,
Set up a self-contained development environment for CAP Node.jspublishedA CAP development environment that carries its own dependencies, so the machine it runs on stops being part of the setup.Tutorial,
Storyboard for cloud business applications using CAP in SAP Business Application StudiopublishedThe first release of the Storyboard, written by the team shipping it. Where the graphical modeller draws the data model, this draws the application: its logical components and the connections between them, alongside an application explorer enhanced in the same release. Short, and it reads as an announcement — the fuller account of using it is Aryan_Raj_Sinha's post two years later.Blog,
Streamlining CAP Development with CDS Graphical Modeler in SAP Business Application StudiopublishedThe case for the graphical modeller stated as a scale problem rather than a preference: a model held only as code gets hard to keep in your head once it is large, and the diagram is a second view of the same file. The most recent write-up of the tool here, and the one that treats it as an everyday working aid rather than as a new feature.Blog,
Taking CAP to the next level - with TypeScriptpublishedThe author's own two packages introduced together, and they are two halves of one idea: cds2types generates TypeScript from the CDS model, cds-routing-handlers arranges the handlers that use them. Published in 2020, years before cds-typer, which makes it the earliest answer in the graph to a question the core answered later.Blog,
Testing your CAP HANA Artifacts with jest – including multitenancy, hdbprocedure and hdbviewpublishedcds.test covers the service; this covers what is underneath it, where the artifact is an hdbprocedure or an hdbview that CDS never sees. That means a real HDI container, so most of the post is about where to get one and how to give CAP access to it — the tests are the easy part once that is true.Blog,
The CAPstone Project: A Journey from Component to CloudpublishedA React and Vite front end on a CAP backend, written for two readers at once — the React developer curious about SAP, and the CAP developer wondering about modern front ends. Predates CAP's own React and Vue support.Blog,
Tips and Tricks for Working with Annotations in CAP Projects using Language Server Protocol (LSP) capabilitiespublishedFour settings, from somebody who works on the annotation language server. The premise is the interesting part: CAP's annotation syntax is looser than ABAP CDS or EDMX — a record can be written with or without an explicit type — so the completion has to guess how verbose you want it, and this is where you tell it. Then filtering the completion list, reading the icons, ordering diagnostics by severity, and turning i18n problems on only when you want them.Blog,
TypeScript Sheriff: How can I use TypeScript in the SAP ecosystem? (Part 2 of 3)publishedThe middle part of three, and the one about SAP: where TypeScript is supported across a side-by-side extension on BTP, as of July 2023. It says the SAP Cloud SDK already generates OData clients as .ts files and UI5 ships types for its controls and modules, the ground of TypeScript support in UI5, while CAP offers standard types and the new @cap-js/cds-typer generates types for a service, which is typing, with the caveat that running cds-ts commands could overwrite what cds-typer generated.Blog,
UI5ers Buzz #56: New full-stack UI5 sample app featuring CAP + OData V4 + draft modepublishedA sample app published as code rather than described — SAPUI5 over a CAP service with OData V4 and draft mode — and the note that it was built on what the team learned from an application written in March 2020 to help the German Foreign Office repatriate citizens. That provenance is unusual and worth keeping.Blog,
Use Tasks in Visual Studio Code to start a cds service, an approuter and launch a browser in one gopublishedcds watch serves the service and the app folder but not the approuter, so anything needing a JWT means a second terminal started by hand. This replaces that with a VS Code task definition — the tasks.json is in the post — so the whole local stack comes up on one command.Blog,
Use TypeScript with the SAP Cloud Application Programming ModelpublishedWritten from the position of someone who avoided JavaScript for years and then had to cover CAP, which gives it a useful angle: what TypeScript buys a person arriving from a typed language, and where to start rather than how to finish. Ends on a worked example rather than a survey.Blog,
vite-plugin-cdsadded to the atlasServes a Vite app through cds watch and imports .cds filesCDS plugin,
加速开发和部署的CAP CDS和Fiori一些实用命令publishedIn Chinese. A command reference rather than a walkthrough — cds import, cds compile, cds deploy --to sqlite, cds add hana, cds add xsuaa — grouped by what they are for. The kind of page that is more useful than a tutorial once you already know what you are doing.Blog,
@cbs-consulting/cds-eslintlinks, artifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Build tool,
@cbs-consulting/toolslinks, artifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Build tool,
@dxfrontier/cds-ts-dispatcherartifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Package,
@dxfrontier/cds-ts-repositoryartifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Package,
@sap-ux/eslint-plugin-fiori-toolsartifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Build tool,
@sap-ux/fe-mockserver-plugin-cdsartifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Package,
@sap-ux/fiori-docs-embeddingsartifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Package,
@sap-ux/fiori-generator-sharedartifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Package,
@sap/eslint-plugin-cdslinks, artifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Build tool,
@sap/generator-cap-projectlinks, artifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Generator,
@sap/generator-cdslinks, artifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Generator,
cds-cucumberdescription revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.CDS plugin,
cds-incidents-sampledescription revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Generator,
cds-internal-toollinks revised404 from the GitHub API. Found by the first full run of scripts/check-links.mjs — the citation had a checked date and nobody had re-read it.Package,
cds-launchpad-plugindescription revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.CDS plugin,
cds-plugin-typescriptartifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Build tool,
cds-routing-handlersartifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Package,
cds2typesartifact type, description revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.CLI,
repository-templatedescription revisedPlacement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.Sample,
Mon 7
46 changes
@cap-handler/generatoradded to the atlasInteractive generator for CAP event handler filesGenerator,
@cap-utils/barrieradded to the atlasPlaceholder package under a CAP annotations name, no annotationsPackage,
@cbs-consulting/cds-eslintadded to the atlasESLint plugin with one consultancy's rules for CDS filesBuild tool,
@cbs-consulting/toolsadded to the atlasShared ESLint configuration for SAPUI5 and CAP projectsBuild tool,
Show 42 more
@khalidmh/capxadded to the atlasInteractive project installer for CAP Node.jsGenerator,
@sang2x/captoolsadded to the atlasCLI of CAP development tools for Cloud Foundry workflowsCLI,
@sap-ux/eslint-plugin-fiori-toolsadded to the atlasESLint rules for projects the Fiori tools generators produceBuild tool,
@sap-ux/fiori-docs-embeddingsadded to the atlasFiori documentation indexed as embeddingsPackage,
@sap-ux/fiori-generator-sharedadded to the atlasShared functions and types of the Fiori generatorsPackage,
@sap/eslint-plugin-cdsadded to the atlasSAP's ESLint plugin for CDSBuild tool,
@sap/generator-cap-projectadded to the atlasCAP project generator behind SAP Business Application Studio's wizardGenerator,
@sap/generator-cdsadded to the atlasCDS project generator, deprecated in favour of @sap/cds-dkGenerator,
@saptools/cf-request-runneradded to the atlasEndpoint discovery for CAP services deployed to Cloud FoundryCLI,
@saptools/hana-lensadded to the atlasWorkspace-wide CSN cache for querying CAP entities and columnsCLI,
@saptools/service-flowadded to the atlasStatic end-to-end tracer of one CAP operation across repositoriesCLI,
A Fiori Launchpad Sandbox for all your CAP-based projects - OverviewpublishedWhere cds-launchpad-plugin came from, told as a learning exercise: the author wanted a real problem to teach himself TypeScript on, and picked the thing he kept redoing in every CAP project — a launchpad to see all the UI applications in one place. The origin post for an entry whose 2023 update is also indexed here.Blog,
A Fiori Launchpad Sandbox for all your CAP-based projects – Sample project setuppublishedThe hands-on half published the same day as the overview: the launchpad module wired into the CAP sample repository, step by step from a global cds-dk install. Same-day pairs like this are worth keeping together — the overview argues, this one is the thing you follow.Blog,
Avoid design time CAP server restarts when maintaining local data filespublishedcds watch restarting on every file change is the feature; this is the case where it is not. Editing a CSV seed file mid-edit restarts the server against half-finished data, and the post is about suppressing that without giving up the watch loop. A small friction most people work around silently rather than fix.Blog,
CAP Initializr: Generate SAP CAP Projects in SecondspublishedA hosted project generator for CAP in the shape of Spring Initializr — pick the structure, dependencies and configuration in a browser and download the result, rather than running cds init and then wiring the facets by hand. The post is an MVP announcement asking for feedback, and the tool lives at a Cloud Foundry trial URL rather than on npm, so it is a direction being tested in public rather than something to depend on.Blog,
cap-handler-frameworkadded to the atlasConvention-based handler layer for CAP with draft lifecycle hooksCDS plugin,
cap-java-snippetsadded to the atlasTen short CAP Java references, one document per topicDoc source,
cap-mock-generatoradded to the atlasFills db/data with relationally consistent CSV from a .cds schemaGenerator,
cap-utilsadded to the atlasnpx tool adding worked example files to a CAP projectGenerator,
cds-hyper-app-serviceadded to the atlasTyped class-based service layer over CAP ApplicationServicePackage,
cds-internal-tooladded to the atlasReusable internals for authors of CAP extensionsPackage,
cds-launchpad-plugin supercharged & ready for the future - CAP Plugin, UI5 Tooling support & Async LaunchpadpublishedThe maintainer on a set of changes rather than on the plugin's original purpose, which is indexing every SAPUI5 project in a workspace into one sandbox launchpad so all of them can be tested together. What moved: it became a CAP plugin, gained UI5 Tooling support, and moved to the async launchpad — each framed as keeping pace with where SAPUI5 itself is going rather than as a feature.Blog,
CDS-TS-Dispatcher: Simplifying SAP CAP TypeScript DevelopmentpublishedThe first of a pair introducing the author's own libraries, and it states what it is reacting to: CAP derives OData services from a CDS model, but the communication between business logic, service and persistence layers is left to you, and the earlier attempt at the service-layer half, cds-routing-handler, appeared unmaintained against newer CAP. The dispatcher is the answer offered for that layer.Blog,
CDS-TS-Repository: Simplify SAP CAP Entity persistance with BaseRepositorypublishedThe persistence half of the same pair, three days later: a BaseRepository putting entity access behind a typed repository rather than CQN written inline in a handler. Shares its opening argument with the dispatcher post — the layer between business logic and persistence is the part CAP leaves open — and the two are designed to be used together.Blog,
debug a CAP app with UI5 TypeScript UI component with VS CodepublishedDebugging both runtimes at once — the CAP server and a UI5 component written in TypeScript, the latter stepped through in its own sources rather than in the transpiled output. Written when TypeScript for UI5 had just become possible, and the combination it sets up is the one CAP's app folder invites.Blog,
Develop CAP Project with Lazyvim in DockerpublishedA Docker image running Lazyvim with language server support for CDS, TypeScript and JSON, so a CAP project can be developed with an editing experience comparable to VS Code without leaving the keyboard. Narrow by intent, and the useful general point underneath it is that CAP's editor support reaches anything that speaks LSP.Blog,
Develop SAP CAP apps inside a VS Code Docker ContainerpublishedA VS Code dev container configuration with everything a CAP project needs already in it, published as a repository rather than as instructions. The 2020 half of a pair whose other half, four years later, does the same for Lazyvim — the same author solving the same problem twice as his editor changed.Blog,
eslint-plugin-better-cap-configadded to the atlasESLint rules flagging deprecated CAP configurationBuild tool,
Exploring the TypeScript Ecosystem with @cap-js/cds-typer, cds-ts, and node-tspublishedPart one of two: a bookshop project built in TypeScript from cds init, with cds-typer added as a development dependency and the surrounding tools — cds-ts and node-ts — put in place so the project runs locally. A setup walkthrough rather than an argument about typing, and it stops at the point where the application works on a laptop; deployment is part two.Blog,
Exploring the TypeScript Ecosystem with @cap-js/cds-typer, cds-ts, and node-ts Part - 2publishedPart two takes the TypeScript project from part one to Cloud Foundry: cds add mta, then the parts of the generated descriptor the author singles out as needing attention for a TypeScript build rather than a JavaScript one. The pair together is the whole path — typed model locally, then deployed — which is where a typing walkthrough usually stops short.Blog,
forsap-s4hana-private-simulatoradded to the atlasCAP project simulating S/4HANA Private Edition OData APIs locallySample,
Introducing eslint-plugin-better-cap-config an ESLint plugin to improve CAP configurationpublishedThe author's own announcement, and precise about scope: today it catches deprecated key/value entries in CAP's JSON configuration, and the ambition is that it grows into best practices, suggestions and autofixes the way any ESLint plugin does. The implementation detail worth knowing is that it uses modern ESLint's JSON language support rather than a generic parser, which is what makes linting a configuration file rather than source code work at all.Blog,
ISO content for common CAP typespublishedThe npm package that supplies ISO-standard content — countries, languages, currencies, timezones — for CAP's common types, and how it works underneath. The author flags the length and the reason for it up front, having followed the mechanism further than the question required, which is what makes it worth reading rather than a package announcement.Blog,
repository-templateadded to the atlasRepository template with LICENSE, REUSE and compliance filesSample,
SAP CAP: Best VSCode extensions for TypeScript development (UI5 & NodeJS)publishedA working editor setup for CAP with TypeScript, listed extension by extension across the Node.js and UI5 halves. The kind of post that ages by attrition rather than by being wrong — the reasoning about what an editor needs to know about a CDS project outlives any particular extension in the list.Blog,
SAP CAP: Controller - Service - Repository architecturepublishedThe pattern the author's two libraries exist to support, set out as a whole rather than one package at a time: a controller layer receiving the request, a service layer holding business logic, and a repository layer owning persistence — the separation CAP leaves to the developer once a model has produced an OData service. Read after the dispatcher and repository posts, or before them as the argument for both.Blog,
sap-cap-debuggeradded to the atlasAttaches a debugger to a CAP app running on Cloud FoundryCLI,
sapbrunoadded to the atlasTerminal UI running Bruno collections against a CAP serviceCLI,
Set up VS Code on Chrome OS for local Application Programming Model developmentpublishedA CAP development environment on a Chromebook, written from preference rather than constraint — the author sets out why Chrome OS is his primary machine before showing the setup. Carries its own updates section noting what has changed since, which for a 2018 post about an operating system is most of it. The interest now is that local CAP development was portable this early.Blog,
bookshop-demodemonstrates revisedIt demonstrates three capabilities across two domains and is no single thing's example, which is what a reference application is. Attaching it to the capability that exists for that gives Reference applications a population beyond the one plugin that scaffolds one.Sample,
cap-typescriptdomain revisedA sample's domain recorded what kind of thing it is, which artifact_type already says, so it sat under Learning while the capability it demonstrates sat elsewhere — filtering a domain for a worked example returned nothing. Domain now follows the single capability the sample demonstrates; a sample with no single subject stays in Learning.Sample,
SAP-NPM-API-collectiondomain revisedA sample's domain recorded what kind of thing it is, which artifact_type already says, so it sat under Learning while the capability it demonstrates sat elsewhere — filtering a domain for a worked example returned nothing. Domain now follows the single capability the sample demonstrates; a sample with no single subject stays in Learning.Doc source,
Sun 6
2 changes
cap-js-mockdataverdict revisedVerdict rings retired. What the ring compressed now lives in readings derived from facts (liveness, compatibility, reach) and in the description fields, so a thing can be dead as a dependency and still worth reading. VISION §9.Generator,
sap-cds-erdverdict withheld revisedWithheld verdicts retired with the rings. Nothing is recused from: facts about an entry are facts whoever maintains it, and a starting-point is answered by description.to_build_on_it.CLI,
Wed 2
6 changes
@dxfrontier/cds-ts-dispatcheradded to the atlasDecorator-driven handler registration for CAP in TypeScriptPackage,
@dxfrontier/cds-ts-repositoryadded to the atlasTyped BaseRepository over CAP entitiesPackage,
cds-incidents-sampleadded to the atlascds add plugin adding the incidents-app model to a projectGenerator,
cds-plugin-typescriptadded to the atlasCDS build task compiling TypeScript sources during cds buildBuild tool,
Show 2 more
cds-routing-handlersadded to the atlasDecorator-based routing of CAP service handlers in TypeScriptPackage,
cds2typesadded to the atlasCLI generating TypeScript interfaces from a CDS modelCLI,
Tue 1
2 changes
cap-js-mockdataprovides, verdict revisedRecording cds add data as a version change on seed-data narrowed what this plugin uniquely offers. The verdict stays TRY, but for a smaller reason than yesterday, and saying so is the point of dating verdicts.Generator,
Seed datacore coverage revisedWrong since mid-2024 and nobody had checked. It said generated volumes were community territory; cds add data has generated volumes since @sap/cds-dk 7.9.0. Found by doing the version-history pass — which is the argument for that pass in one line.Capability,

Mon 31
24 changes
@cap-js/cds-typeradded to the atlasGenerates TypeScript types from a CDS modelBuild tool,
@cap-js/cds-typesadded to the atlasType definitions for the CAP Node.js SDKPackage,
@cap-js/consoleadded to the atlasConnects a running CAP application to the CAP consoleCDS plugin,
@cap-js/data-inspectoradded to the atlasInspects database entities and contents at CAP service levelCDS plugin,
Show 20 more
@sap/cds-dkadded to the atlasCommand line client and development toolkit for CAPCLI,
@sap/cds-lspadded to the atlasLanguage server for CDSPackage,
@sap/vscode-cdsadded to the atlasCDS language support for VS Code and Business Application StudioIDE extension,
bookshop-demoadded to the atlasSimple CDS bookshop model used across CAP explanationsSample,
cap-typescriptadded to the atlasMinimal CAP project in TypeScriptSample,
cds-eclipse-pluginadded to the atlasEclipse plugin for the CDS languageIDE extension,
cds-intellijadded to the atlasSAP CDS language support for IntelliJ IDEAIDE extension,
cds-plugin-handlersadded to the atlasOne handler file per entity in CAP servicesCDS plugin,
cds-textmate-grammaradded to the atlasTextMate grammar for the CDS languagePackage,
cf-setupadded to the atlasGitHub Action setting up the Cloud Foundry CLIBuild tool,
sap-cds-erdadded to the atlasAWK script sketching an ER diagram from .cds filesCLI,
SAP-NPM-API-collectionadded to the atlasAPI documentation extracted from SAP-published npm packagesDoc source,
zed-cds-extensionadded to the atlasCDS language support for the Zed editorIDE extension,
Debuggingcore coverage revisedStates renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately.Capability,
Editor supportcore coverage revisedStates renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately.Capability,
Local developmentcore coverage revisedStates renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately.Capability,
sap-cds-erduse as revisedFirst entered as an option with a when_not_to_use listing everything it is not, which framed a published sketch as a weak dependency. It was never offered as one. The facts are unchanged; they now sit under what taking it further would involve.CLI,
Seed datacore coverage revisedStates renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately.Capability,
Testingcore coverage revisedStates renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately.Capability,
Typingcore coverage revisedStates renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately.Capability,
Sun 30
4 changes
@sap-ux/fe-mockserver-plugin-cdsadded to the atlasFiori Elements mock server plugin taking a CDS file as metadataPackage,
cap-js-mockdataadded to the atlasCSV seed data generated from @Mockdata annotations with FakerGenerator,
cds-cucumberadded to the atlasGherkin scenarios driving a running CAP serviceCDS plugin,
cds-launchpad-pluginadded to the atlasSandbox launchpad for all SAPUI5 apps in a CAP workspaceCDS plugin,

Thu 2
1 change
Generatorsthe core changed in @sap/cds-dk 10.0.3Any generated-project walkthrough that shows require() and module.exports coming out of a bare cds init — on cds-dk 10.0.3 and later, a fresh Node.js project is ESM unless --add cjs was passed.Capability,

Mon 29
4 changes
@sap/vscode-cdsreleased 10.0.1The minimum Visual Studio Code version is 1.109.5.IDE extension,
@sap/vscode-cdsreleased 10.0.1Guides that use CAP notebooks in Visual Studio Code.IDE extension,
@sap/vscode-cdsreleased 10.0.1The where-used index is persisted by default, switched off with the user setting cds.workspace.persistency.enabled.IDE extension,
@sap/vscode-cdsreleased 10.0.1A CAP Project Explorer is added to the sidebar, which the user setting cds.explorer.enabled can disable.IDE extension,
Mon 22
2 changes
@cap-js/cds-typerreleased 0.40.0Build setups written around cds-typer emitting .ts files that TypeScript then compiles.Build tool,
@cap-js/cds-typesreleased 0.18.0Setup notes that rely on @types/sap__cds appearing after npm install.Package,
Fri 12
1 change
@sap/generator-cap-projectreleased 2.1.1Running the generator on Node.js 20.Generator,
Tue 9
1 change
@sap/generator-cdsreleased 3.0.0Support for Node.js 20 was dropped.Generator,

Sat 30
5 changes
@sap-ux/cap-config-writerreleased 1.0.0Examples and test setups written for the CommonJS build, such as a Jest configuration without ESM support.Package,
@sap-ux/fe-fpm-writerreleased 1.0.0Examples that load the package with const ... = require('@sap-ux/fe-fpm-writer') from a CommonJS module, written against 0.x.Package,
@sap-ux/fiori-docs-embeddingsreleased 1.0.0Examples that load the package with const ... = require('@sap-ux/fiori-docs-embeddings') from a CommonJS module, written against 0.x.Package,
@sap-ux/fiori-generator-sharedreleased 1.0.0Jest configurations for projects that test code importing @sap-ux/fiori-generator-shared without the ESM settings the changelog gives (extensionsToTreatAsEsm, ts-jest with useESM).Package,
Show 1 more
@sap-ux/odata-service-writerreleased 1.0.0Jest configurations, written for the CommonJS build, of projects that test code importing the package.Package,

Thu 23
2 changes
@cap-js/cds-testreleased 1.0.0Test setups that rely on axios arriving with cds-test, or that set cds.test.axios.defaults.Package,
Testingthe core changed in @cap-js/cds-test 1.0.0Any description of cds.test as axios-backed, or troubleshooting written around cds.test.axios as the primary HTTP client — since 1.0 that path is deprecated, not the default.Capability,

Mon 29
1 change
@sap/cds-lspreleased 9.6.0Editor integrations that start the language server on a Node.js release older than 22.Package,
Thu 18
1 change
@sap-ux/eslint-plugin-fiori-toolsreleased 9.0.0Setups that install eslint-plugin-fiori-custom separately.Build tool,

Tue 30
1 change
@sap/vscode-cdsreleased 9.4.0The user setting for semantic highlighting of annotations is renamed cds.contributions.features.semanticHighlighting; under its old name it could not be enabled. The temporary setting cds.workspace.fastDiagnosticsMode is removed.IDE extension,

Thu 21
2 changes
@sap/ux-cds-odata-language-server-extensionreleased 1.18.6CDS annotation examples that use the $value syntax.IDE extension,
@sap/ux-cds-odata-language-server-extensionreleased 1.18.6CDS annotation examples that use the $value syntax.IDE extension,
Mon 11
1 change
@sap/generator-cdsreleased 2.18.10Support for Node.js 18 was dropped.Generator,

Wed 2
1 change
Generatorsthe core changed in @sap/cds-dk 9.1.0Descriptions of cds add as covering only infrastructure facets and never touching test code. That was accurate before mid-2025; since then it does, though still experimental.Capability,

Thu 5
1 change
@cap-js/cds-typesreleased 0.12.0Pairing the newest cds-types with a project on cds 8 or earlier.Package,
Mon 2
1 change
Testingthe core changed in @sap/cds 9.0.2Setup steps that install axios, chai, chai-as-promised and chai-subset directly to use cds.test rather than adding @cap-js/cds-test. On cds9, cds.test does not run without the latter present, regardless of what else is installed.Capability,

Tue 27
2 changes
@sap/eslint-plugin-cdsreleased 4.0.2Lint setups for CAP projects that pair @sap/eslint-plugin-cds 4 with ESLint 8.Build tool,
@sap/vscode-cdsreleased 9.0.1Settings that set cds.useOldParser, and descriptions of the extension updating references when a CDS file is renamed.IDE extension,

Tue 1
1 change
@cap-js/cds-typerreleased 0.34.0Advice to switch on use_entities_proxy before importing generated entities statically.Build tool,

Tue 4
1 change
Editor supportthe core changed in @sap/cds-dk 8.8.0Advice that CDS editor completion and parse speed cannot improve without switching editors. The new parser was opt-in from this release (cds.compiler.useOldParser to stay on the old one) and became the default in cds9.Capability,

Fri 21
1 change
Testingthe core changed in @cap-js/cds-test 0.1.0Guidance that treats cds.test as something @sap/cds provides with no extra install — from this point a project needs @cap-js/cds-test as a devDependency to get it.Capability,
Mon 10
1 change
@cap-js/cds-typerreleased 0.33.0Handler code typed against the earlier generated types for cds.Binary and cds.LargeBinary.Build tool,

Mon 13
1 change
@cap-js/cds-typesreleased 0.9.0Handler signatures typed with TypedRequest<T>.Package,

Sun 1
1 change
TypeScript patternsthe core changed in @sap/cds-dk, December 2024Setup steps that tell a reader to run cds-tsx watch or cds-ts watch to start a TypeScript project. The release note's own sentence is that this is not necessary anymore.Capability,

Fri 12
1 change
Model visualisationthe core changed in @sap/cds-dk 8.0.2Advice that a diagram needs an external script or a paid tool. It needs neither, for a class diagram.Capability,

Thu 2
2 changes
Local developmentthe core changed in @sap/cds-dk 7.9.1Advice that hybrid testing needs a dedicated service instance per org and space. True before mid-2024; a shared instance is enough since.Capability,
Seed datathe core changed in @sap/cds-dk 7.9.1Any guidance that you must hand-write or third-party-generate CSV to get seed data at all. That was true before mid-2024 and is not now — the open question is realism, not volume.Capability,

Tue 13
1 change
cds-cucumberreleased 0.3.7Test setups that set CDS_CUCUMBER_FIREFOX to run the UI steps in Firefox.CDS plugin,
Mon 5
1 change
cds-cucumberreleased 0.3.5Feature files that open with Given we have started the CAP application.CDS plugin,

Mon 18
1 change
Plugin authoringthe core changed in @sap/cds-dk 7.5.0Advice that deployment artifacts a plugin needs must be produced by a script outside cds build.Capability,

Thu 16
3 changes
@sap/cds-lspreleased 7.4.0Editor integrations that start the language server on a Node.js release older than 18.15.0.Package,
@sap/vscode-cdsreleased 7.4.0Settings that select one of the two removed validation modes.IDE extension,
@sap/vscode-cdsreleased 7.4.0Markdown formatting inside doc comments, previously on by default, is off by default.IDE extension,

Tue 10
1 change
@cap-js/cds-typerreleased 0.11.0compileFromCSN is no longer exported from the package's programmatic API.Build tool,

Wed 20
1 change
cds-cucumberreleased 0.2.1Scenarios that use the step we select additional row in value help dialog.CDS plugin,

Tue 25
1 change
TypeScript patternsthe core changed in @cap-js/cds-typer 0.5.0Setup guidance from 2020-2022 that reaches for cds2types, hand-written .d.ts files or another community fork to get typed entities out of a CDS model. That gap is what cds-typer closed in mid-2023; what is left open, and what this capability records, is the shape of the code around the generated types — dispatchers, repositories, controller-service-repository layering — which the core still has no opinion on.Capability,

Mon 30
3 changes
@sap/cds-lspreleased 6.5.0Models that document definitions with @cds.doc and expect the text on hover.Package,
@sap/vscode-cdsreleased 6.5.0Models that document definitions with @cds.doc and expect the text on hover.IDE extension,
Local developmentthe core changed in @sap/cds-dk 6.5.0Guidance that hybrid testing only reaches managed BTP services. Since January 2023 a user-provided service binds the same way.Capability,

Fri 30
2 changes
@sap/cds-lspreleased 6.2.0Formatter settings that name keepAnnotationsInOriginalLine.Package,
@sap/vscode-cdsreleased 6.2.0Formatter settings that name keepAnnotationsInOriginalLine.IDE extension,
Everything the feed holds.