Ir para o conteúdo
KAMOUniverse

Changelog

O que há de novo.

Cada melhoria para a plataforma, como ele envia.

  1. · kamo-internal

    Mostrar registro de propriedade de domínio TXT na interface de configuração DNS

    - DomainData/DnsStatus: adicionar verificaçãoToken, propriedadeVerificado, campos tipo - AliasStatusTable: mostrar TxtOwnershipCard acima CNAME tabela com botão de cópia, indigo pendente / verde verificado styling; filtros TXT da contagem verificada CNAME - ManualDnsGuide: aceita verificação Token prop; mostra o registro TXT como Passo 3a antes de registros CNAME (Passo 3b) com botão de cópia em linha - DnsProgressView: pass domain.verificationToken to 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

    Adicionar verificação de propriedade de domínio via registro DNS TXT

    - OrgDomain: adicionar verificaçãoToken e propriedadeCampos verificados - DomainService: add setVerificationToken() e setOwnershipVerified() - DomainDTO: expor verificaçãoToken e propriedadeVerificado nas respostas da API - DnsStatusDTO: adicionar campo de tipo para distinguir TXT dos status CNAME

  5. · kamo-internal

    Cabeçalho pegajoso, apelidos atualizados, guia DNS sempre visível em inglês simples

  6. · SecurityService

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

  7. · kamo-internal

    Mostrar sempre o botão DNS para os proprietários, adicionar o fluxo de domínio de mudança

  8. · kamo-internal

    Passe orgId através do fluxo de configuração/dns para gerenciamento de domínio cross-org

  9. · SecurityService

    Allow cross-org domain management by verifying user ownership

  10. · kamo-internal

    Adicionar /setup/dns página e fluxo de configuração de domínio para /network

    - Nova página /setup/dns com fluxo bifásico: entrada de domínio então DNS verificação com auto-polling de 60 segundos e confirmação SSL - ManualDnsGuide: instruções DNS passo-a-passo para todos níveis de habilidade com botões de cópia para nomes de registros e valor alvo - AliasStatusTabela: status de verificação CNAME ao vivo com Verificado / Pendente / Chips de erro e crachá opcional para www - DnsProgressView: indicador de fase (DNS → SSL → Pronto), barra de progresso, temporizador de contagem regressiva, botão Verificar agora, auto-avança para o estado de sucesso - DomainEntryForm: entrada de domínio com www toggle e UX em linguagem simples - /network page: desabilitar botão Enter for orgs with unconfirmed custom domain; mostrar o botão Configurar o Domínio para os proprietários que necessitam de configuração

  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

    Adicionar sslConfirmado/sslConfirmadoEm campos para OrgDomain e DomainDTO

    Adiciona dois novos campos à entidade OrgDomain e DomainDTO para rastrear SSL estado de confirmação do certificado após os problemas do serviço de certificado automático um certificado. Também adiciona setSslConfirmed() helper to DomainService.

  14. · kamo-marketing

    Remova censura do changelog do lado do cliente — agora manipulado pela infraestrutura

    Substituição de palavras e redação secreta movida para ChangelogSanitização Serviço (SecurityService) para higienização acontece antes de armazenamento DB e tradução. A interface não precisa mais tocar no texto.

  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

    Armazenamento adicional é baseado no uso (bloco $4/25GB), não um simples on/off Add-on. Substituiu o interruptor com uma barra deslizante (0- 1000GB em 25GB) passos) mais um campo de entrada numérico. A repartição dos custos mostra agora o armazenamento como um item de linha separado. PlanSelection inclui adicionaisStorageGB para a infra-estrutura para a instalação de faturamento medido em conformidade.

  17. · kamo-internal

    Wire BillingManager e RelacionamentoManager para infra-estruturas reais

    BillingManager (página de cobrança da conta): - Substituido 100% local-state simulada com método de pagamento real Stripe-backed gestão via faturamentoApi - Carrega métodos de pagamento de GET /api/billing/payment-methods na montagem - Adicionar fluxo de método de pagamento usa createSetupIntent → StripeProvider + PagamentoMétodoForm → confirmarCardSetup → anexarPagamentoMétodo (idêntico fluxo para PlanosBillingTab) - Definir o padrão através de... ícone da estrela e spinner em voo por linha - Apagar via faturamentoApi.deletePagamentoMétodo com ConfirmaçãoDialog; apagar cartão padrão é bloqueado com dica - Ícones de marca de cartão (Visa/Mastercard/Amex/Discover) mostrados a partir de Activos SVG; regressão genérica do ícone CreditCard para marcas desconhecidas - Carregamento esquelético, erro por seção com repetição, feedback snackbar RelationshipManager (pasta relações de conta): - Estado local vazio substituído por GET /api/security/org/my-networks - Classifica redes: isOwner=false → Redes Pais (orgs o usuário) pertence a), isOwner=true → Child Networks (orgs o usuário gerencia) - Mostra iniciais do Avatar, título de org, meta tipo/domínio e chip de papéis - Perfil links de ação para o domínio org quando disponível - Ação de direitos de acesso desabilitada com dica de ferramenta (administrada via org admin) - Sumário chips mostram contagens de pais/filhos vivos - Adicionar/remover é somente leitura intencional; info alerta direciona para a rede página para o gerenciamento de relacionamentos (não existe backend CRUD endpoint)

  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

    Substituir a página de estatísticas simuladas pelo painel de assinaturas do KamoCRM ao vivo

    Reconstruído /settings/account?tab=stats em um insight totalmente conectado, somente leitura Painel. Substitui todos os dados simulados por chamadas paralelas ao BillingService via o cliente existente do BillingApi. Disposição: - Top 2-col grid: Plan Overview card (nome do plano, crachá de status, número de assentos, ciclo de faturamento, período, aviso de cancelamento, lista de recursos) + Resumo da Faturação cartão (próximo montante da factura, preço unitário, complementos activos, saldo de crédito, pagamento método último 4) - Seção de uso de largura completa: cartões de progresso por metro (e-mails enviados, e-mail armazenamento, armazenamento de arquivos, documentos) com barras de progresso codificadas a cores derivadas a partir dos limites das características do plano — verde/aviso/erro aos limiares de 70%/90% - Tabela de histórico da fatura de largura completa: número da fatura, período, chip de status, link de download subtotal/imposto/total, PDF; até 20 faturas mais recentes Dados: getCurrentSubscription, getAvailablePlans, getCurrentUsage, GetInvoices, GetCreditBalance, GetPaymentMethods — tudo via Promise.all Liquidado assim cada seção degrada-se independentemente no erro. Carregadores de esqueleto MUI por secção durante a recolha.

  20. · kamo-internal

    Completar Escolha um Plano de fluxo de ponta a ponta

    - PlanCalculador de fios no diálogo PlansBillingTab (substitui o placeholder) - Obter planos disponíveis da API de faturamento na carga da página - Manipulação do plano de submissão: cria nova assinatura ou atualizações existentes - Requerer o método de pagamento antes de assinar (redirecionamentos para adicionar o pagamento) - Mostrar o estado de carregamento com a mensagem de processamento Stripe durante o envio - Passar contexto plano (plano atual, ciclo, assentos, addons) para calculadora - Corrigir PagamentoMétodoForm para aceitar clienteSecret como prop em vez de acessando elementos de listras internas

  21. · kamo-internal

    Ocultar a aba Planos e Faturamento para o root KamoCRM org

    KamoCRM org proprietários têm tudo habilitado sem custo - eles devem Nunca ver a conta de cobrança. A página agora é renderizada condicionalmente apenas para organizações de crianças (onde a organização. tem Pai é verdade). Criança org proprietários ver faturamento de sua org; membros ver faturamento com base no configuração da delegação.

  22. · SecurityService

    Adicionar BillingService aos projetos públicos changelog

  23. · kamo-internal

    Integrar o sistema de faturamento Stripe através da plataforma

    - Novo cliente de faturamentoApi.ts com tipos TypeScript completos para todos os faturamentos endpoints (assinaturas, métodos de pagamento, faturas, créditos, utilização, config, admin) - Novos elementos de listras: StripeProvider, PaymentMethodForm, PlanCalculador com repartição de custos totais, descontos de volume e pacotes - Reescrever PlanosBillingTab com integração Stripe real: gestão de planos, Métodos de pagamento Stripe Elements, histórico de faturas, saldo de crédito, medição de uso, configuração da delegação de faturamento, status do membro da equipe - Atualizar FuncionalidadesManager with plan-based gating: lock icons and upgrade CTA para as funcionalidades não incluídas no plano de subscrição actual - Remover a guia de cobrança das configurações da conta (movido para página de membro) - Instalar @stripe/stripe-js e @stripe/react-stripe-js

  24. · BillingService

    Initial BillingService — Stripe-integrated billing for KamoCRM

    Serviço completo de inicialização de primavera para gerenciar faturamento KamoCRM via Stripe: - Stripe Cliente, Assinatura, PagamentoMétodo, Gestão do ciclo de vida da factura - Sistema de crédito com contabilidade de auditoria (Equilíbrio de cliente de escala) - Medição de uso para KamoMail e DocManager (sincronização diária para Stripe) - Delegação de facturação (modos ORG PAYS ALL / MEMBROS PAY OWN) - Execução de delinquência configurável (SOFT LOCK, HARD LOCK, ONDER FALLBACK) - Stripe webhook processamento para sincronização de estado em tempo real - Stripe Preço/Produto Auto-criação a partir de catálogo de assinatura - API REST completa: clientes, assinaturas, métodos de pagamento, faturas, créditos, uso, configuração, terminais de administração - Manifestos de implantação do K8s + Forgejo CI/CD pipeline - Serviço somente interno (sem IngressRoute), acessado via gateway APIService

  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

    Adicionar entidades de faturamento e repositórios para integração com o Stripe

    Novo pacote com 9 entidades. (BillingClistômer, BillingAssinatura, BillingPagamento Método BillingInvoice, BillingCredit, BillingCreditLedger, BillingConfig, BillingUsageSnapshot, BillingStripePriceMapping) e 9 correspondentes Repositórios JPA. Estas entidades espelham o estado da Listra localmente para o novo sistema de faturamento KamoCRM.

  28. · kamo-marketing

    Adicionar /calculador e /pricing/oferta a todos os sitesmaps; i18n HTML sitemap labels

    - app/sitemap.ts: adicionar /pricing/oferta e /calculator entradas com alternadores locais - app/api/sitemap/route.ts: adicionar calculadora de preços e entradas de oferta especial - SitemapClient.tsx: mover estáticaSeções dentro do componente com t() para todas as etiquetas/descrições; adicionar o link da calculadora na seção do produto - messages/en.json: adicionar 38 novas teclas de etiqueta/descrição do sitemap

  29. · kamo-marketing

    Extrair completamente as cordas restantes do corpo do produto, blog, preços, demo, contato, calculadora

  30. · kamo-marketing

    Extrair completamente cordas do corpo de características, sobre, casa

Seu universo está esperando.

Comece gratuitamente em minutos.Adicione produtos sempre que estiver pronto — sem migração, sem novos logins.

Gratuito para sempre — não é necessário cartão de crédito