Skip to content

Commit ad36f07

Browse files
authored
fix: allow nullable jwt secret (#1646)
1 parent 75e5f99 commit ad36f07

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

lib/realtime/api/tenant.ex

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,11 @@ defmodule Realtime.Api.Tenant do
7878
:migrations_ran,
7979
:broadcast_adapter
8080
])
81-
|> validate_required([
82-
:external_id,
83-
:jwt_secret
84-
])
81+
|> validate_required([:external_id])
82+
|> check_constraint(:jwt_secret,
83+
name: :jwt_secret_or_jwt_jwks_required,
84+
message: "either jwt_secret or jwt_jwks must be provided"
85+
)
8586
|> unique_constraint([:external_id])
8687
|> encrypt_jwt_secret()
8788
|> maybe_set_default(:max_bytes_per_second, :tenant_max_bytes_per_second)
@@ -102,7 +103,8 @@ defmodule Realtime.Api.Tenant do
102103
end
103104
end
104105

105-
def encrypt_jwt_secret(changeset) do
106-
update_change(changeset, :jwt_secret, &Crypto.encrypt!/1)
107-
end
106+
def encrypt_jwt_secret(%Ecto.Changeset{valid?: true} = changeset),
107+
do: update_change(changeset, :jwt_secret, &Crypto.encrypt!/1)
108+
109+
def encrypt_jwt_secret(changeset), do: changeset
108110
end

mix.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ defmodule Realtime.MixProject do
44
def project do
55
[
66
app: :realtime,
7-
version: "2.68.3",
7+
version: "2.68.4",
88
elixir: "~> 1.18",
99
elixirc_paths: elixirc_paths(Mix.env()),
1010
start_permanent: Mix.env() == :prod,
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
defmodule Realtime.Repo.Migrations.NullableJwtSecrets do
2+
use Ecto.Migration
3+
4+
def change do
5+
alter table(:tenants) do
6+
modify :jwt_secret, :string, null: true
7+
end
8+
9+
create constraint(:tenants, :jwt_secret_or_jwt_jwks_required,
10+
check: "jwt_secret IS NOT NULL OR jwt_jwks IS NOT NULL"
11+
)
12+
end
13+
end

0 commit comments

Comments
 (0)