Security & SAP

How CSPeach sits next to SAP’s ABAP tools

What CSPeach calls in your SAP system, as which user, under which access levels, and what it stores. Facts for your security officer and your counsel. We quote and we state. We do not read SAP’s policy for you.

Download this page

1 · The interface

What we call.

CSPeach’s SAP work runs through the ADT REST interface of your ABAP system. It is the same protocol Eclipse and SAP’s ABAP development tools for VS Code use. CSPeach reads an OData service only when the developer asks it to test one, or links one in the CAP lane. The calls go from the developer’s laptop to the system. They do not pass through our service. Nothing is installed in the SAP system. Nothing runs in it.

2 · The user

As which user.

CSPeach logs on as the developer’s own SAP user. Every authorization check behaves as in SAP GUI. There is no technical user and no service account. Your change documents name the real developer.

3 · The levels

Under which access levels.

CSPeach uses the four levels on SAP’s own slide. Your administrator sets one per system, in the configuration file your desktop team deploys.

SAP’s levelSettingWhat CSPeach does
Fully closedaccess = "closed"CSPeach does not connect to the system. It says: “This system is closed to CSPeach. Your administrator set access = closed for <system>.”
Read-onlyaccess = "read-only"CSPeach reads and proposes. Every write is refused before an approval card is shown: “This system is read-only for CSPeach (access = read-only, set by your administrator). Nothing was changed.”
Restricted editingaccess = "restricted"
packages = [...]
CSPeach writes only to objects in the listed packages. A write to any other package is refused before the card. When CSPeach cannot read an object’s package, the write is refused too. An empty list refuses every write.
Fully openaccess = "open"Writes as today: one approval by the developer, a snapshot first, checks after.
Not setno access keyThe same as fully open. The start line says Access: open (no level set).

The level shows when an interactive session starts, for example Access: restricted to ZCC_*, ZFI_SALES (set by your administrator). /status shows it again. Every audit row records it. The configuration file is on the developer’s laptop and is that user’s file. A change to it shows in the start line and in every audit row.

The level in CSPeach’s configuration and the level in SAP’s ABAP development tools for VS Code are set separately. An administrator sets both the same.

4 · Storage

What we store.

No SAP source, object or data is stored on our servers. Prompts, including the code they contain, pass through our service to the model. Our service does not store prompt or response text. We keep usage records: token counts, model and time. What the model provider keeps, and for how long, is on our security page. Snapshots and the audit log stay on the developer’s laptop.

5 · Where

Development systems only.

CSPeach is used on development systems. A system marked role = "prd" is advisory-only: CSPeach proposes and never writes to it. When the role and the access level differ, the stricter one wins. So a prd system set to open is still advisory-only.

6 · For your counsel

SAP’s API policy: the facts.

“(semi-) autonomous or generative AI systems that plan, select, or execute sequences of API calls” SAP API Policy v4/2026, section 2.2.2. Read the full clause in the policy itself.

What the software does:

  • A named SAP user. CSPeach works as the developer’s own user.
  • One approval per write, by that user. The developer approves each write, or once for a plan’s exact object list. Anything off the list asks again.
  • Development systems only. A prd system is advisory-only.
  • ADT for the SAP work. CSPeach’s SAP work runs through ADT. It reads an OData service only when the developer asks it to test one, or links one in the CAP lane. ADT’s data preview can read table rows. With sql_tables = "dictionary", the SQL tool reads only the allowlist plus the tables your administrator adds with sql_allow.
  • Nothing stored on our servers of the SAP source, objects or data.
  • The access level set by your administrator, shown at the start of each interactive session and recorded in every audit row.

Your counsel decides what this means for your contract. We state what the software does.

Reviewed by an independent SAP licensing advisor: pending

7 · To forward

A paragraph you can forward to your SAP account team.

Copy it as it stands.

CSPeach is a coding agent that runs on the developer’s laptop. It works through the ABAP system’s ADT interface, as the developer’s own SAP user. A six-week lane produces a clean-core report reconciled with the system’s own ATC results, each decision recorded with the name of the person who made it, and proof per object. CSPeach stores nothing of the SAP work on its servers. It works on development systems, under the access level the administrator sets.

8 · Settings

Controls your Basis team can set.

Per system in ~/.cspeach/config.toml, unless marked. A key that is not set leaves CSPeach as it is today.

accessclosed, read-only, restricted or open. The four levels above.
packagesUnder restricted, the packages CSPeach may change. Names, or patterns with * and ?.
sql_tables"dictionary": the SQL tool reads only a fixed set of 20 dictionary and repository names (DD03L, DD07T, DDDDLSRC, TADIR, TDEVC, TDEVCT, TRDIR, TFDIR, ENLFDIR, E070, E071, E07T, CVERS, T000, ARS_W_API_STATE, ARS_W_API_SCCSSR, SLIN_DESC, SMODILOG, /SDF/MON_RECS, SUSG_*) plus sql_allow. Business tables are not on it. Not set: as today, with user tables blocked.
sql_allowExtra tables or patterns for dictionary mode. User tables (USR*, USGRP*) stay blocked even when listed.
self_upgradeTop of the file, not per system. false: cspeach --upgrade refuses and says your desktop team manages upgrades on this machine.
role"prd": advisory-only, as in section 5.
cspeach audit exportA command, not a key. cspeach audit export --since YYYY-MM-DD --until YYYY-MM-DD --out file writes the audit rows as JSON Lines for your SIEM. Dates are compared in UTC. Rows are written from CSPeach 1.1.64 on.
monthly allowanceSet by us, on request, per company and seat kind. It applies to every request on our model key and resets on the first of each month (UTC).
self_upgrade = false

[sap.S4D]
role = "dev"
access = "restricted"
packages = ["ZCC_*", "ZFI_SALES"]
sql_tables = "dictionary"
sql_allow = ["T683S", "ZTAB_*"]

9 · Authorizations

A read-only functional user.

The authorizations below are suggested: verify with SU53 on your own system.

  • S_ADT_RES for the ADT resources.
  • S_RFC, type FUGR, on the ADT REST function group SADT_REST.
  • S_DEVELOP, activity 03, on the object types the user reads.
  • S_TABU_DIS / S_TABU_NAM, activity 03, on the Z and customizing tables the user needs.

Check with your SAP licence contract whether development-display authorizations change a user’s licence class.

10 · Contact

Questions.

Write to [email protected]. We answer in writing.