Amac Backlog bilesenlerini (Feature) Roadmap fazi ile iliskili olarak olusturulmasi.
## Roadmap
```plantuml
@startgantt
<style>
ganttDiagram {
task {
FontName Helvetica
FontColor blue
FontSize 18
FontStyle bold
BackGroundColor GreenYellow
LineColor blue
}
</style>
Project starts 2023-07-01
printscale weekly
-- UI/UX Competition --
[1-Acik Bankacilik] lasts 13 weeks
[2-BBT Migration] as [DT] lasts 13 weeks
[2-BBT Migration] starts at [1-Acik Bankacilik]'s end
[3-Enhancements] lasts 1 weeks
[3-Enhancements] starts at [2-BBT Migration]'s end
@endgantt
```
## Identity Management
### Pre-Tasks
- [ ] Internet Bankaciligi backoffice uygulamasinda kullanici yonetimi, limit yonetimi gibi var olan identity server iliskili tum fonksiyonlarin analizi. *Bu analiz ciktilari BBT tagi ile backloga eklenecek. Tahminen irili ufakli bir kac workflow ve ekran ihtiyaci olacak*
* https://mordor-identityserver.burgan.com.tr/ üzerinden incelenebilir.
* Bayi kullanıcıları yönetimi
* Entegrasyon kullanıcıları
* Entegrasyon müşteri hesapları (Bu aslında client)
* Bu konularda Berdan'lar dan bilgi alınması gerekiyor.
- [ ] Cagri merkezi IB kullaniminda IVR ile kullanici dogrulama ve delegasyon konularinin netlestirilmesi. :dagger_knife: Burada Iletisim kanallari ekibine ciddi is cikabilir, konu onlarla oncelikli degelendirilmeli.
- [ ] BBT IB icin kullanilan Role ve resourcelarla ilgili privilege methodlarinin tespit edilmesi ve gelistirme ihtiyaci duyan methodlar icin ek taleplerin ilgili birimlere olusturulmasi.
- [ ] Burada bir hesap için kullanıcı eşleşmesi yapan servis olduğu biliniyor (Ocelot üzerinde)
### Backlog
* **Login surecinin gelistirilmesi(1)**: *Turkiye 2FA surecinin as is sekilde tasarlanmasi. Kullanici dogrulamasi sirasinda ilk adimdan once kullanici bilgilerinin var olan sistemden tasinarak surecin ilerletilmesi.*
* Login sırasında kullanıcı bulunamaz ise internet bankacılığı üzerinden migrate edilmesi için çalışma yapılacak (Burada bir worker migrate sürecini yönetiyor olacak. Süreç akışı çizilip, teknik detaylandırma yapılacak)
* IB tarafında password security algoritması PBKDF2, Amorphie tarafında Argon2 kullanılıyor.
* IB tarafında Gizli soru cevabı Advanced Encryption Standard (AES), Amorphie tarafında Argon2 kullanılıyor.
* **SSO Consent akisinin Acik Bankacilik icin gelistirilmesi(1)**:Kullanici login surecinden sonra Consent kaydi yok ise gerekli consentin alinmasi icin gereken akisin eklenmesi.
* :warning: Is birimi sozlesme onaylatacak ise simdiden hazirlamasi. :dagger_knife: Sozlesme yonetimi olmadigindan bu kisim nasil halledilecek karar vermek lazim
* (Sözleşme statik HTML olarak tutulacak diye konuşuldu)
* Sözleşme metni iş biriminden istenecek (Kemal Yavuzçetin - Anıl Memiş )
* **Acik bankacilik HHS yonetim servislerinin gelistirilmesi(1)** Riza isteme, Riza sorgulama gibi servilerin Acik bankacilik semalarina ozel olarak tasarlanmasi ve sertifikasyonlarinin yapilmasi.
* :warning: Servisler ayri bir projede gelisirilmeli ve amorphie standart servisleri ile haberleserek yanitlari donmeli. Bir nevi mapper servisler olmali.
* **Hesap Bilgisi Hizmeti**
1. Hesap Bilgisi Rızasının Hazırlanması
2. Hesap Bilgisi Hizmeti Rızasının Tesisi
3. Hesap Bilgisi Rızasının Sorgulanması
4. Hesap Bilgisi Rızasının İptali
5. Hesap Bilgilerinin Alınması
Yukarıdaki adımlar bu servis ile gerçekliştirilecek
* **Ödeme Emri Başlatma Hizmeti**
(Konuşulup karar verilecek)
* **SSO Consent kaydi icin maker/checker destekli bir is akisi olusturulmasi(1)**
* Rıza kaydının oluşup, ardından kullanıcı tarafından onaylanması sürecidir. Örneğin açık bankacılık hesap ekleme sırasında hesapların seçilip kullanıcı tarafından onaylanması süreci gibi
* **SSO Consent Kurumsal(Bayi ve Kurumsal Musteri gibi) akis tasarlanmasi(3)**: Sirket yetkilileri tarafindan davet usulu ile yetkili calisanlarin register olup sirket icin yetkilendirilmeleri sureci tasarlanmali.
(Daha sonra detaylandırılacak)
* **sso.amorphie uzerinden API Key aliminin yetkili kullanici tarafindan online olarak yapilabilmesi.(3)**
* API Key icin gereken client taniminin belirlenmesi, ilgili client ozelinde birden fazla token alinabilmesinin saglanmasi hedeflenmektedir.
* :Warning: API Key kullanmimi icin ek guvenlik icin IP sinirlandirmasi degerlendirilmeli.
* **sso.amoprhie uzerinden kullanici kayit akisinin gelirilmesi(1)**
* ekyc gerektirmeyen kurumsal kullanicilar, bayi kullanicilari, Acik Bankacilik uygulama kullanici gibi kullanicilarin kayit sureci.
(Açık bankacılık için örnek bir kayıt flow'u yapıldı ve demo da sunuldu. Burada potansiyel müşteri süreci eklenebilir.)
* **sso.amoprhie uzerinden musteri kayit akisinin gelirilmesi(3)**
* ekyc destekli kayit akisinin gelistirilmesi.
* :warning: Var olan kullanicilarin sadece kimlik dogrulama ve goruntulu gorusme sonrasinda musteriye donusmesinin saglanmasi.
* :dagger_knife: Is biriminden bu surec icin destek ve teyid alinmali.
* **sso.amorphie entegrasyon kullanıcıları(2)**
* Mevcur identityserver üzerinde yer alan entegrasyon kullanıcıları (Berdan'dan destek alınacak)
* **Resource ve consent apisix plugin yazılması - Tahir(2)**
* **Consent microservice geliştirmeleri(2)**
* Açık bankacılık diğer banka consent bilgilerinin saklanması
* Burgan consent bilgilerinin saklanması
* IDM için consent bilgilerinin saklanması
* HSS - Burgan consent bilgilerinin için hesap seçim ve yetki ekranlarının yapılması
* **Refactor (3)**
* Tüm servislerin refactor edilmesi
## Workflow
### Pre-Tasks
- [ ] Banka kullanicialrinin yetkilendirilme surecinde kullanilan Temel bankacilik SSO sisteminin incelenmesi ve know-how aktarimi icin bilgi analiz yapilmasi.
### Backlog
* **Workflow state transtion bazinda role yetkilendirmesi mekanizmanin kurgulanmasi, guvenlik kararinin verilmesi(2).**
* Workflow servislerinin tuketiminde Resource/Priviliges altyapisi direkt kullanilabilir. Yetki kontrolu gateway seviyesinde yapilabilir.
* :warning: Kullanici rolunden mi gidecek? (Amorphie kullanici tekil role eslesmesi destekliyor. Role altinda detay bir kirilim ihtiyaci olacaktir. **Duties** gibi). Veya kullanici ve coklu role atamasi dusunulebilir :dagger_knife: Musteri kullanici role yonetimi zorlastirir.
* **Human Task Management fonksiyonun gelistirilmesi(3): State ozelinde Task Pool'a dusecek kayitlar icin configurasyon yapilmasi.**
* Kavramsal calisma :https://hackmd.io/RqLXw-M3RjWvRTs0BmjR8Q
* Task liste dusen kayitlar icin backoffice tarafinda summary widged render edilir. Kullanici kayit ile ilgili ozet bilgiyi gorur.
* **n8n.io entegrasyonu(3)**
* Zeebe alternatifi olarak düşünülebilir.
* Kısa transitionlar için kullanılabilir.
* **Client, Scope, Consent, Resources, Workflow ve Tags için workflow tanımlarının yapılması(2)**
* Her servis özelinde workflow tanımları yapılacak
* transition adımları için gerekli olan form.io tasarının yapılması
* **Flowların versiyonlanması(3)**
* Flowların değişme ihtimali göz önünde bulundurularak versiyonlama yapılacaktır.
* Teknik detay daha sonra konuşulacak
* **Push notification callback(3)**
* Mevcutta signal r callback yapılmaktadır. İstenildiğinde push notification callback yapılabilmelidir.
* **Workflow encryption(3)**
* Bazı paremetrelerin encrypt edilerek taşınması gerekmektedir.
* **Workflow callback outbox pattern (3)**
* Workflow da başka servise bilgi gönderileceği zaman sync olarak gönderemezse outbox implementasyonu ile tekrar gönderim sağlanacak, şu an gönderemezse worflow durumunu güncellemiyor ama Workflow çalışmış oluyor, örnek sms gönderme olsun 2 kere gönderme riski var - Outbox Pattern yapılacak
* **Genel bir Signal R Gateway tasarlanması (2)**
* **Signal R mesajların loglanması (3)**
* **Dış sistemlere giden mesajları loglama idopotency özelliğinin entegre edilmesi (3)**
* x-Request id ile isteklerin iletimi tasarlanacaktır.
* bir istek hatası bu id ile yakalanacak ve hangi noktada hata aldığı kolaylıkla tespit edilecektir.
* Ayrıca birden fazla aynı isteğin gelmesi durumunda tekrarın önüne geçecektir.
* Teknik detayı daha sonra konuşulacaktır.
## Token
### Pre-Tasks
- [ ] Token üretim süreçleri ve Token servisin diğer servisler ile ilişkisi tasarlanıp netleştirilmelidir.
### Backlog
* **sso.amorphie Ldap kullanıcıları login yöntemi(3)**
* Teknik detay konuşulacak
* Kerberos token nasıl alınacak, ldap nasıl yapılacak
* Docker impersonation
* **amorphie.token Opac token özelliğinin geliştirilmesi(3)**
* Token güvenliğini arttırmak için eklenmiştir.
* **Introspection servis(2)**
* **Configuration servis(2)**
* **Apisix openid plugin testleri(2)**
* **Token revoke servisi(2)**
* Backoffice den kullanıcı pasif yapıldığında token revoke edilecek
* **Claimlere aud eklenecek(3)**
* clientid yazılacak ya da client url yada multiple
"aud": ["client_id_123", "https://api.example.com"]
"aud": "https://api.example.com"
```json
payload = {
iss: client_id,
sub: sub,
aud: client_id,
jti: SecureRandom.uuid,
exp: time + 103600,
iat: time
}
```
## Backoffice
### Pre-Tasks
- [ ] Sidebar Menü, Search screen, display screen,Sumary Area, Info Area ve Workflow Transitions Area gibi ekran ve componentlerimiz json config dosya üzerinden oluşmaktadır. Bu dosyaların dinamik düzenlenebildiği backend yazılmalıdır.
### Backlog
* **Backoffice config dosyalarının dinamik yönetilmesi(3)**
* Backoffice uygulaması compenentlerinin render olmasını sağlayan statik json config dosyalarının dinamik hale getirilmesi
* IDM özelinde dinamik yapılandırılan tanımlama ekranlarının hazırlanması (Client, Resource, Concent vb.)
* **Sidebar Menü tasarımı(2)**
* Sidebar Menü (örnek olması için tasarlanmıştır. Üzerinde değişiklik yapılabilir.)
```plantuml
@startsalt
skinparam dpi 200
{^"Menü"
{T
+ <&home> Dashboard .
+ <&people> User
+ <&clipboard> Client
+ <&random> Scope
+ <&layers> Consent
++ Local
++ Remote
++ Api Key
+ <&link-intact> Resources
++ Resources
++ Role Group
++ Roles
++ Privilages
+ <&transfer> Workflow
+ <&tag> Tags
+ <&cog> Admin (Backoffice Config)
}
}
@endsalt
```
* **Client, Scope, Consent, Resources, Workflow ve Tags için tanımlama süreçlerinin eklenmesi(2)**
* Search screen entegrasonu için servis iletişimi sağlanacaktır.
* Kayıt - güncelleme vb. süreçler workflow ile tasarlanacak
* Detay ekranları için render süreçleri
## Document & Contract Management
### Pre-Tasks
- [ ] ...
### Backlog