Deploy on BTP (#793)

minimal changes required to deploy the CAP samples in _shared db_ mode:
- db: all bookshop, orders, reviews CDS models into one db instance (_shared-db_)
- services: bookstore, orders, reviews
- approuter with UI symlinks:
  - Vue: bookshop, reviews
  - Fiori: orders
 - authentification: xsuaa
 - messaging: Event Mesh
 - destinations: orders, reviews
- cds:
  - projection OrdersNoDraft for backend direct access
  - event OrderChanged
- deployment: mta.yml
This commit is contained in:
Vladislav Leonkev
2025-03-20 09:36:16 +01:00
committed by GitHub
parent ac4154eef3
commit 737e766d53
21 changed files with 3354 additions and 52 deletions

1
app-router/bookshop Symbolic link
View File

@@ -0,0 +1 @@
../bookshop/app/vue

1
app-router/orders Symbolic link
View File

@@ -0,0 +1 @@
../orders/app/orders

2412
app-router/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

12
app-router/package.json Normal file
View File

@@ -0,0 +1,12 @@
{
"name": "approuter",
"dependencies": {
"@sap/approuter": "^17.0.0"
},
"engines": {
"node": "^20"
},
"scripts": {
"start": "node node_modules/@sap/approuter/approuter.js"
}
}

1
app-router/reviews Symbolic link
View File

@@ -0,0 +1 @@
../reviews/app/vue

52
app-router/xs-app.json Normal file
View File

@@ -0,0 +1,52 @@
{
"welcomeFile": "app/bookshop/index.html",
"routes": [
{
"source": "^/app/(.*)$",
"target": "$1",
"localDir": ".",
"cacheControl": "no-cache, no-store, must-revalidate"
},
{
"source": "^/appconfig/",
"localDir": ".",
"cacheControl": "no-cache, no-store, must-revalidate"
},
{
"source": "^/admin/(.*)$",
"target": "/admin/$1",
"destination": "bookstore-api",
"csrfProtection": true
},
{
"source": "^/browse/(.*)$",
"target": "/browse/$1",
"destination": "bookstore-api",
"csrfProtection": true
},
{
"source": "^/user/(.*)$",
"target": "/user/$1",
"destination": "bookstore-api",
"csrfProtection": true
},
{
"source": "^/odata/v4/orders/(.*)$",
"target": "/odata/v4/orders/$1",
"destination": "orders-api",
"csrfProtection": true
},
{
"source": "^/reviews/(.*)$",
"target": "/reviews/$1",
"destination": "reviews-api",
"csrfProtection": true
},
{
"source": "^(.*)$",
"target": "$1",
"localDir": ".",
"cacheControl": "no-cache, no-store, must-revalidate"
}
]
}