SampleSampletypeA worked example you read or clone. Evidence: it demonstrates, it never provides.See every one →What this type is →by SAPby SAPoriginPublished by SAP itself. A visible facet, never an input to a reading — a dormant official plugin reads exactly like a dormant independent one.See every one →Starting point

SAP-samples/btp-secure-development

A hands-on OWASP Top 10 workshop that exploits and then fixes security flaws in a CAP Node.js application, covering broken access control, SQL injection and audit logging for sensitive data.

Each exercise follows the same structure: overview, vulnerable code, exploitation, remediation, then verification, applied to one vulnerability from the OWASP Top 10 list in a CAP Node.js application. The exercises published so far cover broken access control (horizontal and vertical privilege escalation), SQL injection, and audit logging for sensitive-data access in local development, fixed using SAP BTP's built-in security services.

Facts

Last pushLicenceApache-2.0

Where it sits

Lives in
Demonstrates
AuthorizationCAPAuthorizationcapabilityDeciding who may read or change what, at service, entity and instance level — role checks, forwarded user context, and restrictions evaluated as query filters rather than after the fact.Audit loggingCAPAudit loggingcapabilityRecording who touched personal or sensitive data, in a form an auditor accepts, without hand-writing it in every handler. It is often confused with application logging, which records what the code did rather than who accessed what.
Flavors

Who is behind it

SAP SamplesSAP SamplesOrganisationMaintains this
In the atlas: maintains 222
@SAP-samples
maintainerAbdelkaderDePersonContributes to this
In the atlas: contributes to 2
@AbdelkaderDe
chcohrsPersonContributes to this
In the atlas: contributes to 5
@chcohrs
jadolfPersonContributes to this
In the atlas: contributes to 5
@jadolf
Abdelkader AbdelazizPersonContributes to this
In the atlas: contributes to 2
@Kaderde
4 contributors

What it declares

Every artifact

Type
Sample
Origin
By SAP

As a sample

Form
Workshop or CodeJam material

Connections2

SAP-samples/btp-secure-development connectionsSAP-samples/btp-secure-developmentPROVIDES→ demonstrates2demonstrates authoredAudit loggingdemonstrates authoredAuthorization

ArchitectureBetaRead from the sample's deployment descriptor. Some of the connections it states are not drawn yet.

as 2 deployment descriptors state it at 487002d, read
incident-managementexercises/ex3/ex3.2/mta.yaml
SAP BTP, Cloud Foundry Runtimeincident-managementmta.yaml, module incident-management-destinations, requires srv-apisrv-apimta.yaml, module incident-management-app-deployer, requires srv-apisrv-apiincident-management-srv, nodejsincident-management-…incident-management-destinations, com.sap.application.contentincident-management-…incident-management-app-deployer, com.sap.application.contentincident-management-…incident-management-db-deployer, hdbincident-management-…incident-management-ui-deployer, com.sap.application.contentincident-management-…incidentmanagementincidents, html5incidentmanagementin…SAP Destination service, destination, liteSAP Destinationservicehana, hana, hdi-sharedhanaSAP HTML5 Application Repository service for SAP BTP, html5-apps-repo, app-hostSAP HTML5ApplicationRepository servicefor SAP BTPSAP HTML5 Application Repository service for SAP BTP, html5-apps-repo, app-runtimeSAP HTML5ApplicationRepository servicefor SAP BTPSAP Authorization and Trust Management service, xsuaa, applicationSAP Authorizationand TrustManagement serviceSAP Audit Log service, auditlog, standardSAP Audit Logservice
SAPnot SAP's, or the project's ownstated in the document

Bound, and not drawn

Bound in the descriptor, not joined to an entry

hana

SAP BTP, Cloud Foundry Runtimeincident-managementmta.yaml, module incident-management-srv, requires incident-management-authbinding, HTTP, outboundmta.yaml, module incident-management-destinations, requires srv-apisrv-apimta.yaml, module incident-management-app-deployer, requires srv-apisrv-apiSAP Authorization and Trust Management service, xsuaa, applicationSAP Authorizationand TrustManagement serviceincident-management-srv, nodejsincident-management-…incident-management-destinations, com.sap.application.contentincident-management-…incident-management-app-deployer, com.sap.application.contentincident-management-…incident-management-db-deployer, hdbincident-management-…incident-management-ui-deployer, com.sap.application.contentincident-management-…incidentmanagementincidents, html5incidentmanagementin…SAP Destination service, destination, liteSAP Destinationservicehana, hana, hdi-sharedhanaSAP HTML5 Application Repository service for SAP BTP, html5-apps-repo, app-hostSAP HTML5ApplicationRepository servicefor SAP BTPSAP HTML5 Application Repository service for SAP BTP, html5-apps-repo, app-runtimeSAP HTML5ApplicationRepository servicefor SAP BTP
SAPnot SAP's, or the project's ownauthenticationstated in the document

