/kyma-runtime-extension-samples

This project contains sample applications for building extensions and microservices on SAP BTP, Kyma runtime.

Primary LanguageJavaScriptApache License 2.0Apache-2.0

SAP BTP, Kyma Runtime samples

REUSE status

This project contains sample applications for building extensions using lambdas and microservices on SAP BTP, Kyma runtime.

The samples are implemented in multiple languages and demonstrate various Kyma runtime features and use case scenarios. Developers should be able to refer to these samples and implement their own business scenarios.

kyma-runtime

Requirements

Running various samples requires access to the Kyma runtime. There are also other sample-specific requirements that you can find in the Prerequisites section of each sample. An overview of prerequisites is available in the prerequisites directory.

Samples

🚀 Jumpstart your Kyma journey by using these samples to build event and api based extensions in your favorite technology. We have grouped the samples focusing on their content "center of gravity". But maybe there is more in there, so it is always worth to take a look at all of them 😎

In case you are using Visual Studio Code you can open each of the samples as a dedicated workspace. You find the corresponding file in the workspaces directory

SAP TechEd

Year Repository Description References
2021 DEV261 - Build Extensions with SAP BTP, Kyma Runtime This is a full setup including many other SAP BTP Services and a CI/CD setup with the respective SAP BTP service. Recording

Sample Extensions

Name Description References
Java-based extension with API exposed via Microgateway This sample demonstrates how to build and deploy a Java-based microservice as an extension and expose the API -
Micronaut based extension with API exposed via Microgateway This sample demonstrates how to build and deploy a Micronaut microservice as an extension and expose the API -
Java-based microservice as an Event Trigger using CloudEvents SDK This sample demonstrates how to build and deploy a Java-based microservice as an Event Trigger using the CloudEvents SDK -
Scala AKKA HTTP based extesnsion with API exposed via Microgateway This sample demonstrates how to build and deploy a Scala Based Akka-HTTP microservice as an extension and expose the API -
Sample deploying a websocket based extension on Kyma This sample demonstrates using websockets with Kyma when building extensions and applications -
ASP.NET-based extension with API exposed via Microgateway This sample demonstrates how to build and deploy an ASP.NET-based microservice as an extension and expose the API -
ASP.NET-based (.NET 6.0) extension with Minimal API exposed via Microgateway This sample demonstrates how to build and deploy an ASP.NET Core-based microservice as an extension leveraging the minimal web API functionality and exposing the API -

CX Extensions

Name Description Blog Post
C4C UI extensibility This sample shows a Cloud for Customer extension including an Angular UI -
Sample SAP Customer Data Cloud Extension This example includes a Kyma serverless function as cdc-extension exposed as an SAP Customer Data Cloud Extension endpoint Post
Sample SAP Customer Data Cloud Webhook This example includes a Kyma serverless function as cdc-subscription-webhook exposed as an SAP Customer Data Cloud Webhook endpoint -
Sample SAP Customer Data Platform Extension This example includes a Kyma Serverless Function as cdp-extension exposed as an SAP Customer Data Platform Extension endpoint Post
SAP Sales Cloud address completion Corrects the address for an account update or create in SAP Sales Cloud -
Product Review Sentiment Analysis with SAP Commerce Cloud Automated sentiment analysis and content moderation for customer product reviews in SAP Commerce Cloud -
Order Validation with SAP Commerce Cloud Automated order validation with external fraud check service running SAP BTP, Kyma runtime

S/4HANA Extensions

Name Description References
S/4HANA Nodejs SAP Cloud SDK Example This sample provides a Serverless Function configured to call the Material Stock API provided by S/4HANA using the SAP Cloud SDK -

Frontend Samples

Name Description References
React frontend MS SQL This sample provides a frontend React UI application configured with the sample Order APIs -
UI5 frontend MS SQL This sample provides a frontend SAPUI5 application configured with the sample Order APIs -

CAP

Name Description References
CAP Orders Service This sample provides a secured CAP service application deployment onto HANA that utilizes the Destination Service, Connectivity Proxy and configured for Helm using Cloud Native Buildpacks
CAP on Kyma - Cloud Native Buildpacks This sample provides a secured CAP Service application deployed onto HANA and configured for Helm using Cloud Native Buildpacks
CAP on Kyma This sample provides a CAP Service application configured with the sample FAQs APIs -
From Zero to CAP on Kyma Starting from scratch build a CAP application and deploy it to Kyma runtime

FAAS Migration

Name Description References
FAAS to Kyma migration This sample helps you migrate the most common scenarios from deprecated SAP FaaS Runtime Functions to Kyma runtime

SAP Cloud SDK

Name Description References
SAP Cloud SDK Java based extension with API exposed via Microgateway This sample describes the steps and configurations to build and deploy microservice-based extensions using SAP Cloud SDK for Java -
SAP Cloud SDK Java Client Certificate Authentication This sample show how to connect to an external system secured with Client Certificate Authentication using SAP Cloud SDK Post

Open Service Broker

Name Description References
Azure MS SQL database This sample provisions the MS SQL database within Microsoft Azure using the Open Service Broker -

Utilities

Name Description References
Secret from CF Service Key This sample shows how to create a Kubernetes secret from a Cloud Foundry service key -
Get Egress IPs of a Kyma Cluster This sample shows how to retrieve egress IPs of a Kyma cluster -

