Skip to content

Commit bd3d417

Browse files
committed
fix(webapp): read environment variables page data from the replica
1 parent 12ff1ac commit bd3d417

4 files changed

Lines changed: 14 additions & 12 deletions

File tree

apps/webapp/app/presenters/v3/EnvironmentVariablesPresenter.server.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { PrismaClient, prisma } from "~/db.server";
1+
import { $replica, PrismaClient, PrismaReplicaClient, prisma } from "~/db.server";
22
import { Project } from "~/models/project.server";
33
import { User } from "~/models/user.server";
44
import { EnvironmentVariablesRepository } from "~/v3/environmentVariables/environmentVariablesRepository.server";
@@ -15,13 +15,15 @@ export type EnvironmentVariableWithSetValues = Result["environmentVariables"][nu
1515

1616
export class EnvironmentVariablesPresenter {
1717
#prismaClient: PrismaClient;
18+
#replicaClient: PrismaReplicaClient;
1819

19-
constructor(prismaClient: PrismaClient = prisma) {
20+
constructor(prismaClient: PrismaClient = prisma, replicaClient: PrismaReplicaClient = $replica) {
2021
this.#prismaClient = prismaClient;
22+
this.#replicaClient = replicaClient;
2123
}
2224

2325
public async call({ userId, projectSlug }: { userId: User["id"]; projectSlug: Project["slug"] }) {
24-
const project = await this.#prismaClient.project.findFirst({
26+
const project = await this.#replicaClient.project.findFirst({
2527
select: {
2628
id: true,
2729
},
@@ -43,7 +45,7 @@ export class EnvironmentVariablesPresenter {
4345

4446
const { environments: sortedEnvironments, hasStaging } =
4547
await loadEnvironmentVariablesEnvironments(
46-
this.#prismaClient,
48+
this.#replicaClient,
4749
{ userId, projectId: project.id },
4850
{ skipProjectAccessCheck: true }
4951
);
@@ -52,7 +54,7 @@ export class EnvironmentVariablesPresenter {
5254
// values in archived branch environments, which would otherwise all be loaded here.
5355
const environmentIds = sortedEnvironments.map((env) => env.id);
5456

55-
const environmentVariables = await this.#prismaClient.environmentVariable.findMany({
57+
const environmentVariables = await this.#replicaClient.environmentVariable.findMany({
5658
select: {
5759
id: true,
5860
key: true,
@@ -100,7 +102,7 @@ export class EnvironmentVariablesPresenter {
100102

101103
const users =
102104
userIds.size > 0
103-
? await this.#prismaClient.user.findMany({
105+
? await this.#replicaClient.user.findMany({
104106
where: {
105107
id: {
106108
in: Array.from(userIds),
@@ -118,7 +120,7 @@ export class EnvironmentVariablesPresenter {
118120
const usersRecord: Record<string, { id: string; name: string | null; displayName: string | null; avatarUrl: string | null }> =
119121
Object.fromEntries(users.map((u) => [u.id, u]));
120122

121-
const repository = new EnvironmentVariablesRepository(this.#prismaClient);
123+
const repository = new EnvironmentVariablesRepository(this.#prismaClient, this.#replicaClient);
122124

123125
const nonSecretItems: Array<{ environmentId: string; key: string }> = [];
124126
for (const environmentVariable of environmentVariables) {

apps/webapp/app/presenters/v3/environmentVariablesEnvironments.server.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { RuntimeEnvironmentType } from "@trigger.dev/database";
2-
import { type PrismaClient } from "~/db.server";
2+
import { type PrismaReplicaClient } from "~/db.server";
33
import { filterOrphanedEnvironments, sortEnvironments } from "~/utils/environmentSort";
44

55
export type EnvironmentVariablesEnvironment = {
@@ -15,7 +15,7 @@ export type EnvironmentVariablesEnvironmentsResult = {
1515
};
1616

1717
export async function loadEnvironmentVariablesEnvironments(
18-
prismaClient: PrismaClient,
18+
prismaClient: PrismaReplicaClient,
1919
{ userId, projectId }: { userId: string; projectId: string },
2020
options?: { skipProjectAccessCheck?: boolean }
2121
): Promise<EnvironmentVariablesEnvironmentsResult> {

apps/webapp/app/v3/environmentVariables/environmentVariablesRepository.server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,7 @@ export class EnvironmentVariablesRepository implements Repository {
591591
}
592592

593593
const secretStore = getSecretStore("DATABASE", {
594-
prismaClient: this.prismaClient,
594+
prismaClient: this.replicaClient,
595595
});
596596

597597
const storeKeys = Array.from(uniqueItems.values()).map((item) =>

apps/webapp/test/EnvironmentVariablesPresenter.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ describe("EnvironmentVariablesPresenter", () => {
5656
userId: user.id,
5757
});
5858

59-
const result = await new EnvironmentVariablesPresenter(prisma).call({
59+
const result = await new EnvironmentVariablesPresenter(prisma, prisma).call({
6060
userId: user.id,
6161
projectSlug,
6262
});
@@ -146,7 +146,7 @@ describe("EnvironmentVariablesPresenter", () => {
146146
data: { archivedAt: new Date() },
147147
});
148148

149-
const result = await new EnvironmentVariablesPresenter(prisma).call({
149+
const result = await new EnvironmentVariablesPresenter(prisma, prisma).call({
150150
userId: user.id,
151151
projectSlug,
152152
});

0 commit comments

Comments
 (0)