mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 22:27:48 +00:00
feat: returns ip instead of host for sql
This commit is contained in:
@@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user