@oneuptime/common 12.0.1 → 12.0.3
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/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +14 -0
- package/Models/DatabaseModels/Host.ts +12 -4
- package/Models/DatabaseModels/Index.ts +2 -0
- package/Models/DatabaseModels/KubernetesContainer.ts +5 -4
- package/Models/DatabaseModels/KubernetesResource.ts +8 -7
- package/Models/DatabaseModels/LogDropFilter.ts +9 -20
- package/Models/DatabaseModels/PodmanResource.ts +6 -6
- package/Models/DatabaseModels/ServiceLevelObjective.ts +91 -0
- package/Models/DatabaseModels/StatusPage.ts +95 -0
- package/Models/DatabaseModels/StatusPageMonitorRule.ts +911 -0
- package/Models/DatabaseModels/StatusPageResource.ts +73 -0
- package/Models/DatabaseModels/TraceDropFilter.ts +9 -20
- package/Server/API/BaseAPI.ts +13 -2
- package/Server/API/DashboardAPI.ts +39 -0
- package/Server/API/TeamMemberAPI.ts +85 -0
- package/Server/EnvironmentConfig.ts +31 -1
- package/Server/Infrastructure/GlobalCache.ts +115 -0
- package/Server/Infrastructure/Postgres/DataSourceOptions.ts +16 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785900000000-AddSloMonitorLabelRule.ts +84 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785915638551-IncreaseHostIpAddressesLength.ts +40 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785930000000-WidenInventoryResourceNameColumns.ts +131 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785930709405-AddStatusPageReportPeriod.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.ts +123 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
- package/Server/Middleware/ProjectAuthorization.ts +66 -4
- package/Server/Services/AlertStateTimelineService.ts +20 -0
- package/Server/Services/BillingService.ts +600 -51
- package/Server/Services/CephClusterService.ts +27 -45
- package/Server/Services/CephResourceService.ts +43 -4
- package/Server/Services/CloudResourceService.ts +24 -42
- package/Server/Services/DatabaseService.ts +198 -6
- package/Server/Services/DockerHostService.ts +20 -38
- package/Server/Services/DockerResourceService.ts +62 -8
- package/Server/Services/DockerSwarmClusterService.ts +28 -46
- package/Server/Services/DockerSwarmResourceService.ts +53 -4
- package/Server/Services/HostService.ts +47 -57
- package/Server/Services/IncidentStateTimelineService.ts +20 -0
- package/Server/Services/Index.ts +2 -0
- package/Server/Services/IoTDeviceService.ts +1 -17
- package/Server/Services/IoTFleetService.ts +20 -38
- package/Server/Services/KubernetesClusterService.ts +18 -36
- package/Server/Services/KubernetesContainerService.ts +50 -9
- package/Server/Services/KubernetesResourceService.ts +53 -7
- package/Server/Services/LabelService.ts +153 -1
- package/Server/Services/MetricTypeService.ts +84 -0
- package/Server/Services/MonitorService.ts +146 -14
- package/Server/Services/MonitorStatusTimelineService.ts +29 -0
- package/Server/Services/MonitorTemplateService.ts +65 -0
- package/Server/Services/PodmanHostService.ts +20 -38
- package/Server/Services/PodmanResourceService.ts +62 -8
- package/Server/Services/ProjectService.ts +165 -35
- package/Server/Services/ProxmoxClusterService.ts +24 -42
- package/Server/Services/ProxmoxResourceService.ts +43 -4
- package/Server/Services/RumApplicationService.ts +20 -38
- package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +21 -0
- package/Server/Services/ServerlessFunctionService.ts +25 -43
- package/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.ts +426 -0
- package/Server/Services/ServiceLevelObjectiveService.ts +39 -0
- package/Server/Services/ServiceService.ts +299 -73
- package/Server/Services/StatusPageMonitorRuleEngineService.ts +752 -0
- package/Server/Services/StatusPageMonitorRuleService.ts +471 -0
- package/Server/Services/StatusPageService.ts +95 -36
- package/Server/Services/StatusPageSubscriberNotificationTemplateService.ts +18 -1
- package/Server/Services/StatusPageSubscriberService.ts +3 -0
- package/Server/Services/TelemetryEntityRelationshipService.ts +1 -0
- package/Server/Services/TelemetryEntityService.ts +1 -0
- package/Server/Types/Database/JSONColumnQuery.ts +621 -0
- package/Server/Types/Database/Permissions/PublicPermission.ts +9 -2
- package/Server/Types/Database/QueryHelper.ts +17 -32
- package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +170 -39
- package/Server/Utils/Database/TruncateColumnValue.ts +84 -0
- package/Server/Utils/Monitor/MonitorResource.ts +63 -36
- package/Server/Utils/Monitor/MonitorStatusTimeline.ts +36 -0
- package/Server/Utils/Monitor/MonitorStepsProjectValidator.ts +148 -127
- package/Server/Utils/Monitor/MonitorStepsReferenceExtractor.ts +434 -0
- package/Server/Utils/SingleFlight.ts +83 -0
- package/Server/Utils/StatusPage/MonitorRulePatternValidator.ts +46 -0
- package/Server/Utils/Telemetry/EntityRegistry.ts +107 -26
- package/Server/Utils/Telemetry/ResourceHeartbeat.ts +314 -0
- package/Server/Utils/Telemetry/Telemetry.ts +351 -122
- package/Tests/App/Dashboard/UsersTableGroupsByPerson.test.tsx +448 -0
- package/Tests/App/Dashboard/WidgetCatalog.test.ts +2 -0
- package/Tests/Models/DatabaseModels/ColumnTransformerInvariants.test.ts +306 -0
- package/Tests/Models/DatabaseModels/NumberColumnDeserialization.test.ts +333 -0
- package/Tests/Models/DatabaseModels/StatusPageMonitorRuleModel.test.ts +190 -0
- package/Tests/Server/API/BaseAPIApiKeyAuth.test.ts +704 -0
- package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +26 -0
- package/Tests/Server/API/TeamMemberRemoveUserFromProjectAPI.test.ts +303 -0
- package/Tests/Server/Infrastructure/GlobalCache.test.ts +226 -0
- package/Tests/Server/Infrastructure/PostgresLockTimeoutOptions.test.ts +181 -0
- package/Tests/Server/Middleware/MasterAdminAuthorization.test.ts +350 -0
- package/Tests/Server/Middleware/ProjectAuthorizationApiKeyHeader.test.ts +362 -0
- package/Tests/Server/Middleware/ProjectAuthorizationApiKeyMiddleware.test.ts +687 -0
- package/Tests/Server/Services/BillingService.test.ts +78 -3
- package/Tests/Server/Services/BillingServiceChangePlanCancel.test.ts +645 -0
- package/Tests/Server/Services/BillingServiceTrialPlanChange.test.ts +1005 -0
- package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlocked.test.ts +342 -0
- package/Tests/Server/Services/DropFilterSaveValidation.test.ts +245 -0
- package/Tests/Server/Services/HookFreeWriteLengthClamp.test.ts +503 -0
- package/Tests/Server/Services/HostIpAddressesColumnWidth.test.ts +198 -0
- package/Tests/Server/Services/HostServiceUpdateLastSeen.test.ts +658 -0
- package/Tests/Server/Services/InventoryResourceNameColumnWidth.test.ts +500 -0
- package/Tests/Server/Services/InventoryUpsertSchemaParity.test.ts +586 -0
- package/Tests/Server/Services/InventoryUpsertTruncationGuard.test.ts +1242 -0
- package/Tests/Server/Services/MetricTypeAttachServices.test.ts +222 -0
- package/Tests/Server/Services/MissingReferenceWriteGuard.test.ts +614 -0
- package/Tests/Server/Services/MonitorStatusTimelineFastPath.test.ts +23 -0
- package/Tests/Server/Services/ProjectServiceChangePlan.test.ts +650 -0
- package/Tests/Server/Services/ProjectServiceExtendTrial.test.ts +1 -0
- package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +636 -0
- package/Tests/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.test.ts +770 -0
- package/Tests/Server/Services/ServiceLevelObjectiveService.test.ts +130 -0
- package/Tests/Server/Services/ServiceUpdateLastSeenSplitGates.test.ts +705 -0
- package/Tests/Server/Services/SloMonitorLabelRuleHooks.test.ts +352 -0
- package/Tests/Server/Services/StatusPageMonitorRuleEngineService.test.ts +1719 -0
- package/Tests/Server/Services/StatusPageMonitorRuleHooks.test.ts +1212 -0
- package/Tests/Server/Services/StatusPageMonitorRuleMonitorCreateHook.test.ts +228 -0
- package/Tests/Server/Services/StatusPageSubscriberReport.test.ts +29 -13
- package/Tests/Server/TestingUtils/Services/BillingServiceHelper.ts +69 -8
- package/Tests/Server/Types/Database/JSONColumnQuery.test.ts +593 -0
- package/Tests/Server/Types/Database/Permissions/PublicPermission.test.ts +495 -0
- package/Tests/Server/Types/Database/QueryUtil.test.ts +113 -0
- package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +267 -0
- package/Tests/Server/Utils/Database/ProjectScopedReferenceValidator.test.ts +260 -13
- package/Tests/Server/Utils/Database/TruncateColumnValue.test.ts +179 -0
- package/Tests/Server/Utils/EntityRegistryRowFence.test.ts +302 -0
- package/Tests/Server/Utils/MetricTypeIndexConvergence.test.ts +598 -0
- package/Tests/Server/Utils/Monitor/MonitorStatusTimelineUnusableStatus.test.ts +154 -0
- package/Tests/Server/Utils/Monitor/MonitorStepsProjectValidator.test.ts +638 -92
- package/Tests/Server/Utils/Monitor/MonitorStepsReferenceExtractor.test.ts +724 -0
- package/Tests/Server/Utils/SingleFlight.test.ts +221 -0
- package/Tests/Types/Dashboard/NetworkDashboardTemplate.test.ts +793 -0
- package/Tests/Types/Database/BigIntColumnTransformer.test.ts +147 -0
- package/Tests/Types/Database/DatabasePropertyTransformer.test.ts +140 -0
- package/Tests/Types/Database/NumericColumnValue.test.ts +127 -0
- package/Tests/Types/Decimal.test.ts +37 -0
- package/Tests/Types/Events/Recurring.test.ts +157 -0
- package/Tests/Types/Monitor/SnmpVersionParsing.test.ts +152 -0
- package/Tests/Types/Port.test.ts +38 -0
- package/Tests/UI/Components/LogsHistogram.test.tsx +276 -0
- package/Tests/UI/Components/ModelTable/ModelTableGroupsProjectUsers.test.tsx +375 -0
- package/Tests/UI/Components/ModelTable/useCustomFieldColumns.test.tsx +196 -0
- package/Tests/UI/Components/UseLiveLogsRefresh.test.tsx +489 -0
- package/Tests/UI/Components/UseLogsHistogram.test.tsx +500 -0
- package/Tests/UI/Utils/ProjectUsersModelAPI.test.ts +739 -0
- package/Tests/UI/Utils/TeamMembersByUser.test.ts +633 -0
- package/Tests/Utils/Dashboard/Components/DashboardComponentsUtil.test.ts +120 -0
- package/Tests/Utils/Dashboard/DashboardNetworkMapComponent.test.ts +327 -0
- package/Tests/Utils/StatusPage/ReportPeriod.test.ts +218 -0
- package/Tests/Utils/Telemetry/HostIpAddresses.test.ts +291 -0
- package/Types/CustomField/CustomFieldDefinition.ts +24 -0
- package/Types/Dashboard/DashboardComponentType.ts +1 -0
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
- package/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.ts +40 -0
- package/Types/Dashboard/DashboardTemplates.ts +397 -0
- package/Types/Database/BigIntColumnTransformer.ts +74 -0
- package/Types/Database/DatabaseProperty.ts +26 -0
- package/Types/Database/NumericColumnValue.ts +128 -0
- package/Types/Date.ts +112 -0
- package/Types/Decimal.ts +16 -4
- package/Types/Events/Recurring.ts +99 -1
- package/Types/Permission.ts +48 -0
- package/Types/Port.ts +16 -4
- package/Types/StatusPage/StatusPageReport.ts +11 -0
- package/Types/StatusPage/StatusPageReportPeriodType.ts +21 -0
- package/UI/Components/LogsViewer/useLiveLogsRefresh.ts +86 -0
- package/UI/Components/LogsViewer/useLogsHistogram.ts +113 -0
- package/UI/Components/ModelTable/CustomFieldColumns.tsx +2 -6
- package/UI/Components/ModelTable/useCustomFieldColumns.ts +21 -2
- package/UI/Utils/ModelAPI/ProjectUsersModelAPI.ts +305 -0
- package/UI/Utils/TeamMembersByUser.ts +302 -0
- package/Utils/Dashboard/Components/DashboardNetworkMapComponent.ts +136 -0
- package/Utils/Dashboard/Components/Index.ts +7 -0
- package/Utils/StatusPage/ReportPeriod.ts +236 -0
- package/Utils/Telemetry/HostIpAddresses.ts +98 -0
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +12 -0
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Host.js +12 -4
- package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +2 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesContainer.js +4 -4
- package/build/dist/Models/DatabaseModels/KubernetesContainer.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesResource.js +7 -7
- package/build/dist/Models/DatabaseModels/KubernetesResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LogDropFilter.js +9 -20
- package/build/dist/Models/DatabaseModels/LogDropFilter.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PodmanResource.js +6 -6
- package/build/dist/Models/DatabaseModels/PodmanResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js +87 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPage.js +98 -0
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js +925 -0
- package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/StatusPageResource.js +72 -0
- package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TraceDropFilter.js +9 -20
- package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -1
- package/build/dist/Server/API/BaseAPI.js +11 -1
- package/build/dist/Server/API/BaseAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +39 -0
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/TeamMemberAPI.js +57 -2
- package/build/dist/Server/API/TeamMemberAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +27 -1
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/GlobalCache.js +91 -0
- package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +5 -3
- package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785900000000-AddSloMonitorLabelRule.js +45 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785900000000-AddSloMonitorLabelRule.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785915638551-IncreaseHostIpAddressesLength.js +31 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785915638551-IncreaseHostIpAddressesLength.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785930000000-WidenInventoryResourceNameColumns.js +90 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785930000000-WidenInventoryResourceNameColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785930709405-AddStatusPageReportPeriod.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785930709405-AddStatusPageReportPeriod.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js +48 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/ProjectAuthorization.js +59 -4
- package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
- package/build/dist/Server/Services/AlertStateTimelineService.js +19 -0
- package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/BillingService.js +466 -36
- package/build/dist/Server/Services/BillingService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterService.js +26 -39
- package/build/dist/Server/Services/CephClusterService.js.map +1 -1
- package/build/dist/Server/Services/CephResourceService.js +28 -3
- package/build/dist/Server/Services/CephResourceService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceService.js +23 -36
- package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +155 -2
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostService.js +19 -32
- package/build/dist/Server/Services/DockerHostService.js.map +1 -1
- package/build/dist/Server/Services/DockerResourceService.js +34 -4
- package/build/dist/Server/Services/DockerResourceService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterService.js +27 -40
- package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmResourceService.js +28 -3
- package/build/dist/Server/Services/DockerSwarmResourceService.js.map +1 -1
- package/build/dist/Server/Services/HostService.js +58 -64
- package/build/dist/Server/Services/HostService.js.map +1 -1
- package/build/dist/Server/Services/IncidentStateTimelineService.js +19 -0
- package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +2 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/IoTDeviceService.js +1 -8
- package/build/dist/Server/Services/IoTDeviceService.js.map +1 -1
- package/build/dist/Server/Services/IoTFleetService.js +19 -32
- package/build/dist/Server/Services/IoTFleetService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterService.js +17 -30
- package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesContainerService.js +29 -3
- package/build/dist/Server/Services/KubernetesContainerService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesResourceService.js +32 -4
- package/build/dist/Server/Services/KubernetesResourceService.js.map +1 -1
- package/build/dist/Server/Services/LabelService.js +127 -0
- package/build/dist/Server/Services/LabelService.js.map +1 -1
- package/build/dist/Server/Services/MetricTypeService.js +74 -0
- package/build/dist/Server/Services/MetricTypeService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +128 -9
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorStatusTimelineService.js +28 -0
- package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
- package/build/dist/Server/Services/MonitorTemplateService.js +60 -0
- package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostService.js +19 -32
- package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
- package/build/dist/Server/Services/PodmanResourceService.js +34 -4
- package/build/dist/Server/Services/PodmanResourceService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +135 -21
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterService.js +23 -36
- package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxResourceService.js +28 -3
- package/build/dist/Server/Services/ProxmoxResourceService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationService.js +19 -32
- package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +20 -0
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionService.js +24 -37
- package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -1
- package/build/dist/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.js +347 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveService.js +33 -1
- package/build/dist/Server/Services/ServiceLevelObjectiveService.js.map +1 -1
- package/build/dist/Server/Services/ServiceService.js +236 -61
- package/build/dist/Server/Services/ServiceService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js +603 -0
- package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/StatusPageMonitorRuleService.js +401 -0
- package/build/dist/Server/Services/StatusPageMonitorRuleService.js.map +1 -0
- package/build/dist/Server/Services/StatusPageService.js +69 -46
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageSubscriberNotificationTemplateService.js +17 -1
- package/build/dist/Server/Services/StatusPageSubscriberNotificationTemplateService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageSubscriberService.js +3 -0
- package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +1 -0
- package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryEntityService.js +1 -0
- package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -1
- package/build/dist/Server/Types/Database/JSONColumnQuery.js +402 -0
- package/build/dist/Server/Types/Database/JSONColumnQuery.js.map +1 -0
- package/build/dist/Server/Types/Database/Permissions/PublicPermission.js +9 -2
- package/build/dist/Server/Types/Database/Permissions/PublicPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryHelper.js +17 -27
- package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
- package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +105 -29
- package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
- package/build/dist/Server/Utils/Database/TruncateColumnValue.js +32 -0
- package/build/dist/Server/Utils/Database/TruncateColumnValue.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +56 -32
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +30 -3
- package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js +110 -98
- package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js +312 -0
- package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js.map +1 -0
- package/build/dist/Server/Utils/SingleFlight.js +76 -0
- package/build/dist/Server/Utils/SingleFlight.js.map +1 -0
- package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js +29 -0
- package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +78 -19
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js +160 -0
- package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/Telemetry.js +279 -104
- package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
- package/build/dist/Types/CustomField/CustomFieldDefinition.js +2 -0
- package/build/dist/Types/CustomField/CustomFieldDefinition.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js +368 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/Database/BigIntColumnTransformer.js +66 -0
- package/build/dist/Types/Database/BigIntColumnTransformer.js.map +1 -0
- package/build/dist/Types/Database/DatabaseProperty.js +25 -0
- package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
- package/build/dist/Types/Database/NumericColumnValue.js +97 -0
- package/build/dist/Types/Database/NumericColumnValue.js.map +1 -0
- package/build/dist/Types/Date.js +68 -0
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Decimal.js +14 -3
- package/build/dist/Types/Decimal.js.map +1 -1
- package/build/dist/Types/Events/Recurring.js +63 -0
- package/build/dist/Types/Events/Recurring.js.map +1 -1
- package/build/dist/Types/Permission.js +42 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Port.js +15 -5
- package/build/dist/Types/Port.js.map +1 -1
- package/build/dist/Types/StatusPage/StatusPageReportPeriodType.js +22 -0
- package/build/dist/Types/StatusPage/StatusPageReportPeriodType.js.map +1 -0
- package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js +44 -0
- package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js.map +1 -0
- package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js +75 -0
- package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js +18 -2
- package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js.map +1 -1
- package/build/dist/UI/Utils/ModelAPI/ProjectUsersModelAPI.js +213 -0
- package/build/dist/UI/Utils/ModelAPI/ProjectUsersModelAPI.js.map +1 -0
- package/build/dist/UI/Utils/TeamMembersByUser.js +195 -0
- package/build/dist/UI/Utils/TeamMembersByUser.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js +114 -0
- package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/build/dist/Utils/StatusPage/ReportPeriod.js +131 -0
- package/build/dist/Utils/StatusPage/ReportPeriod.js.map +1 -0
- package/build/dist/Utils/Telemetry/HostIpAddresses.js +82 -0
- package/build/dist/Utils/Telemetry/HostIpAddresses.js.map +1 -0
- package/jest.config.json +2 -0
- package/package.json +1 -1
- package/tsconfig.json +12 -1
|
@@ -17,6 +17,10 @@ import TableColumn, {
|
|
|
17
17
|
getTableColumns,
|
|
18
18
|
} from "../../../Types/Database/TableColumn";
|
|
19
19
|
import TableColumnType from "../../../Types/Database/TableColumnType";
|
|
20
|
+
import {
|
|
21
|
+
coerceNumericColumnValue,
|
|
22
|
+
isNumericTableColumnType,
|
|
23
|
+
} from "../../../Types/Database/NumericColumnValue";
|
|
20
24
|
import { getFirstColorFieldColumn } from "../../../Types/Database/ColorField";
|
|
21
25
|
import Dictionary from "../../../Types/Dictionary";
|
|
22
26
|
import Email from "../../../Types/Email";
|
|
@@ -727,6 +731,16 @@ export default class DatabaseBaseModel extends BaseEntity {
|
|
|
727
731
|
json[key] as JSONArray,
|
|
728
732
|
tableColumnMetadata.modelType,
|
|
729
733
|
);
|
|
734
|
+
} else if (isNumericTableColumnType(tableColumnMetadata.type)) {
|
|
735
|
+
/*
|
|
736
|
+
* An `<input type="number">` hands back a string, so the dashboard
|
|
737
|
+
* posts "10" for a number column. This is the one place that knows
|
|
738
|
+
* the column's declared type, and it runs on both sides of the
|
|
739
|
+
* wire — ModelForm on the way out, BaseAPI on the way in — so a
|
|
740
|
+
* number column holds a number before any hook or validator reads
|
|
741
|
+
* it. See Types/Database/NumericColumnValue.
|
|
742
|
+
*/
|
|
743
|
+
(baseModel as any)[key] = coerceNumericColumnValue(json[key]);
|
|
730
744
|
} else {
|
|
731
745
|
(baseModel as any)[key] = json[key];
|
|
732
746
|
}
|
|
@@ -594,6 +594,15 @@ export default class Host extends BaseModel {
|
|
|
594
594
|
})
|
|
595
595
|
public hostType?: string = undefined;
|
|
596
596
|
|
|
597
|
+
/*
|
|
598
|
+
* `text`, not varchar(500). A Docker/Kubernetes host with IPv6 enabled
|
|
599
|
+
* reports one host.ip entry per interface — physical NICs, docker
|
|
600
|
+
* bridges, every veth, plus an IPv6 link-local per interface. Real
|
|
601
|
+
* reports of 55 addresses / ~1450 characters exist, and the count grows
|
|
602
|
+
* with the number of containers, so any fixed bound is the wrong shape
|
|
603
|
+
* here. Overflowing it used to abort the whole Host metadata write and
|
|
604
|
+
* strand the host as "disconnected" (issue #3006).
|
|
605
|
+
*/
|
|
597
606
|
@ColumnAccessControl({
|
|
598
607
|
create: [],
|
|
599
608
|
read: [
|
|
@@ -614,17 +623,16 @@ export default class Host extends BaseModel {
|
|
|
614
623
|
})
|
|
615
624
|
@TableColumn({
|
|
616
625
|
required: false,
|
|
617
|
-
type: TableColumnType.
|
|
626
|
+
type: TableColumnType.VeryLongText,
|
|
618
627
|
canReadOnRelationQuery: true,
|
|
619
628
|
title: "Host IP Addresses",
|
|
620
629
|
description:
|
|
621
|
-
"Comma-separated list of IP
|
|
630
|
+
"Comma-separated list of every IP address reported by the OTel host.ip resource attribute, in the order the collector reported them, deduplicated. The Hosts list shows the most routable one (IPv4, non-loopback, non-link-local) first; the host detail page groups them all by category.",
|
|
622
631
|
example: "192.168.1.42, 10.0.0.5",
|
|
623
632
|
})
|
|
624
633
|
@Column({
|
|
625
634
|
nullable: true,
|
|
626
|
-
type: ColumnType.
|
|
627
|
-
length: ColumnLength.LongText,
|
|
635
|
+
type: ColumnType.VeryLongText,
|
|
628
636
|
})
|
|
629
637
|
public hostIpAddresses?: string = undefined;
|
|
630
638
|
|
|
@@ -375,6 +375,7 @@ import MonitorOwnerRule from "./MonitorOwnerRule";
|
|
|
375
375
|
import MonitorLabelRule from "./MonitorLabelRule";
|
|
376
376
|
import StatusPageOwnerRule from "./StatusPageOwnerRule";
|
|
377
377
|
import StatusPageLabelRule from "./StatusPageLabelRule";
|
|
378
|
+
import StatusPageMonitorRule from "./StatusPageMonitorRule";
|
|
378
379
|
import HostOwnerRule from "./HostOwnerRule";
|
|
379
380
|
import HostLabelRule from "./HostLabelRule";
|
|
380
381
|
import ServiceOwnerRule from "./ServiceOwnerRule";
|
|
@@ -559,6 +560,7 @@ const AllModelTypes: Array<{
|
|
|
559
560
|
MonitorLabelRule,
|
|
560
561
|
StatusPageOwnerRule,
|
|
561
562
|
StatusPageLabelRule,
|
|
563
|
+
StatusPageMonitorRule,
|
|
562
564
|
HostOwnerRule,
|
|
563
565
|
HostLabelRule,
|
|
564
566
|
ServiceOwnerRule,
|
|
@@ -193,15 +193,16 @@ export default class KubernetesContainer extends BaseModel {
|
|
|
193
193
|
})
|
|
194
194
|
@TableColumn({
|
|
195
195
|
required: true,
|
|
196
|
-
type: TableColumnType.
|
|
196
|
+
type: TableColumnType.LongText,
|
|
197
197
|
canReadOnRelationQuery: true,
|
|
198
198
|
title: "Pod Name",
|
|
199
|
-
description:
|
|
199
|
+
description:
|
|
200
|
+
"metadata.name of the parent Pod. Generated pod names (deployment + replicaset hash + pod hash) routinely run past 100 characters, so this is a 500-char column rather than the usual 100.",
|
|
200
201
|
})
|
|
201
202
|
@Column({
|
|
202
203
|
nullable: false,
|
|
203
|
-
type: ColumnType.
|
|
204
|
-
length: ColumnLength.
|
|
204
|
+
type: ColumnType.LongText,
|
|
205
|
+
length: ColumnLength.LongText,
|
|
205
206
|
})
|
|
206
207
|
public podName?: string = undefined;
|
|
207
208
|
|
|
@@ -214,15 +214,16 @@ export default class KubernetesResource extends BaseModel {
|
|
|
214
214
|
})
|
|
215
215
|
@TableColumn({
|
|
216
216
|
required: true,
|
|
217
|
-
type: TableColumnType.
|
|
217
|
+
type: TableColumnType.LongText,
|
|
218
218
|
canReadOnRelationQuery: true,
|
|
219
219
|
title: "Name",
|
|
220
|
-
description:
|
|
220
|
+
description:
|
|
221
|
+
"Kubernetes resource name (metadata.name). Kubernetes allows DNS-subdomain names up to 253 characters, so this is a 500-char column rather than the usual 100.",
|
|
221
222
|
})
|
|
222
223
|
@Column({
|
|
223
224
|
nullable: false,
|
|
224
|
-
type: ColumnType.
|
|
225
|
-
length: ColumnLength.
|
|
225
|
+
type: ColumnType.LongText,
|
|
226
|
+
length: ColumnLength.LongText,
|
|
226
227
|
})
|
|
227
228
|
public name?: string = undefined;
|
|
228
229
|
|
|
@@ -449,7 +450,7 @@ export default class KubernetesResource extends BaseModel {
|
|
|
449
450
|
})
|
|
450
451
|
@TableColumn({
|
|
451
452
|
required: false,
|
|
452
|
-
type: TableColumnType.
|
|
453
|
+
type: TableColumnType.LongText,
|
|
453
454
|
canReadOnRelationQuery: true,
|
|
454
455
|
title: "Controller Deployment Name",
|
|
455
456
|
description:
|
|
@@ -457,8 +458,8 @@ export default class KubernetesResource extends BaseModel {
|
|
|
457
458
|
})
|
|
458
459
|
@Column({
|
|
459
460
|
nullable: true,
|
|
460
|
-
type: ColumnType.
|
|
461
|
-
length: ColumnLength.
|
|
461
|
+
type: ColumnType.LongText,
|
|
462
|
+
length: ColumnLength.LongText,
|
|
462
463
|
})
|
|
463
464
|
public controllerDeploymentName?: string = undefined;
|
|
464
465
|
|
|
@@ -7,6 +7,7 @@ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessCo
|
|
|
7
7
|
import TableBillingAccessControl from "../../Types/Database/AccessControl/TableBillingAccessControl";
|
|
8
8
|
import ColumnLength from "../../Types/Database/ColumnLength";
|
|
9
9
|
import ColumnType from "../../Types/Database/ColumnType";
|
|
10
|
+
import { getBigIntDatabaseTransformer } from "../../Types/Database/BigIntColumnTransformer";
|
|
10
11
|
import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
|
|
11
12
|
import EnableDocumentation from "../../Types/Database/EnableDocumentation";
|
|
12
13
|
import TableColumn from "../../Types/Database/TableColumn";
|
|
@@ -436,26 +437,14 @@ export default class LogDropFilter extends BaseModel {
|
|
|
436
437
|
type: ColumnType.BigPositiveNumber,
|
|
437
438
|
nullable: false,
|
|
438
439
|
default: 0,
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
* Postgres bigint comes back from the driver as a string. The UI
|
|
448
|
-
* renders this as a number, so normalize here rather than making
|
|
449
|
-
* every reader remember.
|
|
450
|
-
*/
|
|
451
|
-
from: (value: string | null | undefined): number | null => {
|
|
452
|
-
if (value === null || value === undefined) {
|
|
453
|
-
return null;
|
|
454
|
-
}
|
|
455
|
-
const parsed: number = parseInt(value, 10);
|
|
456
|
-
return isNaN(parsed) ? null : parsed;
|
|
457
|
-
},
|
|
458
|
-
},
|
|
440
|
+
/*
|
|
441
|
+
* Shared transformer, not an inline one: it has to preserve `undefined`
|
|
442
|
+
* so this NOT NULL column's DEFAULT 0 is what a create actually gets.
|
|
443
|
+
* An inline transformer that mapped `undefined` to `null` made every
|
|
444
|
+
* drop-filter insert fail the not-null constraint. See
|
|
445
|
+
* Types/Database/BigIntColumnTransformer.
|
|
446
|
+
*/
|
|
447
|
+
transformer: getBigIntDatabaseTransformer(),
|
|
459
448
|
})
|
|
460
449
|
public droppedCount?: number = undefined;
|
|
461
450
|
|
|
@@ -192,7 +192,7 @@ export default class PodmanResource extends BaseModel {
|
|
|
192
192
|
})
|
|
193
193
|
@TableColumn({
|
|
194
194
|
required: true,
|
|
195
|
-
type: TableColumnType.
|
|
195
|
+
type: TableColumnType.LongText,
|
|
196
196
|
canReadOnRelationQuery: true,
|
|
197
197
|
title: "Name",
|
|
198
198
|
description:
|
|
@@ -200,8 +200,8 @@ export default class PodmanResource extends BaseModel {
|
|
|
200
200
|
})
|
|
201
201
|
@Column({
|
|
202
202
|
nullable: false,
|
|
203
|
-
type: ColumnType.
|
|
204
|
-
length: ColumnLength.
|
|
203
|
+
type: ColumnType.LongText,
|
|
204
|
+
length: ColumnLength.LongText,
|
|
205
205
|
})
|
|
206
206
|
public name?: string = undefined;
|
|
207
207
|
|
|
@@ -232,7 +232,7 @@ export default class PodmanResource extends BaseModel {
|
|
|
232
232
|
})
|
|
233
233
|
@TableColumn({
|
|
234
234
|
required: false,
|
|
235
|
-
type: TableColumnType.
|
|
235
|
+
type: TableColumnType.LongText,
|
|
236
236
|
canReadOnRelationQuery: true,
|
|
237
237
|
title: "Image Name",
|
|
238
238
|
description:
|
|
@@ -240,8 +240,8 @@ export default class PodmanResource extends BaseModel {
|
|
|
240
240
|
})
|
|
241
241
|
@Column({
|
|
242
242
|
nullable: true,
|
|
243
|
-
type: ColumnType.
|
|
244
|
-
length: ColumnLength.
|
|
243
|
+
type: ColumnType.LongText,
|
|
244
|
+
length: ColumnLength.LongText,
|
|
245
245
|
})
|
|
246
246
|
public imageName?: string = undefined;
|
|
247
247
|
|
|
@@ -493,6 +493,97 @@ export default class ServiceLevelObjective extends BaseModel {
|
|
|
493
493
|
})
|
|
494
494
|
public monitors?: Array<Monitor> = undefined;
|
|
495
495
|
|
|
496
|
+
@ColumnAccessControl({
|
|
497
|
+
create: [
|
|
498
|
+
Permission.ProjectOwner,
|
|
499
|
+
Permission.ProjectAdmin,
|
|
500
|
+
Permission.CreateServiceLevelObjective,
|
|
501
|
+
],
|
|
502
|
+
read: [
|
|
503
|
+
Permission.ProjectOwner,
|
|
504
|
+
Permission.ProjectAdmin,
|
|
505
|
+
Permission.ProjectMember,
|
|
506
|
+
Permission.Viewer,
|
|
507
|
+
Permission.ReadServiceLevelObjective,
|
|
508
|
+
],
|
|
509
|
+
update: [
|
|
510
|
+
Permission.ProjectOwner,
|
|
511
|
+
Permission.ProjectAdmin,
|
|
512
|
+
Permission.EditServiceLevelObjective,
|
|
513
|
+
],
|
|
514
|
+
})
|
|
515
|
+
@TableColumn({
|
|
516
|
+
required: false,
|
|
517
|
+
type: TableColumnType.EntityArray,
|
|
518
|
+
modelType: Label,
|
|
519
|
+
title: "Auto-Add Monitors With Labels",
|
|
520
|
+
description:
|
|
521
|
+
"Monitor labels that automatically attach monitors to this SLO. Any monitor in the project carrying at least one of these labels is added to the Monitors list, and is removed again when it stops carrying any of them.",
|
|
522
|
+
})
|
|
523
|
+
@ManyToMany(
|
|
524
|
+
() => {
|
|
525
|
+
return Label;
|
|
526
|
+
},
|
|
527
|
+
{ eager: false },
|
|
528
|
+
)
|
|
529
|
+
@JoinTable({
|
|
530
|
+
name: "ServiceLevelObjectiveMonitorLabel",
|
|
531
|
+
inverseJoinColumn: {
|
|
532
|
+
name: "labelId",
|
|
533
|
+
referencedColumnName: "_id",
|
|
534
|
+
},
|
|
535
|
+
joinColumn: {
|
|
536
|
+
name: "serviceLevelObjectiveId",
|
|
537
|
+
referencedColumnName: "_id",
|
|
538
|
+
},
|
|
539
|
+
})
|
|
540
|
+
public monitorLabels?: Array<Label> = undefined;
|
|
541
|
+
|
|
542
|
+
/*
|
|
543
|
+
* Bookkeeping shadow of `monitors`: the subset of attached monitors that the
|
|
544
|
+
* label rule put there. Without it the rule could not tell a monitor it
|
|
545
|
+
* added from one a human attached by hand, so "this monitor no longer
|
|
546
|
+
* matches, detach it" would silently delete deliberate, manual attachments.
|
|
547
|
+
* Root-only: it is derived state, never something a client sets.
|
|
548
|
+
*/
|
|
549
|
+
@ColumnAccessControl({
|
|
550
|
+
create: [],
|
|
551
|
+
read: [
|
|
552
|
+
Permission.ProjectOwner,
|
|
553
|
+
Permission.ProjectAdmin,
|
|
554
|
+
Permission.ProjectMember,
|
|
555
|
+
Permission.Viewer,
|
|
556
|
+
Permission.ReadServiceLevelObjective,
|
|
557
|
+
],
|
|
558
|
+
update: [],
|
|
559
|
+
})
|
|
560
|
+
@TableColumn({
|
|
561
|
+
required: false,
|
|
562
|
+
type: TableColumnType.EntityArray,
|
|
563
|
+
modelType: Monitor,
|
|
564
|
+
title: "Auto Added Monitors",
|
|
565
|
+
description:
|
|
566
|
+
"Monitors that were attached to this SLO by its label rule rather than by hand. Maintained by the server.",
|
|
567
|
+
})
|
|
568
|
+
@ManyToMany(
|
|
569
|
+
() => {
|
|
570
|
+
return Monitor;
|
|
571
|
+
},
|
|
572
|
+
{ eager: false },
|
|
573
|
+
)
|
|
574
|
+
@JoinTable({
|
|
575
|
+
name: "ServiceLevelObjectiveAutoAddedMonitor",
|
|
576
|
+
inverseJoinColumn: {
|
|
577
|
+
name: "monitorId",
|
|
578
|
+
referencedColumnName: "_id",
|
|
579
|
+
},
|
|
580
|
+
joinColumn: {
|
|
581
|
+
name: "serviceLevelObjectiveId",
|
|
582
|
+
referencedColumnName: "_id",
|
|
583
|
+
},
|
|
584
|
+
})
|
|
585
|
+
public autoAddedMonitors?: Array<Monitor> = undefined;
|
|
586
|
+
|
|
496
587
|
@ColumnAccessControl({
|
|
497
588
|
create: [
|
|
498
589
|
Permission.ProjectOwner,
|
|
@@ -44,6 +44,7 @@ import {
|
|
|
44
44
|
ManyToOne,
|
|
45
45
|
} from "typeorm";
|
|
46
46
|
import UptimePrecision from "../../Types/StatusPage/UptimePrecision";
|
|
47
|
+
import StatusPageReportPeriodType from "../../Types/StatusPage/StatusPageReportPeriodType";
|
|
47
48
|
import { DEFAULT_STATUS_PAGE_LANGUAGE } from "../../Types/StatusPage/StatusPageLanguage";
|
|
48
49
|
|
|
49
50
|
@OperationalResource()
|
|
@@ -2633,6 +2634,100 @@ export default class StatusPage extends BaseModel {
|
|
|
2633
2634
|
})
|
|
2634
2635
|
public reportDataInDays?: number = undefined;
|
|
2635
2636
|
|
|
2637
|
+
@ColumnAccessControl({
|
|
2638
|
+
create: [
|
|
2639
|
+
Permission.ProjectOwner,
|
|
2640
|
+
Permission.ProjectAdmin,
|
|
2641
|
+
Permission.ProjectMember,
|
|
2642
|
+
Permission.StatusPageAdmin,
|
|
2643
|
+
Permission.StatusPageMember,
|
|
2644
|
+
Permission.CreateProjectStatusPage,
|
|
2645
|
+
],
|
|
2646
|
+
read: [
|
|
2647
|
+
Permission.ProjectOwner,
|
|
2648
|
+
Permission.ProjectAdmin,
|
|
2649
|
+
Permission.ProjectMember,
|
|
2650
|
+
Permission.Viewer,
|
|
2651
|
+
Permission.StatusPageAdmin,
|
|
2652
|
+
Permission.StatusPageMember,
|
|
2653
|
+
Permission.StatusPageViewer,
|
|
2654
|
+
Permission.ReadProjectStatusPage,
|
|
2655
|
+
],
|
|
2656
|
+
update: [
|
|
2657
|
+
Permission.ProjectOwner,
|
|
2658
|
+
Permission.ProjectAdmin,
|
|
2659
|
+
Permission.ProjectMember,
|
|
2660
|
+
Permission.StatusPageAdmin,
|
|
2661
|
+
Permission.StatusPageMember,
|
|
2662
|
+
Permission.EditProjectStatusPage,
|
|
2663
|
+
],
|
|
2664
|
+
})
|
|
2665
|
+
@TableColumn({
|
|
2666
|
+
type: TableColumnType.ShortText,
|
|
2667
|
+
defaultValue: StatusPageReportPeriodType.Rolling,
|
|
2668
|
+
title: "Report Period Type",
|
|
2669
|
+
description:
|
|
2670
|
+
"Should the report cover a rolling number of days, or the previous whole calendar period?",
|
|
2671
|
+
})
|
|
2672
|
+
@Column({
|
|
2673
|
+
type: ColumnType.ShortText,
|
|
2674
|
+
nullable: true,
|
|
2675
|
+
default: StatusPageReportPeriodType.Rolling,
|
|
2676
|
+
})
|
|
2677
|
+
@ColumnBillingAccessControl({
|
|
2678
|
+
read: PlanType.Free,
|
|
2679
|
+
update: PlanType.Growth,
|
|
2680
|
+
create: PlanType.Free,
|
|
2681
|
+
})
|
|
2682
|
+
public reportPeriodType?: StatusPageReportPeriodType = undefined;
|
|
2683
|
+
|
|
2684
|
+
@ColumnAccessControl({
|
|
2685
|
+
create: [
|
|
2686
|
+
Permission.ProjectOwner,
|
|
2687
|
+
Permission.ProjectAdmin,
|
|
2688
|
+
Permission.ProjectMember,
|
|
2689
|
+
Permission.StatusPageAdmin,
|
|
2690
|
+
Permission.StatusPageMember,
|
|
2691
|
+
Permission.CreateProjectStatusPage,
|
|
2692
|
+
],
|
|
2693
|
+
read: [
|
|
2694
|
+
Permission.ProjectOwner,
|
|
2695
|
+
Permission.ProjectAdmin,
|
|
2696
|
+
Permission.ProjectMember,
|
|
2697
|
+
Permission.Viewer,
|
|
2698
|
+
Permission.StatusPageAdmin,
|
|
2699
|
+
Permission.StatusPageMember,
|
|
2700
|
+
Permission.StatusPageViewer,
|
|
2701
|
+
Permission.ReadProjectStatusPage,
|
|
2702
|
+
],
|
|
2703
|
+
update: [
|
|
2704
|
+
Permission.ProjectOwner,
|
|
2705
|
+
Permission.ProjectAdmin,
|
|
2706
|
+
Permission.ProjectMember,
|
|
2707
|
+
Permission.StatusPageAdmin,
|
|
2708
|
+
Permission.StatusPageMember,
|
|
2709
|
+
Permission.EditProjectStatusPage,
|
|
2710
|
+
],
|
|
2711
|
+
})
|
|
2712
|
+
@TableColumn({
|
|
2713
|
+
type: TableColumnType.ShortText,
|
|
2714
|
+
defaultValue: Timezone.UTC,
|
|
2715
|
+
title: "Report Timezone",
|
|
2716
|
+
description:
|
|
2717
|
+
"The timezone report periods and send times are resolved in. A monthly report in this timezone runs from the 1st at 00:00 to the last day at 23:59.",
|
|
2718
|
+
})
|
|
2719
|
+
@Column({
|
|
2720
|
+
type: ColumnType.ShortText,
|
|
2721
|
+
nullable: true,
|
|
2722
|
+
default: Timezone.UTC,
|
|
2723
|
+
})
|
|
2724
|
+
@ColumnBillingAccessControl({
|
|
2725
|
+
read: PlanType.Free,
|
|
2726
|
+
update: PlanType.Growth,
|
|
2727
|
+
create: PlanType.Free,
|
|
2728
|
+
})
|
|
2729
|
+
public reportTimezone?: Timezone = undefined;
|
|
2730
|
+
|
|
2636
2731
|
@ColumnAccessControl({
|
|
2637
2732
|
create: [
|
|
2638
2733
|
Permission.ProjectOwner,
|