diff --git a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
index 481c0c944a65e..524457ab66370 100644
--- a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
+++ b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts
@@ -2021,6 +2021,7 @@ export const platform: NavMenuConstant = {
{ name: 'Compute and Disk', url: '/guides/platform/compute-and-disk' },
{ name: 'Database Size', url: '/guides/platform/database-size' },
{ name: 'Fly Postgres', url: '/guides/platform/fly-postgres' },
+ { name: 'HIPAA Projects', url: '/guides/platform/hipaa-projects' },
{
name: 'Network Restrictions',
url: '/guides/platform/network-restrictions',
diff --git a/apps/docs/content/guides/auth/auth-identity-linking.mdx b/apps/docs/content/guides/auth/auth-identity-linking.mdx
index ef12b12a45bf1..36c6dffcfd31e 100644
--- a/apps/docs/content/guides/auth/auth-identity-linking.mdx
+++ b/apps/docs/content/guides/auth/auth-identity-linking.mdx
@@ -172,3 +172,13 @@ if google_identity:
+
+## Frequently asked questions
+
+### How to add email/password login to an OAuth account?
+
+Call the `updateUser({ password: 'validpassword'})` to add email with password authentication to an account created with an OAuth provider (Google, GitHub, etc.).
+
+### Can you sign up with email if already using OAuth?
+
+If you try to create an email account after previously signing up with OAuth using the same email, you'll receive an obfuscated user response with no verification email sent. This prevents user enumeration attacks.
diff --git a/apps/docs/content/guides/platform/hipaa-projects.mdx b/apps/docs/content/guides/platform/hipaa-projects.mdx
new file mode 100644
index 0000000000000..ae0c4b94b4fae
--- /dev/null
+++ b/apps/docs/content/guides/platform/hipaa-projects.mdx
@@ -0,0 +1,28 @@
+---
+id: 'hipaa'
+title: 'HIPAA Projects'
+description: 'Projects that store or process Protected Health Information (PHI) and other sensitive data'
+---
+
+You can use Supabase to store and process Protected Health Information (PHI). If you want to start developing healthcare apps on Supabase, reach out to the Supabase team [here](https://forms.supabase.com/hipaa2) to sign the Business Associate Agreement (BAA).
+
+
+
+Organizations must have a signed BAA with Supabase and have the Health Insurance Portability and Accountability Act (HIPAA) add-on enabled when dealing with PHI.
+
+
+
+## Configuring a HIPAA Project
+
+When the HIPAA add-on is enabled on an organization, projects within the organization can be configured as _High Compliance_. This configuration can be found in the [General Project Settings page](https://supabase.com/dashboard/project/_/settings) of the dashboard.
+Once enabled, additional security checks will be run against the project to ensure the deployed configuration is compliant. These checks are performed on a continual basis and security warnings will appear in the [Security Advisor](https://supabase.com/dashboard/project/_/advisors/security) if a non-compliant setting is detected.
+
+The required project configuration is outlined in the [shared responsibility model](https://supabase.com/docs/guides/deployment/shared-responsibility-model#managing-healthcare-data) for managing healthcare data.
+
+These include:
+
+- Enabling [Point in Time Recovery](/docs/guides/platform/backups#point-in-time-recovery) which requires at least a [small compute add-on](/docs/guides/platform/compute-add-ons).
+- Turning on [SSL Enforcement](/docs/guides/platform/ssl-enforcement).
+- Enabling [Network Restrictions](/docs/guides/platform/network-restrictions).
+
+Additional security checks and controls will be added as the security advisor is extended and additional security controls are made available.
diff --git a/apps/docs/public/humans.txt b/apps/docs/public/humans.txt
index b631dfe115cde..73b7049235109 100644
--- a/apps/docs/public/humans.txt
+++ b/apps/docs/public/humans.txt
@@ -56,6 +56,7 @@ Kevin Brolly
Kevin Grüneberg
Lakshan Perera
Laura C
+Laurence Isla
Long Hoang
Łukasz Niemier
Margarita Sandomirskaia
diff --git a/apps/studio/components/interfaces/Auth/EmailRateLimitsAlert/EmailRateLimitsAlert.tsx b/apps/studio/components/interfaces/Auth/EmailRateLimitsAlert/EmailRateLimitsAlert.tsx
index 843ce6f9e746d..4eb4b01e371c7 100644
--- a/apps/studio/components/interfaces/Auth/EmailRateLimitsAlert/EmailRateLimitsAlert.tsx
+++ b/apps/studio/components/interfaces/Auth/EmailRateLimitsAlert/EmailRateLimitsAlert.tsx
@@ -1,11 +1,16 @@
import Link from 'next/link'
import { useParams } from 'common'
-import { AlertDescription_Shadcn_, AlertTitle_Shadcn_, Alert_Shadcn_, WarningIcon } from 'ui'
+import {
+ AlertDescription_Shadcn_,
+ AlertTitle_Shadcn_,
+ Alert_Shadcn_,
+ Button,
+ WarningIcon,
+} from 'ui'
export function EmailRateLimitsAlert() {
- const { ref: projectRef } = useParams()
- const after20240926 = Date.now() >= new Date('20240926T00:00:00Z').getTime()
+ const { ref } = useParams()
return (
@@ -14,30 +19,21 @@ export function EmailRateLimitsAlert() {
You're using the built-in email service. The service has rate limits and it's not meant to
be used for production apps. Check the{' '}
+ {/* [Refactor] Swap for InlineLink component once https://github.com/supabase/supabase/pull/30494 is in */}
documentation
{' '}
- for an up-to-date information on the current rate limits.{' '}
-
- Set up a custom SMTP server now.
-
-
-
- {after20240926
- ? 'To fight abuse, Auth email messages are restricted '
- : 'On 26th September: To fight abuse, Auth email messages will be restricted '}
- to your project's organization members. For example, if your organization has 3 members with
- addresses: person-a@example.com, person-b@example.com and{' '}
- person-c@example.com, messages will be{' '}
- sent to those addresses only. Set up custom SMTP to send to any user.
+ for an up-to-date information on the current rate limits.
+
)
diff --git a/apps/studio/components/interfaces/Auth/EmailTemplates/EmailTemplates.tsx b/apps/studio/components/interfaces/Auth/EmailTemplates/EmailTemplates.tsx
index 9bced7ff31652..80d6ba89f5dd7 100644
--- a/apps/studio/components/interfaces/Auth/EmailTemplates/EmailTemplates.tsx
+++ b/apps/studio/components/interfaces/Auth/EmailTemplates/EmailTemplates.tsx
@@ -5,7 +5,7 @@ import { FormHeader } from 'components/ui/Forms/FormHeader'
import { FormPanel } from 'components/ui/Forms/FormPanel'
import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader'
import { useAuthConfigQuery } from 'data/auth/auth-config-query'
-import { Tabs, Tabs_Shadcn_, TabsContent_Shadcn_, TabsList_Shadcn_, TabsTrigger_Shadcn_ } from 'ui'
+import { Tabs_Shadcn_, TabsContent_Shadcn_, TabsList_Shadcn_, TabsTrigger_Shadcn_ } from 'ui'
import { TEMPLATES_SCHEMAS } from '../AuthTemplatesValidation'
import EmailRateLimitsAlert from '../EmailRateLimitsAlert'
import TemplateEditor from './TemplateEditor'
@@ -39,7 +39,11 @@ const EmailTemplates = () => {
{isError && (
)}
- {isLoading && }
+ {isLoading && (
+