From 09aa31887974843cac5857c027e0a42d65800fcb Mon Sep 17 00:00:00 2001 From: Uwe Klinger Date: Tue, 4 May 2021 15:57:39 +0200 Subject: [PATCH] Add approuter --- .gitignore | 3 + logs_recent_2.txt | Bin 6766 -> 0 bytes logs_recent_3.txt | Bin 280916 -> 0 bytes multitenancy/Makefile_20210504145509.mta | 54 ++++++++++++++++ multitenancy/app/package.json | 19 ++++++ multitenancy/app/services.cds | 3 +- multitenancy/app/xs-app.json | 28 +++++++++ ...ts.csv => sap.common-Countries_texts._csv} | 0 ...s.csv => sap.common-Currencies_texts._csv} | 0 ...anguages.csv => sap.common-Languages._csv} | 0 ...ts.csv => sap.common-Languages_texts._csv} | 0 multitenancy/db/schema.cds | 1 + multitenancy/map-route.sh | 8 +++ multitenancy/mta.yaml | 34 +++++++--- multitenancy/package.json | 58 +++++++++--------- 15 files changed, 171 insertions(+), 37 deletions(-) delete mode 100644 logs_recent_2.txt delete mode 100644 logs_recent_3.txt create mode 100644 multitenancy/Makefile_20210504145509.mta create mode 100644 multitenancy/app/package.json create mode 100644 multitenancy/app/xs-app.json rename multitenancy/db/data/{sap.common-Countries_texts.csv => sap.common-Countries_texts._csv} (100%) rename multitenancy/db/data/{sap.common-Currencies_texts.csv => sap.common-Currencies_texts._csv} (100%) rename multitenancy/db/data/{sap.common-Languages.csv => sap.common-Languages._csv} (100%) rename multitenancy/db/data/{sap.common-Languages_texts.csv => sap.common-Languages_texts._csv} (100%) create mode 100755 multitenancy/map-route.sh diff --git a/.gitignore b/.gitignore index 1951715e..ae1e0fdb 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,6 @@ default-env.json packages/messageBox reviews/msg-box reviews/db/test.db + +package-lock.json +logs_recent_*.txt \ No newline at end of file diff --git a/logs_recent_2.txt b/logs_recent_2.txt deleted file mode 100644 index 5d0ffc50621b88852e51d2a819091134c8954959..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6766 zcmeH~TW`}q5QXO%iC@5rRS5}%V%JGa+JF$fM1lv}sw(0EA^{j4}R$y*|K1r`5Nk|}?U z(b*g`tH3%N$RxMs#ct*KfBZyym)*478e8VucY5m9wzo)YcRpWdtabQ*pB~>H+avdS z{NJ-8yD75s0`&%E(YEb`?+vTaE>ddTw=FPw;o9qz9w_YC5l_H-Y=^c->yuS&mwMg4 zAaQ6P(Im+X4WF;79Wd{JR%H9MPIx1GNBceXj_W(3_Yj@ZQQ$pb4<4hDePDhzBckWV zK7GD~s4z`=I#vT2;d@D`(Pxxx`epx9>K0$>uQ{nRkbBNfJ$vdTs$ie+*TnUmAlsxZ zeVGQ?HM4(;mW&}99WpDwvb8&FUz;iZnVp4@cHCkAKKmcy60kdQq>0@wKv291T&a4< z;0OtES!Y8S2iF`6uB=-Cp#kzbIhnRDts0VThfqxG93A4UZ{N^Su}!#Efmb2uiBC;l&tsz8_JgA zdW0=w*x$vsX1+qV+e7kU<9Szh@kDv9-hLEMd1OUVik0Sr>-al1$=N=Dt9dSDw`fRg zwh2oWt;6jvDvCr&wzSTwr~<-Yjmu9L y;$ozTVUiijG9vXq8OmgF8jbswFGHCwp39t}Oc&YdWhm2K_wr^a)5Z1Q`S1sYJod2w diff --git a/logs_recent_3.txt b/logs_recent_3.txt deleted file mode 100644 index f86ed80b2553c89f1b1f5cdb26ad47061a18dfb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280916 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 z zjJR+4-Oa4<>HhV9!#xXm|H5m0JMU=7^$$Vf6y|@?tmn62Z9=Dx)ZGxC(UAjP-IM?1K%G6$) zdx4K_e2VA&7_rlGzl`s%<9(Kpr9Hwcw}mlq6j?9fuP?E56wA%1JVa@^wOes3Hn1kk zJ^k(!`9DT7tMPB7&Kg64)3UO>%{)`H`-e4!e>p{~Fr8_tVa>7Xt0)Dd;3cRnVTmPW z`8M&Ht+;fER}x*q^B%s1+kb@RQ@n1)-&yAA{Dh>I_GOBbRHF|-i>+6hmw;_nJCZnS zDS5K2ABu}(lyeWIB->LwlO^{$XFA+OImmhm>oBIdCEN;@ny-BK2#;poNpAB4Jht#Y z>*!HDm7* z|Be5vp?QekSrcByXT}X@9p*MMsLmYTEJ-k9GO*@o74H+An`Iqnt;H?cVbW?<1m~AikcUEkD4VZx8VL z083wD`769Wi0?hayUqN*ONhEBh>8jRdJw+G=hG(+vYN%V;W$PGYtkFUH19Y+!JSo4 zv8Ol##WkXe$1Bd=`vz^=>-hdrT#GaHeh!k8@awq7W9;Lm)tKNvzQ$VI>yw*r;BlSH zoJC|B`@GXVTa|X5=MgC{`+R%0FaPG8P?|x7?fi0_aUyY%n*U@8Th99~H^+vRcsE|o zSjFs&IRWzq&We17|DWbPNi!m{E&6<}SeGTzpFkc7%Z@5~=vQ6_o&TvH|I>UqW+aKe|B{RR0TpM;bO&Z93#NLpt zea@3D@)?fYwC7>CHfISAaMZX!9y^`+{Ia$0S5S}JvCteHb`hZ|4=jo7Y0R`zmXYpu zpR(p@J4AzJJG4<$MEo9cz#-540_w=c1u(Rzq31 zp-Av==b2+S6nP>gW!`dzVw;nUq1a}0ccwVMp?D=Vuc63u$}?(ThN92YtD)$V)iD(P Oa{DwCeXjGz!~X$$YX{K) diff --git a/multitenancy/Makefile_20210504145509.mta b/multitenancy/Makefile_20210504145509.mta new file mode 100644 index 00000000..f180c886 --- /dev/null +++ b/multitenancy/Makefile_20210504145509.mta @@ -0,0 +1,54 @@ +# Generated with Cloud MTA Build Tool version 1.0.14 +version=0.0.1 +MBT=/usr/local/lib/node_modules/mbt/unpacked_bin/mbt +ifndef p +$(error platform flag is expected. e.g. use make -f makefile.mta p=cf) +endif +target_provided=true +ifndef t +t="$(CURDIR)" +target_provided=false +endif +ifndef strict +strict=true +endif +ifndef mtar +mtar="*" +endif +modules := $(shell $(MBT) provide modules -d=dev) +modules := $(subst ],,$(subst [,,$(modules))) +# List of all the recipes to be executed during the build process +.PHONY: all pre_validate pre_build validate $(modules) post_build meta mtar cleanup +# Default target compile all +all: pre_validate pre_build validate $(modules) post_build meta mtar cleanup +# Validate mta.yaml +pre_validate: + @$(MBT) validate -r=${strict} -x="paths" +pre_build: pre_validate + @$(MBT) project build -p=pre + + +# Execute module build +define build_rule +$(1): validate + @$(MBT) module build -m=$(1) -p=${p} -t=${t} +endef + +$(foreach mod,$(modules),$(eval $(call build_rule,$(mod))))# Create META-INF folder with MANIFEST.MF & mtad.yaml +meta: $(modules) post_build + @$(MBT) gen meta -p=${p} -t=${t} + +post_build: $(modules) + @$(MBT) project build -p=post -t=${t} + +# Validate mta.yaml +validate: pre_build + @$(MBT) validate -r=${strict} + +# Pack as MTAR artifact +mtar: $(modules) meta + @$(MBT) gen mtar --mtar=${mtar} --target_provided=${target_provided} -t=${t} + +cleanup: mtar +# Remove tmp folder + @$(MBT) clean -t=${t} \ No newline at end of file diff --git a/multitenancy/app/package.json b/multitenancy/app/package.json new file mode 100644 index 00000000..334c0fdb --- /dev/null +++ b/multitenancy/app/package.json @@ -0,0 +1,19 @@ +{ + "name": "approuter", + "version": "1.0.0", + "description": "", + "main": "index.js", + "devDependencies": {}, + "engines": { + "node": "^12.0.0" + }, + "scripts": { + "start": "node node_modules/@sap/approuter/approuter.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@sap/approuter": ">=9.0.2" + } +} diff --git a/multitenancy/app/services.cds b/multitenancy/app/services.cds index 95368e3d..ea0e3019 100644 --- a/multitenancy/app/services.cds +++ b/multitenancy/app/services.cds @@ -4,9 +4,8 @@ using from './admin/fiori-service'; using from './browse/fiori-service'; +using from './orders/fiori-service'; using from './common'; using from '../db/capire_common'; -// only works in case of embedded orders service -// using from './orders/app/orders/fiori-service'; diff --git a/multitenancy/app/xs-app.json b/multitenancy/app/xs-app.json new file mode 100644 index 00000000..763f0ec3 --- /dev/null +++ b/multitenancy/app/xs-app.json @@ -0,0 +1,28 @@ +{ + "welcomeFile": "/admin-fiori.html", + "authenticationMethod": "route", + "sessionTimeout": 30, + "logout": { + "logoutEndpoint": "/do/logout", + "logoutPage": "/" + }, + "routes": [ + { + "source": "^/((admin|browse|orders)/webapp/.*)$", + "target": "$1", + "localDir": ".", + "authenticationType": "xsuaa" + }, + { + "source": "^(/[^/]+\\.html(\\?.*)?)$", + "target": "$1", + "localDir": ".", + "authenticationType": "xsuaa" + }, + { + "source": "^.*$", + "destination": "srv-api", + "authenticationType": "xsuaa" + } + ] +} diff --git a/multitenancy/db/data/sap.common-Countries_texts.csv b/multitenancy/db/data/sap.common-Countries_texts._csv similarity index 100% rename from multitenancy/db/data/sap.common-Countries_texts.csv rename to multitenancy/db/data/sap.common-Countries_texts._csv diff --git a/multitenancy/db/data/sap.common-Currencies_texts.csv b/multitenancy/db/data/sap.common-Currencies_texts._csv similarity index 100% rename from multitenancy/db/data/sap.common-Currencies_texts.csv rename to multitenancy/db/data/sap.common-Currencies_texts._csv diff --git a/multitenancy/db/data/sap.common-Languages.csv b/multitenancy/db/data/sap.common-Languages._csv similarity index 100% rename from multitenancy/db/data/sap.common-Languages.csv rename to multitenancy/db/data/sap.common-Languages._csv diff --git a/multitenancy/db/data/sap.common-Languages_texts.csv b/multitenancy/db/data/sap.common-Languages_texts._csv similarity index 100% rename from multitenancy/db/data/sap.common-Languages_texts.csv rename to multitenancy/db/data/sap.common-Languages_texts._csv diff --git a/multitenancy/db/schema.cds b/multitenancy/db/schema.cds index aac1fe1d..2b16a683 100644 --- a/multitenancy/db/schema.cds +++ b/multitenancy/db/schema.cds @@ -1,3 +1,4 @@ using from './schema_bookshop'; using from './schema_orders'; +annotate cds.UUID with @(Core.Computed : true); diff --git a/multitenancy/map-route.sh b/multitenancy/map-route.sh new file mode 100755 index 00000000..3d899869 --- /dev/null +++ b/multitenancy/map-route.sh @@ -0,0 +1,8 @@ +#!/bin/bash + + +SUBDOMAIN=mtx-extend-bookshop +SAAS_HOST_SUFFIX="$(cf env multitenancy-approuter | grep TENANT_HOST_PATTERN | sed 's/.*(..)//' | sed 's/\..*//')" +SAAS_DOMAIN="$(cf env multitenancy-approuter | grep TENANT_HOST_PATTERN | sed 's/.*(..)//' | sed 's/[^.]*\.//')" + +cf map-route multitenancy-approuter $SAAS_DOMAIN --hostname $SUBDOMAIN$SAAS_HOST_SUFFIX \ No newline at end of file diff --git a/multitenancy/mta.yaml b/multitenancy/mta.yaml index b2915803..c1b08d8e 100644 --- a/multitenancy/mta.yaml +++ b/multitenancy/mta.yaml @@ -8,7 +8,7 @@ version: 1.0.0 description: "A simple CAP project." parameters: enable-parallel-deployments: true - + build-parameters: before-all: - builder: custom @@ -17,6 +17,26 @@ build-parameters: - npx -p @sap/cds-dk cds build --production modules: + + - name: multitenancy-approuter + type: nodejs + path: app + parameters: + # Keep existing URLs for this application ("routes") + keep-existing-routes: true + properties: + TENANT_HOST_PATTERN: "^(.*)-${default-host}.${default-domain}" + requires: + - name: multitenancy-registry + - name: multitenancy-uaa-mt + - name: srv-api + group: destinations + properties: + forwardAuthToken: true + strictSSL: true + name: srv-api + url: ~{srv-url} + # --------------------- SERVER MODULE ------------------------ - name: multitenancy-srv # ------------------------------------------------------------ @@ -57,7 +77,7 @@ resources: type: org.cloudfoundry.managed-service parameters: service: xsuaa - service-plan: application + service-plan: application path: ./xs-security.json config: xsappname: multitenancy-${space} # name + space dependency @@ -67,11 +87,11 @@ resources: type: org.cloudfoundry.managed-service requires: - name: multitenancy-uaa-mt - - name: mtx-api - properties: - prop: ~{mtx-url} - parameters: - param: ~{mtx-url} + - name: mtx-api + properties: + prop: ~{mtx-url} + parameters: + param: ~{mtx-url} parameters: service: saas-registry service-plan: application diff --git a/multitenancy/package.json b/multitenancy/package.json index 0644c12c..0939ab11 100644 --- a/multitenancy/package.json +++ b/multitenancy/package.json @@ -48,36 +48,38 @@ } }, "cds": { - "requires": { - "multitenancy": true, - "auth": { - "strategy": "JWT" - }, - "db": { - "kind": "hana", - "vcap": { - "label": "service-manager" + "[production]": { + "requires": { + "multitenancy": true, + "auth": { + "strategy": "JWT" + }, + "db": { + "kind": "hana", + "vcap": { + "label": "service-manager" + } + }, + "uaa": { + "kind": "xsuaa" } }, - "uaa": { - "kind": "xsuaa" - } - }, - "hana": { - "deploy-format": "hdbtable" - }, - "mtx": { - "element-prefix": "Z_", - "namespace-blacklist": [ - "com.sap.", - "sap." - ], - "entity-whitelist": [], - "service-whitelist": [] - }, - "auth": { - "passport": { - "strategy": "JWT" + "hana": { + "deploy-format": "hdbtable" + }, + "mtx": { + "element-prefix": "Z_", + "namespace-blacklist": [ + "com.sap.", + "sap." + ], + "entity-whitelist": [], + "service-whitelist": [] + }, + "auth": { + "passport": { + "strategy": "JWT" + } } } }