[{"data":1,"prerenderedAt":794},["ShallowReactive",2],{"blog-pt-supabase-point-in-time-recovery":3,"blog-index-pt":444},{"id":4,"title":5,"body":6,"category":401,"cover":402,"coverAlt":403,"description":404,"draft":405,"extension":406,"faq":407,"image":422,"keywords":423,"meta":431,"navigation":432,"ogTitle":433,"path":434,"published":435,"seo":436,"stem":437,"tldr":438,"updated":435,"__hash__":443},"blog_pt\u002Fblog\u002Fsupabase-point-in-time-recovery.md","Point-in-time recovery do Supabase: preço e limites",{"type":7,"value":8,"toc":387},"minimark",[9,13,16,19,24,27,30,33,44,48,51,54,98,101,109,112,116,119,127,130,136,143,147,150,157,166,170,173,176,184,188,191,194,199,202,205,209,212,291,294,298,320,324,327,332,364,372,379],[10,11,12],"p",{},"Você está no plano Pro do Supabase, alguma coisa deu errado numa hora que você\nconseguiria anotar, e o backup desta madrugada é mais velho que o erro. Em algum\nlugar do painel existe uma chave chamada Point in Time Recovery com um preço ao\nlado, e a pergunta é se esse preço compra o que você acha.",[10,14,15],{},"Aqui está a parte que todo panorama achata: o point-in-time recovery e uma cópia\nque você guarda são dois produtos diferentes, e ligar o primeiro não muda nada\ndaquilo para que o segundo existe. Os dois aparecem em Backups no painel, e daí\nvem a maior parte da confusão.",[10,17,18],{},"Ajuda pensar num como gravação e no outro como fotografia. Um backup diário é\numa fotografia: um quadro por dia, tirado numa hora fixa, e você pode levá-lo\npara fora do prédio. O point-in-time recovery é a câmera do próprio prédio,\nrodando sem parar, que deixa você parar no quadro que quiser. As fitas estão no\nporão e alcançam uma semana para trás.",[20,21,23],"h2",{"id":22},"o-que-é-point-in-time-recovery-no-supabase","O que é point-in-time recovery no Supabase?",[10,25,26],{},"É uma forma de devolver seu banco de dados a um momento específico em vez de a\num backup específico.",[10,28,29],{},"O Supabase monta isso com duas coisas funcionando juntas. A primeira é um backup\nfísico, um retrato diário dos arquivos do banco. A segunda é o arquivamento do\nWrite Ahead Log: o Postgres mantém um registro corrido de cada alteração que\nfaz, e o Supabase leva esses arquivos embora a cada dois minutos, ou na hora\nquando um deles passa de certo tamanho. Uma restauração carrega o retrato e\ndepois reproduz o registro para a frente até alcançar o momento que você pediu.",[10,31,32],{},"É desse mecanismo que vem a precisão. O Supabase descreve o resultado como uma\ngranularidade que chega aos segundos, com um pior caso que eles colocam num\nRecovery Point Objective de dois minutos, ou seja, o máximo que você poderia\nperder no fim do momento escolhido.",[10,34,35,36,43],{},"A\n",[37,38,42],"a",{"href":39,"rel":40},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fbackups",[41],"nofollow","documentação de backups","\ndeles é a página com o formato atual de tudo isso. Tudo o que vem aqui embaixo\ndepende de números que pertencem a eles.",[20,45,47],{"id":46},"quanto-custa-o-point-in-time-recovery-do-supabase","Quanto custa o point-in-time recovery do Supabase?",[10,49,50],{},"$100 por mês para uma janela de sete dias, além do plano Pro, que sozinho custa\n$25 por mês.",[10,52,53],{},"O Supabase cobra o adicional por hora e vende três tamanhos de janela:",[55,56,57,70],"table",{},[58,59,60],"thead",{},[61,62,63,67],"tr",{},[64,65,66],"th",{},"Janela de recuperação",[64,68,69],{},"Quanto o Supabase cobra",[71,72,73,82,90],"tbody",{},[61,74,75,79],{},[76,77,78],"td",{},"7 dias",[76,80,81],{},"$0.137 por hora, cerca de $100 por mês",[61,83,84,87],{},[76,85,86],{},"14 dias",[76,88,89],{},"$0.274 por hora",[61,91,92,95],{},[76,93,94],{},"28 dias",[76,96,97],{},"$0.55 por hora",[10,99,100],{},"Existe uma segunda linha na fatura, e é ela que pega as pessoas de surpresa. O\npoint-in-time recovery exige pelo menos a instância de computação Small. Um\nprojeto Pro roda por padrão na Micro, que os $10 de crédito de computação\nincluídos no plano cobrem por inteiro; a Small fica na casa dos $15 por mês,\nentão o crédito deixa de cobrir sua computação e o restante começa a aparecer na\nsua fatura. O adicional sai, portanto, um pouco mais caro que o número impresso\nao lado dele.",[10,102,103,104,108],{},"Está disponível no Pro, no Team e no Enterprise. No plano gratuito não existe\nnada a que acrescentá-lo, porque\n",[37,105,107],{"href":106},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","o plano gratuito não tira nenhum backup automático",".",[10,110,111],{},"Confira os dois números na própria página de preços do Supabase no dia em que\nfor decidir, e não nesta. Eles são do Supabase e podem mudar, e esta página não\nvai perceber quando isso acontecer.",[20,113,115],{"id":114},"quando-o-point-in-time-recovery-vale-o-preço","Quando o point-in-time recovery vale o preço?",[10,117,118],{},"Quando você consegue apontar o minuto, e quando o trabalho dos dois lados dele\nimporta.",[10,120,121,122,126],{},"Uma migração rodou às 14:32 e levou uma coluna junto. Um script que você iniciou\nno almoço escreveu o valor errado em cada linha. Um\n",[37,123,125],{"href":124},"\u002Fblog\u002Fai-agent-deleted-my-database","agente de IA recebeu acesso de escrita e usou",".\nNos três casos você sabe quando, e esse quando é a entrada inteira. Você escolhe\n14:31, e o banco volta como estava um minuto antes do estrago.",[10,128,129],{},"O que custa dinheiro é o resto daquela manhã. Restaurar a cópia da meia-noite\ntambém apaga cada cadastro, cada pedido e cada mensagem que seus usuários\ncriaram desde a meia-noite, então desfazer um erro significa aceitar uma segunda\nperda, menor. Com point-in-time recovery o trabalho da manhã fica.",[131,132],"diagram",{"alt":133,"caption":134,"src":135},"Duas linhas do tempo carregando a mesma falha, marcada com uma cruz. Na de cima, uma fileira contínua de marcas pequenas deixa um marcador parar logo antes da falha, e a chave entre os dois é curta. Na de baixo, o marcador para no último de cinco documentos bem espaçados, e a chave até a falha é várias vezes mais longa.","O mesmo acidente em duas linhas do tempo. A chave é o que você redigita.","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fto-the-second-or-to-the-night-1600x560.png",[10,137,138,139,108],{},"Já que você está no painel pensando no que pode dar errado, também vale saber o\nque seu app já mostra a um estranho. Nosso scan gratuito lê seu site no ar de\nfora e conta o que consegue ver. Leva uns 20 segundos e não pede conta nenhuma:\n",[37,140,142],{"href":141},"\u002Fsecurity-scanner","escaneie seu app",[20,144,146],{"id":145},"o-que-o-point-in-time-recovery-não-alcança","O que o point-in-time recovery não alcança",[10,148,149],{},"Duas coisas: um erro que você percebe depois que a janela passou, e a conta onde\ntodo o arranjo mora.",[10,151,152,156],{},[153,154,155],"strong",{},"Um erro percebido tarde."," A janela anda junto com o dia de hoje, então uma\njanela de sete dias é sempre os últimos sete dias e nunca uma semana fixa. Para\numa exclusão isso é generoso, porque uma exclusão costuma se anunciar em\nminutos. Com as silenciosas não ajuda em nada: um formulário que vem salvando o\nvalor errado desde a terça retrasada, uma coluna que sumiu numa migração que\nninguém leu com calma, um campo que um script vem sobrescrevendo há um mês.\nEssas aparecem quando um cliente escreve, e um cliente que escreve raramente faz\nisso dentro de sete dias da causa.",[10,158,159,162,163,108],{},[153,160,161],{},"A conta onde a recuperação mora."," Os retratos e o registro arquivado ficam\ndentro do seu projeto Supabase, e é exatamente isso que os deixa rápidos e os\nreduz a um clique. Também significa que um projeto suspenso, um cartão vencido\nou um acesso que você não recupera levam a recuperação junto com aquilo que ela\nprotegia. É uma troca justa e não um defeito, e é a razão de\n",[37,164,165],{"href":106},"uma cópia dentro da sua conta ser só metade da rede",[20,167,169],{"id":168},"o-point-in-time-recovery-cobre-meus-arquivos-do-storage","O point-in-time recovery cobre meus arquivos do Storage?",[10,171,172],{},"Não. As palavras do Supabase são que os backups do banco não incluem os objetos\nque você guarda pela Storage API, e o point-in-time recovery é um recurso do\nbanco.",[10,174,175],{},"Cada avatar, cada PDF enviado e cada foto de produto que seus usuários\nacrescentaram vive no Storage, que é um serviço separado. Seu banco guarda o\ncaminho de cada arquivo e nada do conteúdo deles. Então um banco rebobinado para\nterça aponta para o que estiver hoje nos seus buckets, e um arquivo apagado na\nquarta continua apagado depois de uma recuperação que funcionou perfeitamente.",[10,177,178,179,183],{},"Seja qual for sua decisão nesta página, seus arquivos pedem uma resposta\nprópria.\n",[37,180,182],{"href":181},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Três formas de fazer backup de um banco Supabase","\nconta onde cada caminho os deixa.",[20,185,187],{"id":186},"uma-ferramenta-de-terceiros-pode-me-dar-point-in-time-recovery","Uma ferramenta de terceiros pode me dar point-in-time recovery?",[10,189,190],{},"Não, e essa é a afirmação do assunto que mais merece ser olhada com calma,\nporque soa como comparação de recursos e é uma diferença de categoria.",[10,192,193],{},"O point-in-time recovery reproduz o write-ahead log, e esse registro é um\narquivo no disco onde seu banco roda. Lê-lo significa estar em pé naquela\nmáquina. Toda ferramenta de backup externa, a nossa incluída, se conecta ao seu\nbanco do mesmo jeito que seu app, pede o conteúdo dele e anota a resposta. O que\nsai é um dump lógico: uma cópia completa e transportável de tudo que estava no\nbanco no momento em que o dump rodou.",[131,195],{"alt":196,"caption":197,"src":198},"Uma fronteira tracejada em volta de um banco de dados. Dentro dela, uma fileira contínua de marcas pequenas alimenta um arquivo salvo. Uma linha tracejada que tenta levar essa fileira para fora aparece cortada. Uma segunda linha sai do banco, cruza a fronteira e chega como arquivo salvo, relido por uma lupa e marcado com um visto.","Uma ferramenta fora da fronteira pode pedir ao banco o conteúdo dele. O registro vivo que ficou atrás da fronteira não é algo que se possa entregar a ela.","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fthe-log-stays-inside-1600x600.png",[10,200,201],{},"Um dump é de novo a fotografia. Você pode levá-lo para qualquer lugar, carregá-lo\nnum projeto recém-criado de outra conta e lê-lo com ferramentas comuns do\nPostgres que nunca ouviram falar do Supabase. O que você não consegue fazer é\nparar entre dois dumps, porque no meio não havia nada gravando.",[10,203,204],{},"Então a versão honesta da comparação. Se o que você precisa é cair nas 14:31,\ncompre o adicional do Supabase; ninguém fora da plataforma tem como vender isso\npara você. Um fornecedor que anuncia point-in-time recovery por cima de uma\nconexão está descrevendo um agendamento, e uma pergunta separa os dois: a\nrestauração dele cai num minuto que você digita, ou na última vez que a cópia\ndele rodou?",[20,206,208],{"id":207},"point-in-time-recovery-ou-uma-cópia-que-você-guarda","Point-in-time recovery, ou uma cópia que você guarda?",[10,210,211],{},"Pergunte contra qual desastre você está se segurando, porque esses dois\nrespondem a desastres diferentes.",[55,213,214,226],{},[58,215,216],{},[61,217,218,220,223],{},[64,219],{},[64,221,222],{},"Point-in-time recovery",[64,224,225],{},"Uma cópia que você guarda",[71,227,228,239,250,259,269,280],{},[61,229,230,233,236],{},[76,231,232],{},"Devolve você a um minuto apontado",[76,234,235],{},"Sim",[76,237,238],{},"Ao momento em que uma cópia rodou",[61,240,241,244,247],{},[76,242,243],{},"Alcança além da janela",[76,245,246],{},"Não",[76,248,249],{},"Até onde você guardar cópias",[61,251,252,255,257],{},[76,253,254],{},"Sobrevive a perder a conta",[76,256,246],{},[76,258,235],{},[61,260,261,264,266],{},[76,262,263],{},"Inclui arquivos do Storage",[76,265,246],{},[76,267,268],{},"Só se pediram que ela os levasse",[61,270,271,274,277],{},[76,272,273],{},"Onde mora",[76,275,276],{},"Dentro do seu projeto",[76,278,279],{},"Onde você colocar",[61,281,282,285,288],{},[76,283,284],{},"Quanto custa",[76,286,287],{},"A partir de $100 por mês, mais a computação",[76,289,290],{},"De graça na mão, ou uma assinatura",[10,292,293],{},"A maioria dos apps com clientes de verdade quer os dois, e é sobre a ordem que\nconvém decidir com atenção. A cópia que você guarda é a que sobrevive a tudo,\ninclusive à conta, então é a primeira a montar. O adicional a gente compra\ndepois de calcular que perder uma manhã de pedidos custa mais que ele.",[20,295,297],{"id":296},"o-que-fazer-esta-semana","O que fazer esta semana",[299,300,301],"key-takeaways",{},[302,303,304,308,311,314,317],"ul",{},[305,306,307],"li",{},"Descubra se o adicional já está ligado, em Database e depois Backups no seu painel do Supabase. Dá para estar pagando por ele sem saber.",[305,309,310],{},"Anote quanto tempo um erro silencioso poderia ficar sem ser notado no seu app. Se esse número passar de sete dias, uma janela mais larga compra menos do que parece.",[305,312,313],{},"Monte uma cópia do seu banco que more fora da sua conta do Supabase, pelo caminho que preferir. O point-in-time recovery não faz esse trabalho e nem tenta.",[305,315,316],{},"Faça backup dos arquivos do Storage à parte, porque nenhuma recuperação de banco, em nenhum plano, inclui eles.",[305,318,319],{},"Restaure alguma coisa uma vez num projeto descartável, para a primeira leitura de uma dessas cópias não cair no meio de um incidente.",[20,321,323],{"id":322},"onde-entra-o-reeve-care","Onde entra o Reeve Care",[10,325,326],{},"O Care é a cópia que você guarda, montada para você, com uma restauração que\nvocê aperta em vez de montar.",[131,328],{"alt":329,"caption":330,"src":331},"Um painel do Reeve Care com duas fileiras. Na primeira, um banco de dados e uma imagem saem de um contorno de conta tracejado como um arquivo salvo que é trancado, relido por uma lupa e marcado com um visto. Na segunda, primeiro sai da conta uma cópia do estado atual, numerada como um, e depois a cópia escolhida volta para dentro a partir de um cartão com um botão, numerada como dois.","As cópias ficam fora da conta de onde vieram. Devolver uma começa por tirar outra.","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcare-copy-out-and-button-back-1600x560.png",[302,333,334,340,346,352,358],{},[305,335,336,339],{},[153,337,338],{},"As cópias rodam num agendamento que você não precisa lembrar",", a cada seis horas nos planos mais altos, e uma que falha manda um e-mail em vez de um silêncio.",[305,341,342,345],{},[153,343,344],{},"Cada cópia mora fora da sua conta do Supabase."," Criptografada, num armazenamento nosso, para que um projeto suspenso ou um acesso perdido não leve seus backups junto.",[305,347,348,351],{},[153,349,350],{},"Cada cópia é relida antes de contar."," A data no seu painel é a última cópia que passou nessa conferência, nunca a última tentativa.",[305,353,354,357],{},[153,355,356],{},"Restaurar é um botão",", e antes de começar ele tira um retrato do estado atual, então a própria restauração tem o desfazer dela.",[305,359,360,363],{},[153,361,362],{},"Os arquivos que seus usuários enviaram também são copiados",", assim que você conecta seus buckets do Storage. Essa é uma segunda chave, pedida à parte, porque a chave que o Supabase emite para o Storage sabe escrever além de ler e preferimos perguntar a misturá-la com uma que não sabe.",[10,365,366,367,371],{},"O Care e o adicional se completam, e é assim que estão precificados também. O\nCare começa em $49 por mês para um app, contra $100 do adicional, e muitos apps\ndeveriam ter o primeiro antes de pensar no segundo. Os nossos são preços de\ntabela, e a ",[37,368,370],{"href":369},"\u002Fpricing","página de preços"," às vezes fica abaixo do número daqui e\nnunca acima. Cada número do Supabase nesta página está citado das páginas deles,\nsem conversão e sem estimativa.",[10,373,374,375,108],{},"Como uma cópia é tirada, conferida e devolvida está desenhado passo a passo na\n",[37,376,378],{"href":377},"\u002Fsupabase-backups","página de backups do Supabase",[10,380,381,382,386],{},"Antes de fechar esta aba, calcule o número de que toda essa decisão depende:\nquanto tempo um erro poderia ficar no seu app antes de alguém notar. Abaixo de\nsete dias, o adicional compra precisão de verdade no dia em que você precisar.\nAcima disso, uma janela mais larga não é o lugar do dinheiro, porque o que\nalcança mais para trás é uma cópia sua. A\n",[37,383,385],{"href":384},"\u002Fchecklist","lista de segurança de 10 minutos"," cobre backups junto com o resto\ndo que vale confirmar num app já no ar.",{"title":388,"searchDepth":389,"depth":389,"links":390},"",3,[391,393,394,395,396,397,398,399,400],{"id":22,"depth":392,"text":23},2,{"id":46,"depth":392,"text":47},{"id":114,"depth":392,"text":115},{"id":145,"depth":392,"text":146},{"id":168,"depth":392,"text":169},{"id":186,"depth":392,"text":187},{"id":207,"depth":392,"text":208},{"id":296,"depth":392,"text":297},{"id":322,"depth":392,"text":323},"Backups","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcover-1200x630.png","Um banco de dados ao lado de uma linha do tempo, com um marcador parado sobre um ponto dentro do trecho que fica gravado.","O point-in-time recovery do Supabase rebobina seu banco para qualquer segundo da última semana. Custa $100 por mês além do Pro e cobre só o banco.",false,"md",[408,410,413,416,419],{"q":47,"a":409},"O Supabase cobra $100 por mês por uma janela de recuperação de sete dias, além do seu plano Pro. Há um segundo custo que o número de destaque deixa de fora: o adicional exige pelo menos a instância de computação Small, que fica na casa dos $15 por mês, e um projeto Pro roda por padrão na instância Micro, menor. Leia os dois números na página de preços deles no dia em que for decidir, porque são deles e podem mudar.",{"q":411,"a":412},"O point-in-time recovery está incluído no plano Pro do Supabase?","Não. O Pro inclui backups diários que alcançam sete dias para trás, e o point-in-time recovery é um adicional pago em cima disso. O Supabase oferece nos planos Pro, Team e Enterprise. O plano gratuito não tem nenhum backup automático, então lá não existe nada a que acrescentá-lo.",{"q":414,"a":415},"Uma ferramenta de backup de terceiros pode me dar point-in-time recovery?","Não, e uma ferramenta que dá a entender o contrário está descrevendo outra coisa. O point-in-time recovery reproduz o write-ahead log, um arquivo no disco onde seu banco roda, ou seja, só a plataforma que opera esse disco consegue lê-lo. Toda ferramenta externa se conecta do mesmo jeito que seu app e pede ao banco o conteúdo dele, o que produz uma cópia transportável de um instante. Essa cópia é realmente útil, e é um objeto diferente.",{"q":417,"a":418},"O point-in-time recovery faz backup dos meus arquivos do Supabase Storage?","Não. O Supabase escreve sem rodeios que os backups do banco não incluem os objetos que você guarda pela Storage API, e o point-in-time recovery é um recurso do banco. Cada avatar, PDF e imagem que seus usuários enviaram vive num serviço separado, e rebobinar o banco para terça deixa esses arquivos exatamente como estão hoje. Guardá-los é um trabalho próprio, seja qual for o caminho que você escolher.",{"q":420,"a":421},"Até onde o point-in-time recovery do Supabase alcança para trás?","Até onde chegar a janela que você paga, e nem um dia além. O Supabase vende a retenção em três tamanhos: sete dias, catorze dias e vinte e oito dias, a $0.137, $0.274 e $0.55 por hora respectivamente. A janela anda junto com o dia de hoje, então cada hora que passa empurra a hora mais antiga para fora na outra ponta. Um erro de cinco semanas atrás está fora das três.","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcard-800x500.png",[424,425,426,427,428,429,430],"point in time recovery supabase","supabase pitr","preco pitr supabase","recuperacao para um ponto no tempo supabase","supabase pitr ou backups diarios","supabase arquivamento wal","preciso de pitr supabase",{},true,"Quanto custa o point-in-time recovery do Supabase","\u002Fblog\u002Fsupabase-point-in-time-recovery","2026-09-13",{"title":5,"description":404},"blog\u002Fsupabase-point-in-time-recovery",[439,440,441,442],"O point-in-time recovery do Supabase devolve seu banco de dados a um momento que você escolhe, em vez de à cópia desta madrugada. É um adicional do plano Pro para cima.","Custa $100 por mês para uma janela de sete dias, e ligar isso também move seu projeto para uma instância de computação maior, cobrada à parte.","Nenhuma ferramenta de backup de fora consegue oferecer a mesma coisa. O point-in-time recovery se apoia no registro de escrita do banco, que só a plataforma dona do disco consegue ler.","Ele cobre seu banco de dados. Seus arquivos do Storage ficam fora disso, e um erro que você percebe depois que a janela passou também fica.","mYTMEQW9X0SHa6yz9OLszAdSGYQwICiNMloSQ7iRU9U",[445,452,458,464,470,476,482,488,494,500,506,512,518,524,530,536,541,547,553,559,565,571,577,583,589,595,601,607,613,614,620,626,632,638,644,650,656,662,668,674,680,686,692,698,704,710,716,722,728,734,740,746,751,757,762,768,773,779,784,789],{"path":446,"title":447,"description":448,"published":449,"category":450,"image":451,"draft":405},"\u002Fblog\u002Fbase44-security-scan","Scan de segurança do Base44: o que só ele enxerga","O scan de segurança do Base44 verifica sete tipos de problema por dentro. Esta é a metade que ele lê e mais ninguém, e a metade que ele nunca olha.","2026-10-10","Noções de segurança","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",{"path":453,"title":454,"description":455,"published":456,"category":450,"image":457,"draft":405},"\u002Fblog\u002Fapi-key-leaked-what-to-do","Sua chave de API vazou. A ordem em que agir","Uma chave de API vazou e você não sabe o que fazer primeiro. Nem toda chave no seu frontend é um vazamento, e a ordem importa mais que a pressa.","2026-10-09","\u002Fblog\u002Fapi-key-leaked-what-to-do\u002Fcard-800x500.png",{"path":459,"title":460,"description":461,"published":462,"category":450,"image":463,"draft":405},"\u002Fblog\u002Finfinite-recursion-in-policy-for-relation","\"Infinite recursion detected in policy\" sem desligar o RLS","\"Infinite recursion detected in policy for relation\" significa que a sua policy perguntou à tabela que ela protege. Veja como quebrar o círculo.","2026-10-08","\u002Fblog\u002Finfinite-recursion-in-policy-for-relation\u002Fcard-800x500.png",{"path":465,"title":466,"description":467,"published":468,"category":450,"image":469,"draft":405},"\u002Fblog\u002Fno-api-key-found-in-request","\"No API key found in request\" no Supabase, e a correção errada","\"No API key found in request\" significa que sua requisição chegou ao Supabase sem chave. Quase toda resposta aponta para as regras do seu banco.","2026-10-07","\u002Fblog\u002Fno-api-key-found-in-request\u002Fcard-800x500.png",{"path":471,"title":472,"description":473,"published":474,"category":450,"image":475,"draft":405},"\u002Fblog\u002Fis-base44-safe","O Base44 é seguro? O que vimos em 5.442 apps Base44","O Base44 é seguro? Rodamos nove verificações em 5.442 apps Base44 no ar. Quase todas tiraram B por motivos que o dono nunca escolheu.","2026-10-06","\u002Fblog\u002Fis-base44-safe\u002Fcard-800x500.png",{"path":477,"title":478,"description":479,"published":480,"category":450,"image":481,"draft":405},"\u002Fblog\u002Fmove-a-secret-to-an-edge-function","Esconder uma chave de API: mova para uma Edge Function do Supabase","Esconder uma chave de API é tirá-la do navegador, e uma Edge Function do Supabase é o menor lugar para guardá-la. Dois passos em volta pesam mais.","2026-10-05","\u002Fblog\u002Fmove-a-secret-to-an-edge-function\u002Fcard-800x500.png",{"path":483,"title":484,"description":485,"published":486,"category":450,"image":487,"draft":405},"\u002Fblog\u002Fenv-file-exposed-on-your-server","Seu arquivo .env está exposto? Os doze caminhos para testar","Seu arquivo .env está exposto no seu próprio servidor web? Doze endereços dizem isso em um minuto, e um acerto significa que tudo nele já é público.","2026-10-04","\u002Fblog\u002Fenv-file-exposed-on-your-server\u002Fcard-800x500.png",{"path":489,"title":490,"description":491,"published":492,"category":450,"image":493,"draft":405},"\u002Fblog\u002Fis-v0-safe","Segurança do v0: os 1.790 aplicativos v0 escaneados tiraram A","A segurança do v0 medida em 1.790 aplicativos v0 no ar: todos tiraram A. Só 17 citavam um banco de dados, e é sobretudo isso que esse A mede.","2026-10-03","\u002Fblog\u002Fis-v0-safe\u002Fcard-800x500.png",{"path":495,"title":496,"description":497,"published":498,"category":450,"image":499,"draft":405},"\u002Fblog\u002Fis-bolt-safe","O Bolt é seguro? O que vimos em 1.123 aplicativos Bolt","O Bolt é seguro? Passamos 1.123 aplicativos Bolt no ar por nove verificações. A hospedagem saiu limpa. Os achados: chaves e tabelas abertas nos aplicativos.","2026-10-02","\u002Fblog\u002Fis-bolt-safe\u002Fcard-800x500.png",{"path":501,"title":502,"description":503,"published":504,"category":450,"image":505,"draft":405},"\u002Fblog\u002Fis-supabase-down-or-your-app","O Supabase caiu ou o problema é o seu app? Como saber","O Supabase caiu ou o problema é o seu app? Um projeto pausado, um banco cheio e um erro seu parecem iguais. Quatro verificações separam os casos.","2026-10-01","\u002Fblog\u002Fis-supabase-down-or-your-app\u002Fcard-800x500.png",{"path":507,"title":508,"description":509,"published":510,"category":450,"image":511,"draft":405},"\u002Fblog\u002Fdoes-supabase-encrypt-my-data","O Supabase criptografa meus dados? Sim. Veja o que isso impede","O Supabase criptografa os dados? Sim: AES-256 em repouso, TLS em trânsito, SOC 2 e ISO 27001. O que cada um cobre, e o vazamento que nenhum deles impede.","2026-09-30","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fcard-800x500.png",{"path":513,"title":514,"description":515,"published":516,"category":450,"image":517,"draft":405},"\u002Fblog\u002Fsupabase-free-plan-limits","Quanto custa o Supabase? Os limites do plano gratuito","Quanto custa o Supabase: o plano gratuito tem 500 MB de banco, 5 GB de egress e nenhum backup. O que acontece em cada limite e o que o Pro de $25 muda.","2026-09-29","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",{"path":519,"title":520,"description":521,"published":522,"category":401,"image":523,"draft":405},"\u002Fblog\u002Ftest-your-supabase-backup","Teste o backup do seu Supabase antes do dia em que precisar","Como testar o backup do seu Supabase: restaurar num projeto de teste, contar as linhas, entrar e procurar a linha que falta num arquivo cortado.","2026-09-28","\u002Fblog\u002Ftest-your-supabase-backup\u002Fcard-800x500.png",{"path":525,"title":526,"description":527,"published":528,"category":401,"image":529,"draft":405},"\u002Fblog\u002Fsupabase-backup-github-action","Backup grátis do Supabase com uma GitHub Action, e a pegadinha","Um backup do Supabase com GitHub Action é grátis e serve para muitos apps. O workflow, a connection string certa e o egress de cada execução.","2026-09-27","\u002Fblog\u002Fsupabase-backup-github-action\u002Fcard-800x500.png",{"path":531,"title":532,"description":533,"published":534,"category":401,"image":535,"draft":405},"\u002Fblog\u002Fdownload-your-supabase-backup","Por que você não consegue baixar seu backup do Supabase","Você não consegue baixar seu backup do Supabase num projeto atual, porque a cópia diária é um snapshot físico. Como conferir e como ter uma cópia só sua.","2026-09-26","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fcard-800x500.png",{"path":537,"title":538,"description":539,"published":534,"category":450,"image":540,"draft":405},"\u002Fblog\u002Fsupabase-permission-denied-for-table","Supabase \"permission denied for table\": o grant que falta","A partir de 30 de outubro, uma tabela nova no Supabase responde \"permission denied for table\" até receber um grant. O e-mail mostra só metade.","\u002Fblog\u002Fsupabase-permission-denied-for-table\u002Fcard-800x500.png",{"path":542,"title":543,"description":544,"published":545,"category":450,"image":546,"draft":405},"\u002Fblog\u002Fopen-api-endpoint-exposed","Um endpoint de API aberto é um problema? Leia o JSON","Seu scan apontou um endpoint de API aberto. Se isso importa depende do que voltou, e a maioria dos que encontramos era da própria plataforma.","2026-09-25","\u002Fblog\u002Fopen-api-endpoint-exposed\u002Fcard-800x500.png",{"path":548,"title":549,"description":550,"published":551,"category":450,"image":552,"draft":405},"\u002Fblog\u002Flovable-security-scan","Escaneamento de segurança do Lovable: o que ele não prova","Escaneamento de segurança do Lovable: o que o Quick scan e o Deep scan checam, quando cada um roda, e a única coisa que nenhum escaneamento por dentro prova.","2026-09-24","\u002Fblog\u002Flovable-security-scan\u002Fcard-800x500.png",{"path":554,"title":555,"description":556,"published":557,"category":401,"image":558,"draft":405},"\u002Fblog\u002Fsupabase-backup-auth-users","Por que seu dump do Supabase não tem usuários dentro","Rode supabase db dump sozinho e você recebe a forma do seu banco e nenhuma das linhas dele, sem o schema auth onde seus usuários moram.","2026-09-23","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":560,"title":561,"description":562,"published":563,"category":450,"image":564,"draft":405},"\u002Fblog\u002Fdomain-and-certificate-expiry","Domínio expirado, site fora do ar: o que acontece agora","Seu domínio expirou e seu site está fora do ar. O relógio que começa a correr, por que o certificado é o problema menor, e como conferir os dois.","2026-09-22","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":566,"title":567,"description":568,"published":569,"category":450,"image":570,"draft":405},"\u002Fblog\u002Fis-lovable-safe","O Lovable é seguro? O que vimos em 18.554 aplicativos Lovable","O Lovable é seguro? Passamos 18.554 aplicativos Lovable no ar por nove verificações. A plataforma foi a mais limpa de cinco. Os achados estavam nos aplicativos.","2026-09-21","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":572,"title":573,"description":574,"published":575,"category":450,"image":576,"draft":405},"\u002Fblog\u002Fvibe-coded-app-security-checklist","O checklist de segurança do vibe coding, em nove verificações","Um checklist de segurança do vibe coding com nove itens, cada um verificável no seu app de fora por qualquer pessoa, e cada um com um teste de uma linha.","2026-09-20","\u002Fblog\u002Fvibe-coded-app-security-checklist\u002Fcard-800x500.png",{"path":578,"title":579,"description":580,"published":581,"category":450,"image":582,"draft":405},"\u002Fblog\u002Fstripe-secret-key-in-frontend","Uma chave secreta da Stripe no frontend pode mover dinheiro","Uma chave secreta da Stripe exposta no seu frontend pode reembolsar, cobrar e ler cada ficha de cliente que você tem. Sua chave pk_live_ é que deve estar aí.","2026-09-19","\u002Fblog\u002Fstripe-secret-key-in-frontend\u002Fcard-800x500.png",{"path":584,"title":585,"description":586,"published":587,"category":450,"image":588,"draft":405},"\u002Fblog\u002Fvite-and-next-public-env-vars","Variáveis de ambiente do Vite expostas: o prefixo diz publique isto","Variáveis de ambiente do Vite expostas no seu app: fizeram o que o prefixo pediu. VITE_ e NEXT_PUBLIC_ significam publique isto, e a IA nunca soube o custo.","2026-09-18","\u002Fblog\u002Fvite-and-next-public-env-vars\u002Fcard-800x500.png",{"path":590,"title":591,"description":592,"published":593,"category":450,"image":594,"draft":405},"\u002Fblog\u002Fbase44-source-maps","Segurança no Base44: o que um scan aponta e o que é seu para corrigir","Segurança no Base44 em 5.438 apps escaneados: três achados em quase todos são da plataforma, o source map é o selo do Base44, e a sua parte é uma lista curta.","2026-09-17","\u002Fblog\u002Fbase44-source-maps\u002Fcard-800x500.png",{"path":596,"title":597,"description":598,"published":599,"category":450,"image":600,"draft":405},"\u002Fblog\u002Fis-cursor-ai-safe","O Cursor AI é seguro? O editor, o código e o app que você publicou","O Cursor AI é seguro? Três perguntas em uma busca: o que o Cursor guarda, o que o código que ele escreve erra, e se o app que você publicou está aberto.","2026-09-16","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",{"path":602,"title":603,"description":604,"published":605,"category":450,"image":606,"draft":405},"\u002Fblog\u002Fis-replit-safe","O Replit é seguro? O que vimos em 3.042 aplicativos Replit no ar","O Replit é seguro? Passamos 3.042 aplicativos Replit no ar por nove verificações externas. Os achados estavam no aplicativo publicado, não no host.","2026-09-15","\u002Fblog\u002Fis-replit-safe\u002Fcard-800x500.png",{"path":608,"title":609,"description":610,"published":611,"category":401,"image":612,"draft":405},"\u002Fblog\u002Fsupabase-storage-backup","Supabase storage backup: sua cópia do banco não tem nenhum arquivo","Um Supabase storage backup é uma tarefa à parte. Os backups do banco guardam a lista dos seus arquivos e nenhum deles, então cada upload fica quebrado.","2026-09-14","\u002Fblog\u002Fsupabase-storage-backup\u002Fcard-800x500.png",{"path":434,"title":5,"description":404,"published":435,"category":401,"image":422,"draft":405},{"path":615,"title":616,"description":617,"published":618,"category":401,"image":619,"draft":405},"\u002Fblog\u002Fsupabase-project-paused-recover","Projeto Supabase pausado? Seus dados continuam lá","O Supabase pausou seu projeto depois de uma semana sem atividade. Nada foi apagado, Restaurar fica ao lado do nome e você tem um ano antes disso mudar.","2026-09-12","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",{"path":621,"title":622,"description":623,"published":624,"category":450,"image":625,"draft":405},"\u002Fblog\u002Fsafest-ai-app-builder","Qual builder de apps com IA é mais seguro? 30.998 apps testados","Qual builder de apps com IA é mais seguro? Escaneamos 30.998 apps no ar do Lovable, Base44, Replit, v0 e Bolt. O builder não é o que decide sua nota.","2026-09-11","\u002Fblog\u002Fsafest-ai-app-builder\u002Fcard-800x500.png",{"path":627,"title":628,"description":629,"published":630,"category":450,"image":631,"draft":405},"\u002Fblog\u002Fenable-rls-on-every-supabase-table","Ative Row Level Security em toda tabela do Supabase e comprove","Ativar Row Level Security no Supabase sem política fecha a tabela por completo. Uma política sem a chave ligada não faz nada. Aqui está o SQL, e o teste.","2026-09-10","\u002Fblog\u002Fenable-rls-on-every-supabase-table\u002Fcard-800x500.png",{"path":633,"title":634,"description":635,"published":636,"category":450,"image":637,"draft":405},"\u002Fblog\u002Fsupabase-rls-disabled-in-public","Supabase \"RLS disabled in public\": o que o aviso não vê","O Supabase marca \"RLS disabled in public\" como erro. Ele não diz nada sobre a política de leitura que deixa a sua tabela igualmente aberta.","2026-09-09","\u002Fblog\u002Fsupabase-rls-disabled-in-public\u002Fcard-800x500.png",{"path":639,"title":640,"description":641,"published":642,"category":450,"image":643,"draft":405},"\u002Fblog\u002Frotate-supabase-service-role-key","Como rotacionar uma chave service_role do Supabase vazada","O Supabase manda fechar o vazamento primeiro. Outros guias mandam rotacionar agora. O que vale depende de para onde a sua chave service_role vazou.","2026-09-08","\u002Fblog\u002Frotate-supabase-service-role-key\u002Fcard-800x500.png",{"path":645,"title":646,"description":647,"published":648,"category":450,"image":649,"draft":405},"\u002Fblog\u002Fvibe-coding-security-scanners-compared","Scanners de segurança para vibe coding comparados, o nosso incluído","O melhor scanner de segurança para vibe coding depende de três perguntas que nenhuma lista de recursos responde. Dez ferramentas comparadas, com preços.","2026-09-07","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",{"path":651,"title":652,"description":653,"published":654,"category":450,"image":655,"draft":405},"\u002Fblog\u002Fsupabase-security-checker","Supabase security checker: faça você mesmo as cinco verificações","Um Supabase security checker lê o seu app publicado em vez das configurações do projeto. Aqui estão as cinco verificações e como fazer cada uma sozinho.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":657,"title":658,"description":659,"published":660,"category":450,"image":661,"draft":405},"\u002Fblog\u002Fvibe-coding-security-scanner","Scanner de segurança para vibe coding: o que ele não vê","Um scanner de segurança para vibe coding lê seu app no ar, de fora. O que isso cobre, as quatro coisas que ele não consegue ver e como ler o resultado.","2026-09-05","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":663,"title":664,"description":665,"published":666,"category":450,"image":667,"draft":405},"\u002Fblog\u002Fmissing-security-headers","Cabeçalhos de segurança faltando: quando isso importa","Cabeçalhos de segurança faltando é o achado que nosso scanner mais imprime. Contra o que eles protegem e quando são a linha menos urgente do relatório.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":669,"title":670,"description":671,"published":672,"category":450,"image":673,"draft":405},"\u002Fblog\u002Fopenai-api-key-exposed-in-frontend","Sua chave de API da OpenAI está exposta no frontend. Troque-a.","Uma chave de API da OpenAI exposta no frontend não pode ser presa a um domínio. Troque-a hoje, mova a chamada para o seu servidor e limite o gasto.","2026-09-03","\u002Fblog\u002Fopenai-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":675,"title":676,"description":677,"published":678,"category":450,"image":679,"draft":405},"\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps","Chave de API exposta no frontend: o que 30.998 apps entregam","Uma chave de API exposta no seu frontend costuma ser uma chave do Google Maps. Escaneamos 30.998 apps vibe-coded e contamos quais segredos vazam de verdade.","2026-09-02","\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps\u002Fcard-800x500.png",{"path":681,"title":682,"description":683,"published":684,"category":401,"image":685,"draft":405},"\u002Fblog\u002Fsupabase-backup-tools-compared","Ferramentas de backup do Supabase comparadas, a nossa incluída","Quatro tipos de ferramenta de backup do Supabase, o que cada uma copia de verdade e quando uma GitHub Action gratuita ganha de pagar, nós inclusive.","2026-09-01","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",{"path":687,"title":688,"description":689,"published":690,"category":450,"image":691,"draft":405},"\u002Fblog\u002Freplit-secrets-explained","Como usar secrets no Replit, e o que ainda assim é publicado","Como usar secrets no Replit: adicionar um, ler de volta e resolver as duas causas do undefined. E as chaves que a ferramenta Secrets não consegue proteger.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":693,"title":694,"description":695,"published":696,"category":401,"image":697,"draft":405},"\u002Fblog\u002Fback-up-supabase-free-tier","Backups do plano gratuito do Supabase: como fazer sem terminal","No plano gratuito do Supabase não existe backup nenhum: a cópia é você que faz. Como fazer uma pelo painel e o que a rota do CSV deixa para trás.","2026-08-30","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",{"path":699,"title":700,"description":701,"published":702,"category":450,"image":703,"draft":405},"\u002Fblog\u002Fis-supabase-secure","O Supabase é seguro? É. Seu projeto é outra pergunta","O Supabase é seguro? A plataforma é auditada, criptografada e passa por pentests. A documentação deles diz onde isso termina e começam suas configurações.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":705,"title":706,"description":707,"published":708,"category":450,"image":709,"draft":405},"\u002Fblog\u002Fwhere-to-find-supabase-api-keys","Onde ficam as chaves de API do Supabase: anon, service_role e URL","A URL do projeto, a chave anon e a chave service_role ficam todas numa página do painel. Aqui está onde ela fica, e qual dos quatro valores vai no seu app.","2026-08-28","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fcard-800x500.png",{"path":711,"title":712,"description":713,"published":714,"category":450,"image":715,"draft":405},"\u002Fblog\u002Fnew-row-violates-row-level-security-policy","New row violates row-level security policy no Supabase. E agora?","\"New row violates row-level security policy\" significa que o Supabase recusou uma escrita. O conserto rápido reabre a tabela para qualquer um.","2026-08-27","\u002Fblog\u002Fnew-row-violates-row-level-security-policy\u002Fcard-800x500.png",{"path":717,"title":718,"description":719,"published":720,"category":450,"image":721,"draft":405},"\u002Fblog\u002Fcors-wildcard-security-risk","Um curinga CORS é um risco de segurança? Quase nunca.","Um curinga CORS é um risco de segurança? Em geral é o padrão do seu builder e não entrega nada que o seu servidor já não desse a qualquer um que pedisse.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":723,"title":724,"description":725,"published":726,"category":401,"image":727,"draft":405},"\u002Fblog\u002Fsupabase-branching-is-not-a-backup","Branching do Supabase não é backup. Ele só anda para a frente.","Por que o branching do Supabase não é backup: um branch começa sem os seus dados e um merge só leva o esquema. Para que ele serve e o que usar no lugar.","2026-08-25","\u002Fblog\u002Fsupabase-branching-is-not-a-backup\u002Fcard-800x500.png",{"path":729,"title":730,"description":731,"published":732,"category":401,"image":733,"draft":405},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","Como restaurar um backup do Supabase, e o que quebra depois","Como restaurar um backup do Supabase pelo painel ou por um arquivo de dump, o que a restauração substitui e por que o seu app pode continuar quebrado no fim.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":735,"title":736,"description":737,"published":738,"category":450,"image":739,"draft":405},"\u002Fblog\u002Fsupabase-storage-bucket-public","Seu bucket do Supabase Storage é público. Isso é um problema?","Um bucket público do Supabase Storage significa que quem tem a URL de um arquivo pode abri-lo. Não significa que alguém possa listar o que está lá dentro.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":741,"title":742,"description":743,"published":744,"category":450,"image":745,"draft":405},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","Uma chave de API do Google no frontend é um problema?","Uma chave de API do Google exposta no seu frontend é a chave que nosso scanner mais encontra, e quase sempre está tudo bem. Um ajuste gratuito decide isso.","2026-08-22","\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":124,"title":747,"description":748,"published":749,"category":401,"image":750,"draft":405},"Um agente de IA apagou meus dados do Supabase. O que eu recupero?","Um agente de IA apagou dados do seu banco. O que você recupera já estava decidido antes de ele rodar, e os próximos minutos decidem o resto.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":752,"title":753,"description":754,"published":755,"category":450,"image":756,"draft":405},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","Qualquer um consegue ler seu banco Supabase? Testamos 3.680 apps","Qualquer um consegue ler seu banco de dados Supabase sem fazer login? Escaneamos 30.998 apps no ar criadas com builders de IA e medimos quantas dizem que sim.","2026-08-18","\u002Fblog\u002Fcan-anyone-read-your-supabase-database\u002Fcard-800x500.png",{"path":758,"title":759,"description":760,"published":755,"category":450,"image":761,"draft":405},"\u002Fblog\u002Fsource-maps-exposed-in-production","Source maps expostos: seu app está publicando o código original","Um source map exposto deixa qualquer um ler o código original do seu app, comentários incluídos. A verificação de 30 segundos e o que importa de verdade.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":763,"title":764,"description":765,"published":766,"category":450,"image":767,"draft":405},"\u002Fblog\u002Fsupabase-new-api-keys","As novas chaves de API do Supabase: qual vai no seu app?","O Supabase trocou anon e service_role por chaves publicáveis e secretas. Qual delas pertence ao seu app e qual nunca deve estar lá?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":106,"title":769,"description":770,"published":771,"category":401,"image":772,"draft":405},"O Supabase faz backup do meu banco de dados? Depende do plano.","O Supabase faz backup do seu banco de dados? Todo dia nos planos pagos, e nada no gratuito. Como descobrir o que você tem e o que essa cópia não cobre.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":774,"title":775,"description":776,"published":777,"category":450,"image":778,"draft":405},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","O Supabase Row Level Security está ligado. A tabela continua pública.","Ligar o Supabase Row Level Security não protege uma tabela. Quem protege são as políticas, e a que consertou o seu app pode deixar qualquer um entrar.","2026-08-10","\u002Fblog\u002Fsupabase-rls-on-but-table-still-public\u002Fcard-800x500.png",{"path":780,"title":781,"description":782,"published":777,"category":401,"image":783,"draft":405},"\u002Fblog\u002Fversion-history-is-not-a-backup","O histórico de versões não é backup. Ele não desfaz um delete.","Lovable e Bolt guardam um histórico de versões do seu código. Seu banco de dados é um serviço à parte, e voltar atrás não traz os seus dados de volta.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":181,"title":785,"description":786,"published":787,"category":401,"image":788,"draft":405},"Três formas de fazer backup de um banco Supabase, e o que falta","O painel, o pg_dump e um serviço gerenciado. O que cada um salva de verdade, o que deixa de fora sem avisar e qual sobrevive a perder a conta.","2026-08-09","\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database\u002Fcard-800x500.png",{"path":790,"title":791,"description":792,"published":787,"category":450,"image":793,"draft":405},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","Quais chaves de API são seguras no navegador e quais não são","Sua chave anon do Supabase foi feita para ser pública. Sua chave service_role não, e ela ignora todas as regras que você criar. Como diferenciar as duas.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1791618971826]