@oneuptime/common 10.0.27 → 10.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/Models/DatabaseModels/Index.ts +2 -0
  2. package/Models/DatabaseModels/LogSavedView.ts +466 -0
  3. package/Server/API/TelemetryAPI.ts +1 -1
  4. package/Server/Infrastructure/Postgres/SchemaMigrations/1772355000000-AddLogSavedView.ts +48 -0
  5. package/Server/Infrastructure/Postgres/SchemaMigrations/1773344537755-MigrationName.ts +91 -0
  6. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
  7. package/Server/Services/LogAggregationService.ts +1 -1
  8. package/Server/Services/LogSavedViewService.ts +109 -0
  9. package/Server/Utils/Express.ts +1 -0
  10. package/Server/Utils/OpenAPI.ts +28 -0
  11. package/Server/Utils/StartServer.ts +20 -1
  12. package/UI/Components/LogsViewer/LogsViewer.tsx +104 -1
  13. package/UI/Components/LogsViewer/components/ColumnSelector.tsx +270 -0
  14. package/UI/Components/LogsViewer/components/FacetSection.tsx +45 -7
  15. package/UI/Components/LogsViewer/components/LiveLogsToggle.tsx +3 -3
  16. package/UI/Components/LogsViewer/components/LogTimeRangePicker.tsx +2 -2
  17. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +46 -1
  18. package/UI/Components/LogsViewer/components/LogsFilterCard.tsx +3 -3
  19. package/UI/Components/LogsViewer/components/LogsTable.tsx +288 -103
  20. package/UI/Components/LogsViewer/components/LogsViewerToolbar.tsx +53 -11
  21. package/UI/Components/LogsViewer/components/SavedViewsDropdown.tsx +175 -0
  22. package/UI/Components/LogsViewer/types.ts +94 -0
  23. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  24. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  25. package/build/dist/Models/DatabaseModels/LogSavedView.js +496 -0
  26. package/build/dist/Models/DatabaseModels/LogSavedView.js.map +1 -0
  27. package/build/dist/Server/API/TelemetryAPI.js +1 -1
  28. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  29. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1772355000000-AddLogSavedView.js +44 -0
  30. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1772355000000-AddLogSavedView.js.map +1 -0
  31. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1773344537755-MigrationName.js +38 -0
  32. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1773344537755-MigrationName.js.map +1 -0
  33. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
  34. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  35. package/build/dist/Server/Services/LogAggregationService.js +1 -1
  36. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  37. package/build/dist/Server/Services/LogSavedViewService.js +82 -0
  38. package/build/dist/Server/Services/LogSavedViewService.js.map +1 -0
  39. package/build/dist/Server/Utils/Express.js +1 -0
  40. package/build/dist/Server/Utils/Express.js.map +1 -1
  41. package/build/dist/Server/Utils/OpenAPI.js +24 -0
  42. package/build/dist/Server/Utils/OpenAPI.js.map +1 -1
  43. package/build/dist/Server/Utils/StartServer.js +17 -2
  44. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  45. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +64 -5
  46. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  47. package/build/dist/UI/Components/LogsViewer/components/ColumnSelector.js +115 -0
  48. package/build/dist/UI/Components/LogsViewer/components/ColumnSelector.js.map +1 -0
  49. package/build/dist/UI/Components/LogsViewer/components/FacetSection.js +26 -6
  50. package/build/dist/UI/Components/LogsViewer/components/FacetSection.js.map +1 -1
  51. package/build/dist/UI/Components/LogsViewer/components/LiveLogsToggle.js +3 -3
  52. package/build/dist/UI/Components/LogsViewer/components/LiveLogsToggle.js.map +1 -1
  53. package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js +2 -2
  54. package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js.map +1 -1
  55. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +27 -13
  56. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  57. package/build/dist/UI/Components/LogsViewer/components/LogsFilterCard.js +3 -3
  58. package/build/dist/UI/Components/LogsViewer/components/LogsFilterCard.js.map +1 -1
  59. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +118 -49
  60. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
  61. package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js +18 -11
  62. package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js.map +1 -1
  63. package/build/dist/UI/Components/LogsViewer/components/SavedViewsDropdown.js +58 -0
  64. package/build/dist/UI/Components/LogsViewer/components/SavedViewsDropdown.js.map +1 -0
  65. package/build/dist/UI/Components/LogsViewer/types.js +60 -1
  66. package/build/dist/UI/Components/LogsViewer/types.js.map +1 -1
  67. package/package.json +2 -2
