Jump to content
KAMOUniverse

Changelog

Ada kabar baru.

Setiap perbaikan pada platform, sebagai kapal.

  1. · kamo-internal

    Tampilkan catatan kepemilikan kepemilikan TXT dalam pengaturan UI DNS

    - DomainData / DnsStatus: tambahkan verifikasi Token, ownershipshipted, type fields - AliasStatusTable: tampilkan TxtOwnerchankCard di atas tabel CNAME dengan tombol salin, indigo tertunda / hijau diverifikasi styling; filter TXT dari CNAME jumlah diverifikasi - ManualDnsGuide: menerima verifikasi Token prop; menunjukkan TXT record sebagai Langkah 3a sebelum catatan CNAME (Langkah 3b) dengan tombol salin inline - DnsProgressView: lulus domain.verificationToken ke ManualDnsGuide

  2. · SecurityService

    Generate TXT verification token on domain create, check in verify-dns

    - createDomain: generate 32-char UUID token and store via setVerificationToken - verifyDns: check _kamo-verify TXT record for kamo-site-verification=<token> - TXT verification counts toward requiredTotal/requiredVerified - Once ownership_verified=true, cache result so member can remove TXT record - CNAME statuses now include type="CNAME"; TXT status includes type="TXT"

  3. · InitializerService

    Add verification_token and ownership_verified columns to org_domains

  4. · kamo-shared-library

    Tambahkan verifikasi kepemilikan domain melalui rekaman DNS TXT

    - Domain Organisme: tambahkan daerah verifikasi Token dan ownertrance Verified - DomainService: tambahkan setVerificationToken () dan setOwnershipted () - DomainDTO: mengekspos verifikasi Token dan memiliki verifikasi dalam tanggapan API - DnsStatuSDTO: tambahkan tipe field untuk membedakan status TXT dari CNAME

  5. · kamo-internal

    Header sticky, alias terbaru, selalu-terlihat panduan DNS Inggris

  6. · SecurityService

    Update required aliases — add app, capcha, docs, sign; remove legacy

  7. · kamo-internal

    Selalu tampilkan tombol DNS bagi pemilik, tambahkan arus perubahan domain

  8. · kamo-internal

    Pass orgId melalui setup / dns flow untuk cross- org manajemen domain

  9. · SecurityService

    Allow cross-org domain management by verifying user ownership

  10. · kamo-internal

    Tambah / setup / dns halaman dan domain setup flow ke / network

    - Halaman baru / setup / dns dengan dua tahap aliran: masukan domain kemudian DNS verifikasi dengan konfirmasi auto- detik dari polling dan SSL - ManualDnsGuide: Langkah yang mudah dipahami oleh - instruksi DNS langkah untuk semua tingkat keterampilan dengan tombol salinan untuk nama rekaman dan nilai target - AliasStatusTable: status verifikasi asal-alias dengan Diverifikasi / Mending / Error chip dan lencana opsional untuk www - DnsProgressView: indikator fase (DNS SSL SIAP), progressView, timer hitung mundur, Periksa tombol Sekarang, otomatis maju ke keadaan sukses - DomainEntryForm: masukan domain dengan uuw toggle dan mood- bahasa UX - / halaman jaringan: non-aktifkan tombol Enter untuk orgs dengan gubahan yang belum dikonfirmasi domain; tampilkan tombol Domain Setup bagi pemilik membutuhkan konfigurasi

  11. · SecurityService

    Add /setup/dns backend — one-domain enforcement, SSL probe, new aliases

    - Enforce one custom domain per org in POST /api/security/domains - Add capcha, docs, sign to standard aliases; remove legacy aliases - Update verify-dns to track required vs optional CNAMEs, auto-trigger HTTP seeds to Traefik logs when all required CNAMEs verified, and HTTPS-probe for SSL confirmation (marks sslConfirmed on parent domain) - Add SslProbeService with triggerHttpSeed() and probeHttps() methods - Expose domainSetupComplete per org in GET /api/security/org/my-networks

  12. · InitializerService

    Add ssl_confirmed and ssl_confirmed_at columns to org_domains

    Adds idempotent ALTER TABLE statements to provision the two new columns needed for DNS setup SSL confirmation tracking.

  13. · kamo-shared-library

    Tambahkan ssslConfirmed / sslConfirmateAt field ke Domain Organin dan DomainDTO

    Tambahkan dua bidang baru ke Entitas Organis dan DomainDTO untuk melacak SSL status konfirmasi sertifikat setelah masalah layanan auto-cert sertifikat. Juga tambahkan pembantu setSslloadfied () ke DomainService.

  14. · kamo-marketing

    Hapus sensor changelog sisi klien - sekarang ditangani oleh backend

    Pengganti kata dan redaction rahasia pindah ke ChangelogSanitisasi Layanan (SecurityService) jadi sanitasi terjadi sebelum penyimpanan DB dan terjemahan. The frontend tidak lagi perlu menyentuh teks.

  15. · SecurityService

    Move changelog word replacement to backend before translation

    Text replacements (Docs→Docs, Meet→Meet, etc.) and secret name redaction (K8s secret names→***) were previously applied client-side in ChangelogClient.tsx, meaning the raw sensitive terms were stored in the database and transmitted to the translation service — so translated records could expose internal names in other languages. Both lists are now applied in ChangelogSanitizationService before the commit is persisted. replaceText() covers titles; sanitize() covers descriptions (strip-patterns run first, then replaceText). The frontend no longer needs to do any censoring.

  16. · kamo-internal

    Replace storage add-on toggle with quantity slider

    Additional Storage is usage-based ($4/25GB block), not a simple on/off add-on. Replaced the toggle switch with a slider (0-1000GB in 25GB steps) plus a numeric input field. Cost breakdown now shows storage as a separate line item. PlanSelection includes additionalStorageGB for the backend to set up metered billing accordingly.

  17. · kamo-internal

    Kawat Manajer BillingManager dan Manajer Hubungan ke backends nyata

    Manajer BillingManager (tab penagihan akun): - Displaced 100% local- negara mengejek dengan Stripe nyata - didukung metode pembayaran manajemen melalui bilingApi - Loads metode pembayaran dari GET / api / billing / payment-metode di mount - Tambahkan arus metode pembayaran menggunakan createSetupIntent ÁStripeprovider + Metode Pembayaran (identik flow ke PlansBillingTab) - Set default via * * * * * * * * * * * * * * * * * * dengan optimis bintang ikon dan in- penerbangan spinner per baris - Hapus melalui billingApi.deletePayHardMethod dengan Dialog Konfirmasi; penghapusan kartu baku diblokir dengan tooltip - Ikon merek kartu (Visa / Mastercard / Amex / Discover) yang ditampilkan dari keberadaan aset SVG; ikon CreditCard generik fallback untuk merek tidak dikenal - Skeleton loading, per- bagian error dengan retry, snackbar feedback Manajer hubungan (tab hubungan akun): - Mengganti negara lokal kosong dengan GET / API / Security / org / my-network - Rahasia jaringan: Pemilik = Jaringan Induk salah (orgs pengguna milik), Pemilik = benar Anak Networks (orgs pengelola pengguna) - Tampilkan inisial Avatar, judul org, tipe / domain meta, dan role chip - Sambungan aksi profil ke domain org ketika tersedia - Aksi hak akses dinonaktifkan dengan tooltip (dikelola via org admin) - Summary chip menunjukkan jumlah orangtua / anak hidup - Tambah / hapus secara sengaja baca-saja; info waspada mengarahkan ke Jaringan halaman untuk manajemen hubungan (tidak ada titik akhir CRUD backend)

  18. · KlusterServices

    Restore bergamot with working model sources and correct image

    - replicas: 1 - Init container (alpine): downloads 4 pairs from data.statmt.org (tarballs for enes/enfr/ende/enpl) and 2 from firefox-translations-models GitHub LFS (individual .gz files for enru/enar) - Image: mozilla/translation-service (proper HTTP server, was WASM library) - Port: 8080 via PORT env var (service defaults to 8000) - Health probes: TCP socket (service has no /health HTTP endpoint) - Remaining 7 locales (pt/it/uk/tr/ro/id/vi) fall through to LibreTranslate

  19. · kamo-internal

    Ganti halaman statistik tiruan dengan dasbor langganan langsung KamoCRM

    Rebuilt / settings / account? tab = statistik kedalam sebuah wawasan penuh, baca-saja Dasbor. Mengganti semua data dengan panggilan paralel ke Layanan BillingService via klien bilingApi yang ada. Tata letak: - Top 2-col grid: rencana kartu overview (nama rencana, status lencana, jumlah kursi, cycle billing, period, cancel warning, feature list) + Ringkasan tagihan kartu (jumlah tagihan berikutnya, harga unit, tambahan aktif, saldo kredit, pembayaran metode terakhir 4) - Full-width Bagian Penggunaan: per-meter progress cards (email dikirim, email penyimpanan, penyimpanan berkas, dokumen) dengan warna-kode progress bar diturunkan dari batas fitur rencana - hijau / peringatan / error pada batas 70% / 90% - Full-width Invoice History table: faktur nomor, titik, status chip, subtotal / pajak / total, link download PDF; hingga 20 faktur terbaru Data: getRecentSubscription, getVavailablePlans, getPemakaian, getInvoices, getCredititubalance, getPaytment Methods - all via guarse.all Selesai sehingga setiap bagian degrade independen pada kesalahan. MuI Skeleton loaders per bagian ketika mengambil.

  20. · kamo-internal

    Lengkap Pilih alur Rencana end-to-end

    - Wire PlanKalculator ke dialog PlansBillingTab (menggantikan placeholder) - Ambil rencana yang tersedia dari penagihan API pada halaman beban - Menangani pengiriman rencana: membuat langganan baru atau pemutakhiran yang ada - Perlu metode pembayaran sebelum subscribing (pengalihan untuk menambah pembayaran) - Tampilkan keadaan pemuatan dengan pesan pemrosesan Stripe selama mengirimkan - Pass konteks rencana (saat ini rencana, siklus, kursi, addon) ke kalkulator - Perbaiki Metode Pembayaran untuk menerima rahasia klien sebagai properti bukannya mengakses Unsur Stripe

  21. · kamo-internal

    Sembunyikan Plan & Billing tab untuk root KamoCRM org

    Pemilik KamoCRM org memiliki semuanya diaktifkan tanpa biaya - mereka harus tidak pernah melihat tagihan. Tab kini hanya diberikan secara kondisional untuk organisasi anak (dimana organisasi .Hasent adalah benar). Anak Pemilik org melihat tagihan org mereka; anggota melihat penagihan berdasarkan Delegasi config.

  22. · SecurityService

    Tambahkan Layanan BillingService ke projek-proyek transelog

  23. · kamo-internal

    Integrasikan sistem stripe billing di seluruh platform

    - Klien baru billingApol.ts dengan tipe TypeScript lengkap untuk semua penagihan titik akhir (langganan, metode pembayaran, faktur, kredit, penggunaan, config, admin) - New Stripe Elemen komponen: StripeProvider, Payment MethoodForm, PlanKalkulator dengan kerusakan biaya penuh, diskon volume, dan bundles - Tulis ulang PlansBillingTab dengan integrasi Stripe nyata: manajemen rencana, Metode pembayaran elemen stripe, faktur sejarah, saldo kredit, penggunaan metering, billing delegasi config, anggota tim billing status - Update FeaturesManager with plan-based gating: lock icon and upgrade CTA untuk fitur tidak termasuk dalam rencana berlangganan saat ini - Hapus tab penagihan dari pengaturan akun (pindah ke halaman anggota) - Pasang @ stripe / stripe-js dan @ stripe / reakt- stripe-js

  24. · BillingService

    Initial BillingService — Stripe-integrated billing for KamoCRM

    Complete Spring Boot service for managing KamoCRM billing via Stripe: - Stripe Customer, Subscription, PaymentMethod, Invoice lifecycle management - Credit system with ledger auditing (Stripe Customer Balance) - Usage metering for KamoMail and DocManager (daily cron sync to Stripe) - Billing delegation (ORG_PAYS_ALL / MEMBERS_PAY_OWN modes) - Configurable delinquency enforcement (SOFT_LOCK, HARD_LOCK, OWNER_FALLBACK) - Stripe webhook processing for real-time state sync - Stripe Price/Product auto-creation from subscription catalog - Full REST API: customers, subscriptions, payment methods, invoices, credits, usage, config, admin endpoints - K8s deployment manifests + Forgejo CI/CD pipeline - Internal-only service (no IngressRoute), accessed via APIService gateway

  25. · APIService

    Add Stripe webhook forwarding and billing API gateway routing

    - POST /api/billing/webhooks/stripe receives Stripe webhooks and forwards to BillingService with Stripe-Signature header preserved - /api/billing/** gateway routes proxy authenticated billing API calls to BillingService through the existing forward() mechanism - Adds billing.service.url and stripe.webhook.secret configuration - Adds stripe-webhook-secret k8s secret reference

  26. · InitializerService

    Add billing config initialization to KamoCRMPricingLoader

    Seeds a default BillingConfig (ORG_PAYS_ALL, SOFT_LOCK, 7-day grace) for the KamoCRM organization during pricing loader startup. Supports the new Stripe billing system.

  27. · kamo-shared-library

    Tambahkan entitas penagihan dan repositori untuk integrasi Stripe

    Paket baru dengan 9 entitas (Pelanggan BillingSubscription, Pembayaran Billing Metode, BillingInvoice, BillingCredit, BillingCredit Ledger, BillingConfig, BillingUgageSnapshot, BillingStripePriceMapping) dan 9 sesuai Repositor JPA. Entinitas ini cermin negara Stripe lokal untuk Sistem penagihan KamoCRM baru.

  28. · kamo-marketing

    Tambah / kalkulator dan / pricing / menawarkan ke semua sitemaps; i18n HTML saitmap label

    - app / sitemap.ts: tambahkan / pricing / offer dan / kalkulator masukan dengan lokal alternatif - app / api / sitemap / route.ts: tambahkan nilai Kalkulator dan masukan spesial - SitemapClient.tsx: pindahkan statistik di dalam komponen dengan t () untuk semua label / deskripsi; tambah link Kalkulator di bawah bagian Produk - pesan / en.json: tambahkan 38 kunci taut saitmap baru

  29. · kamo-marketing

    Ekstrak total string tubuh yang tersisa dari produk, blog, harga, demo, kontak, kalkulator

  30. · kamo-marketing

    Mengekstrak penuh string tubuh dari fitur, sekitar, rumah

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