Commit Graph

108 Commits

Author SHA1 Message Date
Nawaz Dhandala
a24f9d37a9 Refactor verify scripts to handle API response wrapper formats
- 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.
2026-01-20 18:02:18 +00:00
Nawaz Dhandala
d5332ed494 test: Add idempotency tests for probe_version READ operation 2026-01-20 16:57:30 +00:00
Nawaz Dhandala
88c1e23da9 fix: clean node_modules to prevent permission issues with npm cache in CI 2026-01-20 09:35:58 +00:00
Nawaz Dhandala
1566bd6a21 Add verification scripts for various resources in E2E tests
- 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.
2026-01-19 21:08:05 +00:00
Nawaz Dhandala
d175841b2a feat: enhance Terraform E2E tests with comprehensive API validation and remove CRUD tests 2026-01-19 19:56:39 +00:00
Nawaz Dhandala
290b59dfc9 feat: add Terraform tests for server-provided defaults in incident, alert, scheduled maintenance, and on-call policy configurations 2026-01-19 19:40:56 +00:00
Nawaz Dhandala
ff1feb1a9f feat: add Terraform test for server-provided defaults in monitor configuration 2026-01-19 19:30:06 +00:00
Nawaz Dhandala
b400965384 feat: enhance resource generation with dynamic plan modifier imports and add tests for server-provided defaults 2026-01-19 19:25:37 +00:00
Nawaz Dhandala
08f8200d5b feat: allow auto-verification for test domains and update Terraform test configurations 2026-01-19 18:29:02 +00:00
Nawaz Dhandala
ec8afb2d0b refactor: dynamically discover test directories in run-tests.sh 2026-01-19 17:58:57 +00:00
Nawaz Dhandala
81aeb373c4 feat: add Terraform E2E tests for status page domain and computed fields 2026-01-19 17:57:46 +00:00
Nawaz Dhandala
d7f329fcff feat: add comprehensive CRUD tests for probe, label, monitor status, and incident severity resources 2026-01-19 17:21:10 +00:00
Nawaz Dhandala
13f22b1611 fix: extract API key value correctly from response in setup-test-account.sh 2026-01-19 14:29:53 +00:00
Nawaz Dhandala
f9a89548e2 fix: remove terraform init step for tests using dev_overrides 2026-01-19 14:27:05 +00:00
Nawaz Dhandala
88c55f9e14 fix: correct provider directory path in run-tests.sh script 2026-01-19 14:24:01 +00:00
Nawaz Dhandala
59d6aeb2b4 refactor: remove cleanup function and associated trap from index.sh 2026-01-19 13:36:45 +00:00
Nawaz Dhandala
be6d122879 fix: update cleanup function to use npm run down instead of docker compose 2026-01-19 13:36:33 +00:00
Nawaz Dhandala
b9fcfd5c61 chore: remove unused cookies.txt file from e2e-tests 2026-01-19 13:29:26 +00:00
Nawaz Dhandala
9e902e5b76 fix: update index.sh file permissions to make it executable 2026-01-19 13:29:22 +00:00
Nawaz Dhandala
4fa44b40c9 refactor: remove wait-for-services script and update index.sh to use npm status-check 2026-01-19 13:27:55 +00:00
Nawaz Dhandala
3baa081850 feat: Implement end-to-end tests for Terraform provider
- 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.
2026-01-19 13:27:11 +00:00
simlarsen
79b36c5b27 chore: npm audit fix 2026-01-15 01:57:09 +00:00
Nawaz Dhandala
7ff0da5ab5 fix: Update navigation for Enterprise dropdown and adjust Request Demo link 2026-01-06 11:19:07 +00:00
Nawaz Dhandala
d09228a71d fix(tests): Update navigation link types to use Locator for better type safety
chore: Bump version to 9.2.27
2025-12-23 21:58:44 +00:00
Nawaz Dhandala
e5c48061e4 refactor(tests): Simplify navigation link interactions in pricing and enterprise tests 2025-12-23 21:52:43 +00:00
Nawaz Dhandala
6335887d62 feat: Reduce npm fetch retry timeout values in Dockerfiles 2025-12-16 13:30:12 +00:00
Nawaz Dhandala
c617372e37 feat: Add repository field to package.json files across the project 2025-12-11 21:31:52 +00:00
Nawaz Dhandala
f8802eea24 fix: format code for better readability in Landing.spec.ts 2025-12-05 11:10:15 +00:00
Nawaz Dhandala
5b45cab822 fix: update link selector for OneUptime in Landing.spec.ts 2025-12-05 11:03:33 +00:00
simlarsen
f52e73afb2 chore: npm audit fix 2025-11-25 01:48:46 +00:00
simlarsen
ac239ffe4d chore: npm audit fix 2025-11-20 01:45:52 +00:00
simlarsen
2f102acdc2 chore: npm audit fix 2025-11-13 01:48:58 +00:00
Simon Larsen
888d8d6fbf refactor: clean up code formatting and improve readability across multiple files 2025-11-10 14:36:44 +00:00
simlarsen
bccd2f484b chore: npm audit fix 2025-11-08 01:40:56 +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
3409b0f66e chore(fluent-ingest): remove FluentIngest E2E status check tests 2025-11-07 18:57:06 +00:00
simlarsen
9e5db22235 chore: npm audit fix 2025-11-07 01:46:40 +00:00
Simon Larsen
1ac6e71f7e chore(config,docker,ci,ui): rename IS_ENTERPRISE to IS_ENTERPRISE_EDITION across env, Dockerfiles, compose and workflows 2025-11-03 11:25:12 +00:00
Nawaz Dhandala
1c1a48b78f chore(ci): build/publish enterprise image variants and add IS_ENTERPRISE arg to Dockerfiles 2025-10-31 14:49:07 +00:00
Nawaz Dhandala
b347e18749 chore: update package-locks — add deps, bump versions & sync subdeps
- Update lockfiles for root, TestServer, Worker and Workflow
- Add new/top-level packages and types:
  - @simplewebauthn/server, archiver, botbuilder
  - @types/archiver
