Não criar chave efêmera por tentativa de Stripe
Segunda revisão (Relatório 17) considerou que "isto é uma criação?" é necessário, mas Não é suficiente. A questão que importa: pode este assunto legitimamente s...
As chaves pertencem apenas ao Stripe, não às mutações
Revisão da Fase 1 (Relatório 15) considerou a Critical: uma idempotência estável chave em uma atualização/cancel/attach/detach não é uma salvaguarda, é um bug. ...
Fazer cada Stripe escrever idempotent, e falhar a compilação em um novo sem uma chave
Um tempo- limite de soquete em uma gravação Stripe que realmente teve sucesso é indistinguível, do nosso lado, daquele que não o fez; sem chave de idempotência ...
Persistir a bandeira processada com o dinheiro escrito, não antes dele
markProcessed foi REQUIRES NOV, por isso comprometi- o dinheiro do manipulador escreve ainda não foram comprometidos no exterior suspenso transacção. JpaTransac...
Prove que a biblioteca HQL analisa no Hibernate este serviço é executado
builds kamo-shared-library on Boot 3.3.4 / Hibernate 6.5; BillingService runs Bota 3.1.5 / Hibernate 6.2.13. Os próprios testes HQL da biblioteca passam vacuous...
Fazer um evento Stripe repetido um no-op
Adiciona BillingWebhookEventClaimService em seu próprio feijão, com REQUIRES NOVO em todos os métodos, e fios-lo em processoEvento à frente do interruptor de de...
Pin o cabeçalho opcional da assinatura e cobrir todos os três ramos de falha para vazamentos do corpo
Biblioteca compartilhada com Pin kamo 1.6.0
A biblioteca mudou-se para 1.6.0 enquanto cada consumidor permaneceu no 1.5.0. IC do consumidor constrói a biblioteca a partir de um clone fresco em um frio ~/....
Parar de vender add-ons o plano escolhido já inclui
O catálogo sempre registrou quais add-ons um plano pacotes, em **************************** — Negócios e transporte empresarial videoconferência, assistente de ...
Publicar a conversão paga para organizações rastreadas
Ambos os caminhos que selo BillingSourceType.PAID agora publicar marketing.visitor.pay, porque gancho apenas um silenciosamente perde metade do tráfego — Accoun...
Tamanho da cápsula acima de seu próprio teto de pilha JVM [skip ci]
A imagem inicia a JVM com -XX:MaxRAMPercentagem=70 -XX:+ Sempre PreTouch, assim o heap sozinho pode tomar 70% do limite do recipiente e pré-toque mantém cada co...
Decida o acesso à plataforma com o resolvedor compartilhado
@PlatformAdminSomente agora nomeia a plataforma certa que ela requer (por omissão para GESTÃO ORGANIZAÇÕES, que é sobre o que é a superfície da plataforma deste...
Transportar a data de renovação da cobertura e das cargas úteis do grupo
Ambas as superfícies agora reportam o PeriodEnd atual e o cancelamentoAtPeriodEnd. A data é o que uma confirmação de cancelamento realmente precisa dizer — "voc...
Cancelar para a cobrança futura e nada mais
Cancelar não toma mais uma bandeira "imediata", e nenhuma rota voltada para o cliente pode perguntar para um. Passando- o true terminou a assinatura no mesmo di...
Um plano por organização, um teto de 25 lugares Enterprise, e uma maneira de parar de pagar
O plano é agora uma decisão de nível de organização e nada mais pode sobrepujá-lo. Deixar um auto-pagador ou um gerente de grupo escolher suas próprias leituras...
Deixe o plano de um grupo ser cancelado, e pare de pagar em dobro por uma pessoa
Três lacunas no último envio: Um grupo com um plano nunca poderia ser removido. delete () recusa enquanto um live assinatura existe — correto, uma vez que a li...
Fazer os grupos de faturamento trabalhar fim a fim, e parar de cobrar auto-pagamento por nada
Um grupo agora pode reunir pessoas, comprar um plano no cartão de seu próprio gerente, e mão Os seus lugares fora. Nada disso existia: as únicas operações foram...
Reconstruir contra a tabela de grupos de pagamentos renomeada
A entidade mudou de billing groups para billing pay groups depois que ela saiu o primeiro é uma mesa de legado vivo com uma forma diferente. Este serviço ainda ...
Parar o envio de uma credencial compartilhada como padrão de configuração
A senha compartilhada da plataforma foi criada como o retorno para DB PASSWORD e MINIO ROOT PASSWORD, então ele viveu neste repo e na imagem construída, bem com...
Diga às pessoas que o seu pagamento falhou, e manter a assinatura para baixo
O dunning que não existia. failure.payment failed escreveu uma linha e retornou: nenhum email, nenhuma bandeira, nenhuma alteração de estado, e billing.email-se...
Deixe um membro comprar seu próprio assento, e fechar um buraco corpo-parâmetro
O auto-pagamento não tinha rota dentro da consola. Tudo na superfície de faturamento é em forma de conta — você já deve ter uma linha ContaMembro antes de Plano...
Política de org e APIs de grupos de faturamento
Quem dentro de uma organização pode pagar Kamo é agora responsável e settable. Ambos as rotas são org-scoped e, portanto, deliberadamente fora /api/billing/acco...
Por omissão, uma nova organização de destino da subscrição para o chamador
Uma primeira compra não tem assinatura existente para copiar alvoOrganizaçãoId de, e requerê-lo incondicionalmente é o que fez criar um a partir do console impo...
Pare de revogar o acesso de faturamento de um membro ao adicioná- los em outro lugar
add() apagou a linha do membro em qualquer outra conta para satisfazer uma única global que já não existe. Adicionar alguém a uma segunda conta de faturamento a...
Compre um bloco quando uma org optado ficar sem espaço
Corre pouco depois da varredura noturna de fotos, porque é isso que produz o figura de uso que decide sobre — expandir-se contra o número de ontem iria comprar ...
Deixe uma mudança de preço do catálogo realmente chegar ao Stripe
Os preços são imutáveis e o mapeamento mantém uma linha por (org, tipo, código, ciclo) atrás de uma chave única, de modo que uma vez que um preço existiu nunca ...
Capacidade de comunicação juntamente com a utilização
O painel de armazenamento apresentou os bytes armazenados contra nada — sem subsídio, nenhum percentual, nenhum dinheiro — assim um proprietário olhando para 40...
Faça um primeiro plano de compra e retorne os preços reais do plano
Duas coisas impediram uma organização de comprar uma primeira assinatura. As listas de planos só foram acessíveis através do sub.marketId numa subscrição já re...
Deixe um sub-org alcançar a conta que paga por ele
ContaAssinatura deliberadamente separa o ordenante da organização cuja os membros consomem os assentos, e contas auto-provisionadas sentam-se no nível superior ...
Contas por unidade de acréscimos por unidades compradas, não por cabeça
Rola a nova quantidade adicional através da criação e atualização: um complemento FLAT agora toma a sua quantidade Listra do que a subscrição realmente comprou,...
Cobrar o que o catálogo diz, uma vez, para a quantidade certa
Cinco defeitos que todos moveram dinheiro real, mais o IDOR sub-recurso abaixo deles. Ciclos de faturamento. Os preços anuais foram enviados à Stripe à taxa de...
Verificar o modo deus contra a base de dados, não um cabeçalho forjado
ContaOrgScopeInterceptor curto-circuito cada org e membro verificar o cabeçalho X-God-Mode-Active e cópias de proxy de faturamento do kamo-internal que cabeçalh...
SQL somente para barataDB que o PostgreSQL rejeita
BarataDB soletra o tipo de texto STRING; PostgreSQL e YugabyteDB usam TEXTO. 25 moldes através de consultas nativas ainda emitiam CAST(x AS STRING) e ::STRING, ...
Reconstruir contra a biblioteca compartilhada @Lob LONGVARCHAR corrigir
O dialeto PostgreSQL de Hibernate leu as colunas @Lob String como OIDs via getLong(). Afeta notas, contatos, calendário, tokens de OAuth, senhas de IMAP, campan...
Ponto em YugabyteDB e usar PostgreSQLDialect
O BarataDB foi substituído pelo YugabyteDB. strings de conexão se movem de baratadb-public:26257 para yb-tserver-service:5433, e o dialeto Hibernate desde o Pos...
Ler o uso da imagem de uma passagem desduplicada
Segue a mudança bibliotecária compartilhada para uma carga por arquivo distinto por organização. Tanto o resumo como o escritor de instantâneos diários tiram um...
Reconstruir para o domínio de previews gerados
Pega na mudança de biblioteca compartilhada que conta miniaturas e faixas para o organiza e lê bytes derivados de img dat derivatives.
Reconstruir para os domínios de branding e docs-workspace
Pega a mudança bibliotecária compartilhada que lê ambos de objeto armazenamento dias.
Reconstruir para o domínio de anexos de mensagens de texto
Pega a alteração bibliotecária compartilhada que mede os anexos MMS dos dados: URIs armazenadas em linha em VOIP MESSAGES.
Reconstruir contra os domínios de armazenamento por categoria
Obtém a alteração de biblioteca compartilhada que divide imgs em um domínio por ImageAssocType, então chame gravações, mensagens de voz, anexos de bate-papo, re...
Gravar a semântica corrigida da caixa de correio
EMAIL agora mede o correio Kamo realmente hospeda, atribuído por caixa de correio para o organização que o possui, em vez de somar um índice de pesquisa que Kam...
Deixe um administrador de plataforma executar a varredura de instantâneos sob demanda
A varredura é o que faz remoções de período e totais de vida para o domínios de exclusão difícil respondê-los em tudo, então dias perdidos para uma falha são pe...
Dar a cada organização um limite real de transação
ArmazenamentoSnapshotSweep.catchUp transportado @Transactional(REQUIRES NEW) e foi chamado do mesmo feijão. Spring aplica @Transactional através de um proxy, en...
Relatar o que uma organização está armazenando
A página de estatísticas da conta sempre disse "Nenhum dado de uso disponível para este período", para cada organização, porque getCurrentUsage() no kamo-intern...
Forçar o auto- ou proprietário em uma conta, não apenas o limite de org
Seguimento do portal cross-org, agora que a regra é decidida: dentro de uma organização você pode gerenciar sua própria conta de faturamento, e um proprietário ...
Pare uma organização de chegar a outra organização de faturamento
/api/billing/accounts examina sua listagem pelo cabeçalho X-Org-Id, mas cada rota abaixo /{accountUid} pegou o id diretamente do caminho e nunca verificou quem ...
Tente novamente a compilação bibliotecária compartilhada, que o uplink da LAN continua corrompendo
Três construções morreram hoje em "Tag mismatch" puxando um jarro — e o espelho acrescentou uma hora atrás não ajuda, porque kbservice, mcpgatewayservice e rags...
Resposta "é este vendível" do catálogo de aplicativos, não o enum
Disponibilidade tornou-se editável pelo operador em tempo de execução, então derivando-o do ServiceType.getStage() significa A publicação da MLOS em Apps e Recu...
Como o que vês no transporte?
Tudo isso chega em seu espaço de trabalho por conta própria. Comece no plano gratuito e leia esta página novamente em um mês.
