mirror of
https://github.com/fosrl/pangolin.git
synced 2026-02-18 19:06:38 +00:00
Show resource link in table for requests
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { db, requestAuditLog } from "@server/db";
|
import { db, requestAuditLog, resources } from "@server/db";
|
||||||
import { registry } from "@server/openApi";
|
import { registry } from "@server/openApi";
|
||||||
import { NextFunction } from "express";
|
import { NextFunction } from "express";
|
||||||
import { Request, Response } from "express";
|
import { Request, Response } from "express";
|
||||||
@@ -68,9 +68,12 @@ export function querySites(timeStart: number, timeEnd: number, orgId: string) {
|
|||||||
host: requestAuditLog.host,
|
host: requestAuditLog.host,
|
||||||
path: requestAuditLog.path,
|
path: requestAuditLog.path,
|
||||||
method: requestAuditLog.method,
|
method: requestAuditLog.method,
|
||||||
tls: requestAuditLog.tls,
|
tls: requestAuditLog.tls,
|
||||||
|
resourceName: resources.name,
|
||||||
|
resourceNiceId: resources.niceId
|
||||||
})
|
})
|
||||||
.from(requestAuditLog)
|
.from(requestAuditLog)
|
||||||
|
.leftJoin(resources, eq(requestAuditLog.resourceId, resources.resourceId)) // TODO: Is this efficient?
|
||||||
.where(
|
.where(
|
||||||
and(
|
and(
|
||||||
gt(requestAuditLog.timestamp, timeStart),
|
gt(requestAuditLog.timestamp, timeStart),
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ export type QueryRequestAuditLogResponse = {
|
|||||||
actor: string | null;
|
actor: string | null;
|
||||||
actorId: string | null;
|
actorId: string | null;
|
||||||
resourceId: number | null;
|
resourceId: number | null;
|
||||||
|
resourceNiceId: string | null;
|
||||||
|
resourceName: string | null;
|
||||||
ip: string | null;
|
ip: string | null;
|
||||||
location: string | null;
|
location: string | null;
|
||||||
userAgent: string | null;
|
userAgent: string | null;
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ import { useTranslations } from "next-intl";
|
|||||||
import { LogDataTable } from "@app/components/LogDataTable";
|
import { LogDataTable } from "@app/components/LogDataTable";
|
||||||
import { ColumnDef } from "@tanstack/react-table";
|
import { ColumnDef } from "@tanstack/react-table";
|
||||||
import { DateTimeValue } from "@app/components/DateTimePicker";
|
import { DateTimeValue } from "@app/components/DateTimePicker";
|
||||||
import { Key, RouteOff, User, Lock, Unlock } from "lucide-react";
|
import { Key, RouteOff, User, Lock, Unlock, ArrowUpRight } from "lucide-react";
|
||||||
|
import Link from "next/link";
|
||||||
|
|
||||||
export default function GeneralPage() {
|
export default function GeneralPage() {
|
||||||
const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false);
|
const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false);
|
||||||
@@ -294,7 +295,22 @@ export default function GeneralPage() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
accessorKey: "resourceName",
|
||||||
|
header: t("resource"),
|
||||||
|
cell: ({ row }) => {
|
||||||
|
return (
|
||||||
|
<Link
|
||||||
|
href={`/${row.original.orgId}/settings/resources/${row.original.resourceNiceId}`}
|
||||||
|
>
|
||||||
|
<Button variant="outline" size="sm" className="text-xs h-6">
|
||||||
|
{row.original.resourceName}
|
||||||
|
<ArrowUpRight className="ml-2 h-3 w-3" />
|
||||||
|
</Button>
|
||||||
|
</Link>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
accessorKey: "host",
|
accessorKey: "host",
|
||||||
header: ({ column }) => {
|
header: ({ column }) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user