@oneuptime/common 12.0.19 → 12.0.21
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.
- package/Models/AnalyticsModels/ChangeEvent.ts +331 -0
- package/Models/AnalyticsModels/Index.ts +2 -0
- package/Server/API/EnterpriseLicenseAPI.ts +94 -19
- package/Server/EnvironmentConfig.ts +15 -5
- package/Server/Infrastructure/Postgres/SchemaMigrations/1789000000000-AddUserSlackAndMicrosoftTeams.ts +42 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +0 -2
- package/Server/Services/ChangeEventService.ts +11 -0
- package/Server/Services/EnterpriseLicenseService.ts +3 -3
- package/Server/Services/Index.ts +2 -0
- package/Server/Services/ProjectService.ts +104 -0
- package/Server/Utils/Attribution.ts +11 -11
- package/Server/Utils/Marketing/MarketingEventWebhook.ts +4 -5
- package/Server/Utils/Response.ts +2 -2
- package/Server/Utils/StartServer.ts +2 -2
- package/Server/Utils/Telemetry/ChangeEventRow.ts +228 -0
- package/Server/Views/Partials/AnalyticsConsent.ejs +441 -0
- package/Tests/App/Dashboard/AlertEpisodeViewFields.test.tsx +465 -0
- package/Tests/App/Dashboard/DashboardChartWidgetZoom.test.tsx +366 -0
- package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +408 -0
- package/Tests/App/Dashboard/EventOverlayHook.test.tsx +249 -0
- package/Tests/App/Dashboard/IncidentEpisodeViewFields.test.tsx +474 -0
- package/Tests/App/Dashboard/InvestigationArtifacts.test.tsx +315 -0
- package/Tests/App/Dashboard/InvestigationDrawer.test.tsx +258 -0
- package/Tests/App/Dashboard/MetricChartsCompare.test.tsx +171 -0
- package/Tests/App/Dashboard/MetricSeriesInvestigateMenu.test.tsx +368 -0
- package/Tests/App/Dashboard/MetricViewCompare.test.tsx +233 -0
- package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +763 -0
- package/Tests/Server/Infrastructure/Postgres/AddUserSlackAndMicrosoftTeamsMigration.test.ts +236 -0
- package/Tests/Server/Services/ProjectServiceChangePlan.test.ts +138 -0
- package/Tests/Server/Services/ProjectServiceCreateSubscriptionStarted.test.ts +516 -0
- package/Tests/Server/Utils/AI/SRE/Insights/Detectors/ExceptionIdentity.test.ts +224 -0
- package/Tests/Server/Utils/Attribution.test.ts +4 -5
- package/Tests/Server/Utils/Marketing/MarketingEventUtil.test.ts +2 -2
- package/Tests/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.test.ts +300 -0
- package/Tests/Server/Utils/ResponseRenderAnalytics.test.ts +53 -0
- package/Tests/Server/Views/AnalyticsConsentPartial.test.ts +241 -0
- package/Tests/UI/Components/Charts/ChartGhostSeries.test.tsx +103 -0
- package/Tests/UI/Components/Charts/ChartTooltipSorted.test.tsx +129 -0
- package/Tests/UI/Components/Charts/TooltipEntries.test.ts +191 -0
- package/Tests/UI/Components/Detail/DetailFieldErrors.test.tsx +347 -0
- package/Tests/UI/Components/Forms/BasicFormStepValidation.test.tsx +392 -0
- package/Tests/UI/Components/Forms/ValidationFormSteps.test.ts +549 -0
- package/Tests/Utils/EnterpriseLicenseSync.test.ts +562 -0
- package/Tests/Utils/Telemetry/CrossSignalScope.test.ts +13 -2
- package/Types/Analytics/RevenueEvent.ts +1 -0
- package/Types/AnalyticsDatabase/AnalyticsTableName.ts +7 -0
- package/Types/Marketing/Attribution.ts +9 -15
- package/Types/Marketing/MarketingEvent.ts +19 -12
- package/UI/Components/Charts/Area/AreaChart.tsx +23 -1
- package/UI/Components/Charts/Bar/BarChart.tsx +8 -1
- package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +16 -1
- package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +208 -97
- package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +26 -3
- package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +232 -118
- package/UI/Components/Charts/ChartLibrary/Utils/TooltipEntries.ts +120 -0
- package/UI/Components/Charts/Line/LineChart.tsx +23 -1
- package/UI/Components/Detail/Detail.tsx +18 -1
- package/Utils/EnterpriseLicense/EnterpriseLicenseSync.ts +244 -0
- package/Utils/Metrics/MetricExplorerUrl.ts +119 -5
- package/Utils/Telemetry/CrossSignalScope.ts +19 -10
- package/build/dist/Models/AnalyticsModels/ChangeEvent.js +298 -0
- package/build/dist/Models/AnalyticsModels/ChangeEvent.js.map +1 -0
- package/build/dist/Models/AnalyticsModels/Index.js +2 -0
- package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
- package/build/dist/Server/API/EnterpriseLicenseAPI.js +66 -12
- package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +14 -5
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789000000000-AddUserSlackAndMicrosoftTeams.js +39 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789000000000-AddUserSlackAndMicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +0 -2
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/ChangeEventService.js +9 -0
- package/build/dist/Server/Services/ChangeEventService.js.map +1 -0
- package/build/dist/Server/Services/EnterpriseLicenseService.js +3 -3
- package/build/dist/Server/Services/Index.js +2 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +88 -0
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Utils/Attribution.js +6 -6
- package/build/dist/Server/Utils/Marketing/MarketingEventWebhook.js +4 -5
- package/build/dist/Server/Utils/Marketing/MarketingEventWebhook.js.map +1 -1
- package/build/dist/Server/Utils/Response.js +2 -2
- package/build/dist/Server/Utils/Response.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +2 -2
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ChangeEventRow.js +150 -0
- package/build/dist/Server/Utils/Telemetry/ChangeEventRow.js.map +1 -0
- package/build/dist/Types/Analytics/RevenueEvent.js +1 -0
- package/build/dist/Types/Analytics/RevenueEvent.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +7 -0
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
- package/build/dist/Types/Marketing/Attribution.js +9 -15
- package/build/dist/Types/Marketing/Attribution.js.map +1 -1
- package/build/dist/Types/Marketing/MarketingEvent.js +12 -4
- package/build/dist/Types/Marketing/MarketingEvent.js.map +1 -1
- package/build/dist/UI/Components/Charts/Area/AreaChart.js +10 -2
- package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js +9 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +9 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +114 -51
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +35 -23
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +122 -55
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/TooltipEntries.js +86 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/TooltipEntries.js.map +1 -0
- package/build/dist/UI/Components/Charts/Line/LineChart.js +10 -2
- package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Detail/Detail.js +17 -1
- package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSync.js +174 -0
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSync.js.map +1 -0
- package/build/dist/Utils/Metrics/MetricExplorerUrl.js +81 -0
- package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -1
- package/build/dist/Utils/Telemetry/CrossSignalScope.js +14 -8
- package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
- package/package.json +1 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1788900000000-RedactStoredMonitorIngestSecrets.ts +0 -117
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788900000000-RedactStoredMonitorIngestSecrets.js +0 -106
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788900000000-RedactStoredMonitorIngestSecrets.js.map +0 -1
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import OneUptimeDate from "../../../Types/Date";
|
|
2
|
+
import ObjectID from "../../../Types/ObjectID";
|
|
3
|
+
/*
|
|
4
|
+
* Change-event ingest parsing + ClickHouse row building. Pure on purpose
|
|
5
|
+
* (no network, no request objects) so App/Tests can pin every validation
|
|
6
|
+
* rule without a server.
|
|
7
|
+
*/
|
|
8
|
+
/*
|
|
9
|
+
* Events whose source timestamp is outside this window are stamped with
|
|
10
|
+
* the ingestion time instead (original preserved in attributes). The
|
|
11
|
+
* table partitions by toYYYYMMDD(time), so a forged or garbage timestamp
|
|
12
|
+
* must not be allowed to create arbitrary partitions.
|
|
13
|
+
*/
|
|
14
|
+
export const MAX_CHANGE_EVENT_AGE_IN_DAYS = 366;
|
|
15
|
+
export const MAX_CHANGE_EVENT_FUTURE_SKEW_IN_MINUTES = 60;
|
|
16
|
+
// Caps keep a CI script's mistake from becoming a storage problem.
|
|
17
|
+
export const MAX_CHANGE_EVENTS_PER_REQUEST = 100;
|
|
18
|
+
export const MAX_CHANGE_EVENT_TITLE_LENGTH = 500;
|
|
19
|
+
export const MAX_CHANGE_EVENT_DESCRIPTION_LENGTH = 5000;
|
|
20
|
+
export const MAX_CHANGE_EVENT_TYPE_LENGTH = 50;
|
|
21
|
+
export const MAX_CHANGE_EVENT_ATTRIBUTES = 50;
|
|
22
|
+
export const DEFAULT_CHANGE_EVENT_TYPE = "deployment";
|
|
23
|
+
/*
|
|
24
|
+
* Serviceless change events (project-wide markers) have no service
|
|
25
|
+
* retention ladder to consult; deploy markers are tiny and valuable for
|
|
26
|
+
* long-baseline comparisons, so keep them a year.
|
|
27
|
+
*/
|
|
28
|
+
export const DEFAULT_CHANGE_EVENT_RETENTION_IN_DAYS = 365;
|
|
29
|
+
function parseEntryTime(value) {
|
|
30
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
31
|
+
/*
|
|
32
|
+
* Epoch seconds vs milliseconds: anything below 1e12 read as ms would
|
|
33
|
+
* be before 2001 — CI clocks don't say that; treat it as seconds.
|
|
34
|
+
*/
|
|
35
|
+
const ms = value < 1e12 ? value * 1000 : value;
|
|
36
|
+
const date = new Date(ms);
|
|
37
|
+
return Number.isNaN(date.getTime()) ? null : date;
|
|
38
|
+
}
|
|
39
|
+
if (typeof value === "string" && value.trim() !== "") {
|
|
40
|
+
const date = new Date(value);
|
|
41
|
+
return Number.isNaN(date.getTime()) ? null : date;
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Validate one raw ingest entry. Returns null when the entry cannot be a
|
|
47
|
+
* change event at all (no usable title); every other malformation is
|
|
48
|
+
* repaired (defaults, trims, caps) rather than rejected — CI pipelines
|
|
49
|
+
* should not fail a deploy over a long description.
|
|
50
|
+
*/
|
|
51
|
+
export function parseChangeEventIngestEntry(entry) {
|
|
52
|
+
var _a, _b, _c;
|
|
53
|
+
if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const rawTitle = (_a = entry["title"]) !== null && _a !== void 0 ? _a : entry["name"];
|
|
57
|
+
const title = typeof rawTitle === "string"
|
|
58
|
+
? rawTitle.trim().slice(0, MAX_CHANGE_EVENT_TITLE_LENGTH)
|
|
59
|
+
: "";
|
|
60
|
+
if (title === "") {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const rawEventType = (_b = entry["eventType"]) !== null && _b !== void 0 ? _b : entry["type"];
|
|
64
|
+
const eventType = typeof rawEventType === "string" && rawEventType.trim() !== ""
|
|
65
|
+
? rawEventType.trim().toLowerCase().slice(0, MAX_CHANGE_EVENT_TYPE_LENGTH)
|
|
66
|
+
: DEFAULT_CHANGE_EVENT_TYPE;
|
|
67
|
+
const rawDescription = entry["description"];
|
|
68
|
+
const description = typeof rawDescription === "string"
|
|
69
|
+
? rawDescription.trim().slice(0, MAX_CHANGE_EVENT_DESCRIPTION_LENGTH)
|
|
70
|
+
: "";
|
|
71
|
+
const attributes = {};
|
|
72
|
+
const rawAttributes = entry["attributes"];
|
|
73
|
+
if (rawAttributes &&
|
|
74
|
+
typeof rawAttributes === "object" &&
|
|
75
|
+
!Array.isArray(rawAttributes)) {
|
|
76
|
+
for (const key of Object.keys(rawAttributes)) {
|
|
77
|
+
if (key.trim() === "") {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (Object.keys(attributes).length >= MAX_CHANGE_EVENT_ATTRIBUTES) {
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
const value = rawAttributes[key];
|
|
84
|
+
if (typeof value === "string" ||
|
|
85
|
+
typeof value === "number" ||
|
|
86
|
+
typeof value === "boolean") {
|
|
87
|
+
attributes[key] = String(value);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
time: parseEntryTime((_c = entry["time"]) !== null && _c !== void 0 ? _c : entry["timestamp"]),
|
|
93
|
+
eventType,
|
|
94
|
+
title,
|
|
95
|
+
description,
|
|
96
|
+
attributes,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Accept the shapes CI scripts actually send: a bare object (one event),
|
|
101
|
+
* a bare array, or { events: [...] }.
|
|
102
|
+
*/
|
|
103
|
+
export function extractChangeEventEntries(body) {
|
|
104
|
+
if (!body) {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
if (Array.isArray(body)) {
|
|
108
|
+
return body.filter((item) => {
|
|
109
|
+
return typeof item === "object" && item !== null && !Array.isArray(item);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
if (typeof body !== "object") {
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
const asObject = body;
|
|
116
|
+
const nested = asObject["events"];
|
|
117
|
+
if (Array.isArray(nested)) {
|
|
118
|
+
return extractChangeEventEntries(nested);
|
|
119
|
+
}
|
|
120
|
+
// A single bare event object — but not the {events: <non-array>} shape.
|
|
121
|
+
if (nested === undefined && Object.keys(asObject).length > 0) {
|
|
122
|
+
return [asObject];
|
|
123
|
+
}
|
|
124
|
+
return [];
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* ParsedChangeEventEntry -> ChangeEvent ClickHouse row.
|
|
128
|
+
*/
|
|
129
|
+
export function buildChangeEventDbRow(data) {
|
|
130
|
+
const { parsed, projectId, serviceMetadata, retentionDays } = data;
|
|
131
|
+
const ingestionDate = OneUptimeDate.getCurrentDate();
|
|
132
|
+
let eventTime = parsed.time || ingestionDate;
|
|
133
|
+
let attributes = Object.assign({}, parsed.attributes);
|
|
134
|
+
const ageInDays = OneUptimeDate.getNumberOfDaysBetweenDates(eventTime, ingestionDate);
|
|
135
|
+
const futureSkewInMinutes = (eventTime.getTime() - ingestionDate.getTime()) / (60 * 1000);
|
|
136
|
+
if (Number.isNaN(eventTime.getTime()) ||
|
|
137
|
+
ageInDays > MAX_CHANGE_EVENT_AGE_IN_DAYS ||
|
|
138
|
+
futureSkewInMinutes > MAX_CHANGE_EVENT_FUTURE_SKEW_IN_MINUTES) {
|
|
139
|
+
attributes = Object.assign(Object.assign({}, attributes), { "oneuptime.original_time": String(parsed.time) });
|
|
140
|
+
eventTime = ingestionDate;
|
|
141
|
+
}
|
|
142
|
+
const retentionDate = OneUptimeDate.addRemoveDays(ingestionDate, retentionDays);
|
|
143
|
+
return Object.assign(Object.assign({ _id: ObjectID.generateTimeOrdered().toString(), createdAt: OneUptimeDate.toClickhouseDateTime(ingestionDate), projectId: projectId.toString() }, (serviceMetadata
|
|
144
|
+
? {
|
|
145
|
+
primaryEntityId: serviceMetadata.primaryEntityId.toString(),
|
|
146
|
+
primaryEntityType: serviceMetadata.primaryEntityType,
|
|
147
|
+
}
|
|
148
|
+
: {})), { time: OneUptimeDate.toClickhouseDateTime64(eventTime), eventType: parsed.eventType, title: parsed.title, description: parsed.description, attributes, attributeKeys: Object.keys(attributes).sort(), retentionDate: OneUptimeDate.toClickhouseDateTime(retentionDate) });
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=ChangeEventRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChangeEventRow.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/ChangeEventRow.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ export var RevenueEventName;
|
|
|
11
11
|
RevenueEventName["WorkspaceCreated"] = "workspace_created";
|
|
12
12
|
RevenueEventName["MonitorCreated"] = "monitor_created";
|
|
13
13
|
RevenueEventName["TeammateInvited"] = "teammate_invited";
|
|
14
|
+
RevenueEventName["SubscriptionStarted"] = "subscription_started";
|
|
14
15
|
RevenueEventName["SubscriptionUpgraded"] = "subscription_upgraded";
|
|
15
16
|
RevenueEventName["SubscriptionDowngraded"] = "subscription_downgraded";
|
|
16
17
|
})(RevenueEventName || (RevenueEventName = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RevenueEvent.js","sourceRoot":"","sources":["../../../../Types/Analytics/RevenueEvent.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"RevenueEvent.js","sourceRoot":"","sources":["../../../../Types/Analytics/RevenueEvent.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,oDAAgC,CAAA;IAChC,+CAA2B,CAAA;IAC3B,0DAAsC,CAAA;IACtC,sDAAkC,CAAA;IAClC,wDAAoC,CAAA;IACpC,gEAA4C,CAAA;IAC5C,kEAA8C,CAAA;IAC9C,sEAAkD,CAAA;AACpD,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,QAS3B;AAED,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,iDAA2B,CAAA;IAC3B,uCAAiB,CAAA;IACjB,+CAAyB,CAAA;IACzB,qDAA+B,CAAA;IAC/B,yCAAmB,CAAA;AACrB,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAMD,MAAM,CAAC,MAAM,4BAA4B,GAAW,CAAC,CAAC"}
|
|
@@ -8,6 +8,13 @@ var AnalyticsTableName;
|
|
|
8
8
|
* attributes with a keys sidecar for arbitrary-field filtering.
|
|
9
9
|
*/
|
|
10
10
|
AnalyticsTableName["SecurityEvent"] = "SecurityEventItemV1";
|
|
11
|
+
/*
|
|
12
|
+
* Deploy/config-change markers posted by CI/CD, rendered as dashed
|
|
13
|
+
* vertical lines on metric charts. Peer of LogItemV3 in layout (tenant
|
|
14
|
+
* projectId, per-row retentionDate TTL, attributes Map + keys sidecar)
|
|
15
|
+
* but tiny in volume.
|
|
16
|
+
*/
|
|
17
|
+
AnalyticsTableName["ChangeEvent"] = "ChangeEventV1";
|
|
11
18
|
AnalyticsTableName["Metric"] = "MetricItemV3";
|
|
12
19
|
AnalyticsTableName["ExceptionInstance"] = "ExceptionItemV3";
|
|
13
20
|
AnalyticsTableName["Span"] = "SpanItemV3";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsTableName.js","sourceRoot":"","sources":["../../../../Types/AnalyticsDatabase/AnalyticsTableName.ts"],"names":[],"mappings":"AAAA,IAAK,
|
|
1
|
+
{"version":3,"file":"AnalyticsTableName.js","sourceRoot":"","sources":["../../../../Types/AnalyticsDatabase/AnalyticsTableName.ts"],"names":[],"mappings":"AAAA,IAAK,kBAoFJ;AApFD,WAAK,kBAAkB;IACrB,uCAAiB,CAAA;IACjB;;;;;OAKG;IACH,2DAAqC,CAAA;IACrC;;;;;OAKG;IACH,mDAA6B,CAAA;IAC7B,6CAAuB,CAAA;IACvB,2DAAqC,CAAA;IACrC,yCAAmB,CAAA;IACnB,iDAA2B,CAAA;IAC3B,mDAA6B,CAAA;IAC7B,+CAAyB,CAAA;IACzB,2DAAqC,CAAA;IACrC,6CAAuB,CAAA;IACvB,6EAAuD,CAAA;IACvD;;;;;OAKG;IACH,6DAAuC,CAAA;IACvC;;;;OAIG;IACH,6EAAuD,CAAA;IACvD;;;;;;OAMG;IACH,+EAAyD,CAAA;IACzD,qFAA+D,CAAA;IAC/D,mFAA6D,CAAA;IAC7D,mEAA6C,CAAA;IAC7C;;;;;;OAMG;IACH,6DAAuC,CAAA;IACvC,2DAAqC,CAAA;IACrC,yDAAmC,CAAA;IACnC;;;;;;;OAOG;IACH,+CAAyB,CAAA;IACzB;;;;;;;;;;;;;OAaG;IACH,iDAA2B,CAAA;IAC3B,2DAAqC,CAAA;AACvC,CAAC,EApFI,kBAAkB,KAAlB,kBAAkB,QAoFtB;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -3,19 +3,14 @@
|
|
|
3
3
|
* writes it.
|
|
4
4
|
*
|
|
5
5
|
* Attribution starts in the browser (Home/Views/head-basic.ejs stores it in
|
|
6
|
-
* localStorage) and reaches the server through
|
|
6
|
+
* localStorage) and reaches the server through the signup form
|
|
7
|
+
* (App/FeatureSet/Accounts/src/Pages/Register.tsx), which posts it onto the
|
|
8
|
+
* User record.
|
|
7
9
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* /enterprise/demo, /support, /enterprise/self-hosted — goes through it.
|
|
13
|
-
*
|
|
14
|
-
* Both doors are reachable by an unauthenticated caller, so both must whitelist
|
|
15
|
-
* and length-bound what they accept. Keeping the key lists here rather than in
|
|
16
|
-
* each door means a key added for the browser cannot be silently dropped by one
|
|
17
|
-
* of the readers — which is exactly what happened to UTM parameters on the Cal
|
|
18
|
-
* path, where the webhook parsed click IDs the embed never sent.
|
|
10
|
+
* That door is reachable by an unauthenticated caller, so it must whitelist and
|
|
11
|
+
* length-bound what it accepts. Keeping the key lists here rather than in the
|
|
12
|
+
* door itself means a key added for the browser cannot be silently dropped on
|
|
13
|
+
* arrival.
|
|
19
14
|
*/
|
|
20
15
|
// Ad-platform click identifiers, in the spelling each platform uses on the URL.
|
|
21
16
|
export const AdClickIdKeys = [
|
|
@@ -29,9 +24,8 @@ export const AdClickIdKeys = [
|
|
|
29
24
|
"rdt_cid",
|
|
30
25
|
];
|
|
31
26
|
/*
|
|
32
|
-
* UTM parameters travel as snake_case on a URL and
|
|
33
|
-
*
|
|
34
|
-
* Both spellings are accepted on the way in — Cal booking questions and hand
|
|
27
|
+
* UTM parameters travel as snake_case on a URL and as camelCase once they are
|
|
28
|
+
* columns on User/Project. Both spellings are accepted on the way in — hand
|
|
35
29
|
* written links produce either — and only the camelCase form is stored.
|
|
36
30
|
*/
|
|
37
31
|
export const UtmWireKeyToPropertyKey = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Attribution.js","sourceRoot":"","sources":["../../../../Types/Marketing/Attribution.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Attribution.js","sourceRoot":"","sources":["../../../../Types/Marketing/Attribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,QAAQ;IACR,SAAS;CACV,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,UAAU,EAAE,WAAW;IACvB,UAAU,EAAE,WAAW;IACvB,YAAY,EAAE,aAAa;IAC3B,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,YAAY;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAkB,MAAM,CAAC,MAAM,CACzD,uBAAuB,CACxB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAW,QAAQ,CAAC;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,GAAG,eAAe;IAClB,YAAY;IACZ,UAAU;IACV,WAAW;CACZ,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAW,GAAG,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* The outbound marketing event contract.
|
|
3
3
|
*
|
|
4
|
-
* OneUptime does not keep a conversion ledger. The
|
|
4
|
+
* OneUptime does not keep a conversion ledger. The moments worth
|
|
5
5
|
* measuring are emitted as signed webhooks at the instant they happen and are
|
|
6
6
|
* not stored here afterwards, so this interface — not a database table — is
|
|
7
7
|
* the whole record of what a conversion looks like.
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* - DEDUPLICATION. `eventId` is stable for a given real-world occurrence, so
|
|
13
13
|
* a redelivery carries the id the first attempt did. Retries are expected
|
|
14
|
-
* (the queue retries
|
|
14
|
+
* (the delivery queue retries), so a receiver that keys on
|
|
15
15
|
* anything else will double-count.
|
|
16
16
|
* - ORDERING. Events are delivered per-occurrence with no sequence number.
|
|
17
17
|
* A signup and a plan change seconds apart may arrive either way round;
|
|
@@ -25,7 +25,15 @@
|
|
|
25
25
|
export var MarketingEventType;
|
|
26
26
|
(function (MarketingEventType) {
|
|
27
27
|
MarketingEventType["SignUp"] = "sign_up";
|
|
28
|
-
|
|
28
|
+
/*
|
|
29
|
+
* A project's first paid subscription, created together with the project.
|
|
30
|
+
*
|
|
31
|
+
* Deliberately not a subscription_upgraded. An upgrade is a movement between
|
|
32
|
+
* two tiers and reports expansion; this has no previous tier at all and is
|
|
33
|
+
* new business. Reporting one as the other mixes net-new with expansion
|
|
34
|
+
* revenue, and nothing downstream could separate them again.
|
|
35
|
+
*/
|
|
36
|
+
MarketingEventType["SubscriptionStarted"] = "subscription_started";
|
|
29
37
|
MarketingEventType["SubscriptionUpgraded"] = "subscription_upgraded";
|
|
30
38
|
MarketingEventType["SubscriptionDowngraded"] = "subscription_downgraded";
|
|
31
39
|
/*
|
|
@@ -35,7 +43,7 @@ export var MarketingEventType;
|
|
|
35
43
|
* whose email is typed in by a human rather than captured from a session —
|
|
36
44
|
* which is exactly what makes it joinable: set EnterpriseLicense.email to
|
|
37
45
|
* the address the customer booked with and this event shares an identity
|
|
38
|
-
* with
|
|
46
|
+
* with whatever else that address has done, months earlier.
|
|
39
47
|
*/
|
|
40
48
|
MarketingEventType["EnterpriseLicenseIssued"] = "enterprise_license_issued";
|
|
41
49
|
})(MarketingEventType || (MarketingEventType = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarketingEvent.js","sourceRoot":"","sources":["../../../../Types/Marketing/MarketingEvent.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"MarketingEvent.js","sourceRoot":"","sources":["../../../../Types/Marketing/MarketingEvent.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAN,IAAY,kBAuBX;AAvBD,WAAY,kBAAkB;IAC5B,wCAAkB,CAAA;IAClB;;;;;;;OAOG;IACH,kEAA4C,CAAA;IAC5C,oEAA8C,CAAA;IAC9C,wEAAkD,CAAA;IAClD;;;;;;;;OAQG;IACH,2EAAqD,CAAA;AACvD,CAAC,EAvBW,kBAAkB,KAAlB,kBAAkB,QAuB7B;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAW,CAAC,CAAC"}
|
|
@@ -93,14 +93,22 @@ const AreaChartElement = (props) => {
|
|
|
93
93
|
const autoMinValue = yAxisMinOption === "auto";
|
|
94
94
|
const minValueProp = typeof yAxisMinOption === "number" ? { minValue: yAxisMinOption } : {};
|
|
95
95
|
const maxValueProp = typeof yAxisMaxOption === "number" ? { maxValue: yAxisMaxOption } : {};
|
|
96
|
-
return (React.createElement("div", {
|
|
96
|
+
return (React.createElement("div", {
|
|
97
|
+
/*
|
|
98
|
+
* `isolate` opens a stacking context so the recharts tooltip's
|
|
99
|
+
* z-index competes only inside this chart — without it the tooltip
|
|
100
|
+
* (zIndex 10, pinned to the chart's top edge) ties with the app
|
|
101
|
+
* header's sticky z-10 in the root context and paints over the
|
|
102
|
+
* navbar on half-scrolled charts.
|
|
103
|
+
*/
|
|
104
|
+
className: "relative isolate flex flex-1", style: props.heightInPx ? { height: `${props.heightInPx}px` } : undefined },
|
|
97
105
|
React.createElement(AreaChart, Object.assign({ data: records, tickGap: 30, index: CHART_DATA_POINT_X_AXIS_KEY, categories: categories, colors: props.colors && props.colors.length > 0
|
|
98
106
|
? props.colors
|
|
99
107
|
: AreaChartPalette, valueFormatter: props.yAxis.options.formatter || undefined, showTooltip: true, showLegend: props.showLegend !== false, connectNulls: true, curve: props.curve || ChartCurve.MONOTONE, syncid: props.sync ? props.syncid : undefined, yAxisWidth: 64, autoMinValue: autoMinValue }, minValueProp, maxValueProp, { onValueChange: () => { }, referenceLines: props.referenceLines, formattedTimeReferenceLines: formattedTimeReferenceLines.length > 0
|
|
100
108
|
? formattedTimeReferenceLines
|
|
101
109
|
: undefined, formattedReferenceRegions: formattedReferenceRegions.length > 0
|
|
102
110
|
? formattedReferenceRegions
|
|
103
|
-
: undefined, formattedExemplarPoints: formattedExemplars.length > 0 ? formattedExemplars : undefined, onExemplarClick: props.onExemplarClick, onTimeRangeSelect: props.onTimeRangeSelect, anomalyBandLowerKey: bandLower, anomalyBandUpperKey: bandUpper })),
|
|
111
|
+
: undefined, formattedExemplarPoints: formattedExemplars.length > 0 ? formattedExemplars : undefined, onExemplarClick: props.onExemplarClick, onTimeRangeSelect: props.onTimeRangeSelect, onBucketClick: props.onBucketClick, ghostCategories: props.ghostSeriesNames, anomalyBandLowerKey: bandLower, anomalyBandUpperKey: bandUpper })),
|
|
104
112
|
hasNoData && React.createElement(NoDataMessage, null)));
|
|
105
113
|
};
|
|
106
114
|
export default AreaChartElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/Area/AreaChart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAKhE,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,OAAO,GACR,MAAM,OAAO,CAAC;AAIf,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAuB,EACrB,2BAA2B,GAC5B,MAAM,sCAAsC,CAAC;AAI9C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAKzD,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,aAAa,MAAM,6BAA6B,CAAC;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAoC;IAC/D,MAAM;IACN,SAAS;IACT,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,QAAQ;IACR,MAAM;CACP,CAAC;
|
|
1
|
+
{"version":3,"file":"AreaChart.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/Area/AreaChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,15 @@ const BarChartElement = (props) => {
|
|
|
52
52
|
props.data.every((series) => {
|
|
53
53
|
return series.data.length === 0;
|
|
54
54
|
});
|
|
55
|
-
return (React.createElement("div", {
|
|
55
|
+
return (React.createElement("div", {
|
|
56
|
+
/*
|
|
57
|
+
* `isolate` opens a stacking context so the recharts tooltip's
|
|
58
|
+
* z-index competes only inside this chart — without it the tooltip
|
|
59
|
+
* (zIndex 10, pinned to the chart's top edge) ties with the app
|
|
60
|
+
* header's sticky z-10 in the root context and paints over the
|
|
61
|
+
* navbar on half-scrolled charts.
|
|
62
|
+
*/
|
|
63
|
+
className: "relative isolate flex flex-1", style: props.heightInPx ? { height: `${props.heightInPx}px` } : undefined },
|
|
56
64
|
React.createElement(BarChart, { data: records, tickGap: 30, index: CHART_DATA_POINT_X_AXIS_KEY, categories: categories, colors: props.colors && props.colors.length > 0
|
|
57
65
|
? props.colors
|
|
58
66
|
: BarChartPalette, valueFormatter: props.yAxis.options.formatter || undefined, showTooltip: true, showLegend: props.showLegend !== false, yAxisWidth: 64, syncid: props.sync ? props.syncid : undefined, onValueChange: () => { }, referenceLines: props.referenceLines, formattedTimeReferenceLines: formattedTimeReferenceLines.length > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/Bar/BarChart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAK7D,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,OAAO,GACR,MAAM,OAAO,CAAC;AAIf,OAAuB,EACrB,2BAA2B,GAC5B,MAAM,sCAAsC,CAAC;AAG9C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAIzD,OAAO,aAAa,MAAM,6BAA6B,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAoC;IAC9D,QAAQ;IACR,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;CACV,CAAC;AA8BF,MAAM,eAAe,GAAwC,CAC3D,KAAuB,EACT,EAAE;IAChB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAwB,EAAE,CAAC,CAAC;IAExE,MAAM,UAAU,GAAkB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAiB,EAAE,EAAE;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAA0B,aAAa,CAAC,kBAAkB,CAAC;YACtE,YAAY,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,UAAU,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjB,kEAAkE;IAClE,MAAM,2BAA2B,GAC/B,OAAO,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,kBAAkB,CAAC,wBAAwB,CAAC;YACjD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9C,MAAM,yBAAyB,GAC7B,OAAO,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,kBAAkB,CAAC,sBAAsB,CAAC;YAC/C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5C,MAAM,SAAS,GACb,CAAC,KAAK,CAAC,IAAI;QACX,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAmB,EAAE,EAAE;YACvC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IAEL,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"BarChart.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/Bar/BarChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,15 @@ export var ChartType;
|
|
|
14
14
|
ChartType["AREA"] = "area";
|
|
15
15
|
})(ChartType || (ChartType = {}));
|
|
16
16
|
const ChartGroup = (props) => {
|
|
17
|
-
|
|
17
|
+
/*
|
|
18
|
+
* Stable per-mount fallback: a plain const regenerated the id on every
|
|
19
|
+
* render, which forced recharts to tear down and re-subscribe its sync
|
|
20
|
+
* listeners on each parent re-render (auto-refresh ticks included).
|
|
21
|
+
*/
|
|
22
|
+
const [fallbackSyncId] = useState(() => {
|
|
23
|
+
return Text.generateRandomText(10);
|
|
24
|
+
});
|
|
25
|
+
const syncId = props.syncId || fallbackSyncId;
|
|
18
26
|
const [metricInfoModalChart, setMetricInfoModalChart] = useState(null);
|
|
19
27
|
const getChartContent = (chart, index) => {
|
|
20
28
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartGroup.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/ChartGroup/ChartGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,wBAAwB,CAAC;AAE1C,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,SAA+C,MAAM,mBAAmB,CAAC;AAChF,OAAO,eAEN,MAAM,iBAAiB,CAAC;AACzB,OAAO,gBAEN,MAAM,mBAAmB,CAAC;AAE3B,OAAO,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,EAAmC,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzE,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,wBAAW,CAAA;IACX,0BAAa,CAAA;AACf,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;
|
|
1
|
+
{"version":3,"file":"ChartGroup.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/ChartGroup/ChartGroup.tsx"],"names":[],"mappings":"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"}
|