NewSAP Cloud Application Programming Model
Origin SAPOrigin Community

Today
4 changes
audit-summaryadded to the atlasGroups npm audit findings by root dependency, with failing thresholdsCLI,
enforce-export-coverageadded to the atlasStatic check that each exported TypeScript function has a testCLI,
git-env-branchesadded to the atlasShows which feature branches reached which environment branchCLI,
hana-linteradded to the atlasRegex naming rules for SAP HANA artifacts in a CAP projectCLI,
Yesterday
1 change
CAPVAL: A project is bornpublishedThis second CAPVAL post announces CAPVAL 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 validation mechanic the project builds on, and the release otherwise adds automated tests and release-automation GitHub Actions rather than new annotations.Blog,
Sat 24
3 changes
btp-agentadded to the atlasLangGraph agent and UI5 chat screen over four BTP MCP serversSample,
SAP HANA Cloudprovides revisedThe capability was added on 2026-10-24 for administering a database instance; SAP HANA Cloud ships its administration tools, so it is the core answer on BTP.Service,
SAP-samples/hana-developer-cli-tool-exampleprovides, serves ecosystems, domain, provides revisedIts performance analysis, privilege grants and backup and recovery commands had no capability to sit under; Database administration was added for them the same day.CLI,
Fri 23
8 changes
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.CDS plugin,
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.CDS plugin,
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,
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.CDS plugin,
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.CDS plugin,
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.CDS plugin,
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.CDS plugin,
Thu 22
2 changes
@mi8y/cap-agents-sdm-backendadded to the atlasDeep Agents filesystem over an SAP Document Management repositoryPackage,
Reports Assistant with SAP Document Managementadded to the atlasCAP agent writing reports into a shared SDM document workspaceSample,
Mon 19
6 changes
Building Code-Based AI Agents on the BAIPpublishedA Devtoberfest 2026 session on writing the agent yourself rather than configuring one, which is the agent tooling 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 Core 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-webui 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.Talk,
SAP Meets the Agentic Web: CAP MCP - UI5 WebMCPpublishedA Devtoberfest 2026 session (CAP-42) that puts MCP and WebMCP side by side: MCP exposes a backend to an agent, WebMCP exposes the tools of a web page to whatever agent arrives at it, and only Chrome behind a flag and Cloudflare's Kite browser support the second one today. The CAP half starts with two agents scraping a Fiori elements app with Playwright and browser dev tools, then annotates the catalogue service with the MCP protocol through @cap-js/mcp, after which the agent calls the generated describe tool instead of parsing pages. The UI5 half registers a search-authors tool on the browser's model context API inside the same app, with the cross-origin isolation header the API requires, and lists it through the WebMCP Chrome extension — the agent run against it ends on an exhausted Gemini key rather than a result.Talk,
Supply Chain Rescueadded to the atlasCAP and SAPUI5 demo of recovery from a supply disruptionSample,
What's in Daniel Hutzel's brain?publishedA Devtoberfest 2026 session in the building-apps track, in which Daniel Hutzel and DJ Adams work through what the CAP team is building for agents. A bookshop gets an MCP endpoint beside its OData one from a single annotation, with the plugin writing the coding agent's configuration itself; in the xt-travels sample five services that know nothing about each other are served over MCP and an agent does the orchestration the hand-built UI and its value helps used to do. Hutzel then annotates a service as an agent so the ReAct loop and the choice of model move into the CAP service, and finally drops MCP for a skill that teaches the agent CQL instead, which is where the edges to Serve your application over MCP, Agent tooling and Agent guidance come from. The mechanism under all of it, a plugin file in the package root and event handlers that can be added to any CAP service, is the edge to Plugin authoring.Talk,
Show 2 more
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.Skill,
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.Desktop app,
Sun 18
7 changes
CAP in the age of AI #4 - more on agentspublishedAsking a human first, and telling the agent how to behave. Ordering a book through @cap-js/agents happens without a question being asked; the human-in-the-loop annotation on the action turns the same request into an approve-or-reject step, which the episode follows down to the A2A status update that stores the task in an input-required state in the database — A2A itself being JSON-RPC 2.0 over HTTP with server-sent events for the stream. The rest is instructions on disk: an agents.md in the service's own folder removes the question about how many copies to order, a skill under a skills folder is advertised by its description and read only when the agent decides the case applies, and either file makes the plugin build a deep agent instead of the plain one.Video,
CAP in the age of AI #6 - vector embeddingspublishedVector embeddings put to work in the incident management sample, answering whether this problem has been seen before. An embedding element of type Vector is calculated and stored from the vector_embedding function, so the database refreshes it whenever the text behind it changes, and cosine_similarity compares it with a freshly embedded string; because a title says little, a scheduled action first summarises each incident's conversation through a model on SAP AI Core and the embedding is taken from that summary. The similar-incidents list is a view joining incidents to themselves, with order and limit set in a before handler on the expanded query, and the vector element excluded from the service, since OData knows nothing about vectors — on SAP HANA Cloud the function is native, while SQLite needs packages added to the project.Video,
CAP in the age of AI #7 - vector embeddings wrap-uppublishedThe same embeddings model taken from SQLite to SAP HANA Cloud, then handed to an agent. Locally it is @cap-js/ai that adds the vector functions SQLite lacks and downloads an all-MiniLM L6v2 ONNX model on first start; on HANA natural language processing has to be switched on, the model name is a mandatory argument, the vectors it returns are 768 dimensions, and dimensions must match on both sides of a comparison. HANA itself can be given SAP AI Core as a remote source for other embedding models, which a CDS.ql expression has to inject because the postfix notation only takes what the CDS model holds, and the hour ends with a search function over cosine similarity exposed over @cap-js/mcp, so an agent asked about low output from solar panels calls semantic search instead of writing the query itself.Video,
SAP Developers MCPadded to the atlasHosted MCP server of developers.sap.com tutorials and missionsMCP server,
Show 3 more
ui5-cap-serverside-rendering-demoadded to the atlasDemo CAP bookshop with server-rendered UI5 viewsSample,
@odatano/nightgatereleased 0.35.0Client code and examples written against the /api/v1/… service paths.CDS plugin,
SAP Developers MCPentry revisedNEIGHBOURS §5.1 named the hosted MCP as a companion to index as an artifact, and the graph had no entry for it. ecosystem: umbrella because its content covers SAP technologies across stacks (llms.txt names ABAP Cloud, CAP, Fiori, HANA Cloud and integration) and no single door holds it. No read_only: the anonymous mounts are read-only, but the signed-in tier writes progress (complete_step). No tool_count: the quickstart and the API page list different tools per mount. The site also serves a GraphQL API, not recorded as an interface here for want of a page read. /mcp/homepage is left out of the description: the quickstart lists it as anonymous and the API page as signed-in.MCP server,
Sat 17
58 changes
abap2UI5 protocoladded to the atlasVersioned specification of the abap2UI5 roundtrip protocolPractice,
Clean-Core.ioadded to the atlasHosted workspace redrawing custom ABAP as BPMN and grading itWeb tool,
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).Blog,
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).Blog,
Show 54 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).Blog,
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).Blog,
Agentic AI on BTP: a Multi‑Agent App with Pydantic AIexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
Agentic AI on BTP: a Single Agent with LangGraphexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
Agentic CAP: Build MCP servers and enterprise AI agentsexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Talk,
AI-native North Star architecture — Platform Layerexplains 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).Reference architecture,
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,
BTP Audit Log MCP Server: Security Monitoring with AI Assistantsexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Blog,
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).Blog,
Building an LLM Agent in CAP Java with Spring AIexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
Building an LLM Agent using CAPexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
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).Blog,
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).Blog,
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).Blog,
CAP Node.js Expert Session #6 - The MCP Adapterexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Video,
CAP, CDS, CDL, CSN and jq - finding associationsexplains 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,
Computed field example 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,
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).Blog,
DevOps with SAP BTPexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Reference architecture,
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).Blog,
Document Groundingexplains 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).Doc,
Establish a central inbox with SAP Task Centerexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Reference architecture,
Everything new: Try out the latest features in CAPexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Talk,
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).Blog,
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).Blog,
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).Blog,
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).Blog,
Generative AI on 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).Reference architecture,
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).Blog,
How to add OData v2 adapter proxy to your CAP projectexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
Integrating and Extending Jouleexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Reference architecture,
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,
Medallion Reference Architecture for Big Data Processing in SAP HANA Cloudexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Reference architecture,
Multitenant SaaS Application using CAPexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Reference architecture,
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).Blog,
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).Blog,
Presenting sap-cap-sdm-plugin: Effortless Integration Between CAP (Node.js) and DMSexplains 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,
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).Blog,
SAP Document AIexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Reference architecture,
Secure Service Consumption Across Hyperscalersexplains revisedDoor scope derived from the artifacts this piece also explains, so a door page lists it only where it holds (docs/concepts/content-on-doors.md).Reference architecture,
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,
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).Blog,
The fastest way to a deployable CAP app on SAP BTP Cloud Foundryexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
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).Blog,
UI for the BTP Application Vulnerability Reportexplains revisedDoor scope proposed from the title and summary, so a door page lists the piece only where it holds (docs/concepts/content-on-doors.md).Blog,
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).Blog,
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).Blog,
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).Blog,
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).Blog,
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).Blog,
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).Blog,
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).Blog,
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).Blog,
Thu 15
52 changes
cap-openaiadded to the atlasCAP service actions calling OpenAI chat completions two waysSample,
cap-openapiadded to the atlasCAP Java service calling role collection APIs via a generated clientSample,
cap-principal-propagationadded to the atlasOn-premise ABAP OData V2 service read from CAP over ConnectivitySample,
cap-redisadded to the atlasApprouter session held in a bound Redis cache instanceSample,
Show 48 more
cap-reuse-html5added to the atlasFiori elements app in the HTML5 Application Repository with cdm.jsonSample,
cap-rfcadded to the atlasCAP Node.js action calling BAPI_EPM_BP_CREATE over RFCSample,
cap-uiadded to the atlasMTA deploying CAP, HDI container and a Fiori elements appSample,
Joule Studioadded to the atlasSAP's managed environment for building custom agents and workflowsWeb tool,
Werkbankadded to the atlasLocal desktop workspace for AI conversations with SAP connectorsDesktop app,
@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.CDS plugin,
@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.Package,
@cap-js/agentsdescription, provides, requires revisedHow the agent reaches a model was nowhere on the entry, while the Java module of the same plugin already carried the edge. capire's configuration table states that aicore is the default for the production and hybrid profiles and connects to SAP AI Core, with auto and mock as the development kinds, so the requirement is conditional and the condition names the alternatives.CDS plugin,
@cap-js/aiprovides[llm-integration] revisedRe-read for the capability's impact assessment. The page still carries the claim, now in a longer sentence that also names the automatic service-binding resolution and the tenant-aware resource groups and deployments the coverage paragraph leans on, so the quote is the full sentence and the date is today's.CDS plugin,
@cap-js/telemetrydescription revisedTelemetry curation for the CAP door. The entry carried no paragraph and no property values, so the capability's comparison had nothing from the runtime's own answer on Node.js. Read against the README at commit e97874b, the 2.1.0 release, and capire's plugins page.CDS plugin,
@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,
@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.Package,
@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.CDS plugin,
@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.CDS plugin,
@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,
@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.CDS plugin,
@sap-ai-sdk/foundation-modelsprovides[llm-integration] revisedcapability:llm-integration declared model_access and response_streaming on 2026-10-15. The package's own chat-completion page, read the same day, states that its chat client streams over server-sent events, which is the fact that decides whether a chat surface can show an answer as it is written; the edge rested on the repository README alone before.Package,
@sap-ai-sdk/orchestrationprovides[llm-integration] revisedcapability:llm-integration declared model_access and response_streaming on 2026-10-15. The orchestration chat-completion page, read the same day, states that the model is the name property of the promptTemplating configuration and that the harmonised API behind it lets a different model be used without the client code changing, and that the client streams over server-sent events. Both facts decide something for a reader and neither was on the edge.Package,
@sap-ux/telemetryprovides revisedTelemetry curation for the CAP door. The entry stood among the options a reader compares for observing a running CAP service, and its own README places it elsewhere: a library SAP Fiori tools use to collect anonymous usage data. The sentence is recorded so the page states what it is; whether the edge, the cds-plugin type and the CAP door are right is left for review rather than changed here.Package,
@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,
@sap/joule-studio-clidescription, provides, links revisedCurrent npm README for 2.0.4, published 2026-10-07, says "Installing @sap/joule-studio-cli gives you two commands:" and lists joule and jl. SAP Help now installs this package for the new Studio workflow. The historical alpha package stays separately indexed; no unverified rename or lineage relationship is inferred.CLI,
@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.CDS plugin,
cap-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.CDS plugin,
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,
cap-java/cds-aiprovides[llm-integration], description revisedThe 0.0.2-alpha coordinates are a fact about Maven Central and not a statement by the maintainer. capire's plugin list, read on 2026-10-15, says in SAP's own words that the Java version of the AI plugin is currently in alpha, which is the declaration a reader choosing between the two runtimes needs; it is quoted rather than paraphrased and the coordinates stay beside it.Package,
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.CDS plugin,
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.CDS plugin,
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.CDS plugin,
capire/skillsflavors, provides revisedThe edge carried one source and no quote. Re-read both eval files on 2026-10-15: the fixture path, the expected-output field, the named assertions and the stack marker are now quoted, and the capability's two comparison properties are answered from the same sentences.Skill,
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.Package,
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,
Cloud Identity Servicesprovides[capability:authentication] revisedThe only sentence about this service was its one-liner, so the capability page listed it beside the OAuth server with nothing to tell the two apart. SAP's trust and federation page states what the service is and what a tenant's own policies cover, and the default identity provider page states the corporate identity provider behind it, which is the property the BTP door now compares on.Service,
com.sap.cds:cds-adapter-agentdescription, provides revisedcapability:agent-tooling declared four comparison properties on 2026-10-15. All four values are scoped to the java flavor, the only one this module states, and the last two are stated negatives rather than absences: capire states that conversation history sits in volatile memory and that @agent.hitl is not yet supported by CAP Java. The harness property is left out: neither page names an agent framework underneath the Java adapter.Package,
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,
com.sap.cds:cds-services-bomprovides revisedThe entry carried the Fiori draft lifecycle and not the annotations the same guide documents for Java. Capire's Serving SAP Fiori UIs guide names the Java configuration for the Fiori preview and one annotation the Java runtime reads itself, @cds.java.descendants.aggregate for a hierarchy view over aggregates. Without this edge the java flavor of capability:fiori-annotations had no provider of its own, although CAP Java serves the same annotated metadata. @http.CacheControl, which the same guide states is supported only on the Java runtime, is a response header rather than a rendering instruction and is left to capability:pagination-and-streaming.Package,
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.Skill,
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,
Joule Studioecosystem, artifact type, links revisedThe browser builder and managed runtime do not establish a separately subscribed and bound BTP service. Keep CAP and BTP as served views: the product overview names CAP development, and the current SAP Help tutorial requires "An SAP S/4HANA system configured with an SAP BTP destination." The architecture chapter is titled "Building AI Agents with SAP Joule Studio on SAP BTP" while distinguishing the SAP-managed runtime from Bring Your Own Agent in a customer subaccount. The CLI link is backed by the current npm README, which now ships both joule and jl; its atlas record is revised in the same batch. The positive basis for web-tool is SAP’s description of a visual browser-based builder with no local setup. It identifies the hosted development interface, including provisioned access; it does not classify the runtime as an unbound or customer-hosted service.Web tool,
SAP Authorization and Trust Management serviceprovides[capability:authentication] revisedThe edge said only that the service answers authentication, so the page could not say which part of the concern it answers. SAP's architecture page states the three: the trust, the assertion it receives, and the token it signs. The two properties the BTP door now compares options on are stated from the same page: a token with no user present, and a corporate identity provider behind it.Service,
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.Skill,
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.Skill,
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.CDS plugin,
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.Desktop app,
Tue 13
1 change
Nice patch SAP! Revisiting your SAP BTP security measures after AI Core vulnerability fixpublishedWritten after the SAPwned disclosure in SAP AI Core, it argues SAP BTP's shared-responsibility model still requires the customer's own hardening: scope SAP BTP, Cloud Foundry Runtime and SAP BTP, Kyma runtime 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 service 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.Blog,
Mon 12
11 changes
Model Context Protocol Adapter — CAP guidepublishedDocuments @cap-js/mcp and com.sap.cds:cds-adapter-mcp, service annotations, generated describe/query/call tools and local client setup. The guide records Java doc-comment configuration, unbound-action-based data changes, incomplete XSUAA PKCE support and the adapter’s governance boundaries.Doc,
@odatano/nightgatereleased 0.32.0Calls to the sponsor actions that pass a sponsorSessionId.CDS plugin,
@cap-js/mcpprovides[mcp-servers], provides, description revisedThe maintainer explicitly approved this public wording after independent review. Keeps the accepted ADR-0066 application of the SAP gateway/proxy prohibition in history, removes the internal decision identifier from reader-facing prose, and preserves all implementation restrictions.CDS plugin,
@gavdi/cap-mcpprovides[mcp-servers], provides revisedConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.CDS plugin,
Show 7 more
@neoimpulse/cap-js-mcpdescription, provides[mcp-servers], provides revisedConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.CDS plugin,
@odatano/core-mcpprovides[mcp-servers], provides revisedConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.MCP server,
@odatano/nightgate-mcpprovides[mcp-servers], provides revisedConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.MCP server,
@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.MCP server,
API Managementprovides[mcp-servers], provides, description revisedIndependent source review supports prompts guiding agent interaction rather than templates; retains both sourced tool-count limits as an explicit MCP-specific discrepancy.Service,
cap-mcp-pluginprovides[mcp-servers], provides revisedResolves the requested review findings while preserving the structured comparison values, runtime scopes and implementation restrictions.CDS plugin,
com.sap.cds:cds-adapter-mcpprovides[mcp-servers], provides, description revisedResolves the requested review findings while preserving the structured comparison values, runtime scopes and implementation restrictions.Package,
Sun 11
4 changes
Agentic CAP: Build MCP servers and enterprise AI agentspublishedCAP applications become AI agents over the Model Context Protocol and the Agent2Agent protocol, which is the serve your application over MCP concern, and SAP AI Core is the LLM integration through which AI is embedded in a CAP app, with recommendations from the SAP-RPT-1 model as the abstract's example. The abstract names the two protocols and the one model and does not say which packages carry them. A two-hour TechEd 2026 session in a hands-on room (Tuesday 27 October, Berlin), presented by Daniel Hutzel, Daniel Schlachter, Marc Huber and Sami Lechner, written here from SAP's abstract; the recording is not yet published.Talk,
AI needs a foundation: A map of the plug-in ecosystem for CAPpublishedA map of the plug-ins for CAP (@sap/cds), official, community and independent, drawn across regions such as integration, performance and tooling, so that a team can see what exists to reuse and what it would have to build: the question plugin authoring answers from the other side. SAP's abstract places CAP at the centre of its AI strategy, with model context protocol support, and the map is offered as the foundation under that. A TechEd 2026 session (Tuesday 27 October, Community Theater, Berlin), presented by Mike Zaschka, written here from SAP's abstract; the recording is not yet published.Talk,
Everything new: Try out the latest features in CAPpublishedCAP (@sap/cds) gains the features this hands-on session works through: declarative constraints, which is the input validation concern, status flows as status transition flows, a cds REPL, extensibility through @sap/cds-oyster, and HCQL, which SAP's abstract calls CAP's native query-over-HTTP protocol, after an opening stretch of AI-driven app development. The abstract names the features and stops there; what each one does is not described. A TechEd 2026 hands-on session (Wednesday 28 October, Berlin), presented by Daniel Hutzel, Daniel Schlachter, Marc Huber and Tim Back, written here from SAP's abstract; the recording is not yet published.Talk,
Road map for SAP Integration Suite: What ships next across all capabilitiespublishedSAP's road map for SAP Integration Suite across its capability areas: API Management, event-driven integration, business process and trading partner integration, and hybrid runtimes for SAP and third-party systems. The abstract promises recent deliveries and the planned innovations that make the platform agent-ready within SAP Business AI Platform; it names the areas and no shipping item, so the edges rest on the product and the one area it names by a product name. A TechEd 2026 session (Thursday 29 October, Berlin; also IN804V, virtual), written here from SAP's abstract; the recording is not yet published.Talk,
Sat 10
1 change
Reading Between the Lines: Under-Documented Fiori Elements Capabilities in SAPUI5 1.149publishedReads SAPUI5 1.149's framework source, not its release notes, to show Fiori Elements shifting side-effect refresh, AI field placeholders and multi-user drafting from controller extensions into what the backing service annotates. Event-driven SideEffects push over a WebSocket channel through @cap-js-community/websocket, while Draft handling gains ABAP RAP's live field locking on CAP Node.js through Sören Leibach's own cap-collaborative-draft plugin. Both rest on Fiori annotations such as Common.SideEffects and CollaborativeDraft.enabled, which the frontend reads rather than requiring a manifest flag.Blog,
Fri 9
9 changes
cap-mtx-scaffoldadded to the atlasAgent skill for CAP multitenancy scaffoldingSkill,
sap-cx-developer-companionadded to the atlasAgent skill for SAP Customer Experience APIs, CDS and errorsSkill,
@cap-js/advanced-event-meshreleased 1.1.0Setup notes that add the plugin to a CAP 8 project.CDS plugin,
AI-native North Star architecture — Platform Layerparts revisedFilled from SAP's own pages at the maintainer's request (docs/concepts/product-doors.md was the occasion; the AI-native door reads these designs). Every part names what the graph holds; what it lacks is listed as candidates in the curation note.Reference architecture,
Show 5 more
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.MCP server,
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.Skill,
Generative AI on SAP BTPparts, roles, paths revisedThe readme names the place for plugins and SDKs by example and leaves it open, and the RAG page names SAP's standardized services or a custom-built approach as the choice (docs/concepts/design-roles-and-interfaces.md §3). The three scenario pages are overlapping flows over the same parts, so they are not ways; the two runtimes are.Reference architecture,
Integrating and Extending Jouleparts revisedFilled from SAP's own readmes at the maintainer's request; the AI-native door reads these designs. Every part names what the graph holds; what it lacks is listed as candidates in the curation note.Reference architecture,
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.Skill,
Thu 8
15 changes
auth-samplesadded to the atlasCAP services and a UI for trying role restrictions with mock usersSample,
blog-bookshopadded to the atlasCAP bookshop with Fiori elements UI deployed whole to Cloud FoundrySample,
blog-cap-chartadded to the atlasFiori overview page comparing aggregated and plain donut-chart cardsSample,
cap-bp-ragadded to the atlasEvent-driven RAG app with CAP, Cloud Integration and SAP HANA CloudSample,
Show 11 more
cap-cds-typeradded to the atlasCAP service in TypeScript using types from @cap-js/cds-typerSample,
cap-defaultvalue-functionadded to the atlasCommon.DefaultValuesFunction pointed at a CAP service functionSample,
cap-embedding-functionadded to the atlasCAP service computing embeddings with HANA Cloud vector_embeddingSample,
cap-external-northwindadded to the atlasCAP service serving Northwind's external OData Products as its ownSample,
cap-fe-masseditadded to the atlasMass edit enabled in a Fiori elements list report over CAPSample,
cap-feature-controladded to the atlasSingleton entity whose flags drive Fiori elements feature controlSample,
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,
cap-java-resilienceadded to the atlasCAP Java service consuming a Business Partner API mocked in Node.jsSample,
cap-js-notificationsadded to the atlasOrder service sending notifications via @cap-js/notificationsSample,
Tue 6
1 change
@cap-js/openapireleased 1.7.0OpenAPI documents generated before 1.7.0 for services without a @protocol, which described REST paths for them.CDS plugin,
Sat 3
1 change
CAP Node.js Expert Session #6 - The MCP AdapterpublishedDaniel Schlachter and DJ Adams add @cap-js/mcp to a bookshop service, inspect its describe, query and action tools, and query the catalogue through an AI agent. The session distinguishes this runtime adapter from the development-time MCP server and demonstrates automatic registration of the running service with a local agent. The recording describes the adapter as beta in July 2026, with read-only queries and writes through unbound actions.Video,

