backbase / bb-fuel Goto Github PK
View Code? Open in Web Editor NEWBackbase DBS data loader tool for test and demo data.
Home Page: https://community.backbase.com/tags/accelerators
License: Other
Backbase DBS data loader tool for test and demo data.
Home Page: https://community.backbase.com/tags/accelerators
License: Other
Hi
I was trying to open https://community.backbase.com/login but I couldn't login!
There is any UI repo too?
The /actuator/health
endpoint is used when -Dhealthcheck.timeout.in.minutes=10 -Dhealthcheck.use.actuator=true
It's calling the wrong endpoint. The called URL has either /client-api
or /integration-api
in it's path. It should be e.g. /api/access-control/actuator/health and not /api/access-control/client-api/actuator/health
Based on the infra setup we have application-k8s.yml
, application-k8s-beta.yml
, etc. These files (i.e. spring profiles) represent different combinations of URLs when dealing with different setups (i.e. lean/triangular, etc.).
The typical pattern for the URLs is the following
...
approvals: http://approvals.${environment.name}.${environment.domain}/integration-api
arrangements: http://arrangement.${environment.name}.${environment.domain}/integration-api
...
On BaaS, since as of September 2020 we have ONE gateway giving you access to multiple services, the suggested way of dealing with such URLs would be
...
approvals: https://app.${environment.name}.${environment.domain}/approvals/integration-api
arrangements: https://app.${environment.name}.${environment.domain}/arrangement/integration-api
...
As you can see the name of the service/capability is not part of the domain but of the context path.
My proposal is to create a new profile that would represent a good base for the typical BaaS setup.
Create lean environment with Identity Enabled.
Add following paramters:
INGEST_ACCESS_CONTROL
INGEST_CUSTOM_SERVICE_AGREEMENTS
INGEST_TRANSACTIONS
INGEST_APPROVALS_FOR_PAYMENTS
INGEST_PAYMENTS
IDENTITY_FEATURE_TOGGLE : Enable
and build.
The build always fails with following error :
Request method: POST Request URI: http://edge.9455.dbs.backbase.test/api/accessgroup-presentation-service/client-api/v2/accessgroups/usercontext?_csrf Proxy: <none> Request params: <none> Query params: _csrf Form params: <none> Path params: <none> Headers: Accept=*/* Content-Type=application/json; charset=UTF-8 Cookies: Authorization=eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJoWHhHQm9SNUtSdW0ybFhNcnRaUGFxNF9GRWNISnBpM0dFS0pnd21pbWRBIn0.eyJleHAiOjE1OTMxNjg4MzUsImlhdCI6MTU5MzE2ODUzNSwianRpIjoiNmRhYmMyZTEtYTNkYS00OWY2LTljODgtZTJjNTc5OTIxMmQ4IiwiaXNzIjoiaHR0cDovL2lkZW50aXR5Ljk0NTUuZGJzLmJhY2tiYXNlLnRlc3QvYXV0aC9yZWFsbXMvYmFja2Jhc2UiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiNjYyOWRhNmQtMzY5Zi00OWEzLTgzZDAtMmFlOGJkNzZkZTRiIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiYmItdG9vbGluZy1jbGllbnQiLCJzZXNzaW9uX3N0YXRlIjoiYTU4ZWZlZmEtNTMwOS00ZDhkLTliODctNjJjM2VjMzJiNDFmIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIqIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJST0xFX0FDVFVBVE9SIiwiUk9MRV9BRE1JTiIsIlJPTEVfZ3JvdXBfYWRtaW4oQURNSU4pIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwidXNlcl9uYW1lIjoiYWRtaW4iLCJuYW1lIjoiQWRtaW4gdXNlciBhZG1pbmlzdHJhdG9yIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiYWRtaW4iLCJnaXZlbl9uYW1lIjoiQWRtaW4gdXNlciIsImZhbWlseV9uYW1lIjoiYWRtaW5pc3RyYXRvciIsImF1dGhvcml0aWVzIjpbIlJPTEVfQUNUVUFUT1IiLCJST0xFX0FETUlOIiwiUk9MRV9ncm91cF9hZG1pbihBRE1JTikiXX0.aRh_SpPDKndkUvRHcjHulUT-C9IO2gPzPha1oU2OtWoCi5xegYNvcde9QwATZYeQtAa9_dfHUP6qV6u7Y2K3_8IdCvI2EHCGzqV-enn-kf86S8I6HDte198Ln09CzL0GK2AuxsH-RhYPaANgrk9gX-cBh7BTMkEmNWIUfVe718O2Rk94GZiOWdYpUHUqmRlN-jcwcd2gOJVv9sXmoV6WphLVS8WQZPojsElMzUrDefmQ1hl3eq2CKblV4ePL3DaeUF9G7EzKi7mTU6zUyS-KvZUKYQKcP8aHAPdkk0y_B_clYltpfx_TLRGbDVVn1XdVfcXQmKK_OlQT1xcgU055SA KEYCLOAK_LOCALE= KC_RESTART= Multiparts: <none> Body: { "serviceAgreementId": "8a49b7eb72f0329e0172f03e337f0001" } HTTP/1.1 403 Forbidden Server: nginx/1.17.8 Date: Fri, 26 Jun 2020 10:48:57 GMT Content-Type: application/json Transfer-Encoding: chunked Connection: keep-alive Vary: Accept-Encoding X-Xss-Protection: 1 ; mode=block Strict-Transport-Security: max-age=31536000; includeSubDomains X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Referrer-Policy: no-referrer X-Download-Options: noopen X-Permitted-Cross-Domain-Policies: none X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache Expires: 0 X-Frame-Options: DENY Set-Cookie: XSRF-TOKEN=f6d5d91f-3596-46ab-b4b1-6d4fec006f62; Path=/ Content-Encoding: gzip { "timestamp": "2020-06-26T10:48:57.869+0000", "status": 403, "error": "Forbidden", "message": "Forbidden", "path": "/client-api/v2/accessgroups/usercontext" } 2020-06-26 12:48:57.948 ERROR [bb-fuel,,,] 24801 --- [ main] o.s.boot.SpringApplication : Application run failed java.lang.AssertionError: 1 expectation failed. Expected status code <204> but was <403>.
When the bb-fuel tries to ingest the P2P Transfer business function an exception is thrown
java.lang.IllegalStateException: Failed to execute ApplicationRunner
Caused by: java.lang.IllegalArgumentException: No matching business function for P2P Transfer
at com.backbase.ct.bbfuel.data.AccessGroupsDataGenerator.lambda$detectBusinessFunction$2(AccessGroupsDataGenerator.java:54)
java.lang.IllegalStateException: Failed to execute ApplicationRunner
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:778)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:765)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:322)
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:140)
at com.backbase.ct.bbfuel.BbFuelApplication.main(BbFuelApplication.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:51)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)
Caused by: java.lang.IllegalArgumentException: No matching business function for P2P Transfer
at com.backbase.ct.bbfuel.data.AccessGroupsDataGenerator.lambda$detectBusinessFunction$2(AccessGroupsDataGenerator.java:54)
at java.util.Optional.orElseThrow(Optional.java:290)
at com.backbase.ct.bbfuel.data.AccessGroupsDataGenerator.detectBusinessFunction(AccessGroupsDataGenerator.java:54)
at com.backbase.ct.bbfuel.data.AccessGroupsDataGenerator.lambda$createPermissionsForJobProfile$3(AccessGroupsDataGenerator.java:62)
at java.util.Arrays$ArrayList.forEach(Arrays.java:3880)
at com.backbase.ct.bbfuel.data.AccessGroupsDataGenerator.createPermissionsForJobProfile(AccessGroupsDataGenerator.java:61)
at com.backbase.ct.bbfuel.configurator.AccessGroupsConfigurator.ingestFunctionGroup(AccessGroupsConfigurator.java:57)
at com.backbase.ct.bbfuel.setup.AccessControlSetup.lambda$ingestFunctionGroups$15(AccessControlSetup.java:303)
at java.util.Arrays$ArrayList.forEach(Arrays.java:3880)
at com.backbase.ct.bbfuel.setup.AccessControlSetup.ingestFunctionGroups(AccessControlSetup.java:287)
at com.backbase.ct.bbfuel.setup.AccessControlSetup.lambda$assembleFunctionDataGroupsAndPermissions$8(AccessControlSetup.java:206)
at java.lang.Iterable.forEach(Iterable.java:75)
at com.backbase.ct.bbfuel.setup.AccessControlSetup.assembleFunctionDataGroupsAndPermissions(AccessControlSetup.java:199)
at com.backbase.ct.bbfuel.setup.AccessControlSetup.setupBankWithEntitlementsAdminAndProducts(AccessControlSetup.java:156)
at com.backbase.ct.bbfuel.setup.AccessControlSetup.initiate(AccessControlSetup.java:133)
at com.backbase.ct.bbfuel.Runner.setupAccessControl(Runner.java:96)
at com.backbase.ct.bbfuel.Runner.ingestEnvironment(Runner.java:83)
at com.backbase.ct.bbfuel.Runner.doIt(Runner.java:62)
at com.backbase.ct.bbfuel.Runner.run(Runner.java:42)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:775)
... 12 common frames omitted
When running script any failure of assigning data groups to service agreement for specific user is not stopping execution but only INFO is logged e.g.
2023-05-08 11:24:03.604 INFO [bb-fuel,,,] 14953 --- [ main] c.b.c.b.c.PermissionsConfigurator : Failed assigning data groups to service agreement [21ab247e-6228-4c72-8bd5-fb208cc22228], user [paddy_brian], function group [com.backbase.integration.accessgroup.rest.spec.v2.accessgroups.IntegrationIdentifier@73da92fa[idIdentifier=8a54137887fb11500187fb1aac7e005e,nameIdentifier=<null>,additions={}]], with data group ids [8a54137887fb11500187fb1aa27a0059, 8a54137887fb11500187fb1aa51e005a, 8a54137887fb11500187fb1aa725005b, 8a54137887fb11500187fb1aaa47005c, 8a54137887fb11500187fb1aa27a0059, 8a54137887fb11500187fb1aa51e005a, 8a54137887fb11500187fb1aa725005b, 8a54137887fb11500187fb1aaa47005c]
2023-05-08 11:24:03.604 INFO [bb-fuel,,,] 14953 --- [ main] c.b.c.b.c.PermissionsConfigurator : Failed assigning data groups to service agreement [21ab247e-6228-4c72-8bd5-fb208cc22228], user [paddy_brian], function group [com.backbase.integration.accessgroup.rest.spec.v2.accessgroups.IntegrationIdentifier@75cc2981[idIdentifier=8a54137887fb11500187fb1aad48005f,nameIdentifier=<null>,additions={}]], with data group ids [8a54137887fb11500187fb1aa27a0059, 8a54137887fb11500187fb1aa51e005a, 8a54137887fb11500187fb1aa725005b, 8a54137887fb11500187fb1aaa47005c, 8a54137887fb11500187fb1aa27a0059, 8a54137887fb11500187fb1aa51e005a, 8a54137887fb11500187fb1aa725005b, 8a54137887fb11500187fb1aaa47005c]
so user is not aware that something went wrong.
In case you are ingesting data to an environment where Transaction Signing is enabled, the creation of the payments via the POST API call will fail returning a 401 error that will consequently trigger an exception.
The body of the response in this case is something like the following
{
"challenges": [
{
"challengeType": "reauth",
"acrValues": "txn-signature-silver txn-signature-gold",
"scope": "confirmation:826ab759-4b09-4a04-9c32-2fca4c78fa9e"
}
],
"data": {
"payment-order-id": "8faf435f-8924-40a9-958f-bfa5ae3811fb",
"amount": "72605.20",
"paymentAmount": "72605.20",
"currency": "EUR",
"counter-party-account": "GB50HPZT11731526136460",
"counter-party-name": "Dominique Rogahn Sr.",
"confirmation-type": "initiate-payment"
}
}
It would be ideal to enable the support for transaction signing via bb-fuel, enabling bb-fuel to generate the required OTP for the payments to be ingested.
12.1
The transaction is response is '[]' for all accounts.
There is some warnings when I run the edge service and ingest local DBS, not sure which is the one causing the issue.
First error for edge service
mvn -f platform/pom.xml -pl edge package -Prun-edge
Second error for bb-fuel
sh dbs/bb-fuel/download-bb-fuel.sh java -Dspring.profiles.active=local -Denvironment.domain=backbase.eu -Dingest.access.control=true -Dingest.custom.service.agreements=false -Dingest.balance.history=false -Dingest.transactions=true -Duse.pfm.categories.for.transactions=true -Dingest.approvals.for.payments=false -Dingest.approvals.for.contacts=false -Dingest.approvals.for.notifications=false -Dingest.approvals.for.batches=false -Dingest.limits=false -Dingest.contacts=false -Dingest.notifications=false -Dingest.payments=true -Dingest.messages=false -Dingest.actions=false -Dtransactions.min=100 -Dtransactions.max=101 -Didentity.feature.toggle=true -Didentity.realm=backbase -Didentity.client=bb-tooling-client -jar bb-fuel.jar
2022-01-07 14:34:32.339 WARN [default,,,] 75112 --- [ main] ubernetesProfileEnvironmentPostProcessor : Not running inside kubernetes. 2022-01-12 11:46:26.172 WARN [default,,,] 21763 --- [ main] ubernetesProfileEnvironmentPostProcessor : Not running inside kubernetes. Skipping 'kubernetes' profile activation.
2022-01-12 11:46:27.041 WARN [edge,,,] 21763 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for "http://localhost:8888/edge/default": Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused)
2022-01-12 11:46:29.857 WARN [edge,,,] 21763 --- [ main] o.s.security.core.userdetails.User : User.withDefaultPasswordEncoder() is considered unsafe for production and is only intended for sample applications.
2022-01-12 11:46:31.932 WARN [edge,,,] 21763 --- [ main] iguration$LoadBalancerCaffeineWarnLogger : Spring Cloud LoadBalancer is currently working with the default cache. You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath.
[ERROR] Could not import package '/Users/zcui/.m2/repository/com/backbase/cxp/editorial-collection/2.23.0-b21/editorial-collection-2.23.0-b21.zip'
[ERROR] I/O error on POST request for "http://localhost:8180/auth/realms/backbase/protocol/openid-connect/token": Connect to localhost:8180 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused); nested exception is org.apache.http.conn.HttpHostConnectException: Connect to localhost:8180 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)
[ERROR] Import failed as there was at least one package that failed.
[ERROR] Terminating with status: FAILED[ERROR] Failed to execute goal com.backbase.maven.plugins:bb-maven-plugin:1.7.0:provision (default-cli) on project collection-experience-manager: Execution default-cli of goal com.backbase.maven.plugins:bb-maven-plugin:1.7.0:provision failed: java.lang.RuntimeException: Import failed as there was at least one package that failed. -> [Help 1]
HTTP/1.1 500
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 12 Jan 2022 20:59:01 GMT
Connection: close{
"message": "Internal Server Error"
}
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v9.Java9 (jar:file:/Users/zcui/BlueFcu-Mobile/blue-12.1/service/maven/retail-banking-usa-maven/bb-fuel.jar!/BOOT-INF/lib/groovy-3.0.7.jar!/) to constructor java.lang.AssertionError(java.lang.String)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v9.Java9
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2022-01-12 15:59:01.334 ERROR [bb-fuel,,,] 30886 --- [ main] o.s.boot.SpringApplication : Application run failedjava.lang.AssertionError: null
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
..
So I run the profiler in Android studio to check the response of transaction, both complete and uncomplete transaction return ‘[]’ an empty array.
When the internal teams released the lean beta services, which means the service is not fully ready yet for the lean architecture, there's no way to ingest data when the service name change.
Create a new spring profile for the lean beta services, with the correct lean service names.
A file called application-k8s-beta
can be created to apply this solution
We use bb-fuel to ingest all the testing/demo data into an environment.
The Quality Engineers uses bb-fuel to ingest data to do frontend tests during the Release Waves and it configures everything we need to do the test/checks.
bb-fuel also ingests all the permissions for a given business function. Most of the permissions vs business function are being ingested by default and we are currently facing two problems from the Batch Payments perspective:
Batch - SEPA CT
permissions are not being ingested, and it was being ingested in the past,
Batch - ACH Credit
, Batch - ACH Debit
, and Batch - Internal Transfers
are not present.
The solution is to add the following permissions for the following job roles/profiles into the job-profiles.json
file on bb-fuel:
Job Profiles | Permissions |
---|---|
Manager (roles: admin, manager) | * Batch - SEPA CT (view, create, edit, delete, approval, cancel) * Batch - ACH Debit (view, create, edit, delete, approval, cancel) * Batch - ACH Credit (view, create, edit, delete, approval, cancel) * Batch - Intracompany Payments (view, create, edit, delete, approval, cancel) * Batch Templates (view, create, edit, delete, approval) |
Finance Employee (roles: admin, employee) | * Batch - SEPA CT (view, create, edit, delete, approval, cancel) * Batch - ACH * Debit (view, create, edit, delete, approval, cancel) * Batch - ACH Credit (view, create, edit, delete, approval, cancel) * Batch - Intracompany Payments (view, create, edit, delete, approval, cancel) * Batch Templates (view, create, edit, delete, approval) |
Job Role Template with all business functions (roles: admin) | * Batch - SEPA CT (view, create, edit, delete, approval, cancel) * Batch - ACH Debit (view, create, edit, delete, approval, cancel) * Batch - ACH Credit (view, create, edit, delete, approval, cancel) * Batch - Intracompany Payments (view, create, edit, delete, approval, cancel) * Batch Templates (view, create, edit, delete, approval) |
Job Role Template with payments business functions (roles: admin) | * Batch - SEPA CT (view) * Batch - ACH Debit (view) * Batch - ACH Credit (view) * Batch - Intracompany Payments (view) * Batch Templates (view) |
When using a client repo proxy (which is normal on customer projects not sharing the master credentials) the wagon urls will not work:
<configuration>
<url>https://repo.backbase.com/specs/accessgroup-integration-service</url>
<fromFile>accessgroup-integration-inbound-api-v2.2.0.yaml</fromFile>
</configuration>
the /specs path is not a repository (under /repo/specs)
Possible fixes:
Add the specs to the repo to make https://repo.backbase.com/repo/specs/accessgroup-integration-service/accessgroup-integration-inbound-api-v2.2.0.yaml work.
Use the bom and uzip all specs from a bom version to the downloaded-api folder:
<artifactItem>
<groupId>com.backbase.dbs</groupId>
<artifactId>banking-services-bom</artifactId>
<version>${dbs-bom.version}</version>
<classifier>api</classifier>
<type>zip</type>
<outputDirectory>${project.build.directory}/specs</outputDirectory>
</artifactItem>
Option 2 makes way more sense because then fuel is in sync with a BB release.
In the current setup, inside the LoginRestClient
class there is a strong assumption
public void loginBankAdmin() {
String admin = legalEntityService.getRootAdmin();
login(admin, admin);
}
that the password of the admin user is his username (admin
:admin
).
On BaaS, for example, this is not true, since all these passwords are generated randomly.
My suggestion is to externalize this configuration in a setting like
root.entitlements.admin.password=password
At the moment all the endpoints listed in the various application-*.yml
files are based on plain http
. There is a growing need to run bb-fuel
against the same secured endpoints (using https
).
It would be nice to have an option to force https
on
In a typical setup you have indeed 2 different kinds of endpoints:
identity
, gateway
, auth
);http
(e.g. registry
, tokenconverter
, accessgroup
, etc.).Hi guys,
I saw your license file and have one question to you. Its text ends as "[Exhibit A– THIRD PARTY COMPONENTS]", but there is no data in this exhibit.
If it is empty, why do you specify this exhibit as existing?
Thanks for explanations.
We intend to remove travis support from our organization, we need to migrate this one (the only one still depending on it) to GitHub actions.
The current application-k8s-beta.yml
profile has the triangular version for the remaining services that should be on lean.
Replace the following services by the following lean reference
dbs-service-names:
accessgroup: access-control
actions: action-service
arrangements: arrangements-manager
billpay: billpay-integrator
legalentity: access-control
limits: limit
messages: messages-service
notifications: notifications-service
payments: payment-order-service
pfm: transaction-category-collector
user: user-manager
products: arrangement-manager
During the bb-fuel data ingestion the full name of the user full_name_up
is added twice in the field
Example of data in the en_user
table
+--------------+-----------------------------+
|external_id |full_name_up |
+--------------+-----------------------------+
|U0001005 |U0001005 U0001005 |
|U0001031 |U0001031 U0001031 |
|U0001037 |U0001037 U0001037 |
|U0001011 |U0001011 U0001011 |
|U0001030 |U0001030 U0001030 |
|U0001025 |U0001025 U0001025 |
|U0001022 |U0001022 U0001022 |
|U0001028 |U0001028 U0001028 |
|U0001024 |U0001024 U0001024 |
|paddy_brian |PADDY_BRIAN PADDY_BRIAN |
|user |USER USER |
|U0001013 |U0001013 U0001013 |
|admin |ADMIN USER ADMINISTRATOR |
|U0000010 |U0000010 U0000010 |
|manager |MANAGER MANAGER USER |
|iris_schipper |IRIS_SCHIPPER IRIS_SCHIPPER |
|U0001001 |U0001001 U0001001 |
|U0001003 |U0001003 U0001003 |
|U0001021 |U0001021 U0001021 |
|U0001012 |U0001012 U0001012 |
|U0001023 |U0001023 U0001023 |
|U0001034 |U0001034 U0001034 |
|U0001004 |U0001004 U0001004 |
|U0001002 |U0001002 U0001002 |
|U0001033 |U0001033 U0001033 |
|U0000011 |U0000011 U0000011 |
|U0001027 |U0001027 U0001027 |
|U0001035 |U0001035 U0001035 |
|designer |DESIGNER DESIGNER USER |
|alex_wong |ALEX_WONG ALEX_WONG |
|U0001015 |U0001015 U0001015 |
|U0001036 |U0001036 U0001036 |
|jan_verschoor |JAN_VERSCHOOR JAN_VERSCHOOR |
|U0001032 |U0001032 U0001032 |
|joe_santorelli|JOE_SANTORELLI JOE_SANTORELLI|
|sarah_lee |SARAH_LEE SARAH_LEE |
|robin_green |ROBIN_GREEN ROBIN_GREEN |
|U0001029 |U0001029 U0001029 |
|U0001014 |U0001014 U0001014 |
|U0001026 |U0001026 U0001026 |
+--------------+-----------------------------+
When the user runs the basic data setup [1] an exception is thrown:
java.net.UnknownHostException: user-manager.9019.dbs.backbase.test: No address associated with hostname
The application-k8s.yml
has changed on the user
service, where they were updated to the lean version, but it's not ready yet on the regular environment creation.
We must revert back the changes for the user
service, where the new values should be:
bb-fuel:
dbs:
user: http://user.${environment.name}.${environment.domain}/client-api
dbs-service-names:
user: user-presentation-service
It happens in the latest version.
A possible workaround is to use the 2.6.13
When the user tries to ingest data using the local profile the execution fails.
It's happening in the 2.6.45
version.
java -Dspring.profiles.active=local -Denvironment.domain=backbase.eu \
-Dingest.access.control=true -Dingest.custom.service.agreements=false \
-Dingest.balance.history=false -Dingest.transactions=true \
-Duse.pfm.categories.for.transactions=true -Dingest.approvals.for.payments=false \
-Dingest.approvals.for.contacts=false -Dingest.approvals.for.notifications=false \
-Dingest.approvals.for.batches=false -Dingest.limits=false -Dingest.contacts=false \
-Dingest.notifications=false -Dingest.payments=true -Dingest.messages=false \
-Dingest.actions=false -Dtransactions.min=100 -Dtransactions.max=101 \
-Didentity.feature.toggle=true -Didentity.realm=backbase -Didentity.client=bb-tooling-client -Dlegal.entities.with.users.json=data/legal-entities-with-users-retail.json \
-Dproduct.group.seed.json=data/product-group-seed-retail.json \
-Dservice.agreements.json=data/service-agreements-retail.json \
-jar ./bb-fuel.jar
2021-03-10 14:31:50.622 INFO [bb-fuel,,,] 43406 --- [onPool-worker-5] .b.c.p.ArrangementsIntegrationRestClient : Product [Savings Account] ingested
2021-03-10 14:31:50.643 INFO [bb-fuel,,,] 43406 --- [nPool-worker-11] .b.c.p.ArrangementsIntegrationRestClient : Product [Debit Card] ingested
2021-03-10 14:31:50.644 INFO [bb-fuel,,,] 43406 --- [onPool-worker-9] .b.c.p.ArrangementsIntegrationRestClient : Product [Term Deposit] ingested
2021-03-10 14:31:52.809 ERROR [bb-fuel,,,] 43406 --- [ main] com.backbase.ct.bbfuel.Runner : Failed setting up access
java.net.SocketException: Connection reset
at java.base/java.net.SocketInputStream.read(SocketInputStream.java:186)
at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:161)
at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:82)
at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:276)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:294)
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:257)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:207)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:679)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:481)
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
at org.apache.http.client.HttpClient$execute$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at org.apache.http.client.HttpClient$execute$0.call(Unknown Source)
at io.restassured.internal.RequestSpecificationImpl$RestAssuredHttpBuilder.doRequest(RequestSpecificationImpl.groovy:2055)
at io.restassured.internal.http.HTTPBuilder.doRequest(HTTPBuilder.java:494)
at io.restassured.internal.http.HTTPBuilder.request(HTTPBuilder.java:451)
at io.restassured.internal.http.HTTPBuilder$request$3.call(Unknown Source)
at io.restassured.internal.RequestSpecificationImpl.sendHttpRequest(RequestSpecificationImpl.groovy:1451)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:819)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at io.restassured.internal.RequestSpecificationImpl.sendRequest(RequestSpecificationImpl.groovy:1200)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:819)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:166)
at io.restassured.internal.filter.SendRequestFilter.filter(SendRequestFilter.groovy:30)
at io.restassured.filter.Filter$filter$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at io.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:72)
at io.restassured.filter.time.TimingFilter.filter(TimingFilter.java:56)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at io.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:72)
at io.restassured.filter.log.StatusCodeBasedLoggingFilter.filter(StatusCodeBasedLoggingFilter.java:112)
at io.restassured.filter.log.ResponseLoggingFilter.filter(ResponseLoggingFilter.java:31)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at io.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:72)
at io.restassured.filter.log.RequestLoggingFilter.filter(RequestLoggingFilter.java:140)
at io.restassured.filter.Filter$filter.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at io.restassured.filter.Filter$filter$0.call(Unknown Source)
at io.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:72)
at io.restassured.filter.FilterContext$next.call(Unknown Source)
at io.restassured.internal.RequestSpecificationImpl.applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy:1655)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:819)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:203)
at io.restassured.internal.RequestSpecificationImpl.applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy:1661)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:819)
at io.restassured.internal.RequestSpecificationImpl.invokeMethod(RequestSpecificationImpl.groovy)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.callCurrent(PogoInterceptableSite.java:55)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:203)
at io.restassured.internal.RequestSpecificationImpl.get(RequestSpecificationImpl.groovy:171)
at io.restassured.internal.RequestSpecificationImpl.get(RequestSpecificationImpl.groovy)
at com.backbase.ct.bbfuel.client.accessgroup.UserContextPresentationRestClient.getServiceAgreementsForUserContext(UserContextPresentationRestClient.java:63)
at com.backbase.ct.bbfuel.client.accessgroup.UserContextPresentationRestClient.getMasterServiceAgreementForUserContext(UserContextPresentationRestClient.java:67)
at com.backbase.ct.bbfuel.client.accessgroup.UserContextPresentationRestClient.selectContextBasedOnMasterServiceAgreement(UserContextPresentationRestClient.java:38)
at com.backbase.ct.bbfuel.setup.AccessControlSetup.createLegalEntitiesUserContextMap(AccessControlSetup.java:171)
at com.backbase.ct.bbfuel.setup.AccessControlSetup.assembleFunctionDataGroupsAndPermissions(AccessControlSetup.java:192)
at com.backbase.ct.bbfuel.setup.AccessControlSetup.setupBankWithEntitlementsAdminAndProducts(AccessControlSetup.java:156)
at com.backbase.ct.bbfuel.setup.AccessControlSetup.initiate(AccessControlSetup.java:133)
at com.backbase.ct.bbfuel.Runner.setupAccessControl(Runner.java:96)
at com.backbase.ct.bbfuel.Runner.ingestEnvironment(Runner.java:83)
at com.backbase.ct.bbfuel.Runner.doIt(Runner.java:62)
at com.backbase.ct.bbfuel.Runner.run(Runner.java:42)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:786)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:776)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:322)
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:140)
at com.backbase.ct.bbfuel.BbFuelApplication.main(BbFuelApplication.java:20)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:109)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
I am using bb-fuel
version 2.5.12 (for DBS 2.17.3). When ingesting the messages for Message Center, I get the error below
Request method: POST
Request URI: https://localhost/api/messages-presentation-service/v4/message-center/topics?_csrf=d81fd1c3-d91b-4234-8ab5-8c8e4f71f019
Proxy: <none>
Request params: <none>
Query params: _csrf=d81fd1c3-d91b-4234-8ab5-8c8e4f71f019
Form params: <none>
Path params: <none>
Headers: Accept=*/*
Content-Type=application/json; charset=UTF-8
Cookies: Authorization=eyJraWQiOiJNYmV1VmVVWlhVT2FJcDgwYmx1XC9sanFOQjNKZE9aSDgxQ3JGU0tpMmVcL2M9IiwiY3R5IjoiSldUIiwiZW5jIjoiQTEyOENCQy1IUzI1NiIsImFsZyI6ImRpciJ9..UBI7-aBKE0hWnWnTugATuw.BmTobQi7qdB58MFI0CJb4s_3R6kXKOenRpYOSEg18CbpWBw6podVqAjS-VrzDRQQQUcqzFEaXXihmWBLNI_mhizaZfKvLXyNkvYZTJqidp7j7jZnw6axME4LRV0j9XaEyaLYcIDGGQfoVY8FeS1X_qwkDeVLjaeBpYbvsRUUpV-u2bouMIPGnk5tcShA9KVMuNcveIUD1kVO4xTO6kGn2nG5nl2UFKkZNw2VkCCYnCvWDqxwmXYU5aM1aY6N81dujZFrHovYAeJwTzLP-gE23yJeU2VlMdlNy0KsZjcA0ubQ5tVDMqnC4zipSgptlPIsHbKBzCkhaubmW3lNbjIedOZjtrtY_694pQaJPFregYZa9NksLGp_eMbdOwcRFIBKgCVqyDpDLTHrILJhqDm6j_FDmGhgIQ_gbOqFhx7S1kpP4AocKWZfBLUPUBZcouFM7xvcD9Sd_fozIGX_jpJnuTWdkJTvQYqzJFkgAazSrPTZk5iDfetsd8Mo3t3mU3R1uVeIWpsh0044YEBWMWINOYI5zvw4vSz6r7XnIkVzHjYiutFzbTzZJSQZp1ggnEnGlgHruowX7nYQaWOdBc-nML7Sr1tXyEwHcTts0CO5ZOf9PqinGWnzJxuteJrMS3EL.Mn_rVy6IvEl4s3Io8fTZgQ
XSRF-TOKEN=d81fd1c3-d91b-4234-8ab5-8c8e4f71f019
USER_CONTEXT=eyJraWQiOiJaNXB5dkxcL3FMYUFyR3ZiTkY3Qm11UGVQU1Q4R0I5UHBPR0RvRnBlbmIxOD0iLCJjdHkiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..i7-kzN_QUBMjEKeSUN4FwA.aFJH_cLqSDMuIBqRa8-3RTCbXTOXwJA2uXsFKnWxokug5VO63rsTsgkwaiR8c6qQgztl6-6aAsWrEtPwdfOZpMPNRgLOaxF3eOyEKOvpsca-oSC6gwbXSQM88M5wQpeEwA1Uk73iSas4n5JUY2mYOsYkTXQuUWxXKPtDs8jqSqVa8_22NonpHZZjfLbsokfqyLPisltKNEgeOiVtCL1Asum1ZhOy1Oh3e0kKX6KuIn7dHPT62QiOdhTMfkRFE_XKhipVUtCh3HF9UJmduqQ0pvzurMmQ8JLP2C8SFvSPvPcsPEGl6Kp-UH9aEi2SySaS.J4kqVxk0Q8y1nLKASop4Ew
Multiparts: <none>
Body:
{
"name": "Odit saepe.",
"subscribers": [
"admin"
]
}
HTTP/1.1 400
Server: nginx/1.17.8
Date: Mon, 04 May 2020 13:26:57 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 141
Connection: keep-alive
Set-Cookie: XSRF-TOKEN=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
Set-Cookie: XSRF-TOKEN=72a1d0cd-d032-404d-a9f3-04ecd91bdb20; Path=/
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Referrer-Policy: no-referrer
Strict-Transport-Security: max-age=15724800; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
{
"message": "Not all users were found.",
"errors": [
{
"message": "Not all users were found.",
"key": "user.get.error.message.ALL_USERS_NOT_FOUND"
}
]
}
2020-05-04 15:26:57.819 ERROR [bb-fuel,,,] 78834 --- [ main] o.s.boot.SpringApplication : Application run failed
java.lang.AssertionError: 1 expectation failed.
Expected status code <202> but was <400>.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80)
at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:74)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:249)
at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.validate(ResponseSpecificationImpl.groovy:483)
at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure$validate$1.call(Unknown Source)
at io.restassured.internal.ResponseSpecificationImpl.validateResponseIfRequired(ResponseSpecificationImpl.groovy:655)
at sun.reflect.GeneratedMethodAccessor300.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:190)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:58)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:168)
at io.restassured.internal.ResponseSpecificationImpl.statusCode(ResponseSpecificationImpl.groovy:123)
at io.restassured.specification.ResponseSpecification$statusCode$2.callCurrent(Unknown Source)
at io.restassured.internal.ResponseSpecificationImpl.statusCode(ResponseSpecificationImpl.groovy:131)
at io.restassured.internal.ValidatableResponseOptionsImpl.statusCode(ValidatableResponseOptionsImpl.java:119)
at com.backbase.ct.bbfuel.configurator.MessagesConfigurator.lambda$ingestConversations$0(MessagesConfigurator.java:58)
at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:110)
at java.util.stream.IntPipeline$Head.forEach(IntPipeline.java:559)
at com.backbase.ct.bbfuel.configurator.MessagesConfigurator.ingestConversations(MessagesConfigurator.java:54)
at java.util.ArrayList.forEach(ArrayList.java:1257)
at com.backbase.ct.bbfuel.setup.CapabilitiesDataSetup.ingestConversationsPerUser(CapabilitiesDataSetup.java:158)
at com.backbase.ct.bbfuel.setup.CapabilitiesDataSetup.initiate(CapabilitiesDataSetup.java:66)
at com.backbase.ct.bbfuel.Runner.ingestCapabilityData(Runner.java:101)
at com.backbase.ct.bbfuel.Runner.ingestEnvironment(Runner.java:84)
at com.backbase.ct.bbfuel.Runner.doIt(Runner.java:62)
at com.backbase.ct.bbfuel.Runner.run(Runner.java:42)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:772)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:762)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:319)
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:140)
at com.backbase.ct.bbfuel.BbFuelApplication.main(BbFuelApplication.java:20)
The reason is that the api POST /messages-presentation-service/v4/message-center/topics
can only accept a list of internal user ids, while bb-fuel is sending admin that is an external user id (specifically as subscriber of the topic).
I have a fix for it, using the userPresentationRestClient
to translate the external user id into an internal user id. How can I be sure I follow the right process to submit the fix in the appropriate version bb-fuel?
During contact ingestion, the BBAN is being ingested instead of IBAN (the should be the default).
Part 1
The data.properties file has the contacts.account.types
as IBAN and BBAN values, like this
# Available account types for user: BBAN/IBAN
# This is a comma (,) separated value
contacts.account.types=BBAN,IBAN
It should be one or another. It can be set either changing the file or set the property during the bb-fuel execution.
Part 2
The ContactsDataGenerator class has an if statement that will always ingest the BBAN as an account instead of IBAN.
The first if
checks if the contacts.account.types
property contains the value IBAN
and set the IBAN. It's true when you have the IBAN,BBAN
.
The second if
checks if the contacts.account.types
property contains the value BBAN
and set the BBAN. It's true when you have the IBAN,BBAN
.
So, in this case, the BBAN will always be set.
The approach was made to support both, but currently, we can not support data ingestion for both.
Change 1
Use either IBAN or BBAN value on contacts.account.types
, not both separated by comma (current approach). We can add a comment describing that we can only support one or another.
** Change 2**
Replace the two if
statement by an if-else
statement, so we can support one or another
When the user tries to ingest data using the Kubernetes beta services profile (k8s-beta) the execution fails.
It's happening in the 2.6.18
version.
It prevents all the user to ingest data in an environment that has lean beta services,
java -Dspring.profiles.active=k8s-beta -Denvironment.name=10221.dbs -Dbb-fuel.platform.infra=http://10221.dbs-backbase.test -Dingest.access.control=true -Dingest.custom.service.agreements=true -Dingest.balance.history=false -Dingest.transactions=false -Duse.pfm.categories.for.transactions=false -Dingest.approvals.for.payments=false -Dingest.approvals.for.contacts=false -Dingest.approvals.for.notifications=false -Dingest.approvals.for.batches=false -Dingest.limits=false -Dingest.contacts=false -Dingest.notifications=false -Dingest.payments=false -Dingest.messages=false -Dingest.actions=false -Dingest.billpay=false -Didentity.feature.toggle=false -Didentity.realm=backbase -Didentity.client=bb-tooling-client -Dmulti.tenancy.environment=false -Dhealthcheck.use.actuator=true -jar target/bb-fuel-2.6.19-SNAPSHOT-boot.jar
java.lang.IllegalStateException: Failed to execute ApplicationRunner
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:778)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:765)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:322)
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:140)
at com.backbase.ct.bbfuel.BbFuelApplication.main(BbFuelApplication.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:51)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.get(ArrayList.java:433)
at com.backbase.ct.bbfuel.util.ResponseUtils.getBadRequestMessage(ResponseUtils.java:19)
at com.backbase.ct.bbfuel.util.ResponseUtils.isBadRequestExceptionMatching(ResponseUtils.java:24)
at com.backbase.ct.bbfuel.service.LegalEntityService.ingestLegalEntity(LegalEntityService.java:36)
at com.backbase.ct.bbfuel.configurator.LegalEntitiesAndUsersConfigurator.ingestRootLegalEntityAndEntitlementsAdmin(LegalEntitiesAndUsersConfigurator.java:39)
at com.backbase.ct.bbfuel.configurator.LegalEntitiesAndUsersConfigurator.ingestLegalEntityWithUsers(LegalEntitiesAndUsersConfigurator.java:31)
at com.backbase.ct.bbfuel.setup.AccessControlSetup.setupBankWithEntitlementsAdminAndProducts(AccessControlSetup.java:154)
at com.backbase.ct.bbfuel.setup.AccessControlSetup.initiate(AccessControlSetup.java:133)
at com.backbase.ct.bbfuel.Runner.setupAccessControl(Runner.java:96)
at com.backbase.ct.bbfuel.Runner.ingestEnvironment(Runner.java:83)
at com.backbase.ct.bbfuel.Runner.doIt(Runner.java:62)
at com.backbase.ct.bbfuel.Runner.run(Runner.java:42)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:775)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.