Bound, and not drawn

Documented, with no instance in the document

Bound in the descriptor, not joined to an entry

hana

README

quoted from SAP-samples/btp-secure-development under Apache-2.0, read
SAP-samples/btp-secure-development/README.mdOn GitHub

Developing Secure Solutions With SAP BTP: Proven Techniques For The Real World

REUSE status

📝Description

This repository contains the material for the workshop called "Developing Secure Solutions With SAP BTP: Proven Techniques For The Real World". Try it out.

🔎 Overview

Welcome to this hands-on workshop dedicated to embedding security into your SAP BTP applications. In an era where data breaches and cyber threats are constant, building secure software is not an option - it's a requirement. This workshop is designed for developers working with the SAP Cloud Application Programming Model (CAP) and Node.js.

By completing the exercises, you will gain the practical skills to identify and mitigate common security risks as defined by the OWASP Top 10 Vulnerabilities.

Top 10 OWASP Vulnerabilities
Top 10 OWASP Vulnerabilities

🎯 Learning Objectives
  • Identify and Mitigate a critical OWASP Top 10 vulnerability in a real-world scenario.
  • Leverage the SAP Cloud Application Programming Model (CAP) for secure, cloud-native development.
  • Implement SAP BTP's comprehensive, built-in security services to protect your data and business logic.
  • Validate the effectiveness of security fixes through practical testing.
📋 Requirements
  • Some experience with Node.js and GitHub will be helpful.
🔧 Prerequisites

Please complete the following setup before the workshop:

💡 Tip:

  • Some exercises require switching between user accounts. Use an Incognito (Private) browser window to avoid authentication conflicts.
  • This workshop was tested with the Edge web browser. For a better experience, we recommend using Edge.

💻Exercises

Every exercise module is a self-contained lab focused on a specific vulnerability. All modules adhere to the following standard structure:

  • 📖 1. Overview: A high-level description of the vulnerability, its impact, and why it's a security risk.

  • 🚨 2. Vulnerable Code: A snippet of code containing the specific security flaw. We'll analyze why it's insecure.

  • 💥 3. Exploitation: A step-by-step guide on how to exploit the vulnerability, demonstrating its real-world impact.

  • 🛡️ 4. Remediation: The corrected version of the code that patches the vulnerability, along with an explanation of the fix.

  • ✅ 5. Verification: A simple procedure to confirm that the patch has successfully mitigated the vulnerability and the exploit no longer works.

  • 📌 6. Summary: A practical recap that consolidates the exercise outcomes with actionable takeaways.

  • 💡In step 4, you will replace the vulnerable version of the code with a corrected version. In most cases you will have to open the corrected file and copy the full content into the development environment. If you only copy the code snippet explaining the fixes, your application won't work. To copy the content of the file, use the button "Copy raw file" in the toolbar above the file content.

This structure is designed to help you understand a vulnerability from an attacker's perspective and a defender's, see how it can impact a CAP application, and learn actionable steps to mitigate it with SAP BTP best practices.

Known Issues

No known issues.

🤝 How to Get Support

Live support will be available from facilitators during the event.

🕐 Outside the Workshop
  • Found a bug or have a question?
    Open an issue in this repository.

  • Looking for broader support?
    Ask a question in SAP Community.

    💡 Tip: When creating issues, please include details like your environment (Node.js version, OS), steps to reproduce the issue, and screenshots if applicable. This helps us provide faster, more accurate support!

Contributing

If you wish to contribute code, offer fixes or improvements, please send a pull request. Due to legal reasons, contributors will be asked to accept a DCO when they create the first pull request to this project. This happens in an automated fashion during the submission process. SAP uses the standard DCO text of the Linux Foundation.

License

Copyright (c) 2026 SAP SE or an SAP affiliate company. All rights reserved. This project is licensed under the Apache Software License, version 2.0 except as noted otherwise in the LICENSE file.

Apache-2.0, read

History

Latest

v1.0.1

Notes

This release is intended to provide a hands-on experience for participants to explore and expand upon during the workshop. It serves as a starting point for building a secure incident management solution, with room for customization and enhancement as the workshop progresses. Use this starter kit as your base and get ready to dive into the world of secure incident management!

Details

Sources3
Added by handdiscovered herechecked
github.com/SAP-samples/btp-secure-developmenttree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
discovered viaAdded by hand
first seen in the atlas
ecosystem and domaincap, security-and-compliance
Flavors1
Node.js
“This workshop is designed for developers working with the SAP Cloud Application Programming Model (CAP) and Node.js.” — SAP-samples/btp-secure-development — READMEchecked
Contributors4

From the repository’s contributor list, .

History in the atlas1
  1. First seen.
For your agent
Ref
artifact:sap-samples-btp-secure-development
JSON
/artifacts/sap-samples-btp-secure-development.json
MCP
Connecting an agent