SAP HANA Cloud

Name Description References
HANA Cloud NodeJS API This sample demonstrates how SAP HANA Cloud can be utilized within the Kyma runtime -
GeoServer for a geospatial middleware over HANA Cloud This sample provides a GeoServerinstance with the plugin for SAP HANA Connectivity -

MS SQL/Azure SQL

Name Description References
MS SQL database This sample demonstrates how to containerize and deploy a MS SQL database Tutorial
Golang MS SQL database API This sample provides a Golang API endpoint for communication with a MS SQL databases Tutorial
Serverless Function MS SQL database API This sample provides a Kyma Serverless Function as an API endpoint for communication with a MS SQL database -

Advanced scenarios

Name Description References
Redis and Kyma Functions This sample provides a Redis deployment and two serverless functions that interact with it Tutorial
Cloud Integration Multi-cloud This sample details how to bi-directionally connect SAP Process Integration and Kyma -
Cloud Integration Neo This sample details how to bi-directionally connect SAP Process Integration and Kyma in NEO -
gRPC Python This sample demonstrates gRPC connectivity -
Self-learning FAQ Chatbot based on SAP Conversational AI This sample provides a tutorial and the code to set up an FAQ chatbot in SAP Conversational AI (CAI) Post
Next.js app with Kyma eventing & Go backend connected to SAP HANA Cloud database This sample provides a tutorial for a conference registration app using Next.js Post
Data Backup and Restore This sample demonstrates performing a backup and restore for a stateful application where data is stored using Persistence Volume Claim. -
HandsOn DSAG Technology Days 2022 This sample gives a walk-through setting up a scenario combining on prem systems with Kyma Functions and the Event Mesh -
Query LDAP Users on on-premise This sample queries the LDAP users from an on premise LDAP Server via SAP Connectivity proxy -
Deploy Highly Available Workloads This sample demonstrates deploying highly available workloads in Kyma runtime -
Power of serverless with SAP BTP, Kyma runtime. This sample demonstrates how to leverage latest features of kyma functions with SAP HANA Cloud and SAP libraries Post
Using the on-premise Docker registry with Kyma runtime This sample demonstrates how to pull images from the on-premise Docker registry for applications deployed on Kyma runtime -
KEDA Cron based scaler This sample demonstrates how to leverage KEDA Cron scaler for efficient scaling strategies. -
SAP Cloud Logging This sample explains how to integrate SAP Cloud Loghing with Kyma runtime and ship logs, metrics and traces. -

Multitenancy and SaaS

Name Description References
SAAS Provisioning Sample This sample demonstrates how the SAP SAAS Provisioning service can be used to develop a mulitenant application -
Sample Mutitanenat Extension This sample demonstrates how to build a multitenant extension -

Authentication and Authorization

Name Description References
Sample to extend SAP Cloud for Customer with user propagation This sample provides details on how a user propagation flow can be achieved when extending SAP Cloud for Customer(C4C) via IAS -
Sample to extend SAP Cloud for Customer with user propagation via XSUAA This sample demonstrates how a user propagation flow can be achieved when extending SAP Cloud for Customer(C4C) via XSUAA -
App Reverse Proxy with OIDC Authentication Middleware This sample provides a reverse proxy feature which dispatches requests to other microservice running in Kyma -
Standalone approuter on SAP BTP, Kyma runtime This Sample demonstrates deploying a standalone app router on Kyma runtime and use it to securely expose microservices and functions -
Principal Propagation to on premise This sample provides details on how a principal propagation flow can be achieved when extending an on-prem system using SAP BTP, Kyma runtime -
Configure Auth0 as IDP for Kyma access This sample provide details on how Auth0 can be configured as an Identity Provider for accessing Kyma runtime -

Updates on SAP BTP, Kyma runtime based on Open Source Kyma 2.0

An overview blog post about updates on SAP BTP, Kyma runtime based on Open Source Kyma 2.0 is available here: A long-awaited update for Kyma runtime

Name Description References
In-Cluster Events Sample that walks you through how to set up and test the in-cluster eventing Post
Installing a custom component Sample that installs and uses Dapr as Custom Component on Kyma -
Extending on-premise systems via Kyma runtime Sample that walks you through how to connect an on premise system Post
Hands-on for DSAG Technlology Days 2022 Hands-on which combines an event-based setup with on-premise connectivity

Helm Charts

It is also possible to deploy some of the samples as a helm chart and template your Kyma extensions. You find more details in the Helm Chart Examples file.

Resources

There are also further resources that allow you to dive into the topic of Kyma:

How to get in touch with us?

If you want to get in touch with us here you go:

GitHub

Slack

Twitter

Known issues

The samples are provided on the "as-is" basis. Currently, there are no known issues for the sample projects.

Get support

The samples are provided "as-is". There is no guarantee that raised issues will be answered or addressed in future releases. For more information, visit SAP Community, especially our Kyma topic page and ask a question, or contact your SAP contact to get support. In case you observe any defect in the product usage itself, kindly use the SAP Product Support channel and raise an incident adequately for the defects observed.

Contributing

Please refer to the contrubuting guidelines

Code of Conduct

Please note, that we have a code of conduct, please follow it in all your interactions with the project.

License

Copyright (c) 2022 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.