Bir ilgili kişi başvurusu (SubjectRequest), bir kişinin kişisel verisini görme, düzeltme, silme veya işlenmesine itiraz etme başvurusunu kaydeder. privacy modülü kaydı, kimlik denetimini, süreyi ve sonucu tutar. Başka bir modülün tablolarını asla okumaz: iki EventBus olayı yayar ve kişisel veri tutan her modül kendi privacy_handlers.py dosyasında kendi tablolarından sorumlu olur. Bir silme ayrıca veritabanı dışındaki bir deftere yazılır; böylece geri yüklenen bir yedek veriyi fark edilmeden geri getiremez. Modül özeti privacy modülü sayfasındadır.
Kısaca¶
- Dört başvuru türü vardır:
access,rectification,erasure,objection(src/cluster_erp/modules/privacy/requests/models.py:13-18). - Dört durum vardır:
received,verified,completed,rejected; her geçiş bir aksiyondur (src/cluster_erp/modules/privacy/requests/models.py:32-36,src/cluster_erp/modules/privacy/requests/services.py:196-527). - Son tarih, alınış tarihi artı
privacy_response_daysayarıdır (src/cluster_erp/modules/privacy/requests/models.py:61-62,src/cluster_erp/modules/privacy/requests/services.py:157-170,src/cluster_erp/config/settings.py:733). CollectSubjectDatabir kopya toplar,AnonymiseSubjectanonimleştirerek siler; dokuz modül ikisine de abonedir (src/cluster_erp/core/contracts.py:2385-2438).- Tamamlanan bir silme, düğüm yerel bir deftere eklenir; yedek anahtarı varsa mühürlenir ve her açılışta yeniden oynatılır (
src/cluster_erp/core/erasure_ledger.py:1-16,src/cluster_erp/server/app.py:255-311).
Nasıl çalışır¶
Başvuru yaşam döngüsü¶
Durum şeması durumları ve onları değiştiren aksiyonları gösterir.
stateDiagram-v2
[*] --> received: create
received --> verified: verify
verified --> verified: export
verified --> completed: anonymise, yalnız erasure
verified --> completed: complete
received --> rejected: reject
verified --> rejected: reject
completed --> [*]
rejected --> [*]Düz anlatımla:
createbaşvuruya yıllık bir iş anahtarı verir,due_atdeğerini koyar vereceivedile başlar (src/cluster_erp/modules/privacy/requests/services.py:157-172).verifykimlik yöntemini kaydeder vereceiveddurumunuverifiedyapar (src/cluster_erp/modules/privacy/requests/services.py:198-207).- Yalnızca
verifiediken izinli olanprepare_exportveriyi toplar ve tek bir JSON dosyasını başvuruya ek olarak saklar (src/cluster_erp/modules/privacy/requests/services.py:247-272).export_fileonu döndürür (src/cluster_erp/modules/privacy/requests/services.py:274-295). - Yalnızca
verifieddurumdaki birerasurebaşvurusu için izinli olananonymise, operatörün başvuru kodunu yazmasını ister, sonra siler ve başvuruyu tamamlar (src/cluster_erp/modules/privacy/requests/services.py:297-327). completedoğrulanmış bir başvuruyu bir sonuç notuyla kapatır;rejectalınmış veya doğrulanmış bir başvuruyu bir gerekçeyle kapatır (src/cluster_erp/modules/privacy/requests/services.py:507-527).- Tamamlanmış veya reddedilmiş bir başvuru düzenlenemez (
src/cluster_erp/modules/privacy/requests/services.py:174-186).
Kopya toplama¶
collect, ilgili kişinin e-posta adreslerini GetPartyContactValues ile alır, taraf kimliği, isteğe bağlı kullanıcı kimliği ve bu adreslerle CollectSubjectData yayar ve bölümü olan her yanıtı tutar (src/cluster_erp/modules/privacy/requests/services.py:209-245). Her yanıt {"module", "sections": [{"key", "label", "rows"}]} biçimindedir ve parola özetleri veya belirteçler gibi gizli değerler içermemelidir (src/cluster_erp/core/contracts.py:2385-2401).
Anonimleştirme¶
_apply_erasure tüm modülleri tek bir işlemde çalıştırır (src/cluster_erp/modules/privacy/requests/services.py:329-424):
privacy_anonymised_markerayarından gelen işaret, bir gerekçe ve üç operatör kararıylaAnonymiseSubjectyayar:include_employment_records,include_correspondenceveinclude_documents(src/cluster_erp/modules/privacy/requests/services.py:345-357,src/cluster_erp/modules/privacy/requests/schemas.py:70-73).- Her işleyici tanımlayıcı alanların üzerine yazar, satırları pasifleştirir ve etkilenen kayıt kimliklerini döndürür (
src/cluster_erp/core/contracts.py:2410-2425). - Servis kişinin taraf kaydına dosyalanmış ekleri ekler, bildirilen dosyaları depodan kaldırır ve satırlarını emekliye ayırır (
src/cluster_erp/modules/privacy/requests/services.py:358-395). - Etkilenen her kaydın değişiklik geçmişi değerlerini, başvuruyu adlandıran bir işaretle değiştirir (
src/cluster_erp/modules/privacy/requests/services.py:396-406). - Modül başına bir özet saklar, başvuruyu tamamlar ve defter satırını yazar (
src/cluster_erp/modules/privacy/requests/services.py:407-424).
Yanıt veren modüller¶
Dokuz modül iki olaya da abonedir; module.py dosyalarında CollectSubjectData için grep ile bulundu:
| Modül | İşleyici dosyası | Abonelik |
|---|---|---|
auth |
src/cluster_erp/modules/auth/privacy_handlers.py |
src/cluster_erp/modules/auth/module.py:101-108 |
crm |
src/cluster_erp/modules/crm/privacy_handlers.py |
src/cluster_erp/modules/crm/module.py:110-113 |
documents |
src/cluster_erp/modules/documents/privacy_handlers.py |
src/cluster_erp/modules/documents/module.py:89-96 |
intranet |
src/cluster_erp/modules/intranet/privacy_handlers.py |
src/cluster_erp/modules/intranet/module.py:216-223 |
logs |
src/cluster_erp/modules/logs/privacy_handlers.py |
src/cluster_erp/modules/logs/module.py:55-62 |
mail |
src/cluster_erp/modules/mail/privacy_handlers.py |
src/cluster_erp/modules/mail/module.py:63-70 |
owned_organisations |
src/cluster_erp/modules/owned_organisations/privacy_handlers.py |
src/cluster_erp/modules/owned_organisations/module.py:81-88 |
parties |
src/cluster_erp/modules/parties/privacy_handlers.py |
src/cluster_erp/modules/parties/module.py:159-166 |
procurement |
src/cluster_erp/modules/procurement/privacy_handlers.py |
src/cluster_erp/modules/procurement/module.py:136-137 |
Örnek olarak auth işleyicisi giriş hesabını parola özeti olmadan döndürür; silmede kullanıcı adının ve e-postanın üzerine yazar, çalışan bağını koparır, hesabı pasifleştirir ve her belirtecin reddedilmesi için last_logout_at damgasını basar (src/cluster_erp/modules/auth/privacy_handlers.py:1-104).
Silme defteri¶
erasure_ledger.append, tamamlanan her silme için backup_dir ayarı altındaki bir klasörde veritabanı başına bir dosyaya bir satır yazar; satır başvuru kodunu, taraf kimliğini, kullanıcı kimliğini, kişinin e-posta adreslerini, üç kararı ve zamanı tutar (src/cluster_erp/core/erasure_ledger.py:38-74, src/cluster_erp/modules/privacy/requests/services.py:426-457). backup_encryption_key ayarlıysa her satır mühürlenir; değilse satır düz JSON olur (src/cluster_erp/core/erasure_ledger.py:42-53). Açılışta _replay_erasure_ledger düğümün hizmet verdiği her veritabanının defterini okur, veritabanının artık tamamlanmış göstermediği her silmeyi yeniden uygular ve ardından saklama temizliğini çalıştırır (src/cluster_erp/server/app.py:255-311, src/cluster_erp/modules/privacy/requests/services.py:459-505). tests/test_erasure_ledger.py (4 test) mühürlemeyi sabitler.
Neden böyle kurulmuştur¶
- Modül açıklaması privacy modülünün başka hiçbir modülü içe aktarmadığını; kişisel veri tutan modüllerin kendi tablolarından sorumlu olduğunu söyler (
src/cluster_erp/modules/privacy/module.py:16-24). - Başvuru satırı tamamlandıktan sonra, başvurunun zamanında yanıtlandığının kanıtı olarak kalır ve asla fiziksel olarak silinmez (
src/cluster_erp/modules/privacy/requests/models.py:40-46). - Anonimleştirme işleyicileri istek oturumuna katılmalıdır; böylece herhangi bir yerdeki hata her modülü geri alır (
src/cluster_erp/core/contracts.py:2411-2425). - İstihdam kayıtları, yazışmalar ve belgeler varsayılan olarak kalır, çünkü çoğu zaman yasal bir saklama yükümlülüğü altındadır (
src/cluster_erp/core/contracts.py:2421-2433). - Defter veritabanı dışında durur; böylece bir geri yükleme bir silmeyi sessizce geri alamaz (
src/cluster_erp/core/erasure_ledger.py:3-10).
Kurallar ve sınırlar¶
- Her uç bir
subject_request.*kodu ister:read,create,update,delete,verify,export,anonymise,completeveyareject(src/cluster_erp/modules/privacy/requests/routes.py:39-215). - Kimlik bilgisi ve özel nitelikli değerler değişiklik geçmişinde her durumda gizlenir; bkz. değişiklik geçmişi.
Diğer parçalarla etkileşim¶
- Parties
GetPartyContactValuessorgusunu yanıtlar (src/cluster_erp/core/contracts.py:2400-2408). - Ekler, notlar ve depolama dışa aktarma dosyasını saklar.
- Yedekler ve geri yükleme defterin karşı koruduğu geri yüklemeyi anlatır.
Sınırlar ve açık noktalar¶
- Bir defter yazma hatası günlüğe yazılır ve silmeyi geri almaz (
src/cluster_erp/modules/privacy/requests/services.py:433-457). - Düzeltmenin otomatik bir adımı yoktur;
completeve bir sonuç notuyla kapatılır (src/cluster_erp/modules/privacy/requests/services.py:507-516).
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| data-subject request | SubjectRequest |
Bir kişinin kişisel verisiyle ilgili kayıtlı başvurusu. | İlgili Kişi Başvurusu | src/cluster_erp/modules/privacy/requests/models.py:39 |
| anonymisation | AnonymiseSubject |
Tanımlayıcı alanların üzerine bir işaret yazılarak ve satırlar pasifleştirilerek yapılan silme. | anonimleştirme | src/cluster_erp/core/contracts.py:2411 |
| subject data collection | CollectSubjectData |
Her modülün bir kişi hakkında tuttuğunu döndürdüğü dağıtım. | ilgili kişi verisi toplama | src/cluster_erp/core/contracts.py:2385 |
| erasure ledger | erasure_ledger |
Tamamlanan silmelerin veritabanı dışında tutulan ve bir geri yüklemeden sonra yeniden oynatılan, yalnız eklenen kaydı. | silme defteri | src/cluster_erp/core/erasure_ledger.py:1 |
İlgili sayfalar¶
- Kimlik, erişim, kiracılık, gizlilik ve lisans
- Privacy modülü
- Değişiklik geçmişi
- Sözleşmeler başvurusu
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.