Packages

phoenix_kit

1.7.192
1.7.207 1.7.206 1.7.205 1.7.204 1.7.203 1.7.202 1.7.201 1.7.200 1.7.199 1.7.198 1.7.197 1.7.196 1.7.194 1.7.193 1.7.192 1.7.191 1.7.190 1.7.189 1.7.187 1.7.186 1.7.185 1.7.184 1.7.183 1.7.182 1.7.181 1.7.180 1.7.179 1.7.178 1.7.177 1.7.176 1.7.175 1.7.174 1.7.173 1.7.172 1.7.171 1.7.170 1.7.169 1.7.168 1.7.167 1.7.166 1.7.165 1.7.164 1.7.162 1.7.161 1.7.160 1.7.159 1.7.157 1.7.156 1.7.155 1.7.154 1.7.153 1.7.152 1.7.151 1.7.150 1.7.149 1.7.146 1.7.145 1.7.144 1.7.143 1.7.138 1.7.133 1.7.132 1.7.131 1.7.130 1.7.128 1.7.126 1.7.125 1.7.121 1.7.120 1.7.119 1.7.118 1.7.117 1.7.116 1.7.115 1.7.114 1.7.113 1.7.112 1.7.111 1.7.110 1.7.109 1.7.108 1.7.107 1.7.106 1.7.105 1.7.104 1.7.103 1.7.102 1.7.101 1.7.100 1.7.99 1.7.98 1.7.97 1.7.96 1.7.95 1.7.94 1.7.93 1.7.92 1.7.91 1.7.90 1.7.89 1.7.88 1.7.87 1.7.86 1.7.85 1.7.84 1.7.83 1.7.82 1.7.81 1.7.80 1.7.79 1.7.78 1.7.77 1.7.76 1.7.75 1.7.74 1.7.71 1.7.70 1.7.69 1.7.66 1.7.65 1.7.64 1.7.63 1.7.62 1.7.61 1.7.59 1.7.58 1.7.57 1.7.56 1.7.55 1.7.54 1.7.53 1.7.52 1.7.51 1.7.49 1.7.44 1.7.43 1.7.42 1.7.41 1.7.39 1.7.38 1.7.37 1.7.36 1.7.34 1.7.33 1.7.31 1.7.30 1.7.29 1.7.28 1.7.27 1.7.26 1.7.25 1.7.24 1.7.23 1.7.22 1.7.21 1.7.20 1.7.19 1.7.18 1.7.17 1.7.16 1.7.15 1.7.14 1.7.13 1.7.12 1.7.11 1.7.10 1.7.9 1.7.8 1.7.7 1.7.6 1.7.5 1.7.4 1.7.3 1.7.2 1.7.1 1.7.0 1.6.20 1.6.19 1.6.18 1.6.17 1.6.16 1.6.15 1.6.14 1.6.13 1.6.12 1.6.11 1.6.10 1.6.9 1.6.8 1.6.7 1.6.6 1.6.5 1.6.4 1.6.3 1.5.2 1.5.1 1.5.0 1.4.9 1.4.8 1.4.7 1.4.6 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 1.3.2 1.3.1 1.3.0 1.2.10 1.2.9 1.2.8 1.2.7 1.2.5 1.2.4 1.2.2 1.2.1 1.2.0 1.1.0 1.0.0

A foundation for building Elixir Phoenix apps — SaaS, social networks, ERP systems, marketplaces, and more

Current section

221 Versions

Jump to

Compare versions

24 files changed
+508 additions
-20 deletions
unknownCHANGELOG.md
File is too large to be displayed (100 KB limit).
  @@ -1,6 +1,6 @@
