[HN Gopher] Supabase Local Dev: migrations, branching, and obser... ___________________________________________________________________ Supabase Local Dev: migrations, branching, and observability Author : kiwicopple Score : 143 points Date : 2023-08-09 06:40 UTC (16 hours ago) (HTM) web link (supabase.com) (TXT) w3m dump (supabase.com) | rrgok wrote: | I hate to be this guy, really. I would like to adopt Supabase in | my company, but I cannot yet. | | I commented on a HN post almost a year ago about how hard is to | do custom Auth with Supabase. I still haven't find a good | solution about it. For example, LDAP Auth is quite crucial in | most enterprise settings, yet I have no idea how to do it with | Supabase. I can find a workaround for PostgREST by putting a | secondary API written in some other language and fiddling with | reverse proxies. But how to do with Supabase, such that all other | services (realtime,...) works nicely? Is it so hard to provide a | function that accept a custom strategy given the HTTP request | data? | | I created an issue[0] almost a year ago on Supabase, which was | transferred to Gotrue. I even provided some code examples from | Laravel. Even if it is not specifically for LDAP, make some API | available to do so, please. | | [0] https://github.com/supabase/gotrue/issues/904 | kiwicopple wrote: | > Even if it is not specifically for LDAP, make some API | available to do so, please. | | Based on the issue (title and comment), it seems that you have | asked specifically for LDAP support rather than a generic API. | | Feel free to share some more details in the github issue, so | the Auth team can figure out how best to support you. It looks | like they have followed up asking for the use-case and they are | just waiting for some clarifying details. | ilrwbwrkhv wrote: | One killer feature from Firebase is anonymous authentication | https://firebase.google.com/docs/auth/web/anonymous-auth | | This allows for a frictionless onboarding process for | startups. | | Are there plans for Supabase to support that? | kiwicopple wrote: | that's on the roadmap - definitely one of our most | requested Auth features. I don't have a timeline yet, but I | know it's somewhere at the top of the (kanban) list for the | Auth team | ilrwbwrkhv wrote: | Thanks | fosterfriends wrote: | Cool to see dev-ex improvements around local Postgres testing. At | Graphite we use pg-mem for fast unit tests, but it's not ideal. | It's extremely fast, but certain advanced queries aren't | supported. Curious about what others do for unit testing Postgres | operations? | | https://github.com/oguimbal/pg-mem | kiwicopple wrote: | hey hn, supabase ceo here | | a few months ago one of customers migrated away from supabase and | they wrote a blog post about it. That blog post appeared here[0] | on hacker news. many of the issues they encountered were related | to local development. we made several promises to improve based | on that feedback and the various comments in the HN thread | | today's launch delivers on many of those promises. We've added | better support for database migrations, seeding, backups, | debugging, and documentation. | | we have a lot of work ahead, this is just the first step. our | next major step forward is "branching", which we're rolling out | today for development partners and alpha testers. | | we've coupled the branching functionality to GitHub for now. | whenever you create a new PR we launch a new instance, run the | database migrations in your version control, and seed the | database for reproducible test environments. we're using | Firecracker[1] for every preview environment. This environment | automatically pauses when it's not in use. we're seeing some very | impressive startup times, even though we're stuffing a lot of | services inside the VM. We looked at making full-production | clones but decided against that for now until we have a robust | strategy for anonymizing production data and mocking out calls to | external services. Ultimately we want to offer both options, it's | just easier and safer to start with seed data. | | since supabase offers a few services beyond the Postgres | database, we still have a few questions to work through with our | alpha testers. for example, we also store images/videos/files for | our customers. Do these need to be anonymized in preview | environments? we don't have all the answers yet, but we're moving | in the right direction. As hard as it was to have a customer | migrate away so publicly, I'm proud of the work the team have | done to improve on feedback | | [0] https://news.ycombinator.com/item?id=36006018 | | [1] Firecracker: https://firecracker-microvm.github.io/ | soultrees wrote: | Respect. This is how you build a winning product and make your | users feel heard. Take note upcoming class. | thewataccount wrote: | I checked a little bit ago but I might have missed it so please | correct me. | | Are there plans to expand self-hosting support? The migrations | are a big step forward. | | Are you intending to fill the roll of being a framework akin to | a "super django" type of deal? Again the migrations help a ton, | but I've been hesitant to use Supabase for random projects | because I don't want to rely on the platform, and I don't want | random people on github who want to try or contribute to | require a supabase account. | | I'd love to use it more as a modular ORM for miscellaneous | projects instead of the current "hosted platform", currently | none of the tutorials (or github projects) seem to explain this | route at all. | | I think you actually do work for this purpose, and I think the | docs mostly cover the bare minimum for self hosting, and I | understand your business kinda relies on the hosted platform, | but I'd love to see further tutorials and thorough explinations | of all the features - currently some like the AI features | aren't really explained if they work in the self-hosted or not, | or if you have to do anything special for that. | | EDIT: Also I do appreciate your business being opensource, and | contributing to postgres so much! Sorry for the rambling, and I | apologize if I'm blind and missed some obvious docs. | kiwicopple wrote: | > _Are you intending to fill the roll of being a framework | akin to a "super django" type of deal?_ | | We don't plan to replace any specific framework. We simply | want to make Postgres easier to use. You can use Django (or | any other framework) and Supabase together. We provide some | additional tooling on top, but we aim to make this tooling | 100% compatible with other tools. As an example, here[1] is a | change we made recently so that our Storage service works | better with Clerk (a popular Auth service, which is a good | alternative to our own Auth service). We plan to document | this better - it was one of the promises I made in the OP. | | > _Are there plans to expand self-hosting support?_ | | we made a few updates[0] this week to improve self-hosting | based on the common feedback. if there is anything missing | just let me know and i will do another round of improvements. | | > _currently some like the AI features aren 't really | explained if they work in the self-hosted or not, or if you | have to do anything special for that._ | | nothing is feature-gated so everything works on self-hosted. | That said, I agree that we can be better at explaining the | self-hosting. We are putting a lot more effort into improving | our docs in general. For self-hosting we can certainly be | clearer about the boundaries where you are responsible (eg, | you need to take care of your own backups, the AI features | will require external acconts). we're working on this, but | feel free to open issues where it's unclear we can address | anything specific | | [0] https://github.com/supabase/supabase/pull/16097 | | [1] https://github.com/supabase/storage-api/pull/340 | fosterfriends wrote: | Love the candor and follow-up on community feedback! Sounds | like y'all are working hard, keep it up :) | CSSer wrote: | Thank you so much for taking the initiative to learn and grow | from that experience. My team is in the fledging stages of | using Supabase to rebuild a mission-critical application for | our company. We were initially disappointed with what we found | in terms of CI/CD and local development but we liked Supabase | enough for other reasons to keep moving forward with it. I'm | really glad we did because I think this has the potential to be | a major boon for the productivity and efficiency of building | and maintaining our project over time. I get the impression | that you're making really good calls as it relates to your | roadmap, and I'm really looking forward to exploring these | workflows and sharing what I find with my team. Thanks again! | kiwicopple wrote: | > _I get the impression that you 're making really good calls | as it relates to your roadmap_ | | we receive feedback from a lot of channels so it's often hard | to figure out what to build. In the early days it was about | reaching feature-parity with other tools. now we have a bit | more breathing-room to focus on "day 2" problems. I think our | team is excited about this phase since it means we get an | opportunity to build something new/innovative | nathancahill wrote: | Massive congrats on shipping this. Will really improve the | DevEx. Are you hiring? | kiwicopple wrote: | I don't think we have any positions open currently | unfortunately, although we're always looking for talented | SREs & support to keep up with the platform growth. feel free | to reach out (my details are in my profile) | swyx wrote: | really impressive how you responded to that criticism - | listening to feedback and then building out a full product | suite. looking forward to try out everything here, particularly | branching, because just yesterday i was looking thru the docs | recommending staging/dev/prod instances and wondering if there | was a better way! | jadbox wrote: | After being burned by other DaaS providers (looking at you AWS | Amplify/Cognito), I've been skeptical to use anything other | than rolling my own solutions. Supabase updates does continue | to impress, and I do really appreciate these improvements to | local development. | kiwicopple wrote: | > _rolling my own solutions_ | | I would love to hear what solutions you're choosing. | | one of our goals is to provide only the tools/tech/features | that you'd choose yourself or need to build to get started. | If you're skeptical based on our technology choices then it's | useful to receive that feedback | [deleted] | random_kris wrote: | I cannot decide what to do on my project. Use drizzle as orm and | supabase just as a nice wrapper around my PG db. | | Or go fully into supabase ecosystems and also use their types and | their built in migrations and types | kiwicopple wrote: | they should be compatible, so I don't think you need to see it | as an either/or. If you choose to use both however, then you | should use drizzle to scaffold your database. | | Our clients will work with the drizzle-generated tables (since | they use PostgREST). | yesimahuman wrote: | Huge congrats for shipping some of these features. I know many of | us have been wanting them for a while. In particular, migration | squashing will be super helpful. I'm a little iffy on the | branching stuff, since I like the solution of having two separate | Supabase projects to act as different environments (though that's | certainly not as powerful as actual branching, but it's simpler | to reason about). Really excited to try some of the things on | this list that seem new today (several of them have been out for | a while as far as I can tell?) | kiwicopple wrote: | > _I like the solution of having two separate Supabase projects | to act as different environments_ | | This won't be going away. Branching will just be another option | | fwiw, I've also heard from a few enterprise companies that the | git-based branching model isn't as suitable for them, because | every other tool in their stack works in a prod/stage/dev type | model, and there is no simple way to make it work with (for | example) ~30 different environments | | The branching model is really an "all-in" solution. It works | particularly well if you're using something like Vercel/Netlify | for your frontend. If you're using a serverside framework | (Django, Rails, Phoenix, etc) then it's not as simple. That | said, I think it's the way the world is moving, and with the | advent of cheap VMs then it makes it very plausible even for | these serverside frameworks | theultdev wrote: | Wow, these are very useful. | | Is there an example project that demos the best way to setup | these features? | | edit: I see TFA links to the docs where most things are covered | (https://supabase.com/docs/guides/cli) | kiwicopple wrote: | Here is an example project: https://github.com/supabase- | community/vercel-ai-chatbot | | You'll see there is a "supabase" folder inside it so you can | clone it and run "supabase start" to get started immediately. | | You can also hit the blue deploy button and you'll have a full | application deployed in ~1 minute (frontend on Vercel, backend | on Supabase) | theultdev wrote: | This doesn't include any of these newly announced features... | majestic5762 wrote: | Are you considering releasing an ORM or providing better support | for Prisma? | kiwicopple wrote: | We provide libraries for PostgREST, which auto-generates an API | from your Postgres tables. Is that sufficient or are you | looking for something else? | | Prisma is already well-supported in supabase (since it's just | Postgres and prisma already works with Postgres) | | edit: here is the prisma guide | -https://supabase.com/partners/integrations/prisma | cpursley wrote: | Supabase is basically the anti-ORM. Set everything up and just | start using it: | | https://supabase.com/docs/reference/javascript/select | phillipcarter wrote: | For the Observability tools for Postgres category, are there | plans to bring some of this information into things like trace | data via OpenTelemetry? Would love to capture this info | continuously instead of needing to dig in with a CLI tool when | monitoring notes something is awry. | chasers wrote: | yes otel across all of Supabase in on our radar for sure. we | just added ingest support for otel payloads to Logflare (docs | coming soon) so when we have that you'll get them on the | platform and locally. | | if you haven't seen the metrics endpoint we do have an endpoint | you can scrape for all your Supabase metrics, and we just | improved the example repo quite a bit on how to ship those | somewhere: https://github.com/supabase/grafana-agent-fly- | example/ | klysm wrote: | One of the reasons I avoid services like this typically is the | local dev story so glad to see work going into it ___________________________________________________________________ (page generated 2023-08-09 23:01 UTC)