@@ -7,6 +7,7 @@ import { getSeverityTheme } from "./severityTheme";
7
7
  import SortOrder from "../../../../Types/BaseDatabase/SortOrder";
8
8
  import Icon from "../../Icon/Icon";
9
9
  import IconProp from "../../../../Types/Icon/IconProp";
10
+ import { getLogsAttributeKeyFromColumnId, isLogsAttributeColumnId, normalizeLogsTableColumns, } from "../types";
10
11
  export const resolveLogIdentifier = (log, index) => {
11
12
  const possibleIds = [
12
13
  log.id,
@@ -28,10 +29,30 @@ export const resolveLogIdentifier = (log, index) => {
28
29
  }
29
30
  return `log-row-${index}`;
30
31
  };
32
+ const stringifyLogValue = (value) => {
33
+ if (value === undefined || value === null) {
34
+ return "-";
35
+ }
36
+ if (typeof value === "string") {
37
+ return value || "-";
38
+ }
39
+ if (typeof value === "number" || typeof value === "boolean") {
40
+ return value.toString();
41
+ }
42
+ try {
43
+ return JSON.stringify(value);
44
+ }
45
+ catch (_a) {
46
+ return String(value);
47
+ }
48
+ };
31
49
  const LogsTable = (props) => {
32
50
  const showEmptyState = !props.isLoading && props.logs.length === 0;
33
51
  const activeSortField = props.sortField;
34
52
  const activeSortOrder = props.sortOrder || SortOrder.Descending;
53
+ const selectedColumns = normalizeLogsTableColumns(props.selectedColumns);
54
+ const showTraceColumn = selectedColumns.includes("traceId");
55
+ const showSpanColumn = selectedColumns.includes("spanId");
35
56
  const resolveSortIcon = (field) => {
36
57
  if (activeSortField !== field) {
37
58
  return IconProp.ArrowUpDown;
@@ -47,36 +68,54 @@ const LogsTable = (props) => {
47
68
  }
48
69
  return `${base} text-gray-300`;
49
70
  };
71
+ const getHeaderCell = (columnId) => {
72
+ if (columnId === "time") {
73
+ return (React.createElement("th", { scope: "col", className: "px-4 py-2.5", key: columnId },
74
+ React.createElement("button", { type: "button", className: `flex items-center gap-2 text-left font-semibold tracking-wider text-gray-500 transition-colors hover:text-gray-700 focus:outline-none ${activeSortField === "time" ? "text-gray-700" : ""}`, onClick: () => {
75
+ var _a;
76
+ (_a = props.onSortChange) === null || _a === void 0 ? void 0 : _a.call(props, "time");
77
+ }, "aria-sort": activeSortField === "time"
78
+ ? activeSortOrder === SortOrder.Descending
79
+ ? "descending"
80
+ : "ascending"
81
+ : "none" },
82
+ React.createElement("span", null, "Time"),
83
+ React.createElement(Icon, { icon: resolveSortIcon("time"), className: resolveSortIconClass("time"), "aria-hidden": "true" }))));
84
+ }
85
+ if (columnId === "severity") {
86
+ return (React.createElement("th", { scope: "col", className: "px-4 py-2.5", key: columnId },
87
+ React.createElement("button", { type: "button", className: `flex items-center gap-2 text-left font-semibold tracking-wider text-gray-500 transition-colors hover:text-gray-700 focus:outline-none ${activeSortField === "severityText" ? "text-gray-700" : ""}`, onClick: () => {
88
+ var _a;
89
+ (_a = props.onSortChange) === null || _a === void 0 ? void 0 : _a.call(props, "severityText");
90
+ }, "aria-sort": activeSortField === "severityText"
91
+ ? activeSortOrder === SortOrder.Descending
92
+ ? "descending"
93
+ : "ascending"
94
+ : "none" },
95
+ React.createElement("span", null, "Severity"),
96
+ React.createElement(Icon, { icon: resolveSortIcon("severityText"), className: resolveSortIconClass("severityText"), "aria-hidden": "true" }))));
97
+ }
98
+ if (columnId === "service") {
99
+ return (React.createElement("th", { scope: "col", className: "px-4 py-2.5", key: columnId }, "Service"));
100
+ }
101
+ if (columnId === "message") {
102
+ return (React.createElement("th", { scope: "col", className: "px-4 py-2.5", key: columnId }, "Message"));
103
+ }
104
+ if (columnId === "traceId") {
105
+ return (React.createElement("th", { scope: "col", className: "px-4 py-2.5", key: columnId }, "Trace ID"));
106
+ }
107
+ if (columnId === "spanId") {
108
+ return (React.createElement("th", { scope: "col", className: "px-4 py-2.5", key: columnId }, "Span ID"));
109
+ }
110
+ return (React.createElement("th", { scope: "col", className: "px-4 py-2.5", key: columnId }, getLogsAttributeKeyFromColumnId(columnId) || columnId));
111
+ };
50
112
  return (React.createElement("div", { className: "relative" },
51
113
  React.createElement("div", { className: "overflow-x-auto bg-white" },
52
114
  React.createElement("table", { className: "min-w-full" },
53
115
  React.createElement("thead", { className: "bg-gray-50/80" },
54
- React.createElement("tr", { className: "text-left text-[11px] font-semibold uppercase tracking-wider text-gray-500" },
55
- React.createElement("th", { scope: "col", className: "px-4 py-2.5" },
56
- React.createElement("button", { type: "button", className: `flex items-center gap-2 text-left font-semibold tracking-wider text-gray-500 transition-colors hover:text-gray-700 focus:outline-none ${activeSortField === "time" ? "text-gray-700" : ""}`, onClick: () => {
57
- var _a;
58
- (_a = props.onSortChange) === null || _a === void 0 ? void 0 : _a.call(props, "time");
59
- }, "aria-sort": activeSortField === "time"
60
- ? activeSortOrder === SortOrder.Descending
61
- ? "descending"
62
- : "ascending"
63
- : "none" },
64
- React.createElement("span", null, "Time"),
65
- React.createElement(Icon, { icon: resolveSortIcon("time"), className: resolveSortIconClass("time"), "aria-hidden": "true" }))),
66
- React.createElement("th", { scope: "col", className: "px-4 py-2.5" },
67
- React.createElement("span", null, "Service")),
68
- React.createElement("th", { scope: "col", className: "px-4 py-2.5" },
69
- React.createElement("button", { type: "button", className: `flex items-center gap-2 text-left font-semibold tracking-wider text-gray-500 transition-colors hover:text-gray-700 focus:outline-none ${activeSortField === "severityText" ? "text-gray-700" : ""}`, onClick: () => {
70
- var _a;
71
- (_a = props.onSortChange) === null || _a === void 0 ? void 0 : _a.call(props, "severityText");
72
- }, "aria-sort": activeSortField === "severityText"
73
- ? activeSortOrder === SortOrder.Descending
74
- ? "descending"
75
- : "ascending"
76
- : "none" },
77
- React.createElement("span", null, "Severity"),
78
- React.createElement(Icon, { icon: resolveSortIcon("severityText"), className: resolveSortIconClass("severityText"), "aria-hidden": "true" }))),
79
- React.createElement("th", { scope: "col", className: "px-4 py-2.5" }, "Message"))),
116
+ React.createElement("tr", { className: "text-left text-[11px] font-semibold uppercase tracking-wider text-gray-500" }, selectedColumns.map((columnId) => {
117
+ return getHeaderCell(columnId);
118
+ }))),
80
119
  React.createElement("tbody", { className: "divide-y divide-gray-100" }, props.logs.map((log, index) => {
81
120
  var _a, _b, _c, _d;
82
121
  const rowId = resolveLogIdentifier(log, index);
@@ -95,30 +134,60 @@ const LogsTable = (props) => {
95
134
  props.onRowClick(log, rowId);
96
135
  }, className: `group cursor-pointer align-top transition-colors hover:bg-gray-50/70 border-l-[3px] ${severityTheme.borderClass} ${isSelected
97
136
  ? "bg-indigo-50/50 ring-1 ring-inset ring-indigo-200"
98
- : ""}`, "aria-selected": isSelected, "aria-expanded": isSelected },
99
- React.createElement("td", { className: "whitespace-nowrap px-4 py-2 text-[13px] font-mono text-gray-600" }, log.time
100
- ? OneUptimeDate.getDateAsUserFriendlyFormattedString(log.time)
101
- : "-"),
102
- React.createElement("td", { className: "px-4 py-2" },
103
- React.createElement("div", { className: "flex items-center gap-3 text-sm text-gray-700" },
104
- React.createElement("span", { className: "h-2.5 w-2.5 flex-none rounded-full shadow-sm", style: { backgroundColor: serviceColor }, "aria-hidden": "true" }),
105
- React.createElement("span", { className: "truncate", title: serviceName }, serviceName))),
106
- React.createElement("td", { className: "px-4 py-2" },
107
- React.createElement(SeverityBadge, { severity: log.severityText })),
108
- React.createElement("td", { className: "px-4 py-2" },
109
- React.createElement("div", { className: "flex items-start justify-between gap-3" },
110
- React.createElement("div", { className: "flex min-w-0 flex-1 flex-col gap-1" },
111
- React.createElement("p", { className: "whitespace-pre-wrap break-words text-sm text-gray-800", title: message }, message || "-"),
112
- (traceId || spanId) && (React.createElement("div", { className: "flex flex-wrap gap-3 text-[11px] tracking-wide text-gray-400" },
113
- traceId && React.createElement("span", null,
114
- "Trace: ",
115
- traceId),
116
- spanId && React.createElement("span", null,
117
- "Span: ",
118
- spanId)))),
119
- React.createElement(CopyTextButton, { textToBeCopied: message, size: "xs", variant: "ghost", iconOnly: true, title: "Copy log message", className: "opacity-0 group-hover:opacity-100 transition-opacity" })))),
137
+ : ""}`, "aria-selected": isSelected, "aria-expanded": isSelected }, selectedColumns.map((columnId) => {
138
+ if (columnId === "time") {
139
+ return (React.createElement("td", { className: "whitespace-nowrap px-4 py-2 text-[13px] font-mono text-gray-600", key: columnId }, log.time
140
+ ? OneUptimeDate.getDateAsUserFriendlyFormattedString(log.time)
141
+ : "-"));
142
+ }
143
+ if (columnId === "service") {
144
+ return (React.createElement("td", { className: "px-4 py-2", key: columnId },
145
+ React.createElement("div", { className: "flex items-center gap-3 text-sm text-gray-700" },
146
+ React.createElement("span", { className: "h-2.5 w-2.5 flex-none rounded-full shadow-sm", style: { backgroundColor: serviceColor }, "aria-hidden": "true" }),
147
+ React.createElement("span", { className: "truncate", title: serviceName }, serviceName))));
148
+ }
149
+ if (columnId === "severity") {
150
+ return (React.createElement("td", { className: "px-4 py-2", key: columnId },
151
+ React.createElement(SeverityBadge, { severity: log.severityText })));
152
+ }
153
+ if (columnId === "message") {
154
+ return (React.createElement("td", { className: "px-4 py-2", key: columnId },
155
+ React.createElement("div", { className: "flex items-start justify-between gap-3" },
156
+ React.createElement("div", { className: "flex min-w-0 flex-1 flex-col gap-1" },
157
+ React.createElement("p", { className: "whitespace-pre-wrap break-words text-sm text-gray-800", title: message }, message || "-"),
158
+ ((traceId && !showTraceColumn) ||
159
+ (spanId && !showSpanColumn)) && (React.createElement("div", { className: "flex flex-wrap gap-3 text-[11px] tracking-wide text-gray-400" },
160
+ traceId && !showTraceColumn && (React.createElement("span", null,
161
+ "Trace: ",
162
+ traceId)),
163
+ spanId && !showSpanColumn && (React.createElement("span", null,
164
+ "Span: ",
165
+ spanId))))),
166
+ React.createElement(CopyTextButton, { textToBeCopied: message, size: "xs", variant: "ghost", iconOnly: true, title: "Copy log message", className: "opacity-0 transition-opacity group-hover:opacity-100" }))));
167
+ }
168
+ if (columnId === "traceId") {
169
+ return (React.createElement("td", { className: "max-w-xs px-4 py-2 text-sm text-gray-600", key: columnId },
170
+ React.createElement("span", { className: "block truncate font-mono", title: traceId }, traceId || "-")));
171
+ }
172
+ if (columnId === "spanId") {
173
+ return (React.createElement("td", { className: "max-w-xs px-4 py-2 text-sm text-gray-600", key: columnId },
174
+ React.createElement("span", { className: "block truncate font-mono", title: spanId }, spanId || "-")));
175
+ }
176
+ if (isLogsAttributeColumnId(columnId)) {
177
+ const attributeKey = getLogsAttributeKeyFromColumnId(columnId);
178
+ const attributeValue = attributeKey &&
179
+ typeof log.attributes === "object" &&
180
+ log.attributes
181
+ ? log.attributes[attributeKey]
182
+ : undefined;
183
+ const displayValue = stringifyLogValue(attributeValue);
184
+ return (React.createElement("td", { className: "max-w-xs px-4 py-2 text-sm text-gray-600", key: columnId },
185
+ React.createElement("span", { className: "block truncate", title: displayValue }, displayValue)));
186
+ }
187
+ return (React.createElement("td", { className: "px-4 py-2 text-sm text-gray-600", key: columnId }, "-"));
188
+ })),
120
189
  isSelected && props.renderExpandedContent && (React.createElement("tr", { className: "bg-white" },
121
- React.createElement("td", { colSpan: 4, className: "px-6 pb-6 pt-3" }, props.renderExpandedContent(log))))));
190
+ React.createElement("td", { colSpan: selectedColumns.length, className: "px-6 pb-6 pt-3" }, props.renderExpandedContent(log))))));
122
191
  })))),
123
192
  props.isLoading && (React.createElement("div", { className: "absolute inset-0 flex items-center justify-center bg-white/80 backdrop-blur-sm" },
124
193
  React.createElement(ComponentLoader, null))),
@@ -1 +1 @@
1
- {"version":3,"file":"LogsTable.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/LogsTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LogsTable.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/LogsTable.tsx"],"names":[],"mappings":"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"}
@@ -1,21 +1,28 @@
1
1
  import React from "react";
2
2
  import LiveLogsToggle from "./LiveLogsToggle";
3
3
  import LogTimeRangePicker from "./LogTimeRangePicker";
4
+ import ColumnSelector from "./ColumnSelector";
5
+ import SavedViewsDropdown from "./SavedViewsDropdown";
4
6
  const LogsViewerToolbar = (props) => {
5
7
  const { currentPage, totalPages } = props;
6
8
  const hasPaginationSummary = Boolean(currentPage && totalPages && totalPages > 0);
7
9
  return (React.createElement("div", { className: `flex items-center justify-between gap-3 ${props.className || ""}` },
8
- React.createElement("div", { className: "flex flex-wrap items-center gap-3 text-xs text-gray-500" },
9
- React.createElement("span", { className: "font-medium text-gray-700" },
10
- props.resultCount.toLocaleString(),
11
- " result",
12
- props.resultCount === 1 ? "" : "s"),
13
- hasPaginationSummary && (React.createElement("span", { className: "text-gray-400" },
14
- "Page ",
15
- currentPage,
16
- " of ",
17
- totalPages))),
18
- React.createElement("div", { className: "flex items-center gap-3" },
10
+ React.createElement("div", { className: "flex flex-wrap items-center gap-3" },
11
+ props.savedViews && props.onSavedViewSelect && (React.createElement(SavedViewsDropdown, { savedViews: props.savedViews, selectedSavedViewId: props.selectedSavedViewId, onSelect: props.onSavedViewSelect, onCreate: props.onCreateSavedView, onEdit: props.onEditSavedView, onDelete: props.onDeleteSavedView, onUpdateCurrent: props.onUpdateCurrentSavedView })),
12
+ React.createElement("div", { className: "flex items-center gap-2 text-xs text-gray-500" },
13
+ React.createElement("span", { className: "font-medium text-gray-700" },
14
+ props.resultCount.toLocaleString(),
15
+ " result",
16
+ props.resultCount === 1 ? "" : "s"),
17
+ hasPaginationSummary && (React.createElement("span", { className: "text-gray-400" },
18
+ "Page ",
19
+ currentPage,
20
+ " of ",
21
+ totalPages)))),
22
+ React.createElement("div", { className: "flex flex-wrap items-center justify-end gap-2" },
23
+ props.availableColumns &&
24
+ props.selectedColumns &&
25
+ props.onSelectedColumnsChange && (React.createElement(ColumnSelector, { availableColumns: props.availableColumns, selectedColumns: props.selectedColumns, onChange: props.onSelectedColumnsChange })),
19
26
  props.timeRange && props.onTimeRangeChange && (React.createElement(LogTimeRangePicker, { value: props.timeRange, onChange: props.onTimeRangeChange })),
20
27
  props.liveOptions && React.createElement(LiveLogsToggle, Object.assign({}, props.liveOptions)))));
21
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"LogsViewerToolbar.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/LogsViewerToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAC/D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AActD,MAAM,iBAAiB,GAA8C,CACnE,KAA6B,EACf,EAAE;IAChB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC1C,MAAM,oBAAoB,GAAY,OAAO,CAC3C,WAAW,IAAI,UAAU,IAAI,UAAU,GAAG,CAAC,CAC5C,CAAC;IAEF,OAAO,CACL,6BACE,SAAS,EAAE,2CAA2C,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE;QAE7E,6BAAK,SAAS,EAAC,yDAAyD;YACtE,8BAAM,SAAS,EAAC,2BAA2B;gBACxC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE;;gBAClC,KAAK,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAC9B;YACN,oBAAoB,IAAI,CACvB,8BAAM,SAAS,EAAC,eAAe;;gBACvB,WAAW;;gBAAM,UAAU,CAC5B,CACR,CACG;QAEN,6BAAK,SAAS,EAAC,yBAAyB;YACrC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAC7C,oBAAC,kBAAkB,IACjB,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,QAAQ,EAAE,KAAK,CAAC,iBAAiB,GACjC,CACH;YAEA,KAAK,CAAC,WAAW,IAAI,oBAAC,cAAc,oBAAK,KAAK,CAAC,WAAW,EAAI,CAC3D,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"LogsViewerToolbar.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/LogsViewerToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAC/D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AA4BtD,MAAM,iBAAiB,GAA8C,CACnE,KAA6B,EACf,EAAE;IAChB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC1C,MAAM,oBAAoB,GAAY,OAAO,CAC3C,WAAW,IAAI,UAAU,IAAI,UAAU,GAAG,CAAC,CAC5C,CAAC;IAEF,OAAO,CACL,6BACE,SAAS,EAAE,2CAA2C,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE;QAG7E,6BAAK,SAAS,EAAC,mCAAmC;YAC/C,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAC9C,oBAAC,kBAAkB,IACjB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAC9C,QAAQ,EAAE,KAAK,CAAC,iBAAiB,EACjC,QAAQ,EAAE,KAAK,CAAC,iBAAiB,EACjC,MAAM,EAAE,KAAK,CAAC,eAAe,EAC7B,QAAQ,EAAE,KAAK,CAAC,iBAAiB,EACjC,eAAe,EAAE,KAAK,CAAC,wBAAwB,GAC/C,CACH;YAED,6BAAK,SAAS,EAAC,+CAA+C;gBAC5D,8BAAM,SAAS,EAAC,2BAA2B;oBACxC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE;;oBAClC,KAAK,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAC9B;gBACN,oBAAoB,IAAI,CACvB,8BAAM,SAAS,EAAC,eAAe;;oBACvB,WAAW;;oBAAM,UAAU,CAC5B,CACR,CACG,CACF;QAGN,6BAAK,SAAS,EAAC,+CAA+C;YAC3D,KAAK,CAAC,gBAAgB;gBACrB,KAAK,CAAC,eAAe;gBACrB,KAAK,CAAC,uBAAuB,IAAI,CAC/B,oBAAC,cAAc,IACb,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,QAAQ,EAAE,KAAK,CAAC,uBAAuB,GACvC,CACH;YAEF,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAC7C,oBAAC,kBAAkB,IACjB,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,QAAQ,EAAE,KAAK,CAAC,iBAAiB,GACjC,CACH;YAEA,KAAK,CAAC,WAAW,IAAI,oBAAC,cAAc,oBAAK,KAAK,CAAC,WAAW,EAAI,CAC3D,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,58 @@
1
+ import React from "react";
2
+ import useComponentOutsideClick from "../../../Types/UseComponentOutsideClick";
3
+ const triggerButtonClassName = "inline-flex items-center gap-1.5 rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-xs font-medium text-gray-700 shadow-sm transition-colors hover:border-gray-300 hover:bg-gray-50";
4
+ const SavedViewsDropdown = (props) => {
5
+ const { ref, isComponentVisible, setIsComponentVisible } = useComponentOutsideClick(false);
6
+ const selectedView = props.savedViews.find((view) => {
7
+ return view.id === props.selectedSavedViewId;
8
+ });
9
+ return (React.createElement("div", { className: "relative", ref: ref },
10
+ React.createElement("button", { type: "button", className: triggerButtonClassName, onClick: () => {
11
+ setIsComponentVisible(!isComponentVisible);
12
+ }, "aria-haspopup": "dialog", "aria-expanded": isComponentVisible },
13
+ React.createElement("span", { className: "max-w-40 truncate" }, (selectedView === null || selectedView === void 0 ? void 0 : selectedView.name) || "Saved Views"),
14
+ React.createElement("span", { className: "text-xs text-gray-400" }, props.savedViews.length.toLocaleString())),
15
+ isComponentVisible && (React.createElement("div", { className: "absolute left-0 z-20 mt-2 w-72 rounded-lg border border-gray-200 bg-white shadow-xl" },
16
+ React.createElement("div", { className: "max-h-72 overflow-y-auto py-1" },
17
+ props.savedViews.length === 0 && (React.createElement("div", { className: "px-3 py-6 text-center text-xs text-gray-400" }, "No saved views yet.")),
18
+ props.savedViews.map((view) => {
19
+ const isSelected = view.id === props.selectedSavedViewId;
20
+ return (React.createElement("div", { key: view.id, className: `group flex items-center justify-between gap-2 px-3 py-1.5 ${isSelected ? "bg-indigo-50" : "hover:bg-gray-50"}` },
21
+ React.createElement("button", { type: "button", className: "flex min-w-0 flex-1 items-center gap-2 text-left", onClick: () => {
22
+ props.onSelect(view.id);
23
+ setIsComponentVisible(false);
24
+ } },
25
+ React.createElement("span", { className: "w-4 shrink-0 text-center text-xs" }, isSelected ? (React.createElement("span", { className: "text-indigo-600" }, "\u2713")) : ("")),
26
+ React.createElement("span", { className: `truncate text-sm ${isSelected
27
+ ? "font-medium text-indigo-700"
28
+ : "text-gray-700"}` }, view.name),
29
+ view.isDefault && (React.createElement("span", { className: "shrink-0 text-[10px] text-gray-400" }, "default"))),
30
+ React.createElement("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 group-hover:opacity-100" },
31
+ isSelected && props.onUpdateCurrent && (React.createElement("button", { type: "button", className: "rounded px-1.5 py-0.5 text-[11px] text-indigo-600 transition-colors hover:bg-indigo-100", onClick: (event) => {
32
+ var _a;
33
+ event.stopPropagation();
34
+ (_a = props.onUpdateCurrent) === null || _a === void 0 ? void 0 : _a.call(props);
35
+ setIsComponentVisible(false);
36
+ } }, "Update")),
37
+ props.onEdit && (React.createElement("button", { type: "button", className: "rounded px-1.5 py-0.5 text-[11px] text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700", onClick: (event) => {
38
+ var _a;
39
+ event.stopPropagation();
40
+ (_a = props.onEdit) === null || _a === void 0 ? void 0 : _a.call(props, view.id);
41
+ setIsComponentVisible(false);
42
+ } }, "Edit")),
43
+ props.onDelete && (React.createElement("button", { type: "button", className: "rounded px-1.5 py-0.5 text-[11px] text-red-500 transition-colors hover:bg-red-50 hover:text-red-600", onClick: (event) => {
44
+ var _a;
45
+ event.stopPropagation();
46
+ (_a = props.onDelete) === null || _a === void 0 ? void 0 : _a.call(props, view.id);
47
+ setIsComponentVisible(false);
48
+ } }, "Delete")))));
49
+ })),
50
+ props.onCreate && (React.createElement("div", { className: "border-t border-gray-100 px-3 py-2" },
51
+ React.createElement("button", { type: "button", className: "w-full rounded-md px-2 py-1.5 text-left text-xs font-medium text-indigo-600 transition-colors hover:bg-indigo-50", onClick: () => {
52
+ var _a;
53
+ (_a = props.onCreate) === null || _a === void 0 ? void 0 : _a.call(props);
54
+ setIsComponentVisible(false);
55
+ } }, "+ Save Current View")))))));
56
+ };
57
+ export default SavedViewsDropdown;
58
+ //# sourceMappingURL=SavedViewsDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SavedViewsDropdown.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/SavedViewsDropdown.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,61 @@
1
- export {};
1
+ export const LOGS_ATTRIBUTE_COLUMN_PREFIX = "attribute:";
2
+ export const DEFAULT_LOGS_TABLE_COLUMNS = [
3
+ "time",
4
+ "service",
5
+ "severity",
6
+ "message",
7
+ ];
8
+ export const CORE_LOGS_TABLE_COLUMN_OPTIONS = [
9
+ {
10
+ id: "time",
11
+ label: "Time",
12
+ },
13
+ {
14
+ id: "service",
15
+ label: "Service",
16
+ },
17
+ {
18
+ id: "severity",
19
+ label: "Severity",
20
+ },
21
+ {
22
+ id: "message",
23
+ label: "Message",
24
+ },
25
+ {
26
+ id: "traceId",
27
+ label: "Trace ID",
28
+ },
29
+ {
30
+ id: "spanId",
31
+ label: "Span ID",
32
+ },
33
+ ];
34
+ export const getLogsAttributeColumnId = (attributeKey) => {
35
+ return `${LOGS_ATTRIBUTE_COLUMN_PREFIX}${attributeKey}`;
36
+ };
37
+ export const isLogsAttributeColumnId = (columnId) => {
38
+ return columnId.startsWith(LOGS_ATTRIBUTE_COLUMN_PREFIX);
39
+ };
40
+ export const getLogsAttributeKeyFromColumnId = (columnId) => {
41
+ if (!isLogsAttributeColumnId(columnId)) {
42
+ return null;
43
+ }
44
+ return columnId.slice(LOGS_ATTRIBUTE_COLUMN_PREFIX.length) || null;
45
+ };
46
+ export const normalizeLogsTableColumns = (columns) => {
47
+ const sanitizedColumns = [];
48
+ const seen = new Set();
49
+ for (const columnId of columns || []) {
50
+ if (!columnId || seen.has(columnId)) {
51
+ continue;
52
+ }
53
+ seen.add(columnId);
54
+ sanitizedColumns.push(columnId);
55
+ }
56
+ if (sanitizedColumns.length === 0) {
57
+ return [...DEFAULT_LOGS_TABLE_COLUMNS];
58
+ }
59
+ return sanitizedColumns;
60
+ };
2
61
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../UI/Components/LogsViewer/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../UI/Components/LogsViewer/types.ts"],"names":[],"mappings":"AAsCA,MAAM,CAAC,MAAM,4BAA4B,GAAW,YAAY,CAAC;AAEjE,MAAM,CAAC,MAAM,0BAA0B,GAAkB;IACvD,MAAM;IACN,SAAS;IACT,UAAU;IACV,SAAS;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAiC;IAC1E;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;KACd;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;KAClB;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,UAAU;KAClB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,SAAS;KACjB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAqC,CACxE,YAAoB,EACZ,EAAE;IACV,OAAO,GAAG,4BAA4B,GAAG,YAAY,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAkC,CACpE,QAAgB,EACP,EAAE;IACX,OAAO,QAAQ,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAEvB,CAAC,QAAgB,EAAiB,EAAE;IACvD,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC,KAAK,CAAC,4BAA4B,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAEjB,CACnB,OAAyC,EAC1B,EAAE;IACjB,MAAM,gBAAgB,GAAkB,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAgB,IAAI,GAAG,EAAE,CAAC;IAEpC,KAAK,MAAM,QAAQ,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,SAAS;QACX,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,0BAA0B,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneuptime/common",
3
- "version": "10.0.27",
3
+ "version": "10.0.29",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -112,7 +112,7 @@
112
112
  "mermaid": "^11.12.2",
113
113
  "moment": "^2.30.1",
114
114
  "moment-timezone": "^0.5.45",
115
- "multer": "^2.0.2",
115
+ "multer": "^2.1.1",
116
116
  "node-cron": "^3.0.3",
117
117
  "nodemailer": "^7.0.7",
118
118
  "otpauth": "^9.3.1",