mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-04 14:26:25 +00:00
misc: added proper handling for gateway name conflicts
This commit is contained in:
@@ -6,7 +6,8 @@ import * as x509 from "@peculiar/x509";
|
|||||||
import { TProxies } from "@app/db/schemas";
|
import { TProxies } from "@app/db/schemas";
|
||||||
import { PgSqlLock } from "@app/keystore/keystore";
|
import { PgSqlLock } from "@app/keystore/keystore";
|
||||||
import { crypto } from "@app/lib/crypto";
|
import { crypto } from "@app/lib/crypto";
|
||||||
import { BadRequestError, NotFoundError } from "@app/lib/errors";
|
import { DatabaseErrorCode } from "@app/lib/error-codes";
|
||||||
|
import { BadRequestError, DatabaseError, NotFoundError } from "@app/lib/errors";
|
||||||
import { GatewayProxyProtocol } from "@app/lib/gateway/types";
|
import { GatewayProxyProtocol } from "@app/lib/gateway/types";
|
||||||
import { withGatewayV2Proxy } from "@app/lib/gateway-v2/gateway-v2";
|
import { withGatewayV2Proxy } from "@app/lib/gateway-v2/gateway-v2";
|
||||||
import { OrgServiceActor } from "@app/lib/types";
|
import { OrgServiceActor } from "@app/lib/types";
|
||||||
@@ -439,6 +440,7 @@ export const gatewayV2ServiceFactory = ({
|
|||||||
throw new NotFoundError({ message: `Proxy ${proxyName} not found` });
|
throw new NotFoundError({ message: `Proxy ${proxyName} not found` });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
const [gateway] = await gatewayV2DAL.upsert(
|
const [gateway] = await gatewayV2DAL.upsert(
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@@ -525,6 +527,13 @@ export const gatewayV2ServiceFactory = ({
|
|||||||
serverCAPublicKey: proxyCredentials.serverCAPublicKey
|
serverCAPublicKey: proxyCredentials.serverCAPublicKey
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
} catch (err) {
|
||||||
|
if (err instanceof DatabaseError && (err.error as { code: string })?.code === DatabaseErrorCode.UniqueViolation) {
|
||||||
|
throw new BadRequestError({ message: `Gateway with name "${name}" already exists` });
|
||||||
|
}
|
||||||
|
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const heartbeat = async ({ orgPermission }: { orgPermission: OrgServiceActor }) => {
|
const heartbeat = async ({ orgPermission }: { orgPermission: OrgServiceActor }) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user