@oneuptime/common 10.2.4 → 10.2.7

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 (59) hide show
  1. package/Models/DatabaseModels/Service.ts +26 -0
  2. package/Server/API/GlobalConfigAPI.ts +13 -16
  3. package/Server/Infrastructure/Postgres/SchemaMigrations/1778582583897-MigrationName.ts +15 -0
  4. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  5. package/Server/Services/OpenTelemetryIngestService.ts +15 -0
  6. package/Server/Services/ServiceService.ts +37 -0
  7. package/Server/Types/Database/QueryHelper.ts +38 -0
  8. package/Server/Types/Database/QueryUtil.ts +77 -0
  9. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +52 -0
  10. package/Types/BaseDatabase/MultiSearch.ts +53 -0
  11. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
  12. package/Types/Dashboard/DashboardComponents/DashboardChartComponent.ts +2 -0
  13. package/Types/JSON.ts +3 -0
  14. package/Types/SerializableObjectDictionary.ts +2 -0
  15. package/UI/Components/Header/ProjectPicker/ProjectPicker.tsx +11 -6
  16. package/UI/Components/LogsViewer/components/ColumnSelector.tsx +58 -4
  17. package/UI/Components/ModelTable/BaseModelTable.tsx +1026 -10
  18. package/UI/Components/ModelTable/TableView.tsx +58 -32
  19. package/UI/Utils/GlobalConfig.ts +55 -0
  20. package/Utils/Dashboard/Components/DashboardChartComponent.ts +11 -0
  21. package/build/dist/Models/DatabaseModels/Service.js +28 -0
  22. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  23. package/build/dist/Server/API/GlobalConfigAPI.js +10 -16
  24. package/build/dist/Server/API/GlobalConfigAPI.js.map +1 -1
  25. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778582583897-MigrationName.js +12 -0
  26. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778582583897-MigrationName.js.map +1 -0
  27. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  28. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  29. package/build/dist/Server/Services/OpenTelemetryIngestService.js +11 -0
  30. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  31. package/build/dist/Server/Services/ServiceService.js +34 -0
  32. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  33. package/build/dist/Server/Types/Database/QueryHelper.js +33 -0
  34. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  35. package/build/dist/Server/Types/Database/QueryUtil.js +64 -0
  36. package/build/dist/Server/Types/Database/QueryUtil.js.map +1 -1
  37. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +44 -0
  38. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  39. package/build/dist/Types/BaseDatabase/MultiSearch.js +44 -0
  40. package/build/dist/Types/BaseDatabase/MultiSearch.js.map +1 -0
  41. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  42. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  43. package/build/dist/Types/JSON.js +1 -0
  44. package/build/dist/Types/JSON.js.map +1 -1
  45. package/build/dist/Types/SerializableObjectDictionary.js +2 -0
  46. package/build/dist/Types/SerializableObjectDictionary.js.map +1 -1
  47. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPicker.js +2 -2
  48. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPicker.js.map +1 -1
  49. package/build/dist/UI/Components/LogsViewer/components/ColumnSelector.js +33 -3
  50. package/build/dist/UI/Components/LogsViewer/components/ColumnSelector.js.map +1 -1
  51. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +618 -12
  52. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  53. package/build/dist/UI/Components/ModelTable/TableView.js +25 -18
  54. package/build/dist/UI/Components/ModelTable/TableView.js.map +1 -1
  55. package/build/dist/UI/Utils/GlobalConfig.js +38 -0
  56. package/build/dist/UI/Utils/GlobalConfig.js.map +1 -0
  57. package/build/dist/Utils/Dashboard/Components/DashboardChartComponent.js +9 -0
  58. package/build/dist/Utils/Dashboard/Components/DashboardChartComponent.js.map +1 -1
  59. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import React, { useMemo, useState, } from "react";
2
- import { DEFAULT_LOGS_TABLE_COLUMNS, normalizeLogsTableColumns, } from "../types";
2
+ import { DEFAULT_LOGS_TABLE_COLUMNS, getLogsAttributeColumnId, normalizeLogsTableColumns, } from "../types";
3
3
  import useComponentOutsideClick from "../../../Types/UseComponentOutsideClick";
4
4
  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";
5
5
  const actionButtonClassName = "rounded-md px-2 py-1 text-xs font-medium text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700";
