feat: returns ip instead of host for sql

This commit is contained in:
=
2025-03-25 02:22:49 +05:30
parent c8553fba2b
commit c179d7e5ae
2 changed files with 5 additions and 11 deletions
@@ -47,4 +47,5 @@ export const verifyHostInputValidity = async (host: string, isGateway = false) =
const isAppUsedIps = inputHostIps.some((el) => exclusiveIps.includes(el)); const isAppUsedIps = inputHostIps.some((el) => exclusiveIps.includes(el));
if (isAppUsedIps) throw new BadRequestError({ message: "Invalid db host" }); if (isAppUsedIps) throw new BadRequestError({ message: "Invalid db host" });
return inputHostIps;
}; };
@@ -119,7 +119,7 @@ export const SqlDatabaseProvider = ({ gatewayService }: TSqlDatabaseProviderDTO)
const validateProviderInputs = async (inputs: unknown) => { const validateProviderInputs = async (inputs: unknown) => {
const providerInputs = await DynamicSecretSqlDBSchema.parseAsync(inputs); const providerInputs = await DynamicSecretSqlDBSchema.parseAsync(inputs);
await verifyHostInputValidity(providerInputs.host, Boolean(providerInputs.projectGatewayId)); const [hostIp] = await verifyHostInputValidity(providerInputs.host, Boolean(providerInputs.projectGatewayId));
validateHandlebarTemplate("SQL creation", providerInputs.creationStatement, { validateHandlebarTemplate("SQL creation", providerInputs.creationStatement, {
allowedExpressions: (val) => ["username", "password", "expiration", "database"].includes(val) allowedExpressions: (val) => ["username", "password", "expiration", "database"].includes(val)
}); });
@@ -131,7 +131,8 @@ export const SqlDatabaseProvider = ({ gatewayService }: TSqlDatabaseProviderDTO)
validateHandlebarTemplate("SQL revoke", providerInputs.revocationStatement, { validateHandlebarTemplate("SQL revoke", providerInputs.revocationStatement, {
allowedExpressions: (val) => ["username", "database"].includes(val) allowedExpressions: (val) => ["username", "database"].includes(val)
}); });
return providerInputs;
return { ...providerInputs, host: hostIp };
}; };
const $getClient = async (providerInputs: z.infer<typeof DynamicSecretSqlDBSchema>) => { const $getClient = async (providerInputs: z.infer<typeof DynamicSecretSqlDBSchema>) => {
@@ -158,15 +159,7 @@ export const SqlDatabaseProvider = ({ gatewayService }: TSqlDatabaseProviderDTO)
: undefined : undefined
}, },
acquireConnectionTimeout: EXTERNAL_REQUEST_TIMEOUT, acquireConnectionTimeout: EXTERNAL_REQUEST_TIMEOUT,
pool: { pool: { min: 0, max: 7 }
afterCreate: (conn: unknown, done: (err: unknown, arg0: unknown) => void) => {
void verifyHostInputValidity(providerInputs.host, Boolean(providerInputs.projectGatewayId))
.catch((err) => {
done(err, conn);
})
.then(() => done(null, conn));
}
}
}); });
return db; return db;
}; };