Skip to content

Commit 89cc543

Browse files
committed
fix: set env var for base domain for synthetic service account email and remove nested transaction
1 parent 904aaf3 commit 89cc543

File tree

5 files changed

+20
-18
lines changed

5 files changed

+20
-18
lines changed

guard/helm/templates/user-api-dpl.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,11 @@ spec:
117117
secretKeyRef:
118118
name: {{ .Values.global.rabbitmq.secretName }}
119119
key: amqp-url
120+
- name: BASE_DOMAIN
121+
valueFrom:
122+
configMapKeyRef:
123+
name: {{ .Values.global.domain.configMapName }}
124+
key: BASE_DOMAIN
120125
- name: LOG_LEVEL
121126
value: {{ .Values.userApi.logging.level | quote }}
122127
{{- if .Values.global.statsd.enabled }}

guard/lib/guard/grpc_servers/service_account_server.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,8 @@ defmodule Guard.GrpcServers.ServiceAccountServer do
242242
description: service_account.description || "",
243243
org_id: service_account.org_id,
244244
creator_id: service_account.creator_id || "",
245-
created_at: grpc_timestamp(service_account.created_at),
246-
updated_at: grpc_timestamp(service_account.updated_at),
245+
created_at: grpc_timestamp(service_account.user.created_at),
246+
updated_at: grpc_timestamp(service_account.user.updated_at),
247247
deactivated: service_account.deactivated || false
248248
)
249249
end

guard/lib/guard/service_account/actions.ex

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,9 @@ defmodule Guard.ServiceAccount.Actions do
122122
# Private helper functions
123123

124124
defp _create(params) do
125-
# Use nested transactions because FrontRepo and Repo are different databases
126125
FrontRepo.transaction(fn ->
127126
with {:ok, result} <- ServiceAccount.create(params),
128-
{:ok, _rbac_user} <- create_rbac_user_in_transaction(result.service_account) do
127+
{:ok, _rbac_user} <- create_rbac_user(result.service_account) do
129128
# Return the service account data and API token
130129
{result.service_account, result.api_token}
131130
else
@@ -135,7 +134,7 @@ defmodule Guard.ServiceAccount.Actions do
135134
end)
136135
end
137136

138-
defp create_rbac_user_in_transaction(service_account) do
137+
defp create_rbac_user(service_account) do
139138
# RBAC operations use Guard.Repo (different database from FrontRepo)
140139
case Guard.Store.RbacUser.create(
141140
service_account.id,

guard/lib/guard/store/service_account.ex

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,15 @@ defmodule Guard.Store.ServiceAccount do
9595
{:ok, %{service_account: map(), api_token: String.t()}}
9696
| {:error, term()}
9797
def create(params) do
98-
FrontRepo.transaction(fn ->
99-
with {:ok, {plain_token, hashed_token}} <- generate_api_token(),
100-
{:ok, user} <- create_user_record(params, hashed_token),
101-
{:ok, service_account} <- create_service_account_record(user.id, params),
102-
service_account_data <- format_service_account_response(service_account, user) do
103-
%{service_account: service_account_data, api_token: plain_token}
104-
else
105-
{:error, reason} ->
106-
FrontRepo.rollback(reason)
107-
end
108-
end)
98+
with {:ok, {plain_token, hashed_token}} <- generate_api_token(),
99+
{:ok, user} <- create_user_record(params, hashed_token),
100+
{:ok, service_account} <- create_service_account_record(user.id, params),
101+
service_account_data <- format_service_account_response(service_account, user) do
102+
{:ok, %{service_account: service_account_data, api_token: plain_token}}
103+
else
104+
{:error, reason} ->
105+
{:error, reason}
106+
end
109107
end
110108

111109
@doc """

guard/test/guard/store/service_account_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ defmodule Guard.Store.ServiceAccountTest do
6565
{:ok, %{service_account: sa2}} = ServiceAccountFactory.insert(org_id: org_id, name: "SA2")
6666

6767
# Create service account in different org
68-
{:ok, %{service_account: sa3}} = ServiceAccountFactory.insert(name: "SA3")
68+
{:ok, %{service_account: _sa3}} = ServiceAccountFactory.insert(name: "SA3")
6969

7070
{:ok, result} = ServiceAccount.find_by_org(org_id, 10, nil)
7171

@@ -111,7 +111,7 @@ defmodule Guard.Store.ServiceAccountTest do
111111
org_id = Ecto.UUID.generate()
112112
{:ok, %{service_account: sa1}} = ServiceAccountFactory.insert(org_id: org_id, name: "SA1")
113113

114-
{:ok, %{service_account: sa2, user: user2}} =
114+
{:ok, %{service_account: _sa2, user: user2}} =
115115
ServiceAccountFactory.insert(org_id: org_id, name: "SA2")
116116

117117
# Deactivate second service account

0 commit comments

Comments
 (0)