Question

Questioner

Answer

Status

Please introduce the total flow when BO request demand.

After MVP, what is the whole process?

User bd920

(blue star)

Give some context upon an epic so that we can know the big picture and the connections among tasks for this epic (or Task and it’s sub tasks).

User 26791

(blue star)

About insertion and update of /admin/address-catalogue, what is the context? Was there any discuss or plan with BO.

User bd920

There is no requirement about it before.

(blue star)

about SM-6963, about stop retrying, need to send ticket manager?

User bd920

happy path, no need.

(blue star)

https://safibank.slack.com/archives/C03GPQ9KN02/p1668997477101189

User bd920

Matej answered it.

(blue star)

Atome was moved to "public launch" scope. Need handover all previously design, conversation and anything else related to it.

User bd920

answer:https://safibank.slack.com/archives/D03UZL7L7EG/p1669055325662239

(blue star)

what the meaning of https://safibank.atlassian.net/wiki/spaces/ITArch/pages/200704278

User bd920

Pete wrote it, and will move the link under Credit Risk Management.

(blue star)

If there is more error code adding, what is the process? Need FE to modify corresponding?

FE display the description from BE?

User bd920

The error message is used for logging purposes only (it is ignored in FE app) .

The FE needs to convert the error code only to localized message.

If the new error code is introduced:

(blue star)

Save application , what is the logic about "Resetting the onboarding flow" 2.
It will recreate a new customerId, or re-use it? https://safibank.slack.com/archives/C03GPQ9KN02/p1669189197812929

User bd920

https://safibank.slack.com/archives/C03GPQ9KN02/p1669191726435879?thread_ts=1669189197.812929&cid=C03GPQ9KN02

(blue star)

It seems that whenever we receive a API request, we are having multiple database transactions. What’s the reason behind? and aren’t we wanting to save the data all at once to improve the performance?

User bf1a8

Idempotency Key Implementation: https://github.com/SafiBank/SaFiMono/pull/7115/files

Thread: https://safibank.slack.com/archives/C04AX78NFJL

(blue star)

When new APIs are to be implemented, how is coordination being done? Who decides what will be included in the contracts and different scenarios to be covered?

User bf1a8

The contract is discussed beforehand and it should follow RESTful practices.

Then BE introduces the contract and FE tries to use it. If it can’t be used it has to be updated based on the FE review.

(blue star)

Can we discuss about how customer can recover his account? For example he onboards in a phone, lost it and wants to access it again in a new phone?

User bf1a8

As discussed during the handover, this is out of scope. Covered by IAM

(blue star)

Can we discuss about unfinished onboarding invalidation? How does it work?

User bf1a8

see: https://safibank.atlassian.net/wiki/spaces/ITArch/pages/185008406/Onboarding+Customer+Scheduled+System+Processes#Invalidate-Unfinished-Onboardings
The process changes the customer’s status to OFFBOARDED when his/hers onboarding process is not finished within 7 days.

(blue star)

about ID card document verified, if the AAI detecting forgery is reliable. How to improve the whole process

hui.zhu (Unlicensed)

The document verification feture (comes from backoffice squad) and ID Card forgery feature (comes from our requirements) are 2 separate things. If the backoffice squad would like to have a logic based on the ID Card forgery - we could implement it.

(blue star)

Hi, about vKYC, right now, because of kafka sending problem, after vKYC agent submiting, App will stuck in this step. Customer would click the button to initiate a call to agent again.

  1. Is it allowed normal behavior to call agent twice? The similar related issue https://safibank.slack.com/archives/C03GPQ9KN02/p1669221100869759?thread_ts=1669217813.795359&cid=C03GPQ9KN02

  2. If it is allowed to have vKYC many times, what's the priority for these vKYC. For example, firstly, agent reject(some information is missing); second, agent approved(full information). But because of kafka sending error or other unknown issue, customer BE don't recieve the approved kafka message, so the vKYC Reconciliation would retry it. So which vKYC result can be used(first reject or second approve)?

https://safibank.slack.com/archives/C03GPQ9KN02/p1669271539589489

hui.zhu (Unlicensed)

create Jira to solve it

(blue star)

search @Deprecated in customer BE, there are some endpoint. Should it be remove like

hui.zhu (Unlicensed)

AAI-GW:

@Deprecated class OCRControllerV1 // can be removed after SM-7309 is DONE

CM:

@Deprecated fun createArea(...) // ask backoffice squad - but I think they are not using it - could be removed
@Deprecated fun getRootLevelAreas(...) // FE should be ready, ask backoffice too
@Deprecated fun getSubAreas(...) // FE should be ready, ask backoffice too
@Deprecated fun createResidentialAddress(...) // FE should be ready - could be removed
@Deprecated fun createResidentialAddress(...) // ask the backoffice if they are ready (if they migrated)
@Deprecated fun getIdByPhoneNumber(...) // it should be ready to remove (maybe confirm with FE)
@Deprecated fun getCustomerDocuments(...) // should not exist at all

if agent didn’t pick all, how to do about vKYC Reconciliation

hui.zhu (Unlicensed)

This is beyond the scope of our responsibility

(blue star)

What happen if VKYC picks up the call and the Notify Outbound URL callback is not received by SaFi systems?

