- Added global P50, P95, and P99 latency calculations to the TracesDashboard component.
- Introduced a new formatDuration function to format latency values for display.
- Updated service summaries to include per-service P50 and P95 latencies.
- Improved the layout of the dashboard to display overall requests, error rates, and latency metrics.
- Refactored service health indicators to visually represent error rates with color coding.
- Adjusted the display of recent errors and slow requests for better user experience.
- Updated E2E tests for admin and public dashboards to include response type checks.
- Implemented MonitorUtil for managing monitor secrets and populating them in monitor steps and tests.
- Created StackTraceParser to parse and structure stack traces from various programming languages.
- Developed SyslogParser to handle and parse syslog messages in both RFC 5424 and RFC 3164 formats.
- Added ManualAPI for manually triggering workflows via GET and POST requests.
- Introduced WorkflowAPI for updating workflows with authorization checks.
- Created documentation for JavaScript and Webhook components.
- Established WorkflowFeatureSet to initialize routing and job processing.
- Developed QueueWorkflow service for managing workflow queue operations.
- Implemented RunWorkflow service to execute workflows with error handling and logging.
- Added utility for loading component metadata dynamically.
- Added @pyroscope/nodejs dependency to package.json and package-lock.json.
- Implemented Pyroscope API routes in Telemetry/Index.ts.
- Created new Pyroscope API handler in Telemetry/API/Pyroscope.ts to manage profile ingestion.
- Defined pprof protocol buffer schema in Telemetry/ProtoFiles/pprof/profile.proto.
- Developed PyroscopeIngestService for processing and converting pprof profiles to OTLP format.
- Enhanced error handling and request validation in the Pyroscope ingestion process.
- Integrated profiling initialization in Probe, Telemetry, TestServer, and Worker services.
- Added environment variables for enabling profiling in various services.
- Created Profiling utility to handle CPU profiling and send data to OTLP endpoint.
- Introduced new metric types for exceptions, spans, and dashboards.
- Developed utility classes for handling alert and incident metrics.
- Added new React components for displaying alert and incident metrics in the dashboard.
- Introduced DashboardTemplateCard component for displaying dashboard templates.
- Added DashboardTemplates enum and DashboardTemplate interface to define available templates.
- Implemented template selection in the Dashboards page to allow users to create dashboards from predefined templates.
- Enhanced MetricQueryConfig to manage metric attributes and display settings more effectively.
- Updated MetricView to improve loading states and error handling for metric results.
- Refactored DashboardChartComponent to streamline metric alias data handling and improve UI presentation.
- Created DNS Monitor documentation to outline DNS health checks and configuration options.
- Added Domain Monitor documentation for tracking domain registration status and expiration.
- Introduced Exceptions Monitor documentation for monitoring application exceptions and error patterns.
- Added Incoming Request Monitor documentation for heartbeat monitoring via service pings.
- Created IP Monitor documentation for monitoring the availability of IPv4 and IPv6 addresses.
- Added Kubernetes Monitor documentation for monitoring cluster health and performance metrics.
- Introduced Logs Monitor documentation for monitoring application logs and triggering alerts.
- Created Manual Monitor documentation for manually managed monitor statuses.
- Added Metrics Monitor documentation for monitoring custom application and infrastructure metrics.
- Introduced Ping Monitor documentation for monitoring host availability via ICMP requests.
- Created Port Monitor documentation for monitoring specific TCP/UDP port availability.
- Added Profiles Monitor documentation for monitoring continuous profiling data from applications.
- Introduced SSL Certificate Monitor documentation for monitoring SSL/TLS certificate validity and expiration.
- Created Traces Monitor documentation for monitoring distributed traces and alerting on span patterns.
- Introduced a new hero card for AI Auto-Fix with a fuchsia theme, linking to the AI agent product page.
- Added a hero card for AI Copilot with a violet theme, also linking to the AI agent product page, utilizing an icon for visual representation.
- Updated product showcase to include a new feature card for Scheduled Maintenance with relevant details and icons.
- Modified product tabs to include a new tab for Scheduled Maintenance, ensuring it integrates with existing navigation.
- Enhanced features table to accommodate the Scheduled Maintenance feature card, expanding the grid layout for better visibility.
- Simplified useEffect dependencies in ProfileTimeline component.
- Streamlined option rendering in ProfileTypeSelector component.
- Reformatted TelemetryDocumentation component for better readability.
- Improved formatting and consistency in AuthenticationSettings and Branding pages.
- Removed unused imports in ProfileViewPage.
- Enhanced code readability in StatusPageDelete component.
- Consolidated RouteMap definitions for better clarity.
- Cleaned up API response handling in PublicDashboard and DashboardViewPage.
- Refactored ProfileSample and DashboardAPI for improved code structure.
- Updated migration scripts for better readability and consistency.
- Enhanced incident and profile aggregation services for better clarity.
- Cleaned up telemetry ingestion service for improved readability.
- Improved test cases for OtelProfilesIngestService for better clarity.
- Implemented ProfileMonitor in MonitorTelemetryMonitor.ts to handle profile monitoring.
- Created DiffFlamegraph component for visualizing profile differences.
- Added ProfileTimeline component to display profile data over time.
- Introduced ProfileTypeSelector for selecting profile types.
- Developed ServiceProfiles page to display profiles for a specific service.
- Added ProfileMonitorCriteria for evaluating profile monitoring criteria.
- Implemented PprofEncoder for encoding profile data into pprof-compatible format.
- Defined ProfileMonitorResponse interface for structured profile monitoring responses.
- Updated BlankCanvas.tsx to utilize new dashboard size utilities for dynamic unit sizing and spacing.
- Enhanced BlankDashboardUnit.tsx to simplify unit rendering and remove unnecessary props.
- Modified BlankRow.tsx to eliminate redundant props and streamline unit rendering.
- Refactored Index.tsx to implement grid layout using CSS properties for better responsiveness.
- Improved DashboardBaseComponent.tsx by removing unused pixel helpers and optimizing drag/resize logic.
- Updated OpenTelemetry profiles roadmap documentation to reflect completed phases and remaining tasks.
- Implemented ProfileTable component to visualize profiles with advanced filtering options.
- Integrated telemetry services and attributes loading for dynamic filtering.
- Added error handling and loading states for improved user experience.
feat: Create ProfileUtil for stack frame parsing and formatting
- Introduced ProfileUtil class with methods for frame type color coding and stack frame parsing.
- Added utility functions for formatting profile values based on units.
docs: Add documentation for telemetry profiles integration
- Created comprehensive guide on sending continuous profiling data to OneUptime.
- Included supported profile types, setup instructions, and instrumentation examples.
feat: Implement ProfileAggregationService for flamegraph and function list retrieval
- Developed ProfileAggregationService to aggregate profile samples and generate flamegraphs.
- Added functionality to retrieve top functions based on various metrics.
feat: Define MonitorStepProfileMonitor interface for profile monitoring
- Created MonitorStepProfileMonitor interface and utility for building queries based on monitoring parameters.
test: Add example OTLP profiles payload for testing
- Included example JSON payload for OTLP profiles to assist in testing and integration.
- Implemented ProfilesRoutes for navigating to profiles-related pages.
- Created Profiles page with service count and documentation display.
- Added Profiles documentation page for ingestion setup.
- Developed Profile view page for detailed profiling information.
- Introduced Profiles layout and side menu for navigation.
- Enhanced breadcrumbs for profiles navigation.
- Updated telemetry type to include profiles.
- Refactored ArgumentsForm to improve UI for additional queries.
- Adjusted DashboardToolbar and DashboardView styles for consistency.
- Introduced `profiles_service.proto` to define the ProfilesService for exporting resource profiles.
- Implemented `OtelProfilesIngestService` to handle ingestion of profiles, including processing and flushing to the database.
- Created `ProfilesQueueService` to manage profile ingestion jobs.
- Added comprehensive tests for `OtelProfilesIngestService`, covering stack frame resolution, timestamp parsing, and row building for profiles and samples.
feat: Update AuthenticationSettings to prevent fetching existing model on edit
feat: Modify StatusPageDelete to display master password status and prevent fetching existing model on edit
feat: Expand OpenTelemetry Profiles roadmap with detailed implementation steps and considerations
- Added modal for setting and updating master passwords in DashboardAuthenticationSettings and StatusPageDelete components.
- Updated UI elements to reflect the master password status and provide appropriate actions.
- Enhanced descriptions to clarify the security implications of the master password feature.
- Refactored API calls in DashboardAPI to simplify logo and favicon file handling.
- Updated OpenTelemetry profiles documentation to include new message structures and important migration notes.
- Simplified arrow function syntax in MasterPassword.tsx and DashboardAPI.ts
- Consolidated logger.debug statements in PublicDashboard.ts and DashboardDomainAPI.ts
- Reformatted multi-line statements for better clarity in various files
- Updated migration files for consistent naming conventions and formatting
- Enhanced code structure in DashboardDomainService.ts and MonitorTelemetryMonitor.ts
- Incremented version number to 10.0.40
- Implemented DashboardCanvas component for rendering dashboard.
- Created Index.tsx for application entry point with routing setup.
- Developed AllPages.tsx to export main pages: DashboardView, MasterPassword, NotFound, and Forbidden.
- Added DashboardVariableSelector for managing dashboard variables.
- Built DashboardViewPage to display the dashboard with variable selection and auto-refresh functionality.
- Created Forbidden and NotFound pages for access control and error handling.
- Implemented MasterPassword page for secure access to dashboards.
- Added server-side utility for fetching public dashboard data.
- Established API utility for handling requests specific to the public dashboard.
- Configured routing and page mapping for public dashboard navigation.
- Set up TypeScript configuration for the PublicDashboard FeatureSet.
- Created index.ejs for rendering the public dashboard application.
- Introduced DashboardDomain model with comprehensive fields for managing custom domains for dashboards.
- Implemented DashboardDomainAPI for handling CNAME verification and SSL provisioning.
- Created DashboardDomainService to manage domain-related operations, including SSL ordering and CNAME validation.
- Added master password handling in DashboardAPI for enhanced security.
- Defined constants for master password messages and cookie management.
- Enhanced styling for ComponentPortViewer and ComponentReturnValueViewer components, including updated typography and layout.
- Replaced ErrorMessage with inline messages for better user experience when no ports or return values are present.
- Improved the visual hierarchy and spacing in the ComponentSettingsModal, adding sections for Identity, Documentation, Configuration, Connections, and Output.
- Refactored ComponentsModal to streamline component selection and improve search functionality with better UI elements.
- Updated Workflow component styles for a more modern look, including adjustments to edge styles and background settings.
- Introduced KubernetesAffectedResource and KubernetesResourceBreakdown interfaces to enhance metric monitoring capabilities.
- Updated MetricMonitorResponse to include kubernetesResourceBreakdown.
- Enhanced AreaChart, BarChart, and LineChart components with onValueChange prop for better interactivity.
- Added new Dashboard components: Gauge and Table, with respective configuration arguments.
- Implemented DashboardVariableSelector for dynamic variable selection in dashboards.
- Added warning and critical thresholds to DashboardValueComponent and DashboardChartComponent for improved data visualization.
- Updated DashboardChartComponentUtil to support additional queries and chart types.
- Enhanced error handling and loading states in Dashboard components.
- Introduced new metric query specifications for Istio and Linkerd.
- Refactored metric data fetching to utilize a unified query builder.
- Added a global time range picker for metrics visualization.
- Created reusable MeshSection component for displaying metrics.
- Updated UI to present Istio and Linkerd metrics in organized sections.
- Introduced AreaChart component for area visualization.
- Updated MetricCharts to use AREA chart type instead of LINE for non-bar charts.
- Enhanced ChartGroup to support AreaChart alongside existing Line and Bar charts.
- Modified ChartColors utility to include hex values for color mapping.
- Adjusted LineChart to utilize dynamic curve types based on props.
- Refactored KubernetesYamlTab for improved styling and responsiveness.
- Updated tooltip and legend functionalities for better user interaction.
- Added support for notification rule conditions and filters in incident and alert summaries.
- Introduced utility functions for bold text and links in markdown formatting.
- Updated incident and alert value builders to include labels and descriptions.
- Enhanced summary blocks with improved formatting for total counts, severity, and state breakdowns.
- Refactored detailed incident and alert listings to use new formatting utilities.
- Improved overall readability and consistency of markdown output for notifications.
- Introduced a new column `sendFirstReportAt` to the `WorkspaceNotificationSummary` table.
- Updated default values for `rotation` and `restrictionTimes` columns in the `OnCallDutyPolicyScheduleLayer` table.
- Adjusted the logic in SendSummary.ts to calculate the next send time based on the recurring interval before updating the nextSendAt field.
- Implemented WorkspaceNotificationSummaryAPI to handle notification summary requests.
- Created WorkspaceNotificationSummaryService for business logic related to notification summaries.
- Added enums for WorkspaceNotificationSummaryItem and WorkspaceNotificationSummaryType to define summary items and types.
- Developed a cron job to send workspace notification summaries at regular intervals.
- Enhanced error handling and logging for summary sending process.
- Improved formatting and consistency in various Kubernetes view files, including HPADetail, HPAs, Index, Jobs, Layout, Namespaces, NodeDetail, Nodes, PersistentVolumes, Pods, ServiceMesh, SideMenu, StatefulSets, VPADetail, and VPAs.
- Removed unnecessary line breaks and adjusted indentation for better readability.
- Simplified conditional checks and array methods for clarity.
- Enhanced the overall structure of the code to follow best practices.
- Added KubernetesTemplatePicker and KubernetesMetricPicker components for selecting alert templates and metrics.
- Updated KubernetesMonitorStepForm to support quick setup, custom metrics, and advanced configurations.
- Integrated query parameters for pre-filling template and cluster selections.
- Improved user experience with tabs for different setup modes (Quick, Custom, Advanced).
- Updated descriptions and functionality in MonitorStep and Alerts pages to reflect new features.
- Introduced KubernetesMetricCatalog for managing Kubernetes metrics and their properties.
- Implemented KubernetesClusterServiceMesh component to display Istio and Linkerd metrics.
- Created KubernetesClusterVPADetail component for detailed views of Vertical Pod Autoscalers (VPA).
- Added KubernetesClusterVPAs component to list all VPAs in a cluster.
- Introduced KubernetesAlertTemplates for monitoring various Kubernetes conditions, including CrashLoopBackOff, Pod Pending, Node Not Ready, and more.
- Developed MonitorStepKubernetesMonitor interface for Kubernetes monitoring configurations.
- Added StatusBadge component to display the status of Kubernetes namespaces, nodes, PVCs, PVs, and StatefulSets with appropriate color coding.
- Implemented a new KubernetesEnvVarsTab component to show environment variables for containers, including search functionality and handling of secret values.
- Refactored existing code in NamespaceDetail, NodeDetail, PVCDetail, PVDetail, PodDetail, and StatefulSetDetail to utilize StatusBadge for improved status representation.
- Updated Pods component to correctly parse memory limits from container resources.
- Added StatusBadge component for consistent status representation across the dashboard.
- Introduced AlertBanner component for displaying cluster health and node pressure alerts.
- Implemented FilterButtons component for improved event filtering options.
- Created ResourceUsageBar for visualizing resource usage in pods.
- Developed StackedProgressBar for displaying pod health breakdown.
- Added ConditionsTable for displaying conditions with improved styling and functionality.
- Enhanced existing components (DeploymentDetail, Events, Index, PodDetail) to utilize new UI components and improve overall user experience.
- Added top CPU and memory pod consumers to the Kubernetes cluster overview.
- Implemented node pressure indicators for memory, disk, and PID pressure.
- Introduced recent warning events section in the cluster overview.
- Added YAML tab for viewing resource specifications in Job, Namespace, Node, Pod, PVC, PV, and StatefulSet details.
- Updated side menu to display resource counts for various Kubernetes objects.
- Enhanced node detail view with roles, internal IP, and pressure conditions.
- Improved error handling and loading states in the YAML tab component.
Replace inadequate <script> tag regex with proper sanitization:
- Server-side: override marked's html renderer to escape raw HTML tokens
- Client-side: sanitize preview output with DOMPurify before rendering
- Implemented KubernetesClusterPVCDetail and KubernetesClusterPVCs components to display PVC details and list.
- Created KubernetesClusterPVs component to list all Persistent Volumes in the cluster.
- Updated routing and page mapping for PVCs and PVs.
- Enhanced existing Kubernetes components to utilize new utility functions for better data handling.
- Removed unused InfoCard components for a cleaner UI.
- Added yAxisValueFormatter to metric queries for better chart representation.
- Updated Helm chart to include PVC and PV data collection.
TypeORM sorts migrations by the timestamp in the last 13 chars of the
class name. Migration 1773761409952 (ALTER TABLE) had a lower timestamp
than 1774000000000 (CREATE TABLE), causing it to run first on a
non-existent table and crash the app during startup.
Renamed 1773761409952 → 1774000000001 so the CREATE TABLE migration
executes first.
- Simplified error handling in KubernetesEventsTab and KubernetesLogsTab by removing unnecessary line breaks.
- Consolidated import statements in KubernetesMetricsTab for better readability.
- Improved JSX formatting in KubernetesOverviewTab, KubernetesClusterContainerDetail, and other components for consistency.
- Enhanced code clarity in KubernetesObjectFetcher and KubernetesObjectParser by removing redundant line breaks and comments.
- Streamlined API response handling in IPWhitelistAPI for better readability.
- Updated PageSEO configuration for improved formatting.
- Implemented DaemonSets view with resource fetching and metrics display.
- Created DeploymentDetail page to show metrics for specific deployments.
- Added Deployments view to list all deployments in a Kubernetes cluster.
- Developed JobDetail page for displaying metrics related to jobs.
- Introduced Jobs view to list all jobs in the cluster.
- Created NamespaceDetail page to show metrics for specific namespaces.
- Added Namespaces view to list all namespaces in the cluster.
- Implemented StatefulSetDetail page for metrics related to stateful sets.
- Created StatefulSets view to list all stateful sets in the cluster.
- Improved formatting and readability in Kubernetes PodDetail and SideMenu components.
- Added service count fetching and loading/error handling in Logs, Metrics, and Traces pages.
- Updated Exception and Kubernetes routes for better readability.
- Enhanced Postgres migration scripts for KubernetesCluster and KubernetesClusterLabel.
- Minor formatting adjustments in MarkdownViewer and CriticalPath utility.
- Refactored EmptyState, MonitorSummaryView, and hooks in MobileApp for improved clarity.
- Fixed minor issues in MonitorDetailScreen and MonitorsScreen regarding status display.
- Implemented a new migration for the KubernetesCluster and KubernetesClusterLabel tables in the database.
- Created a KubernetesClusterService for managing cluster instances, including methods for finding or creating clusters, updating their status, and marking disconnected clusters.
- Introduced a Helm chart for the OneUptime Kubernetes Monitoring Agent, including configuration files, deployment templates, and RBAC settings.
- Added support for collecting metrics and logs from Kubernetes clusters using OpenTelemetry.
- Configured service accounts, secrets, and resource limits for the agent's deployment and daemonset.
- Provided detailed notes and helper templates for the Helm chart to facilitate installation and configuration.
- Added CriticalPathUtil class to compute self-time, critical path, and service breakdown for spans in distributed traces.
- Introduced SpanData, SpanSelfTime, CriticalPathResult, and ServiceBreakdown interfaces for structured data handling.
- Created API for fetching monitor data, including fetching all monitors, monitor details, statuses, and feeds.
- Developed MonitorCard component for displaying individual monitor information.
- Implemented MonitorsScreen and MonitorDetailScreen for listing and detailing monitors, respectively.
- Added hooks for managing monitor data fetching and state.
- Integrated navigation for monitor detail views.
The uptime history bar chart and its time labels were hidden on mobile
via `hidden sm:block` and `hidden sm:flex` classes. Replaced with
`overflow-x-auto` so the chart is visible and horizontally scrollable
on small screens.
Fixes#2049
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Introduced detailed plans for enhancing OneUptime's metrics and traces capabilities to match and exceed industry standards.
- Metrics roadmap includes features like percentile aggregations, rate calculations, multi-attribute grouping, rollups, and advanced visualizations.
- Traces roadmap outlines improvements such as trace analytics, RED metrics, trace-based alerting, and enhanced visualization options like flame graphs and critical path analysis.
- Both roadmaps emphasize phased implementation, quick wins, and verification strategies to ensure robust feature delivery and performance.
- Added missing commas in migration index.
- Improved formatting of permission descriptions for better readability.
- Enhanced dependency array formatting in useEffect hooks in LogsViewer component.
- Cleaned up JSON normalization in LogDetailsPanel for better readability.
- Refactored LogSearchBar component for improved readability and structure.
- Simplified filter logic in AnalyticsTooltip and LogsAnalyticsView components.
- Streamlined LogScrubRuleService methods for better clarity and consistency.
- Updated OtelLogsIngestService to improve readability of async calls.
- Enhanced LogFilterEvaluator comments and formatting for better understanding.
- Removed unused fields from LogPipelines settings page.
- Added FilterCondition component for managing individual filter conditions.
- Created FilterQueryBuilder component to build and manage filter queries for log pipelines.
- Introduced ProcessorForm component for creating log pipeline processors with various configurations.
- Added SeverityMappingRow component for managing severity mappings in the Severity Remapper processor.
- Implemented database migration for LogScrubRule table.
- Updated schema migrations to include new migration for LogScrubRule.
- Added keyboard shortcuts for navigating logs using 'j' and 'k', and focusing the search bar with '/'.
- Implemented logic to reset the focused row index when displayed logs change.
- Integrated a ref for the LogSearchBar to allow programmatic focus.
- Updated LogsTable to visually indicate the focused row.
- Enhanced LogsAnalyticsView with a new tooltip component for better data representation.
- Refactored LogSearchBar and LogsFilterCard to support forwarding refs.
- Improved styling and accessibility across various components.
- Implemented LogPipelineProcessor model with necessary fields and access controls.
- Created LogDropFilterAction enum for defining actions on log drop filters.
- Introduced LogPipelineProcessorType enum and configuration interfaces for various processor types.
- Developed LogExport utility for exporting logs in CSV and JSON formats.
- Added LogDropFilterService for managing drop filters with caching.
- Implemented LogPipelineService for loading and processing log pipelines with processors.
- Created LogFilterEvaluator for evaluating filter queries against log entries.
- Updated GitHub Actions workflows to implement a matrix strategy for building Docker images across multiple architectures (linux/amd64 and linux/arm64).
- Introduced new jobs for merging multi-arch manifests after building images, ensuring proper tagging and pushing to Docker Hub and GitHub Container Registry.
- Enhanced the `build_docker_images.sh` script to append architecture suffixes to tags for single-platform builds, preventing tag collisions.
- Added a new script `merge_docker_manifests.sh` to create and push multi-arch manifests for built images.
- Removed redundant Docker metadata actions and streamlined the build process for clarity and efficiency.
style(LogsViewer): format export types for better readability
style(LogsAnalyticsView): clean up function formatting and improve readability
chore: bump version to 10.0.30
- Introduced a new view mode "analytics" to the LogsViewer component.
- Created LogsAnalyticsView component to handle analytics display.
- Updated LogsViewerToolbar to allow switching between "list" and "analytics" views.
- Enhanced LogsViewer to manage internal state for view mode and handle changes.
- Updated types to include LogsViewMode for better type safety.
- Refactored main content rendering logic to conditionally display analytics or logs table.
- Introduced `LogSavedView` model to manage saved log views in the database.
- Created migration to add `LogSavedView` table with necessary fields and constraints.
- Implemented `LogSavedViewService` for CRUD operations on saved views.
- Enhanced `LogsViewerToolbar` to include buttons for saving views and selecting saved views.
- Added `ColumnSelector` component for managing visible columns in the logs table.
- Created `SavedViewsDropdown` component for selecting and managing saved views.
- Updated types to support new saved views and column options.
- Introduced retentionDate column to Log, Metric, Span, and MonitorLog models for per-service data retention.
- Implemented TTL configuration using retentionDate to enable automatic data deletion in ClickHouse.
- Added skip indexes for improved query performance on relevant columns in Log, Span, Metric, and Exception models.
- Updated ingestion services to compute and store retentionDate based on service-specific retention settings.
- Created a data migration to add retentionDate columns and skip indexes to existing telemetry tables.
- Deprecated the cron job for data deletion, transitioning to ClickHouse's native TTL mechanism.
Fixes#2348
Alerts without monitors were causing workspace notifications to crash with:
TypeError: Cannot read properties of null (reading 'id')
This restores proper null handling that was accidentally removed in
commit 76ab3a8cd6.
- Updated arrow functions to use explicit return statements in several files for clarity.
- Adjusted formatting and indentation for better code structure.
- Simplified some conditional checks and improved variable declarations.
- Enhanced error handling in Workflow feature set for documentation retrieval.
- Ensured consistent use of TypeScript types across components.
- Add FacetValueRow component for displaying facet values with counts and actions.
- Introduce HistogramTooltip component for displaying histogram data with severity colors.
- Create LogSearchBar component for improved log searching with suggestions and query syntax.
- Implement LogSearchSuggestions component for displaying search suggestions.
- Develop LogsFacetSidebar component for displaying filters and facets in the sidebar.
- Add LogsHistogram component for visualizing log volume over time with severity differentiation.
- Create severityColors utility for managing severity color mappings.
- Document the roadmap for enhancing log management capabilities, including search UX, analytics, and operational features.
- Deleted the otel-collector job from GitHub workflows and related deployment configurations.
- Updated Helm charts to remove references to the OpenTelemetry Collector, including its deployment and service definitions.
- Added gRPC server functionality directly in the telemetry service to handle telemetry ingestion.
- Updated environment variables and Docker configurations to reflect the removal of the OpenTelemetry Collector.
- Adjusted telemetry service to support both HTTP and gRPC protocols for telemetry data.
- Added breadcrumbs to the documentation content for improved navigation.
- Refined header layout by adjusting the category badge and title positioning.
- Updated the head partial to include JetBrains Mono font and dynamic page titles.
- Enhanced the header with a search button and version indicator.
- Improved navigation structure with icons for each category and collapsible sections.
- Updated pagination to provide a more visually appealing layout with clear previous/next links.
- Introduced callout styles for notes, warnings, tips, and other alerts in markdown rendering.
- Implemented slug generation for headings to enable anchor links.
- Enhanced table rendering for better styling and responsiveness in documentation.
The compiled CSS alone didn't cover all utility classes used in the
docs EJS templates, breaking styling. Restore the CDN but improve
CLS by:
- Loading critical CSS first with layout-stabilizing rules
(header height, sidebar width, body flex, nav width)
- Loading Tailwind CDN before compiled CSS so both are ready at
first paint
- Compiled CSS now supplements (font-face, prose, syntax) rather
than conflicting
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove redundant Tailwind CDN from /docs pages (fixes CLS 0.21 → <0.1)
The compiled CSS in style.css already contains all needed utilities;
the CDN was re-processing styles causing layout shifts on 35 desktop URLs.
- Defer PostHog analytics via requestIdleCallback to unblock rendering
- Reduce Google Fonts to wght@400..800 (only weights actually used)
- Move meta charset/viewport to top of <head> for faster parsing
- Add defer to highlight.js on blog posts to unblock LCP
- Add DNS prefetch for PostHog domain
These changes target the 311 mobile URLs with LCP >2.5s and
35 desktop URLs with CLS >0.1 reported by Google Search Console.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Removed workflow service from docker-compose files.
- Updated environment configuration to remove workflow port.
- Implemented new ComponentCodeAPI, ManualAPI, and WorkflowAPI for handling workflow operations.
- Created QueueWorkflow service for managing workflow queue operations.
- Developed RunWorkflow service to execute workflows with improved error handling and logging.
- Added component metadata loading utility for dynamic component management.
- Introduced documentation for JavaScript and Webhook components.
- Enhanced overall structure and organization of workflow feature set.
Resolve conflicts by accepting master's deletion of Dashboard/package-lock.json
and StatusPage/package-lock.json.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Created NotFound.ejs for 404 error page with user-friendly messaging and navigation.
- Added ServerError.ejs for 500 error handling with retry and documentation links.
- Introduced Content.ejs partial for structured article content display.
- Developed Head.ejs partial for consistent head elements across pages.
- Implemented Header.ejs partial for navigation and branding.
- Created Nav.ejs partial for sidebar navigation with dynamic links.
- Added OpenSourceCommitment.ejs partial to highlight open-source contributions.
- Implemented Pagination.ejs partial for navigation between documentation sections.
- Updated package.json in StatusPage to correct dependency path for Common.
- Enhanced main package.json with new scripts for building and watching frontend applications.
- Modified tsconfig.json to exclude frontend directories from compilation.
- Simplified Nginx configuration by removing individual upstreams for each service and routing all to a single app upstream.
- Refactored configure.sh to streamline Dockerfile generation.
- Cleaned up docker-compose files by consolidating services and removing unnecessary definitions.
- Introduced new frontend handling logic in Index.ts for rendering different frontend applications.
- Added utility functions for managing status page data and RSS feeds in StatusPage.ts.
- Created dev.sh and frontend-run.sh scripts to facilitate development and build processes for frontend applications.
- Deleted package.json and tsconfig.json for IsolatedVM.
- Removed isolated-vm upstream configuration from Nginx default.conf.template.
- Removed ISOLATED_VM_PORT and telemetry settings from config.example.env.
- Cleaned up docker-compose.base.yml by removing isolated-vm service and its environment variables.
- Updated docker-compose.dev.yml to eliminate isolated-vm service and its associated volumes.
- Removed isolated-vm service from docker-compose.yml.
- Added McpTypes.ts for defining JSON schema and tool information.
- Created ModelType.ts and OneUptimeOperation.ts enums for model types and operations.
- Implemented MCPLogger for structured logging in MCP servers.
- Integrated MCP routes into the main application index.
- Updated package.json to include @modelcontextprotocol/sdk dependency.
- Removed MCP-related configurations from Helm chart and Docker Compose files.
- Added Data Processing Agreement (DPA) page and route to the legal section.
- Updated legal.ejs to include a link to the new DPA page.
- Implemented Probe registration endpoint to handle global probes.
- Created Server Monitor ingestion API with endpoints for secret key verification and response ingestion.
- Developed job processing functions for incoming request and probe ingestion.
- Added middleware for probe authorization and request type definitions.
- Enhanced monitor utility functions to populate secrets in monitor steps.
- Introduced queue stats and failed jobs endpoints for server monitor.
- Added "Release" and "Environment" columns to the TelemetryExceptionTable and OccurrenceTable components for better context on exceptions.
- Introduced StackFrameViewer component to display structured stack frames from exceptions, supporting various programming languages.
- Implemented StackTraceParser utility to parse raw stack traces into structured frames, identifying application vs. library code.
- Updated OtelTracesIngestService to extract release and environment information from resource attributes and include parsed frames in exception payloads.
- Enhanced ExceptionUtil to handle release and environment properties in exception status updates.
- Added comprehensive tests for StackTraceParser covering multiple programming languages and edge cases.
- Introduced External Status Page Monitor to monitor third-party status pages.
- Implemented fetching logic for Atlassian Statuspage, RSS, and Atom feeds.
- Added new types and interfaces for handling external status page responses.
- Created UI components for configuring and displaying external status page monitors.
- Updated documentation to include details on the new monitor type and its configuration options.
- Created NotFound.ejs for 404 error page with navigation and header.
- Added ServerError.ejs for 500 error page with retry and documentation link.
- Introduced Content.ejs partial for displaying documentation articles.
- Implemented Head.ejs partial for consistent head elements across pages.
- Developed Header.ejs partial for site header with navigation links.
- Created Nav.ejs partial for documentation navigation structure.
- Added OpenSourceCommitment.ejs partial to highlight open-source contributions.
- Implemented Pagination.ejs partial for navigation between documentation pages.
Track clicks on 'Get started free' and 'Request demo' CTAs via
gtag events (cta_get_started, cta_request_demo) and GTM dataLayer.
This enables GA4 conversion tracking for CTA clicks, which was
previously missing (GA audit found zero conversion events).
Uses event delegation so it automatically tracks all CTA links
including dynamically rendered ones.
Added to: homepage, pricing, demo, blog posts, blog list,
status page, and industry pages.
- Added isolated-vm dependency for secure script execution.
- Replaced direct Playwright usage in SyntheticMonitor with a worker process.
- Created SyntheticMonitorWorker to handle script execution in a sandboxed environment.
- Implemented proxy configuration handling for worker processes.
- Enhanced error handling and logging for script execution results.
- Removed unnecessary browser session management from SyntheticMonitor.
- Simplified style definitions in AlertCard, EpisodeCard, FeedTimeline, IncidentCard, AlertDetailScreen, AlertEpisodeDetailScreen, and others by using multi-line formatting.
- Enhanced the layout of components in HomeScreen, MyOnCallPoliciesScreen, and SettingsScreen for better maintainability.
- Updated text styles for better clarity and consistency across screens.
- Updated package.json to include whois-json dependency.
- Created DomainMonitorCriteria class for evaluating domain monitoring criteria.
- Added DomainMonitorResponse interface to define the structure of domain monitoring responses.
- Introduced MonitorStepDomainMonitor interface and utility for managing domain monitor steps.
- Developed DomainMonitorStepForm component for user input on domain monitoring settings.
- Implemented DomainMonitorView component to display monitoring results and details.
- Added DomainMonitorUtil class for querying domain information using WHOIS data.
- Included parsing methods for name servers and domain status in DomainMonitorUtil.
- Changed dependency for Common in CLI package.json to use npm package @oneuptime/common@latest.
- Updated tsconfig.json to exclude Tests, build, node_modules, and jest.config.json.
- Modified PublishAllPackages.sh to replace Common dependency with the pinned version during publish.
- Added GitHub Actions workflow for testing CLI on pull requests and pushes.
- Added missing newlines at the end of files in MarkdownContent.tsx and RootCauseCard.tsx
- Reformatted shadowColor and color properties in NotesSection.tsx, SegmentedControl.tsx, MainTabNavigator.tsx, HomeScreen.tsx for better readability
- Enhanced code formatting in SectionHeader.tsx and OnCallStackNavigator.tsx for consistency
- Improved readability of getEntityId function in useAllProjectOnCallPolicies.ts
- Refactored conditional rendering in AlertDetailScreen.tsx, AlertEpisodeDetailScreen.tsx, IncidentDetailScreen.tsx, and IncidentEpisodeDetailScreen.tsx for better clarity
- Implement tests for ResourceCommands, ConfigCommands, UtilityCommands, and ErrorHandler.
- Enhance test coverage for command registration and execution, including list, get, create, update, delete, and count operations.
- Introduce tests for credential management and context handling in commands.
- Add error handling tests to ensure graceful exits on API errors and invalid inputs.
- Update jest configuration to exclude test files from coverage and adjust TypeScript settings.
- Added package.json for OneUptime CLI with scripts for development and build processes.
- Included TypeScript configuration (tsconfig.json) with strict type checking and module settings.
- Refactored IncidentsScreen to use theme colors for backgrounds and text.
- Adjusted font sizes and styles across various components for better readability.
- Updated SettingsScreen to enhance layout and visual hierarchy, including removing GlassCard and using View components with theme colors.
- Modified LoginScreen and ServerUrlScreen to improve input field styling and overall layout.
- Revised color tokens in theme/colors.ts for better contrast and accessibility.
- Improved button labels for clarity and consistency.
- Removed unused theme variable from IncidentsScreen.
- Updated SettingsScreen to use GlassCard and LinearGradient for improved UI.
- Refactored LoginScreen and ServerUrlScreen to utilize GradientHeader and GlassCard for consistent styling.
- Introduced GradientButton component for reusable gradient-styled buttons.
- Added Logo component for consistent branding across screens.
- Created NotesSection component to manage and display internal notes.
- Implemented SectionHeader component for better organization of section titles.
- Enhanced color theme with new gradient and accent colors.
- Updated BiometricLockScreen with improved icon layout and shadow effects.
- Refined HomeScreen layout for better spacing and added header gradient.
- Enhanced IncidentDetailScreen with gradient backgrounds and improved badge styling.
- Replaced error handling in IncidentsScreen with a reusable EmptyState component.
- Improved SettingsScreen with a profile header and added icons to settings rows.
- Revamped LoginScreen and ServerUrlScreen with gradient headers and refined input fields.
- Updated color theme to include new gradient properties for better visual consistency.
- Introduced new DNS monitor types and criteria checks in CriteriaFilter.ts.
- Implemented DNS monitor instance creation in MonitorCriteriaInstance.ts.
- Enhanced MonitorStep to support DNS configurations.
- Added DNS response handling in ProbeMonitorResponse.ts.
- Created DNS monitor forms and summary views in the Dashboard.
- Developed DNS query utilities and response handling in MonitorTypes/DnsMonitor.ts.
- Added DNS record types and response structures for better data handling.
- Implemented criteria evaluation for DNS monitoring in DnsMonitorCriteria.ts.
Remove ProjectSelectionScreen as it is no longer needed; integrate project selection into other screens
Update IncidentDetailScreen and IncidentEpisodeDetailScreen to directly receive projectId from route params
Refactor IncidentsScreen to utilize useAllProjectIncidents, useAllProjectIncidentEpisodes, and useAllProjectIncidentStates hooks for better data management
Add new hooks: useAllProjectCounts, useAllProjectAlerts, useAllProjectAlertEpisodes, useAllProjectAlertStates, useAllProjectIncidentEpisodes, and useAllProjectIncidentStates for improved data fetching and state management
Remove useProject hook usage from SettingsScreen and adjust project-related logic accordingly
- Added SectionHeader component for consistent section titles in IncidentEpisodeDetailScreen.
- Updated styles for various text elements to improve readability and accessibility.
- Refined button styles in LoginScreen and ServerUrlScreen for better visual feedback.
- Introduced focus states for input fields in LoginScreen and ServerUrlScreen.
- Enhanced ProjectSelectionScreen with improved project item display.
- Implemented SectionCard component in SettingsScreen for better layout organization.
- Updated color tokens in theme for better visual consistency and added new accent colors.
- Adjusted Tailwind CSS configuration for improved shadow effects and new color variables.
- Removed AlertEpisodesStackNavigator and IncidentEpisodesStackNavigator.
- Integrated AlertEpisodeDetailScreen and IncidentEpisodeDetailScreen into AlertsStackNavigator and IncidentsStackNavigator respectively.
- Updated MainTabNavigator to remove references to the deleted stack navigators.
- Adjusted RootNavigator linking to reflect the new navigation structure.
- Modified types to remove unused stack parameter lists.
- Updated handlers for notifications to navigate to the correct screens.
- Refactored AlertsScreen and IncidentsScreen to support segmented control for toggling between alerts and episodes.
- Added SegmentedControl component for better UI navigation.
- Cleaned up unused screen components and hooks related to episodes.
- Updated background colors for various components to use `backgroundElevated` instead of `backgroundSecondary`.
- Increased padding and border radius for cards and buttons across multiple screens for a more modern look.
- Introduced shadow styles for components to improve depth perception.
- Adjusted header styles in navigators to use `backgroundPrimary` and added subtle borders.
- Added a new `shadows` utility to manage shadow styles consistently across the app.
- Modified text styles for better readability and visual hierarchy.
- Updated spacing constants to include larger values for improved layout.
- Introduced CriteriaFilter, CriteriaIncident, and CriteriaAlert for defining filter conditions and incident configurations.
- Added enums for CheckOn, FilterType, and FilterCondition to specify evaluation aspects and comparison operators.
- Included configurations for various monitor step types: Log, Trace, Metric, and SNMP monitors.
- Implemented a new DataTypeDetail service to handle detailed views for data types.
- Created a DataTypeUtil to manage data type definitions and retrieval.
- Added a new EJS template for displaying data type details, including properties, values, and JSON examples.
- Updated navigation to include a section for data types in both desktop and mobile views.
- Introduced a new DataTypes module to encapsulate data type information and improve maintainability.
- Implemented a new page for creating alerts with a form that includes fields for title, description, severity, state, monitor, on-call policy, labels, root cause, and remediation notes.
- Updated the AlertsTable component to conditionally render a "Create Alert" button based on the disableCreate prop.
- Modified the AlertsLayout to optionally hide the side menu when navigating to the create alert page.
- Enhanced routing to include a new route for the alert creation page and adjusted the side menu visibility accordingly.
- Updated PageMap and RouteMap to include the new alert creation route.
- Added migration to update database schema related to incident and alert policies.
- Updated hooks to return specific types using UseQueryResult for better type safety.
- Refactored various components to explicitly define return types for functions and callbacks.
- Improved type annotations for variables and function parameters in screens and hooks.
- Enhanced readability by restructuring code and ensuring consistent formatting.
- Added missing type imports and ensured proper usage of types from the API.
- Cleaned up unnecessary type assertions and improved overall code clarity.
- Simplified state management and data fetching in IncidentEpisodeDetailScreen.
- Enhanced code clarity by using arrow functions consistently and removing unnecessary destructuring.
- Improved type annotations across various screens for better TypeScript support.
- Streamlined the rendering of components in IncidentEpisodesScreen and IncidentsScreen.
- Updated NotificationPreferencesScreen to use consistent function signatures and improved readability.
- Refactored ProjectSelectionScreen and SettingsScreen for better structure and clarity.
- Enhanced LoginScreen and ServerUrlScreen with clearer type definitions and improved error handling.
- Updated storage utilities to ensure consistent type usage and improved code clarity.
- Refactored theme context and spacing utilities for better type safety and readability.
- Improved color and date utility functions for better maintainability.
- Updated expo-server-sdk in package.json from 3.10.0 to 3.15.0.
- Deleted outdated firebase-push-notifications.md and created new push-notifications.md for clarity.
- Updated navigation links in Nav.ts and README.md to point to the new push-notifications documentation.
feat: implement notification preferences management with local storage
feat: enhance accessibility for alert and incident actions
feat: integrate haptic feedback for user interactions in various screens
refactor: update navigation structure to include settings and notification preferences
- Added haptic feedback on state change actions in IncidentDetailScreen and IncidentEpisodeDetailScreen.
- Replaced ActivityIndicator with SkeletonCard for better loading experience in IncidentDetailScreen and IncidentEpisodeDetailScreen.
- Updated empty state messages in IncidentEpisodesScreen and IncidentsScreen for clarity.
- Refactored SettingsScreen to improve layout and added biometric authentication options.
- Introduced OfflineBanner component to notify users of network issues.
- Created SwipeableCard component for better interaction with list items.
- Implemented useBiometric and useNetworkStatus hooks for managing biometric settings and network status.
- Added BiometricLockScreen for unlocking the app using biometric authentication.
- Introduced preferences storage for theme mode and biometric settings.
- Created IncidentEpisodesStackNavigator for managing navigation between incident episodes list and detail screens.
- Implemented AlertEpisodesScreen to display a list of alert episodes with pagination and refresh functionality.
- Developed AlertEpisodeDetailScreen to show detailed information about a specific alert episode, including state changes and internal notes.
- Added IncidentEpisodesScreen to display a list of incident episodes with similar functionality to the alert episodes screen.
- Created IncidentEpisodeDetailScreen for detailed view of incident episodes, including state management and note-taking features.
- Integrated hooks for fetching data related to alert and incident episodes.
- Added UI components for displaying episode details, actions, and notes.
- Implemented `useAlertDetail`, `useAlertStates`, and `useAlertStateTimeline` hooks for fetching alert details, states, and timelines.
- Created `useAlerts` and `useUnresolvedAlertCount` hooks for managing alerts list and unresolved alert counts.
- Developed `useIncidentDetail`, `useIncidentStates`, and `useIncidentStateTimeline` hooks for incident management.
- Added `useIncidents` and `useUnresolvedIncidentCount` hooks for fetching incidents and unresolved incident counts.
- Introduced `ProjectProvider` and `useProject` hook for managing project selection and state.
- Created `AlertsStackNavigator` and `IncidentsStackNavigator` for navigation between alerts and incidents screens.
- Developed `AlertDetailScreen` and `IncidentDetailScreen` for displaying detailed information about alerts and incidents.
- Added `ProjectSelectionScreen` for selecting projects with loading and error handling.
- Implemented utility functions for color conversion and date formatting.
Highlight the AI agent capabilities - auto-detection, root cause analysis,
and automated code fix PRs. This is our key differentiator and was missing
from the README.
refactor(Migration): update comments for clarity and maintainability
fix(MarkdownEditor): adjust code block formatting for consistency in documentation
- Fire sign_up event on successful registration (Accounts/Register.tsx)
- Fire page_view_pricing event on pricing page load
- Fire page_view_demo event on demo page load
- All events use dataLayer.push for GTM/GA4 compatibility
Changed title pattern from:
'OneUptime vs [Product]: Open-Source Alternative | 2026 Comparison'
To:
'[Product] Alternative - OneUptime | Open Source | 2026 Comparison'
Rationale:
- Puts competitor name first (matches search intent)
- 'Alternative' keyword prominent (what users search for)
- Shorter, more scannable
Also improved meta description to be more action-oriented with clear value props.
Targets: /compare/better-uptime (position 13.5, 803 impressions)
Multiple product pages had identical generic meta descriptions:
'OneUptime monitors websites, APIs, and servers...'
This hurt CTR because Google showed the same text for different pages.
Updated with unique, keyword-rich descriptions:
- /product/status-page: Focus on free, unlimited subscribers, Statuspage alternative
- /product/monitoring: Focus on global locations, alerts, Datadog alternative
- /product/incident-management: Focus on features, integrations
- /product/on-call: Focus on rotations, escalations, PagerDuty alternative
- /about: Focus on open source, GitHub stars, mission
Expected impact: Improved CTR from search results
Google Search Console shows 0/10,519 pages indexed. Root cause: 5,000+
thin tag pages are diluting site quality signals and consuming crawl budget.
Changes:
- Add noindex,follow meta tag to blog tag pages (ListByTag.ejs)
- Remove tag sitemaps from sitemap index (Sitemap.ts)
This tells Google to:
1. Stop trying to index tag pages (they're thin content)
2. Still follow links on those pages to discover real content
3. Focus crawl budget on valuable pages (blog posts, product pages)
Expected impact:
- Improved crawl budget efficiency
- Better quality signals for the domain
- Gradual improvement in indexing of valuable pages
- Updated multiple components and worker jobs to improve the formatting of alert and incident numbers.
- Ensured consistent use of conditional rendering for alert and incident numbers with prefixes.
- Enhanced readability by using multiline return statements for JSX elements.
ModelTable/CardModelDetail only fetch the first key from column field objects.
The WithPrefix fields must be in selectMoreFields to be included in the API query.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Implemented functionality to allow users to set custom prefixes for alert numbers and alert episode numbers in the AlertMoreSettings component.
- Added similar functionality for incident numbers and incident episode numbers in the IncidentMoreSettings component.
- Introduced custom prefixes for scheduled maintenance numbers in the ScheduledMaintenanceMoreSettings component.
- Updated various notification jobs to utilize the new prefix settings for alert, incident, and scheduled maintenance numbers.
- Ensured backward compatibility by maintaining the default '#' prefix when no custom prefix is provided.
- All events captured via Analytics.capture() now also push to GA4 dataLayer
- This enables tracking signups (accounts/register) and other events in GA4
- Works alongside existing PostHog tracking
- Adjusted formatting in PublicNote.tsx for better alignment of imports and function parameters.
- Reformatted episode monitor extraction in Detail.tsx for clarity.
- Enhanced readability of episodes data parsing in List.tsx.
- Implement fetching and displaying active incident episodes on the Status Page.
- Introduce episode public notes and state timelines for enhanced episode details.
- Create EpisodeGroup type to structure episode-related data.
- Update Overview component to integrate episodes alongside incidents.
- Implemented SendNotificationToSubscribers job for IncidentEpisodePublicNote to notify subscribers about new public notes added to episodes.
- Implemented SendNotificationToSubscribers job for IncidentEpisodeStateTimeline to notify subscribers about state changes of episodes.
- Both jobs include logic for fetching relevant episodes, monitors, and subscribers, and sending notifications via email, SMS, Slack, and Microsoft Teams.
- Added error handling and logging for better traceability of notification processes.
- Badge: 'Open Source Alternative' with GitHub link (reinforces positioning)
- H1: 'The Open-Source [Competitor] Alternative' (SEO + clear value prop)
- CTA: 'Start free — no credit card' (removes friction)
- Added trust signal: 'Self-host for free or use our cloud. No vendor lock-in.'
These changes make the compare pages more conversion-focused.
- Title: 'OneUptime | The Open-Source Observability Platform'
- Meta: Focus on unified platform, self-hostable
- H1: 'The Open-Source Observability Platform'
- Sub: Emphasize complete reliability stack (monitoring, incidents, status pages, APM)
Part of GTM refresh to improve SEO and conversion.
- Added missing commas in migration index.
- Improved type annotations for dynamic imports in IncidentService and IncidentSlaRuleService.
- Simplified logger debug messages in IncidentSlaService and IncidentSlaRuleService.
- Cleaned up JSX formatting in IconPicker, NotificationBellDropdown, RoleLabel, and Header components.
- Enhanced readability by restructuring long lines and removing unnecessary line breaks in various components.
- Updated error handling in fetch functions within DashboardHeader to use concise catch blocks.
- Refactored UserSettings and Incident routes for better readability.
- Improved code consistency and formatting in CheckSlaBreaches job.
- Added IncidentSlaStatus enum to define SLA status values.
- Created IncidentSlaRulesPage component for managing SLA rules, including documentation and configuration options.
- Developed IncidentViewSla component to display SLA status and deadlines for incidents.
- Implemented CheckSlaBreaches job to monitor SLA breaches and send notifications.
- Created SendNoteReminders job to automate internal and public note reminders based on SLA rules.
- Introduced new models: ProjectUserProfile and TeamMemberCustomField to manage custom fields for users in projects.
- Implemented services for ProjectUserProfile and TeamMemberCustomField for database interactions.
- Created UI components for managing team member custom fields and user-specific custom fields in settings.
- Updated routing to include new pages for custom fields management.
- Added necessary database migrations for new tables and relationships.
- Enhanced side menu in user settings to navigate to custom fields.
- Updated migration file to include new tables and constraints for incident roles and grouping rules.
- Refactored alert grouping engine service for improved readability.
- Adjusted incident episode role member service for better error logging and code clarity.
- Modified data migration to streamline imports and enhance maintainability.
Updated the instructions to clone the repository with only the release branch.
This will save significant bandwidth and disk space by cloning only the release branch as it exists now, rather than the entire repository with its full history.
The install.The URL is a redirect, for curl to follow it, you must use the -L option, otherwise you get an error.
EG:
root@inf1:~# curl https://oneuptime.com/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 107 100 107 0 0 242 0 --:--:-- --:--:-- --:--:-- 243
bash: line 1: Found.: command not found
- Updated permission arrays in various database model files to ensure consistent formatting by aligning closing brackets.
- Adjusted the `onBeforeCreate` function in the IncidentMembers component for improved readability.
- Cleaned up descriptions in the Permission helper class for better clarity.
- Added a new migration for IncidentRole and IncidentMember tables with appropriate constraints and indexes.
- Introduced IncidentMember model to manage users assigned to incidents with specific roles.
- Created IncidentRole model to define roles that can be assigned during incident response.
- Implemented IncidentMemberService for CRUD operations on incident members.
- Implemented IncidentRoleService for CRUD operations on incident roles with order management.
- Added OnCallUsers page to display and manage users assigned to incidents.
- Added IncidentRoles settings page to define and manage incident roles.
- Updated RouteMap to include new routes for on-call users and incident roles.
- Updated TelemetryIngestionKey, TelemetryUsageBilling, User, WhatsAppLog, Workflow, WorkflowLog, WorkflowVariable, WorkspaceNotificationLog, WorkspaceNotificationRule, WorkspaceProjectAuthToken models to include the new ReadAllProjectResources permission in access control settings.
- Introduced ReadAllProjectResources permission in Permission.ts with a description outlining its purpose and scope.
- Updated MonitorAlert and MonitorIncident classes to handle labels and owner teams/users.
- Enhanced CriteriaAlert and CriteriaIncident types to include labelIds, ownerTeamIds, and ownerUserIds.
- Modified MonitorCriteriaAlertForm and MonitorCriteriaIncidentForm components to support new fields for labels and ownership.
- Integrated dropdown options for labels, teams, and users in MonitorSteps and related components.
- Implemented fetching of labels, teams, and users in MonitorSteps for dynamic dropdowns.
- Introduced CollapsibleSection component for better organization of advanced options in MonitorStep.
- Replaced existing div structures with Card components for improved visual hierarchy.
- Enhanced user experience by adding collapsible sections for API and Website monitor advanced settings.
- Cleaned up code by removing unnecessary comments and consolidating error handling logic.
- Introduced MonitorStepSnmpMonitor interface for SNMP configuration.
- Implemented SNMP version handling with enums for V1, V2c, and V3.
- Created utility classes for handling SNMP OIDs and v3 authentication parameters.
- Developed SNMP Monitor response structure to capture OID responses and status.
- Added UI components for SNMP Monitor configuration including OID editor and v3 auth form.
- Implemented SNMP query logic with retry mechanism and response time tracking.
- Added type definitions for net-snmp library to support SNMP operations.
- Updated the migration script for IncidentGroupingRule to improve structure and readability.
- Added new foreign key constraints and indexes to enhance database integrity.
- Refactored DeleteAccount component to improve layout and readability.
- Improved placeholder text formatting in IncidentGroupingRules page for better clarity.
- Added ProjectService import in BillingService to resolve circular dependency.
- Refactored condition checks in IncidentGroupingEngineService for better readability.
- Implemented IncidentGroupingRuleService to manage incident grouping rules with automatic deletion of old records if billing is enabled.
- Created IncidentGroupingRules page for managing incident grouping rules, including detailed documentation on grouping logic, match criteria, and configuration options.
- Added UI components for creating, editing, and displaying incident grouping rules with various filtering and grouping options.
- Added missing commas in migration index.
- Removed unused imports in IncidentEpisodeService and UserNotificationRuleService.
- Simplified conditional statements and improved code readability in various services.
- Adjusted formatting for better consistency in code style.
- Enhanced error handling and logging in MicrosoftTeamsIncidentEpisodeActions.
- Updated documentation text in IncidentEpisodeDocs for clarity.
- Improved API call structure in IncidentEpisodesTable and IncidentEpisodeFeed.
- Refactored SlackIncidentEpisodeActions for better readability.
- Cleaned up unnecessary code and improved formatting in various components.
- Implemented AutoResolve job to automatically resolve inactive incident episodes.
- Created ResolveInactiveEpisodes job to resolve episodes inactive for over 24 hours.
- Added SendCreatedResourceNotification job to notify owners of newly created incident episodes.
- Developed SendNotePostedNotification job to inform owners when a note is posted on an incident episode.
- Introduced SendOwnerAddedNotification job to notify users when they are added as owners of an incident episode.
- Implemented SendStateChangeNotification job to alert owners of state changes in incident episodes.
- Implemented SlackIncidentEpisodeMessages class to create message blocks for incident episodes in Slack.
- Added IncidentEpisodeWorkspaceMessages class to handle workspace notifications and message blocks for incident episodes.
- Created IncidentEpisodeDocs component to provide a comprehensive guide on incident grouping, including lifecycle, setup steps, and best practices.
- Implemented Episode Internal Note component for managing private notes related to incident episodes.
- Created Layout component for the Incident Episode view, integrating side menu and breadcrumb navigation.
- Developed Owners component to manage teams and users associated with incident episodes.
- Added Postmortem component for documenting postmortem analyses of incidents.
- Introduced Remediation component for capturing remediation notes for incidents.
- Created Root Cause component to document the root causes of incidents.
- Developed SideMenu for navigating through various sections of the Incident Episode view.
- Implemented State Timeline component to track the status changes of incident episodes.
- Added Episodes and Unresolved Episodes pages for listing all incident episodes and unresolved ones respectively.
- Removed project_id variable and its usage from multiple Terraform test files (23-probe-crud, 24-status-page-crud, 25-status-page-with-domain, 26-monitor-steps-basic, 27-monitor-types, 28-incident-crud, 29-alert-crud, 30-scheduled-maintenance-crud, 31-on-call-duty-policy-crud, 32-monitor-group-crud, 33-team-crud, 35-monitor-with-steps, 36-monitor-types-basic, 37-label-order-idempotency).
- Updated ResourceGenerator to treat project_id as computed-only, inferred from API key authentication.
- Adjusted related logic in resource update and delete operations to exclude project_id from requests.
- Updated email templates for alerts and incidents to include alertNumber and incidentNumber in the subject and body.
- Modified PushNotificationUtil to incorporate alert and incident numbers in notification titles and messages.
- Adjusted UserNotificationRuleService to pass alertNumber and incidentNumber for notifications.
- Enhanced SendCreatedResourceNotification, SendNotePostedNotification, SendOwnerAddedNotification, and SendStateChangeNotification jobs to include alert and incident numbers in subjects and messages.
- Updated ScheduledMaintenance notification jobs to reflect scheduledMaintenanceNumber in relevant notifications.
- Updated migration files to enhance readability by adjusting indentation and line breaks.
- Added missing commas in the index file for migration imports.
- Improved accessibility attributes in various UI components by ensuring proper aria-labels and roles.
- Refactored key event handlers in UI components for better clarity and consistency.
- Enhanced error message handling in form components to ensure proper display and accessibility.
- Updated legacy function comments for clarity and maintainability.
refactor(AlertEpisodeService): change variable declaration from let to const for users
refactor(AlertGroupingEngineService): improve code readability with comments and formatting
fix(WhatsAppTemplateUtil): format long lines for better readability
refactor(MicrosoftTeamsAlertEpisodeActions): format code for consistency and readability
refactor(MicrosoftTeams): improve readability by formatting conditional statements
refactor(SlackAlertEpisodeActions): format code for better readability
refactor(AlertEpisodeMemberService.test): improve imports and formatting for clarity
refactor(AlertEpisodeService.test): enhance readability with consistent formatting
refactor(AlertGroupingEngineService.test): improve code readability and formatting
refactor(MarkdownViewer): format imports and improve readability
refactor(BaseModelTable): format helpContent type definition for clarity
refactor(OrderedStatesList): format JSX for better readability
fix(AlertEpisodeDocs): format descriptions for consistency
fix(AlertGroupingRules): format helpContent description for clarity
fix(UserSettingsRoutes): format route path for better readability
fix(ResolveInactiveEpisodes): format conditional statements for clarity
fix(SendCreatedResourceNotification): format code for better readability
fix(SendNotePostedNotification): format code for consistency
fix(SendStateChangeNotification): format code for better readability
- Implement comprehensive tests for AlertEpisodeService covering model instantiation, property accessors, and template rendering.
- Create tests for AlertGroupingEngineService focusing on alert grouping logic, matching criteria, and grouping key generation.
- Develop tests for AlertGroupingRuleService to validate rule properties, match criteria, group settings, and priority ordering.
- Implemented findOwners method in AlertEpisodeService to retrieve user and team owners for alert episodes.
- Added new email templates for alert episode owner notifications: AlertEpisodeOwnerAdded, AlertEpisodeOwnerStateChanged, AlertEpisodeOwnerNotePosted, and AlertEpisodeOwnerResourceCreated.
- Created jobs for sending notifications when an owner is added, a note is posted, and when the state of an alert episode changes.
- Updated routes to include new jobs for alert episode owner notifications.
- Implemented addNote and hasNoteFromSlackMessage methods in AlertEpisodeInternalNoteService.
- Added isEpisodeAcknowledged method in AlertEpisodeService to check acknowledgment status.
- Enhanced OnCallDutyPolicyService to include triggeredByAlertEpisodeId in logs.
- Updated WorkspaceNotificationRuleService to support Alert Episode conditions.
- Introduced new Slack action types for Alert Episodes.
- Extended NotificationRuleEventType and NotificationRuleConditionCheckOn enums for Alert Episodes.
- Modified WorkspaceConnectionMicrosoftTeams and WorkspaceConnectionSlack components to handle Alert Episodes.
- Created SlackAlertEpisodeActions class for managing Alert Episode actions in Slack.
- Implemented emoji reaction handling for private notes in Alert Episodes.
chore(MonitorStep.ts): remove redundant default monitor assignments in getDefaultMonitorStep method
chore(Port.ts): change toJSON method to return port value as a number instead of string
- Updated multiple test files to replace timestamp-based naming with random suffixes for better uniqueness and idempotency.
- Added random provider to each test file to generate unique identifiers.
- Removed unnecessary lifecycle blocks that ignored changes to resource names.
- Ensured consistent naming conventions across all test cases for clarity and maintainability.
- Implemented monitor types tests including variable definitions and verification scripts.
- Created incident CRUD tests with various configurations and verification logic.
- Added alert CRUD tests to validate alert creation and configurations.
- Developed scheduled maintenance CRUD tests to ensure proper handling of maintenance events.
- Established on-call duty policy CRUD tests to validate policy creation and configurations.
- Introduced monitor group CRUD tests to verify group creation and uniqueness.
- Created team CRUD tests to validate team creation and configurations.
- Added missing comma in schema migrations index.
- Reformatted long lines in AlertEpisodeFeedService and AlertEpisodeMemberService for better readability.
- Improved formatting in AlertEpisodeService for destructured variables.
- Enhanced readability in AlertGroupingEngineService by restructuring filter and map functions.
- Cleaned up permission descriptions in Permission.ts for consistency.
- Standardized description formatting in ChangeState and AlertGroupingRules components.
- Improved formatting in Episodes and AlertView components for better readability.
- Added comments for clarity in AutoResolve and BreakInactive jobs.
- Implemented AlertEpisodeViewLayout for displaying episode details.
- Created Owners component to manage team and user ownership of episodes.
- Added RootCause component for documenting the root cause of episodes.
- Developed SideMenu for navigation within the episode view.
- Introduced StateTimeline component to track the status timeline of episodes.
- Created EpisodesPage for listing all alert episodes.
- Added AlertGroupingRulesPage for managing alert grouping rules.
- Implemented UnresolvedEpisodesPage to display active (unresolved) episodes.
- Developed AutoResolve job to automatically resolve episodes based on alert status.
- Created BreakInactive job to resolve inactive episodes after a specified timeout.
- Deleted the detailed migration plan (5-Migration.md) and implementation plan (README.md) for Alert Grouping.
- Introduced a new summary document (Summary.md) outlining key capabilities, data models, grouping types, and on-call policy resolution for the Alert Grouping feature.
- Added a helper function `unwrap_value` to extract values from API responses that may be wrapped in an object format.
- Updated all verification scripts to use `unwrap_value` for fields such as name, description, color, title, and IDs.
- Enhanced checks for boolean fields to handle cases where the API may not return values due to permission issues.
- Ensured consistency across multiple test scripts for better maintainability and readability.
- Added UI components and pages for Alert Suppression including:
- Suppression Rules List Page
- Create/Edit Suppression Rule Page
- Suppressed Alerts Log Page
- Maintenance Windows Calendar View
- Active Maintenance Banner
- Quick Maintenance Modal
- Created migration scripts for new database tables:
- AlertSuppressionGroup
- AlertSuppressionRule
- SuppressedAlertLog
- AlertThrottleState
- Defined rollout strategy and data retention policies for suppressed alerts
- Updated README with implementation plan and architecture diagram
- Implemented verify.sh scripts for the following tests:
- 08-probe: Validate probe resource creation and API response consistency.
- 09-label-crud: Validate label CRUD operations via API.
- 10-monitor-status-crud: Validate monitor status CRUD operations via API.
- 11-incident-severity-crud: Validate incident severity CRUD operations via API.
- 12-status-page-domain: Validate domain and status page resources via API.
- 13-status-page-domain-computed-fields: Validate computed fields for status page domains.
- 14-status-page-server-defaults: Validate server-provided defaults for status pages.
- 15-monitor-server-defaults: Validate server-provided defaults for monitors.
- 16-incident-server-defaults: Validate server-provided defaults for incidents.
- 17-alert-server-defaults: Validate server-provided defaults for alerts.
- 18-scheduled-maintenance-server-defaults: Validate server-provided defaults for scheduled maintenance events.
- 19-on-call-duty-policy-server-defaults: Validate server-provided defaults for on-call duty policies.
Each script checks the API responses against expected values derived from Terraform outputs, ensuring resource integrity and consistency.
- Added a new directory structure for E2E tests under E2E/Terraform/e2e-tests.
- Created scripts for managing the test lifecycle: index.sh, wait-for-services.sh, setup-test-account.sh, run-tests.sh, and cleanup.sh.
- Developed README.md to document the E2E testing process and directory structure.
- Created individual test cases for various resources including labels, monitor statuses, incident severities, incident states, status pages, alert severities, and alert states.
- Configured GitHub Actions workflow for automated testing on pull requests and pushes to main branches.
- Added necessary variable files for each test case to define required inputs.
- Included cookies.txt for session management during API interactions.
- Implemented MigrationName1768825402472 to create tables for IncomingCallPolicy, IncomingCallPolicyEscalationRule, IncomingCallLog, IncomingCallLogItem, UserIncomingCallNumber, and IncomingCallPolicyLabel.
- Added necessary indexes and foreign key constraints for data integrity.
- Updated the User table to drop the alertPhoneNumber column and adjusted OnCallDutyPolicyScheduleLayer defaults.
- Updated index file to include the new migration.
- Deleted migration file for removing alert phone number from User.
- Deleted extensive migration file for IncomingCallPolicy and related tables.
- Deleted migration file for altering OnCallDutyPolicyScheduleLayer and IncomingCallPolicyEscalationRule.
- Updated index file to remove references to deleted migrations.
- Simplified import statements in PhoneNumber.ts and Config.ts.
- Consolidated async function calls in TwilioCallProvider.ts for clarity.
- Enhanced comment formatting and structure in TwilioCallProvider.ts.
- Reformatted SQL migration code for better readability in MigrationName.ts.
- Updated array syntax in Index.ts for consistency.
- Improved formatting and spacing in IncomingCallPolicyEscalationRuleService.ts.
- Standardized JSX formatting in various components for better readability.
- Enhanced conditional rendering logic in IncomingCallPolicies.tsx and Index.tsx.
- Cleaned up unnecessary whitespace and improved code consistency across multiple files.
- Updated TwilioCallProvider to support X-Forwarded-Proto and X-Forwarded-Host headers for improved webhook signature validation when behind proxies.
- Enabled trust proxy in StartServer to ensure correct interpretation of forwarded headers.
- Removed outdated incoming call policy documentation.
- Added Nginx configuration to handle X-Forwarded-Proto and X-Forwarded-Host headers, ensuring proper proxy behavior and preventing crashes when services are unavailable.
- Removed the `ReleasePhoneNumbersForCancelledSubscriptions` job as it is no longer needed.
- Removed the `SendWarningEmailsForPastDueSubscriptions` job due to redundancy.
- Updated `EmailTemplateType` to remove unused email templates related to incoming call policies.
- Adjusted the schema migrations index to include a trailing comma for consistency.
- Cleaned up imports in `Worker/Routes.ts` by removing references to the deleted jobs.
- Introduced UserIncomingCallNumber model to manage phone numbers for incoming call routing.
- Implemented UserIncomingCallNumberAPI for verification and resend functionality.
- Created UserIncomingCallNumberService to handle business logic for incoming call numbers.
- Added IncomingCallNumber component for UI management of incoming call numbers.
- Integrated IncomingCallPhoneNumbers page to display and manage incoming call numbers in user settings.
- Updated routing and breadcrumbs to include Incoming Call Policy section.
- Enhanced BaseAPI to include UserIncomingCallNumberAPI.
- Added a missing comma in the schema migrations index file.
- Improved formatting of the SCIM Logs table description for better readability.
- Refactored the SCIM settings page to enhance code clarity and maintainability, including restructuring form fields and action buttons.
- Updated SCIM URL confirmation modal to improve user instructions and formatting.
- Enhanced error and success modal handling for bearer token resets in the SCIM pages.
- Added detailed execution steps tracking throughout the SCIM BulkOperation, ListUsers, GetUser, CreateUser, UpdateUser, and DeleteUser endpoints.
- Improved logging structure to include execution steps, user info, and additional context in SCIM logs.
- Updated SCIMLogger to handle new fields for query parameters, execution steps, user info, and additional context.
- Ensured all error handling paths also log execution steps for better traceability.
- Implemented ProjectSCIMLog and StatusPageSCIMLog models to store SCIM operation logs.
- Created services for managing ProjectSCIMLog and StatusPageSCIMLog entries with automatic deletion of old logs.
- Developed SCIMLogger utility for creating logs with sanitized sensitive data.
- Added SCIMLogStatus enum to represent the status of SCIM operations.
- Introduced ProjectSCIMLogsTable and StatusPageSCIMLogsTable components for displaying logs in the dashboard.
- Enhanced logging with detailed request/response information and error handling.
- Implement IncomingCallLogItemService, IncomingCallLogService, IncomingCallPolicyService, and IncomingCallPolicyEscalationRuleService for handling database operations.
- Define types for call providers, including AvailablePhoneNumber, PurchasedPhoneNumber, and DialOptions.
- Create IncomingCallStatus enum to manage call statuses.
- Develop IncomingCallPolicies page with model table for managing incoming call policies.
- Add delete functionality for IncomingCallPolicy with a dedicated Delete component.
- Implement escalation rules management for IncomingCallPolicy with a dedicated Escalation component.
- Create detailed view for IncomingCallPolicy with Labels and status indicators.
- Establish layout and side menu for IncomingCallPolicy management.
- Add logs page to view incoming call history associated with policies.
This is a local development server hosted at HOST env variable (please read config.env file). This project is hosted on docker compose for local development. When you make any changes to the codebase the container hot-reloads. Please make sure you wait for it to restart to test. If you need access to the database during development, credentials are in config.env file.
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */
// "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
/*Modules*/
// "module": "es2022" /* Specify what module code is generated. */,
// "rootDir": "./", /* Specify the root folder within your source files. */
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
/*Emit*/
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */
<p class="text-lg text-slate-600 leading-relaxed max-w-2xl">Your API Token needs permissions to create, update, read or delete any resource. If you do not have permissions to make a request a <code class="inline-code">4xx</code> status will be sent as response. You can manage permissions for your API Key in Project Settings > API Keys.</p>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.