Everything in CAP / Java
577 of 743
Domain
Signals
Content: 2
Java: Answers in Java
More
Group by: Capability
EntryBySignalsLast activity
LLM integrationSAP only
🟣 Bring AI into Your ABAP Applications with ISLM: Build, Integrate, and Consume AI Natively🟣 Bring AI into Your ABAP Applications with ISLM: Build, Integrate, and Consume AI NativelyDevtoberfest 2026 session AI-11, from the product manager and product owner of Intelligent Scenario Lifecycle Management: ISLM as the place an AI use case is registered, deployed and operated inside an SAP S/4HANA system, and what has been added to it for generative AI. The demo builds a custom scenario end to end — an intelligent scenario of type generative AI, a connection to SAP AI Core, a GPT-5 mini model, an orchestration flow template that configures data masking, input and output filtering and translation into the user's logged-in language, then prompts with a grounding query over five companies' return-policy documents — and consumes it from an ABAP report through the ABAP AI SDK, which calls the orchestration API and returns the summary as JSON. Two newer pieces follow: SAP RPT, the relational pre-trained transformer for tabular prediction, called with context rows and query rows and answering with a confidence value and no training step; and system-triggered agents, where an application job in the ABAP system starts a billing-creation agent that reaches S/4HANA OData APIs as tools through the agent gateway with principal propagation. The closing availability matrix states the generative AI capabilities for on-premise and private cloud from the 2021 release, with SAP notes to implement on lower ones.SAP Developers, published 2026-09-24
🟣 Enable Your AI application to Run on Multiple Models to Ensure Resilience and Compliance🟣 Enable Your AI application to Run on Multiple Models to Ensure Resilience and ComplianceDevtoberfest 2026 session AI-21. A cross product owner on the SAP AI Core team gives the reasons an AI application ends up on more than one model — a model down at the hyperscaler, a data centre that is not allowed to run it, a version being deprecated — and runs a joke app that answers from Gemini 2.5 Flash in EU10 and from Claude 4.5 Haiku in Asia-Pacific. The walk through AI Core's parts is where the edges hold: prompts kept as templates in the prompt registry, imported through the launchpad and the APIs or synced as YAML from a git repository (Prompt management); the evaluation service scoring one prompt across up to four models per run on built-in or model-as-judge metrics, and the prompt optimizer generating variants against one metric (Agent evals); and the orchestration service harmonising the providers behind one message format with a priority-sorted fallback list (LLM integration). The session also states where a metric has to be designed rather than picked: an exact-JSON match scores an email generator at zero, so the joke app's custom metric judges topic and family-appropriateness instead.SAP Developers, published 2026-10-01
Agentic AI on BTP: a Multi‑Agent App with Pydantic AIAgentic AI on BTP: a Multi‑Agent App with Pydantic AISplits 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.published 2026-05-03
Agentic AI on BTP: a Single Agent with LangGraphAgentic AI on BTP: a Single Agent with LangGraphA 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.published 2026-05-03
Agentic CAP: Build MCP servers and enterprise AI agentsAgentic CAP: Build MCP servers and enterprise AI agentsCAP 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.
Agentic memory: Knowledge graph engine and recall in SAP HANA CloudAgentic memory: Knowledge graph engine and recall in SAP HANA CloudThe knowledge graph engine in SAP HANA Cloud as an agent's memory: what the engine, the graph side of graph, spatial and document data, does in an agentic workflow, how an agent keeps what it learns there, the state agent tooling holds between turns, and the SAP AI Core integration through which the database calls LLMs and tabular foundation models such as SAP-RPT-1. The abstract names the engine, the memory role and the AI Core link and does not say how the memory is written or read. DA263 on Wednesday 28 October is a two-hour hands-on on the same engine with a different cast. A TechEd 2026 session (Tuesday 27 October, Berlin), presented by Markus Fath and Shraddha Shetty, written here from SAP's abstract; the recording is not yet published.
AI-enabled administration: Automating log analysis with generative AI hubAI-enabled administration: Automating log analysis with generative AI hubA log analysis tool for incident work, built in SAP Business Application Studio with the generative AI hub feature, which SAP AI Core ships as its LLM integration by its own documentation: it automates root-cause analysis over system errors and masks sensitive data. SAP's abstract states the tool's jobs and not how the hub is called, what the masking covers or which model answers. A TechEd 2026 session (Wednesday 28 October, Berlin), with no speaker listed in the catalogue at the time of writing, written here from SAP's abstract; the recording is not yet published.
An Innovative Language Exchange App developed with SAP Build Apps, CAP, Kyma, and OpenAIAn Innovative Language Exchange App developed with SAP Build Apps, CAP, Kyma, and OpenAIA dormant internal app at SAP Japan revived with AI, built to solve a problem the team actually had — colleagues who could not talk to each other. Build Apps on the front, CAP on Kyma behind it, OpenAI in the middle.javieryw, published 2024-01-31
An Innovative Language Exchange App developed with SAP Build Apps, CAP, Kyma, and OpenAI
LLM integration changed in @cap-js/ai 1.0.0, 2026-04-28. Affects Runnable code.
Automate your Job Postings Using Generative AI (ChatGPT) & SAP Build Process Automation AppsAutomate your Job Postings Using Generative AI (ChatGPT) & SAP Build Process Automation AppsA process that drafts its own text: ChatGPT writing job postings, SAP Build Process Automation carrying them through approval, and CAP in between. Presented as a generic pattern the author expects to be adapted rather than copied.shivamshukla12, published 2023-08-10
Banking Sentinel: A Multi-Agent Credit-Risk Copilot on SAP BTP, Built on a Mixed AI StackBanking Sentinel: A Multi-Agent Credit-Risk Copilot on SAP BTP, Built on a Mixed AI StackThe risk it is chasing is a graph problem stated in banking terms: a borrower who looks safe alone and is the linchpin of a group ten times the size. Multi-agent, mixed AI stack, on BTP and CAP.Shahid, published 2026-06-24
Banking Sentinel: A Multi-Agent Credit-Risk Copilot on SAP BTP, Built on a Mixed AI Stack
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects A recipe, Runnable code.
Behind the Autonomous Enterprise: SAP Knowledge Graph and SAP Domain ModelsBehind the Autonomous Enterprise: SAP Knowledge Graph and SAP Domain ModelsThe strategy behind SAP Business AI's intelligence layer: SAP Knowledge Graph for enterprise context, SAP Domain Models for SAP-specific expertise and tabular AI for predictions, unified on SAP AI Core with SAP Document AI. Knowledge Graph and Domain Models are not atlas entries, so the edges rest on the two products the abstract names as the infrastructure and on Predictive models for the tabular AI; nothing is stated about what any of them does in the layer. A TechEd 2026 session (Tuesday 27 October, Berlin; also ST103V, virtual), presented by Jan Portisch and Richard Grandpierre, written here from SAP's abstract; the recording is not yet published.
Bring "developers.sap.com" Into Your Dev Environment: SAP Developer Context for AI Coding AgentsBring "developers.sap.com" Into Your Dev Environment: SAP Developer Context for AI Coding AgentsDevtoberfest 2026 session FA-11: a tour of the rebuilt developers.sap.com by the team that runs it, from the administration screens behind the home page to the agent interfaces in front of it. The site is a CAP application on SAP HANA Cloud and SAP BTP, open-sourced in full, and the half of the session that places it here is how its content reaches an agent: every tutorial is also served as markdown, a coding agent is detected and given that version instead of the HTML, a well-known agent card advertises what the site offers, and SAP Developers MCP answers questions about tutorials, news and a reader's own completion history in Claude Code and Joule Desktop, over OAuth or a personal access token. Behind the answers sit two things working together: a knowledge graph in the HANA database over 1400 tutorials and 11,000 concepts, and SAP AI Core for the Joule interactions and the embeddings, with the agent harness written for the site rather than taken off a shelf. Where neither MCP nor A2A is available, the same content is published as skills.SAP Developers, published 2026-09-25
Build AI agents and applications natively on SAP HANA CloudBuild AI agents and applications natively on SAP HANA CloudSAP HANA Cloud as the base for agentic applications on SAP Business AI Platform: the session goes through CAP, the SAP HANA Cloud vector engine and SAP AI Core, with architecture patterns and lessons learned from building AI-supported applications. SAP's abstract names the three parts of that stack and the vector engine as the database's feature in it, and describes none of the patterns. A TechEd 2026 session (Wednesday 28 October, Berlin; also DA113V, virtual), presented by Christoph Morgen and Shraddha Shetty, written here from SAP's abstract; the recording is not yet published.
Build business differentiation with SAP AI CoreBuild business differentiation with SAP AI CoreSAP AI Core as the orchestration layer for enterprise AI, worked through with SAP's engineers: extend Joule Agents with models from its library, ground them in SAP Business Data Cloud products, embed them in SAP S/4HANA flows, then govern, scale and monitor them from prototype to production. The abstract says what the layer does for an agent and not which services carry each step. A TechEd 2026 session (Tuesday 27 October, Berlin), presented by David Knaack, Franziska Dobrigkeit, Hadi Hares and Jonas Israel, written here from SAP's abstract; the recording is not yet published.
Building agentic applications with SAP HANA CloudBuilding agentic applications with SAP HANA CloudA CAP application extended with semantic search and agent features on top of SAP HANA Cloud's vector engine and SAP AI Core, built in a hands-on workshop. The abstract names the parts, CAP, the vector engine and AI Core, and the two additions: semantic search, the retrieval half of retrieval-augmented generation, and LLM-supported agent capabilities inside the application, which is agent tooling. Which embedding model, which CAP runtime and how the agent calls its tools are not stated. A TechEd 2026 session (Thursday 29 October, Berlin), presented by Hui Li, Ritty Joseph, Shraddha Shetty and Tanuja Jadhav, written here from SAP's abstract; the recording is not yet published.
Building Agentic Workflows with n8n in Joule StudioBuilding Agentic Workflows with n8n in Joule StudioA Devtoberfest 2026 session, JS-31, on SAP-managed n8n inside Joule Studio, shown as a labs preview on a blocked-invoice scenario: a solution made of assets, an intent refined by the web agent into requirements and then a specification, and the generated workflow opened in the n8n editor that Joule Studio connects to its own n8n tenant, with the generated files committed through GitHub. The nodes carry the other edges — the human-in-the-loop node is built on SAP Task Center, and SAP AI Core is where model providers are configured centrally instead of per developer. It ends in Joule chat, where the approval task the workflow created is listed, opened and completed.SAP Developers, published 2026-10-08
Building an LLM Agent in CAP Java with Spring AIBuilding an LLM Agent in CAP Java with Spring AIThe Java counterpart to the author's own Node.js post, and written as one: connecting to AI Core with the SAP AI SDK, then calling an agent and a tool through Spring AI. Opens with a section on libraries and workflows — which framework does what, and what is left to you — before any code.published 2026-06-08
Building an LLM Agent in CAP Java with Spring AI
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects Runnable code.
Building an LLM Agent using CAPBuilding an LLM Agent using CAPThe argument is that CAP is already most of what an agent framework wants — services, handlers, a typed model — so the agent is built inside it rather than beside it. AI Core through sap-ai-sdk, then Langchain for the agent and its tools. Long, with a TLDR at the top for people who want the shape without the walk.published 2026-05-27
Building an LLM Agent using CAP
Agent tooling changed in @cap-js/agents 0.9.1, 2026-08-14. Affects Runnable code.
Building Code-Based AI Agents on the BAIPBuilding Code-Based AI Agents on the BAIPA 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.published 2026-10-09
CAP in the age of AI #3 - from MCP to A2ACAP in the age of AI #3 - from MCP to A2AThe episode that finishes @cap-js/mcp with authorisation and then crosses to agents. @requires and @restrict are the same annotations CAP already has, and the plugin reads them to filter the tool list and the describe output per user and per request, so a model is not told about entities the caller cannot reach — where the OData metadata of the same service lists every exposed entity regardless. The second half annotates a service with @agent from @cap-js/agents, which serves it over A2A with an agent card and a chat preview, runs first against a mocked response and then against SAP AI Core bound with cds bind and a hybrid profile, and reuses the MCP adapter's tools rather than defining new ones.published 2026-08-21
CAP in the age of AI #5 - agents wrap-upCAP in the age of AI #5 - agents wrap-upThe agents topic closed out on what sits around the agent rather than inside it, now that the documentation has moved into capire. The chat preview's session is persisted in the database rather than kept in memory, traces go out through @cap-js/telemetry to a self-hosted MLflow under the OpenTelemetry conventions for generative AI, and the panel is explicit that @agent reuses the MCP adapter's code programmatically without serving an MCP endpoint. It ends in the xtravels sample, where a travel agent delegates to a hotel-service sub-agent and reaches a separately started flight service over MCP through the service binding CAP resolves anyway. Earlier in the hour the same agent answers from a model running on the presenter's laptop, reached as an OpenAI-compatible endpoint.published 2026-10-02
CAP in the age of AI #6 - vector embeddingsCAP in the age of AI #6 - vector embeddingsVector 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.published 2026-10-09
CAP in the age of AI #7 - vector embeddings wrap-upCAP in the age of AI #7 - vector embeddings wrap-upThe 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.published 2026-10-16
cds-toon-ai-protocol-adapter: a pragmatic way to cut AI token costs using SAP CAPcds-toon-ai-protocol-adapter: a pragmatic way to cut AI token costs using SAP CAPNames a cost most CAP-plus-LLM writing ignores: every JSON payload streamed to a model is billed by its verbosity, in latency as well as money. The plugin brings TOON — Token-Oriented Object Notation — to a CAP service so the wire format changes without the service code doing so, in a REST variant and an OData one, with token counts reported on both sides.published 2026-01-25
Content FilteringContent FilteringContent filtering screens a large language model's input and output for low-quality, irrelevant or unsafe content: the four categories it names being hateful, violent, sexual and vulgar content, checking a request once on the way in and once on the way back. The page states smaller models can do this filtering efficiently, reading perplexity scores to flag anomalies, with the aim that SAP AI Core produces content meeting a stated safety standard, which is the ground content filtering covers on the BTP door.
Creating a meal generator application with SAP Build, Cloud Application Programming and openAICreating a meal generator application with SAP Build, Cloud Application Programming and openAIIngredients in, meal suggestions out, assembled from BTP services plus OpenAI and Google APIs. A small application built for the pleasure of it, and useful here as the plainest example of CAP holding the middle of a generative flow.former_member793421, published 2023-07-17
Data MaskingData MaskingData masking replaces identifiable or confidential text in a prompt with placeholders such as <Person_0> or <Organization_1> before it reaches a large language model, using pattern matching and machine learning to find what to replace. The page states SAP AI Core supports it as a feature and sets out five steps for applying it, defining the masking scope, choosing a technique, preserving the prompt's intent, checking compliance and risk, then testing and monitoring the result. That is the shape data masking takes on the BTP door.
Document GroundingDocument GroundingDocument Grounding is a managed retrieval-augmented-generation service under the Generative AI Hub on BTP, which SAP's page on SAP AI Core places inside that service: it ingests documents from Amazon S3, SharePoint, SAP Document Management Service, SAP Work Zone or an SFTP server, and handles chunking, embedding and retrieval itself, refreshing content automatically when a source document changes. The page states this managed path is recommended for most enterprise scenarios because it covers the whole lifecycle end to end, and offers a separate Document Grounding Vector API for data that is already chunked and embedded, for cases that need finer control over chunking and metadata.
Elevating Data Privacy in SAP CAP based GenAI Applications with CAP LLM PluginElevating Data Privacy in SAP CAP based GenAI Applications with CAP LLM PluginThe question underneath the enthusiasm: what leaves your landscape when a prompt goes to a model. The plugin's answer is to anonymise the sensitive fields through HANA before the prompt is sent, and this is the post that explains why that is the design rather than an option.AkashAmarendra, published 2024-02-02
Empowering Your Data Analytics with GPT-3 and SAP CAP IntegrationEmpowering Your Data Analytics with GPT-3 and SAP CAP IntegrationFree text in, SQL out, answer back in a sentence — the model writes the query, CAP runs it, and the model turns the rows into prose. Written in the GPT-3 window, so the model access has dated, but the three-step shape has not, and it is a different bet from retrieval: nothing is embedded, the schema is the context.Former Member, published 2023-03-10
Enhancing Business Processes with SAP BTP AI in SAP Integration SuiteEnhancing Business Processes with SAP BTP AI in SAP Integration SuiteWalks through a post-exit iflow in SAP Integration Suite that calls an LLM through SAP AI Core's Generative AI Hub to turn a customer's free-text return comment into one of a fixed set of SAP rejection-reason codes, so an inbound ORDERS05 IDoc carries a decision (E1EDP01-ABGRU) the ERP can act on without pausing for manual review. The worked example is a Commerce Cloud returns flow into S/4HANA; the piece argues the same bounded-classification pattern fits other narrative fields — delivery-exception remarks, expense-claim justifications — where the cost of an LLM call is repaid by removing a human review step, and points to a colleague's post on the Generative AI Hub orchestration workflow for the guardrailing (prompt templating, data masking) it only names.arunmaarirajha_kv, published 2025-12-15
Enhancing Enterprise Applications: AI-powered User Experience with SAP CAP AI PluginEnhancing Enterprise Applications: AI-powered User Experience with SAP CAP AI PluginStarts from the blank form nobody wants to fill in, and asks what an enterprise application should do about it. The AI is in service of that rather than the subject of it.published 2026-04-29
Enriching AI models with SAP AI Core in SAP Business Data CloudEnriching AI models with SAP AI Core in SAP Business Data CloudThe integration between SAP Business Data Cloud and SAP AI Core, through which data products with their semantics feed AI models for benchmarking, custom AI development and agentic analytics and applications. The abstract names the two products and the three uses and states nothing about how the data reaches AI Core or what the integration consists of. A TechEd 2026 session (Tuesday 27 October, Berlin), presented by San Tran and Sandy Tran, written here from SAP's abstract; the recording is not yet published.
Generative AI Hub using Azure OpenAI GPT-4Generative AI Hub using Azure OpenAI GPT-4The technical half of a two-part post: a SAP Build Process Automation flow watches a support inbox, saves each incoming email's attachments and content, and hands the data to a custom Flask service that submits a service order into SAP S/4HANA. That service reaches two models through SAP AI Core's Generative AI Hub: Azure OpenAI's gpt-4-32k extracts the purchase date, model number, contact details and problem description from the email text, and LLaVA-1.6 describes the attached photos, so the JSON payload sent to the OData service-order and attachments APIs is assembled from both before the order is created.Jonathan-Kong, published 2024-03-15
Generative AI on SAP BTPGenerative AI on SAP BTPThe reference shape for a generative AI application on BTP: a CAP backend, SAP HANA Cloud holding data and embeddings for similarity search through its vector engine, and the Generative AI Hub in SAP AI Core as the single access point to foundation models. It shows retrieval-augmented generation on that stack and names the CAP plugins and SDKs that connect the pieces, for both Cloud Foundry and Kyma.published 2025-09-02
Generative AI on SAP BTP
LLM integration changed in @cap-js/ai 1.0.0, 2026-04-28. Affects A reference.
How to Reduce Prompt Token Costs Using Toon = Save MoneyHow to Reduce Prompt Token Costs Using Toon = Save MoneyToken spend treated as a running cost rather than a detail, and TOON as the lever. Companion reading to the CAP adapter for the same format that is indexed here.Yogananda, published 2025-11-12
How to Reduce Prompt Token Costs Using Toon = Save Money
LLM integration changed in @cap-js/ai 1.0.0, 2026-04-28. Affects A recipe, Runnable code.
How to use Cloud SDK for AI in an existing CAP NodeJS Project in CommonJSHow to use Cloud SDK for AI in an existing CAP NodeJS Project in CommonJSA dependency that is ESM-only inside a project that is CommonJS, and the author's judgement that converting the project was too risky. What follows is the esbuild workaround, which is the honest answer when the ecosystem has moved and your codebase has not.Jacky_Liu1, published 2025-08-01
Integrating a Custom AI Model into SAP CAP Using AI LaunchpadIntegrating a Custom AI Model into SAP CAP Using AI LaunchpadYour own model rather than a hosted one: deployed to AI Core, made callable through AI Launchpad, then reached from CAP. The case a lot of companies ask about and few posts cover.egeAksoyek, published 2026-03-20
Integrating a Custom AI Model into SAP CAP Using AI Launchpad
LLM integration changed in @cap-js/ai 1.0.0, 2026-04-28. Affects Runnable code.
Joule and SAP Knowledge Graph: Context-aware AI across SAP solutionsJoule and SAP Knowledge Graph: Context-aware AI across SAP solutionsThe catalogue carries RA107's abstract under this title, and what it describes is SAP AI Core as the management and orchestration layer of an AI architecture: extending Joule Agents in SAP Joule, the model library in Joule Studio for contextual reasoning, connecting data products from SAP Business Data Cloud, and embedding AI in SAP S/4HANA. The SAP Knowledge Graph the title names does not appear in that text, so the edges rest on the abstract as published, and whether the session follows the title or the abstract is not known until it is recorded. A TechEd 2026 session (Wednesday 28 October, Berlin; also RA110V, virtual), presented by Jan Portisch and Pavithra G K, written here from SAP's abstract; the recording is not yet published.
Knowledge graph and agent memory: Build an agent that remembersKnowledge graph and agent memory: Build an agent that remembersThe knowledge graph engine in SAP HANA Cloud as an agent's memory: what the engine, the graph side of graph, spatial and document data, does in an agentic workflow, how an agent keeps what it learns there, the state agent tooling holds between turns, and the SAP AI Core integration through which the database calls LLMs and tabular foundation models such as SAP-RPT-1. The abstract names the engine, the memory role and the AI Core link and does not say how the memory is written or read. DA205 on Tuesday 27 October is the 45-minute talk on the same engine, with a near-identical abstract and a different cast. A two-hour hands-on TechEd 2026 session (Wednesday 28 October, Berlin), presented by Christoph Morgen, Jan Zwickel, Markus Fath and Thomas Hammer, written here from SAP's abstract; the recording is not yet published.
Lets Talk to the Database - CAP & SQLite Powered by Google Gemini-2.5-ProLets Talk to the Database - CAP & SQLite Powered by Google Gemini-2.5-ProNatural language against a CAP service on SQLite, with a non-SAP model doing the translation. Written as a learning exercise rather than a pattern, and the choice of Gemini over anything in the AI hub is the interesting part of it.ShivamShuklaSAP, published 2025-04-16
Natural Language Queries for SAP CAP via MCP: The LLM Translates, CDS ExecutesNatural Language Queries for SAP CAP via MCP: The LLM Translates, CDS ExecutesThe division of labour is the argument, and it is in the subtitle: the model turns English into a CDS query and CDS runs it, so nothing generates SQL and nothing hallucinates a join. Schema annotations do the resolving. Long, with the package, the repository and the MCP registry entry all linked.Shahid, published 2026-06-25
Prompt TemplatingPrompt TemplatingPrompt templating replaces a static prompt with a structured, reusable template whose placeholders are filled in at runtime, which the page says helps LLM responses stay consistent and lets the same instructions be adapted across tasks. On SAP AI Core this is implemented through the Prompt Registry, and the page states that storing prompts as plain strings in code is possible but not recommended. That is prompt management as a stored and managed object rather than a string embedded in the caller.
Prompt-Driven Development: Building Full-Stack SAP CAP Apps from User StoriesPrompt-Driven Development: Building Full-Stack SAP CAP Apps from User StoriesA user story in, a scaffolded full-stack CAP application out, through SAP Build Code and Joule. The question it is actually asking is how much of the foundational code is worth generating, and it answers by generating all of it.AnuradhaDhingan, published 2025-12-11
SAP AI Core deep dive: Models, agents, and business context at scaleSAP AI Core deep dive: Models, agents, and business context at scaleSAP AI Core read as the management and orchestration layer of an AI architecture, beyond the model runtime: SAP's abstract lists extending Joule Agents, the model library in Joule Studio for contextual reasoning, connecting data products from SAP Business Data Cloud, and embedding AI in SAP S/4HANA. It names the connections and not the APIs behind them. A TechEd 2026 session (Tuesday 27 October, Berlin; also RA107V, virtual), presented by Franziska Dobrigkeit and Hadi Hares, written here from SAP's abstract; the recording is not yet published.
SAP Joule for Consultants: Unified knowledge for requirements and designsSAP Joule for Consultants: Unified knowledge for requirements and designsFit-to-standard analysis as a consultant on a cloud transformation project: connecting an organisation's data to SAP Joule for Consultants through SAP AI Core, getting answers from SAP knowledge and that content, then building an expert, loading project files and running guided prompts. The edges are to SAP Joule, of which Joule for Consultants is a part, and to SAP AI Core, named as the connection path; how the data is grounded is left to the session. A TechEd 2026 hands-on session (Wednesday 28 October, Berlin), presented by Anantharaman Ravi, Natalie Han, Sachin Kaura and Yi Hsuan Lin, written here from SAP's abstract; the recording is not yet published.
SAP-RPT and TabPFN: Get started with tabular foundation modelsSAP-RPT and TabPFN: Get started with tabular foundation modelsTabular foundation models, SAP-RPT and TabPFN, in a hands-on with SAP and Prior Labs: the model families first, then predictions run through SAP AI Core with a workflow built on tabular orchestration and connected to the participant's own data for real-time predictions. A predictive models session with the models as the subject; the abstract does not name the SDK or API the workflow is built with. A TechEd 2026 hands-on session (Thursday 29 October, Berlin), presented by Eliott Kalfon, Janick Zaehringer-Frasch, Johannes Hoehne, Katharina Schell, Nilay Mehta and Sherene Tan, written here from SAP's abstract; no recording is announced.
Ship your own sandboxed AI operations agent to Kyma in two hoursShip your own sandboxed AI operations agent to Kyma in two hoursAn operations agent built and then broken on purpose: the abstract has participants deploy a reasoning agent to SAP BTP, Kyma runtime, connect it to SAP AI Core, give it observability over the runtime and cause a failure for it to diagnose, the operations automation concern with an agent doing the diagnosis. Patterns for cost control and monitoring are promised at the end; the agent framework and how the sandbox is drawn are not named. A TechEd 2026 session (Tuesday 27 October, Berlin, two hours), presented by Christian Lechner, Piotr Tesny, Thorsten Sandfuchs and Vipin VijayKumar, written here from SAP's abstract; the recording is not yet published.
Stop guessing, start counting: How generative AI fixed an inventory messStop guessing, start counting: How generative AI fixed an inventory messAn inventory-counting application a business built on SAP Business AI Platform with SAP HANA Cloud and generative AI, to replace recount lists kept by gut feel across SAP ERP Central Component, SAP S/4HANA and Microsoft Excel; the talk promises the app, its architecture and what went wrong. The generative AI part is LLM integration from application code; the abstract names HANA Cloud and generative AI as the two building blocks and says nothing about how either is used. A TechEd 2026 session (Thursday 29 October, Berlin), presented by Ranjeet Kumar, written here from SAP's abstract; the recording is not yet published.
Streaming LLM Output with CAP and WebSocketsStreaming LLM Output with CAP and WebSocketsTokens arriving from the AI SDK's orchestration module, forwarded to the browser as they come rather than after the model finishes. Covers all four pieces — enabling WebSocket support in CAP, a service with actions and events, the streaming itself, and a frontend on the native WebSocket API — which is what makes it the clearest case for why a CAP service would want a socket at all.RobinP, published 2025-11-18
Streaming LLM Output with CAP and WebSockets
LLM integration changed in @cap-js/ai 1.0.0, 2026-04-28. Affects A recipe, Runnable code.
UI5 MCP Server Got Extended for UI Integration Cards GenerationUI5 MCP Server Got Extended for UI Integration Cards GenerationVersion 0.2.1 of the UI5 MCP Server adds three tools for UI Integration Cards: get_integration_cards_guidelines feeds an agent current best practices and API versions, create_integration_card scaffolds a new card project, and run_manifest_validation checks the generated manifest against the schema. The post frames these as closing the same gaps as the server's existing tools — an LLM's outdated or wrong card API knowledge — this time for scaffolding and validating a card rather than a full app.daniel_vladinov, published 2026-01-22
Unlocking Tabular Foundation Models: From Experimentation to ProductionUnlocking Tabular Foundation Models: From Experimentation to ProductionA Devtoberfest 2026 session (AI-41) on taking tabular prediction from a playground to a deployment. It sets tabular foundation models against a model trained per use case and against language models reading rows as text, explains in-context learning as examples plus the rows whose target column is missing, and tries SAP RPT 1.6 on a train-delay dataset in the RPT playground, including the column and row importance it returns with the prediction. The same prediction is then rebuilt on SAP AI Core, where the tabular orchestration service plays the part the orchestration service plays for language models: a data destination, a table artifact with its CSN schema and a scenario configuration registered once at design time, after which a predict call passes only the query rows, the scenario configuration and a context-selection strategy. The last demo runs those same calls in natural language through the aicore-skills plugin in a coding agent, and one of them only resolves once the agent is told which scenario configuration to use.SAP Developers, published 2026-10-15
What an AI infra engineer sees when opening SAP's AI stack (1/3): the model gatewayWhat an AI infra engineer sees when opening SAP's AI stack (1/3): the model gatewayA first look at SAP AI Core's Generative AI Hub from someone who builds gateways outside SAP for a living: the orchestration service harmonizes provider calls onto one API (a model name string switches providers, and SAP Note 3437766 carries the current model list, token rates and deprecation dates), runs a fixed, non-reorderable module pipeline — templating, masking through SAP Data Privacy Integration, grounding, content filtering, then the model call — and retries down an ordered fallback list whose entries can each carry their own model and rules. It places @sap-ai-sdk/orchestration among the official JavaScript, Java and Python SDKs, and notes SAP's own LiteLLM provider as a way to put a different gateway in front of it.amishkush, published 2026-09-30
RAG on CDSUnmapped
Building agentic applications with SAP HANA CloudBuilding agentic applications with SAP HANA CloudA CAP application extended with semantic search and agent features on top of SAP HANA Cloud's vector engine and SAP AI Core, built in a hands-on workshop. The abstract names the parts, CAP, the vector engine and AI Core, and the two additions: semantic search, the retrieval half of retrieval-augmented generation, and LLM-supported agent capabilities inside the application, which is agent tooling. Which embedding model, which CAP runtime and how the agent calls its tools are not stated. A TechEd 2026 session (Thursday 29 October, Berlin), presented by Hui Li, Ritty Joseph, Shraddha Shetty and Tanuja Jadhav, written here from SAP's abstract; the recording is not yet published.
CAP in the age of AICAP in the age of AISeven live episodes of Hands-on SAP Dev in which DJ Adams works through CAP's AI features with the people who build them, each one a screen-share against a sample project. The first three are @cap-js/mcp: the @mcp annotation on a service, the describe, query and call tools, CQL as the query format, and what authorisation takes out of the tool list. From episode three the run moves to A2A and @cap-js/agents — human approval of an action, agents.md and skills, session persistence, telemetry and sub-agents — and the last two episodes are vector embeddings in CDS, local on SQLite and native on SAP HANA Cloud.published 2026-08-07
CAP in the age of AI #6 - vector embeddingsCAP in the age of AI #6 - vector embeddingsVector 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.published 2026-10-09
CAP in the age of AI #7 - vector embeddings wrap-upCAP in the age of AI #7 - vector embeddings wrap-upThe 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.published 2026-10-16
Document GroundingDocument GroundingDocument Grounding is a managed retrieval-augmented-generation service under the Generative AI Hub on BTP, which SAP's page on SAP AI Core places inside that service: it ingests documents from Amazon S3, SharePoint, SAP Document Management Service, SAP Work Zone or an SFTP server, and handles chunking, embedding and retrieval itself, refreshing content automatically when a source document changes. The page states this managed path is recommended for most enterprise scenarios because it covers the whole lifecycle end to end, and offers a separate Document Grounding Vector API for data that is already chunked and embedded, for cases that need finer control over chunking and metadata.
Generative AI on SAP BTPGenerative AI on SAP BTPThe reference shape for a generative AI application on BTP: a CAP backend, SAP HANA Cloud holding data and embeddings for similarity search through its vector engine, and the Generative AI Hub in SAP AI Core as the single access point to foundation models. It shows retrieval-augmented generation on that stack and names the CAP plugins and SDKs that connect the pieces, for both Cloud Foundry and Kyma.published 2025-09-02
Generative AI on SAP BTP
LLM integration changed in @cap-js/ai 1.0.0, 2026-04-28. Affects A reference.
HANA Cloud’s VECTOR EMBEDDING in CAP and Comparison with OpenAI EmbeddingHANA Cloud’s VECTOR EMBEDDING in CAP and Comparison with OpenAI EmbeddingTwo ways to produce the same embedding, run side by side: HANA Cloud's own VECTOR_EMBEDDING function against Azure OpenAI through the CAP LLM plugin. The CDS side is short — an element of type cds.Vector maps to REAL_VECTOR on deploy — so what remains is the comparison, which is the thing you cannot get from either product's documentation alone.lalitmohan, published 2025-04-09
RAG with SAP HANA Cloud Vector Engine, GenAI Hub & CAPRAG with SAP HANA Cloud Vector Engine, GenAI Hub & CAPThe end-to-end version: a CAP service exposing the vector engine and the AI hub behind a couple of endpoints, answering where a CodeJam is on a given date. It has aged in a way the author has marked in the page itself — the section on the CAP LLM plugin now carries "(Outdated)" in its own heading — so read the embedding preparation and the retrieval shape, and check the plugin part against the package.KevinR, published 2024-05-21
Using HANA Cloud’s "VECTOR_EMBEDDING" Function in CAPUsing HANA Cloud’s "VECTOR_EMBEDDING" Function in CAPEmbeddings generated inside the database rather than fetched from AI Core or an external model — a Q4 2024 HANA Cloud function, used from CAP. The shift it describes is where the embedding step lives, which changes what has to be deployed and what has to be called.published 2025-03-02
Tool governanceUnmapped
A Clearer View of Your SAP Integrations Under the New API PolicyA Clearer View of Your SAP Integrations Under the New API PolicyThe SAP API Policy Evidence Skill assesses one SAP interface or usage pattern at a time against SAP API Policy v.4.2026a, reading evidence from five MCP servers, among them servers for the Business Accelerator Hub and SAP Notes, mcp-sap-docs and a read-only ARC-1, and returns one of four labels with a confidence level, an evidence table, residual risk and questions for SAP. It gives no compliant or not compliant answer on purpose, because SAP's FAQ (Q49) declines to publish a binding decision matrix, and it sends legal, commercial and roadmap questions to SAP and lowers its confidence when a source is not connected. Four sample runs show the method, among them ODP-RFC extraction labelled likely not aligned under SAP Note 3255746 and the same API_SALES_ORDER_SRV assessed differently for an autonomous agent behind a custom gateway and for a Boomi middleware flow; the SAP Notes and Business Accelerator Hub servers read SAP sites through a browser login, which the post says to use at your own risk.published 2026-06-02
Agentic Engineering for SAP BTP ExtensionsAgentic Engineering for SAP BTP ExtensionsAn agent harness coordinates code generation across isolated Git worktrees, using a skills registry, SAP CAP MCP Server, Fiori MCP Server and UI5 Web Components MCP Server for development context. The diagram shows LiteLLM as a model proxy in front of SAP AI Core, while automated checks and review gate the generated changes. The worked scenario is CAP-based extensions on BTP, with specifications written before generation and reusable skills governed across teams.
MCP Servers are the New Z-TablesMCP Servers are the New Z-TablesA single CAP service exposed as three overlapping MCP servers tools, queried by the same prompt nineteen times, returned the same tool every time — evidence, the author argues, that tool selection rests on the resemblance between a prompt and a tool's description rather than on any binding a where-used list could enumerate before retiring it. It contrasts that setup with @cap-js/mcp, which exposes a whole service as three generic tools instead of one per operation, and quotes the adapter's own beta documentation admitting no rate limiting, audit logging, input validation or approval workflow, and no use as a gateway to SAP Application APIs. From there it names four small Tool governance practices it has adopted: an owner recorded in the tool's own metadata, logging every invocation, deprecating inside the description, and exposing fewer tools.published 2026-08-21
Third-Party MCP Server Access to SAP Solutions on BTPThird-Party MCP Server Access to SAP Solutions on BTPDescribes external MCP servers and custom servers on BTP, assigning their operators responsibility for authentication, scoped identity, API limits, logging and lifecycle. The permitted use remains conditional on the SAP API Policy, while SAP Integration Suite and Joule Studio are described as SAP-provided paths. Hosting a server on BTP does not automatically supply its governance controls.Dhawal Joshi, Harut Ter-Minasyan, Mirko Günther
Audit loggingSAP only
BTP Audit Log MCP Server: Security Monitoring with AI AssistantsBTP Audit Log MCP Server: Security Monitoring with AI AssistantsWouter 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.published 2026-03-13
CAP: The Road Ahead - Simplicity in an AI EraCAP: The Road Ahead - Simplicity in an AI EraDevtoberfest 2026 session CAP10, from the head of SAP's Cloud Application Programming Model: forty minutes of live building rather than slides, on the argument that the cheapest code in an AI project is code nobody has to generate. Claude Code builds an invoice-matching workspace from cds init onwards, and each step is one the framework answers rather than the agent: a 42-line domain model that @sap/cds serves as OData and Fiori elements with a status flow, data privacy and change-tracking annotations that produce audit log entries in the console and would reach the SAP Audit Log service once deployed, an imported S/4HANA supplier data product, and semantic matching from a local embedding model after @cap-js/ai is added. The last three steps are annotations: @mcp beside @odata turns the service into an MCP server that a second Claude session queries through @cap-js/mcp, an agent annotation adds the A2A protocol with an agent card and an audit log entry for the agent task, and a skill file gives the agent the matching policy.SAP Developers, published 2026-09-25
How to enable SAP Audit Log Viewer service to collect all Audit logs from BTP Services - Part 1How to enable SAP Audit Log Viewer service to collect all Audit logs from BTP Services - Part 1Walks through subscribing to the SAP Audit Log service's viewer app from the SAP BTP cockpit and creating a RoleCollection from the auditlog-management and auditlog-viewer role templates, assigned to a user or by a rule on the IDP's SAML assertion, to read audit logging events in a subaccount. The post's own update notes that a BTP release from 19 February 2026 removed the need for that role-assignment step. It also lists which Cloud Foundry services write audit log events, pointing to each service's own auditing page rather than detailing them here.Yogananda, published 2025-03-07
Implementing Custom Audit Logging in SAP CAP ApplicationsImplementing Custom Audit Logging in SAP CAP ApplicationsWhere the annotations stop. CAP logs personal-data operations automatically once a model is annotated; this is about the events that are not that — an unauthorised access attempt, a business action somebody wants a trail for — and what writing those yourself involves.gopalanand, published 2025-10-09
Integrate SAP Business Technology Platform audit logs with IBM Security QRadarIntegrate SAP Business Technology Platform audit logs with IBM Security QRadarWalks through pulling entries from the SAP Audit Log service for a Cloud Foundry subaccount, via its retrieval API and a service key downloaded from the SAP Authorization and Trust Management service, into IBM Security QRadar as a Universal Cloud REST API log source. A sample audit event, a data read event under audit.data-access, drives a custom QRadar DSM mapping event ID and category, then the walkthrough deletes a user from a Kyma role collection and shows the matching audit logging entry arrive in QRadar as an offense.TusharTrivedi12, published 2024-01-03
Integrating SAP Cloud Identity Services (Identity Authentication - IAS) with SAP Audit Log ViewerIntegrating SAP Cloud Identity Services (Identity Authentication - IAS) with SAP Audit Log ViewerWalks through wiring an Identity Authentication tenant of Cloud Identity Services into the SAP Audit Log service on SAP BTP, Cloud Foundry: from the tenant's Monitoring & Reporting tile, adding the target BTP subaccount's tenant ID and subdomain ties the two together, and after a 15-20 minute wait the resulting Audit Log Viewer link surfaces logs of personal-data changes and of successful and failed authentications. Logs are then filtered by date and keyword, each entry carrying its event category, event and object type, timestamp, and the user who performed the action.Yogananda, published 2025-03-23
Introducing the Cloud Application Programming Model (CAP)Introducing the Cloud Application Programming Model (CAP)SAP's own general-availability announcement for CAP, laid out as a Golden Path: a data model and service defined in CDS gets a generated service provider that serves metadata publishing and CRUD requests, fills in primary keys and audit data, and writes trace and audit logs without application code. The same CDS model carries annotations that translate to OData vocabularies and generate a Fiori elements app skeleton, which is how Fiori annotations work in CAP.Daniel7, published 2018-06-05
Nice patch SAP! Revisiting your SAP BTP security measures after AI Core vulnerability fixNice patch SAP! Revisiting your SAP BTP security measures after AI Core vulnerability fixWritten 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.published 2024-07-25
SAP BTP Audit log Enable and retrieve logsSAP BTP Audit log Enable and retrieve logsWalks through enabling and retrieving records from the SAP Audit Log service on SAP BTP's Cloud Foundry environment: the default oAuth2 service plan retains audit data for 90 days at no cost, while the premium plan adds a configurable retention period and lets an application write its own audit data. Covers the three subscription plans (premium, default for a subaccount, central for a global account) and the CLI steps to create a service instance and key, then retrieve records as JSON through the Auditlog Management Service's REST API using an OAuth2 client-credentials token in Postman.anikesh_jyotishi2, published 2024-07-12
AuthenticationSAP only
Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]The opening of a three-part series on reaching more than one S/4HANA system from one CAP application with the user's identity carried through. This part sets up the business problem; the propagation itself is in the parts that follow.mohit_bansal3, published 2022-11-25
CAP for nodejs安全的暴露接口练习CAP for nodejs安全的暴露接口练习Starting from the risk-management sample, the walkthrough adds an open ExternalAPI service beside the existing RiskService, then moves every security annotation into a separate service-auth.cds file: @requires: authenticated-user on one entity, role-scoped @restrict grants for RiskViewer and RiskManager on another. It tests the unprotected action locally with cds watch, calling it from Postman with the session cookie read out of SAP Business Application Studio's preview tab. It then deploys to BTP and reads Risks with a client-credentials OAuth token fetched from a service key of the cpapp-auth instance, after changing that entity's READ grant from RiskViewer to authenticated-user, which the post, citing capire's CDS-based Authorization page, describes as a grant for a technical user integrating systems rather than for access from a front end.ArthurYang, published 2024-12-10
Connect to Public Cloud API in Node.js via Authorisation CodeConnect to Public Cloud API in Node.js via Authorisation CodeThe authorisation code flow rather than client credentials, which is the harder half: a service key, an XSUAA instance bound to the CAP app, and a destination, with the author saying plainly that this was challenging and they hope it saves somebody the same time.Egan, published 2025-07-22
Effective from June 30th 2026 - XSUAA Deprecation of GET Method for OAuth Token RetrievalEffective from June 30th 2026 - XSUAA Deprecation of GET Method for OAuth Token RetrievalEffective June 30th 2026, the SAP Authorization and Trust Management service (XSUAA) deprecates the HTTP GET method for retrieving an OAuth access token from its /oauth/token endpoint, leaving only POST supported in line with RFC 6749. A client still requesting a token via GET with grant_type and credentials in the query string stops working after the cutover and must switch to a POST request with form-encoded body parameters.Yogananda, published 2026-06-14
Enabling Authorization Policies in SAP Cloud Identity Services - IAS with AMS/CAPEnabling Authorization Policies in SAP Cloud Identity Services - IAS with AMS/CAPAuthorization policies defined in Identity Authentication and consumed by a CAP application through AMS — the configuration half of the move away from XSUAA scopes, from the identity service's side rather than the application's.Yogananda, published 2024-12-27
Enabling Authorization Policies in SAP Cloud Identity Services - IAS with AMS/CAP
Authorization changed in CAP Java 3.7.1, 2025-01-30. Affects A recipe.
Evolving the identity lifecycle for an AI-first futureEvolving the identity lifecycle for an AI-first futureCloud Identity Services as the foundation for authentication, identity lifecycle management and access across SAP landscapes, and the agent identity concepts and SAP-managed identity and access management scenarios SAP says reduce operational effort. The edges are to the service and to the two concerns the abstract names it for, Authentication and Identity provisioning; the abstract names the agent identity concepts and does not say what they are. A TechEd 2026 session (Tuesday 27 October, Berlin), presented by Sonia Petrescu and Swetta Singh, written here from SAP's abstract; the recording is not yet published.
Execute [OAuth2 client credentials] protected REST request with SAP CAP ApplicationExecute [OAuth2 client credentials] protected REST request with SAP CAP ApplicationA recipe, and the author calls it that — package.json, a .cds and a handler — for calling a remote service protected by OAuth2 client credentials from a CAP application. Short, complete, and addressed to CAP developers rather than to BTP administrators.Lachmish, published 2022-04-27
Execute [OAuth2 client credentials] protected REST request with SAP CAP Application
Authentication changed in CAP Java 3.0.1, 2024-07-26. Affects A recipe.
How SAP secures enterprise AI agents with identity propagationHow SAP secures enterprise AI agents with identity propagationCloud Identity Services as the identity layer for AI agents as well as people: the abstract states that both are managed in one directory, that user context is propagated by token exchange, and that authorisation is enforced at every hop, so no agent holds back-end credentials. Agents from Microsoft, Google and partners take the same flow through the agent gateway. Token exchange across a hop is the authentication side and the per-hop check the authorisation side; what the agent gateway is, and whether it is a product, the abstract does not say. A TechEd 2026 session (Wednesday 28 October, Berlin), presented by Gunnar Kosche and Sebastian Ries, written here from SAP's abstract; the recording is not yet published.
How to Access SAP Cloud Logging Service Dashboards Using IAS SAML AuthenticationHow to Access SAP Cloud Logging Service Dashboards Using IAS SAML AuthenticationWalks through wiring SAML 2.0 single sign-on between SAP Cloud Identity Services (IAS) and SAP Cloud Logging so its OpenSearch dashboards accept IAS logins instead of a service key: creating the SAML application in IAS, editing the instance's saml parameters (admin_group, idp.metadata_url, idp.entity_id, sp.entity_id), setting the matching entity ID and endpoints on the IAS side, and mapping an IAS group to the all_access role through a groups attribute. It also shows how to read a 403 on the dashboard as SAML login succeeding while the group-to-role mapping is still missing.Umezuki, published 2025-12-30
Identity lifecycle and governance with SAP services and Microsoft EntraIdentity lifecycle and governance with SAP services and Microsoft EntraCloud Identity Services beside SAP Cloud Identity Access Governance and Microsoft Entra for one user lifecycle across SAP and third-party applications: the abstract states that SAP business roles can be included in Entra access packages, so that provisioning and governance run from Entra in a hybrid environment, which is the identity provisioning concern. Which SAP systems' roles, and over which protocol, is not stated. A TechEd 2026 session (Tuesday 27 October, Berlin), presented by Martin Raepple of Microsoft, Plamen Pavlov, Regine Schimmer and Swetta Singh, written here from SAP's abstract; the recording is not yet published.
Integrating and Extending JouleIntegrating and Extending JouleSAP's reference architecture for SAP Joule across SAP cloud applications: a request is checked against a Scenario Catalog of the applications' skills and a Knowledge Catalog answered by retrieval-augmented generation, combined with the user's roles and history, sent to an LLM available through the generative AI hub, and, where a Joule function is needed, turned into a call to the backend. Its identity page is the authentication path: each user sits in the Identity Directory of Cloud Identity Services with a Global User ID, Identity Provisioning synchronises role assignments into SAP Build Work Zone, whose navigation service decides which functions a user may call, and the Destination service exchanges the user's token to call a function in the user's name. Its extension page covers Joule Studio in SAP Build, where Joule skills automate rule-based tasks over APIs and AI agents plan and reason with models and document grounding from SAP AI Core, the ground agent tooling covers; a later Joule Studio page describes a managed Joule Studio Runtime on the SAP Business AI Platform, which has no entry here.published 2026-03-16
Integrating SAP Cloud Identity Services (Identity Authentication - IAS) with SAP Audit Log ViewerIntegrating SAP Cloud Identity Services (Identity Authentication - IAS) with SAP Audit Log ViewerWalks through wiring an Identity Authentication tenant of Cloud Identity Services into the SAP Audit Log service on SAP BTP, Cloud Foundry: from the tenant's Monitoring & Reporting tile, adding the target BTP subaccount's tenant ID and subdomain ties the two together, and after a 15-20 minute wait the resulting Audit Log Viewer link surfaces logs of personal-data changes and of successful and failed authentications. Logs are then filtered by date and keyword, each entry carrying its event category, event and object type, timestamp, and the user who performed the action.Yogananda, published 2025-03-23
Joule Studioがリリースされたので早速CAPアプリを自然言語で操作するカスタムスキルを構築してみたJoule Studioがリリースされたので早速CAPアプリを自然言語で操作するカスタムスキルを構築してみたA walkthrough of building a custom Joule Studio skill on a CAP bookshop app: cds add sample and cds add mta scaffold the project and its deployment descriptor, cds compile srv/ --to xsuaa generates the role template behind the @requires: 'admin' check on AdminService from the SAP Authorization and Trust Management service (XSUAA), and mbt build packages the app for deployment to the SAP BTP, Cloud Foundry Runtime. The skill reaches the deployed OData API through the SAP Destination service, configured with the OAuth2 Client Credentials grant using the client ID, secret and token endpoint from the app's XSUAA service key, so Joule answers a natural-language question about a book by its ID.takayuki_tanaka, published 2025-07-30
Nice patch SAP! Revisiting your SAP BTP security measures after AI Core vulnerability fixNice patch SAP! Revisiting your SAP BTP security measures after AI Core vulnerability fixWritten 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.published 2024-07-25
Part 3: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]Part 3: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]The final part, and the one with the most CAP in it — the service consuming the propagated destinations, and what the handler sees. Read the three together; the series is one piece.mohit_bansal3, published 2022-11-25
Part 3: Architecting Complex Real Life Business Scenario on SAP BTP with ease [ Targeting Multiple backend S/4HANA Systems utilizing Principal Propagation ]
Destinations changed in @sap-cloud-sdk/connectivity 4.0.0, 2025-03-04. Affects A recipe.
Road map: SAP Business AI Platform security and SAP Cloud Identity ServicesRoad map: SAP Business AI Platform security and SAP Cloud Identity ServicesThe road map for SAP Business AI Platform's security and compliance services, Cloud Identity Services and SAP Key Management Service among them, and the upcoming changes SAP files under security, governance and compliance. The edge is to Cloud Identity Services, the one named service with an entry here; SAP Key Management Service has none, and the abstract names no item of the road map. A TechEd 2026 session (Wednesday 28 October, Berlin), presented by Michael Friedrich and Sascha Vierlinger, written here from SAP's abstract; the recording is not yet published.
SAP Build Process Automation – Use Principal Propagation in Actions sample: CAP Node.js ServiceSAP Build Process Automation – Use Principal Propagation in Actions sample: CAP Node.js ServiceThe follow-up that carries the identity through. It takes the CAP service from the Actions tutorial and puts the calling user's identity behind it — an XSUAA instance, a trust configuration, an OAuthSAMLBearerAssertion destination, and the service changed to use that instance — so a step runs on behalf of a person rather than as the process.TJe, published 2023-06-22
SAP Build Process Automation – Use Principal Propagation in Actions sample: CAP Node.js Service
Workflow integration has changed twice since this was published, most recently in @cap-js/n8n 0.0.1, 2026-08-27. Affects A recipe.
SAP Business Technology Platform: Authorization and Trust Management ServiceSAP Business Technology Platform: Authorization and Trust Management ServiceWalks through how the SAP Authorization and Trust Management service secures a BTP application: scopes, attributes and role templates in the security descriptor, and the OAuth 2.0 resource-owner, client and resource-server roles it builds on. Covers the XSUAA microservice as the OAuth 2.0 authorization server bound to each application through its service broker, the signed JSON Web Token it issues after authentication, and the App Router's place in front of the resource apps as the gateway that starts authentication and checks for cross-site request forgery.SekhuteTK, published 2022-09-09
SAP CAP JWT Token Flow in codeSAP CAP JWT Token Flow in codeOne question, answered precisely: at what point does the JWT exist and how does it end up on req.headers.authorization in a CAP handler. XSUAA issues it and the approuter carries it, and the post follows it through both.sandeepmalhotra, published 2023-04-03
SAP CAP JWT Token Flow in code
Authentication changed in CAP Java 3.0.1, 2024-07-26. Affects Runnable code.
SAP Joule implementation in an S/4HANA private cloud 3 system landscapeSAP Joule implementation in an S/4HANA private cloud 3 system landscapeWalks through enabling SAP Joule across a three-system S/4HANA Private Cloud landscape (DEV, QAS, PRD) rather than the common single-system setup: separate BTP subaccounts for the non-production systems, a shared Cloud Identity Services tenant, and catalogs and roles transported from DEV through QAS to PRD. Covers single sign-on for Joule by setting Microsoft Entra ID as the corporate identity provider in SAP IAS, so authentication flows through Entra ID without the user existing in the IAS store, plus principal propagation through the Cloud Connector into the production backend.Arunrajj, published 2026-01-21
Secure Service Consumption Across HyperscalersSecure Service Consumption Across HyperscalersSAP's design for a workload on SAP BTP that calls Amazon Web Services or Google Cloud services with short-lived credentials instead of stored keys, which is the outbound side of authentication: the BTP application proving who it is to another cloud. On AWS it draws two paths, an ID token from Identity Authentication in Cloud Identity Services exchanged through AWS STS for an IAM role, or an X.509 certificate kept in SAP Destination service and presented to IAM Roles Anywhere; on Google Cloud only the token path, through Workload Identity Federation and an impersonated service account. It is drawn for those two hyperscalers only, and Microsoft Azure has no page in it.published 2025-05-14
Securing CAP Applications with SAP Cloud Identity Services and AMSSecuring CAP Applications with SAP Cloud Identity Services and AMSIdentity Authentication and AMS together as the current answer for a CAP application — authentication, single sign-on and the identity lifecycle on one side, policies on the other.gopalanand, published 2025-12-04
Third-Party MCP Server Access to SAP Solutions on BTPThird-Party MCP Server Access to SAP Solutions on BTPDescribes external MCP servers and custom servers on BTP, assigning their operators responsibility for authentication, scoped identity, API limits, logging and lifecycle. The permitted use remains conditional on the SAP API Policy, while SAP Integration Suite and Joule Studio are described as SAP-provided paths. Hosting a server on BTP does not automatically supply its governance controls.Dhawal Joshi, Harut Ter-Minasyan, Mirko Günther
Understanding security approaches in SAP CAP using XSUAA in node.js flavor and MTA.Understanding security approaches in SAP CAP using XSUAA in node.js flavor and MTA.The long version, from the MTA project outward: what the deployment descriptor has to contain, how the authentication flow actually runs, and then the npm modules doing the work — @sap/xssec and @sap/xsenv named and explained rather than left as dependencies. Old, and the module names have moved on, but the flow it draws has not.balbinosoares, published 2020-03-16
Understanding security approaches in SAP CAP using XSUAA in node.js flavor and MTA.
Authorization has changed twice since this was published, most recently in CAP Java 3.7.1, 2025-01-30. Affects A recipe, Runnable code.
Use Free Tier to Subscribe to SAP Document AI Basic UIUse Free Tier to Subscribe to SAP Document AI Basic UIEight steps from an entitled subaccount to the SAP Document AI basic UI open in a browser, and most of them are identity work rather than document work: getting a tenant for Cloud Identity Services, which the basic UI requires, activating the account and establishing trust with the subaccount, then subscribing, creating a user and assigning the Document_Information_Extraction_UI_Templates_Admin role collection. Using the UI to read a document is the subject of Use Machine Learning to Extract Information from Documents with the SAP Document AI Basic UI, which this tutorial names as what to read next.
What’s next for the core platform capabilities of SAP Business AI PlatformWhat’s next for the core platform capabilities of SAP Business AI PlatformA preview of the operations layer beneath SAP Business AI Platform: selected road map highlights across Joule Studio runtime, Cloud Identity Services and SAP Cloud Logging, on how enterprise AI is governed and run. The edges are to the two named services and to SAP Joule, whose agents the Joule Studio runtime runs; the abstract names the three areas and no highlight. A TechEd 2026 session (Tuesday 27 October, Berlin; also XP825V, virtual), presented by Andre Lamego and Jens Huesken, written here from SAP's abstract; the recording is not yet published.
Why SAP Cloud Identity Matters for SAP Task Center: It’s About Trust and Global User IDWhy SAP Cloud Identity Matters for SAP Task Center: It’s About Trust and Global User IDA step-by-step configuration walkthrough for wiring SAP Cloud Identity Services as the trust and user-correlation layer behind SAP Task Center: establishing Identity Authentication as the sole trusted identity provider for the BTP subaccount, and generating the Global User ID — carried in the token's user_uuid claim rather than the SAML name identifier — that Task Center uses to match logged-in users to their tasks. It also covers syncing that ID between Microsoft Entra ID, the Identity Directory and SAP S/4HANA through Identity Provisioning jobs, and the principal-propagation trust the cloud connector needs to pass it through to an on-premise task provider.ivelinakiryakov, published 2024-11-25
XSUAA Based Authentication - Using Managed ApprouterXSUAA Based Authentication - Using Managed ApprouterOne half of a pair published the same day, both starting from capire's list of authentication kinds and then going end to end on XSUAA. This is the managed approuter route, where the platform runs the router and the application supplies configuration rather than a module.rahul_rajagopal, published 2023-09-25
XSUAA Based Authentication - Using Managed Approuter
Authorization has changed twice since this was published, most recently in CAP Java 3.7.1, 2025-01-30. Affects A recipe.
AuthorizationSAP only
[Part - 1] Enrich CAP based Services with Behaviors using Annotations[Part - 1] Enrich CAP based Services with Behaviors using AnnotationsWalks through CDS annotations that add behaviour beyond CRUD: @readonly and @insertonly take away write, update or delete on an entity or element, each shown with the OData metadata it generates. @mandatory, @assert.unique, @assert.integrity, @assert.format and @assert.range then enforce input checks that @sap/cds runs on write, with the SQL or HANA constraint @assert.unique compiles to and the error code each rejection returns. It names @restrict and @requires but defers them, calling authorization too large a topic for this post.published 2023-01-28
Agentic AI on BTP: a Single Agent with LangGraphAgentic AI on BTP: a Single Agent with LangGraphA 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.published 2026-05-03
An approach to secure multiple integrated SAP CAP java applications with a common XSUAA service instanceAn approach to secure multiple integrated SAP CAP java applications with a common XSUAA service instanceOne XSUAA instance across several CAP Java applications that call each other, rather than one per application. Short, and written from inside SAP Labs as something the author tried — the value is the shape of the arrangement, not a walkthrough.sreanik_dhanyakumar2, published 2022-09-14
CAP for nodejs安全的暴露接口练习CAP for nodejs安全的暴露接口练习Starting from the risk-management sample, the walkthrough adds an open ExternalAPI service beside the existing RiskService, then moves every security annotation into a separate service-auth.cds file: @requires: authenticated-user on one entity, role-scoped @restrict grants for RiskViewer and RiskManager on another. It tests the unprotected action locally with cds watch, calling it from Postman with the session cookie read out of SAP Business Application Studio's preview tab. It then deploys to BTP and reads Risks with a client-credentials OAuth token fetched from a service key of the cpapp-auth instance, after changing that entity's READ grant from RiskViewer to authenticated-user, which the post, citing capire's CDS-based Authorization page, describes as a grant for a technical user integrating systems rather than for access from a front end.ArthurYang, published 2024-12-10
CAP-JAVA implementation for Authorization Management Service (AMS)CAP-JAVA implementation for Authorization Management Service (AMS)Short and deliberately narrow: the author defers the concepts to kevin_li's post and writes only the CAP Java part — the development flow, designing the authorization model, and assigning and checking a policy. Read the other one first; this is the half that touches the code.Harvey_Yao, published 2024-12-27
Dynamic authorisation with user attributes in SAP CAP and AMSDynamic authorisation with user attributes in SAP CAP and AMSThe same argument as the XSUAA-to-AMS piece, opened from a concrete failure: an acquisition puts 500 users on sales data restricted by division, and role-based access control answers it with Sales_Manager_EMEA, Sales_Manager_APAC and so on until the roles multiply past managing. Attribute-based authorisation replaces the set with one policy carrying a restriction, and the post walks through defining it in AMS against Cloud Identity Services. The clearest statement of role explosion among the three AMS pieces here.pedro_iranzo, published 2026-05-04
Effective from June 30th 2026 - XSUAA Deprecation of GET Method for OAuth Token RetrievalEffective from June 30th 2026 - XSUAA Deprecation of GET Method for OAuth Token RetrievalEffective June 30th 2026, the SAP Authorization and Trust Management service (XSUAA) deprecates the HTTP GET method for retrieving an OAuth access token from its /oauth/token endpoint, leaving only POST supported in line with RFC 6749. A client still requesting a token via GET with grant_type and credentials in the query string stops working after the cutover and must switch to a POST request with form-encoded body parameters.Yogananda, published 2026-06-14
Enabling Authorization Policies in SAP Cloud Identity Services - IAS with AMS/CAPEnabling Authorization Policies in SAP Cloud Identity Services - IAS with AMS/CAPAuthorization policies defined in Identity Authentication and consumed by a CAP application through AMS — the configuration half of the move away from XSUAA scopes, from the identity service's side rather than the application's.Yogananda, published 2024-12-27
Enabling Authorization Policies in SAP Cloud Identity Services - IAS with AMS/CAP
Authorization changed in CAP Java 3.7.1, 2025-01-30. Affects A recipe.
From XSUAA to AMS: Architecting S4HANA CAP Extensions with Policy-Based AuthorizationFrom XSUAA to AMS: Architecting S4HANA CAP Extensions with Policy-Based AuthorizationWhy scope-based authorization runs out, argued from enterprise extension work rather than from the documentation: XSUAA handles roles well, but real requirements are business-context restrictions — country, company code, organisational unit — and expressing those as scopes does not scale. The migration to policy-based authorization is presented as an architectural move for S/4HANA extensions rather than a configuration change.Avinash Vaidya, published 2026-05-27
How SAP secures enterprise AI agents with identity propagationHow SAP secures enterprise AI agents with identity propagationCloud Identity Services as the identity layer for AI agents as well as people: the abstract states that both are managed in one directory, that user context is propagated by token exchange, and that authorisation is enforced at every hop, so no agent holds back-end credentials. Agents from Microsoft, Google and partners take the same flow through the agent gateway. Token exchange across a hop is the authentication side and the per-hop check the authorisation side; what the agent gateway is, and whether it is a product, the abstract does not say. A TechEd 2026 session (Wednesday 28 October, Berlin), presented by Gunnar Kosche and Sebastian Ries, written here from SAP's abstract; the recording is not yet published.
How to get authenticated user information with CAP in three different ways – Using the XSUAA APIHow to get authenticated user information with CAP in three different ways – Using the XSUAA APIThe third of three approaches the author sets out, and the one that returns the most: going to the XSUAA API directly rather than reading what CAP already put on the request. Depends on an earlier post for the project setup, so it starts mid-stream on purpose.ale_biagi, published 2022-07-18
How to Restrict CRUD Operations in SAP CAPM Using @Capabilities, @readonly and Test APIs with .httpHow to Restrict CRUD Operations in SAP CAPM Using @Capabilities, @readonly and Test APIs with .httpEntities are exposed with full CRUD by default, and this is how to take operations away again — @Capabilities for Insert, Update and Delete individually, @readonly for the blunt version. Tested with .http files rather than a UI, which keeps the check on the service.DeepaRagho, published 2026-05-22
Insights of Cloud SDK, CAP, XSUAA, SSH and other BTP topics from 2021Insights of Cloud SDK, CAP, XSUAA, SSH and other BTP topics from 2021A year in review, and one section in it is the reason it is here: "CAP isn't the solution for everything" — the author's point being that a pure UI5 or Fiori application does not need a CAP service wrapped around it, and that an approuter or the HTML5 Application Repository may be the better answer. The XSUAA section is a complaint about complexity rather than a guide, which is also worth having on the record.dr_vup, published 2021-12-30
Joule Studioがリリースされたので早速CAPアプリを自然言語で操作するカスタムスキルを構築してみたJoule Studioがリリースされたので早速CAPアプリを自然言語で操作するカスタムスキルを構築してみたA walkthrough of building a custom Joule Studio skill on a CAP bookshop app: cds add sample and cds add mta scaffold the project and its deployment descriptor, cds compile srv/ --to xsuaa generates the role template behind the @requires: 'admin' check on AdminService from the SAP Authorization and Trust Management service (XSUAA), and mbt build packages the app for deployment to the SAP BTP, Cloud Foundry Runtime. The skill reaches the deployed OData API through the SAP Destination service, configured with the OAuth2 Client Credentials grant using the client ID, secret and token endpoint from the app's XSUAA service key, so Joule answers a natural-language question about a book by its ID.takayuki_tanaka, published 2025-07-30
Qualtrics integration with domain based authorization in CAP project on HANA cloudQualtrics integration with domain based authorization in CAP project on HANA cloudSurveys pulled from Qualtrics into a CAP application in real time, with the twist in the title: authorisation decided by the user's domain rather than by a role collection. A pattern that comes up whenever the audience is wider than the tenant.former_member69893, published 2022-09-30
Qualtrics integration with domain based authorization in CAP project on HANA cloud
Authorization has changed twice since this was published, most recently in CAP Java 3.7.1, 2025-01-30. Affects Runnable code.
SAP BTP XSUAA Security Configuration Comparison: Attribute-Based vs. Authority-Based ApproachesSAP BTP XSUAA Security Configuration Comparison: Attribute-Based vs. Authority-Based ApproachesTwo shapes of the same xs-security.json set against each other, with the resulting JWT printed for both. The consequence for application code is what makes it worth reading: under the attribute-based configuration a CAP handler reads req.user.attr.department, and under the authority-based one it does not, because the attribute is not there. Carries a migration guide between the two.rajeshkputumbaka, published 2026-02-18
SAP Business Technology Platform: Authorization and Trust Management ServiceSAP Business Technology Platform: Authorization and Trust Management ServiceWalks through how the SAP Authorization and Trust Management service secures a BTP application: scopes, attributes and role templates in the security descriptor, and the OAuth 2.0 resource-owner, client and resource-server roles it builds on. Covers the XSUAA microservice as the OAuth 2.0 authorization server bound to each application through its service broker, the signed JSON Web Token it issues after authentication, and the App Router's place in front of the resource apps as the gateway that starts authentication and checks for cross-site request forgery.SekhuteTK, published 2022-09-09
SAP CAP(Cloud Application Programming)开发框架概述SAP CAP(Cloud Application Programming)开发框架概述A Chinese-language walkthrough of CAP built mainly from CAPire's own "About CAP" page: CDS entities, associations, compositions and aspects for data modelling, with an extend Books with @restrict: [{ grant:'WRITE', to:'admin' }] aspect as its authorization example; CQL and CQN queries shown against both a local service and OData's $select/$expand; and the service-and-event model — this.on, this.emit, srv.on — that carries CAP's async processing. It closes with the author's own setup: installing @sap/cds-dk, scaffolding a bookshop project with cds init, and running it with cds watch against local SQLite, mocked authentication and file-based messaging standing in for HANA Cloud, IAS and Kafka.ArthurYang, published 2024-01-07
SAP Job Scheduling Service + Cloud Application Programming Model application (CAP) + SAP Authorization and Trust Management Service (XSUAA)SAP Job Scheduling Service + Cloud Application Programming Model application (CAP) + SAP Authorization and Trust Management Service (XSUAA)Calling an unsecured endpoint on a schedule is trivial; this is the same thing once the endpoint is protected. The interesting part is the caller — the Job Scheduling Service is not a person, so CAP's pseudo-roles are where the post spends its time, and $XSSERVICENAME has to match the scheduler's own instance name.former_member412792, published 2022-12-12
Securing a CAP Node.js App with SAP AMS on BTP Cloud FoundrySecuring a CAP Node.js App with SAP AMS on BTP Cloud FoundryThe end-to-end version: a CAP Node.js project from cds init, role-based access through the Authorization Management Service and Identity Authentication Service, and an MTA deployment to Cloud Foundry. The prerequisite list is the useful part to read first — HANA Cloud, an IAS tenant and an AMS entitlement — because it says plainly what this path costs before you are three steps into it.Jacky Liu, published 2026-07-17
Securing CAP Applications with SAP Cloud Identity Services and AMSSecuring CAP Applications with SAP Cloud Identity Services and AMSIdentity Authentication and AMS together as the current answer for a CAP application — authentication, single sign-on and the identity lifecycle on one side, policies on the other.gopalanand, published 2025-12-04
Securing SAP CAP Applications: XSUAA, Roles, and Authorization Best PracticesSecuring SAP CAP Applications: XSUAA, Roles, and Authorization Best PracticesWalks through securing a CAP service end to end: declaring scopes and role templates in xs-security.json for the SAP Authorization and Trust Management service (XSUAA), restricting CDS service definitions with @restrict per role, and dropping into handler code where a rule needs custom logic, with a @sap/cds Node.js example that tests roles through req.user.is and a Java one that tests scopes through hasScope. It closes in the BTP cockpit, where a role collection is assigned to users so that their JWT carries the scopes those checks read.Soumya-Pirlamarla, published 2025-07-14
Understanding security approaches in SAP CAP using XSUAA in node.js flavor and MTA.Understanding security approaches in SAP CAP using XSUAA in node.js flavor and MTA.The long version, from the MTA project outward: what the deployment descriptor has to contain, how the authentication flow actually runs, and then the npm modules doing the work — @sap/xssec and @sap/xsenv named and explained rather than left as dependencies. Old, and the module names have moved on, but the flow it draws has not.balbinosoares, published 2020-03-16
Understanding security approaches in SAP CAP using XSUAA in node.js flavor and MTA.
Authorization has changed twice since this was published, most recently in CAP Java 3.7.1, 2025-01-30. Affects A recipe, Runnable code.
Useful CAP CDS and Fiori Commands to Accelerate Development and DeploymentUseful CAP CDS and Fiori Commands to Accelerate Development and DeploymentA command-by-command walkthrough of @sap/cds-dk's cds add and fiori add generators: cds add xsuaa writes an XSUAA security configuration from the CDS model's authorization annotations, and cds add hana together with cds deploy --to hana switches persistence from the default SQLite database to SAP HANA Cloud. cds add mta and fiori add deploy-config, from @sap/generator-fiori, build the Cloud Foundry deployment descriptor together, adding a destination-service block and an xs-app.json that routes the Fiori app's calls through a named destination.TiaXu, published 2022-10-19
Why developers should care about credential-types for xsuaa?Why developers should care about credential-types for xsuaa?Rotating secrets, argued from a habit rather than a feature: the author names the practice implicit in many beginner tutorials — lifting a secret out of a binding to use it elsewhere — and notes CAP has features that make it unnecessary in development. Then the three credential types side by side, configured on a CAP application's uaa resource in mta.yaml and through a deployment extension.former_member2839, published 2022-07-05
Why developers should care about credential-types for xsuaa?
Authorization has changed twice since this was published, most recently in CAP Java 3.7.1, 2025-01-30. Affects A recipe, Runnable code.
XSUAA Based Authentication - Using Managed ApprouterXSUAA Based Authentication - Using Managed ApprouterOne half of a pair published the same day, both starting from capire's list of authentication kinds and then going end to end on XSUAA. This is the managed approuter route, where the platform runs the router and the application supplies configuration rather than a module.rahul_rajagopal, published 2023-09-25
XSUAA Based Authentication - Using Managed Approuter
Authorization has changed twice since this was published, most recently in CAP Java 3.7.1, 2025-01-30. Affects A recipe.
XSUAA Local TestingXSUAA Local TestingAdding XSUAA to a CAP project two ways, and then the part that is usually missing: getting the authorisation to behave on a laptop rather than only after deployment. The default authentication mechanism is the easy half; testing it without a landscape is the reason this exists.ManasaManu, published 2024-10-17
XSUAA Local Testing
Authorization has changed twice since this was published, most recently in CAP Java 3.7.1, 2025-01-30. Affects A recipe, Runnable code.
Change trackingSAP only
BTP CAP : Custom plugin to separate generic change log capture logicBTP CAP : Custom plugin to separate generic change log capture logicWalks through building a custom [CAP](ecosystem:cap) plugin that centralises change-log capture: on cds.once('served') it collects entities annotated @audit, then hooks srv.before('UPDATE') to read the existing record, diff it field by field against the incoming payload, and record old/new values with the user and timestamp. It also documents a cds build failure packaging the plugin's own directory into gen/srv for MTA deployment, fixed by adding it as a copyfiles build-parameter step in mta.yaml.sreehari_vpillai, published 2023-05-10
CAP: The Road Ahead - Simplicity in an AI EraCAP: The Road Ahead - Simplicity in an AI EraDevtoberfest 2026 session CAP10, from the head of SAP's Cloud Application Programming Model: forty minutes of live building rather than slides, on the argument that the cheapest code in an AI project is code nobody has to generate. Claude Code builds an invoice-matching workspace from cds init onwards, and each step is one the framework answers rather than the agent: a 42-line domain model that @sap/cds serves as OData and Fiori elements with a status flow, data privacy and change-tracking annotations that produce audit log entries in the console and would reach the SAP Audit Log service once deployed, an imported S/4HANA supplier data product, and semantic matching from a local embedding model after @cap-js/ai is added. The last three steps are annotations: @mcp beside @odata turns the service into an MCP server that a second Claude session queries through @cap-js/mcp, an agent annotation adds the A2A protocol with an agent card and an audit log entry for the agent task, and a skill file gives the agent the matching policy.SAP Developers, published 2026-09-25
Open Sourcing CAP – how to learn more or get involvedOpen Sourcing CAP – how to learn more or get involvedA roundup of CAP's open-sourcing, begun at TechEd the year before, pointing to a webinar recording, a podcast episode and reCAP 2023 talks for background. Among the components it names are a feature toggle library giving Node.js CAP apps live-updatable toggles backed by Redis, a new pluggable database layer with SQLite and PostgreSQL implementations plus a generic SQL layer, and a change tracking component that builds a change history for data from CDS models.Fempel, published 2023-10-02
Data privacyUnmapped
#SAPCAP: Win Customer Trust using Data Privacy and Protection Services on BTP - Part 1#SAPCAP: Win Customer Trust using Data Privacy and Protection Services on BTP - Part 1First of a three-part series on designing a CAP application on BTP that uses the platform's data privacy services, and this part is the vocabulary before any of it: personal data, the rights a data subject has under GDPR, and the data controller and processor distinction, worked through an order-confirmation SMS example. It names four BTP services: SAP Personal Data Manager, SAP Data Retention Manager, SAP Data Privacy Integration and SAP Audit Log service. Only the first is described, as a service running in the Cloud Foundry environment that finds data subjects across one or more applications and services, makes requests on an individual's behalf about their personal information and forwards them for handling, and notifies individuals which of their personal information is being used or sends them a copy of their record by email; the CAP-side annotations and PDM's own application features follow in Part 2 and Part 3.Ajit_K_Panda, published 2023-03-18
#SAPCAP: Win Customer Trust using Data Privacy and Protection Services on BTP - Part 2#SAPCAP: Win Customer Trust using Data Privacy and Protection Services on BTP - Part 2Walks through wiring a CAP service to SAP's Personal Data Manager (PDM) on BTP: entity, key and field-level @PersonalData annotations that mark data subjects and personal fields, the @PersonalData.IsPotentiallyPersonal / IsPotentiallySensitive distinction that drives audit logging, and the @Communication.Contact annotation PDM needs to search for a data subject. Covers the xsuaa trust arrangement and service binding that let the standalone PDM application call back into the CAP service to read and manage that data. Second of a three-part series; the annotation model it demonstrates is CAP's own mechanism for data privacy compliance, exercised against a sample 'Game Shop' application.Ajit_K_Panda, published 2023-03-18
#SAPCAP: Win Customer Trust using Data Privacy and Protection Services on BTP - Part 3#SAPCAP: Win Customer Trust using Data Privacy and Protection Services on BTP - Part 3Third of a three-part series, this covers the UI side of SAP's Personal Data Manager (PDM) once it is subscribed and wired to a CAP application: a Customer Service Representative searches for a data subject, views the personal data the application's annotations expose, and requests correction, deletion or export on their behalf, while an Operators Clerk processes those requests through to completion. PDM stores none of the personal data itself, only the requests and access logs, which an administrator downloads through the separate Data Transport app. It builds on the annotation model the first two parts introduce, so what it demonstrates is PDM's own delivered UI rather than anything a CAP application must build itself.Ajit_K_Panda, published 2023-03-18
Elevating Data Privacy in SAP CAP based GenAI Applications with CAP LLM PluginElevating Data Privacy in SAP CAP based GenAI Applications with CAP LLM PluginThe question underneath the enthusiasm: what leaves your landscape when a prompt goes to a model. The plugin's answer is to anonymise the sensitive fields through HANA before the prompt is sent, and this is the post that explains why that is the design rather than an option.AkashAmarendra, published 2024-02-02
Input validationSAP only
[Part - 1] Enrich CAP based Services with Behaviors using Annotations[Part - 1] Enrich CAP based Services with Behaviors using AnnotationsWalks through CDS annotations that add behaviour beyond CRUD: @readonly and @insertonly take away write, update or delete on an entity or element, each shown with the OData metadata it generates. @mandatory, @assert.unique, @assert.integrity, @assert.format and @assert.range then enforce input checks that @sap/cds runs on write, with the SQL or HANA constraint @assert.unique compiles to and the error code each rejection returns. It names @restrict and @requires but defers them, calling authorization too large a topic for this post.published 2023-01-28
#CAP-TechBytes Input Validation#CAP-TechBytes Input ValidationThe annotations one at a time — @mandatory, @assert.unique, @assert.range including the enum form, @assert.format — each with what it produces. Ends on error handling, which is the part that decides whether any of it is usable from a UI.Thajunniza, published 2023-07-07
CAPVAL: A project is bornCAPVAL: A project is bornThis 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.published 2024-08-26
Declarative Programming in CAP: Less Code, More ValueDeclarative Programming in CAP: Less Code, More ValueAn argument for annotations over handlers, made from the case where it is most obvious: repetitive validation logic that could be declared instead of written. Describes what you want rather than how to get it, and lets the runtime decide the how.published 2026-02-05
Everything new: Try out the latest features in CAPEverything new: Try out the latest features in CAPCAP (@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.
Extend SAP Cloud Application Programming Model(CAP) Validations with the CAPVAL PluginExtend SAP Cloud Application Programming Model(CAP) Validations with the CAPVAL PluginThe complaint first: the built-in annotations are good for data integrity and poor at telling the user what went wrong, and there is no way to reuse a rule. capval, the plugin the post announces, adds @validation.message alongside the standard annotations rather than replacing them, and @validation.handler for a check written as a class. Published in January 2024, before the 1.2.0 line the README now pairs with @sap/cds 8.0.0 and above; the two annotations it shows are the two the README still documents.published 2024-01-09
Learn how to define constraints declaratively in your CDS modelLearn how to define constraints declaratively in your CDS modelConstraints expressed in the model rather than checked in a handler — the distinction the atlas draws between input validation the framework enforces and validation somebody writes.SAP
Malware scanningSAP only
CAP Foundry: Engineering SAP CAP Applications from Business Intent with Guardrailed AICAP Foundry: Engineering SAP CAP Applications from Business Intent with Guardrailed AICAP Foundry is a prototype that generates a CAP Node.js project with SAP Fiori elements from a written business requirement, discovering the actual data shape from a chosen source — SQLite, a configured SAP HANA HDI container, offline EDMX, live OData through the SAP Destination service, or approved SAP BTP ABAP objects — instead of inventing one. The generated application can carry a Fiori draft lifecycle with optimistic concurrency via ETags and annotation-driven Fiori elements list and object screens, localized independently of the underlying service contract. Attachments can be added with upload, download and delete, gated on a malware-scan status, and the generated project still has to compile, build and pass its generated tests before the run is accepted.Shahid, published 2026-08-20