NewSAP Cloud Application Programming Model
In the last 30 days
135 changes
Today
audit-summaryadded to the atlasGroups npm audit findings by root dependency, with failing thresholdsVulnerability scanning
enforce-export-coverageadded to the atlasStatic check that each exported TypeScript function has a testTesting
git-env-branchesadded to the atlasShows which feature branches reached which environment branchChange promotion
hana-linteradded to the atlasRegex naming rules for SAP HANA artifacts in a CAP projectLinting
Yesterday
CAPVAL: A project is bornpublishedThis second CAPVAL post announces CAPVALcapvalReplaces the message a failed input validation annotation returns, and adds @validation.handler, which names a class that runs a check of the developer's own.independent, cap version 2.0, made compatible with CAP v8 after breaking changes there, with the fix shown as a custom
cds.middlewares.after error handler. It restates the plugin's @validation.message annotation alongside standard annotations such as @mandatory as the input validationInput validationRejecting bad input before it reaches the database. While this can be done manually inside a handler, there are solutions in place to derive type, range, enum and mandatory checks from the model definitions.SAP and community, unassessed mechanic the project builds on, and the release otherwise adds automated tests and release-automation GitHub Actions rather than new annotations.Input validationSat 24
btp-agentadded to the atlasLangGraph agent and UI5 chat screen over four BTP MCP servers
Fri 23
cds-common-jwt-supportlifecycle 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.Authentication
cds-feature-togglelifecycle revisedThe maintainer's GitHub profile states that the account was archived (profile changed 2026-10-11); the repositories are gone and the package stays published on npm. His words, quoted and dated, in the field made for a maker's statement about an end; nothing written about the person.Feature toggles
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.TypeScript patterns
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.Typing
Show 4 more
cds-mysqllifecycle 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.Database connectors
cds-natslifecycle 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.Async processing
cds-rate-limitlifecycle 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.Rate limiting
opentelemetry-cdslifecycle revisedThe maintainer's GitHub profile states that the account was archived (profile changed 2026-10-11); the repositories are gone and the package stays published on npm. His words, quoted and dated, in the field made for a maker's statement about an end; nothing written about the person.Telemetry
Thu 22
@mi8y/cap-agents-sdm-backendadded to the atlasDeep Agents filesystem over an SAP Document Management repositoryAgent tooling
Reports Assistant with SAP Document Managementadded to the atlasCAP agent writing reports into a shared SDM document workspace
Mon 19
Building Code-Based AI Agents on the BAIPpublishedA Devtoberfest 2026 session on writing the agent yourself rather than configuring one, which is the agent toolingAgent toolingBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.SAP and community, unassessed edge: an agent is a model with tools, skills, memory and context around it, and the session reads the code of one built in CAP as a LangGraph state graph, with an agent node that calls the model, a tools node holding the MCP clients, and the edge between them looping until no tool is needed. It then shows the shorter route, a CDS service annotated for the agent protocol with its instructions and skills in an agent.md file. SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp carries both, with the CAP service in front of it as middleware so the credentials never reach the browser, and that is what cap-agent-ui5-webuicap-agent-ui5-webuiGives a CAP agent a UI5 web interface out of the box, so an agent built in the service has somewhere to be talked to without a separate frontend project.independent, cap is demonstrated against: added as a dependency, it gives the annotated service a UI5 chat interface that can be deployed rather than only previewed. A Python multi-agent application on Cloud Foundry, where an orchestrator delegates to per-stack specialists so no single model sees every tool, closes the session.Agent tooling
SAP Meets the Agentic Web: CAP MCP - UI5 WebMCPpublishedA Devtoberfest 2026 session (CAP-42) that puts MCP and WebMCP side by side: MCP exposes a backend to an agent, WebMCP exposes the tools of a web page to whatever agent arrives at it, and only Chrome behind a flag and Cloudflare's Kite browser support the second one today. The CAP half starts with two agents scraping a Fiori elements app with PlaywrightPlaywrightA library that drives Chromium, Firefox and WebKit from code, written for end-to-end browser testing. For the things here it is the browser a tool starts itself, to get through an SAP login or to load a page headless and photograph it. and browser dev tools, then annotates the catalogue service with the MCP protocol through @cap-js/mcp@cap-js/mcpA CAP plugin that serves an @mcp-annotated service over MCP with three generated tools, describe, query and call_action, and writes its endpoint into the local agent's configuration in development.sap official, cap, after which the agent calls the generated describe tool instead of parsing pages. The UI5 half registers a search-authors tool on the browser's model context API inside the same app, with the cross-origin isolation header the API requires, and lists it through the WebMCP Chrome extension — the agent run against it ends on an exhausted Gemini key rather than a result.Serve your application over MCP
Supply Chain Rescueadded to the atlasCAP and SAPUI5 demo of recovery from a supply disruption
secondsky/sap-skillstype properties, flavors revisedRead today in the two plugins that answer the CAP and the UI5 door, which the ABAP pass had not opened. The sap-cap-capire skill's frontmatter states that it covers Node.js and Java runtimes, so CAP's two flavors rest on the maintainer's sentence where the entry previously answered in both by the serves-another-door fallback, which is the same reading off an absence. The sapui5 skill's frontmatter names freestyle apps and Fiori elements apps in one clause, so freestyle is stated, and fiori-elements moves onto that sentence from the README line about which request activates sap-fiori-tools, which said what triggers a plugin rather than what it covers. Nothing read names UI5 Web Components, so that flavor stays unstated. Stating freestyle changes an answer: the entry answered no there while it stated one UI5 flavor and now answers yes, which a reader comparing that flavor's options will see. The ABAP pair is unchanged.Agent guidance
Show 1 more
Werkbankprovides revisedWhat Werkbank adds for ABAP, CAP and UI5 is its catalog of development skills; the workspace itself is not specific to any of those stacks. Agent workspaces is narrowed back to BTP.Agent guidance
Sun 18
ui5-cap-serverside-rendering-demoadded to the atlasDemo CAP bookshop with server-rendered UI5 views
@odatano/nightgatereleased 0.35.0Client code and examples written against the
/api/v1/… service paths.ODataSat 17
abap2UI5 protocoladded to the atlasVersioned specification of the abap2UI5 roundtrip protocol
Clean-Core.ioadded to the atlasHosted workspace redrawing custom ABAP as BPMN and grading itDocumentation
A 25x faster mta.yaml build for SAP CAP Node.js projectsexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
A ChatGPT-like chat app built with modern SAP technologies (CAP, SAPUI5) – Part 1/3explains 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).LLM integration
Show 32 more
A ChatGPT-like chat app built with modern SAP technologies (CAP, SAPUI5) – Part 2/3explains 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).LLM integration
A ChatGPT-like chat app built with modern SAP technologies (CAP, SAPUI5) – Part 3/3explains 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).LLM integration
Agentic AI on BTP: a Multi‑Agent App with Pydantic AIexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Serve your application over MCP
Agentic AI on BTP: a Single Agent with LangGraphexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Serve your application over MCP
BTP Audit Log MCP Server: Security Monitoring with AI Assistantsexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Serve your application over MCP
Building an Analytical List Page with CAP OData V4explains 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).Analytical queries
Building Custom Authentication in SAP 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).Authentication
CAP JavaでObject Pageの項目の動的な入力制御を実装するexplains 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).Fiori annotations
CAP multitenancy with Work Zoneexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Multitenancy
Consume ABAP RFC Function Modules 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).RFC connectivity
Discovering SAP Fiori Elements Analytical functions by implementing SAP Support Message Reportingexplains 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).Fiori annotations
Extend SAP Cloud Application Programming Model(CAP) Validations with the CAPVAL Pluginexplains 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).Input validation
Extend Upload Set to Fiori Elements and utilize Document Management Serviceexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Attachments
Extend Upload Set with Table to Fiori Elements and utilize Object Storeexplains 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).Fiori annotations
Fiori Elements Analytical Table with CAP: Does it work with V2 and V4?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).Fiori annotations
Getting started with CAP on PostgreSQL (Node.js)explains 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).Database connectors
How to add OData v2 adapter proxy to your CAP projectexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
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).Linting
My Learnings in SAP-CAP Using MongoDBexplains 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).Database connectors
Nice patch SAP! Revisiting your SAP BTP security measures after AI Core vulnerability fixexplains 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).Audit logging
Run and Deploy CAP with PostgreSQL on SAP BTP Cloud Foundry (Node.js)explains 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).Database connectors
Sharing SAP HANA Cloud instance to multiple subaccounts and creating HDI containersexplains 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).Database connectors
Tips for running CAP nodejs in SAP BTPexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Deployment
UI for the BTP Application Vulnerability Reportexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).OData
UI5 AI Features library is now an npm Packageexplains 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).LLM integration
Upload attachments in a Freestyle UI5 and CAP appexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Attachments
Uploading attachment with cap-js/attachment plugins but via External App/Postmanexplains 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).Attachments
Using Apache Kafka for messaging in the SAP Cloud Application Programming Model (CAP) – Part 1/2explains 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).Event Mesh
Using Apache Kafka for messaging in the SAP Cloud Application Programming Model (CAP) – Part 2/2explains 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).Event Mesh
Using HANA Cloud’s "VECTOR_EMBEDDING" Function in CAPexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Retrieval-augmented generation
Using Postgresql Database in 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).Database connectors
Working with the Attachment plugin - Cloud Application Programmingexplains 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).Attachments
Thu 15
cap-openaiadded to the atlasCAP service actions calling OpenAI chat completions two ways
cap-openapiadded to the atlasCAP Java service calling role collection APIs via a generated client
cap-principal-propagationadded to the atlasOn-premise ABAP OData V2 service read from CAP over Connectivity
cap-redisadded to the atlasApprouter session held in a bound Redis cache instance
Show 31 more
cap-reuse-html5added to the atlasFiori elements app in the HTML5 Application Repository with cdm.json
cap-rfcadded to the atlasCAP Node.js action calling BAPI_EPM_BP_CREATE over RFC
cap-uiadded to the atlasMTA deploying CAP, HDI container and a Fiori elements app
Werkbankadded to the atlasLocal desktop workspace for AI conversations with SAP connectorsAgent guidance
@cap-js-community/business-metricsdescription revisedTelemetry curation for the CAP door. The README opens by calling it an extension library for @cap-js/telemetry and lists telemetry enabled in the application configuration as a prerequisite, and the graph held no edge between the two. Read against the README at commit eee01d0.Telemetry
@cap-js-community/commonprovides[capability:local-development] revisedcapability:local-development curation on 2026-10-15. The edge rested on a link with no quoted sentence, and the README states both halves a reader needs: the apps in the app folder with a ui5.yaml come from the file system and everything else is proxied to the remote repository, with the configuration file in the approuter folder as the prerequisite.Caching
@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.TypeScript patterns
@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.TypeScript patterns
@jerome-benoit/sap-ai-providerprovides[llm-integration], description revisedThe page opened with its index line alone, which left two facts a reader of this capability needs unsaid: that there are two routes into SAP AI Core and that only the model is replaced, not the SDK around it.LLM integration
@mi8y/cap-agents-memoryprovides revisedcapability:agent-tooling declared four comparison properties on 2026-10-15. Three are answered from the README's own opening and CAP notes, re-read the same day and unchanged, scoped to the node flavor: the package holds state between turns, it is written against LangGraph's Store API, and that state is rows in the CAP database under the request's tenant. The approval property is left out: the README says nothing about it.Agent tooling
@mi8y/cds-langgraph-persistenceprovides revisedThe entry stated the capability with nothing behind it while the README says exactly what the package holds. Read on 2026-10-15: checkpoints are short-term, thread-scoped state used to resume workflows, retain conversation history and support time travel, backed by CDS, requiring @sap/cds >= 10. capability:agent-tooling declared its comparison properties the same day, so the edge now answers three of them, scoped to the node flavor. The README's sentence about what to prefer for a new application has been reworded since 2026-09-21 — it now reads 'This package remains available for its existing CDS checkpointer implementation' — and the claim the page already carries is unchanged, so only the quote on the edge is new.Agent tooling
@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.Local development
@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.Local development
@sanjay-sde/cap-js-log-controlprovides revisedTelemetry curation for the CAP door. The edge carried no sentence, and what the plugin does here is narrow: it lowers the verbosity of the telemetry logger and of the OpenTelemetry DiagLogger rather than producing or exporting a signal, so it states no signal and no destination. Read against the README at commit 587455e. Whether this entry belongs under telemetry or under logging is left open for review.Telemetry
@saptarishi/cds-plugin-llmprovides revisedcapability:llm-integration declared the same two properties on 2026-10-15. This is the one option behind the CAP door whose README names providers on both sides of the SAP AI Core boundary, and the streaming value rests on the
stream method in the interface the README's own opening sentence lists. Both values are scoped to the node flavor, which is the only one this plugin states.LLM integrationcap-agent-ui5-webuidescription revisedThe README has grown well past what the page carried, and the entry stated the capability with no source at all. Read on 2026-10-15: it serves a freestyle SAPUI5 TypeScript chat client same-origin from the CDS server against the services carrying @agent, renders a picker for more than one agent where switching starts a new conversation, speaks nothing but A2A as @cap-js/agents serves it, pins that package to exactly 0.9.1 and says to expect breakage on upgrade, and ships a scripted LLM because the bundled mock can never call an action and leaves an @agent.hitl gate unreachable. The dependency on @cap-js/agents is what the plugin is written against, so it is a required edge rather than a sentence.Agent tooling
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.TypeScript patterns
cap-llm-pluginprovides[llm-integration] revisedThe edge that names this entry's own home capability carried nothing: no sentence, no source, and no room for the comparison property the capability declared on 2026-10-15. The README at 1.5.1, re-read the same day, names the chat-completion method and the orchestration service's harmonised APIs, and both run through SAP AI Core, which is what the property states. response_streaming is left absent: the README's feature list says nothing about streaming, and absent is not no.LLM integration
cap-mcp-guardprovides revisedTelemetry curation for the CAP door. The edge said nothing about what the plugin contributes, and the README's own statement is narrow and conditional: one span per agent request, emitted into an OpenTelemetry SDK the application configures, with no exporter of its own. Read against the README at the master branch, last pushed 2026-08-14.Telemetry
cap-ui-telemetrydescription revisedTelemetry curation for the CAP door. This is the one option in the corpus answering the boundary the core states, that traces begin when a request arrives, and the entry did not say how it does it or that its records are logs rather than spans. Read against the README at commit 78e5d75.Telemetry
cds-agentsdescription, provides revisedcapability:agent-tooling declared four comparison properties on 2026-10-15. Both brings values rest on their own sentence — CAPToolkit is the raw-tool layer and the production default, CAPAgent a ready-made ReAct agent for demos and small apps — and the protocol is the one its own executor names as a client, not a protocol it serves. The state and approval properties are left out: the README says nothing about either.Agent tooling
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.TypeScript patterns
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.TypeScript patterns
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.TypeScript patterns
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.TypeScript patterns
DanKromp/skillOverflowprovides revisedThe entry's own prose said the collection covers UI5 and Fiori work and the edge cited only the total count. The UI5 pass needed to know what that coverage is, because this entry states no flavor and so answers in all of a door's flavors; the two rows name the skills the fallback rests on, which is what the capability's freestyle and web-components readings now cite.Agent guidance
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.Local development
SAP Power for Kiroprovides, description revisedThe entry said it is packaged as a Kiro power and not how it gets there or which Kiro it needs; the README read on 2026-10-15 states both.Agent guidance
secondsky/sap-skillslinks, flavors, requires, provides, description revisedThe same correction as description.what_it_solves, on the edge that carries this artifact's answer to the capability, so the two do not state the repository's evidence model differently. The rewording also removes the two em dashes the prose scan reported in this field.Agent guidance
ui5-cap-ai-featuresprovides[llm-integration], requires[sap-ai-sdk-orchestration] revisedThe edge read as an unconditional prerequisite while this entry's own when_not_to_use already said the package is an optional peer. The README states it in one sentence, quoted now: a frontend-only install does not need it and a backend project installs it explicitly, which is the distinction a reader deciding what to add to package.json needs. The edge to the HTML5 Application Repository is untouched; nothing was read for it in this pass.LLM integration
Werkbankecosystem revisedThe project homepage describes "A small, curated shelf of MCP servers and SAP development skills." Its own catalog spans ABAP (ARC-1 and ABAP Cloud), CAP (CAP Upgrade), and UI5 skills; the workspace is not specific to one stack. This intake follows the maintainer’s explicit request after the September source sweep passed it over for lacking a workspace capability; that concern now exists as Agent workspaces. The served views describe which users the project-owned install catalog addresses. Werkbank provides the workspace; each selected connector or skill supplies the stack-specific behavior. No SAP implementation capability is attributed to Werkbank itself.Agent guidance
Tue 13
Nice patch SAP! Revisiting your SAP BTP security measures after AI Core vulnerability fixpublishedWritten after the SAPwned disclosure in SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp, it argues SAP BTP's shared-responsibility model still requires the customer's own hardening: scope SAP BTP, Cloud Foundry RuntimeSAP BTP, Cloud Foundry RuntimeThe Cloud Foundry runtime of SAP BTP: memory for applications in a Cloud Foundry org, run from SAP's Java, Node.js and Python buildpacks or community buildpacks and managed with the standard Cloud Foundry tools.sap official, btp and SAP BTP, Kyma runtimeSAP BTP, Kyma runtimeA fully managed Kubernetes runtime on SAP BTP, based on the open-source project Kyma, where extensions to SAP solutions run as containerised microservices and serverless Functions.sap official, btp app access, rotate OAuth2 client-credentials secrets, and enforce MFA and Conditional Access through a corporate identity provider rather than relying on SAP's patch alone. It then explains how the SAP Audit Log serviceSAP Audit Log serviceIngests compliance audit data from BTP services and applications and keeps it for ninety days by default; retrieval and longer retention are separate services.sap official, btp writes standardized events for most Cloud Foundry BTP services, and walks through onboarding a BTP subaccount into Microsoft Sentinel for SAP BTP to query those logs with Kusto and build detection rules that flag unexpected login countries or known-bad IPs and trigger automatic user blocks.Audit logging
Mon 12
@odatano/nightgatereleased 0.32.0Calls to the sponsor actions that pass a
sponsorSessionId.OData@gavdi/cap-mcpprovides[mcp-servers], provides revisedConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.Serve your application over MCP
@neoimpulse/cap-js-mcpdescription, provides[mcp-servers], provides revisedConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.Serve your application over MCP
@odatano/core-mcpprovides[mcp-servers], provides revisedConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.Serve your application over MCP
Show 3 more
@odatano/nightgate-mcpprovides[mcp-servers], provides revisedConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.Serve your application over MCP
@shahid.la/cds-db-nlquery-mcpprovides[mcp-servers], provides, requires revisedResolves the requested review findings while preserving the structured comparison values, runtime scopes and implementation restrictions.LLM integration
cap-mcp-pluginprovides[mcp-servers], provides revisedResolves the requested review findings while preserving the structured comparison values, runtime scopes and implementation restrictions.Serve your application over MCP
Sun 11
AI needs a foundation: A map of the plug-in ecosystem for CAPpublishedA map of the plug-ins for CAP (@sap/cds@sap/cdsThe CAP Node.js runtime, which compiles the CDS model, serves the services declared in it, answers generic requests before any handler runs, and loads every cds-plugin.sap official, cap), 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 authoringPlugin authoringWriting a package that extends a framework or runtime rather than an application that uses it — a reusable extension loaded by its host, and the question you arrive at once solving a problem twice makes you want to solve it once for everyone.SAP only 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 ZaschkaMike Zaschkamaintains 6 entries, created 12 pieces, contributed to 9 entriesindependent, written here from SAP's abstract; the recording is not yet published.Plugin authoring
Sat 10
Reading Between the Lines: Under-Documented Fiori Elements Capabilities in SAPUI5 1.149publishedReads SAPUI5 1.149's framework source, not its release notes, to show Fiori Elements shifting side-effect refresh, AI field placeholders and multi-user drafting from controller extensions into what the backing service annotates. Event-driven SideEffects push over a WebSocketWebSocketPushing to a browser that already has the page open, rather than making it ask again — the half of a UI that polling imitates badly.Community only channel through @cap-js-community/websocket@cap-js-community/websocketA WebSocket adapter for CDS services, speaking either the plain WebSocket protocol or Socket.IO, so a service can push instead of being polled.community org, cap, while Draft handlingDraft handlingLetting a user edit a record over several requests before it becomes real — saving unfinished changes, locking, and activating a completed draft.SAP and community, narrow by design gains ABAP RAP's live field locking on CAP Node.js through Sören LeibachSören Leibachmaintains 6 entries, wrote 1 post, contributed to 5 entriesindependent's own cap-collaborative-draftcap-collaborative-draftA cds-plugin that gives a CAP Node.js service the OData contract, tables and handlers Fiori elements needs for collaborative draft, so a second user joins an open draft instead of meeting HTTP 423.independent, cap plugin. Both rest on Fiori annotationsFiori annotationsDescribing a service so a Fiori client can render it without hand-written UI code — titles, value helps, hierarchies and visibility expressed as model annotations rather than screen logic.SAP and community, unassessed such as
Common.SideEffects and CollaborativeDraft.enabled, which the frontend reads rather than requiring a manifest flag.WebSocketFri 9
cap-mtx-scaffoldadded to the atlasAgent skill for CAP multitenancy scaffoldingAgent guidance
sap-cx-developer-companionadded to the atlasAgent skill for SAP Customer Experience APIs, CDS and errorsAgent guidance
cap-mcp-bridgeprovides revisedThe concern it answers is reaching into an SAP system from outside, split out of MCP servers on this day; the sentence on the edge is unchanged.Agent access to your systems
cap-mtx-scaffoldentry revisedA new repository in the SAP AI Skills Library registry snapshot of 2026-10-09, registering one skill at skills/cap-mtx-scaffold. Written from the repository's own README; hard rule 7: skills are indexed, never authored here. No flavor is stated: the repository badge reads SAP CAP Node.js and the toolkits it names are Node ones, but no sentence states a flavor, so the entry says nothing rather than inferring node.Agent guidance
Show 1 more
sap-cx-developer-companionentry revisedA new repository in the SAP AI Skills Library registry snapshot of 2026-10-09, registering one skill at skills/sap-cx-developer-companion. Written from the repository's own README and SKILL.md; hard rule 7: skills are indexed, never authored here. Placed behind the SAP Commerce door because the CX API explorer and the error resolver are written against Commerce Cloud OCC and Sales and Service Cloud, with CAP and BTP as served doors for the CDS half.Agent guidance
Thu 8
auth-samplesadded to the atlasCAP services and a UI for trying role restrictions with mock users
blog-bookshopadded to the atlasCAP bookshop with Fiori elements UI deployed whole to Cloud Foundry
blog-cap-chartadded to the atlasFiori overview page comparing aggregated and plain donut-chart cards
cap-bp-ragadded to the atlasEvent-driven RAG app with CAP, Cloud Integration and SAP HANA Cloud
Show 11 more
cap-cds-typeradded to the atlasCAP service in TypeScript using types from @cap-js/cds-typer
cap-defaultvalue-functionadded to the atlasCommon.DefaultValuesFunction pointed at a CAP service function
cap-embedding-functionadded to the atlasCAP service computing embeddings with HANA Cloud vector_embedding
cap-external-northwindadded to the atlasCAP service serving Northwind's external OData Products as its own
cap-fe-masseditadded to the atlasMass edit enabled in a Fiori elements list report over CAP
cap-feature-controladded to the atlasSingleton entity whose flags drive Fiori elements feature control
cap-github-actionadded to the atlasCAP project built and deployed to Cloud Foundry by GitHub Actions
cap-java-childadded to the atlasConsumer side of a CAP Java parent pom promotion model with Renovate
cap-java-parent-pom-sampleadded to the atlasMaven parent pom pinning cds-services-bom and Spring Boot for CAP Java
cap-java-resilienceadded to the atlasCAP Java service consuming a Business Partner API mocked in Node.js
cap-js-notificationsadded to the atlasOrder service sending notifications via @cap-js/notifications
Tue 29
Agentic AI on BTP: a Multi‑Agent App with Pydantic AIpublishedSplits a single CAP/TypeScript agent that had grown to juggle five BTP MCP servers behind one bloated tool list into btp-multiagent-app, a Python and Pydantic AI rewrite where the Cloud Foundry and BTP Core MCP serversServe your application over MCPExposing selected application data and business operations to an AI agent through the Model Context Protocol. An application may also integrate remote services through service integration, connecting its exposed contract with agent access to your systems. Development assistance belongs to agent access to your code.SAP and community, narrow by design each get a dedicated specialist agent, with an audit log specialist scaffolded but left disabled, behind an orchestrator whose only tools are delegation calls to those specialists, which is the agent-toolingAgent toolingBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.SAP and community, unassessed pattern the piece works through. Each specialist authenticates to its MCP server over Streamable HTTP with OAuth 2.1, and a shared module centralises the SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp GenAI Hub model setup behind two credential layouts, one for local runs and one for the Cloud Foundry service binding, the LLM integrationLLM integrationCalling a language model from application code with the tenant, destination and credential handling already solved instead using an SDK call with a hand-rolled key.SAP and community, narrow by design side of the rewrite. Tool lists per agent drop from well over a hundred to a dozen or two, and routing failures become separable from tool-misuse failures by reading the trace.Serve your application over MCP
Agentic AI on BTP: a Single Agent with LangGraphpublishedA CAP TypeScript agent puts a LangGraph StateGraph in front of AzureOpenAiChatClient from @sap-ai-sdk/langchain, reaching SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp's Generative AI Hub, and lets its tool-calling loop draw on five deployed MCP serversServe your application over MCPExposing selected application data and business operations to an AI agent through the Model Context Protocol. An application may also integrate remote services through service integration, connecting its exposed contract with agent access to your systems. Development assistance belongs to agent access to your code.SAP and community, narrow by design — OData MCP Proxyodata-mcp-proxyA config-driven proxy that turns OData and REST endpoints into MCP tools from a JSON file — no code — and runs on BTP Cloud Foundry against BTP Destinations.independent, btp, CI MCP ServerCI MCP ServerAn MCP server that exposes SAP Cloud Integration's OData APIs as tools, defined entirely in one JSON config file, so an assistant works integration content, logs and configurations in natural language.independent, btp, AI Core MCP ServerAI Core MCP ServerAn MCP server that exposes SAP AI Core's APIs as tools, defined entirely in one JSON config file for a proxy, so deployments, configurations and scenarios are managed through an assistant.independent, btp, BTP MCP ServerBTP MCP ServerBTP Core Services as MCP tools, and the only server in this corner that renders dashboards inside the chat — a subaccount overview with drill-down, a geomap of data-centre locations, consumption and users.independent, btp and BTP CF MCP ServerBTP CF MCP ServerThe Cloud Foundry V3 API on SAP BTP as MCP tools — apps, orgs, spaces, services, routes and quotas — declared in one JSON config file and run by odata-mcp-proxy.independent, btp — through @langchain/mcp-adapters' MultiServerMCPClient. Because agent, servers and APIs share one XSUAA tenant, the chat service forwards the signed-in user's own JWT instead of a service account, so each downstream server enforces that user's own authorizations. Past roughly a hundred combined tools the single prompt slows down and stops separating concerns, which is why the author's next post splits it into one specialist agent per MCP server behind an orchestrator.Serve your application over MCP
BTP Audit Log MCP Server: Security Monitoring with AI AssistantspublishedWouter Lemaire builds an MCP server over SAP BTP's Audit Log Retrieval API using odata-mcp-proxyodata-mcp-proxyA config-driven proxy that turns OData and REST endpoints into MCP tools from a JSON file — no code — and runs on BTP Cloud Foundry against BTP Destinations.independent, btp, with a single entity set and zero custom code, so an AI assistant can answer natural-language questions like "Were there any configuration changes yesterday?" by calling AuditLogRecords_list against a BTP destination authenticated with the Audit Log serviceSAP Audit Log serviceIngests compliance audit data from BTP services and applications and keeps it for ninety days by default; retrieval and longer retention are separate services.sap official, btp's service key. It covers the destination setup, the entity-set configuration that maps the PascalCase entity name to a lowercase auditlogrecords path, and handling the API's 500-record pagination limit.Serve your application over MCP
Mon 28
cap-collaborative-draftprovides, description, requires, compat, flavors revisedStated rather than left to the cds-plugin fallback: the README's first line says CAP Node.js backends.Draft handling
Sun 27
@odatano/nightgatereleased 0.27.0Queries that read the full contract state from every
ContractActions row.OData@odatano/nightgatereleased 0.28.0Client code that branches on
error.code being "400".OData@cap-js-community/odata-v2-adapterprovides[odata] revisedThe option states the protocol it serves for this concern, from its README (docs/concepts/design-roles-and-interfaces.md, P2): the odata facet is what is served, and the adapter serves V2; the V4 the same sentence names is what it translates into, which @sap/cds serves and states. The checker's reading found the runtime the README calls mandatory carried by no edge; it is one now.OData
cds-plugin-ui5description, provides, compat, flavors, identity revisedRead from the package's own README licence section, as its siblings in the same repository already record.Integrated frontend dev server
Sat 26
capvaladded to the atlasCustom messages and handler classes for CAP input validationInput validation
@odatano/nightgatereleased 0.26.0Upgrade notes that move to 0.26.0 without running
nightgate-rewrap-keys.ODataExtend SAP Cloud Application Programming Model(CAP) Validations with the CAPVAL Pluginexplains, summary, authors revisedThe actor entered with the artifact. The post says "I have written a plugin called CAPVAL" and sends the reader to GitHub, where the repository is MertSAP/CAPVAL, and npm lists mertsap as the maintainer of capval.Input validation