Değişiklik Günlüğü
Yeni ne var?
Gemideki her iyileştirme.
· kamo-shared-library
VENDOR CALLBACK RESOLVED event-type key (0.6a ingress)
· kamo-shared-library
Kredilendirici kayıt substratı - 42 tip ids (keystone 0,5, dilim 1)
Yeni pkg com.kamo.z.shared.mlos.identity (yarada-webhook routing key): KrediIdentifierType 42 ilk sınıf türü, her taşıma Kardinalliği + Ownership; @Enumerated STRING; tekActiveTypes() metadata'dan elde edilen) + **************** + KrediIdentifier entity (BaseUuidEntity; FK-by-id Long krediFileUid + denormalleştirilmiş organizasyonId, decoupled from kilitli KrediFile; write-once @PreUpdate guard atlar / tip / sadece durum geri döndü; @PrePersist normalizes sorunu = =>Subtype) + KrediİdentifierRepository (resolver. Yerel Onaylandı: mvn BUILD SUCCESS, 49 MLOS testleri geçer (Tek aktif sürüklenme testi KamoInitializer kısmi-index DDL'yi iddia ediyor). KamoInitializer DDL: tarama + 3 kısmi-unique indeksler + OTHER FI. RESOLVER + webhook ingress = ilk yeni MLOSIdentifierService microservice (dedilmiş).
· kamo-shared-library
StewardFeedback uçarak – her türlü karar yakalamak (keystone 0.11)
Yeni pkg ************ append-sadece StewardFeedback zemin-gerçek sıra (FK ai decision.uid; CONFIRM/OVERRIDE/MODIFY; Reg-B-B-B-ve-ve-ve-veb; bir tx'in yargılandığı sırada test edildi. Recorder kapılı mlos.governance.face (default off -> zero blastça). KamoInitializer DDL: tarama + steward feedback indexler + FK to ai decision.
· kamo-shared-library
İmmutable AiDecision WORM leadger + two-wall DecisionGate (keystone 0.3, dilim 1)
Yeni pkg com.kamo.z.shared.mlos.decision (greenfield kararı omurgası, hiçbir zaman UUID'i düzenlemez; süperler ile süperlerDecisionId YENİ sırada kalmak için; krediFileId, DB tetikleyicisi ile uzun bir FK.uid per doc01/gotchas, UUID; süperleri ile süperlerDecisionId **************** Enums + AiDecisionRepository (loan-scoped finders). KararGate = In-process two-wall library (legal wall ABSOLUTE/non-tunable; güven duvarı tonable; non-tunable platform güvenlik zemini aşağıda) - yapılandırılabilir @Component, hiçbir repo dep, güvenli bir mülk çapında. DEFERRED, dilimlere bağımlılık yapmak için: DecisionInput (FKs the Stage-2 kataloğu), StewardTask/OrchestrationState, yasal kayıt, HMDA-firewall FI, ModelVersion FK. KamoInitializer DDL ekledi (ai decision index +ged v24.x).
· kamo-shared-library
Olay için Tenant-isolasyon kapısı (Slice 3)
Roadmap 0.10: **************** ( per-tenant tüketici abonelik denizm) + ToTenant(subject,orgId) token-wise bu aynalar NATS filtrelemesi eşleşen; çünkü artık onant olmadan olayları reddetmektedir. MlosTenantIsolation Test, executable haçlı kapıdır (incl token-boundary: org 12 asla maç veyag 123). MlosDead LetterRepository, bir org-skod steward finder (repo-katlı org-skoca bekçisi) ve operatör-gated haçlı bir kişi ile birlikte kazanır. X-Internal-Auth umutları üzerinde yer alan ve auth keystone'a ertelenen bir konudur; ilk beton tüketici ile canlı-broker izolasyon testi takip eder.
· kamo-shared-library
Consumer-side idempotency, DLQ + steward replay (Slice 2)
Herhangi bir MLOS tüketicinin içine taktığı güvenilirlik çekirdeği ekleyin: Eller'in tx'i devre dışı bırakmak için biletilmişti + MlosDead Letter DLQ + MlosDead LetterStatus; Idempotent EventProcessor (INSERT-or-or-skip dedup in the handler's tx so a failure rolls back the server; Dead-let past maxAtt + Mlos Mlos EventEn Developmente kazanımlar @Jacksonized for round-trip deserialization. Yeni @Components mlos.outbox. özellikli opt-in; repos zaten doldurulmuş pakette. Live AbstractMlosGenableConsumer (NATS abonelik) ilk beton tüketicisine ertelenmiştir.
· kamolos
MLOS işlemsel outbox (producer road)
KamoLOS'ta Faz-0 olayı arka kemiği: com.kamo.z.shared.mlos.event to @EnableJpaRepositories tarama, mlos.* yapılandırın (mlos.outbox). AFTER COMMIT röle, Nats-Msg-Id. Schema (mlos outbox event + indexler) kullanıcı tarafından ayrı olarak uygulanır.
· kamo-shared-library
İşlemsel outbox etkinliği omurga (Phase keystone B)
Para/compliance-grad yapımcı yolu YENİ sibling pkg ************************ (never edits donotmodify): Mlos EventEn Developmente DTO + MlosOutbox Event outbox entity/repo + OutboxYazr (single-tx enqueue) + OutboxRelay (AFTER COMMIT hot-path + @Scheduled süpür, Nats-Msg-Id) + MlosNatsStreamConfi Kilitli NATS Connection /JetStream fasulyesini yeniden kullanın. Opt-in via mlos.outbox.face (default off) so non-adopting services are unaffected. Tam olarak etki = işlemsel outbox + JetStream Nats-Msg-Id dedup. Tüketici dedup/DLQ + CI onant-isolasyon Slice 2/3.
· kamo-internal
Sürekli veri tabakalarını göster. EDT4 okyanus maskesi + TRF2 işaretler
Dünyagen panoları artık veri tabakalarını her aşama fırınları listeliyor, Yeni eklenenleri aksanmak: EDT4 okyanusu (bar-bağlantı) hidroksi altında maske, TRF2 şeritleri + runtime arazisi taşıma altında lisanslanır. Saf format /data Etiketler (tipler) - yeni i18n dizeleri yok. Stale/regen zaten sayılıyor Yüzey otomatik olarak kanıtlanmış bumps EDT3+EDT4 / TRF1→TRF2.
· kamo-internal
Yüzey karo staleness + sayfada "Regenerate N" hedeflendi
Ajan snapshot şimdi per-recipe staleness (up-to-date / stale / eksik); API + SSE'yi sayfaya kadar uzatın: - Servis sekmesi, karo hizmeti başına tazelik çizgisi gösterir ve Başlangıç düğmesine dönüşür "Regenerate N" (= stale + eksik) hedefli bir çalışma olduğunda veya "tarihe kadar". - Genel olarak tamamlanma karo ipucu, kaç tane parçanın güncellenmesi gerektiğini gösteriyor. Başlangıç zaten ev sahibi üzerinde kanıtlanır, bu yüzden düğme hedefli bir hedeftir Tam olarak stale / izinli hücrelerin regeni.
· kamo-internal
Evren dünya nesil yönetici sayfası
Platform Yönetimi altında Adds / fucks / platform/universe – kendi platformu kart + üç alttab (Overview, Services, Actions) - başlamak ve izlemek KamoUniverse dünya-data boru hattı canlı. Backend (Next API, platform-admin kapılandı - seans, aynı kural Müşteri Koruma: - app/lib/worldgenNats.ts: uzun ömürlü bir NATS bağlantısı + bir statü abone Bu önbellekler en son aşama statüsü + snapshot (in-memory + Redis) ve SSE için bir işleme otobüsü üzerinde yeniden-emits. Publishes komutlara başlar. - Uygulama/api/universe/services GET mevcut her aşama durumu (status + karot Sayılar + kilitHeld). - ******************** POST k3m1 ajanına bir başlangıç emri. - canlı durumu/snapshot olaylarının uygulama/api/universe/stream SSE akışı. Frontend (MUI + next-intl, aynalar yapılandırma sayfası): -Worldgen kullanın: bir SSE akışı (auto-reconnect) + başlangıç() tüm sekmeler için. - Genel bakış: ajan/batch/completion/tile stat karolar + canlı bir boru hattı. Servisler: senaryo başına zengin bir kart - rol + ne başarır, canlı devlet Kötüge, son olay ve bir başlangıç düğmesine sahip / toplam ilerleme barına, son olay. Herhangi bir parti küresel kilit tutar. Eylemler: tam boru hattını veya bireysel bir aşamayı çalıştırın (önlendirme ile), artı bir anlık yenileme. Wiring: NATS URL yapılandırıcıya ekledi; “Müşteri bağımlılığı eklendi. K3m1 Ajan + senaryo telemetri evrende yaşar; çeviride dizeler Sözlük. Tüm yeni dosyalarda tsc temiz.
· kamo-shared-library
Vakaya duyarlı bul ByEmailEmailIgnoreCase
E-postalar tutarsız durumda (örneğin Sage@KamoCRM.com) ve CockroachDB dize eşitliği vakaya duyarlıdır, bu yüzden ByEmailEmail kaçırılır Yalnız durumda. Şifre kurtarma e-posta görünümü için gerekliydi.
· EmailService
Uygulama DB (drift kurtarma) ile Self-heal posta kutusu hesapları
Uygulama DB, hangi posta kutularının olması gereken gerçek kaynağıdır; KamoMail Hesaplar posta sunucusunun sanal users'inde yaşar. Posta DB verileri kaybederse, posta kutuları, uygulama kayıtları kalırken sağlayıcıda kaybolur. - Mailbox SelfHealHizmet: Başlangıç + günlük, herhangi bir KAMO MAIL uygulaması posta kutusu sanal users (fresh random app-managed password). - senkronizasyon kutuları (the settings "Sync" action) şimdi aynı zamanda app->provider'i de itiyor Herhangi bir eksik posta kutusu, sadece ithalat sağlayıcı->app değil.
· kamo-internal
Değiştirilmiş üye postabox adına
- Thread postabox sahibi üyeId from the switcher through aktifMailbox into Form context (event + URL param). - Yeni Mesaj / yanıt / önerilen üye posta kutusu için açık: dropdown listelerinden bu üyenin posta kutuları + alias, imza kişiselleştirilmiş Onlara ve posta kutusu (mailboxId) olarak mesaj göndermek/draft göndermek. - Üye posta kutusu aktif olduğunda kendini değişmemiş.
· kamo-internal
Kayıt Ol - paylaşılan bir kurabiye yerine per-tab seansı
Oturum id tüm sekmelerde paylaşılan bir tarayıcı kurabiyesinde yaşadı Kökeni, bu yüzden ikinci bir sekme (immanasyon) kendi oturumunu tutamadı. Taşıyıcıyı oturuma taşıyın (per-tab): - oturumClient: token yardımcı + küresel bir hediye sarmalayıcı, bu ekleri destekleyen X- ***-Token aynı-origin /api çağrılarında, artı bir kez-time kurabiye->sessionStorage migration. OturumBootstrap aracılığıyla ayarlandı. - ************ Title-first (cookie fallback) tarafından kullanılan Pro-otk, oturum/info, oturum/extend, logout, buluşma/invite-email. - CHK + getKsemId FromRequest, X- -Token'i kurabiye üzerinde tercih eder. - /api /validate artık bir kurabiye oluşturmuyor; id ve the the /validate sayfası bu sekmenin oturumunda saklar. -UseUserInfo + all WebSocket hooks read the id from sessionStorage. - logout depolamadan önce token yakalar, böylece Redis seansı Hala geçersizdir. Im personation now just open /validate?otk=... in a new sekme (same roadwaywayway Giriş olarak: Redis seansı sunucunun yanı sıra, OTK /validate’ye teslim oldu; Yeni sekme kendi seansını alır ve yönetici sekmesi silinir. Kaldırın Eskiler Prev/Im personationBanner geri dönüş-to-admin makineleri tutar. Orgs alan tarafından ayrı kalır - değişmeden.
· kamo-internal
God-mode Im personate düğmesine üye ayarlar
Bir üst sağ 'Im personate' eylemi / işaret / üye /[id], görünür Sadece imzalı seans Tanrı modu taşır (Tanrı'yı unutun) ve hedef Kendi / yeni değil. Yeni /api/güvenlik / kişilik çağırın, sonra değiştirir - OTK yolu ile kurabiye (/validate?otk=...&KeepPrev=1) yeni bir sekmede. Yöneticinin Redis'deki kendi oturumunu koruyor; küresel bir küresel küresel Immanation Banner stashes the admin - and offers one-up 'Return' Hesabıma (same-origin kurabiyeleri bir kerede iki canlı seans tutamaz). AyarlarView, opsiyonel bir başlıkAction slotunu kazanır.
· SecurityService
God-mode üyesi uç nokta
POST /api / güvenlik / güvensiz mizanlar taze - +OTK için caller'in mevcut org üyesi, caller oturumunda kapılandı Tanrı modu (GD) Tanrı yöneticisinin üyesi SUDO MEMBER ID olarak kayıt edin denetim. Aynı giriş biçimindeki oturum, AsController olarak inşa edilir, ama aynı-org Ve tanrı, haçtan ziyade.
· SecurityService
Return orgName + dil in /user-info
Org'un ekran adı ve üyenin seçilmiş dili (ISO-639-39- 1 1 1 code) from the DB so kamo-universe can show each player's org + dil bayrağı Onların adı plakasında. Yeniden çözülmemiş canlı ( seanstan değil) bu yüzden mevcut seanslar Hemen onları toplayın.
· kamo-internal
KamoUniverse başlangıç kartı + nav i (gated ACCESS KAMOWORLD, OTK oynamaya yönlendirme.*)
· kamo-shared-library
ACCESS KAMOWORLD hakkı (145, GAMES) KamoUniverse erişim için
· KlusterServices
K1m1 görüntü kaydı emekli k0m1:5000 (same Bilgisi)
· KlusterServices
Kamo-universe namespace+quota+valkey, CockroachDB yedekleri, gözlemlenebilir yığın
- evren/: namespace + ResourceQuota, valkey-universe (AOF, hostPath k1m1), Gece CockroachDB yedekleme CronJob, operatör Bottrap senaryosu - izleme /: Doğrulanmış helm değerleri ************************ Yükleme senaryosu, grega.* rota, evren panoları + uyarı kuralları CI: k1m1 fazda evren adı +valkey uygulayın (NATS paketi düştü: 43030d6 zaten hesap izolasyonu ile yeniden evlendi)
· KlusterServices
K3m1 node + göç kümesi LAN IP'lere ayarlanıyor
- statefulset: Reklam/join over 192.168.4.x (k1m1=.22, k3m1=.36); WireGuard düştü (k3m1 wg0 10.8.0.1 k0m1'in reklam IP ile çarpıştı). - Init-job + CI kube endpoints LAN IP'lere taşındı. CI: K3M1 CockroachDB dağıtma bölümü (KUBECONFIG B64 sırrı).
· kamo-login
Route girişten sonra kontrol etmek için ücretli işaretler
Başarılı bir auth (manual or auto-login), apex-domain kullanın sp checkout plan kurabiye kamo-insta tarafından ayrıldı ve alıcıyı alıcıyı alıcıyı müşteriye yönlendirdi Marka /subscribe?plan= sayfa (Stripe checkout) varsayılan uygulama yerine destinasyon. One-shot: kurabiye okumaya devam etti.
· kamo-register
Çekilir mi?planı kontrol altına alın
Bir üye işareti ücretli bir fiyat CTA'dan kaynaklandığında (?plan=pro|business) Tamamlanan bir apex-domain sp checkout plan kurabiye bırakır. kamo-login tüketiyor Kullanıcı onları /subscribe ->'ye doğru yönlendirdikten sonra Stripe, Kayıt -> doğrulama -> Giriş umutları hayatta kalır.
· kamo-shared-library
Canonical e-sign signer şablonlar (verification + Davet)
İki platform çapında kanonik e-posta şablonlarını org başına ekleyin: - esign.signer verification (step-up OTP: {{code}}, {{name}}) - esign.signer invite ( Davet Ediyor: {{name}}, {{sender}}, {{message}}, {{link}}) Onları CanonicalTemplateLoader'in anahtar listesine sokmak için E-posta servisi.seedForOrg onları ilk gönderide alır. Enables live OTP /invite e-sign akışı için teslimat ( şablonlar olmadan en iyi yardımcı oldu).
· BillingService
E-sign use metreing + tüketici self-serve checkout
#4 metre: - EsignMeterSubmissionService (@Scheduled günlük): API-origin EsignUsageRecords per org+ period; ilk 40/dönüm dahil, geri gönderilenler Stripe Meter Events olarak. Idempotent, ToStripe + kullanım süresi UID olarak Malzemeler Event tanımlayıcı (Stripe-side dedupe). metre olayı adı Addon'un gerçek Stripe fiyatı **************** Fiyatın ne metreye bağlıdır ( isimlendirme yanlış eşleştirmeyi ekler). #5 tüketici checkout: - TüketiciCheckoutService: Stripe Checkout Session (mode=subscription) karşı Ürün kökünün plan fiyatı (+ iş için aşırılık çizgisine bağlı); kayıtları kaydeder HesapSubscription (source PAID) + AboneMember + HesapLicense on Tamamlama ve hükümsüzlükler. - TüketiciSessionResolver: Alıcıyı kendileriyle kimliklendirir - kurabiye Redis (never a client-set org Title). - TüketiciCheckoutController POST **************** - StripeWebhookHizmet şimdi checkout.session.completed. Bir tüketici abonelerine kadar alıntı/inert; canlı ücret gerçek bir karta ihtiyaç duyar.
· kamo-internal
Expose API SIGN form (E-Signature API) anahtar kapsamı
E-Signature API kapsamını org API-key yöneticisine ekleyin, böylece personel hibe edebilir Business orgs programmatic e-sign access. Dahil aylık kullanım dışında kullanım Allotment imza başına ölçüldü.
· APIService
Public programmatic e-sign API Gateway (API SIGN form)
Add /api/public/esign/** to PublicApiController: org API anahtarını doğrular, API SIGN form kapsamı, oran-limits ve ESigService's için ileri internal zarf API (/api/esig/internal/**) X-Internal-Auth + X-Org-Id ile. Aynalar abonelik-catalog ağ geçidi önceki.
· ESigService
İç programmatik zarf API (origin=API) for Business
- EsignInternalController (/api/esig/internal/*): X-Internal-Auth + X-Org-Id APIHizmeti tarafından kabul edilen authed, API SIGN formunu doğrulamadan sonra; Yeniden kullanımlar EsignEn DevelopmenteService, etiketler zarflar EsignUsage.. API API API API - ************ bir kaynak aşırılık kazanır (MANUAL varsayılan) - Şu anda zarfın kökeni (API -> overage, MANUAL asla) tarafından metreye çıkmak - OTKAuthFilter atlar /api/esig/internal-secret authed, not OTK)

Evreniniz sizi bekliyor.
Birkaç dakika içinde ücretsiz olarak başlatın. Hazır olduğunuzda ürünleri ekleyin - göç yok, yeni girişler yok.
Sonsuza kadar ücretsiz — kredi kartı gerekmiyor