Tue 29
3 changes
Agentic AI on BTP: a Multi‑Agent App with Pydantic AIpublishedSplits a single CAP/TypeScript agent that had grown to juggle five BTP MCP servers behind one bloated tool list into btp-multiagent-app, a Python and Pydantic AI rewrite where the Cloud Foundry and BTP Core MCP servers each get a dedicated specialist agent, with an audit log specialist scaffolded but left disabled, behind an orchestrator whose only tools are delegation calls to those specialists, which is the agent-tooling pattern the piece works through. Each specialist authenticates to its MCP server over Streamable HTTP with OAuth 2.1, and a shared module centralises the SAP AI Core GenAI Hub model setup behind two credential layouts, one for local runs and one for the Cloud Foundry service binding, the LLM integration side of the rewrite. Tool lists per agent drop from well over a hundred to a dozen or two, and routing failures become separable from tool-misuse failures by reading the trace.Blog,
Agentic AI on BTP: a Single Agent with LangGraphpublishedA CAP TypeScript agent puts a LangGraph StateGraph in front of AzureOpenAiChatClient from @sap-ai-sdk/langchain, reaching SAP AI Core's Generative AI Hub, and lets its tool-calling loop draw on five deployed MCP servers — OData MCP Proxy, CI MCP Server, AI Core MCP Server, BTP MCP Server and BTP CF MCP Server — through @langchain/mcp-adapters' MultiServerMCPClient. Because agent, servers and APIs share one XSUAA tenant, the chat service forwards the signed-in user's own JWT instead of a service account, so each downstream server enforces that user's own authorizations. Past roughly a hundred combined tools the single prompt slows down and stops separating concerns, which is why the author's next post splits it into one specialist agent per MCP server behind an orchestrator.Blog,
BTP Audit Log MCP Server: Security Monitoring with AI AssistantspublishedWouter Lemaire builds an MCP server over SAP BTP's Audit Log Retrieval API using odata-mcp-proxy, with a single entity set and zero custom code, so an AI assistant can answer natural-language questions like "Were there any configuration changes yesterday?" by calling AuditLogRecords_list against a BTP destination authenticated with the Audit Log service's service key. It covers the destination setup, the entity-set configuration that maps the PascalCase entity name to a lowercase auditlogrecords path, and handling the API's 500-record pagination limit.Blog,
Mon 28
2 changes
@cap-js/attachmentsconnects[malware-scanning] revisedThe README names the scan and the HTTP 429 the service answers with, so the connection lands on the scan API SAP Malware Scanning service states (CONCEPT-005 §3.3, decision 10); the Object Store edge stays at the box, since the README says a bound instance and no more.CDS plugin,
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.CDS plugin,
Sun 27
12 changes
@cap-js/processadded to the atlasStarts and manages SAP Build Process Automation processes from CAPCDS plugin,
@odatano/nightgatereleased 0.27.0Queries that read the full contract state from every ContractActions row.CDS plugin,
@odatano/nightgatereleased 0.28.0Client code that branches on error.code being "400".CDS plugin,
@cap-js-community/odata-v2-adapterprovides[odata] revisedThe option states the protocol it serves for this concern, from its README (docs/concepts/design-roles-and-interfaces.md, P2): the odata facet is what is served, and the adapter serves V2; the V4 the same sentence names is what it translates into, which @sap/cds serves and states. The checker's reading found the runtime the README calls mandatory carried by no edge; it is one now.CDS plugin,
Show 8 more
@sap_oss/vscode-mta-toolslinks revisedThe old repository's README says it has moved to the app-studio-toolkit monorepo; the edge now cites the README at the new address.IDE extension,
@sap/cdsprovides[service-integration] revisedThe option states the protocols it speaks for this concern, from its documentation's sentence (docs/concepts/design-roles-and-interfaces.md, P2). Both facets cite the published capire pages, and each value carries the sentence that names it. What it serves rests on cds.protocols, which names OData V4 and REST outright. What it consumes rests on the Remote Services page, which names OData and plain REST, and, for the OData versions, on the Consuming Services guide, the one capire page that enumerates them; that guide says it is outdated and kept for archival purposes, so the entry dates the reading. HCQL, which CAP-level Service Integration calls CAP's native protocol, is not in the atlas's protocol list and stays out until it is.Package,
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.CDS plugin,
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,
Multitenant SaaS Application using CAPparts, areas, edges revisedThe record states what its source draws around and between the parts (docs/concepts/reference-architectures.md §9.2): the provider and consumer subaccounts, the users and API clients, and the flow of subscription, data and authentication as the architecture page states it. On the checker's reading of the first draft: only the application is placed in the provider subaccount, since the page places nothing else there; the registration with the SaaS Provisioning service is the stated direction, not events the service raises; and API Management's policies are stated with no path, so no arrow.Reference architecture,
SAP Document AIinterfaces revisedAn interface may be named and stays a field (docs/concepts/design-roles-and-interfaces.md §3.2, P7): the hub's catalogue states the two APIs' titles, versions and states, and SAP's Help pages name the channels and the workspace, so a design's arrow can say which surface it lands on and a reader has the page to open. The inbound channels read mail: SAP's Help page names mail as the only channel type, so the SharePoint folders the reference architecture mentions are its claim and not the maker's. No status is entered: the hub's state is a crawled claim reported beside the interface.Service,
SAP Document AIparts, areas, edges, roles, edges[client to docai] revisedThe ingestion page links the upload operation of document_information_extraction_api_v2 as the API-based integration, and the service now names that surface (docs/concepts/design-roles-and-interfaces.md §3.2, P7), so the arrow says which API it lands on and wears its protocol.Reference architecture,
xtravelsdemonstrates revisedcapire's XTravels Sample for AI page shows the sample integrating several MCP services and CAP-level agents.Sample,
Sat 26
3 changes
capvaladded to the atlasCustom messages and handler classes for CAP input validationCDS plugin,
@odatano/nightgatereleased 0.26.0Upgrade notes that move to 0.26.0 without running nightgate-rewrap-keys.CDS plugin,
Extend 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.Blog,
The last 30 days. Older changes stay in each entry's history.