feat: Add Telemetry Ingestion Keys page to Settings

This commit is contained in:
Simon Larsen
2024-08-01 14:26:35 -06:00
parent 8307f4deca
commit 0872b1e8a2
2 changed files with 34 additions and 0 deletions

View File

@@ -40,6 +40,8 @@ import DomainService, {
import EmailLogService, {
Service as EmailLogServiceType,
} from "CommonServer/Services/EmailLogService";
import TelemetryIngestionKeyService,
{ Service as TelemetryIngestionKeyServiceType, } from "CommonServer/Services/TelemetryIngestionKeyService";
import EmailVerificationTokenService, {
Service as EmailVerificationTokenServiceType,
} from "CommonServer/Services/EmailVerificationTokenService";
@@ -88,6 +90,8 @@ import LabelService, {
import LogService, {
LogService as LogServiceType,
} from "CommonServer/Services/LogService";
import TelemetryAttributeService, {
TelemetryAttributeService as TelemetryAttributeServiceType,
} from "CommonServer/Services/TelemetryAttributeService";
@@ -388,6 +392,7 @@ import StatusPageCustomField from "Model/Models/StatusPageCustomField";
import StatusPageFooterLink from "Model/Models/StatusPageFooterLink";
import StatusPageGroup from "Model/Models/StatusPageGroup";
import StatusPageHeaderLink from "Model/Models/StatusPageHeaderLink";
import TelemetryIngestionKey from "Model/Models/TelemetryIngestionKey";
import StatusPageHistoryChartBarColorRule from "Model/Models/StatusPageHistoryChartBarColorRule";
import StatusPageOwnerTeam from "Model/Models/StatusPageOwnerTeam";
import StatusPageOwnerUser from "Model/Models/StatusPageOwnerUser";
@@ -446,6 +451,14 @@ const BaseAPIFeatureSet: FeatureSet = {
>(MonitorMetricsByMinute, MonitorMetricsByMinuteService).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<TelemetryIngestionKey, TelemetryIngestionKeyServiceType>(
TelemetryIngestionKey,
TelemetryIngestionKeyService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAnalyticsAPI<Span, SpanServiceType>(

View File

@@ -0,0 +1,21 @@
import PostgresDatabase from "../Infrastructure/PostgresDatabase";
import CreateBy from "../Types/Database/CreateBy";
import { OnCreate } from "../Types/Database/Hooks";
import DatabaseService from "./DatabaseService";
import ObjectID from "Common/Types/ObjectID";
import Model from "Model/Models/TelemetryIngestionKey";
export class Service extends DatabaseService<Model> {
public constructor(postgresDatabase?: PostgresDatabase) {
super(Model, postgresDatabase);
}
protected override async onBeforeCreate(
createBy: CreateBy<Model>,
): Promise<OnCreate<Model>> {
createBy.data.secretKey = ObjectID.generate();
return { createBy, carryForward: null };
}
}
export default new Service();