Ülkeler arasında tüzel kişi belgelerini izleyen bir web uygulaması tasarlamayı öğrenin: veri modeli, iş akışları, izinler, yerelleştirme ve denetime hazır raporlama.

Çok uluslu bir şirket hızla “olmazsa olmaz” tüzel kişi belgeleri biriktirir: kuruluş belgeleri, siciller, yönetici atamaları, vekaletnameler, yıllık beyannameler, vergi kayıtları ve daha fazlası. Zorluk sadece dosyaları saklamak değil—her ülkenin kendine ait belge formatları, adlandırma kuralları, yenileme döngüleri, başvuru portalları ve kaçırılan son tarihler için cezaları olduğunda uyum sağlamak.
Bu işler e-postalarda ve elektronik tablolarda dolandığında riskler tahmin edilebilir şekilde ortaya çıkar: banka açılışında keşfedilen süresi geçmiş sertifikalar, denetimde eksik imzalar veya kimin sorumlu olduğu net olmayan bir yenileme. Sonuçta gecikmeler, cezalar ve önlenebilir stres olur; bunların çoğu daha net bir yönetişim ve paylaşılan bir kayıt sistemiyle engellenebilirdi.
Bu tür bir web uygulaması öncelikle kesinlik ve görünürlük isteyen ekipler içindir:
Bu bir takip ve yönetişim sistemi: neyin mevcut olduğunu, nerede saklandığını, kimin erişebileceğini, ne zaman sona ereceğini ve sonraki adımın ne olduğunu kaydedersiniz. Yerel yasaları yorumlayan veya hukuki tavsiye veren bir araç değildir; bunun yerine bilinen gereksinimleri operasyonelleştirmenize ve sahipliği belirgin hale getirmenize yardımcı olur.
Sonunda pratik bir sistem için bir planınız olacak:
Küresel bir varlık belge takipçisi, “varlık + ülke + belge + son tarih”i birincil veri olarak ele aldığında en iyi çalışır—klasör yapısı olarak değil. Ekranları veya depolamayı tasarlamadan önce, yerel kurallar farklı olsa bile her yerde takip edilmesi gerekenleri netleştirin.
Çoğu organizasyon birden fazla yargı bölgesinde farklı varlık türlerini yönetir:
Her varlığın net bir kimlik profili olmalı: yasal ad(lar), kayıt numarası, yetki alanı, tescilli adres, durum (faal/uyku/dahil), ve temel tarihler (kuruluş, hesap dönemi sonu).
Genellikle saklamanız ve takip etmeniz gerekenler:
Uygulama, bir “belge türü” için birden fazla dosyayı desteklemelidir; çünkü ülkeler güncellenmiş dökümanlar ve yeniden mühürlenmiş kopyalar verir.
Belge yenilemelerini zorunlu kılan olaylar etrafında tasarlayın:
Öncelikleri net tutmak için sonuçları belirleyin:
Bu gereksinimler, ekipleri ülke ülke karmaşaya gömmeden küresel varlık yönetimi için zemin oluşturur.
“Herkes her şeyi görebilir” veya onayların birinin gelen kutusunda olması gibi durumlar bir varlık takipçisini en hızlı batıran şeylerdir. Küçük ve net bir rol setiyle başlayın, sonra izinleri (ülke → varlık → belge türü) iş akışına uygun hale getirin.
Admin: ülkeleri, varlıkları, belge türlerini, son tarihleri ve entegrasyonları yapılandırır; kullanıcıları ve denetim ayarlarını yönetir.
Katılımcı: günlük işlemleri yapan; belgeleri yükler, meta verileri günceller ve yenileme görevlerine yanıt verir.
Onaylayıcı: uyum/hukuk sahibi; inceleme, onaylama ve güncel sürümü yayımlama yetkisine sahiptir.
Görüntüleyici/Denetçi: liderlik, finans veya denetçiler için salt-okuma erişimi; delil görür ama değiştiremez.
Harici ortak (hukuk bürosu / yerel temsilci): atandığı varlık ve ülke için yükleme veya yorum yapabilir, fakat tam depo içinde gezinememelidir.
Her belge türü için kimlerin:
Bu, darboğazları azaltır ve yükseltmeleri adil hale getirir.
Çoğu ekip için Organization → Workspace → Entities modeli yeterlidir. Workspaceler iş birimlerine veya bölgelere eşlenir ve veri ayrımını basitleştirir.
Yaygın izin kuralları:
Varsayılan olarak en az ayrıcalığı kullanın, yöneticilerin denetimler için geçici erişim vermesine izin verin (süresi belli).
İyi bir veri modeli her şeyi kolaylaştırır: arama, hatırlatmalar, izinler, raporlama ve denetimler. “Belge nedir”, “kime ait”, “nerede geçerli” ve “sonraki adım ne” sorularını ifade edebilen bir model hedefleyin.
Çekirdek varlıkları küçük ve bileşenli tutun:
Her yüklemeyi ayrı bir DocumentVersion olarak ele alın (document_id, version_number, file_id, uploaded_by, uploaded_at). Eski versiyonları superseded olarak işaretleyin, asla üzerine yazmayın. Bu denetim için uygun bir geçmiş korur.
“Uygulandığı yer”i açıkça modelleyin: bir LegalEntity birçok Jurisdictionda faaliyet gösterebilir ve her ülkenin DocumentType varyantları olabilir (ör. "Certificate of Good Standing" her yerde farklıdır). Kuralları DocumentType içinde (veya ayrı bir Rules tablosunda) saklayın; ülke başına kodlamayın.
Her ülkeyi tek bir özel durum haline getirdiğinizde küresel uyum çöker. Hile, yerel kuralları yapılandırılmış bir biçimde kodlarken günlük deneyimi tutarlı tutmaktır.
Bir “küresel” belge türleri listesi oluşturun, ardından ülkeye özgü takma adlar ve varyantlara izin verin. Örneğin, kullanıcılar Certificate of Good Standing seçebilmeli ve yetki alanına göre yerel adı veya eşdeğerini görmelidir. Çekirdek kavramı stabil tutun ki raporlama ülke genelinde tutarlı kalsın.
Küçük, evrensel bir durum setini kilitleyin ki ekipler panolardaki anlamı anında kavrasın:
Ülke kuralları gereksinimleri, son tarihleri ve meta veriyi değiştirmeli—bu durumların anlamını değil.
Her ülke için bir “uyumluluk şablonu” modelleyin:
Yeni bir varlık eklendiğinde, şablonu uygulayıp beklenen belge kontrol listesini ve uyumluluk takvimini üretin.
Gerçek hayat koşullu gereksinimler içerir. Destekleyin:
Böylece sistem öngörülebilir: şablonlar varsayılanı tanımlar, istisnalar ise açık ve izlenebilir ayarlardır.
Bir belge takipçisi iş akışı netliğinde başarılı olur veya başarısız olur. İnsanlar "uyumluluğu yönetmek" istemez; bir sonraki adımın ne olduğunu ve neyin yapıldığını bilmek isterler.
Belgeleri az sayıda durum arasında hareket eden nesneler olarak ele alın. Yaygın bir model:
Geçiş kurallarını açık yapın: bir belgeyi kim ilerletebilir, kim geri gönderebilir ve her adımda hangi alanların zorunlu olduğu net olsun.
Eksik belgeler görev üretmeli, suçlama yaratmamalıdır. Gerekli belgenin yokluğunda bir istek oluşturun; sahibi, son tarihi ve hafif bir geçmiş ("istedildiği tarih", "taahhüt edilen", "alındığı tarih") olsun. Takipler otomatikleştirilebilir (ör. son tarihten 7 gün önce, son günde, 7 gün sonra).
Son tarihleri birincil nesne olarak modelleyin:
Görevler geciktiğinde aşamalı yükseltmeler yapın: sahibe bildir → yöneticiye → admin ve zaman eşikleri net olsun. Kanıtları iş akışıyla birlikte tutun: başvuru onaylarını yükleyin, referans numaralarını saklayın ve ilgili e-postaları (ek veya ileti kimlikleri) bağlayın ki denetçi insan kovalamak zorunda kalmasın.
Dosyalar ve meta veriyi iki ayrı ürün gibi ele alın. İkili dosyayı object storage'ta saklayın (ör. S3-uyumlu) ve arama/raporlama için gereken her şeyi veritabanında tutun: varlık, ülke, belge türü, veriliş/sona erme tarihleri, durum, versiyon, yükleyen ve bir hash/checksum.
Object storage büyük dosyalar ve yüksek aktarım için tasarlanmıştır; veritabanınız ise sorgular için. Bu ayrım, ileride tam metin arama gibi özellikleri eklemeyi de kolaylaştırır.
Yüklemelerin çöplüğe dönüşmesini önlemek için kuralları baştan belirleyin:
Bu kuralları yükleme ekranında görünür yapın ve dostça hatalar döndürün ("Sadece PDF, en fazla 25MB").
Çoğu uyum hatası “en son”un “doğru”nun yerine geçmesinden kaynaklanır. İmmutable versiyonlar kullanın:
Uygulamanın ötesinde kontrollü paylaşımı destekleyin:
Saklamayı politikaya göre planlayın, alışkanlığa göre değil. Eski versiyonları arşivleyin, superseded kayıtları aranabilir tutun ve mümkün olduğunda hard delete'ten kaçının. Silme gerekiyorsa “hukuki tutma” uygulayın ve sebebi, onaylayıcıyı ve zaman damgasını kaydedin ki denetimler ve soruşturmalar çıkmaz sokaklarla karşılaşmasın.
Ülke belgelerini izlerken "sadece İngilizce" olmak hızla hata kaynağı olur: tarihler yanlış okunur, son tarihler zaman dilimleri arasında kayar ve ekipler yerelde gördükleri adlarla belge bulamaz.
Veritabanında tek kanonik değer tutun, sonra kullanıcıya göre biçimlendirin.
Ülke adları (ve takma adları), tarih formatları ve zaman dilimlerini yerelleştirin. Herhangi bir parasal alan gösteriyorsanız (ücret, ceza, başvuru maliyeti) biçimlendirmeyi tutarlı yapın—para birimi dönüşümü yapmasanız bile.
Son tarihler için doğruluk sağlayın: zaman damgalarını UTC'de saklayın ve her zaman ilgili zaman diliminde gösterin (çoğunlukla varlığın kayıtlı olduğu yetki alanı, bazen kullanıcının tercihi). Tablo ve takvimlerde zaman dilimi etiketi gösterin ki “yarın son günüydü” kafa karışıklığı olmasın.
Birçok belge yerel dilde düzenlenir; merkez İngilizce bağlam ister.
Belgeyi orijinal dilinde saklayın, ancak "Çevrilmiş başlık" ve "Çevrilmiş notlar" gibi çevrilmiş meta alanlar ekleyin. Bu, ekiplerin içeriği değiştirmeden arayıp anlamasını sağlar. OCR veya tam metin arama eklerseniz, algılanan dili etiketleyin ki arama doğru davransın.
UI'yi herkes için okunabilir ve gezinilebilir yapın: net etiketler (mümkün olduğunca hukuk terimlerinden kaçının), yükleme/inceleme akışları için klavye gezinimi ve yüksek kontrastlı, öngörülebilir sütun sıralı tablolar. Bunu "iyi olur" değil temel gereksinim olarak ele alın.
Güvenlik bir uyumluluk uygulaması için "sonrası" özellik değildir—kullanıcılar pasaport, sertifika, kurul toplantı tutanakları ve diğer hassas dosyaları yükleyecek. Sistemi her belgenin denetimde istenebileceği ve her hesabın hedef alınabileceği varsayımıyla tasarlayın.
Rollerle başlayın ve kapsamı doğru belirleyin: izinler genellikle varlık ve çoğu zaman ülke bazında atanmalı. Bölgesel finans sorumlusu yalnızca AB varlıklarını görebilir; dış hukuk bürosu sadece bir bağlı kuruluş için belge yükleyebilir ama İK ile ilgili dosyaları göremez.
Rolleri basit tutun (Admin, Onaylayıcı, Katılımcı, Görüntüleyici/Denetçi) ve bunları eylemlere (görünteleme, yükleme, indirme, meta düzenleme, onaylama, silme) eşleyin. Varsayılan “erişim yok” olsun ve erişim vermeyi açık hale getirin.
Tüm trafik için HTTPS/TLS kullanın. Dosyaları ve hassas meta veriyi dinamik ve durağan olarak şifreleyin (veritabanı + object storage). Uzun ömürlü kimlik bilgilerini kod veya konfigürasyonda tutmayın; veritabanı parolaları, API anahtarları ve imza anahtarları için secrets manager kullanın.
İmzalanmış indirme linkleri üretiyorsanız anahtarları döndürün ve link süresini sınırlayın. Anormal indirme artışlarını loglayın ve uyarı verin.
Denetim izi oynanamaz ve aranabilir olmalı. En azından kim görüntüledi, yükledi, indirdi, durumu değiştirdi veya meta düzenledi bilgilerini zaman damgası, varlık, ülke, belge türü ve önce/sonra değerleriyle loglayın.
Denetim günlüklerini uygulama verisinden ayrı tutun (farklı tablo veya farklı depolama) ve erişimi kısıtlayın; saklama kurallarını belirleyin.
Veri yerinde kalma gereksinimlerini erken planlayın (bazı ülkeler belgelerin bölge içinde kalmasını isteyebilir). Yedekleme/geri yükleme hedeflerini (RPO/RTO) tanımlayın, geri yüklemeleri test edin ve temel bir olay müdahale kontrol listesi yazın: oturumları iptal etme, anahtarları döndürme, yöneticileri bilgilendirme ve kanıt koruma adımları.
Entegrasyonlar uygulamanızın “güvenilen yer” olup olmayacağını belirler. Bunları erken planlayın ki göç uzun bir temizlik projesine dönüşmesin.
Çoğu ekip dağınık kaynaklarla başlar: tablolar, paylaşılan sürücüler, e-posta gelen kutuları ve eski sistemler. Geçişi tekrarlanabilir bir boru hattı olarak ele alın, tek seferlik bir yükleme gibi değil.
Pratik yaklaşım:
Oluşturulan/atlanan/dikkat gerektirenleri gösteren bir içe aktarma günlüğü tutun—aksi halde kullanıcılar sonuçlara güvenmez.
Müşterileriniz zaten SSO kullanıyorsa SAML veya OIDC entegrasyonu yapın ki erişim kurumsal politikalarla tutarlı olsun. Büyük örgütler bekliyorsanız SCIM ile joiner/mover/leaver otomasyonu ekleyin (yönetici isteklerini azaltır). IdP gruplarını uygulama rolleriyle haritalandırın.
Uyum işi zaten kullanılan araçlarda olur. E-posta, Slack/Teams ve takvim hatırlatmaları (ICS) ile kilit son tarihler için bildirim gönderin. Mesajları kısa tutun ve ilgili varlık/belge sayfasına doğrudan bir bağlantı ekleyin (örneğin: /entities/123/documents/456).
“Varlık + yetki alanı + belge türü + son tarih”i klasör değil çekirdek veri olarak ele alın.
En azından takip edin:
Böylece hatırlatmalar, raporlama ve denetimler ülkeler farklı olsa bile güvenilir olur.
Küçük bir rol setiyle başlayın ve izinleri kapsamla uygulayın:
Varsayılan en az ayrıcalık olsun; denetimler veya özel projeler için zaman sınırlı erişim verin.
İmmutable (değiştirilemez) versiyonlar ve bir “şu anki” işaretçisi kullanın.
Pratik yaklaşım:
Her ülkeyi özel bir vaka haline getirmek yerine ülke şablonları kullanın.
Bir şablon şunları tanımlayabilir:
Sonra açık istisnalara izin verin (opsiyonel/koşullu/sektörel örtüler) ki kullanıcılar neden bir kuralın değiştiğini görebilsin.
Durumları evrensel tutun; gereksinimler ülkeye göre değişsin.
UI için kompakt bir set yeterlidir:
Böylece panolar ve raporlar küresel olarak anlaşılır kalır; şablonlar hangi belgelerin gerekli olduğunu ve ne zaman gerekli olduğunu yönetir.
İş akışlarını durum geçişleri olarak modelleyin ve sorumluları netleştirin.
Yaygın akış:
Eksik öğeler için görev oluşturun; son tarih öncesi ve sonrası otomatik takipler (ör. 7 gün önce/son günde/7 gün sonra) ekleyin. Hangi alanların her adımda zorunlu olduğu ve kimlerin onaylayabileceği açık olsun.
Dosyaları ve meta veriyi ayırın.
Tipik model:
Bu, uygulamayı hızlı tutar ve raporlamayı güvenilir kılar.
Kapsamlı RBAC, şifreleme ve oynanamaz bir denetim izi sağlayın.
Başlangıç için asgari güvenlik:
Ayrıca veri konumu gereksinimleri, yedekler ve test edilmiş geri yüklemeler ile temel bir olay müdahale planı hazırlayın.
Verileri tek bir yerde saklayın; görüntülemeyi yerelleştirin.
Pratik adımlar:
Bu, son tarihlerde yanlış anlamaları azaltır ve bölgeler arası aramayı iyileştirir.
Tekrarlanabilir içe aktarmalarla başlayın ve bir içe aktarma günlüğü tutun.
Pratik göç yolu:
Günlük, neyin oluşturulduğunu, atlandığını veya dikkat gerektirdiğini göstermeli ki kullanıcılar sonuçlara güvenebilsin.