Supabase

Что такое Supabase

Supabase — это платформа, ориентированная на разработчиков, которая предлагает базу данных как услугу, а также дополнительные инструменты для создания бэкенда для приложений.

Основные функции и возможности Supabase

  1. База данных PostgreSQL: Supabase основана на PostgreSQL, что делает ее реляционной базой данных с поддержкой SQL-запросов. Это позволяет работать со сложными запросами, связями между таблицами, транзакциями и строгой структурой данных.
  2. Автоматические API: Она автоматически генерирует REST API для каждой таблицы и функции в PostgreSQL, упрощая взаимодействие с базой данных.
  3. Real-time обновления: Поддерживает обновления данных в реальном времени через WebSockets, что полезно для приложений, требующих мгновенного отображения изменений.
  4. Аутентификация: Предоставляет сервис аутентификации (на базе GoTrue) с поддержкой OAuth (Google, GitHub, Facebook и др.), OTP (одноразовых паролей) и Magic Links.
  5. Безопасность данных: Использует Row-Level Security (RLS) PostgreSQL для создания гибких правил доступа к данным на уровне строк, таблиц или представлений на основе JWT-токенов.
  6. Серверная логика (Функции): Поддерживает хранимые процедуры, триггеры и функции PostgreSQL для выполнения сложной логики на уровне базы данных, а также Edge Functions (на основе Deno) для серверной логики, выполняемой ближе к пользователям.
  7. Файловое хранилище: Предоставляет S3-совместимое хранилище через Storage API.
  8. Расширенная аналитика: Благодаря PostgreSQL, поддерживает сложные аналитические запросы и работу с большими наборами данных, а также расширения, такие как PostGIS для геопространственных запросов.
  9. Гибкость развертывания: Может быть развернута локально или на облачных платформах.
  10. Интеграция с GraphQL: Поддерживает GraphQL, что позволяет эффективно запрашивать только необходимые данные и реализовывать real-time подписки.

Supabase подходит, если:

  • Вам нужна SQL-база данных со строгой структурой данных.
  • Ваше приложение требует транзакций, сложных запросов и реляционных связей.
  • Вы хотите использовать мощные real-time функции и Edge Functions.
  • Вам нужна гибкость в развертывании (облако или self-hosted).
  • Вы цените удобство просмотра данных в привычной табличной форме и возможность вынести часть логики из фронтенда.

Источники: