89 Commits

Author SHA1 Message Date
Nawaz Dhandala
6f7907102b refactor: remove telemetry hostname references and update backend proxy settings 2026-04-02 14:09:26 +01:00
Nawaz Dhandala
5f398bdb31 Add utility classes for telemetry: Monitor, StackTrace, and Syslog parsing
- 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.
2026-04-02 14:04:13 +01:00
Nawaz Dhandala
ea71c8bd75 feat: Implement Workflow API and Queue Management
- 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.
2026-04-01 22:05:19 +01:00
Nawaz Dhandala
d7a339b9aa feat: Add profiling support across services and implement new metrics
- 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.
2026-03-31 13:44:59 +01:00
Nawaz Dhandala
3c8dc1eee1 feat: Add ProfileTable component for displaying profiling data
- 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.
2026-03-27 11:11:33 +00:00
Nawaz Dhandala
b5bf1d6dd1 feat: Introduce DashboardCNameRecord for custom domain handling in dashboards 2026-03-26 16:38:06 +00:00
Nawaz Dhandala
c4903e5d1c feat: Add IP whitelist API and configuration support 2026-03-18 21:00:37 +00:00
Nawaz Dhandala
c5f04595e8 fix: Remove SERVER_WORKFLOW_HOSTNAME and related references to streamline configuration 2026-03-04 13:43:06 +00:00
Nawaz Dhandala
acaab0fb1a Add documentation views and partials for error handling and content display
- 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.
2026-03-03 19:45:46 +00:00
Nawaz Dhandala
3326f9a1f6 refactor: Remove unused hostname variables from environment configuration and docker-compose 2026-03-03 18:01:37 +00:00
Nawaz Dhandala
c309fafdb6 Remove IsolatedVM service and related configurations from the project
- 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.
2026-03-03 12:25:31 +00:00
Nawaz Dhandala
dc59d59811 feat: Add telemetry API for probe and server monitor ingestion
- 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.
2026-03-02 21:02:24 +00:00
Nawaz Dhandala
7f9ed4d439 feat: refactor SyntheticMonitor to use child processes for script execution
- 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.
2026-02-18 14:14:24 +00:00
Nawaz Dhandala
3cf7c7d1ae refactor: implement push notification relay and enhance Expo integration 2026-02-18 09:56:10 +00:00
Nawaz Dhandala
59b3fc0334 Refactor screens and components for improved readability and consistency
- 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.
2026-02-10 22:29:37 +00:00
Nawaz Dhandala
09d82f64de refactor: remove Firebase Cloud Messaging configuration and related code for push notifications 2026-02-10 21:38:42 +00:00
Nawaz Dhandala
584b79f48c Merge branch 'master' into mob-phase-1 2026-02-10 15:26:41 +00:00
Nawaz Dhandala
f9f5bff4ce feat: add Open Source Deployment webhook support and related configuration 2026-02-10 14:11:03 +00:00
Nawaz Dhandala
54909116b9 mobile phase 1 2026-02-09 23:45:17 +00:00
Nawaz Dhandala
9640732e29 feat: implement Stripe webhook for automatic invoice email sending and add configuration for webhook secret 2026-01-28 11:26:22 +00:00
Nawaz Dhandala
691227dfef feat: Add INBOUND_EMAIL_DOMAIN to frontend environment variable allow list 2026-01-14 09:19:59 +00:00
Nawaz Dhandala
05c15ddd09 feat: Enhance Inbound Email configuration handling and improve error messaging 2026-01-13 22:12:21 +00:00
Nawaz Dhandala
4b738ef85a feat: Remove Incoming Email Ingest Hostname configuration 2026-01-13 22:10:02 +00:00
Nawaz Dhandala
c9e4ac526a feat: Add Incoming Email Monitor functionality
- Implemented Incoming Email Monitor type in MonitorService.
- Created IncomingEmailCriteria for evaluating email criteria.
- Added IncomingEmailMonitorRequest type for handling incoming email data.
- Developed API endpoint for processing incoming email webhooks.
- Introduced queue service for managing incoming email ingestion jobs.
- Enhanced UI components to display incoming email monitor details.
- Updated criteria filter utility to support email-related checks.
- Integrated email processing into the existing monitoring framework.
2026-01-13 21:57:31 +00:00
Nawaz Dhandala
1a7d2a76de Refactor StatusPageApiInternalUrl documentation for clarity and consistency 2026-01-08 20:27:30 +00:00
Nawaz Dhandala
8ed7381356 Refactor exception handling routes for improved readability and organization 2026-01-08 20:15:22 +00:00
Nawaz Dhandala
c2be57e2f0 Refactor StatusPageApiInternalUrl to use AppApiClientUrl for improved clarity in server communication 2026-01-08 19:59:15 +00:00
Nawaz Dhandala
6134fa467c Update StatusPageApiInternalUrl to use correct internal route for server communication 2026-01-08 19:58:03 +00:00
Nawaz Dhandala
8826635920 Refactor StatusPage API integration to use internal URL for server-to-server communication 2026-01-08 13:05:24 +00:00
Nawaz Dhandala
64947413b0 feat: update GitHub App configuration to use GitHubAppName instead of GitHubAppClientId 2025-12-28 20:49:41 +00:00
Nawaz Dhandala
af21ea967a feat: Refactor migration for ServiceCatalogCodeRepository and update related routes 2025-12-15 10:35:29 +00:00
Nawaz Dhandala
f1c7f0a32e feat: Add base64 decoding for GitHub App private key 2025-12-13 12:42:56 +00:00
Nawaz Dhandala
6681640b5f refactor: Clean up code formatting and improve readability in GitHub API and related files 2025-12-12 22:38:58 +00:00
Nawaz Dhandala
f65197a0bf feat: Add Code Repository management features
- Implement CodeRepositoryService for database interactions.
- Enhance GitHub utility functions for app authentication and repository management.
- Introduce new permissions for Code Repository actions (create, delete, edit, read).
- Create Code Repository pages and routes in the dashboard.
- Add side menu and breadcrumbs for Code Repository navigation.
- Implement settings and delete functionality for Code Repositories.
- Update Helm chart to include GitHub App configuration options.
- Modify example environment configuration to include GitHub App credentials.
2025-12-12 22:37:01 +00:00
Nawaz Dhandala
8bf7b8dfa2 feat: add Microsoft Teams app tenant ID configuration 2025-11-25 18:49:26 +00:00
Nawaz Dhandala
deb902463c feat: enhance captcha integration by improving type definitions and refactoring callback functions 2025-11-24 19:11:21 +00:00
Nawaz Dhandala
8642a54fec feat: add captcha configuration and verification support 2025-11-24 12:08:09 +00:00
Nawaz Dhandala
f49b1995df feat(telemetry): add new Telemetry service (OTel, Syslog, Fluent, Metrics, Traces) and unified ingestion pipeline
- Add Telemetry service entrypoint
  - Telemetry/Index.ts: app bootstrap, routes mounting, infrastructure init and Telemetry SDK init.