1 1 {<<"links">>,[{<<"GitHub">>,<<"https://github.com/BeamLabEU/phoenix_kit">>}]}.
2 2 {<<"name">>,<<"phoenix_kit">>}.
3 - {<<"version">>,<<"1.7.191">>}.
3 + {<<"version">>,<<"1.7.192">>}.
4 4 {<<"description">>,
5 5 <<65,32,102,111,117,110,100,97,116,105,111,110,32,102,111,114,32,98,117,105,
6 6 108,100,105,110,103,32,69,108,105,120,105,114,32,80,104,111,101,110,105,
  @@ -593,6 +593,7 @@
593 593 <<"lib/phoenix_kit/migrations/postgres/v120.ex">>,
594 594 <<"lib/phoenix_kit/migrations/postgres/v10.ex">>,
595 595 <<"lib/phoenix_kit/migrations/postgres/v118.ex">>,
596 + <<"lib/phoenix_kit/migrations/postgres/v147.ex">>,
596 597 <<"lib/phoenix_kit/migrations/postgres/v58.ex">>,
597 598 <<"lib/phoenix_kit/migrations/postgres/v07.ex">>,
598 599 <<"lib/phoenix_kit/migrations/postgres/v28.ex">>,
  @@ -529,7 +529,13 @@ defmodule PhoenixKit.Migrations.Postgres do
529 529 - Replaces unique index with partial index (slug-mode only, WHERE slug IS NOT NULL)
530 530 - Adds unique index on `(group_uuid, post_date, post_time)` for timestamp-mode posts
531 531
532 - ### V146 - Catalogue item primary supplier ⚡ LATEST
532 + ### V147 - Known-device geo-location ⚡ LATEST
533 + - Adds nullable `location` (`City, Country`) to
534 + `phoenix_kit_user_known_devices`. Resolved once at new-device time by
535 + `PhoenixKit.Users.LoginAlerts` and stored so the user's Active Sessions
536 + list can show sign-in location without a per-render geo lookup.
537 +
538 + ### V146 - Catalogue item primary supplier
533 539 - Adds nullable `primary_supplier_uuid` FK (`ON DELETE SET NULL`) +
534 540 partial index to `phoenix_kit_cat_items` — an item's default
535 541 supplier, independent of manufacturer (generic/unbranded materials;
  @@ -1282,7 +1288,7 @@ defmodule PhoenixKit.Migrations.Postgres do
1282 1288 alias PhoenixKit.Migrations.Postgres.Helpers
1283 1289
1284 1290 @initial_version 1
1285 - @current_version 146
1291 + @current_version 147
1286 1292 @default_prefix "public"
1287 1293
1288 1294 # First version whose SQL references uuid_generate_v7(). Chains that
  @@ -0,0 +1,38 @@
1 + defmodule PhoenixKit.Migrations.Postgres.V147 do
2 + @moduledoc """
3 + V147: Persist geo-location on known devices.
4 +
5 + Adds a nullable `location` column to `phoenix_kit_user_known_devices`. The
6 + "City, Country" string is already resolved at new-device time by
7 + `PhoenixKit.Users.LoginAlerts` (it was only used in the alert email);
8 + storing it lets the user's Active Sessions list show where each session
9 + signed in from without an extra geo lookup per page render.
10 + """
11 +
12 + use Ecto.Migration
13 +
14 + def up(opts) do
15 + prefix = Map.get(opts, :prefix, "public")
16 + p = prefix_str(prefix)
17 +
18 + alter table(:phoenix_kit_user_known_devices, prefix: prefix) do
19 + add_if_not_exists(:location, :string, size: 255)
20 + end
21 +
22 + execute("COMMENT ON TABLE #{p}phoenix_kit IS '147'")
23 + end
24 +
25 + def down(opts) do
26 + prefix = Map.get(opts, :prefix, "public")
27 + p = prefix_str(prefix)
28 +
29 + alter table(:phoenix_kit_user_known_devices, prefix: prefix) do
30 + remove_if_exists(:location, :string)
31 + end
32 +
33 + execute("COMMENT ON TABLE #{p}phoenix_kit IS '146'")
34 + end
35 +
36 + defp prefix_str("public"), do: "public."
37 + defp prefix_str(prefix), do: "#{prefix}."
38 + end
  @@ -83,6 +83,13 @@ defmodule PhoenixKit.Notifications.Types do
83 83
84 84 defp core_types do
85 85 [
86 + %{
87 + key: "security",
88 + label: "Security",
89 + description: "New sign-ins to your account from an unrecognized device",
90 + actions: ["user.new_login_detected"],
91 + default: true
92 + },
86 93 %{
87 94 key: "account",
88 95 label: "Account",
Loading more files…