Matej Nikorovič (Unlicensed)

source: https://safibank.slack.com/archives/C03NBU9589F/p1669364029440499?thread_ts=1669294157.089919&cid=C03NBU9589F

Workaround without VKYC API Update: SM-7630 - BE: Initiate Instant VKYC call when VKYC callback about scheduled call was not received To Do

(blue star)

every method use “customerStatusCheckService.checkCustomerStatus(customerId, CustomerAccessGroup.PROSPECT)“, suggest to optimize to implement with annotation

hui.zhu (Unlicensed)

add Jira task

(blue star)

face compare with ID card or previous selfie, didn’t check the document verified. I think it is risk.

hui.zhu (Unlicensed)

the id card detecting forgery is done in OSP and vKYC.

document verified is BO to take care

(blue star)

there is no process to describe what’s the interaction with other squad, like authenticate(iam), admin manager(backoffice)

If the main process is belonging to another squad, it still need a confluence link to other squad’s process diagram. Then we can know which squad have relationship with customer squad.

hui.zhu (Unlicensed)

/v1/face-comparison/{livenessId}
From confluence process page: this endpoint sends compare id card event to kafka and then return customer DTO to FE. If later customer-manager handle the compare-id-card event and fail, how FE knows?

User 26791

FE doesn’t need to know it.

It is the same with ID card forgery.

(blue star)

Offboarding process has 11 todo JIRAs, can give us as many context as possible.

User 26791

Deven will push it in slack

(blue star)

Offboarding process: finish endpoint: in Confluence page, it says first lock customer locally, after some tasks done, unlock customer locally, I didn't see these steps in code

User 26791

https://safibank.slack.com/archives/C03MD6K9EJV/p1669701187131399

(blue star)

Sign up: otp smsErr property not used
if (smsError != null) {
 updateOtp(otpEntity.copy(smsError = smsError))
}

User 26791

https://safibank.slack.com/archives/C03MD6K9EJV/p1669701651963759

(blue star)

Offboarding: listFailedOffboardingConditions() includes PENDING_OFFBOARDING OFFBOARDED
finalizeOffboarding and checkOffboardingConditions will call it. what is the reason OFFBOARDED still in accepted status for listFailedOffboardingConditions

User 26791

(blue star)

Offboarding rollback
TODO("Change state back to the one before offboarding.") what is current status and possible apporach?

User 26791

Misc
offboarding endpoints in confluence page
1 /v1/admin/customers/{customerId}/offboarding/initiate : should be start
2 /v1/admin/customers/{customerId}/offboarding/commit : should be finish

AAI VKYC reconciliation

Sign up
4 . /sign-up No Referal code handle function in Sequence Diagram

User 26791

1, 2, 4: https://safibank.slack.com/archives/C03MD6K9EJV/p1669703441307939 https://github.com/SafiBank/SaFiMono/pull/8044

(blue star)

Misc

3 GET /v1/vkyc-call/{transactiondId}/summary: confluence shows it's asyn, but code is sync call

User 26791

3: it is mentioned in 2 places and on the both places the call is sync see the following pictures:

source: https://safibank.atlassian.net/wiki/spaces/ITArch/pages/590076/Onboarding+Process#Video-KYC-call

source: Immediate and Scheduled VKYC call using Advance AI

(blue star)

Misc

5 TODO - SM-4545 - This client call should be triggered asynchronously via Kafka for otp resend client. better some background

User 26791

5: REST call within DB transaction causes DB connection pool starvation → all the REST calls should be outside of DB transaction to improve higher availability + receiving the SMS is asyc process from customer’s perspective

Where do we get the values for ph_addresses.zip?

Enrico Benedict Quiñones (Unlicensed)

From Pavel. exported from other system.

Martin Vodila (Unlicensed) pass the script link here

Script → app/scripts/tools/addresses_convertor/convert_raw_to_tree.dart (input is json exported from xls table)

(blue star)

Do we run Google Composer/Airflow scripts locally for testing purposes?

Enrico Benedict Quiñones (Unlicensed)

(blue star)

who is the first person responsible for review code(customer, advanceai gateway) on github.

hui.zhu (Unlicensed)

the whole team - it’s preferred to have at least 2 approvals

(blue star)

about TODO, is it approved by Pavel and Risk team? Should we consider to implement it in next Sprint.

there is similar case, please provide their context, and should we need continue to improve it.

hui.zhu (Unlicensed)

about the deduplication rule, I want to improve it. What your suggestion?

  1. using coroutine instead of iterating for each rule.check(querying db, face searching AAI).

  2. about the result for duplicated customer id list of each rule, using set instead of list, so osp could not process the same customer id twice

hui.zhu (Unlicensed)

It is strange one id card → two documents.

I think from the model, one id card → one document(verification, deleted or not).

the frontside, backside photo → two document(google storage)

hui.zhu (Unlicensed)

Is there any suggest to do idempotency?

As I understanding, we should firstly list all controllers with idempotency header, and all consumers.

Then collect all services and producer s that used by these controllers and consumers.

finally add the idempotency-lib to these items.

hui.zhu (Unlicensed)

why does repository need transactional MANDATORY. that cause some query function private to pulic