- Unified queue + worker
  - Telemetry/Jobs/TelemetryIngest/ProcessTelemetry.ts: single worker that dispatches queued jobs to specific processors (logs, traces, metrics, syslog, fluent logs).
  - Telemetry/Services/Queue/TelemetryQueueService.ts: central queue API and job payload types.
  - Per-type Queue wrappers (LogsQueueService, MetricsQueueService, TracesQueueService, FluentLogsQueueService, SyslogQueueService).

- OpenTelemetry ingestion middleware and proto support
  - Telemetry/Middleware/OtelRequestMiddleware.ts: detect OTLP endpoint (logs/traces/metrics), decode protobuf bodies using protobufjs and set product type.
  - Telemetry/ProtoFiles/OTel/v1/*.proto: include common.proto, logs.proto, metrics.proto, resource.proto, traces.proto for OTLP v1 messages.

- Ingest services
  - Telemetry/Services/OtelLogsIngestService.ts: parse incoming OTLP logs, map attributes, convert timestamps, batch insert logs.
  - Telemetry/Services/OtelTracesIngestService.ts: parse OTLP traces, build span rows, extract exceptions, batch insert spans and exceptions, save telemetry exception summary.
  - Telemetry/Services/OtelMetricsIngestService.ts: parse OTLP metrics, normalize datapoints, batch insert metrics and index metric name -> service map.
  - Telemetry/Services/SyslogIngestService.ts: syslog ingestion endpoints, parser integration, map syslog fields to attributes and logs.
  - Telemetry/Services/FluentLogsIngestService.ts: ingest Fluentd style logs, normalize entries and insert into log backend.
  - Telemetry/Services/OtelIngestBaseService.ts: helpers to resolve service name from attributes/headers.

- Syslog parser and utilities
  - Telemetry/Utils/SyslogParser.ts: robust RFC5424 and RFC3164 parser, structured data extraction and sanitization.
  - Telemetry/Tests/Utils/SyslogParser.test.ts: unit tests for parser behavior.

- Telemetry exception utilities
  - Telemetry/Utils/Exception.ts: generate exception fingerprint and upsert telemetry exception status (saveOrUpdateTelemetryException).

- Queue & job integration
  - New integration with Common/Server/Infrastructure/Queue and QueueWorker, job id generation and telemetry job types.
  - Telemetry services add ingestion jobs instead of processing synchronously.

- Config, build and dev tooling
  - Add Telemetry/package.json, package-lock.json, tsconfig.json, nodemon.json, jest config.
  - New script configs and dependencies (protobufjs, ts-node, jest, nodemon, etc).

- Docker / environment updates
  - docker-compose.base.yml, docker-compose.dev.yml, docker-compose.yml: rename service from open-telemetry-ingest -> telemetry and wire TELEMETRY_* envs.
  - config.example.env: rename and consolidate environment variables (OPEN_TELEMETRY_* -> TELEMETRY_*, update hostnames and ports).
  - Tests/Scripts/status-check.sh: update ready-check target to telemetry/status/ready.

- Other
  - Telemetry/Services/Queue/*: export helpers and legacy-compatible job interface shims.
  - Memory cleanup and batching safeguards across ingest services.
  - Logging and capture spans added to key code paths.

BREAKING CHANGES / MIGRATION NOTES:
- Environment variables and docker service names changed:
  - Replace OPEN_TELEMETRY_... vars with TELEMETRY_... (PORT, HOSTNAME, CONCURRENCY, DISABLE_TELEMETRY, etc).
  - docker-compose entries moved from "open-telemetry-ingest" to "telemetry" and image name changed to oneuptime/telemetry.
  - Update any deployment automation and monitoring checks referencing the old service name or endpoints.
- Consumers: OTLP endpoints and behavior remain supported, but ingestion is now queued and processed asynchronously.

Testing / Running:
- Install deps in Telemetry/ (npm install) after syncing Common workspace.
- Run dev: npx nodemon (nodemon.json) or build & start using provided scripts.
- Run tests with jest (Telemetry test suite includes SyslogParser unit tests).

Files added/modified (high level):
- Added many files under Telemetry/: Index, Jobs, Middleware, ProtoFiles, Services, Utils, Tests, package and config artifacts.
- Modified docker-compose.* and config.example.env and status check script to use new TELEMETRY service/vars.
2025-11-07 21:36:47 +00:00
Simon Larsen
69ae1eb310 chore(ci/infra): remove FluentIngest from workflows, charts and compose; bump OpenTelemetryIngest deps
- Remove FluentIngest CI jobs and release/test deploy steps (build.yml, compile.yml, release.yml, test-release.yaml)
- Delete test.fluent-ingest workflow
- Remove Fluent-related env vars/hostnames from config.example.env, docker-compose.base.yml, HelmChart templates and EnvironmentConfig.ts
- Remove fluent-ingest service block from docker-compose.base.yml
- Bump Playwright and TypeORM versions in OpenTelemetryIngest package-lock.json
2025-11-07 18:46:27 +00:00
Nawaz Dhandala
9544dc2a6c chore(env): use explicit callback body for prefix startsWith check in getFrontendEnvVars 2025-11-04 16:47:07 +00:00
Simon Larsen
5f1f0cde4a fix(env): restrict frontend env vars and use sanitized getFrontendEnvVars in env.js
Add getFrontendEnvVars with an allow-list and allowed prefixes to EnvironmentConfig to avoid exposing the entire process.env to the browser. Update StartServer to use getFrontendEnvVars when rendering /env.js and embed the serialized env object directly.
2025-11-04 16:08:47 +00:00
Nawaz Dhandala
5851286548 feat(coressl): add automated Let's Encrypt provisioning for primary host
- add ProvisionPrimaryDomain worker job to order/renew ACME certificates for the HOST
- register job import in Worker Routes
- add ProvisionSsl env flag in Common/Server/EnvironmentConfig
- expose PROVISION_SSL in Helm chart (values.yaml, values.schema.json, _helpers.tpl)
2025-11-03 20:48:07 +00:00
Nawaz Dhandala
d84cfe9b09 refactor(enterprise): register EnterpriseLicense migration and clean up license validation/env config; refactor(edition-label): adjust alert formatting 2025-11-03 18:35:00 +00:00
Nawaz Dhandala
12ff3062de feat(enterprise): add server license validation endpoint and integrate UI
- Add POST /global-config/license handler to validate enterprise license via
  EnterpriseLicenseValidationUrl and store results in GlobalConfig.
- Introduce EnterpriseLicenseValidationUrl in EnvironmentConfig.
- Update EditionLabel to call /global-config/license (POST) for validation,
  remove direct ModelAPI update and ObjectID usage, and replace inline messages
  with Alert component. Minor styling and import cleanup.
2025-11-03 18:21:23 +00:00
Simon Larsen
87d709dd05 feat(enterprise): add EnterpriseLicense model, service and API; register model/service and add IsEnterpriseEdition env flag 2025-11-03 12:19:55 +00:00
Nawaz Dhandala
34737fbba4 feat(telemetry): account for Exceptions in usage billing and add avg exception row size
- Update TelemetryUsageBilling description to include Exceptions.
- Add AverageExceptionRowSizeInBytes env/config (env example, docker-compose, Helm values & schema).
- Use ExceptionInstanceService in TelemetryUsageBillingService to include exception row counts when estimating bytes for Traces.
- Add helper to read average exception row size and adjust billing calculations.
2025-10-27 16:26:46 +00:00
Nawaz Dhandala
e6fd4b8304 refactor(types): add explicit typings for env parser and telemetry billing
Add a full function signature for parsePositiveNumberFromEnv and strengthen typing in TelemetryUsageBillingService: import TelemetryServiceModel, type telemetryServices as Array<TelemetryServiceModel>, and annotate count results as PositiveNumber for traces, logs and metrics to improve type-safety and readability.
2025-10-23 20:02:57 +01:00
Nawaz Dhandala
4a3a743dcd chore(format): normalize multiline argument formatting in EnvironmentConfig and TelemetryUsageBillingService 2025-10-23 19:53:09 +01:00
Nawaz Dhandala
b1bc02cec4 feat(env): add average telemetry row size env vars with validation
- introduce parsePositiveNumberFromEnv helper in EnvironmentConfig.ts
- add AverageSpan/Log/MetricRowSizeInBytes exports with positive-number parsing and defaults
- document AVERAGE_* vars in config.example.env and expose them in docker-compose.base.yml
2025-10-23 19:49:24 +01:00
Nawaz Dhandala
73cc5f8f9e fix: update route handling in EnvironmentConfig for consistency 2025-10-16 15:04:52 +01:00