Acho que se esse for o maior ponto negativo ainda é muitissimo valido, uma vez que geralmente quem utiliza o supabase não vai criar um back-end com regras de negocios muito complexas (na minha cabeça eu não vejo sentido), e pra soluções mais simples (que atende o público que busca o supabase) as RLS servem bem.
Todo serviço hospedado, com distribuição global e que cobra por quantidade de processamento/requisições, tem só um objetivo no final, fazer o cartão de crédito do cliente sangrar. No começo sempre é muito bom, mas esteja preparado para desacoplar e seguir com uma ou + alternativas para não passar um aperto.
Eu gosto de ter a opção de usar essa granularidade que o supabase oferece no controle de permissões na mesma intensidade que eu gosto da opção de não precisar usá-la sempre. Ter a opção de ter controle é excelente e poder usar ele quando necessário é tão excelente quanto. Gostei da opinião do Diego e concordo em muitas coisas, principalmente do que ele falou do storage. Quanto às regras ficarem no banco de dados, vale lembrar que banco de dados tbm é backend.
Supabase + flutterflow é uma mina de ouro! Se soubesse o tanto que da pra fazer e ganhar com isso, teria dropado essa merda de hardcode há muito tempo na vida.
Eu crio minhas próprias tabelas de cerceamento e controlo pelo app. Só uso obdb pra armazenar por ex grupo d usuários, usuários e regra( tipo um crud) d cada grupo. Simples assim e funciona bem.
Olá, Cara, como que faço para inserir dados no supabase automáticamente. No caso estou com o supabase web, alguma forma eu salvo o arquivo csv e o mesmo inserir os dados na tabela automaticamente. Como eu poderia fazer? Brigadão.
@@yuri4dev você pode fazer uma imagem docker e configurar para rodar no seu pc ou vps. de uma pesquisada em "Supabase - Self-Hosting with Docker" no google
@@yuri4dev o supabase é um conjunto de soluções opensource. tem o postgrest que possibilita chamadas API no seu banco de dados postgres, tem o GoTrue pra autenticação, entre outros... aí você consegue instalar o supabase com o docker em uma vps, localmente ou utilizar o serviço pelo site deles (que aí não precisaria de uma vps, mas teria que pagar as taxas ou usar a versão gratuita com limites bem generosos). pra comparação, o firebase só permite 20-50 mil chamadas na API por dia pra vc acessar o banco de dados, o supabase deixa isso ilimitado
RLS é uma das melhores features do Postgres, se vc tem vários projetos consumindo dados, é simplesmente mágico e Clean manter no banco, totalmente agnóstico com linguagem ou Framework. Então o negativo aí no ponto de vista pra muitos, é super positivo pra outros. Abs
tens que conhecer essa tecnologia...faz tempo a as RLS existem e são uma mao na roda....apreenda e, veja a diferença qto a consumo de recursos computacionais da parte do client.
Diego me tira uma dúvida nada vê com tema pf, qual app que vc usa no terminal que dá auto sugestão? E qual app vc usa que aparece uma caixa de diálogo na tela e vc pergunta pra alguma i.a e tem a resposta na hora.
Acho que você viu pelo “ângulo “ errado. Concordo que roles é uma regra do negócio e provavelmente deve ser definido no backend. O supabase vai te dar um layer adicional. E honestamente, não é fácil de implementar, mas fazer sozinho é mais difícil (roles via banco).
4 місяці тому
Uma dúvida: O Supabase pode ser utilizado em qualquer tipo de aplicação (dentro da normalidade)? Quais são as suas limitações em comparação a desenvolver uma aplicação da forma tradicional hight code? Estou com um projeto de um cliente para iniciar e estou cogitando fortemente utilizar o Supabase, mas tenho receio de descobrir alguma limitação no meio do projeto. Por exemplo, se fosse necessário utilizar algum serviço de terceiros na aplicação, como algum gateway de pagamento ou utilizar alguma sdk específica, é possível?
rls é uma coisa que na Oracle tbm vai e vem toda hora, mas não sei pq ainda tentam empurrar isso. O pessoal só usava isso em sistemas full procedurais com camada de front em umas linguagens que hj em dia ninguém mais faz nada novo (não que seja requisito agora, mas era comum). Me parece burrice usar isso hj em dia, mas se a estratégia da Supabase é te fazer ficar travado neles por causa do acoplamento da hospedagem, parabéns! Realmente é uma bela armadilha..
É por isso que eu estou usando as RLSs como uma camada extra, redundância, de regras de negócio. O impacto na performance nos meus teste não chegou a 10% de overhead. Outro detalhe tentar usar o auth para um SaaS multi-tenant, da trabalho, o supabase não está preparado para isso 😮
@@lziznb vc se refere as regras negócio e RLSs né? Cara sempre é melhor usar as regras em código, puxar um pouco pro DDD, ou ter um domínio mais rico. Como estou trabalhando em um SaaS acabei tendo que usar trigger no banco para associar o login do supabase com um usuário vinculado ao tenant e retornar um JWT novo com as informações do usuário. Já que estava mechendo com SQL, criei algumas RLSs, por a SDK do supabase deixa fácil pra outro desenvolvedor fazer besteira e acaba expondo dados entre tenants. Então não, prefira regras no código, fica mais claro para vc no futuro e para o time. Se der como uma redundância, aí sim seria legal as RLSs, sem contar que há impacto na performance, acabei criando umas regras meio complexas que me gerou 10% de impacto, ou seja um query que demorava 10ms agora demora 11. Isso tem que ser levado em conta tbm.
@@DevDoido Sim. O SaaS que eu tô fazendo é para comércios, então um consumidor pode criar uma conta pra usar os serviços do comércio. Mas se esse consumidor usar as mesma credencias para tentar criar uma conta em outro comércio? O jeito por hora é notificar o usuário que na verdade ele tem uma já tem uma conta e se ele quer associa-la a outro comércio. O bom é que parece que o supabase é open source, da um tempinho razoável roda-lo on premise ou na sua própria infra, mas acredito que assim de para deixar o código de autenticação mais flexível. Custa uma chave estra no banco para por o id do tenant ou nome? Só esse campo a mais facilitaria muito.
@@lziznbEntão a resposta mais curta é não, sempre prefira por tratar as regras no código, use e abuse de domínios ricos, DDD, Clean Arch, papéis e permissões (roles & permissions). Você do futuro e seu time vão agradecer. As RLSs do supabase, não do supabase em sim, isso é um recurso do PG, são muito boas como um redundância, em especial a SDK do supabase permite que outros devs possam vir a fazer besteira e acabar expondo dados entre usuários, no meu entre tenants tbm. Então acabei implementando alguns regras a nível de banco para garantir o mínimo de integridade. Nossa tinha respondido vc, mas o UA-cam da uma bugadas, que as vezes somem comentários e respostas 😒
RLS é meio ruim mesmo mas é totalmente opcional, o real problema do supabase é escalabilidade, digo isso trabalhando em um sistema com 50 mil usuários. Alem dele ser lento e ter varios problemas de pool, se vc quer aumentar o tamanho do banco de dados, vc precisa melhorar o plano que nao inclui só armazenamento mas varias coisas que as vezes vc nem usa...
discordo totalmente. RLS esta sendo pra mim uma das melhores funcoes do postgres, ajuda a manter meu codigo limpo e considero bem explicitas sim e faceis de entender. fora que fazendo essa consullta dentro do meu proprio banco evita congestionamento de infra puxando dados desnecessarios para meu servidor ou que eu necessite construir uma queries imensas que as vezes sao reescritas varias vezes
o Supabase é uma ferrari e estão reclamando das rodas! Depois que vc aprender a usar bem, vc não vai para outro backend. TEm que colocar a relação custo-benefício-tempo de deploy.
Uma vez eu vi um tweet de um gringo que fez um saas com supabase que tinha 30 mil dolares de faturamento e 26 mil dolares de conta pra pagar no supabase. Ele praticamente trabalhava pros caras 😂😂😂
É e uma parte da armadilha está em usar os recursos deles sem olhar pro amanhã. Você quer começar algo e tem a opção de database, apenas cag*e para o RLS e use os schemas puros. Depois vá para outro lugar. Eles são ótimos no começo, mas se vc ficar até o fim, esteja preparado para ser extorquido kkkk
@@eduardomattos8932 é.. Storage realmente fica mais complicado. Eu não uso o storage do supabase. Mas o resto (functions, views, indexes, cron, etc), é tudo exportado quando você faz o backup (pg_dump). Eu conecto usando PgAdmin no banco, faço regularmente um backup e um restore em ambiente develop. Pra mim funciona tranquilo.
@@eduardomattos8932 Acredito que o ideal é fazer a aplicação criar a configuração do banco de dados. Se tiver usando o prisma da pra fazer de forma declarativa usando o Prisma.schema
@@eduardomattos8932se o banco do cara é pequeno, da para configurar um script ali de pgdump e pgrestore, mas agora parece que tem branches nele igual no neon.tech
Acho que se esse for o maior ponto negativo ainda é muitissimo valido, uma vez que geralmente quem utiliza o supabase não vai criar um back-end com regras de negocios muito complexas (na minha cabeça eu não vejo sentido), e pra soluções mais simples (que atende o público que busca o supabase) as RLS servem bem.
Poderia testar o BaseJump para o supabase como uma ajuda para isso que você comentou.
Fala também do firebase e seus serviços
Todo serviço hospedado, com distribuição global e que cobra por quantidade de processamento/requisições, tem só um objetivo no final, fazer o cartão de crédito do cliente sangrar. No começo sempre é muito bom, mas esteja preparado para desacoplar e seguir com uma ou + alternativas para não passar um aperto.
Queria muito saber a opinião do Diego sobre o Strapi para projetos Saas, se compensa e quais as desvantagens de usar ele?
fala do firestore
Eu gosto de ter a opção de usar essa granularidade que o supabase oferece no controle de permissões na mesma intensidade que eu gosto da opção de não precisar usá-la sempre. Ter a opção de ter controle é excelente e poder usar ele quando necessário é tão excelente quanto.
Gostei da opinião do Diego e concordo em muitas coisas, principalmente do que ele falou do storage. Quanto às regras ficarem no banco de dados, vale lembrar que banco de dados tbm é backend.
Supabase + flutterflow é uma mina de ouro! Se soubesse o tanto que da pra fazer e ganhar com isso, teria dropado essa merda de hardcode há muito tempo na vida.
Sabiam que da pra usar Supabase com Prisma pra acessar o banco, e criar as autorizacoes com ele, certo?
Eu crio minhas próprias tabelas de cerceamento e controlo pelo app. Só uso obdb pra armazenar por ex grupo d usuários, usuários e regra( tipo um crud) d cada grupo. Simples assim e funciona bem.
Olá, Cara, como que faço para inserir dados no supabase automáticamente.
No caso estou com o supabase web, alguma forma eu salvo o arquivo csv e o mesmo inserir os dados na tabela automaticamente.
Como eu poderia fazer?
Brigadão.
O que mais gosto do supabase é a parte que você pode baixar ele e utilizar em uma vps ou em seu pc
@@yuri4dev você pode fazer uma imagem docker e configurar para rodar no seu pc ou vps.
de uma pesquisada em "Supabase - Self-Hosting with Docker" no google
@@yuri4devtem como hospedar o supabase em um servidor vps. Procura sobre "Supabase Self-host". Pode te ajudar
@@yuri4devvocê não precisa ficar preso a plataforma deles, no site deles… você pode alugar uma VPS e deixar hospedado seu próprio supabase.
@@yuri4dev o supabase é um conjunto de soluções opensource. tem o postgrest que possibilita chamadas API no seu banco de dados postgres, tem o GoTrue pra autenticação, entre outros... aí você consegue instalar o supabase com o docker em uma vps, localmente ou utilizar o serviço pelo site deles (que aí não precisaria de uma vps, mas teria que pagar as taxas ou usar a versão gratuita com limites bem generosos). pra comparação, o firebase só permite 20-50 mil chamadas na API por dia pra vc acessar o banco de dados, o supabase deixa isso ilimitado
aviso diante mão q sou leigo no assunto, mas pelo que eu entendi é isso, se alguém quiser corrigir ou adicionar informações, sintam-se a vontade.
RLS é uma das melhores features do Postgres, se vc tem vários projetos consumindo dados, é simplesmente mágico e Clean manter no banco, totalmente agnóstico com linguagem ou Framework. Então o negativo aí no ponto de vista pra muitos, é super positivo pra outros. Abs
A vantagem é poder usar self hosting.
Firebase também tem permissão direto no DB, as "security rules"
Firebase também tem um free tier beeem generoso em vários aspectos
E o custo caso meu sistema vire um sucesso,impostos,porquÊ esse preço é o tabela para qualquer lugar do mundo,a latência? alguém usando em produção?
tens que conhecer essa tecnologia...faz tempo a as RLS existem e são uma mao na roda....apreenda e, veja a diferença qto a consumo de recursos computacionais da parte do client.
Azure AD B2C é 50.000 gratuito
Pessoal, que navegador é esse que ele ta usando? kk
A Deco, quando começou, usava Supabase, não sei se ainda usa
Diego me tira uma dúvida nada vê com tema pf, qual app que vc usa no terminal que dá auto sugestão? E qual app vc usa que aparece uma caixa de diálogo na tela e vc pergunta pra alguma i.a e tem a resposta na hora.
Warp terminal e raycast
@@entrepreneurdrive amigo 🫂
A V1 do drizzle vai suportar Postrgres RLS e vai resolver esse problema!
Vamos aguardar pra ver!
@@paivagabriel Eu tô escrevendo na mão por enquanto nos arquivos de migrations. Não vejo a hora dessa feature sair, vai facilitar o trampo. 😂
@@johnnymoreira7859 😂 é o jeito por enquanto
@@johnnymoreira7859 ja saiu?
@paivagabriel já saiu
amigao mas vc pode desativar o RLS
e nem é algo do supabase e sim do postgres
Acho que você viu pelo “ângulo “ errado. Concordo que roles é uma regra do negócio e provavelmente deve ser definido no backend. O supabase vai te dar um layer adicional. E honestamente, não é fácil de implementar, mas fazer sozinho é mais difícil (roles via banco).
Uma dúvida: O Supabase pode ser utilizado em qualquer tipo de aplicação (dentro da normalidade)?
Quais são as suas limitações em comparação a desenvolver uma aplicação da forma tradicional hight code?
Estou com um projeto de um cliente para iniciar e estou cogitando fortemente utilizar o Supabase, mas tenho receio de descobrir alguma limitação no meio do projeto.
Por exemplo, se fosse necessário utilizar algum serviço de terceiros na aplicação, como algum gateway de pagamento ou utilizar alguma sdk específica, é possível?
e o self hosted?
rls é uma coisa que na Oracle tbm vai e vem toda hora, mas não sei pq ainda tentam empurrar isso. O pessoal só usava isso em sistemas full procedurais com camada de front em umas linguagens que hj em dia ninguém mais faz nada novo (não que seja requisito agora, mas era comum). Me parece burrice usar isso hj em dia, mas se a estratégia da Supabase é te fazer ficar travado neles por causa do acoplamento da hospedagem, parabéns! Realmente é uma bela armadilha..
É por isso que eu estou usando as RLSs como uma camada extra, redundância, de regras de negócio. O impacto na performance nos meus teste não chegou a 10% de overhead. Outro detalhe tentar usar o auth para um SaaS multi-tenant, da trabalho, o supabase não está preparado para isso 😮
A tabela interna de autenticaçao deles é bem restrita tbm
nesse caso tu n precisaria manter as 2 camadas? como fica isso?
@@lziznb vc se refere as regras negócio e RLSs né? Cara sempre é melhor usar as regras em código, puxar um pouco pro DDD, ou ter um domínio mais rico. Como estou trabalhando em um SaaS acabei tendo que usar trigger no banco para associar o login do supabase com um usuário vinculado ao tenant e retornar um JWT novo com as informações do usuário. Já que estava mechendo com SQL, criei algumas RLSs, por a SDK do supabase deixa fácil pra outro desenvolvedor fazer besteira e acaba expondo dados entre tenants. Então não, prefira regras no código, fica mais claro para vc no futuro e para o time. Se der como uma redundância, aí sim seria legal as RLSs, sem contar que há impacto na performance, acabei criando umas regras meio complexas que me gerou 10% de impacto, ou seja um query que demorava 10ms agora demora 11. Isso tem que ser levado em conta tbm.
@@DevDoido Sim. O SaaS que eu tô fazendo é para comércios, então um consumidor pode criar uma conta pra usar os serviços do comércio. Mas se esse consumidor usar as mesma credencias para tentar criar uma conta em outro comércio? O jeito por hora é notificar o usuário que na verdade ele tem uma já tem uma conta e se ele quer associa-la a outro comércio. O bom é que parece que o supabase é open source, da um tempinho razoável roda-lo on premise ou na sua própria infra, mas acredito que assim de para deixar o código de autenticação mais flexível. Custa uma chave estra no banco para por o id do tenant ou nome? Só esse campo a mais facilitaria muito.
@@lziznbEntão a resposta mais curta é não, sempre prefira por tratar as regras no código, use e abuse de domínios ricos, DDD, Clean Arch, papéis e permissões (roles & permissions). Você do futuro e seu time vão agradecer. As RLSs do supabase, não do supabase em sim, isso é um recurso do PG, são muito boas como um redundância, em especial a SDK do supabase permite que outros devs possam vir a fazer besteira e acabar expondo dados entre usuários, no meu entre tenants tbm. Então acabei implementando alguns regras a nível de banco para garantir o mínimo de integridade. Nossa tinha respondido vc, mas o UA-cam da uma bugadas, que as vezes somem comentários e respostas 😒
Mas isso é opcional. Você pode não fazer uso do row level security. ahh, no final do video vc cita isso. Muito bom.
Essas lives são da onde? Da Twitch ou do Discord?
Twitch
RLS é meio ruim mesmo mas é totalmente opcional, o real problema do supabase é escalabilidade, digo isso trabalhando em um sistema com 50 mil usuários. Alem dele ser lento e ter varios problemas de pool, se vc quer aumentar o tamanho do banco de dados, vc precisa melhorar o plano que nao inclui só armazenamento mas varias coisas que as vezes vc nem usa...
vc usa o plano gratuito ou pago? além disso, já tentou hostear o supabase em uma VPS? obrigado
@@kylebroflovski1779 plano pago, mas contratamos serviço deles mesmo, não é instância própria
@@kylebroflovski1779 se não me engano é o plano de 300 dol
De boa, acho que vc não conhece muito bem o supabase, bem raso sua explicação. Vc pode autenticar por muitas e muitas formas.
discordo totalmente. RLS esta sendo pra mim uma das melhores funcoes do postgres, ajuda a manter meu codigo limpo e considero bem explicitas sim e faceis de entender. fora que fazendo essa consullta dentro do meu proprio banco evita congestionamento de infra puxando dados desnecessarios para meu servidor ou que eu necessite construir uma queries imensas que as vezes sao reescritas varias vezes
o Supabase é uma ferrari e estão reclamando das rodas! Depois que vc aprender a usar bem, vc não vai para outro backend. TEm que colocar a relação custo-benefício-tempo de deploy.
exato. Eu uso na startup nossa e roda que é uma beleza. Desde 2021 com eles, não troco por nada
Exatamente!!! 👏🏻👏🏻
Uma maneira facil de exportar os dados
Não vejo ninguém à altura do Supabase atualmente. MINHA opinião.
50000 usuários mas 60 conexoes no máximo é muito pouco
Uma vez eu vi um tweet de um gringo que fez um saas com supabase que tinha 30 mil dolares de faturamento e 26 mil dolares de conta pra pagar no supabase. Ele praticamente trabalhava pros caras 😂😂😂
Vishhh aí compensa self host do supabase
É e uma parte da armadilha está em usar os recursos deles sem olhar pro amanhã. Você quer começar algo e tem a opção de database, apenas cag*e para o RLS e use os schemas puros. Depois vá para outro lugar. Eles são ótimos no começo, mas se vc ficar até o fim, esteja preparado para ser extorquido kkkk
@@BrocchiRodrigodepois que vc acopla o codigo na lib deles acaba gostando eh complicado. O realtime deles é mt simples de usar tbm
Nao era o firebase não ?
Era firebase
O supabase deveria ter um banco de dados main e outro dev tipo o bubble
é só criar outro projeto, eu faço isso.
@@GabrielSestrem Outro projeto, outra api de conexao, outro storage. Todas as modificaçoes tais como indices, views refazer tudo. Vc faz isso ?
@@eduardomattos8932 é.. Storage realmente fica mais complicado. Eu não uso o storage do supabase. Mas o resto (functions, views, indexes, cron, etc), é tudo exportado quando você faz o backup (pg_dump). Eu conecto usando PgAdmin no banco, faço regularmente um backup e um restore em ambiente develop. Pra mim funciona tranquilo.
@@eduardomattos8932 Acredito que o ideal é fazer a aplicação criar a configuração do banco de dados. Se tiver usando o prisma da pra fazer de forma declarativa usando o Prisma.schema
@@eduardomattos8932se o banco do cara é pequeno, da para configurar um script ali de pgdump e pgrestore, mas agora parece que tem branches nele igual no neon.tech
Firebase >>>>>>
Firebase é nosql
nunca kkkk além de ser nosql não é open-source