-
Notifications
You must be signed in to change notification settings - Fork 47
/
Copy paththeme-designer.mta.yaml
506 lines (471 loc) · 16.4 KB
/
theme-designer.mta.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
_schema-version: '3.2'
ID: susaas
version: 0.0.1
parameters:
deploy_mode: html5-repo
enable-parallel-deployments: true
autoscalerMinInstance: 1
autoscalerMaxInstance: 2
build-parameters:
before-all:
- builder: custom
commands:
- npm install --include=dev --prefix=../../code
- npx -p @sap/cds-dk@8 cds build -in ../../code --profile production
modules:
# --------------------- APPROUTER MODULE ---------------------
- name: susaas
# ------------------------------------------------------------
type: approuter.nodejs
path: ../../code/router
build-parameters:
builder: custom
commands: []
ignore: [ '.DS_Store', 'node_modules/', 'default-env.json', 'manifest*.yml' ]
parameters:
app-name: susaas-${space}
disk-quota: 256MB
memory: 128MB
tenant-separator: '-'
app-domain: ${app-name}.${default-domain}
keep-existing-routes: true
properties:
TENANT_HOST_PATTERN: '^(.*)${tenant-separator}${app-domain}'
requires:
- name: susaas-destination
- name: susaas-html5-repo-runtime
- name: susaas-uaa
- name: susaas-srv-api
- name: susaas-theming
provides:
- name: susaas-router-api
properties:
app-url: ${default-url}
application: ${app-name}
tenant-separator: ${tenant-separator}
app-domain: ${app-domain}
# --------------------- WEBAPP DEPLOYER ----------------------
- name: susaas-app-deployer
# ------------------------------------------------------------
type: com.sap.application.content
path: ../../code/app/html5-deployer
requires:
- name: susaas-html5-repo-host
parameters:
content-target: true
build-parameters:
build-result: resources
requires:
- name: sapsusaasuipublicflp
target-path: resources/
artifacts:
- sapsusaasuipublicflp.zip
- name: sapsusaasuiadminprojects
target-path: resources/
artifacts:
- sapsusaasuiadminprojects.zip
- name: sapsusaasuiadminusers
target-path: resources/
artifacts:
- sapsusaasuiadminusers.zip
- name: sapsusaasuipublicprojects
target-path: resources/
artifacts:
- sapsusaasuipublicprojects.zip
- name: sapsusaasuipublicassessments
target-path: resources/
artifacts:
- sapsusaasuipublicassessments.zip
# --------------------- UI MODULES ----------------------------
#
# ------------------------------------------------------------
- name: sapsusaasuipublicflp
type: html5
path: ../../code/app/ui-public-flp
build-parameters:
build-result: dist
builder: custom
ignore: [ 'node_modules/', 'default-env.json', 'manifest*.yml' ]
commands:
- npm run build
supported-platforms: []
- name: sapsusaasuiadminprojects
type: html5
path: ../../code/app/ui-admin-projects
build-parameters:
build-result: dist
builder: custom
ignore: [ 'node_modules/', 'default-env.json', 'manifest*.yml' ]
commands:
- npm run build
supported-platforms: []
- name: sapsusaasuiadminusers
type: html5
path: ../../code/app/ui-admin-users
build-parameters:
build-result: dist
builder: custom
ignore: [ 'node_modules/', 'default-env.json', 'manifest*.yml' ]
commands:
- npm run build
supported-platforms: []
- name: sapsusaasuipublicprojects
type: html5
path: ../../code/app/ui-public-projects
build-parameters:
build-result: dist
builder: custom
ignore: [ 'node_modules/', 'default-env.json', 'manifest*.yml' ]
commands:
- npm run build
supported-platforms: []
- name: sapsusaasuipublicassessments
type: html5
path: ../../code/app/ui-public-assessments
build-parameters:
build-result: dist
builder: custom
ignore: [ 'node_modules/', 'default-env.json', 'manifest*.yml' ]
commands:
- npm run build
supported-platforms: []
# --------------------- SERVER MODULE ------------------------
- name: susaas-srv
# ------------------------------------------------------------
type: nodejs
path: ../../code/gen/srv
build-parameters:
builder: npm
ignore: [ '.DS_Store', 'node_modules/', 'default-*.json', 'manifest*.yml']
parameters:
app-name: susaas-srv-${space}
memory: 256MB
disk-quota: 1024MB
command: node ./node_modules/@sap/cds/bin/cds-serve
properties:
tenantSeparator: ~{susaas-router-api/tenant-separator}
appDomain: ~{susaas-router-api/app-domain}
brokerName: ~{susaas-api-sb-srv/app-name}
srvUrl: 'https://${app-name}.${default-domain}'
brokerUrl: ~{susaas-api-sb-srv/srv-url}
approuterUrl: ~{susaas-router-api/app-url}
appName: ~{susaas-router-api/application}
requires:
- name: susaas-uaa
- name: susaas-credstore
parameters:
config:
authorization:
default_permissions:
- read
- decrypt
- encrypt
- list
- name: susaas-logging
- name: susaas-registry
- name: susaas-service-manager
- name: susaas-service-manager-admin
- name: susaas-destination
- name: susaas-html5-repo-runtime
- name: susaas-alert-notification
- name: susaas-api-sb-srv
- name: susaas-router-api
- name: susaas-theming
- name: susaas-autoscaler
parameters:
config:
instance_min_count: 1
instance_max_count: 2
scaling_rules:
- {"metric_type": "memoryutil","threshold": 80,"operator": ">=","adjustment": "+1"}
- {"metric_type": "memoryutil","threshold": 60,"operator": "<","adjustment": "-1"}
- {"metric_type": "cpu","threshold": 80,"operator": ">=","adjustment": "+1"}
- {"metric_type": "cpu","threshold": 30,"operator": "<","adjustment": "-1"}
- name: susaas-com-hdi-container
group: SERVICE_REPLACEMENTS
properties:
key: com-hdi-container
service: '~{com-container-name}'
provides:
- name: susaas-srv-api
properties:
srv-url: ${default-url}
# --------------------- COMMON DB MODULE ---------------------
- name: susaas-db-com
# ------------------------------------------------------------
type: hdb
path: ../../code/gen/db-com
build-parameters:
ignore: [ '.DS_Store', 'node_modules/', 'default-*.json', 'manifest*.yml']
parameters:
app-name: susaas-db-com-${space}
memory: 256MB
disk-quota: 1024MB
requires:
- name: susaas-com-hdi-container
# ----------- BROKER MODULE (OSBAPI Implementation) ----------
- name: susaas-api-sb
# ------------------------------------------------------------
type: nodejs
path: ../../code/broker/
build-parameters:
builder: custom
commands: []
ignore: [ '.DS_Store', 'node_modules/', 'default-*.json', 'manifest*.yml']
parameters:
app-name: susaas-api-sb-${space}
memory: 128MB
disk-quota: 512MB
properties:
SBF_ENABLE_AUDITLOG: false
SBF_CATALOG_FILE: ./catalog.json
SBF_CATALOG_SUFFIX: ${space}-${org}
SBF_SERVICE_CONFIG:
susaas-api:
extend_credentials:
shared:
apiUrl: ~{srv-url}
extend_xssecurity:
per_plan:
trial:
authorities:
- $XSMASTERAPPNAME.plan_trial
default:
authorities:
- $XSMASTERAPPNAME.plan_default
premium:
authorities:
- $XSMASTERAPPNAME.plan_premium
extend_catalog:
metadata:
displayName : Sustainable SaaS API ${space}
requires:
- name: susaas-api-uaa
- name: susaas-api-srv-api
provides:
- name: susaas-api-sb-srv
properties:
app-name: ${app-name}
srv-url: ${default-url}
# --------------------- API MODULE ---------------------------
- name: susaas-api-srv
# ------------------------------------------------------------
type: nodejs
path: ../../code/gen/api
parameters:
app-name: susaas-api-srv-${space}
memory: 256MB
disk-quota: 1024MB
command: node ./node_modules/@sap/cds/bin/cds-serve
build-parameters:
builder: npm
ignore: [ '.DS_Store', 'node_modules/', 'default-env.json', 'manifest*.yml' ]
requires:
- name: susaas-service-manager
- name: susaas-api-uaa
provides:
- name: susaas-api-srv-api
properties:
srv-url: ${default-url}
resources:
# ----------------------- UAA SERVICE ------------------------
- name: susaas-uaa
# ------------------------------------------------------------
type: org.cloudfoundry.managed-service
requires:
- name: susaas-router-api
properties:
xsuaa-app: ${xsuaa-app}
XSAPPNAME: ${xsuaa-app}
parameters:
service: xsuaa
service-name: ${space}-susaas-uaa
service-plan: application
path: ./config/xs-security.json
xsuaa-app: susaas-${space}-${org}
config:
xsappname: ${xsuaa-app}
role-collections:
- name: Susaas Member (${space})
description: Member Access
role-template-references:
- '$XSAPPNAME.Member'
- '$XSAPPNAME.Token_Exchange'
- name: Susaas Administrator (${space})
description: Administrator Access
role-template-references:
- '$XSAPPNAME.Admin'
- '$XSAPPNAME.SaaSAdmin'
- '$XSAPPNAME.UserManagementAdmin'
- '$XSAPPNAME.Token_Exchange'
- name: Susaas Extension Developer (${space})
description: Extension Developer Access
role-template-references:
- '$XSAPPNAME.ExtensionDeveloper'
- '$XSAPPNAME.Token_Exchange'
# ----------------- CREDENTIAL STORE -----------------------
- name: susaas-credstore
# -----------------------------------------------------------
type: org.cloudfoundry.managed-service
parameters:
service: credstore
service-name: ${space}-susaas-credstore
service-plan: free
config:
authentication:
type: basic
# --------------------- REGISTRY SERVICE ---------------------
- name: susaas-registry
# ------------------------------------------------------------
type: org.cloudfoundry.managed-service
requires:
- name: susaas-uaa
- name: susaas-srv-api
- name: susaas-router-api
parameters:
service: saas-registry
service-name: ${space}-susaas-registry
service-plan: application
config:
xsappname: ~{susaas-uaa/xsuaa-app}
appName: ~{susaas-uaa/xsuaa-app}
displayName: Sustainable SaaS ${space}
description: Sustainable SaaS Application
category: SaaS Multitenant Apps
appUrls:
onSubscription: ~{susaas-srv-api/srv-url}/-/cds/saas-provisioning/tenant/{tenantId}
onSubscriptionAsync: false
onUnSubscriptionAsync: false
getDependencies: ~{susaas-srv-api/srv-url}/-/cds/saas-provisioning/dependencies
appPlans:
- name: trial
description: Sustainable SaaS trial plan
- name: default
description: Sustainable SaaS default plan
- name: premium
description: Sustainable SaaS premium plan
# ------------------- SERVICE MANAGER SERVICE ----------------
- name: susaas-service-manager
# ------------------------------------------------------------
type: org.cloudfoundry.managed-service
requires:
- name: susaas-uaa
parameters:
service: service-manager
service-name: ${space}-susaas-service-manager
service-plan: container
polling_timeout_seconds: 240
config:
acquireTimeoutMillis: max
polling_timeout_seconds: 480
# -------------- SERVICE MANAGER SERVICE ADMIN ---------------
- name: susaas-service-manager-admin
# ------------------------------------------------------------
type: org.cloudfoundry.managed-service
parameters:
service: service-manager
service-name: ${space}-susaas-service-manager-admin
service-plan: subaccount-admin
# ---------------- APPLICATION LOGGING SERVICE ---------------
- name: susaas-logging
# ------------------------------------------------------------
type: org.cloudfoundry.managed-service
parameters:
service: application-logs
service-name: ${space}-susaas-logging
service-plan: lite
# ----------------- COMMON DB HDI CONAINER -------------------
- name: susaas-com-hdi-container
# ------------------------------------------------------------
type: com.sap.xs.hdi-container
parameters:
service-name: ${space}-susaas-com-hdi-container
properties:
com-container-name: '${service-name}'
# ----------------- DESTINATION SERVICE ----------------------
- name: susaas-destination
# ------------------------------------------------------------
type: org.cloudfoundry.managed-service
requires:
- name: susaas-srv-api
parameters:
service-plan: lite
service-name: ${space}-susaas-destination
service: destination
config:
HTML5Runtime_enabled: true
version: 1.0.0
init_data:
instance:
existing_destinations_policy: update
destinations:
- Name: susaas-srv-api
Description: SusaaS Service API
URL: ~{susaas-srv-api/srv-url}
Type: HTTP
ProxyType: Internet
Authentication: NoAuthentication
HTML5.DynamicDestination: true
forwardAuthToken: true
- Name: SUSAAS_NORTHWIND
Description: SusaaS Northwind
URL: https://services.odata.org/v4/Northwind/Northwind.svc
Type: HTTP
ProxyType: Internet
Authentication: NoAuthentication
HTML5.DynamicDestination: true
# ----------------- HTML REPO HOST SERVICE (Be Used by UI) ---------
- name: susaas-html5-repo-host
# -----------------------------------------------------------------
type: org.cloudfoundry.managed-service
parameters:
service-plan: app-host
service-name: ${space}-susaas-html5-repo-host
service: html5-apps-repo
config:
sizeLimit: 2
# ----------------- HTML REPO RUNTIME SERVICE(Be Used by UI) -------
- name: susaas-html5-repo-runtime
# ------------------------------------------------------------------
type: org.cloudfoundry.managed-service
parameters:
service-plan: app-runtime
service-name: ${space}-susaas-html5-repo-runtime
service: html5-apps-repo
# ----------------- AUTOSCALER ------------------------------------
- name: susaas-autoscaler
# ------------------------------------------------------------------
type: org.cloudfoundry.managed-service
parameters:
service: autoscaler
service-name: ${space}-susaas-autoscaler
service-plan: standard
# ----------------- ALERT NOTIFICATION ----------------------------
- name: susaas-alert-notification
# ------------------------------------------------------------------
type: org.cloudfoundry.managed-service
parameters:
service: alert-notification
service-name: ${space}-susaas-alert-notification
service-plan: free
path: ./config/alert-notif.json
# ----------------- XSUAA - BROKER ---------------------------------
- name: susaas-api-uaa
# ------------------------------------------------------------------
type: org.cloudfoundry.managed-service
parameters:
service: xsuaa
service-name: ${space}-susaas-api-uaa
service-plan: broker
xsuaa-app: susaas-api-${space}-${org}
config:
xsappname: ${xsuaa-app}
properties:
xsuaa-app: ${xsuaa-app}
# ----------------- THEMEING ---------------------------------
- name: susaas-theming
# ------------------------------------------------------------------
type: org.cloudfoundry.managed-service
parameters:
service: theming
service-plan: standard