Jump to content
KAMOUniverse

Changelog

Ada kabar baru.

Setiap perbaikan pada platform, sebagai kapal.

  1. · kamo-shared-library

    Tambahkan VENDOR _ CALLBACK _ RESOLVED event- tipe kunci (0.6a ingress)

  2. · kamo-shared-library

    Registry Loanidentifier substrat - 42 typed ids (keystone 0.5, slice 1)

    Pkg com.kamo.z.shared.mlos.idents (kunci rooting inbound- webhook): LoanidentifierType (42 first-class typed, masing-masing membawa Cardinality + Ownection; @ Enumerated STRING; singleActiveTypes () berasal dari metadata) + * * * * * * * * * * * * * * * + Loanidentifier entity (BacuUidEntity; FK-by-id Long loanFileUid + denormailed organactionId, dikurangi dari loanFile terkunci; write- sekali @ PreUprender guard melemparkan pada nilai / type / custom Subtype, hanya status flip diperbolehkan; @ PrePersist normalizes menerbitkan / subruply + enforce LAther < = > guiring Subtype) Diverifikasi secara lokal: mvn install BUILD SUCCESS, 49 MLOS test pass (incl single-active drift- guard test menegaskan enum set cocok dengan particulzer-index DDDL). KamoInitializer DDL: scan + 3 partial-unik indeks + LAIN CHECK. RESOLVER + webhook ingress = MLOSIdenfierService microservice baru (ditunda).

  3. · kamo-shared-library

    Pramugari Feedback flywheel - menangkap setiap keputusan steward (keystone 0.11)

    Pkg (* * * * * * * * * * * * * * append -only StefwarFeedback ground-truth (FK ai _ decision.uid; keputusan CONFIRM / OVERRIDE / MODIFY; Reg-B-aligned Request Award; adalah Loan yang dicap pada recording per records + preacended PRT. Urutan ulang mlos.governot.gover.enabled (baku mati - > radius ledakan nol). KamoInitializer DDL: memindai + steward _ feedback index + FK ke ai _ decision.

  4. · kamo-shared-library

    Buku A Decision Worim + Two Wall DecisionGate (keystone 0.3, slice 1)

    Pkg com.kamo.z.shared.mlos.decision (greenfield decids background, never editits donmoduction): appect-immutable -only AiDecision (WORM via @ PreUpdate guard; loanFileId adalah Long FK to LoanFile.uid per dochas, NOT UUKID; supersedecirationId di NEW untuk tetap bekerja dengan DB +) * * * * * * * * * * * * * * * enums + AidecisionRepositori (pelacak loan-scoped). DesisionGate = in- proses dua-dinding perpustakaan (dinding legal ABSOLUTE / non-tunable; kepercayaan dinding tunable; bukan-tunable platform aman lantai di bawah) - konfigurasi-hanya @ Komponen, tidak ada estated- aman. Font color = "# ff80c0" DEFERED untuk potongan ketergantungan: DecisionInput (FKs the Phase-2 katalog), Pramugari / OrchestrayState, registry legal, HMDA- firewall CHECK, Modelverage FK. KamoInitializer DDL ditambahkan (ai _ decision index + ditandai DB WORM menggunakan CRDB v24.x).

  5. · kamo-shared-library

    Tenant- isolasi gerbang untuk tulang punggung acara (Iris 3)

    Roadmap 0.10: * * * * * * * * * * * * * * * * (urutan pelanggan penyewa) + vousToTenant (subject, orgId) to ken-wise pencocokan bahwa mirror NATS filtering; forents sekarang menolak non-positif orgId (tidak ada acara tanpa penyewa). MlosTenantIovation Tes adalah gerbang yang dapat dieksekusi (incl token- batas: org 12 tidak pernah cocok dengan org 123). MlosDeadLetterRepositori memperoleh penemu steward yang discoped (repo- layer orgscope guard) bersama dengan operator- gated crosstenant one. Skup penyewa di X-Internall-Auth hop adalah estate- lebar dan menunda ke keystone auth; tes isolasi pialang hidup mengikuti dengan konsumen beton pertama.

  6. · kamo-shared-library

    Idetasi sisi konsumen, replay DLQ + steward (Iris 2)

    Tambahkan inti ketergantungan bahwa setiap konsumen MLOS plugs ke dalam buku besar: ProcessedEvents dedup (unik consumer _ name + event _ id) + MlosDeadLease DLQ + MlosDeadLetterStatus; Idempotents Eventors (INSERT-or-skip dedup in the handler 's tx) + MlosDeadledge DQ + MlosDeaddecentLetter Status; IM MESIN' s 's' s 's', 's' s 's' s 's' s _ not 's' s 's' s 's' s 's' s _ ignore _ ignore _ ignore 'MlosEventEnvelope memperoleh @ Jacksonized untuk deserialisasi perjalanan keliling. Komponen @ Baru berbagi opsi mlos.outbox.enabled; repos berada dalam paket yang telah dipindai. Live AbstractMlosDurableConsumer (langganan NAS) ditangguhkan untuk konsumen beton pertama.

  7. · kamolos

    Adopsi kotak-keluar transkasional MLOS (path produser)

    Aktifkan tulang punggung Phase-0 di KamoLOS: tambahkan com.kamo.z.shared.mlos.event ke @ EnableJpaRepostories scan, mlos. * config (mlos.outbox.enabled = true, MLOS _ EVENTS stream + dedup window, sweeper), dan sebuah proporce- path confired test profired profired profigeeper > Setelah relay _ PERINTAH diterbitkan tepat sekali dengan amplop evenId sebagai Nats-Msg-Id. Skema (mlos _ outbox _ event + index) diterapkan secara terpisah oleh pengguna-run KamoInitializer.

  8. · kamo-shared-library

    Phase-0 keystone B)

    Uang / compligence-grade produser jalur dalam newest sibling pkg * * * * * * * * * * (belum pernah diedit): MlosEventEnvelope DTO + MlosOutbox entitas outbox / repo + OutboxWriter (single-tx antrean) + OutboxRelay (AFTER _ PERINTAH hotpath + @ Scheduled sweeper, mempublikasikan dengan Nats-Msg-Id) + MlosNatsStreamConfig (new MLOS _ EVENTS _ EVASs). Mengurangi kacang yang terkunci dari NATS Connection / JetStream. Opt-in via mlos.outbox.enabled (baku mati) sehingga layanan adopsi tidak terpengaruh. Tepat sekali -sekali efek = outbox transaksional + JetStream Nats-Msg- Id dedup. Dedup konsumen / DLQ + CI tenant- isolasi adalah Iris 2 / 3.

  9. · kamo-internal

    Tampilkan perstage data lapisan incl. EDT4 mask laut + TRF2 tanda

    Kartu panggung worldgen dashboard sekarang daftar data lapisan setiap tahap tile bakes, accenting yang baru ditambahkan: Laut EDT4 (laut-koneksi) topeng di bawah hidro, dan TRF2 lane tanda + medan runtime grading di bawah transportasi. Format / data murni label (STAGE _ LAYERS dalam types.ts) - tidak ada string i18n baru. Cacah stale / regen sudah permukaan secara otomatis benjolan provenance EDT3 EDT4 / TRF1 CONF2.

  10. · kamo-internal

    Staleness tile permukaan + ditargetkan "Regenerate N" di halaman

    The agent snapshot now carried perresete staleness (up- to-date / stale / missing); plumb melalui API + SSE ke halaman: - Tab layanan menunjukkan kesegaran baris per layanan tile dan tombol Start menjadi "Regenerate N" (= stale + hilang) ketika ada target kerja, atau "Up to date". - Overview solusi ubin petunjuk menunjukkan berapa banyak ubin perlu memperbarui. Mulai sudah provensikan - didorong pada host, sehingga tombol memicu target regen persis sel basi / hilang.

  11. · kamo-internal

    Halaman admin alam semesta generasi

    Tambahkan / atur / platform / universe di bawah Administrasi Platform - platform sendiri kartu + tiga sub-tab (Overview, Services, Actions) - untuk mulai dan memantau KamoUniverse World- data pipa hidup. Backend (API Berikutnya, platform-admin digated melalui sesi * * *, aturan yang sama dengan client guard): - app / lib / worlgenNats.ts: satu lama hidup NATS koneksi + sebuah subscriber status bahwa caches status per-stage terbaru + snapshot (in- memory + Redis) dan re- memancarkan pada sebuah bus in- proses untuk SSE. Menerbitkan perintah awal. - app / api / universe / layers GET current state of every stage (status + tile jumlah + lockHed). - * * * * * * * * * * * * * * POST perintah awal ke agen k3m1. - app / api / universe / stream SSE stream dari status hidup / snapshot event. Frontend (MUI + next-intl, mirror halaman konfigurasi): - useWorldgen: satu stream SSE bersama (auto-reconnect) + start () untuk semua tab. - Overview: agen / batch / pelengkapan / tile stat ubin + a live pipeline rail. - Servis: kartu kaya per skrip - peran + apa yang dicapai, negara langsung lencana, memiliki / total progres bar, acara terakhir, dan tombol Start (dimatikan sementara setiap batch memegang kunci global). - Aksi: jalankan baris pipa penuh atau sebuah tahap individu (dengan konfirmasi), ditambah snapshot refresh. Wiring: NAS _ URL ditambahkan ke konfigurasi; 'nats' ketergantungan klien ditambahkan. K3m1 Agen + skrip telemetri hidup dalam universe- earthdata; string dalam terjemahan kamus. tsc membersihkan semua file baru.

  12. · kamo-shared-library

    Tambahkan case- sensitivitas findByEmailEdocueCase

    Email disimpan dengan kasus yang tidak konsisten (misalnya Sage @ KamoCRM.com) dan CockroachDB string kesetaraan case- sensitif, sehingga findByEmailEmail misses untuk kasus saja. Diperlukan untuk pencarian email pemulihan sandi.

  13. · EmailService

    Self-heal akun kotak surat dari aplikasi DB (drift recover)

    Aplikasi DB adalah sumber kebenaran yang seharusnya ada di kotak surat; KamoMail akun hidup di server surat virtual _ users. Jika DB surat kehilangan data, kotak surat hilang pada penyedia sementara catatan aplikasi tetap. - Mailbox SelfHealService: pada startup + harian, kembalikan aplikasi Kamo _ MAIL apapun kotak surat hilang dari virtual _ users (app- acak dikelola kata sandi). - syncMailbox (pengaturan "Sync" aksi) sekarang juga menekan operator ap- > untuk sebarang kotak surat yang hilang, bukan hanya impor aplikasi - >.

  14. · kamo-internal

    Tulis / kirim atas nama kotak surat anggota yang tertukar

    - Thread pemilik kotak surat memberId dari switcher melalui kotak-surat aktif ke konteks compose (event + URL param). - Pesan / balas / tulis terbuka untuk anggota kotak-surat terpilih: Dari daftar dropdown yang anggota kotak surat + alias, tanda tangan personalisasi kepada mereka, dan mengirim / draft otentikasi sebagai kotak surat mereka (mailboxId). - Self compose tidak berubah ketika tidak ada anggota kotak surat aktif.

  15. · kamo-internal

    Membawa * * * dalam sessionStorage pertab bukan cookie terbagi

    Id sesi tinggal di cookie browser bersama di seluruh tab dari sebuah asal, sehingga tab kedua (peniruan) tidak dapat menahan sesi sendiri. Pindahkan pembawa ke sesi Penyimpanan (per- tab): - sesionClient: token helpers + a global fetch wrapper yang menempel id sebagai X- * * -Token pada same- asal / api panggilan, ditambah satu-waktu cookie- > sesionStorage migrasi. Dipasang melalui SessionBootstrap di tata letak. - * * * * * * * * * * * * * header-first (cookie fallback) digunakan oleh generasi- otk, session / info, session / expand, logout, meet / invite- email. - generate OTK + getKsemIdFromRequest lebih suka X- * * * -Token atas cookie. - / api / validate tidak lagi menset a * * cookie; mengembalikan id dan / validasi halaman menyimpannya di tab ini sesionStorage. - useUserInfo + all WebSocket kait membaca id dari sesionStorage. - Logout menangkap token sebelum membersihkan penyimpanan sehingga sesi Redis masih kebal. Peniruan sekarang hanya membuka / memvalidasi? otk =... dalam tab baru (jalur yang sama sebagai login: sesi Redis dibuat server-side, OTK diserahkan ke / validate); tab baru mendapat sesi sendiri dan tab admin tidak tersentuh. Menghilangkan Forte Prev / ImpersonationBanner sudah usang kembali- ke -admin mesin. Orgs tetap dipisahkan oleh domain - tidak berubah.

  16. · kamo-internal

    Tombol God-mode Imppersonate pada kepala pengaturan anggota

    Tambahkan aksi 'Palsu' di / pengaturan / anggota / [id], terlihat hanya ketika tanda-dalam sesi membawa mode dewa (getIsGod) dan target bukan diri baru. Panggilan baru / api / keamanan / meniru, kemudian swap * * * cookie melalui path OTK (/ validate? otk =... & Keep Prev = 1) dalam tab baru. Jauhkan Prev menjaga sesi admin sendiri di Redis; global Penipuan Banner stash the admin * * dan menawarkan satu - klik 'Return untuk account saya '(same- asal cookies tidak dapat menahan dua sesi hidup sekaligus). SettingsView memperoleh sebuah slot header opsional.

  17. · SecurityService

    God- mode anggota peniruan titik akhir

    POST / api / keamanan / meniru mint segar * * * + OTK untuk sebuah sewenang-wenang anggota pemanggil saat org, gated pada sesi penelepon membawa mode dewa (GD). Records the god admin 's member id as SUDO _ MEMBER _ ID for audit. Sesi yang sama berbentuk login- dibangun sebagai Controller EntertaAsController, tetapi same-org dan god- gated daripada cross-org.

  18. · SecurityService

    Kembalikan orgName + bahasa dalam / user-info

    Selesaikan nama tampilan org dan bahasa yang dipilih anggota (ISO- 639- 1 kode) dari DB sehingga kamo-universe dapat menunjukkan tanda bahasa masing-masing pemutar org + Di papan nama mereka. Resolved live (bukan dari sesi) sehingga sesi yang ada menjemput mereka segera.

  19. · kamo-internal

    Kartu peluncuran KamoUniverse + nav ikon (gated ACCESS _ KAMOWORD, OTK redirect to play. *)

  20. · kamo-shared-library

    Tambahkan AKSES _ KAMOWORLD kanan (145, GAMES) untuk akses KamiUniverse

  21. · KlusterServices

    K1m1 gambar registry menggantikan pensiunan k0m1: 5000 (kredensial sama)

  22. · KlusterServices

    Kamo-universe namespace + quota + valkey, CockroachDB backup, observability stack

    - Alam semesta /: namespace + ResourceQuota, Valkey -universe (AOF, hostPath k1m1), nightly CockroachDB backup CronJob, operator bootstrap script - Pemantauan /: nilai helm dipaku * * * * * * * * * * * * instal script, grafana. * route, universe dashboard + alert rules - CI: menerapkan alam semesta namespace + valkey dalam fase k1m1 (Paket NATS jatuh: 43030d6 sudah dire- homed k3m1 dengan isolasi rekening)

  23. · KlusterServices

    Tambahkan titik k3m1 + migrasi cluster mengintip ke IP LAN

    - Statefulset: iklan / bergabung lebih dari 192.168.4.x (k1m1 = .22, k3m1 = .36); Wire Guard jatuh (k3m1 wg0 10,8.1 bertabrakan dengan IP K0m1). - dalam - pekerjaan + CI kubeconfig titik akhir pindah ke IP LAN. - CI: tambahkan daerah menyebarkan K3M1 CockroachDB (membutuhkan rahasia K3M1 _ KUBECONFIG _ B64).

  24. · kamo-login

    Tanda tangan yang dibayar rute untuk keluar setelah log masuk

    Setelah sukses auth (manual atau auto-login), konsumsi apex-domain SP _ checkout _ plan cookie ditinggalkan oleh kamo- register dan mengarahkan pembeli ke brand / subscribe? Rencana = page (Stripe checkout) daripada aplikasi baku Tujuan. Satu-tembakan: cookie dibersihkan di baca.

  25. · kamo-register

    Rencana dari mendaftar ke checkout

    Ketika anggota mendaftar berasal dari CTA yang dibayar (? Rencana = pro = 124; bisnis), drop a apex-domain sp _ checkout _ plan cookie pada penyelesaian. kamo- login mengkonsumsi itu setelah pengguna otentikasi dan rute mereka ke / berlangganan - > Stripe, bertahan dari register - > verifikasi - > login hop.

  26. · kamo-shared-library

    Templat tanda tangan Canonical e- tanda (verifikasi + undangan)

    Tambahkan dua platform-wide canonical contoh email yang mendidih lazily per org: - emsign.signer _ verification (step-up OTP: {{code}}, {name}) - emsign.signer _ invite (undangan tanda tangan: {{name}}, {{{{sender}}}, {{{pesan}}) Kawat mereka ke Canonicle TemplateLoader daftar kunci + sumber daya jadi EmailService.seedForOrg menjemput mereka pada pengiriman pertama. Aktifkan hidup OTP / undangan pengiriman untuk arus e- sign (adalah upaya terbaik no- op tanpa template).

  27. · BillingService

    Tanda tangan penggunaan metering + konsumen-melayani checkout

    # 4 meter: - EsignMeterSubMission Service (@ Scheduled Daily): kumpulkan APl- asal Menghapus Records per org + periode; pertama 40 / periode disertakan, sisanya dimasukkan Sebagai Stripe Meterents. Idempotent via reportedToStripe + the usage- record UID as The MeterEvent identifier (Stripe-side dedupe). Selesaikan nama acara meter dari addon sebenarnya harga Stripe * * * * * * * * * * * * * * * * * * * sehingga cocok dengan harga meter apapun yang terikat (perbaikan penamaan tidak cocok). # 5 checkout konsumen: - KonsumerCheckoutService: Sesi Checkout Stripe (mode = berlangganan) terhadap Harga rencana root produk (+ metered overage line for Business); rekam AccountSubscription (source PID) + Subscription Member + AccountLicense on penyelesaian dan invalidates hak. - KonsumerSesionResolver: otentikasi pembeli oleh sendiri * * cookie melalui Redis (tidak pernah a client-set org header). - KonsumerCheckoutController POST * * * * * * * * * * * * * * * - StripeWebhookService sekarang menangani checkout.session.completed. Addititive / inert sampai seorang pelanggan menjadi subguru; muatan langsung memerlukan kartu asli.

  28. · kamo-internal

    Ekspose API _ SIGNATURE (lingkup kunci E-Signature API)

    Tambahkan lingkup API E- Signature ke manajer tombol org API- sehingga staf dapat memberikan Perusahaan program akses e- sign. Penggunaan di luar yang disertakan bulanan allotment adalah metered per tanda tangan.

  29. · APIService

    Program publik e- tandai gateway API (lingkup API _ SIGNATURE)

    Tambah / api / public / esign / * * to PublicAPiController: memvalidasi kunci org API, membutuhkan lingkup API _ SIGNATURE, rate- batas, dan ke depan ke ESigService 's amplop internal API (/ api / esig / internal / *) dengan X-Internall-Auth + X- Organ- Id. Cermin langganan katalog gateway preseden.

  30. · ESigService

    Internal programmatic amplop API (asal = API) untuk Bisnis

    - EsignInternall Controller (/ api / esig / internal / *): X-Internall-Auth + X-Organs-Id Ditulis, dipanggil oleh APIService setelah itu memvalidasi kunci API _ SIGNATURE- scoped; reuses EsignEnvelopeService, tag amplop EsignUAngeOrigin. API - * * * * * * * * * * * * * - Tanda tangan sekarang meter oleh asal amplop (API - > overage, MANUAL never) - OTKAutFilter bypass / api / esig / internal (dokumen rahasia, bukan OTK)

Alam semestamu menunggu.

Mulai gratis dalam beberapa menit. Tambahkan produk kapanpun Anda siap — tidak ada migrasi, tidak ada login baru.

Gratis selamanya — tidak diperlukan kartu kredit