Skip to content

Commit 84df914

Browse files
committed
Update from SAP DITA CMS (squashed):
commit fcb6ec37fe1e605b9d8438b5e7d026db35facb2c Author: REDACTED Date: Fri Nov 21 10:37:28 2025 +0000 Update from SAP DITA CMS 2025-11-21 10:37:28 Project: dita-all/jjq1673438782153 Project map: c2f780f61c744155b0bd42b6f38fb70c.ditamap Output: loio2080d0faf9d84ce6aa14caa4caa32935 Language: en-US Builddable map: 0fcfe38e11674227bb0a8d014337319b.ditamap commit 391f06db2ac1cfcc19465a7c85126864d5b90a1d Author: REDACTED Date: Fri Nov 21 10:04:27 2025 +0000 Update from SAP DITA CMS 2025-11-21 10:04:27 Project: dita-all/jjq1673438782153 Project map: c2f780f61c744155b0bd42b6f38fb70c.ditamap Output: loio2080d0faf9d84ce6aa14caa4caa32935 Language: en-US Builddable map: 0fcfe38e11674227bb0a8d014337319b.ditamap commit 684b7875f9f468d34beefdb6adbcd80fea503916 Author: REDACTED Date: Fri Nov 21 09:31:21 2025 +0000 Update from SAP DITA CMS 2025-11-21 09:31:21 Project: dita-all/jjq1673438782153 Project map: c2f780f61c744155b0bd42b6f38fb70c.ditamap ################################################## [Remaining squash message was removed before commit...]
1 parent 3c0146e commit 84df914

29 files changed

+1155
-67
lines changed

docs/10-concepts/kyma-modules-0dda141.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,7 @@ At the moment, the SAP Event Mesh default plan and NATS are supported. If you ch
208208
</td>
209209
<td valign="top">
210210