- Bump notable package versions:
  - axios, nodemailer, playwright, react-syntax-highlighter
- Sync a large set of transitive dependency upgrades:
  - @babel/* (code-frame, parser, template, types, helpers, helper-*), brace-expansion, braces, fill-range, micromatch, picocolors, cross-spawn, to-regex-range and others
- Remove/clean outdated lock entries (e.g. to-fast-properties removed where unnecessary)
- Add/fix license fields for several packages in the lockfiles
- General lockfile normalization to ensure consistent subdependency versions across packages

This keeps dependency trees aligned across monorepo packages and pulls in recent bug/security fixes from transitive upgrades.
2025-10-29 16:43:36 +00:00
Nawaz Dhandala
6d5bc111ba Refactor comments across multiple files to improve clarity and consistency
- Updated comments in Probe/Config.ts to use block comments for proxy configuration.
- Refactored comments in PortMonitor.ts, SyntheticMonitor.ts, and OnlineCheck.ts to block comments for better readability.
- Adjusted comments in ProbeIngest/API/Monitor.ts and ProbeIngest/API/Probe.ts to block comments for clarity.
- Standardized comments in various data migration scripts to block comments for consistency.
- Modified eslint.config.js to enforce multiline comment style as an error.
2025-10-02 11:53:55 +01:00
Nawaz Dhandala
ad07ab75fe feat: Add elkjs dependency for enhanced functionality 2025-09-10 18:13:59 +01:00
Nawaz Dhandala
e357100e46 refactor: Remove redundant dynamic section checks from sitemap tests 2025-08-19 20:43:08 +01:00
Simon Larsen
7f3a50076d feat: Add reference section check to sitemap tests for improved coverage 2025-08-19 14:25:37 +01:00
Nawaz Dhandala
9f4869b05f test: Enhance sitemap tests to validate presence of dynamic sections 2025-08-19 10:07:11 +01:00
Nawaz Dhandala
17bdfee012 refactor: Simplify regex usage in sitemap tests and improve middleware formatting 2025-08-19 10:05:59 +01:00
Nawaz Dhandala
39e8b1da6b refactor: Enhance type annotations and improve code readability in sitemap tests 2025-08-18 13:47:35 +01:00
Nawaz Dhandala
66c4badd94 refactor: Improve formatting of product pages check in sitemap tests 2025-08-18 13:41:01 +01:00
Simon Larsen
a245fabc34 feat: Add end-to-end tests for sitemap loading and validation 2025-08-18 13:39:19 +01:00
Simon Larsen
1702558d73 chore: update package-lock.json files to add @types/web-push and web-push dependencies
- Added "@types/web-push": "^3.6.4" to multiple package-lock.json files.
- Added "web-push": "^3.6.7" to multiple package-lock.json files.
- Removed "lodash" and "@types/lodash" from multiple package-lock.json files.
2025-07-30 15:21:03 +01:00