Appearance
Architecture
Target architecture of the AI-Driven Development Model: a React/shadcn frontend connected via a type-safe OData v4 contract to a Domain-Driven SAP CAP backend, running on SAP BTP Cloud Foundry.
System Overview
Design Approach
- Domain-Driven Design — Entities, Aggregates, and Bounded Contexts via CDS namespaces.
- i18n from day one — every app is localizable.
- CAP as the central abstraction — domain model, services, persistence, and authorization all flow through CAP.
Repository Layout
An npm workspaces monorepo:
| Path | Purpose |
|---|---|
packages/* | Frontend apps / shared libraries |
srv/ | CAP service layer |
db/ | CDS domain model & persistence |
main.tsx | App entry (root) |
Layers
Frontend
React + TypeScript on Vite 8 (Rolldown bundler), UI built with shadcn/ui on Base UI primitives and Tailwind CSS v4. See Frontend for the full stack.
Backend
SAP CAP Node.js with TypeScript (CAP v10) or ABAP RAP, CDS domain model, OData v4 APIs. See Backend.
Interface
- OData v4 first, REST only when useful.
- End-to-end type safety:
cds-typergenerates@cds-models/*types on the backend; the frontend consumes them via TanStack Query. - ⚠️ CAP v10 delivers
DecimalandInt64as strings in OData responses ("9.99", not9.99) — parse/type accordingly and avoid strict numeric equality on these fields.
Runtime & Tooling
- Node.js 24 LTS recommended (CAP v10 minimum: Node 22; Node 26 from Oct 2026).
- HTTP: CAP uses native
fetch(Axios removed) — align custom adapters / destination calls accordingly.
Dependency Policy
- Pin exact versions in lockfiles; Renovate/audit via CI gate before merging dependency bumps.
- Heightened scrutiny for
@tanstack/*and@cap-js/*version ranges — both ecosystems had npm supply-chain incidents in May 2026 (compromised published versions); verify against known-good versions before upgrading.
Deployment
- Target: SAP BTP Cloud Foundry.
- Multi-target application (MTA) wired up via
cds add mta; see Backend → scaffolding.