@@ -34,6 +34,18 @@ const ColumnSelector = (props) => {
34
34
  return column.label.toLowerCase().includes(normalizedSearchQuery);
35
35
  });
36
36
  }, [props.availableColumns, searchQuery, selectedColumnIds]);
37
+ const trimmedAttributeKey = searchQuery.trim();
38
+ const customAttributeColumnId = trimmedAttributeKey
39
+ ? getLogsAttributeColumnId(trimmedAttributeKey)
40
+ : "";
41
+ const isCustomAttributeAlreadySelected = customAttributeColumnId !== "" &&
42
+ selectedColumnIds.includes(customAttributeColumnId);
43
+ const isCustomAttributeAlreadyAvailable = availableColumns.some((column) => {
44
+ return column.id === customAttributeColumnId;
45
+ });
46
+ const canAddCustomAttribute = trimmedAttributeKey !== "" &&
47
+ !isCustomAttributeAlreadySelected &&
48
+ !isCustomAttributeAlreadyAvailable;
37
49
  const updateColumns = (columns) => {
38
50
  props.onChange(normalizeLogsTableColumns(columns));
39
51
  };
@@ -100,9 +112,27 @@ const ColumnSelector = (props) => {
100
112
  React.createElement("p", { className: "text-[11px] font-semibold uppercase tracking-wider text-gray-400" }, "Available"),
101
113
  React.createElement("input", { value: searchQuery, onChange: (event) => {
102
114
  setSearchQuery(event.target.value);
103
- }, placeholder: "Search columns", className: "w-40 rounded-md border border-gray-200 px-2 py-1 text-xs text-gray-600 focus:border-indigo-300 focus:outline-none focus:ring-2 focus:ring-indigo-100" })),
115
+ }, onKeyDown: (event) => {
116
+ if (event.key === "Enter" && canAddCustomAttribute) {
117
+ event.preventDefault();
118
+ addColumn(customAttributeColumnId);
119
+ setSearchQuery("");
120
+ }
121
+ }, placeholder: "Search or type attribute", className: "w-48 rounded-md border border-gray-200 px-2 py-1 text-xs text-gray-600 focus:border-indigo-300 focus:outline-none focus:ring-2 focus:ring-indigo-100" })),
104
122
  React.createElement("div", { className: "max-h-72 space-y-2 overflow-y-auto pr-1" },
105
- availableColumns.length === 0 && (React.createElement("div", { className: "rounded-md border border-dashed border-gray-200 px-3 py-4 text-sm text-gray-500" }, "No matching columns available.")),
123
+ canAddCustomAttribute && (React.createElement("div", { className: "flex items-center justify-between rounded-md border border-dashed border-indigo-200 bg-indigo-50/50 px-3 py-2" },
124
+ React.createElement("div", { className: "min-w-0 flex-1" },
125
+ React.createElement("p", { className: "truncate text-sm text-gray-700" },
126
+ React.createElement("span", { className: "text-gray-500" }, "Attribute: "),
127
+ React.createElement("span", { className: "font-mono" }, trimmedAttributeKey)),
128
+ React.createElement("p", { className: "text-[11px] text-gray-500" }, "Add as a column to show this attribute's value.")),
129
+ React.createElement("button", { type: "button", className: "ml-3 rounded-md px-2 py-1 text-xs font-medium text-indigo-600 transition-colors hover:bg-indigo-100 hover:text-indigo-700", onClick: () => {
130
+ addColumn(customAttributeColumnId);
131
+ setSearchQuery("");
132
+ } }, "Add attribute"))),
133
+ availableColumns.length === 0 && !canAddCustomAttribute && (React.createElement("div", { className: "rounded-md border border-dashed border-gray-200 px-3 py-4 text-sm text-gray-500" }, trimmedAttributeKey
134
+ ? "No matching columns available."
135
+ : "Type an attribute name above to add it as a column.")),
106
136
  availableColumns.map((column) => {
107
137
  return (React.createElement("div", { key: column.id, className: "flex items-center justify-between rounded-md border border-gray-100 px-3 py-2" },
108
138
  React.createElement("span", { className: "min-w-0 truncate text-sm text-gray-700" }, column.label),
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSelector.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/ColumnSelector.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ColumnSelector.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/ColumnSelector.tsx"],"names":[],"mappings":"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"}