mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 22:27:48 +00:00
greptile review fixes
This commit is contained in:
@@ -198,7 +198,11 @@ export async function down(knex: Knex): Promise<void> {
|
|||||||
.merge();
|
.merge();
|
||||||
}
|
}
|
||||||
|
|
||||||
await knex(TableName.AuditLogStream).whereNot("provider", "custom").orWhereNull("url").del();
|
await knex(TableName.AuditLogStream)
|
||||||
|
.where((qb) => {
|
||||||
|
void qb.whereNot("provider", "custom").orWhereNull("url");
|
||||||
|
})
|
||||||
|
.del();
|
||||||
|
|
||||||
await knex.schema.alterTable(TableName.AuditLogStream, (t) => {
|
await knex.schema.alterTable(TableName.AuditLogStream, (t) => {
|
||||||
t.string("url").notNullable().alter();
|
t.string("url").notNullable().alter();
|
||||||
|
|||||||
@@ -120,9 +120,11 @@ export const registerV1EERoutes = async (server: FastifyZodProvider) => {
|
|||||||
await auditLogStreamRouter.register(registerAuditLogStreamRouter);
|
await auditLogStreamRouter.register(registerAuditLogStreamRouter);
|
||||||
|
|
||||||
// Provider-specific endpoints
|
// Provider-specific endpoints
|
||||||
for await (const [provider, router] of Object.entries(AUDIT_LOG_STREAM_REGISTER_ROUTER_MAP)) {
|
await Promise.all(
|
||||||
await auditLogStreamRouter.register(router, { prefix: `/${provider}` });
|
Object.entries(AUDIT_LOG_STREAM_REGISTER_ROUTER_MAP).map(([provider, router]) =>
|
||||||
}
|
auditLogStreamRouter.register(router, { prefix: `/${provider}` })
|
||||||
|
)
|
||||||
|
);
|
||||||
},
|
},
|
||||||
{ prefix: "/audit-log-streams" }
|
{ prefix: "/audit-log-streams" }
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import RE2 from "re2";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
import { LogProvider } from "../audit-log-stream-enums";
|
import { LogProvider } from "../audit-log-stream-enums";
|
||||||
@@ -7,8 +8,14 @@ export const CustomProviderCredentialsSchema = z.object({
|
|||||||
url: z.string().url().trim().min(1).max(255),
|
url: z.string().url().trim().min(1).max(255),
|
||||||
headers: z
|
headers: z
|
||||||
.object({
|
.object({
|
||||||
key: z.string().min(1),
|
key: z
|
||||||
value: z.string().min(1)
|
.string()
|
||||||
|
.min(1)
|
||||||
|
.refine((val) => new RE2(/^[^\n\r]+$/).test(val), "Header keys cannot contain newlines or carriage returns"),
|
||||||
|
value: z
|
||||||
|
.string()
|
||||||
|
.min(1)
|
||||||
|
.refine((val) => new RE2(/^[^\n\r]+$/).test(val), "Header values cannot contain newlines or carriage returns")
|
||||||
})
|
})
|
||||||
.array()
|
.array()
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ function createPayload(event: Record<string, unknown>) {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
time: Math.floor(Date.now() / 1000),
|
time: Math.floor(Date.now() / 1000),
|
||||||
host: new URL(appCfg.SITE_URL || "http://infisical").host,
|
...(appCfg.SITE_URL && { host: new URL(appCfg.SITE_URL).host }),
|
||||||
source: "infisical",
|
source: "infisical",
|
||||||
sourcetype: "_json",
|
sourcetype: "_json",
|
||||||
event
|
event
|
||||||
@@ -29,7 +29,7 @@ async function createSplunkUrl(hostname: string) {
|
|||||||
throw new BadRequestError({ message: `Invalid Splunk hostname provided: ${(error as Error).message}` });
|
throw new BadRequestError({ message: `Invalid Splunk hostname provided: ${(error as Error).message}` });
|
||||||
}
|
}
|
||||||
|
|
||||||
await blockLocalAndPrivateIpAddresses(`https://${hostname}`);
|
await blockLocalAndPrivateIpAddresses(`https://${parsedHostname}`);
|
||||||
|
|
||||||
return `https://${parsedHostname}:8088/services/collector/event`;
|
return `https://${parsedHostname}:8088/services/collector/event`;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ export const AUDIT_LOG_STREAM_PROVIDER_MAP: Record<
|
|||||||
[LogProvider.Splunk]: { name: "Splunk", image: "Splunk.png", size: 65 }
|
[LogProvider.Splunk]: { name: "Splunk", image: "Splunk.png", size: 65 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Strictly for showing to the client in the front-end
|
||||||
export function getProviderUrl(
|
export function getProviderUrl(
|
||||||
logStream: DiscriminativePick<TAuditLogStream, "provider" | "credentials">
|
logStream: DiscriminativePick<TAuditLogStream, "provider" | "credentials">
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export const useCreateAuditLogStream = () => {
|
|||||||
mutationFn: async ({ provider, ...params }: TCreateAuditLogStreamDTO) => {
|
mutationFn: async ({ provider, ...params }: TCreateAuditLogStreamDTO) => {
|
||||||
const { data } = await apiRequest.post<{ auditLogStream: TAuditLogStream }>(
|
const { data } = await apiRequest.post<{ auditLogStream: TAuditLogStream }>(
|
||||||
`/api/v1/audit-log-streams/${provider}`,
|
`/api/v1/audit-log-streams/${provider}`,
|
||||||
{ ...params, provider }
|
params
|
||||||
);
|
);
|
||||||
|
|
||||||
return data.auditLogStream;
|
return data.auditLogStream;
|
||||||
|
|||||||
+1
-1
@@ -255,7 +255,7 @@ export const AuditLogStreamTable = () => {
|
|||||||
{isPending && (
|
{isPending && (
|
||||||
<TableSkeleton
|
<TableSkeleton
|
||||||
innerKey="audit-log-streams-table"
|
innerKey="audit-log-streams-table"
|
||||||
columns={4}
|
columns={3}
|
||||||
key="audit-log-streams"
|
key="audit-log-streams"
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|||||||
+1
-1
@@ -92,7 +92,7 @@ export const LogStreamProviderSelect = ({ onSelect }: Props) => {
|
|||||||
</button>
|
</button>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
{!filteredOptions?.length && (
|
{!filteredOptions.length && (
|
||||||
<EmptyState
|
<EmptyState
|
||||||
className="col-span-full mt-40"
|
className="col-span-full mt-40"
|
||||||
title="No providers match search"
|
title="No providers match search"
|
||||||
|
|||||||
Reference in New Issue
Block a user