211-
- [Configure SAP Event Mesh for Kyma Eventing](../30-development/configure-sap-event-mesh-for-kyma-eventing-407d126.md)
212-
- [kyma-project.io: Eventing module](https://kyma-project.io/#/eventing-manager/user/README)
211+
- [Eventing Module](../30-development/eventing-module-07b2d1d.md)
213212
- [GitHub repository: Eventing](https://github.com/kyma-project/eventing-manager)
214213

215214

@@ -252,7 +251,7 @@ NATS deploys a NATS cluster within the Kyma cluster. You can use it as a backend
252251
</td>
253252
<td valign="top">
254253

255-
- [kyma-project.io: NATS module](https://kyma-project.io/#/nats-manager/user/README)
254+
- [NATS Module](../30-development/nats-module-2c504f5.md)
256255
- [GitHub repository: NATS](https://github.com/kyma-project/nats-manager)
257256

258257

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<!-- loio1ece56b2b5854a91a2c8f32c1db17fb8 -->
2+
3+
# Payment Card Industry Data Security Standard in the Kyma Environment
4+
5+
Payment Card Industry Data Security Standard \(PCI DSS\) ensures businesses protect cardholder data, and SAP BTP Kyma runtime's compliance attestation confirms its security measures.
6+
7+
[PCI DSS](https://www.pcisecuritystandards.org/standards/pci-dss/) is a set of rules and requirements for businesses that store, process, or transmit payment card information, designed to protect cardholder data from fraud. SAP BTP, Kyma runtime holds the PCI DSS Attestation of Compliance \(AoC\) v4.0.1. The AoC defines how Kyma is compliant with the PCI standard. To request a copy of SAP Business Technology Platform Kyma Runtime 2025 PCI DSS AoC Report, visit [SAP Trust Center](https://www.sap.com/about/trust-center/certification-compliance/sap-btp-kyma-runtime-pci-2025.html).
8+
9+
10+
11+
## Responsibility Matrix
12+
13+
Kyma, as a PCI service provider, defines the scope of responsibilities. Some responsibilities belong to Kyma, some to you as a customer, and some are shared.
14+
15+
To view the Responsibility Matrix, request access using the support procedure. To get support, report a case in SAP for Me using the Kyma support component: BC-CP-XF-KYMA. For more information, see <?sap-ot O2O class="- topic/xref " href="948d2ff28da847739fda67cd8cd1f1d4.xml" text="" desc="" xtrc="xref:3" xtrf="file:/home/builder/src/dita-all/jjq1673438782153/loio2080d0faf9d84ce6aa14caa4caa32935_en-US/src/content/localization/en-us/1ece56b2b5854a91a2c8f32c1db17fb8.xml" output-class="" outputTopicFile="file:/home/builder/tp.net.sf.dita-ot/2.3/plugins/com.elovirta.dita.markdown_1.3.0/xsl/dita2markdownImpl.xsl" ?> .
16+
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<!-- loio8eefbd54171c492b89ffe855344a04ef -->
2+
3+
# Accessing the NATS Server Using CLI
4+
5+
Interact directly with your NATS server deployment in Kyma using the NATS command-line interface \(CLI\). Use the CLI to inspect server status, manage streams and consumers, and troubleshoot message flow.
6+
7+
8+
9+
<a name="loio8eefbd54171c492b89ffe855344a04ef__prereq_d52_gvs_dhc"/>
10+
11+
## Prerequisites
12+
13+
- You have installed kubectl and [NATS CLI](https://github.com/nats-io/natscli).
14+
15+
16+
17+
## Context
18+
19+
Accessing certain resources in NATS requires [system account privileges](https://docs.nats.io/running-a-nats-service/configuration/sys_accounts). Kyma automatically generates a `system account` user using a Secret named `eventing-nats-secret` in the `kyma-system` namespace.
20+
21+
22+
23+
## Procedure
24+
25+
1. Get the credentials. Run:
26+
27+
```
28+
kubectl get secrets -n kyma-system eventing-nats-secret -ogo-template='{{index .data "resolver.conf"|base64decode}}'| grep 'user:'| tr -d '{}'
29+
```
30+
31+
If you changed the default NATS instance name from `eventing-nats`, replace `eventing-nats-secret` with `{your_NATS_CR_name}-secret`.
32+
33+
You receive the credentials for the `system account` user in the following format:
34+
35+
```
36+
user: admin, password: <your password>
37+
```
38+
39+
2. To access the NATS server with the NATS CLI tool, forward its port:
40+
41+
```
42+
kubectl port-forward -n kyma-system svc/eventing-nats 4222
43+
```
44+
45+
3. To send your NATS commands, pass the credentials:
46+
47+
```
48+
nats server info --user admin --password <your password>
49+
```
50+
51+

docs/30-development/choose-an-eventing-backend-08dfcdc.md

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,8 @@ If you want to choose another backend, edit the `Eventing` resource again, selec
5959

6060
You can no longer return to an empty eventing backend.
6161

62-
63-
64-
<a name="loio08dfcdcaf4ff4914b70c8173731a9188__postreq_i2m_jms_5zb"/>
65-
66-
## Next Steps
67-
68-
Learn more about the [Eventing Module](https://kyma-project.io/#/eventing-manager/user/README).
69-
7062
**Related Information**
7163

7264

73-
[Configure SAP Event Mesh for Kyma Eventing](configure-sap-event-mesh-for-kyma-eventing-407d126.md "If you want to use SAP Event Mesh as backend for the Eventing module, you must first set up the credentials.")
74-
7565
[SAP Event Mesh](https://help.sap.com/viewer/product/SAP_EM/Cloud/en-US)
7666

docs/30-development/creating-a-job-catalog-entry-and-a-job-template-949ba00.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ Follow these steps to run your business coding in an application job.
2222
**Related Information**
2323

2424

25-
[Setting up the Authorizations](setting-up-the-authorizations-bb559a5.md "Some further activities in ABAP development tools for Eclipse and in the administrator’s launchpad are necessary to be able to schedule the job template in the Fiori app Application Jobs.")
25+
[Setting up the Authorizations](setting-up-the-authorizations-bb559a5.md "Some further activities in ADT and in the administrator’s launchpad are necessary to be able to schedule the job template in the Fiori app Application Jobs.")
2626

docs/30-development/creating-the-job-catalog-entry-1cff59e.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ Job catalog entries and job templates are created with a package assignment and
1313

1414
[Creating the Job Template](creating-the-job-template-1f04ad2.md "")
1515

16-
[Setting up the Authorizations](setting-up-the-authorizations-bb559a5.md "Some further activities in ABAP development tools for Eclipse and in the administrator’s launchpad are necessary to be able to schedule the job template in the Fiori app Application Jobs.")
16+
[Setting up the Authorizations](setting-up-the-authorizations-bb559a5.md "Some further activities in ADT and in the administrator’s launchpad are necessary to be able to schedule the job template in the Fiori app Application Jobs.")
1717

docs/30-development/creating-the-job-template-1f04ad2.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ The creation of a job template follows the same technical rules as a *Job Catalo
99
**Related Information**
1010

1111

12-
[Setting up the Authorizations](setting-up-the-authorizations-bb559a5.md "Some further activities in ABAP development tools for Eclipse and in the administrator’s launchpad are necessary to be able to schedule the job template in the Fiori app Application Jobs.")
12+
[Setting up the Authorizations](setting-up-the-authorizations-bb559a5.md "Some further activities in ADT and in the administrator’s launchpad are necessary to be able to schedule the job template in the Fiori app Application Jobs.")
1313

docs/30-development/deploy-workloads-in-the-kyma-environment-to-extend-sap-systems-fe4ba5b.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ Follow these steps to get familiar with workloads and learn how to use them.
5252

5353
1. Connect the SAP system you want to extend \([Extending SAP Solutions Using Automated Configurations](https://help.sap.com/docs/BTP/65de2977205c403bbc107264b8eccf4b/346864df64f24011b49abee07bbd79af.html)\).
5454

55-
2. Choose a namespace in your cluster and create a simple Function \([Create an Inline Function](https://kyma-project.io/#/serverless-manager/user/tutorials/01-10-create-inline-function)\) or a microservice \([Create a Workload](https://kyma-project.io/#/api-gateway/user/tutorials/01-00-create-workload)\).
55+
2. Choose a namespace in your cluster and create a simple Function \([Create an Inline Function](https://kyma-project.io/external-content/serverless/docs/user/tutorials/01-10-create-inline-function)\) or a microservice.
5656

5757
3. If you want to expose your workload outside the cluster, read [Expose a Workload](https://kyma-project.io/#/api-gateway/user/tutorials/01-40-expose-workload/01-40-expose-workload-apigateway).
5858

@@ -78,5 +78,5 @@ Follow these steps to get familiar with workloads and learn how to use them.
7878
**Related Information**
7979

8080

81-
[Kyma: Serverless](https://kyma-project.io/#/serverless-manager/user/README)
81+
[Serverless Module](serverless-module-eb84ff5.md "Learn more about the Serverless module. Use it to run lightweight Functions in a cost-efficient and scalable way using JavaScript and Node.js.")
8282

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<!-- loio97f5d77d27af4f5a91c98a5502975de6 -->
2+
3+
# Event Naming and Cleanup
4+
5+
The Eventing module uses event names to identify and route events to subscribers. Learn about the supported event types, the naming conventions, and how the Eventing module handles event names with prohibited characters.
6+
7+
8+
9+
<a name="loio97f5d77d27af4f5a91c98a5502975de6__section_event_types"/>
10+
11+
## Event Types
12+
13+
Event names depend on the type of event. Eventing supports the following event types:
14+
15+
- CloudEvents: Events that conform to the [CloudEvents specification](https://cloudevents.io/). This is the recommended standard for describing event data in a common way. The specification is currently under the [CNCF](https://www.cncf.io/).
16+
- Legacy events: Events or messages published to Kyma that do not conform to the CloudEvents specification. The Eventing Publisher Proxy converts all legacy events into CloudEvents before processing them.
17+
18+
19+
20+
<a name="loio97f5d77d27af4f5a91c98a5502975de6__section_event_name_format"/>
21+
22+
## Event Name Format
23+
24+
The event name format ensures compatibility with CloudEvents specifications and underlying messaging backends.
25+
26+
For a Subscription custom resource \(CR\), the fully qualified event name follows a structure like `order.created.v1` or `Account.Root.Created.v1`.
27+
28+
An event type consists of the following components:
29+
30+
- Event: Typically, has two or three segments separated by a dot \(`.`\); for example, `order.created` or `Account.Root.Created`
31+
- Version: A version identifier, typically `v1`
32+
33+
For publishers, the event type takes these sample forms:
34+
35+
- `order.created` or `Account.Root.Created` for legacy events coming from the `commerce` application
36+
- `order.created.v1` or `Account.Root.Created.v1` for CloudEvents
37+
38+
39+
40+
<a name="loio97f5d77d27af4f5a91c98a5502975de6__section_event_name_cleanup"/>
41+
42+
## Event Name Cleanup
43+
44+
The Eventing Publisher Proxy modifies event names to filter out prohibited characters. This ensures compliance with CloudEvents specifications and the underlying messaging backend \(such as [NATS JetStream specifications](https://docs.nats.io/running-a-nats-service/nats_admin/jetstream_admin/naming)\).
45+
46+
If an event name contains prohibited characters, the Eventing Publisher Proxy removes these characters and uses the cleaned name for internal processing and routing. For example, if an event type is `order.payment*success.v1`, the Eventing module cleans it to `order.paymentsuccess.v1`.
47+
48+
To check the Subscription's cleaned event type, run: `kubectl get subscriptions {SUBSCRIPTION_NAME} -o=jsonpath="{.status.types}"`
49+
50+
This cleanup happens internally; you can still publish and subscribe using the original event names \(with prohibited characters\). However, the Eventing module processes the cleaned version.
51+
52+
> ### Caution:
53+
> This can lead to a naming collision if two different original event names clean up to the same internal name. For example, both `system>prod` and `systemprod` become `systemprod`. While this does not result in an error, a naming collision can cause subscribers to receive irrelevant events or miss expected events. For details, see [Subscriber Receives Irrelevant Events](subscriber-receives-irrelevant-events-d4f3166.md).
54+
55+
When you verify event delivery in your Function logs, the received event type reflects the cleaned name, not the original name you defined in the `Subscription` or published with.
56+
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
<!-- loio07b2d1db518b441780d1ea981eb77bb9 -->
2+
3+
# Eventing Module
4+
5+
Use the Eventing module to set up event-driven communication between applications in your Kyma cluster using a publish-subscribe model.
6+
7+
8+
9+
## What is Eventing?
10+
11+
The Eventing module enables event-driven communication between applications in your Kyma cluster. One application publishes an event \(the publisher\), and other applications \(subscribers\) subscribe to receive it.
12+
13+
This decouples your services, as publishers and subscribers don't need to know about each other. They can communicate asynchronously and evolve independently.
14+
15+
16+
17+
## Features
18+
19+
The Eventing module provides the following features:
20+
21+
- Publish-subscribe \(pub/sub\) messaging: Decouples applications so you can build resilient and scalable event-driven systems.
22+
- Flexible backend support: Use the in-cluster NATS backend \(see [NATS Module](nats-module-2c504f5.md)\) or configure SAP Event Mesh \(see [SAP Event Mesh](https://help.sap.com/docs/SAP_EM/bf82e6b26456494cbdd197057c09979f/df532e8735eb4322b00bfc7e42f84e8d.html?version=LATEST&locale=en-US)\) for enterprise messaging.
23+
- Standardized event format: All events follow the [CloudEvents](https://cloudevents.io/) specification, ensuring a consistent and portable format.
24+
- Automatic legacy event conversion: Converts older, non-standard Kyma event formats into valid CloudEvents automatically. For details, see [Event Name Cleanup](event-naming-and-cleanup-97f5d77.md#loio97f5d77d27af4f5a91c98a5502975de6__section_event_name_cleanup).
25+
- At-least-once delivery: Ensures that each event is delivered at least one time when you use the NATS backend, preventing message loss during temporary failures.
26+
- Declarative subscriptions: Manage event subscriptions with a simple [Subscription](https://kyma-project.io/#/eventing-manager/user/resources/subscription-cr) custom resource \(CR\).
27+
- Built-in observability: Exposes key health and performance metrics in Prometheus format \(see [Eventing Metrics](https://kyma-project.io/#/eventing-manager/user/evnt-eventing-metrics)\). Use the Telemetry module to collect, process, and forward these metrics to your observability backend.
28+
29+
30+
31+
## Scope
32+
33+
The Eventing module focuses on in-cluster, asynchronous communication using the CloudEvents standard. It uses only one stream, with `file` storage, for all the events.
34+
35+
For cross-cluster or hybrid scenarios, configure SAP Event Mesh as the backend.
36+
37+
38+
39+
## Architecture
40+
41+
The Eventing module uses the Eventing Manager, a [Kubernetes operator](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/), to manage the components that process and deliver events within your cluster.
42+
43+
The architecture involves the following flows:
44+
45+
- Subscription: The Eventing Manager watches for Subscription custom resources and configures the eventing infrastructure.
46+
- Delivery: The Eventing Publisher Proxy receives events, and the configured backend \(NATS or SAP Event Mesh\) delivers them.
47+
48+
![](images/Kyma_Eventing_Architecture_96d2a93.png)
49+
50+
1. You create a Subscription CR. In the resource manifest, you specify the type of event you want to receive and the sink where to send it.
51+
2. The Eventing Manager, continuously watching for Subscription resources, detects your Subscription CR.
52+
3. Based on the backend configured in the Eventing CR, the Eventing Manager connects to the backend \(NATS or SAP Event Mesh\) and creates a subscription mechanism \(a consumer or webhook\).
53+
4. A publisher app sends an event to the Eventing Publisher Proxy.
54+
5. The Eventing Publisher Proxy forwards the event in CloudEvents format to your eventing backend.
55+
6. The eventing backend processes the event and pushes it to the Eventing Manager.
56+
7. The Eventing Manager receives the event, looks up the sink from the Subscription CR, and sends the event to your subscriber app. Your application can now process the event payload.
57+
58+
59+
60+
### Eventing Manager
61+
62+
The Eventing Manager is the module's controller. It watches for Subscription custom resources and configures the underlying eventing infrastructure.
63+
64+
When you create or update a Subscription, the Eventing Manager performs the following tasks:
65+
66+
- Configures the selected eventing backend to manage event streams and consumers for subscriptions.
67+
- Ensures that events are routed from the correct publisher to the specified subscriber \(the sink\).
68+
- Creates and manages Kubernetes resources, such as `ConfigMap`, `Services`, and `DestinationRules`, adapting them to the desired state.
69+
70+
71+
72+
### Eventing Publisher Proxy
73+
74+
The [Eventing Publisher Proxy](https://github.com/kyma-project/eventing-publisher-proxy) provides a single, stable endpoint for your applications to publish events using a standard HTTP POST request \(endpoint: `/publish` for CloudEvents and `<application_name>/v1/events` for legacy events\). This simplifies integration, as you can use common tools like curl or any standard HTTP client.
75+
76+
The proxy performs the following tasks:
77+
78+
- Receives inbound events from your applications.
79+
- Converts events from legacy formats into the standard CloudEvents format.
80+
- Forwards validated CloudEvents to the configured eventing backend for delivery.
81+
82+
83+
84+
## API/Custom Resource Definitions
85+
86+
You configure the Eventing module by creating and applying Kubernetes Custom Resource Definitions \(CRD\), which extend the Kubernetes API with custom additions:
87+
88+
- To understand and configure the module's global settings, see the [Eventing CRD](https://kyma-project.io/#/eventing-manager/user/resources/eventing-cr).
89+
- To create a subscriber, define a [Subscription CRD](https://kyma-project.io/#/eventing-manager/user/resources/subscription-cr). You cannot delete the Eventing module as long as Subscription CRs exist.
90+
91+
92+
93+
## Resource Consumption
94+
95+
To learn more about the resources used by the Eventing module, see [Kyma Modules' Sizing](../50-administration-and-ops/kyma-modules-sizing-3a92490.md).
96+

0 commit comments

Comments
 (0)