Compare commits

..

2669 Commits

Author SHA1 Message Date
Simon Larsen
2f517d8dcc feat: Update SCIM documentation URLs to use environment configuration 2025-08-05 11:00:18 +01:00
Simon Larsen
cb5c4dce45 feat: Add SCIM API documentation for user provisioning and deprovisioning 2025-08-05 10:52:57 +01:00
Simon Larsen
d9abeda60d feat: Refactor SCIM utility functions for improved modularity and logging 2025-08-05 10:33:38 +01:00
Simon Larsen
15c4c89310 feat: Add StatusPageSCIM model and related database migration
- Implemented StatusPageSCIM model with necessary fields and access controls.
- Created migration script to set up StatusPageSCIM table in the database.
- Developed StatusPageSCIMService for handling SCIM configurations, including bearer token generation.
- Added SCIM management page in the dashboard with functionalities for creating, editing, and resetting bearer tokens.
2025-08-05 10:07:24 +01:00
Simon Larsen
8c1d5652f4 feat: Change button style type for resetting bearer token to outline 2025-08-04 22:14:31 +01:00
Nawaz Dhandala
fbf87cf8d4 refactor: Add type annotations to formatUserForSCIM and resetBearerToken functions for improved type safety 2025-08-04 22:10:06 +01:00
Nawaz Dhandala
1c12ad94dd fix: Add type annotations for improved type safety in SCIM and Metrics modules 2025-08-04 22:07:10 +01:00
Nawaz Dhandala
aa09bab7c9 Refactor SCIM migrations and models; update formatting and improve readability
- Added missing comma in AllModelTypes array in Index.ts.
- Refactored MigrationName1754304193228 to improve query formatting and readability.
- Refactored MigrationName1754315774827 for consistency in formatting.
- Updated migration index file to include new migration.
- Standardized string quotes in Queue.ts for consistency.
- Cleaned up SCIMAuthorization.ts by removing unnecessary whitespace and improving log formatting.
- Refactored StartServer.ts to standardize content-type header handling.
- Improved formatting in SCIM.tsx for better readability and consistency.
- Refactored Metrics.ts to standardize queueSize extraction and type checking.
- Enhanced Probe.ts logging for clarity and consistency.
2025-08-04 21:36:11 +01:00
Simon Larsen
f7d1975ab0 feat: Add debug logging for parsing names from SCIM users 2025-08-04 21:35:30 +01:00
Simon Larsen
99c9a591cb feat: Refactor SCIM user handling to improve name parsing and team operations 2025-08-04 21:29:16 +01:00
Simon Larsen
c956d01789 feat: Enhance user name handling in SCIM responses by parsing full names into given and family names 2025-08-04 21:22:01 +01:00
Simon Larsen
17c829869b feat: Implement user activation handling by adding users to configured teams 2025-08-04 21:18:03 +01:00
Simon Larsen
d65e91a912 feat: Enhance SCIM user update logging and handle user deactivation by removing from teams 2025-08-04 21:17:28 +01:00
Simon Larsen
39710ba9b0 feat: Enhance SCIM user update and delete logging, and improve team removal logic 2025-08-04 21:12:49 +01:00
Simon Larsen
8c70a4dfae feat: Update SCIM user handling to improve pagination and remove duplicates 2025-08-04 18:00:20 +01:00
Simon Larsen
ff99055594 feat: Refactor SCIM endpoints to enhance logging and improve user query handling 2025-08-04 17:44:23 +01:00
Simon Larsen
f01cc2fd71 feat: Enhance logging for SCIM requests and responses across various endpoints 2025-08-04 17:34:28 +01:00
Simon Larsen
49b43593b1 feat: Add middleware to handle SCIM content type before JSON parsing 2025-08-04 17:25:01 +01:00
Simon Larsen
e293ffd0eb feat: Remove isEnabled column from ProjectSCIM and update related services and migrations 2025-08-04 14:58:25 +01:00
Simon Larsen
b62a5e7722 feat: Add functionality to reset Bearer Token with confirmation modals 2025-08-04 14:47:45 +01:00
Simon Larsen
8f8ba0abb8 feat: Enhance SCIM middleware logging and update SCIM page state management 2025-08-04 13:01:09 +01:00
Simon Larsen
5525556b54 feat: Rename ProjectScima to ProjectSCIM and update imports 2025-08-04 12:28:09 +01:00
Simon Larsen
669066b70a feat: Implement ProjectSCIM model and SCIM page functionality 2025-08-04 12:27:48 +01:00
Simon Larsen
76d2abed08 fix: Update SCIM endpoint URLs to include versioning 2025-08-04 12:01:50 +01:00
Simon Larsen
a6c18b3f21 fix: Remove HTTP_PROTOCOL from SCIM endpoint URLs in SCIMPage component 2025-08-04 12:01:24 +01:00
Simon Larsen
955ea7bc31 feat: Restore ProjectSCIM service with bearer token generation logic 2025-08-04 11:58:18 +01:00
Simon Larsen
45719d4656 feat: Reintroduce ProjectSCIM service with bearer token generation logic 2025-08-04 11:58:07 +01:00
Simon Larsen
796c94a261 fix: Correct import casing for ProjectSCIM across multiple files 2025-08-04 11:46:56 +01:00
Simon Larsen
d2fe822cb7 feat: Integrate ProjectSCIM model and service into the Base API feature set 2025-08-04 11:44:02 +01:00
Simon Larsen
289a369eab feat: Add migration for ProjectSCIM and ProjectScimTeam tables with foreign key constraints 2025-08-04 11:43:44 +01:00
Simon Larsen
6f07e3e119 feat: Update SCIM API endpoints to include versioning in the URL 2025-08-04 11:19:17 +01:00
Simon Larsen
8cdc1e9faf feat: Add SCIM API endpoints and middleware for user management and configuration 2025-08-04 11:09:52 +01:00
Simon Larsen
d4609a84ef feat: Implement Project SCIM service with bearer token generation 2025-08-04 10:15:34 +01:00
Simon Larsen
eb4a91a598 feat: Add SCIM settings page and routing to the dashboard 2025-08-04 10:14:47 +01:00
Simon Larsen
5bea404d6c feat: Add SCIM API integration to Identity feature set 2025-08-04 10:13:44 +01:00
Simon Larsen
df3f8b6a74 feat: Add optional stackTrace field to job data structures for enhanced error tracking 2025-08-03 12:59:51 +01:00
Simon Larsen
0c9d2c821a feat: Add advanced horizontal pod autoscaler configuration for improved scaling behavior 2025-08-02 13:05:05 +01:00
Simon Larsen
ba49aaf0c3 fix: Skip probe offline email notifications when billing is enabled 2025-08-02 12:36:50 +01:00
Simon Larsen
6ea5ad7fe8 fix: Update nextPingAt calculation to use a 2-minute offset for improved timing accuracy 2025-08-02 11:42:01 +01:00
Simon Larsen
962866d109 fix: Improve queue size extraction and handling in metrics endpoint 2025-08-01 20:58:58 +01:00
Simon Larsen
115216561c feat: Add ports configuration for OneUptime probe service 2025-08-01 20:36:30 +01:00
Simon Larsen
f709c90cc4 fix: Update probe port handling in KEDA ScaledObjects for improved configuration 2025-08-01 20:21:41 +01:00
Simon Larsen
d7f01b0189 fix: Update default port value in probe template for better configuration handling 2025-08-01 20:19:31 +01:00
Simon Larsen
c3eaa8995c fix ports 2025-08-01 20:19:10 +01:00
Simon Larsen
53b482b9f3 refactor: Update Helm templates to use new port structure in values.yaml 2025-08-01 20:13:30 +01:00
Simon Larsen
d52670f39c refactor: Update Helm templates to use new port structure in values.yaml 2025-08-01 18:22:05 +01:00
Simon Larsen
fdc1332b9e Merge branch 'master' of github.com:OneUptime/oneuptime 2025-08-01 16:17:09 +01:00
Simon Larsen
a937416663 fix: Update autoscaler condition to prevent conflicts with KEDA configuration 2025-08-01 16:17:05 +01:00
Nawaz Dhandala
546d41da81 fix: Clean up formatting and ensure consistent return structure in metrics endpoints 2025-08-01 16:13:05 +01:00
Simon Larsen
c4c6793b29 feat: Implement KEDA autoscaling configuration for probes and add metrics endpoints 2025-08-01 15:38:04 +01:00
Simon Larsen
c894b112e6 fix: Await monitorResource call to ensure proper error handling in incoming request processing 2025-08-01 14:34:17 +01:00
Simon Larsen
304baf1bb4 fix: Await monitorResource call to ensure proper error handling in probe response processing 2025-08-01 14:33:17 +01:00
Simon Larsen
9adea6b1ba feat: Remove Helm annotations for post-install and post-upgrade hooks from templates 2025-08-01 14:01:04 +01:00
Simon Larsen
5498521e02 feat: Add Helm annotations for post-install and post-upgrade hooks 2025-08-01 13:47:52 +01:00
Simon Larsen
9e97c6ddbc feat: Update autoscaler conditions for fluent-ingest, incoming-request-ingest, probe-ingest, and server-monitor-ingest templates 2025-08-01 13:23:39 +01:00
Nawaz Dhandala
63272e09f8 refactor: Simplify function parameter formatting and improve readability in various files 2025-08-01 10:45:55 +01:00
Simon Larsen
327c28afdc feat: Implement fluent ingest worker for processing queue jobs 2025-08-01 10:34:17 +01:00
Simon Larsen
896020b93b feat: Add KEDA autoscaling configuration for various ingests
- Introduced KEDA autoscaling configuration in values.yaml for probeIngest, fluentIngest, incomingRequestIngest, and serverMonitorIngest.
- Added endpoints for queue statistics, size, and failed jobs in IncomingRequestIngest and ProbeIngest APIs.
- Implemented asynchronous processing of incoming requests and probes using job queues.
- Created Metrics API for KEDA metrics integration in IncomingRequestIngest, ProbeIngest, and ServerMonitorIngest.
- Refactored IncomingRequest and Probe APIs to utilize queue services for processing.
- Added job processing logic for incoming requests and probes in respective job files.
- Implemented queue service classes for managing job addition and retrieval of queue statistics.
2025-08-01 10:29:02 +01:00
Simon Larsen
15a68472b0 feat: comment out ClusterKeyAuthorization import for KEDA debugging 2025-07-31 21:23:41 +01:00
Simon Larsen
0210480d97 feat: remove Prometheus metrics endpoint for KEDA debugging 2025-07-31 21:22:04 +01:00
Simon Larsen
72fdc06687 feat: temporarily disable authentication middleware for KEDA debugging in metrics endpoint 2025-07-31 20:52:10 +01:00
Simon Larsen
3710b81b9a feat: add replica count support for deployments in Helm templates 2025-07-31 20:03:25 +01:00
Simon Larsen
9fcb3dc2e0 feat: update cluster key handling for KEDA compatibility in authorization middleware and Helm chart 2025-07-31 19:50:25 +01:00
Simon Larsen
43e2ccf51a feat: improve secret handling in Helm chart for upgrade scenarios 2025-07-31 19:29:07 +01:00
Nawaz Dhandala
48c3d8603a fix: format code for better readability and consistency in MonitorResource and Metrics 2025-07-31 12:57:39 +01:00
Simon Larsen
9cfc912161 feat: enhance response messages for incoming request checks with time difference 2025-07-31 12:56:06 +01:00
Simon Larsen
29e3ee57ab feat: add metrics-api endpoint for queue size retrieval in KEDA autoscaling 2025-07-31 12:44:48 +01:00
Simon Larsen
be7e849822 feat: add KEDA ScaledObjects for OpenTelemetry Ingest with configurable metrics 2025-07-31 12:34:43 +01:00
Simon Larsen
59d76b601a feat: add KEDA autoscaling support for OpenTelemetry Ingest with configurable metrics 2025-07-31 12:18:57 +01:00
Simon Larsen
b77ef336b8 feat: add replica count configuration for multiple deployments in Helm templates 2025-07-31 11:47:03 +01:00
Nawaz Dhandala
7df21fe8e5 refactor: add type annotations for pagination parameters in OTelIngest 2025-07-30 22:42:24 +01:00
Nawaz Dhandala
f39e1943c7 refactor: improve code formatting and readability in Queue and TelemetryQueueService 2025-07-30 22:40:45 +01:00
Simon Larsen
966a903646 feat: implement pagination for retrieving failed jobs from the queue 2025-07-30 22:39:58 +01:00
Simon Larsen
1d9d37c6d1 refactor: optimize queue size and stats calculations by using count methods 2025-07-30 22:37:46 +01:00
Simon Larsen
7edcc4dbce feat: add endpoint to retrieve failed jobs from the queue 2025-07-30 22:37:08 +01:00
Simon Larsen
0939294d22 Refactor code structure for improved readability and maintainability 2025-07-30 19:45:46 +01:00
Simon Larsen
dbcbfe5f79 refactor: simplify telemetry processing worker initialization and remove unused export 2025-07-30 19:25:52 +01:00
Simon Larsen
a638972817 feat: update @oneuptime/common dependency in test-release workflow 2025-07-30 16:44:05 +01:00
Simon Larsen
37c6310465 feat: update @oneuptime/common to version 7.0.4800 and adjust workflow dependencies 2025-07-30 16:42:39 +01:00
Nawaz Dhandala
a7d38389fd style: improve formatting and consistency in Prometheus metrics generation 2025-07-30 16:30:26 +01:00
Nawaz Dhandala
2f55336db7 Merge branch 'master' of https://github.com/OneUptime/oneuptime 2025-07-30 16:29:25 +01:00
Nawaz Dhandala
f99a15b95b refactor: enhance type annotations for better clarity in queue processing methods 2025-07-30 16:28:53 +01:00
Simon Larsen
de5bff2ffe feat: add Prometheus metrics endpoint for telemetry queue monitoring 2025-07-30 16:26:38 +01:00
Nawaz Dhandala
cef2764499 style: format code for better readability and consistency across multiple files 2025-07-30 16:22:26 +01:00
Simon Larsen
a7014ac3ff fix: update projectId handling to ensure proper ObjectID conversion in telemetry processing 2025-07-30 16:12:19 +01:00
Simon Larsen
fa31dc670c feat: implement telemetry ingestion processing with queue integration 2025-07-30 15:37:08 +01:00
Simon Larsen
4c2a12cf31 feat: add queue stats and size endpoints with authorization middleware 2025-07-30 15:34:51 +01:00
Simon Larsen
b4115e1529 feat: initialize telemetry processing worker with logging for better monitoring 2025-07-30 15:30:23 +01:00
Simon Larsen
3883790c50 feat: add getQueueSize and getQueueStats methods to Queue class for improved queue monitoring 2025-07-30 15:29:53 +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
Simon Larsen
cacdbff50e Implement feature X to enhance user experience and optimize performance 2025-07-30 13:58:46 +01:00
Nawaz Dhandala
0bc6b432a2 refactor: Update getNestedValue function signature for improved type safety in Detail and TableRow components 2025-07-30 13:57:23 +01:00
Simon Larsen
eaa09d4a13 refactor: Replace lodash get with custom nested value helper in Detail and TableRow components 2025-07-30 13:52:30 +01:00
Simon Larsen
08c85dd31c refactor: Remove lodash and its type definitions from package dependencies 2025-07-30 12:48:19 +01:00
Nawaz Dhandala
42e82b6fb7 refactor: Clean up whitespace in various components for improved readability 2025-07-30 12:08:53 +01:00
Simon Larsen
463a20f342 feat: Add ingestedAt timestamp to ProbeMonitorResponse and update ingestion logic 2025-07-30 12:08:21 +01:00
Simon Larsen
1b8a7e3261 chore: Add sw.js to .gitignore to prevent tracking of service worker file 2025-07-30 11:23:26 +01:00
Simon Larsen
8b27dd1f26 refactor: Remove deprecated service worker implementation from Dashboard 2025-07-30 11:23:09 +01:00
Simon Larsen
17c72f65e3 refactor: Update service worker template and generated version information for Dashboard 2025-07-30 11:22:29 +01:00
Simon Larsen
5eee900fd3 feat: Implement service worker generation script and update build process for Dashboard 2025-07-30 11:18:55 +01:00
Simon Larsen
0a6cdd11af refactor: Simplify esbuild configuration by disabling minification and removing build version generation 2025-07-30 10:47:23 +01:00
Simon Larsen
8514b6b82e refactor: Enhance PWA service worker with caching strategies and update notifications 2025-07-30 10:45:18 +01:00
Simon Larsen
dfa8f6cd24 refactor: Remove unused LocalStorage import and update status page ID handling in DashboardMasterPage 2025-07-30 10:41:19 +01:00
Simon Larsen
61614227e1 refactor: Update dependency version for @oneuptime/common to allow any version 2025-07-30 10:01:46 +01:00
Simon Larsen
f3d20eb544 refactor: Add spacing before nav element in Pagination component for improved layout 2025-07-29 13:47:33 +01:00
Simon Larsen
a11ff57fda refactor: Clean up layout in Pagination component with improved mobile navigation and added comments for clarity 2025-07-29 13:46:23 +01:00
Simon Larsen
deb635bc80 refactor: Remove unnecessary height style from Modal component for improved responsiveness 2025-07-29 11:25:26 +01:00
Simon Larsen
c707830811 refactor: Adjust margin for label in ProbePicker component for better alignment 2025-07-29 11:20:28 +01:00
Nawaz Dhandala
24ada68d1e refactor: Replace lodash Dictionary import with local Dictionary type in multiple files 2025-07-29 11:12:37 +01:00
Nawaz Dhandala
ca23234ba9 refactor: Update import statement for Dictionary in Route.ts 2025-07-29 11:10:22 +01:00
Nawaz Dhandala
ea40a955e9 refactor: Enhance Slack notification structure for balance refill in NotificationService 2025-07-29 11:07:56 +01:00
Nawaz Dhandala
a46ee07d70 refactor: Format imports and improve error logging in NotificationService 2025-07-29 11:07:10 +01:00
Simon Larsen
5c5bab408d refactor: Simplify Terraform examples by removing unused monitor configurations and variables 2025-07-29 11:02:57 +01:00
Simon Larsen
540d632baf feat: Add Slack notification for balance refill in NotificationService 2025-07-28 12:03:40 +01:00
Simon Larsen
74718017ad refactor: Update jest.config.json for module name mapping and transform ignore patterns 2025-07-25 16:03:01 +01:00
Simon Larsen
d16897db1b refactor: update dependencies in package.json
- Replaced "Common" dependency with "@oneuptime/common" version 7.0.4773.
- Maintained existing versions for "dotenv" and "ts-node".
2025-07-25 15:38:07 +01:00
Simon Larsen
be3fc6f077 refactor: Update monitorTask type from PromiseVoidFunction to Promise<void> for consistency 2025-07-25 14:37:52 +01:00
Nawaz Dhandala
b7b577517c refactor: Improve type safety by defining PromiseVoidFunction for monitorTask in CheckOnlineStatus 2025-07-25 14:34:04 +01:00
Simon Larsen
ccf7a96e43 refactor: Streamline monitor processing logic in CheckOnlineStatus for improved error handling and parallel execution 2025-07-25 14:26:54 +01:00
Simon Larsen
892f3c052a feat: Add timeNow property to ServerMonitorResponse and update related logic in ServerMonitorCriteria and CheckOnlineStatus 2025-07-25 14:25:01 +01:00
Simon Larsen
00833a06f4 fix: Update time calculation in CheckOnlineStatus to use three minutes ago 2025-07-25 14:20:32 +01:00
Simon Larsen
472adf610a refactor: Update comment to clarify SSL monitor check in MonitorResourceUtil 2025-07-25 14:14:12 +01:00
Nawaz Dhandala
976c36de9a feat: Add migration for new default values and indexes in OnCallDutyPolicyScheduleLayer 2025-07-25 13:50:08 +01:00
Simon Larsen
6026c9c9af refactor: Remove unused import for ProbeApiIngestResponse in ServerMonitor.ts 2025-07-25 13:49:34 +01:00
Simon Larsen
791aa1421b feat: Optimize server monitor response handling by returning early and streamlining processing 2025-07-25 13:49:14 +01:00
Simon Larsen
79dbc94f82 feat: Add log viewing instructions and improve error logging in agent 2025-07-25 13:42:25 +01:00
Simon Larsen
ded41fc7ec feat: Enhance logging functionality with log file path configuration and log directory management 2025-07-25 13:38:23 +01:00
Simon Larsen
581c374745 refactor: Remove PWA install prompt to streamline user experience 2025-07-25 13:31:26 +01:00
Simon Larsen
64c0c8b4cb haraka delete 2025-07-25 09:07:09 +01:00
Simon Larsen
7d2241ba98 feat: Add indexes to improve query performance across multiple database models 2025-07-24 20:02:23 +01:00
Nawaz Dhandala
30bada5b7a feat: Add additional performance indexes and update migration index list 2025-07-24 18:40:40 +01:00
Simon Larsen
61bfb37747 Merge branch 'release' of github.com:OneUptime/oneuptime into release 2025-07-24 18:39:42 +01:00
Simon Larsen
4686aa941a feat: Add performance indexes to improve query efficiency across multiple database models 2025-07-24 18:39:04 +01:00
Nawaz Dhandala
3c065c76b0 feat: Add missing indexes for improved query performance in IncidentStateTimeline and MonitorProbe 2025-07-24 18:26:03 +01:00
Simon Larsen
5dccd03ed4 refactor: Remove ProcessMetrics job to streamline monitor metric handling 2025-07-24 18:16:32 +01:00
Simon Larsen
a395a95997 feat: Add composite indexes for efficient querying in IncidentStateTimeline, MonitorProbe, and MonitorStatusTimeline 2025-07-24 18:16:06 +01:00
Nawaz Dhandala
89082b1232 refactor: Improve error handling and type definitions in core operations across multiple services 2025-07-24 17:42:38 +01:00
Nawaz Dhandala
7cb33de450 refactor: Enhance error handling and type definitions in core operations for AlertService and IncidentService 2025-07-24 17:34:46 +01:00
Nawaz Dhandala
353ac875fb refactor: Simplify promise handling and error logging in service operations 2025-07-24 17:25:54 +01:00
Simon Larsen
d6560fdb32 feat: Refactor incident creation to execute core operations asynchronously 2025-07-24 17:23:53 +01:00
Simon Larsen
5115e21a7a feat: Refactor scheduled maintenance creation to execute core operations asynchronously 2025-07-24 17:17:52 +01:00
Simon Larsen
0e6119ddce feat: Execute owner assignment asynchronously in StatusPageService 2025-07-24 17:14:46 +01:00
Simon Larsen
b842a49cfb feat: Refactor monitor creation to run core operations in parallel, deferring workspace operations 2025-07-24 16:42:29 +01:00
Nawaz Dhandala
9737e50467 refactor: Clean up whitespace and improve code formatting in migration and service files 2025-07-24 16:00:49 +01:00
Simon Larsen
91beb6091d feat: Optimize monitor creation by parallelizing workspace, billing, and probe operations 2025-07-24 15:56:35 +01:00
Simon Larsen
68e610aa9f fix: Disable workflow operations for MetricType entity 2025-07-24 15:25:04 +01:00
Simon Larsen
d673ef3a01 feat: Enhance memory management and error handling in telemetry ingestion processes 2025-07-24 15:22:29 +01:00
Simon Larsen
6dff8f07bf feat: Update deviceToken column type to VeryLongText and add migration for changes 2025-07-24 08:54:03 +01:00
Simon Larsen
4ca836c91f fix: Remove OPENTELEMETRY_EXPORTER_OTLP_HEADERS from environment variables in multiple Helm templates 2025-07-24 08:30:51 +01:00
Simon Larsen
d59ba73993 fix: Set current time for log entries without timeUnixNano 2025-07-23 21:08:24 +01:00
Simon Larsen
e878855b31 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-07-23 13:43:56 +01:00
Simon Larsen
8f95ae65f6 feat: Add disableAutoscaler option for various services in Helm templates and values 2025-07-23 13:42:53 +01:00
Nawaz Dhandala
995b93f525 fix: Remove unnecessary blank line in root route handler 2025-07-22 14:21:56 +01:00
Simon Larsen
fc3c11b12d Merge branch 'master' of github.com:OneUptime/oneuptime 2025-07-22 13:57:00 +01:00
Simon Larsen
d0ce225b66 fix: Update request parameter to ignore unused variable in root route handler 2025-07-22 13:56:24 +01:00
Nawaz Dhandala
b486b59598 fix: Correct syntax in navigation group definition and clean up route file 2025-07-22 12:54:04 +01:00
Simon Larsen
4d7135fb11 refactor: Remove mobile detection and redirection logic from routes for PWA 2025-07-22 12:52:35 +01:00
Simon Larsen
0c4464ed87 Add comprehensive FAQ and troubleshooting documentation for OneUptime PWA across all platforms
- Created a new FAQ and troubleshooting guide for OneUptime Mobile and Desktop Apps, covering general questions, installation issues, notification problems, and security considerations.
- Added detailed installation guides for iOS, Linux, macOS, and Windows, including step-by-step instructions and troubleshooting tips.
- Included platform-specific issues and solutions to enhance user experience and support.
2025-07-22 12:48:50 +01:00
Simon Larsen
d705ea6896 fix: Update shortcut names to include "OneUptime" for clarity in manifest files 2025-07-22 12:07:44 +01:00
Simon Larsen
ac146df9e8 refactor: Remove caching and offline functionality from service workers for PWA 2025-07-22 12:01:43 +01:00
Simon Larsen
3ce7d54eef fix: Update theme color to black across multiple files for consistency 2025-07-22 11:53:16 +01:00
Simon Larsen
418c89c15b Merge branch 'master' into pwa 2025-07-22 11:47:57 +01:00
Simon Larsen
80144814d1 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-07-22 10:05:43 +01:00
Simon Larsen
f3223e397b fix: Correct capitalization in help text for OneUptime URL flag 2025-07-22 10:03:44 +01:00
Nawaz Dhandala
fce5e18fba style: Format class name for better readability 2025-07-22 09:57:15 +01:00
Nawaz Dhandala
cdd60c1d6b Refactor StatusPage and related services to enhance code readability and maintainability
- Updated StatusPage model to improve formatting.
- Modified migration script for adding enableCustomSubscriberEmailNotificationFooterText to ensure backward compatibility.
- Adjusted Index.ts to include the new migration.
- Refactored StatusPageService methods for better readability and consistency.
- Cleaned up Push component by removing unnecessary whitespace.
- Improved SubscriberSettings component by enhancing formatting and readability.
- Refactored OtelIngestService to streamline log, metric, and trace processing logic.
- Enhanced incident and scheduled event detail components for better type handling and readability.
2025-07-22 09:56:01 +01:00
Simon Larsen
cb35a0d420 feat: Implement asynchronous processing for logs, metrics, and traces with immediate response 2025-07-22 09:51:15 +01:00
Simon Larsen
b198d4d87d feat: Refactor email footer settings for subscriber notifications 2025-07-22 08:31:33 +01:00
Simon Larsen
285a5355a7 feat(PWA): Enhance PWA support with service worker, mobile redirection, and manifest updates
- Implemented service worker registration for PWA functionality on both home and dashboard.
- Added mobile detection to redirect mobile users to the dashboard for a better experience.
- Updated manifest.json with improved app details, shortcuts, and caching strategies.
- Enhanced offline experience with a custom offline page and improved caching strategies in the service worker.
- Added proper headers for manifest and service worker in Nginx configuration.
- Included iOS splash screens and Microsoft tiles for better platform integration.
- Improved meta tags for better PWA compliance and user experience.
2025-07-22 08:26:36 +01:00
Simon Larsen
777093d2e1 feat: Add support for custom subscriber email notification footer text 2025-07-21 22:23:31 +01:00
Simon Larsen
0444b09ad5 feat: Update sorting logic to prioritize 'startsAt' date for incidents and scheduled events 2025-07-21 21:56:08 +01:00
Simon Larsen
7be9c4b1e7 fix: Improve error handling and display in push notification registration 2025-07-21 21:23:20 +01:00
Simon Larsen
79910b6c0b feat: Add VAPID key validation for push notifications registration 2025-07-21 20:37:05 +01:00
Simon Larsen
0686dea83c Merge pull request #1968 from dmizelle/dmizelle/terraform-arm64-targets
chore(ci): [terraform] Add Missing arm64 Targets
2025-07-21 20:11:52 +01:00
Devon Mizelle
e1e27c4e94 chore(ci): [terraform] Add Missing arm64 Targets
A previous commit added `arm` targets, which is 32-bit ARM. We also need
`arm64` targets (64-bit ARM.)

This commit also adds `arm`/`arm64` for other `GOOS` targets.
2025-07-21 15:08:33 -04:00
Simon Larsen
6fe14fbed3 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-07-21 16:52:00 +01:00
Simon Larsen
9ef248f71e chore: Remove outdated PUSH_NOTIFICATIONS.md documentation file 2025-07-21 16:51:55 +01:00
Nawaz Dhandala
e243a76dab refactor: Simplify modal close and submit handlers in Push component 2025-07-21 16:51:20 +01:00
Nawaz Dhandala
71466089a4 refactor: Improve type annotations and error handling across multiple files 2025-07-21 16:45:33 +01:00
Simon Larsen
31e6172af4 Merge pull request #1967 from dmizelle/dmizelle/terraform-darwin-arm-build-target
chore(ci): [terraform] Add darwin/arm Build Target
2025-07-21 16:29:46 +01:00
Devon Mizelle
7a228f76e4 chore(ci): [terraform] Add darwin/arm Build Target
The Terraform provider wasn't releasing with a `darwin/arm` target, so
you couldn't use it on Apple Silicon Macs. This adds that target to the
build process.
2025-07-21 11:25:07 -04:00
Nawaz Dhandala
40d473d195 Refactor push notification message creation for improved readability
- Updated the formatting of push notification message creation across multiple services to enhance code clarity and maintainability.
- Adjusted the structure of function calls to align parameters vertically, making it easier to read and understand.
- Ensured consistent use of line breaks and indentation for better code style adherence.
2025-07-21 16:21:20 +01:00
Simon Larsen
f2f5b757eb feat: Enhance push notification handling by updating user on call log timeline status and adding userOnCallLogTimelineId option 2025-07-21 16:18:28 +01:00
Simon Larsen
1d4d93ceec refactor: Update alert and incident view links to use service methods for improved accuracy 2025-07-21 16:05:03 +01:00
Simon Larsen
40819562f7 feat: Add userPushId to UserOnCallLogTimeline and related migration 2025-07-21 15:57:09 +01:00
Simon Larsen
066ad4a52d refactor: Enhance logging for web push notification results and payload details 2025-07-21 15:47:45 +01:00
Simon Larsen
a109ae33e0 refactor: Update push notification creation to use parameter objects for improved clarity and maintainability 2025-07-21 15:33:28 +01:00
Simon Larsen
19ac60d8db fix tests 2025-07-21 15:15:58 +01:00
Simon Larsen
7557103cc0 refactor: Update notification methods to use parameter objects for improved readability 2025-07-21 15:01:32 +01:00
Simon Larsen
d1bd8c09d1 feat: Add push notification messages for various alert and incident events 2025-07-21 14:57:12 +01:00
Simon Larsen
861c1782fc feat: Remove lastUsedAt column from UserPush table and update related migrations 2025-07-17 19:06:05 +01:00
Simon Larsen
f937749c7e feat: Replace hardcoded limit with LIMIT_PER_PROJECT constant in sendPushNotificationToUser method 2025-07-17 18:51:35 +01:00
Simon Larsen
6752ba8b63 feat: Add toggle option for push notification alerts in user settings 2025-07-17 18:28:01 +01:00
Simon Larsen
dce9f2fe78 Add new PNG image for OneUptime dashboard 2025-07-17 18:21:14 +01:00
Simon Larsen
d18c3af5ac feat: Update PushNotificationUtil properties to public for improved accessibility in PushNotificationService 2025-07-17 18:16:08 +01:00
Simon Larsen
d48f864512 feat: Refactor push notification creation in OnCallDutyPolicy services to utilize PushNotificationUtil for improved consistency and maintainability 2025-07-17 18:14:34 +01:00
Simon Larsen
0976b2700c add img 2025-07-17 18:08:38 +01:00
Simon Larsen
58990d9991 feat: Update VAPID_PRIVATE_KEY definition in Helm template; remove duplicate entry and ensure correct placement 2025-07-17 18:02:41 +01:00
Simon Larsen
934b08d643 feat: Refactor push notification handling by utilizing PushNotificationUtil for consistency and maintainability 2025-07-17 17:59:19 +01:00
Simon Larsen
b832613fb2 feat: Refactor error handling in Push component; remove duplicate device modal and update error display 2025-07-17 17:11:38 +01:00
Simon Larsen
3faa2fe302 feat: Remove visibility condition for verified user push notifications in Push component 2025-07-17 17:09:30 +01:00
Simon Larsen
a1fe600863 feat: Update device name placeholder in Push component to suggest browser names 2025-07-17 17:00:31 +01:00
Simon Larsen
74af666d70 feat: Remove unused fields from device registration form in Push component 2025-07-17 16:58:43 +01:00
Simon Larsen
4707b4b4dd feat: Improve device registration by adding browser name detection and updating device name handling 2025-07-17 16:58:24 +01:00
Simon Larsen
78d34542b6 feat: Enhance device registration flow in UserPushAPI and Push component; add handling for duplicate device registrations 2025-07-17 15:59:27 +01:00
Simon Larsen
141280ad0e feat: Integrate push notification handling in UserNotificationRuleService; add userPush support in Alert and Incident on-call rules 2025-07-17 15:36:56 +01:00
Simon Larsen
92f978df20 feat: Add success modal for test notification in Push component; enhance user feedback on notification delivery 2025-07-17 14:41:09 +01:00
Simon Larsen
e3db66734f feat: Enhance logging in PushNotificationService and Service Worker; add detailed logs for push notifications and installation events 2025-07-17 14:33:59 +01:00
Simon Larsen
618dcbdcce feat: Improve logging and error handling in PushNotificationService and Service Worker; remove Logger from Cookie and LocalStorage classes 2025-07-17 14:06:17 +01:00
Simon Larsen
af66709363 feat: Enhance push notification logging and add web-push dependencies 2025-07-16 20:48:12 +01:00
Simon Larsen
5ebe067efd feat: Update device type handling in test notification for web push 2025-07-16 20:39:57 +01:00
Simon Larsen
a59c98d7e6 feat: Add VAPID configuration for web push notifications in EnvironmentConfig and update PushNotificationService 2025-07-16 20:28:39 +01:00
Simon Larsen
5ff1d15b36 feat: Add VAPID configuration for web push notifications 2025-07-16 20:19:37 +01:00
Simon Larsen
f4cdefc4f9 feat: Update service worker registration path for push notifications 2025-07-16 20:00:13 +01:00
Simon Larsen
8b11be85bf feat: Refactor device registration flow for push notifications 2025-07-16 19:57:45 +01:00
Simon Larsen
6e2416910e feat: Add push notification support for on-call policy changes and probe status updates 2025-07-16 19:02:13 +01:00
Simon Larsen
0cd0e174bf feat: Add UserPush table and related migrations for push notification support 2025-07-16 15:53:17 +01:00
Simon Larsen
b7153ed283 feat: Add migration for MigrationName1752659054949 to schema migrations 2025-07-16 10:47:52 +01:00
Simon Larsen
34718f6fa7 feat: Add UserPush model and related database migrations for push notifications 2025-07-16 10:47:24 +01:00
Simon Larsen
ed69c5de39 feat: Restrict push notification support to web devices only 2025-07-16 10:39:55 +01:00
Simon Larsen
5f9f741b82 feat: Implement push notification system for OneUptime
- Added UserPushAPI for managing device registrations and notifications.
- Created PushNotificationService for sending notifications via Web Push and Firebase.
- Developed UserPushService for CRUD operations on user push devices.
- Introduced PushNotificationUtil for generating notification messages.
- Defined PushNotificationMessage and PushNotificationRequest types for structured data.
- Integrated service worker (sw.js) for handling push notifications in the browser.
- Built React component (Push.tsx) for user interface to manage push notifications.
- Documented implementation details and usage in PUSH_NOTIFICATIONS.md.
- Added support for device registration, verification, and test notifications.
- Enhanced security features including user-scoped access and device verification.
2025-07-15 21:39:00 +01:00
Nawaz Dhandala
a427a82327 style: Clean up whitespace in TableBody and TableRow components for improved readability 2025-07-15 20:06:52 +01:00
Simon Larsen
6244ff4ebc style: Update Button and Page components for improved responsive layout 2025-07-15 18:36:08 +01:00
Simon Larsen
9007ed5ddc feat: Implement responsive design for Table component with mobile view support 2025-07-14 23:23:36 +01:00
Simon Larsen
108d1fdfcc style: Enhance ChartGroup component layout for improved spacing and responsive description visibility 2025-07-14 21:08:23 +01:00
Simon Larsen
7678cc9d77 style: Update Card and StartAndEndDate components for improved layout and responsiveness 2025-07-14 21:03:12 +01:00
Nawaz Dhandala
708ea2c977 style: Add responsive visibility classes to date buttons for improved layout 2025-07-14 19:22:46 +01:00
Nawaz Dhandala
0ebfb294ff fix: Update model type validation to use lowercase values for consistency 2025-07-14 19:13:33 +01:00
Nawaz Dhandala
d6d61a61fd style: Adjust formatting for improved readability in HeaderAlert and Modal components 2025-07-14 19:11:56 +01:00
Simon Larsen
46a0e54771 fix: Update Modal and ModalFooter components for improved layout and responsiveness 2025-07-14 19:11:22 +01:00
Simon Larsen
71807da876 feat: Enhance HeaderAlert and Header components to utilize suffix prop for improved title display 2025-07-14 19:05:28 +01:00
Simon Larsen
d7b45106d8 feat: Add suffix prop to HeaderAlert for additional text display 2025-07-14 18:54:59 +01:00
Nawaz Dhandala
1a39c2f6c5 refactor: Improve type annotations and enhance readability in SideMenu component 2025-07-14 16:04:08 +01:00
Nawaz Dhandala
7b2041f6a4 style: Clean up code formatting and remove unnecessary whitespace in various components 2025-07-14 15:43:31 +01:00
Simon Larsen
31cfba9ab8 fix: Update subscriber email notification footer text to include page title if available 2025-07-14 14:56:25 +01:00
Simon Larsen
1ead9679c3 fix: Update Banner component to correctly hide on mobile screens 2025-07-11 11:35:21 +01:00
Simon Larsen
01be21d0ed feat: Add hideOnMobile property to various components for improved mobile responsiveness 2025-07-11 11:34:27 +01:00
Simon Larsen
c8986fb314 fix: Add hideOnMobile property to AnnouncementTable fields for improved mobile responsiveness 2025-07-11 11:23:42 +01:00
Simon Larsen
951fcbe474 fix: Add hideOnMobile property to various fields for improved mobile responsiveness 2025-07-11 11:19:40 +01:00
Simon Larsen
7483ff2c2f fix: Ensure title div is hidden on smaller screens for better responsiveness 2025-07-11 10:14:37 +01:00
Simon Larsen
14fc484e37 Refactor SideMenu components to use sections array for improved structure and readability across multiple pages
- Updated DashboardSideMenu in MonitorGroup, OnCallDuty, ScheduledMaintenanceEvents, Settings, StatusPages, Telemetry, UserSettings, and Workflow to utilize a sections array for SideMenu rendering.
- Removed individual SideMenuItem and SideMenuSection imports, consolidating imports to a single SideMenu component with SideMenuSectionProps.
- Enhanced code maintainability and consistency by standardizing the SideMenu structure across different pages.
2025-07-11 10:13:24 +01:00
Simon Larsen
bd2da4358b fix: Adjust column classes for PageLoader in responsive layout 2025-07-10 17:15:55 +01:00
Nawaz Dhandala
78d43e1a1c fix: Clean up formatting and improve readability in DataType and MailService classes 2025-07-10 16:21:44 +01:00
Simon Larsen
a84a6a0c55 fix: Refactor Modal and ModalFooter components for improved layout and responsiveness 2025-07-10 15:41:06 +01:00
Simon Larsen
66343e6920 fix: Increase maximum concurrent connections in TransporterPool to improve email transport performance 2025-07-10 15:19:55 +01:00
Simon Larsen
6a7a8ad8d9 fix: Simplify connection pooling options by removing unnecessary rate limiting parameters 2025-07-10 15:14:56 +01:00
Simon Larsen
b8faa692cb feat: Implement connection pooling for email transporters to optimize performance and resource management 2025-07-10 15:13:13 +01:00
Simon Larsen
ca99f452ac feat: Enhance Subscriber Settings with Email, SMS, and Slack configurations 2025-07-10 14:34:20 +01:00
Simon Larsen
cd8d851366 fix: Update Includes example values and enhance description for clarity 2025-07-10 14:26:25 +01:00
Simon Larsen
16bed1861c Merge branch 'master' of github.com:OneUptime/oneuptime 2025-07-10 14:14:39 +01:00
Simon Larsen
c0909c68c8 feat: Add 'includes' functionality with documentation and example usage 2025-07-10 14:14:36 +01:00
Nawaz Dhandala
97654f61a2 fix: Add type annotations for improved type safety in various components 2025-07-10 12:50:13 +01:00
Nawaz Dhandala
faa4d8372c Refactor components for improved readability and consistency
- Updated Pagination component to enhance formatting and readability.
- Refactored TableHeader and TableRow components for better clarity and structure.
- Cleaned up NavBar component by organizing imports and improving formatting.
- Enhanced ApiMonitor, PortMonitor, SslMonitor, and WebsiteMonitor classes for better error handling.
- Improved StatusPage components by refining layout and event handling.
- Adjusted Page component for consistent prop spreading and formatting.
2025-07-10 12:19:22 +01:00
Simon Larsen
da4741fcf4 fix: Enhance Modal component layout for improved responsiveness and usability 2025-07-10 12:15:31 +01:00
Simon Larsen
3c420b2114 fix: Implement responsive behavior in Detail and ListRow components to filter fields based on mobile view 2025-07-10 12:08:54 +01:00
Simon Larsen
9c5a649157 fix: Add hideOnMobile property to Field, Column, and related components for responsive behavior 2025-07-10 11:58:02 +01:00
Simon Larsen
4908e9cd1d fix: Add hideOnMobile property to ActionButtonSchema and implement responsive behavior in ListRow, Item, and TableRow components 2025-07-10 11:46:18 +01:00
Simon Larsen
f552115fd5 fix: Refactor Modal component for improved layout and responsiveness 2025-07-10 11:08:32 +01:00
Simon Larsen
a96fc24562 fix: Update FeedItem component to ensure more text button has a fitting width 2025-07-09 18:18:03 +01:00
Simon Larsen
a54d44df01 fix: Update BasicForm component to hide form steps on small screens 2025-07-09 17:04:03 +01:00
Simon Larsen
7afa17cd8d fix: Enhance Modal component layout for better responsiveness and structure 2025-07-09 17:01:59 +01:00
Simon Larsen
2d15d85310 fix: Update Modal component styles for improved responsiveness and layout 2025-07-09 16:57:50 +01:00
Simon Larsen
1a577cf406 fix: Implement retry logic for sending emails with exponential backoff 2025-07-09 16:52:48 +01:00
Simon Larsen
3869725742 fix: Update Breadcrumbs component to ensure proper visibility on medium and larger screens 2025-07-09 16:49:32 +01:00
Simon Larsen
2b286e76f1 fix: Update Pagination component to ensure item count visibility on all screen sizes 2025-07-09 16:49:13 +01:00
Simon Larsen
3a791cec3b fix: Remove unnecessary padding from mobile navigation component 2025-07-09 15:32:46 +01:00
Simon Larsen
0e4557dba7 fix: Update Pagination component to improve visibility of item count on larger screens 2025-07-09 15:32:39 +01:00
Simon Larsen
c594d390cb fix: Refactor DashboardNavbar to use NavItem structure and improve menu handling 2025-07-09 15:24:15 +01:00
Simon Larsen
8a66434af9 fix: Refactor Button component styles for improved readability and consistency 2025-07-09 14:55:43 +01:00
Simon Larsen
c8ddba76f7 fix: Enhance DashboardNavbar with mobile support and additional navigation items 2025-07-09 14:29:39 +01:00
Simon Larsen
4831ed0535 fix: Update Button and Card components for improved responsive layout and styling 2025-07-09 14:09:17 +01:00
Simon Larsen
7e4f1d6b55 fix: Remove unnecessary positioning styles from Footer component for improved layout 2025-07-09 13:57:07 +01:00
Simon Larsen
1a254ee8cc fix: Remove fixed height from Footer component for flexible layout 2025-07-09 13:54:46 +01:00
Simon Larsen
429a1497ec fix: Update Footer component className to use min-h-16 for consistent height 2025-07-09 13:52:37 +01:00
Simon Larsen
e9bff64ea1 fix: Improve layout and styling of Card component buttons and right elements 2025-07-09 13:48:15 +01:00
Simon Larsen
603f803dd5 fix: Refactor API key and project ID validation logic in middleware 2025-07-09 13:40:16 +01:00
Simon Larsen
0df55c0b6f Merge branch 'master' into release 2025-07-09 10:10:03 +01:00
Simon Larsen
a22e42cf8d Merge pull request #1942 from zzukin/set-permission-on-tmp-npm
Set permission to write logs and cache on /tmp/npm in case container run as non root
2025-07-08 18:28:32 +01:00
Simon Larsen
2e8340ee76 Merge pull request #1961 from OneUptime/master
Release
2025-07-08 18:27:47 +01:00
Simon Larsen
72429923ed Merge pull request #1960 from OneUptime/mobile-responsive
Mobile responsive
2025-07-08 17:52:12 +01:00
Simon Larsen
ca5eccfe83 feat: Add Bars3 icon to IconProp enum and update NavBar to use Bars3 for mobile toggle 2025-07-08 17:41:36 +01:00
Simon Larsen
3b4f3e5f1e feat: Update NavBarItem component styles for mobile responsiveness 2025-07-08 17:38:51 +01:00
Simon Larsen
0a65c72b80 feat: Add responsive design to EventHistoryDayList component for better mobile experience 2025-07-08 17:29:20 +01:00
Simon Larsen
42a468720f feat: Update MonitorOverview component to improve responsiveness for larger screens 2025-07-08 17:06:39 +01:00
Simon Larsen
267bbad661 feat: Improve responsive design across multiple components for better mobile experience 2025-07-08 16:59:43 +01:00
Simon Larsen
6542bf7564 feat: Add projectId and _id fields to alert, incident, and scheduled maintenance selections in note services 2025-07-07 21:47:56 +01:00
Simon Larsen
ec746ba507 feat: Enhance SSLMonitor getCertificate method with retry logic and error logging 2025-07-04 09:03:10 +01:00
Simon Larsen
5aacfd05a9 feat: Add disableAutoscaler option to probe configuration in values.yaml 2025-07-02 21:44:43 +01:00
Simon Larsen
2840a3560b feat: Enhance error handling in PortMonitor to return null for AggregateError 2025-07-02 14:51:44 +01:00
Simon Larsen
0f688350dc fix: Update error handling in PingMonitor to check for AggregateError directly 2025-07-02 09:15:55 +01:00
Simon Larsen
39b572da3f feat: Update error handling in monitors to use getFriendlyErrorMessage for AggregateError 2025-07-02 09:09:58 +01:00
Nawaz Dhandala
5423293fbc refactor: Enhance type safety and readability in test files by adding explicit types and improving variable declarations 2025-07-02 09:08:01 +01:00
Nawaz Dhandala
009ef21d16 refactor: Clean up code formatting and improve readability in test files and monitor classes 2025-07-01 21:06:05 +01:00
Simon Larsen
793a33f873 feat: Improve error handling and logging in OneUptimeApiService and related tests 2025-07-01 21:02:32 +01:00
Simon Larsen
bafbf3fc01 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-07-01 20:00:36 +01:00
Simon Larsen
4586b27039 feat: Add handling for AggregateError in multiple monitor classes to improve error response 2025-07-01 20:00:33 +01:00
Nawaz Dhandala
9f65f31d6c Add comprehensive tests for MCP functionality and logging
- Implement integration tests for MCP server operations including create, read, update, delete, list, and count functionalities.
- Add error response formatting tests to handle various scenarios such as not found and empty lists.
- Create tests for MCPLogger to ensure proper logging behavior, including message formatting and log level filtering.
- Develop mock tests to validate mock function behavior and error handling.
- Introduce tests for OneUptimeApiService to verify service initialization, operation validation, error handling, and request data building.
- Add type validation tests for OneUptimeOperation and ModelType enums, ensuring type safety and compatibility with JSON schema structures.
2025-07-01 18:44:35 +01:00
Nawaz Dhandala
5a9d351d39 fix: Add missing commas in API class method signatures for consistency 2025-07-01 15:12:15 +01:00
Simon Larsen
6dc432b7f3 feat: Enhance error handling in API class to support AggregateError messages 2025-07-01 15:02:06 +01:00
Simon Larsen
1e04f37727 fix: Update npm install command to include all dependencies and ensure dev dependencies are removed after build 2025-07-01 12:17:52 +01:00
Simon Larsen
be34930cd5 fix: Ensure creation of /usr/src directory with parent directories in Dockerfile 2025-07-01 11:59:56 +01:00
Simon Larsen
c8b053d17c feat: Remove unused 'node-fetch' dependency from package.json 2025-07-01 11:30:47 +01:00
Simon Larsen
ced4d0446c feat: Remove DynamicToolGenerator test file as it is no longer needed 2025-07-01 11:27:26 +01:00
Nawaz Dhandala
357f76ae5b refactor: Simplify loop variable usage in DynamicToolGenerator tests and fix model instantiation in tool generation test 2025-07-01 09:47:38 +01:00
Nawaz Dhandala
7f11735f79 refactor: Clean up console logging in Index.ts and improve structure in DynamicToolGenerator tests 2025-07-01 09:45:22 +01:00
Nawaz Dhandala
4ad1918b1d refactor: Add type annotations for improved type safety and clarity in various files 2025-07-01 09:33:08 +01:00
Nawaz Dhandala
122b0d6be7 Refactor DynamicToolGenerator tests and utility functions for improved readability and consistency
- Enhanced test cases in DynamicToolGenerator.test.ts for better logging and structure.
- Updated OneUptimeOperation.ts to maintain consistent formatting.
- Refactored DynamicToolGenerator.ts for improved code clarity and organization, including consistent use of commas and spacing.
- Improved sanitization and JSON schema generation methods for better handling of OpenAPI metadata.
- Cleaned up description handling in DynamicToolGenerator to ensure proper formatting.
- Adjusted server.test.ts for consistent quotation marks and improved readability.
2025-06-30 23:27:57 +01:00
Nawaz Dhandala
3116100f1a feat: Remove test-logger.ts as it is no longer needed for MCP Logger testing 2025-06-30 23:18:35 +01:00
Simon Larsen
38194331e6 feat: Update JSON key handling in DatabaseBaseModel to convert 'id' to '_id' and remove the original 'id' key 2025-06-30 23:14:19 +01:00
Simon Larsen
d6ebd65417 feat: Update key handling in DatabaseBaseModel to convert 'id' to '_id' during record creation 2025-06-30 23:01:30 +01:00
Simon Larsen
4c467d0e3b feat: Replace 'removeValue' with 'delete' for id property in DatabaseBaseModel 2025-06-30 22:45:09 +01:00
Simon Larsen
49efec2a77 feat: Add support for converting 'id' to '_id' in DatabaseBaseModel and update DatabaseService for consistency 2025-06-30 22:44:49 +01:00
Simon Larsen
d73b6c6205 feat: Enhance item handling in DatabaseService to support new object structure 2025-06-30 22:27:44 +01:00
Simon Larsen
8db9c69e1e feat: Add modelType User to deletedByUserId relations across multiple database models
- Updated PromoCode, Reseller, ResellerPlan, ScheduledMaintenance, ScheduledMaintenanceCustomField, ScheduledMaintenanceFeed, ScheduledMaintenanceInternalNote, ScheduledMaintenanceNoteTemplate, ScheduledMaintenanceOwnerTeam, ScheduledMaintenanceOwnerUser, ScheduledMaintenancePublicNote, ScheduledMaintenanceState, ScheduledMaintenanceStateTimeline, ScheduledMaintenanceTemplate, ScheduledMaintenanceTemplateOwnerTeam, ScheduledMaintenanceTemplateOwnerUser, ServiceCatalog, ServiceCatalogDependency, ServiceCatalogMonitor, ServiceCatalogOwnerTeam, ServiceCatalogOwnerUser, ServiceCatalogTelemetryService, ServiceCopilotCodeRepository, ShortLink, SmsLog, StatusPage, StatusPageAnnouncement, StatusPageAnnouncementTemplate, StatusPageCustomField, StatusPageDomain, StatusPageFooterLink, StatusPageGroup, StatusPageHeaderLink, StatusPageHistoryChartBarColorRule, StatusPageOwnerTeam, StatusPageOwnerUser, StatusPagePrivateUser, StatusPageResource, StatusPageSso, StatusPageSubscriber, TableView, Team, TeamMember, TeamPermission, TelemetryException, TelemetryIngestionKey, TelemetryService, TelemetryUsageBilling, User, UserCall, UserEmail, UserNotificationRule, UserNotificationSetting, UserOnCallLog, UserOnCallLogTimeline, UserSMS, UserTwoFactorAuth, Workflow, WorkflowLog, WorkflowVariable, WorkspaceNotificationRule, WorkspaceProjectAuthToken, WorkspaceSetting, WorkspaceUserAuthToken to include modelType User for deletedByUserId relations.
- Updated OneUptimeApiService to exclude additional keys from update operations.
2025-06-30 22:11:21 +01:00
Simon Larsen
00e50f023f chore: Update DynamicToolGenerator for improved code organization and readability 2025-06-30 21:58:56 +01:00
Simon Larsen
f4db88e874 feat: Enhance OpenAPI metadata handling for array types in DynamicToolGenerator 2025-06-30 21:47:03 +01:00
Simon Larsen
255149e3d5 feat: Add EqualTo support in QueryUtil for enhanced query functionality 2025-06-30 21:21:06 +01:00
Simon Larsen
f1b4a396ec feat: Implement EqualTo class and related tests for comparison functionality 2025-06-30 21:19:24 +01:00
Simon Larsen
82b62d32fd refactor: Remove MCP Server Verification workflow from GitHub Actions 2025-06-30 20:58:56 +01:00
Simon Larsen
161b80c19a feat: Add initial GitHub Actions workflow for MCP Server Test 2025-06-30 20:58:32 +01:00
Simon Larsen
ff58beb50e refactor: Enhance cleanDescription method to remove permission information and improve description sanitization 2025-06-30 20:51:50 +01:00
Simon Larsen
63236366ee refactor: Improve comments in sanitizeToolName method for better clarity on string transformations 2025-06-30 20:42:51 +01:00
Simon Larsen
cbdc3186af refactor: Update User model to hide certain columns in documentation for cleaner API output 2025-06-30 20:34:39 +01:00
Simon Larsen
ab0936067c refactor: Remove disableOpenApiSchema option from schema generation methods for cleaner implementation 2025-06-30 20:08:30 +01:00
Simon Larsen
24c083cdb8 refactor: Add disableOpenApiSchema option to schema generation methods for conditional OpenAPI schema application 2025-06-30 19:18:52 +01:00
Simon Larsen
6ce945ac2c fix docs for mcp 2025-06-30 18:20:07 +01:00
Simon Larsen
1c9e9b37d3 refactor: Remove unused select schema from tool generation and enhance pagination descriptions 2025-06-30 16:36:55 +01:00
Simon Larsen
83c740d8cb refactor: Improve data handling in OneUptimeApiService for create and update operations 2025-06-30 14:58:32 +01:00
Simon Larsen
84819c73ff refactor: Mark database columns as computed for improved metadata handling 2025-06-30 13:44:57 +01:00
Simon Larsen
ce166f2f35 refactor: Update JSON Schema generation to disallow additional properties for stricter validation 2025-06-30 13:15:58 +01:00
Nico Aymet (nikuzz)
11b54365f0 Merge branch 'OneUptime:master' into set-permission-on-tmp-npm 2025-06-30 12:53:13 +01:00
Simon Larsen
432debc014 refactor: Update JSON Schema generation to allow additional properties for improved flexibility 2025-06-27 21:55:17 +01:00
Simon Larsen
d9f87c4103 refactor: Enhance request data generation and logging for OneUptimeApiService 2025-06-27 21:39:46 +01:00
Simon Larsen
680e33ba43 refactor: Update executeOperation method to use tableName instead of modelName for improved clarity 2025-06-27 21:20:22 +01:00
Simon Larsen
22162425fb refactor: Update API operation methods to use direct URL creation for improved route handling 2025-06-27 21:00:47 +01:00
Simon Larsen
93d935d117 refactor: Update buildApiRoute method to use Route.fromString for absolute route creation 2025-06-27 20:52:56 +01:00
Simon Larsen
48d9964c70 refactor: Change API initialization base route from '/api' to '/' to prevent route accumulation 2025-06-27 20:47:52 +01:00
Simon Larsen
d2921e3516 refactor: Update API initialization to use the correct base route for OneUptimeApiService 2025-06-27 20:46:58 +01:00
Simon Larsen
5c7e5a1eda refactor: Simplify API route initialization and enhance route building logic in OneUptimeApiService 2025-06-27 20:46:29 +01:00
Simon Larsen
f62a01594d refactor: Replace logger with MCPLogger for improved logging compliance and add MCPLogger class for stderr logging 2025-06-27 16:47:45 +01:00
Simon Larsen
99de9fbd3d refactor: Update secondTLDs list in Domain class for improved domain validation 2025-06-27 16:39:26 +01:00
Simon Larsen
7a0f31e10a refactor: Update MCP tool names to use a consistent prefix format 2025-06-27 16:38:57 +01:00
Simon Larsen
22cee30cdb refactor: Implement sanitizeToolName method to ensure valid MCP tool names and update tool name generation accordingly 2025-06-27 16:26:51 +01:00
Simon Larsen
5524d9d147 refactor: Rename bin command from 'oneuptime-mcp-server' to 'oneuptime-mcp' in package.json 2025-06-27 16:18:40 +01:00
Simon Larsen
9fb4f00460 docs: Add optional link command for global CLI usage in README; remove postinstall script from package.json 2025-06-27 16:18:18 +01:00
Simon Larsen
7e761cc6dd refactor: Update executable script path in package.json and set correct permissions for Index.ts 2025-06-27 15:56:45 +01:00
Simon Larsen
bcfbed0249 refactor: Update OneUptimeApiService to handle Count and Read operations correctly; adjust request data structure for Create and Update operations 2025-06-27 15:08:26 +01:00
Simon Larsen
208c7406f9 refactor: Improve base route handling and add support for Count operation in OneUptimeApiService 2025-06-27 14:58:59 +01:00
Simon Larsen
2a41fec3cd refactor: Update base route for API initialization and change authorization header to APIKey 2025-06-27 14:51:52 +01:00
Simon Larsen
73ea4bbb7c refactor: Implement Zod to JSON Schema conversion for MCP tools; enhance schema generation for database and analytics models 2025-06-27 14:32:33 +01:00
Simon Larsen
1b657b4758 refactor: Add MCP compilation job to GitHub Actions workflow; ensure proper environment setup and dependencies 2025-06-27 14:23:44 +01:00
Simon Larsen
7027739a81 refactor: Enforce required API key in OneUptimeApiConfig and initialize method; improve error handling for missing API key 2025-06-27 14:21:21 +01:00
Simon Larsen
3491869196 refactor: Update API service configuration to conditionally include apiKey; improve parameter handling in executeOperation and generateToolsForDatabaseModel methods 2025-06-27 14:18:46 +01:00
Simon Larsen
f6e106fb65 refactor: Update API service configuration to use bracket notation for environment variables; remove unused variables from imports 2025-06-27 14:17:17 +01:00
Simon Larsen
fd96b0f287 refactor: Remove unused APP_NAME constant from MCP server initialization 2025-06-27 14:15:05 +01:00
Simon Larsen
04ee339d58 refactor: Simplify environment configuration by removing hostname, protocol, and base route; update API service to use URL 2025-06-27 14:06:32 +01:00
Simon Larsen
2a74183de5 Refactor code structure for improved readability and maintainability 2025-06-27 14:02:59 +01:00
Simon Larsen
747d46eb83 refactor: Remove MCP server generation and publishing scripts from package.json 2025-06-27 13:07:57 +01:00
Simon Larsen
00b0be251e refactor: Rename MCP server generation to verification and update related steps 2025-06-27 13:05:47 +01:00
Simon Larsen
1cc057d256 refactor: Update .gitignore to include MCP Server build and environment files 2025-06-27 13:05:26 +01:00
Simon Larsen
907d3308d5 refactor: Update Dockerfile and package.json for MCP Server structure and build process 2025-06-27 13:05:20 +01:00
Simon Larsen
1e254e32fd feat: Implement MCP Hello World Server with basic tools and configuration 2025-06-27 12:56:38 +01:00
Simon Larsen
f2de3cc8a8 refactor: remove OpenAPIParser, StringUtils, and Types modules
- Deleted OpenAPIParser.ts, StringUtils.ts, and Types.ts as part of the refactoring process.
- Removed associated methods and interfaces that were no longer needed.
- Cleaned up the MCP server generation script and README documentation to reflect these changes.
- Updated the publish script to streamline the publishing process.
2025-06-27 12:52:26 +01:00
Simon Larsen
e6c33c8e6d feat: Add parameter validation for required inputs in MCPService methods 2025-06-26 21:51:32 +01:00
Simon Larsen
74c42ab0fe feat: Enhance MCPServerGenerator with path parameter extraction and request data handling 2025-06-26 21:21:52 +01:00
Simon Larsen
31434d7eb3 chore: update package dependencies across multiple modules
- Added new dependencies including @asteasolutions/zod-to-openapi, @bull-board/express, and @clickhouse/client (updated to version 1.10.1) in IsolatedVM, Nginx, OpenTelemetryIngest, Probe, ProbeIngest, ServerMonitorIngest, TestServer, Worker, and Workflow.
- Updated existing dependencies such as axios, express, and nodemailer to their latest versions.
- Removed unnecessary dependencies and cleaned up package-lock files.
- Updated devDependencies to include @testing-library packages and jest-related packages for improved testing capabilities.
- Renamed package names for ServerMonitorIngest and Worker to reflect their purpose more accurately.
2025-06-26 20:42:01 +01:00
Simon Larsen
9b9d6cf6a8 fix: Update OneUptime URL in configuration and README for clarity 2025-06-26 20:31:58 +01:00
Simon Larsen
abb793b2ae fix: Ensure root node_modules are removed before processing subdirectories 2025-06-26 20:17:55 +01:00
Simon Larsen
3119b8cfc2 feat: Add scripts for cleaning and installing node modules 2025-06-26 20:15:16 +01:00
Simon Larsen
eed5ce6ec9 fix: Improve handling of computed fields and attribute types in ResourceGenerator 2025-06-26 20:12:10 +01:00
Simon Larsen
46558d4a77 fix: Add non-null assertions for schema properties in OpenAPIParser to improve type safety 2025-06-26 20:07:34 +01:00
Simon Larsen
cef6638b2c fix: Update job dependencies in release workflows to include publish-mcp-server 2025-06-26 20:03:04 +01:00
Simon Larsen
031750d573 feat: Update build and test scripts for improved efficiency and clarity 2025-06-26 20:01:34 +01:00
Simon Larsen
4287632371 fix: Correct spelling and grammatical errors across multiple files 2025-06-26 15:16:07 +01:00
Nawaz Dhandala
5c464ae137 refactor: Add type annotations for improved type safety across multiple files 2025-06-26 14:24:15 +01:00
Nawaz Dhandala
cf6ee298cc Refactor and clean up code formatting across multiple files
- Improved code formatting in AnnouncementsTable.tsx for better readability.
- Simplified description formatting in AnnouncementView.tsx.
- Adjusted lazy loading syntax in StatusPagesRoutes.tsx for consistency.
- Enhanced script formatting in MCPServerGenerator.ts for better clarity.
- Streamlined error handling and response parsing in OpenAPIParser.ts.
- Refined resource generation logic in ResourceGenerator.ts for improved maintainability.
- Updated comments and structure in GenerateMCPServer.ts for better understanding.
- General code cleanup and formatting adjustments across various files to adhere to style guidelines.
2025-06-26 13:51:11 +01:00
Simon Larsen
8718e58dcb feat: Enhance npm authentication setup in release workflow and verify package before publishing 2025-06-26 13:32:14 +01:00
Simon Larsen
df4bc5ce12 feat: Capture OpenAPI format information and preserve original values for binary fields in resource generation 2025-06-26 12:34:10 +01:00
Simon Larsen
fccfb5b026 feat: Update SVG path for improved icon representation in enterprise-ready section 2025-06-26 12:33:36 +01:00
Simon Larsen
793de2623a feat: Add new features to enterprise-ready section including 5000+ integrations and full API access 2025-06-26 12:15:14 +01:00
Simon Larsen
05f2096e3e feat: Refactor Base64 handling for file columns in DatabaseService to convert strings to buffers 2025-06-26 11:46:18 +01:00
Simon Larsen
d291cdad26 feat: Enhance Base64 handling in Text utility and update DatabaseService for MIME type extraction 2025-06-26 11:10:31 +01:00
Simon Larsen
84fef8e48f feat: Add MCP Server documentation and navigation links 2025-06-26 09:00:05 +01:00
Simon Larsen
de62d40d6e feat: Remove publish MCP server workflow from GitHub Actions 2025-06-26 08:41:43 +01:00
Simon Larsen
98bf1ef155 feat: Add publish MCP server workflow to release and test workflows 2025-06-26 08:40:19 +01:00
Simon Larsen
4939305c08 feat: Add base64 string conversion for file columns in DatabaseService 2025-06-25 21:56:11 +01:00
Simon Larsen
cd77106939 erge branch 'master' into release 2025-06-25 21:42:02 +01:00
Simon Larsen
678a2ac498 Merge branch 'master' into release 2025-06-25 21:40:57 +01:00
Simon Larsen
0b3765594f feat: Add EnableDocumentation decorator to File model for improved documentation generation 2025-06-25 18:33:50 +01:00
Simon Larsen
9f77e8d82d feat: Update access control in FileModel to include AuthenticatedRequest permission 2025-06-25 18:26:51 +01:00
Simon Larsen
78fca73b8a feat: Update File access control to include AuthenticatedRequest permission 2025-06-25 18:24:13 +01:00
Simon Larsen
82e2bc75bf feat: Add spacing div in AnnouncementView for improved layout 2025-06-25 17:30:28 +01:00
Simon Larsen
85de170031 feat: Add AnnouncementView component and update routing for viewing announcements 2025-06-25 17:28:27 +01:00
Simon Larsen
338a2dc2cc refactor: Rename MCP-Generated directory to MCP and update related references in scripts and documentation 2025-06-25 17:09:27 +01:00
Simon Larsen
d400271f3c refactor: Remove MCPServerGenerator class and related methods for code cleanup 2025-06-25 16:56:59 +01:00
Simon Larsen
8c735e1500 fix: Update API key example in README for clarity and consistency 2025-06-25 16:56:26 +01:00
Simon Larsen
d4b0ac7b9c feat: Update README and MCPServerGenerator for consistent directory usage and improved API key example 2025-06-25 16:56:10 +01:00
Simon Larsen
8edcdd37e3 feat: Update MCP package configuration and add server generator
- Enhanced package.json with detailed description, keywords, and repository information.
- Updated scripts for building and starting the server.
- Added new dependencies for axios and dotenv.
- Modified tsconfig.json for improved TypeScript settings.
- Introduced MCPServerGenerator class to automate server file generation.
- Implemented methods to generate essential files: package.json, Index.ts, MCPService, APIClient, configuration utilities, README, tsconfig, nodemon config, and Dockerfile.
- Ensured proper error handling and environment variable validation in the generated code.
2025-06-25 16:53:24 +01:00
Simon Larsen
ed65a477e4 feat: Rename MCP-Generated directory to MCP for consistency across workflows and scripts 2025-06-25 16:51:30 +01:00
Simon Larsen
98e3386d22 feat: Implement OpenAPI Parser and MCP Server Generator
- Added OpenAPIParser class for parsing OpenAPI specifications and extracting MCP tools.
- Introduced StringUtils class for string manipulation utilities.
- Defined TypeScript interfaces for OpenAPI operations, parameters, and schemas.
- Created GenerateMCPServer script to orchestrate the generation of the MCP server from OpenAPI spec.
- Developed README.md for comprehensive documentation on usage and features of the MCP server.
- Implemented publish-mcp-server.sh script for automating the publishing process to NPM and GitHub.
- Established a structured output directory for generated MCP server files, including configuration and documentation.
2025-06-25 16:47:23 +01:00
Simon Larsen
c2b4f1d117 Remove MCP package.json and tsconfig.json files as part of project restructuring 2025-06-25 16:19:17 +01:00
Simon Larsen
fe879d86ce feat: Update linting commands to use npx eslint with increased memory limit and caching 2025-06-24 21:45:10 +01:00
Simon Larsen
9e63a4cbf5 feat: Enhance lint-batches.sh with configurable options for cache, memory, format, timeout, and batch size 2025-06-24 21:25:44 +01:00
Simon Larsen
6c5ba10a52 feat: Remove ESLint configuration file to streamline linting process 2025-06-24 20:46:09 +01:00
Simon Larsen
9c9751c2c7 feat: Remove ignore rule for TerraformProvider in ESLint configuration to address linting issues 2025-06-24 20:31:21 +01:00
Simon Larsen
1b70517463 feat: Refactor DataSourceGenerator, DocumentationGenerator, OpenAPIParser, ResourceGenerator, and StringUtils for improved readability and maintainability 2025-06-24 20:16:45 +01:00
Simon Larsen
38f79900cc feat: Enhance multi-platform build process and improve error messages for provider generation 2025-06-24 20:03:02 +01:00
Simon Larsen
9fc8d679d8 feat: Enhance ModelSchema to combine column and permissions descriptions for improved schema clarity 2025-06-24 18:43:13 +01:00
Simon Larsen
83838da879 feat: Enhance DataSourceGenerator and OpenAPIParser to support dynamic imports and identify read operations for GET and POST methods 2025-06-24 18:37:11 +01:00
Simon Larsen
4e6e7cf354 feat: Replace linting commands with a new script to handle batch linting and prevent memory issues 2025-06-24 18:23:34 +01:00
Simon Larsen
dfc4e2e7f8 feat: Update access control and add computed properties for various models to enhance notification handling 2025-06-24 18:13:49 +01:00
Simon Larsen
8f9c463d85 feat: Enhance OpenAPIParser and ResourceGenerator to support optional and computed fields in schema handling 2025-06-24 15:20:04 +01:00
Simon Larsen
82af0bee58 feat: Update Alert, Incident, and Monitor models to include isDefaultValueColumn and enhance access control permissions 2025-06-24 15:07:50 +01:00
Simon Larsen
babf818963 feat: Enhance ModelSchema to mark computed fields as readOnly and update create/update operations handling 2025-06-24 15:03:05 +01:00
Simon Larsen
b4477e04ef feat: Update Incident, Monitor, and ScheduledMaintenance models to use isDefaultValueColumn for state ID fields 2025-06-24 14:54:54 +01:00
Simon Larsen
f0457df102 feat: Add computed property to various database models for enhanced data handling 2025-06-24 14:53:56 +01:00
Simon Larsen
73a1997f4c feat: Skip computed fields for create operations in ModelSchema to enhance data handling 2025-06-24 14:23:32 +01:00
Simon Larsen
e4e7b7c7d8 feat: Update Incident and Monitor models to include computed properties and simplify access control 2025-06-24 14:08:54 +01:00
Simon Larsen
aa7bd3140c feat: Add computed property to various database models for enhanced data handling 2025-06-24 14:02:56 +01:00
Simon Larsen
095ad5dbf4 feat: Add computed property support in TableColumnMetadata and update related permissions logic 2025-06-24 13:47:53 +01:00
Simon Larsen
f8c8f26cab feat: Enhance response handling for list and object types in ResourceGenerator 2025-06-24 13:29:57 +01:00
Simon Larsen
a923b0f885 refactor: Update default value handling to consider both create and update schemas in ResourceGenerator 2025-06-24 13:18:38 +01:00
Simon Larsen
d352610ca7 refactor: Remove unused onBeforeUpdate method from MonitorService 2025-06-24 13:01:31 +01:00
Simon Larsen
23c57a1483 feat: Add support for complex objects in OpenAPIParser and ResourceGenerator 2025-06-24 12:52:00 +01:00
Simon Larsen
d3106e4ac8 refactor: Enhance resource schema handling by adding support for default values and list types in ResourceGenerator 2025-06-24 12:17:47 +01:00
Simon Larsen
a0acf8cac2 feat: Add operationSchemas to TerraformResource and implement schema generation for CRUD operations in OpenAPIParser 2025-06-24 11:53:18 +01:00
Simon Larsen
b29df21b4d refactor: Enhance OpenAPI schema handling by incorporating default values in ModelSchema and ResourceGenerator 2025-06-24 11:21:47 +01:00
Simon Larsen
e1f52ebd26 refactor: Implement helper function to add default values to OpenAPI schema in AnalyticsModelSchema and ModelSchema 2025-06-23 18:29:06 +01:00
Simon Larsen
0248ae5ec6 Add default values for boolean fields across various database models
- Set defaultValue to false for boolean fields in Monitor, MonitorGroupOwnerTeam, MonitorGroupOwnerUser, MonitorOwnerTeam, MonitorOwnerUser, MonitorProbe, MonitorStatus, MonitorStatusTimeline, MonitorTest, OnCallDutyPolicy, OnCallDutyPolicyExecutionLog, OnCallDutyPolicyOwnerTeam, OnCallDutyPolicyOwnerUser, Probe, ProbeOwnerTeam, ProbeOwnerUser, Project, ProjectSmtpConfig, ProjectSso, PromoCode, ScheduledMaintenance, ScheduledMaintenanceInternalNote, ScheduledMaintenanceOwnerTeam, ScheduledMaintenanceOwnerUser, ScheduledMaintenancePublicNote, ScheduledMaintenanceStateTimeline, ScheduledMaintenanceTemplate, ServiceCopilotCodeRepository, SmsLog, StatusPage, StatusPageAnnouncement, StatusPageAnnouncementTemplate, StatusPageDomain, StatusPageGroup, StatusPageOwnerTeam, StatusPageOwnerUser, StatusPagePrivateUser, StatusPageResource, StatusPageSso, StatusPageSubscriber, TeamMember, TeamPermission, TelemetryException, User, UserEmail, UserNotificationSetting, UserSMS, UserTwoFactorAuth, Workflow, WorkflowVariable.
- Set defaultValue to true for specific boolean fields in MonitorProbe, MonitorTest, OnCallDutyPolicy, ScheduledMaintenance, StatusPage, and StatusPageResource.
- Adjusted default values for various fields to ensure consistent behavior across the application.
2025-06-23 18:16:18 +01:00
Simon Larsen
064ff68147 refactor: Add JSONObject type to defaultValue in TableColumnMetadata interface 2025-06-23 16:31:19 +01:00
Simon Larsen
5794e40fd1 docs: Update contributing guidelines to clarify repository status and forking instructions 2025-06-23 15:52:45 +01:00
Simon Larsen
51faf12723 refactor: Enhance OpenAPI example handling in DocumentationGenerator and OpenAPIParser 2025-06-23 15:50:06 +01:00
Simon Larsen
1c658651ac refactor: Change provider parameter from "host" to "oneuptime_url" for clarity and consistency 2025-06-23 15:42:28 +01:00
Simon Larsen
482c6d3e0b refactor: Improve toSnakeCase method to handle consecutive uppercase letters and camelCase conversion 2025-06-23 15:41:01 +01:00
Simon Larsen
441ab82acf refactor: Update documentation to mark api_key as required for authentication 2025-06-23 15:27:14 +01:00
Simon Larsen
7d18b81ea5 refactor: Update api_key to be required for authentication in DocumentationGenerator and ProviderGenerator 2025-06-23 15:20:29 +01:00
Simon Larsen
a8c3ca5f01 refactor: Change provider parameter from "host" to "oneuptime_url" for clarity and consistency 2025-06-23 15:18:49 +01:00
Simon Larsen
1d57657b72 refactor: Make "Project ID" optional in ModelSchema when derived from API key 2025-06-23 14:55:35 +01:00
Simon Larsen
a4bb6744f4 refactor: Add isDefaultValueColumn property to Current Monitor Status ID in Monitor model 2025-06-23 14:41:33 +01:00
Simon Larsen
4d3ef70765 refactor: Adjust logic for handling optional columns in ModelSchema 2025-06-23 14:40:25 +01:00
Simon Larsen
6f71a67adf refactor: Update example values and adjust optionality for default value columns in ModelSchema 2025-06-23 14:37:09 +01:00
Simon Larsen
a701f5eff0 refactor: Improve code formatting for better readability in DataSourceGenerator, ResourceGenerator, and StringUtils 2025-06-23 14:22:20 +01:00
Simon Larsen
7f7f3cf62b refactor: Add --test-release flag to publish-terraform-provider command 2025-06-20 22:06:36 +01:00
Simon Larsen
2f4d51b833 refactor: Remove Terraform configuration and provider files from TerraformTest 2025-06-20 22:05:12 +01:00
Simon Larsen
c09369c351 refactor: Add TerraformTest directory to .gitignore 2025-06-20 22:04:22 +01:00
Simon Larsen
aeb3d93a1f refactor: Update authentication error message to include API key requirement 2025-06-20 21:59:38 +01:00
Simon Larsen
24803362cb refactor: Enhance publish script for OneUptime Terraform Provider with improved argument parsing, validation, and error handling 2025-06-20 21:28:19 +01:00
Simon Larsen
1dcd3664c7 refactor: Add PostWithSelect method and update resource handling for API calls 2025-06-20 17:34:22 +01:00
Simon Larsen
3e51f3542b refactor: Update path for get item endpoint in OpenAPIUtil to include '/get-item' 2025-06-20 16:50:29 +01:00
Simon Larsen
f8d80b59ac refactor: Add createdByUserId and deletedByUserId to computed fields check in OpenAPIParser 2025-06-20 16:41:24 +01:00
Simon Larsen
36f6561b2c refactor: Enhance response value handling in generateResponseSetter method 2025-06-20 15:55:06 +01:00
Simon Larsen
5ed9b8ec24 refactor: Improve handling of Terraform map and response data in ResourceGenerator 2025-06-20 15:49:02 +01:00
Simon Larsen
672caa8c0a refactor: Change authorization header from Bearer token to APIKey in DoRequest method 2025-06-20 14:40:46 +01:00
Simon Larsen
46e7d9aca6 refactor: Preserve original OpenAPI parameter and property names in ResourceGenerator and OpenAPIParser 2025-06-20 14:38:24 +01:00
Simon Larsen
aa617ec0ba refactor: Enhance handling of Terraform map and list types in ResourceGenerator 2025-06-20 14:33:49 +01:00
Simon Larsen
aaa8d13526 refactor: Exclude Entity columns while retaining EntityArray columns in ModelSchema 2025-06-20 14:15:32 +01:00
Simon Larsen
b055a999e3 refactor: Clarify logic for making fields optional in ModelSchema 2025-06-20 14:00:12 +01:00
Simon Larsen
3c7426ffac refactor: Sanitize attribute names in DataSourceGenerator and ResourceGenerator to avoid reserved keywords 2025-06-20 13:50:49 +01:00
Simon Larsen
09a8d89106 refactor: Update API host URL in README and scripts for consistency 2025-06-20 12:35:30 +01:00
Simon Larsen
3e8273ce55 refactor: Improve code formatting and readability in OpenAPIParser and StringUtils 2025-06-20 12:17:02 +01:00
Simon Larsen
7f08319da2 refactor: Enhance type annotations for methods and variables in OpenAPIParser, ResourceGenerator, StringUtils, and TerraformProviderGenerator 2025-06-20 00:09:33 +01:00
Simon Larsen
9f8c88ec91 refactor: Improve code formatting and readability across multiple generator files 2025-06-20 00:02:47 +01:00
Simon Larsen
571858aad5 refactor: Enhance type annotations and access modifiers across the Terraform provider codebase
- Updated constructors and methods in various classes to use public access modifiers for better clarity.
- Added explicit type annotations for variables and function return types to improve type safety and readability.
- Refactored the DocumentationGenerator, FileGenerator, GoCodeGenerator, GoModuleGenerator, OpenAPIParser, ProviderGenerator, ResourceGenerator, StringUtils, TerraformProviderGenerator, and GenerateProvider scripts.
- Removed deprecated Index.ts file related to Terraform provider generation.
2025-06-19 23:57:50 +01:00
Simon Larsen
6c6612fde9 refactor: Improve readability and consistency in example generation and resource imports 2025-06-19 23:45:00 +01:00
Simon Larsen
30dd60f01f feat: Add example generation for resource documentation and enhance schema handling 2025-06-19 23:32:39 +01:00
Simon Larsen
f9372928fd refactor: Enhance handling of map and list types in resource generation, adding comments for future implementation 2025-06-19 21:35:42 +01:00
Simon Larsen
0475f1cbea refactor: Update import determination logic based on actual usage and resource operations 2025-06-19 21:25:18 +01:00
Simon Larsen
461b64eb56 Refactor code for improved readability and consistency
- Updated formatting in DocumentationGenerator.ts for better readability.
- Enhanced writeFileInDir method in FileGenerator.ts with consistent formatting.
- Refactored GoCodeGenerator.ts for improved code structure and readability.
- Improved error handling and formatting in OpenAPIParser.ts.
- Enhanced ProviderGenerator.ts with consistent formatting for file writing.
- Refactored ResourceGenerator.ts for improved readability and consistency.
- Updated StringUtils.ts for better formatting and readability.
- Improved TerraformProviderGenerator.ts with consistent formatting.
- Refactored GenerateProvider.ts for better error handling and readability.
- Updated Index.ts for improved formatting and consistency.
2025-06-19 21:05:06 +01:00
Simon Larsen
22d326bf6f feat: Implement dynamic example generation for model schemas and enhance schema descriptions 2025-06-19 20:54:39 +01:00
Simon Larsen
e8b0d76bf0 refactor: Enhance schema handling for unknown column types and improve descriptions in ModelSchema 2025-06-19 20:39:17 +01:00
Simon Larsen
37c8ab5405 refactor: Remove debug logging from schema processing in OpenAPIParser 2025-06-19 19:51:26 +01:00
Simon Larsen
f73a964916 feat: Add build and installation script generation for Terraform provider 2025-06-19 19:50:32 +01:00
Simon Larsen
d9412b6c0c refactor: Improve operation type determination and schema extraction in OpenAPIParser 2025-06-19 19:46:49 +01:00
Simon Larsen
eed38eed8d refactor: Update host configuration to remove '/api' path and clarify documentation 2025-06-19 19:14:04 +01:00
Simon Larsen
fdfabe080c refactor: Enhance toSnakeCase method to replace multiple underscores with a single underscore 2025-06-19 19:07:50 +01:00
Simon Larsen
8b41779fa2 refactor: Update provider configuration to use default host and remove unused authentication fields 2025-06-19 19:03:33 +01:00
Simon Larsen
1ef5894325 feat: Implement Terraform Provider Generator with OpenAPI integration
- Added StringUtils class for string manipulation and formatting.
- Created TerraformProviderGenerator class to handle provider generation.
- Defined TypeScript interfaces for Terraform provider configuration and OpenAPI specifications.
- Developed GenerateProvider script to orchestrate the provider generation process.
- Added README documentation for the Terraform provider generator.
- Implemented installation script for local provider installation.
- Created publish script for preparing and publishing the provider to Terraform Registry.
2025-06-19 18:55:46 +01:00
Simon Larsen
aec4878948 refactor: remove unused select schema references in OpenAPIUtil 2025-06-19 18:31:36 +01:00
Simon Larsen
f28dd9468f refactor: remove unused select schema reference in OpenAPIUtil 2025-06-19 18:29:31 +01:00
Simon Larsen
ba3d665e19 refactor: remove unused select schema reference in create API spec 2025-06-19 18:28:42 +01:00
Simon Larsen
035e9273d9 Refactor: Remove old Terraform provider implementation and scripts
- Deleted main.go and provider.go files as part of the provider refactor.
- Removed publish-terraform-provider.sh script, which was responsible for publishing the provider to the Terraform Registry.
- Eliminated validate-generation.sh script used for local validation of the provider generation process.
- Introduced new Index.ts file to initiate the Terraform provider generation process from the OpenAPI specification.
- Updated the generation process to ensure a clean slate by removing any existing Terraform directory before generating new files.
2025-06-19 17:58:39 +01:00
Simon Larsen
849e06ec35 feat: implement type conflict resolution in TypeConflictResolver 2025-06-19 17:39:26 +01:00
Simon Larsen
9e1cc85c09 refactor: improve resource and data source handling in GeneratorConfig 2025-06-19 17:22:23 +01:00
Simon Larsen
04ce633338 refactor: simplify response schema registration in OpenAPIUtil 2025-06-19 17:17:29 +01:00
Simon Larsen
a04c561ad5 fix: add missing newline for better readability in GenerateProvider.ts 2025-06-19 16:05:52 +01:00
Simon Larsen
f221b2b4ff feat: add response schemas for list, create, get, update, and analytics operations in OpenAPIUtil 2025-06-19 15:33:39 +01:00
Simon Larsen
4ab7b09661 fix: correct function call for provider initialization in main.go 2025-06-19 14:32:23 +01:00
Simon Larsen
523b842e57 fix: ensure error is thrown after failed Go module initialization and tidy command 2025-06-19 14:27:19 +01:00
Simon Larsen
023fe0b742 fix: correct import statement for provider package in main.go 2025-06-19 14:26:32 +01:00
Simon Larsen
e06085a16a feat: implement initial provider structure and functionality for OneUptime Terraform provider 2025-06-19 14:19:25 +01:00
Simon Larsen
e074b38e3d fix: correct path references in Go module initialization and main.go file reading 2025-06-19 13:38:23 +01:00
Simon Larsen
3d6a61ddc1 feat: add Go module setup and main entry point for Terraform provider generation 2025-06-19 13:28:00 +01:00
Simon Larsen
f3dc3e976e refactor: format output path for Terraform provider generation for improved readability 2025-06-19 13:18:54 +01:00
Simon Larsen
f556cf1174 fix: update output path for Terraform provider generation to include full provider name 2025-06-18 17:11:27 +01:00
Simon Larsen
6b7a102b9a refactor: replace <span> with <div> for monitor status elements to improve structure 2025-06-18 14:50:19 +01:00
Simon Larsen
a7d672263a refactor: rename 'type' to 'fileType' in various components for consistency and clarity 2025-06-18 14:47:18 +01:00
Simon Larsen
3ebc19fb78 refactor: rename 'type' columns to 'fileType', 'paymentMethodType', and 'customFieldType' in migration files for clarity; update related code references 2025-06-18 13:48:54 +01:00
Simon Larsen
7c509791f4 fix: update fieldType references to use customFieldType for consistency in CustomFieldsDetail component 2025-06-18 13:43:13 +01:00
Simon Larsen
5225fdde0d feat: add migration to rename 'type' columns to improve clarity in database schema 2025-06-18 13:41:31 +01:00
Simon Larsen
8a57fdbac7 refactor: rename 'type' to 'customFieldType' and 'paymentMethodType' in various models and components for clarity 2025-06-18 13:40:15 +01:00
Simon Larsen
77e097bf5f feat: implement ProviderCodeSpecGenerator for generating provider code specifications 2025-06-18 12:04:49 +01:00
Simon Larsen
b13f1d03c0 fix: remove Go module setup from provider generation process and add scaffolding for framework output directory 2025-06-18 11:15:01 +01:00
Simon Larsen
9af40e0efb feat: enhance provider.go generation with dynamic resource and data source implementations 2025-06-17 20:55:22 +01:00
Simon Larsen
eceeffec2e fix: remove unnecessary terraform block from example configuration 2025-06-17 20:44:14 +01:00
Simon Larsen
f057710abf fix: update get_provider_version function to return a default version for testing 2025-06-17 20:34:31 +01:00
Simon Larsen
bdf21e3598 chore: remove local installation script for OneUptime Terraform provider 2025-06-17 20:32:47 +01:00
Simon Larsen
55a40d80d5 fix: update .gitignore to include Terraform provider files and modify install script to use --force option 2025-06-17 20:31:05 +01:00
Simon Larsen
70cd4e7a46 feat: Add OneUptime Terraform Provider Publisher script
- Implemented a comprehensive bash script to automate the publishing process of the OneUptime Terraform provider to the Terraform Registry.
- Included functionalities for version specification, testing mode, dependency installation, provider generation, GitHub repository interaction, release creation, and asset uploading.
- Added error handling, prerequisite validation, and detailed logging for better user experience.
- Integrated GPG signing for release assets and SHA256 checksum generation.
- Provided usage instructions and examples for ease of use.
2025-06-17 20:28:24 +01:00
Simon Larsen
301cf0611d feat: add local installation script and update README for Terraform provider 2025-06-17 20:14:05 +01:00
Simon Larsen
16fd822f4f fix: update GPG private key reference in Terraform provider workflow 2025-06-17 12:26:00 +01:00
Simon Larsen
100bfbe5db fix: enhance GPG signing process with key validation and debugging output 2025-06-17 12:00:42 +01:00
Simon Larsen
e420e44bee fix: add GPG key import and export steps in Terraform provider publishing process 2025-06-17 11:34:42 +01:00
Simon Larsen
18b5323bc2 fix: add asset existence check and deletion before uploading in release process 2025-06-17 11:24:17 +01:00
Simon Larsen
cb002e25f9 fix: remove GPG key import and export steps from Terraform provider publishing process 2025-06-17 11:12:01 +01:00
Simon Larsen
19a0cfd3fd fix: add GPG key import and export steps in Terraform provider generation workflow 2025-06-17 11:06:26 +01:00
Simon Larsen
3b6a746d41 fix: streamline GPG key handling in SHASUMS signing process 2025-06-17 11:00:04 +01:00
Simon Larsen
f27090dc4f fix: improve GPG key import error handling and output for better debugging 2025-06-17 10:50:41 +01:00
Simon Larsen
2b68ec3d1b fix: enhance GPG key import process by using a temporary file and improving status messages 2025-06-17 10:44:18 +01:00
Simon Larsen
02e3d1138e fix: update Terraform provider publish command to use quotes for better handling of secrets 2025-06-17 10:32:08 +01:00
Simon Larsen
fdb2823fda fix: streamline GPG key handling in Terraform provider publish workflow 2025-06-17 10:27:29 +01:00
Simon Larsen
0ed160f68f fix: streamline GPG key handling and enhance publish script options for Terraform provider 2025-06-17 10:20:42 +01:00
Simon Larsen
66f6952ad9 fix: remove fallback for GPG private key in release workflow 2025-06-17 10:11:16 +01:00
Simon Larsen
d08387d4c8 fix: improve GPG key import process with enhanced error handling and automation 2025-06-17 09:59:12 +01:00
Simon Larsen
78835f8fb4 fix: enhance GPG signing process with improved error handling and automation 2025-06-17 09:48:14 +01:00
Simon Larsen
ae9af32768 fix: update GitHub release title and name format to simplify versioning 2025-06-17 09:42:13 +01:00
Simon Larsen
16de3a0380 fix: include signature files in release asset creation and upload process 2025-06-17 09:39:55 +01:00
Simon Larsen
5196fc1385 fix: enhance GPG signing process with validation and improved error handling 2025-06-16 23:14:37 +01:00
Simon Larsen
964afb0a1d fix: streamline provider generation by removing redundant validations and enhancing zip archive creation 2025-06-16 23:05:03 +01:00
Simon Larsen
c5b382c122 fix: replace multi-platform build process with verification of existing builds 2025-06-16 22:47:46 +01:00
Simon Larsen
e74fddfe75 fix: update build command in publish script to use variable for ldflags 2025-06-16 22:44:28 +01:00
Simon Larsen
2ef6698f1b fix: update publish script to validate provider framework directory and adjust paths for Go operations 2025-06-16 22:31:27 +01:00
Simon Larsen
7dac270540 fix: enhance provider generation validation with checks for essential files and Go module dependencies 2025-06-16 22:02:57 +01:00
Simon Larsen
bfb0cf1a79 fix: update file paths in provider generation and build scripts to reflect new directory structure 2025-06-16 21:54:59 +01:00
Simon Larsen
8765bc07ed fix: add retry logic with exponential backoff to Slack API requests 2025-06-16 21:51:21 +01:00
Simon Larsen
388a842da4 fix: add checks for essential files in provider generation and build process 2025-06-16 21:45:02 +01:00
Simon Larsen
157e5563db fix: add multi-platform build, SHASUM generation, and asset upload to publish script 2025-06-16 21:31:21 +01:00
Simon Larsen
619dacf18b fix: simplify GitHub release title in publish-terraform-provider script 2025-06-16 21:23:59 +01:00
Simon Larsen
f76915f56f fix: enhance push_to_repository function to handle remote changes and tag management 2025-06-16 21:14:46 +01:00
Simon Larsen
37dc6a82cb fix: update publish-terraform-provider script to use 'master' branch instead of 'main'
fix: revise Terraform documentation to clarify project creation and resource structure
fix: enhance examples and quick start guide for better clarity on project ID usage
2025-06-16 21:07:14 +01:00
Simon Larsen
a0b980fb56 fix: remove unnecessary closing brace in publish-terraform-provider script 2025-06-16 20:56:32 +01:00
Simon Larsen
8065dcdb18 fix: update publish-terraform-provider script for test release mode 2025-06-16 20:50:58 +01:00
Simon Larsen
3be7b0e4ee fix: improve formatting of manifestContent declaration in GoModuleSetup 2025-06-16 20:44:43 +01:00
Simon Larsen
1e3f5fb7e4 fix: improve GitHub release creation logic for dry runs and actual releases 2025-06-16 20:39:26 +01:00
Simon Larsen
df52df8fe0 fix: clean up formatting and whitespace in FormField and GoModuleSetup files 2025-06-16 20:35:54 +01:00
Simon Larsen
514ee1e6ed fix: enhance repository access validation and clarify GITHUB_TOKEN permissions in publish script 2025-06-16 20:31:39 +01:00
Simon Larsen
5350c22833 fix: ensure SSH directory exists before setting up deploy key for GitHub release 2025-06-16 20:23:54 +01:00
Simon Larsen
e82092dbd7 fix: remove unnecessary fail-fast strategy from multiple Docker image deploy jobs 2025-06-16 20:18:56 +01:00
Simon Larsen
44e80d6707 fix: update environment variables for publish-terraform-provider job in release workflows 2025-06-16 20:17:28 +01:00
Simon Larsen
6c67b61cc1 fix: enhance GitHub authentication method in publish script to support deploy keys 2025-06-16 20:15:59 +01:00
Simon Larsen
d58b5170d9 fix: update description type in multiple components to support ReactElement 2025-06-16 16:57:09 +01:00
Simon Larsen
8262cc5a00 fix: correct script path casing for publish-terraform-provider in package.json 2025-06-16 16:49:09 +01:00
Simon Larsen
c579bc21a8 fix: update dependencies for test-helm-chart job to include publish-terraform-provider 2025-06-16 16:37:54 +01:00
Simon Larsen
ac131d6ae6 feat: add publishing workflow for Terraform provider with versioning and dependency management 2025-06-16 16:36:53 +01:00
Simon Larsen
6b03b541b3 fix: improve dry run handling in Terraform provider publishing script 2025-06-16 16:36:07 +01:00
Simon Larsen
14f95d54f4 fix: enhance GitHub authentication and error handling in publishing script 2025-06-16 16:20:41 +01:00
Simon Larsen
bd2c70e5fe fix: remove redundant success message from publishing process 2025-06-16 16:16:26 +01:00
Simon Larsen
498a481162 feat: add multi-platform build support for Terraform provider 2025-06-16 15:56:04 +01:00
Simon Larsen
3ec126eed9 fix: update Go module setup to create cmd directory and adjust main.go path 2025-06-16 15:43:30 +01:00
Simon Larsen
b0d9e08f1b feat: implement Go module setup and build configuration for Terraform provider 2025-06-16 15:08:48 +01:00
Simon Larsen
625ad9cc47 fix: remove unnecessary whitespace in features table for cleaner code 2025-06-16 14:52:43 +01:00
Simon Larsen
d17b272c61 fix: update feature descriptions for clarity and consistency 2025-06-16 14:26:04 +01:00
Simon Larsen
5188f0fb2d fix: remove PR comment step from OpenAPI spec generation workflow 2025-06-16 14:17:07 +01:00
Simon Larsen
cafe51ed38 fix: remove comment PR step from Terraform provider generation workflow 2025-06-16 14:16:53 +01:00
Simon Larsen
25ff258d83 fix: remove unnecessary blank lines in route definitions for cleaner code 2025-06-16 13:14:29 +01:00
Simon Larsen
140547d796 fix: update link styling for improved visibility in Markdown cheatsheet 2025-06-16 13:07:59 +01:00
Simon Larsen
b68f25b80d fix: ensure consistent styling for Markdown link in cheatsheet 2025-06-16 13:07:29 +01:00
Simon Larsen
6521009e29 feat: add Terraform support option to pricing plans and improve route formatting 2025-06-16 13:07:26 +01:00
Simon Larsen
589cd8d8ee feat: add Markdown description support across various components for enhanced user guidance 2025-06-16 13:04:14 +01:00
Simon Larsen
bc644a75f8 fix: update Markdown utility import path and adjust helpText state type in CodeEditor component 2025-06-16 12:45:40 +01:00
Simon Larsen
d564c573e5 refactor: remove unused Markdown imports and improve description formatting in various components 2025-06-16 12:44:02 +01:00
Simon Larsen
60b6b55f0f fix: update descriptions in Alert, ScheduledMaintenanceTemplate, and StatusPageAnnouncement models to clarify Markdown usage 2025-06-16 12:39:55 +01:00
Simon Larsen
5179107c02 fix: update remediation notes description in Alert model and remove unused Markdown import in IncidentNoteTemplate 2025-06-16 12:38:55 +01:00
Simon Larsen
fa6ef8070c feat: enhance Markdown support with utility functions and update descriptions across various components 2025-06-16 12:36:41 +01:00
Simon Larsen
c21623d275 feat: add Terraform Provider navigation links and restructure publishing documentation 2025-06-16 09:56:37 +01:00
Simon Larsen
f9d17364f3 Add comprehensive documentation for OneUptime Terraform Provider
- Created main documentation index for Terraform Provider.
- Added Quick Start Guide for rapid setup and configuration.
- Developed detailed installation and usage guide from Terraform Registry.
- Introduced Self-Hosted Configuration Guide emphasizing version compatibility.
- Included troubleshooting sections and best practices for self-hosted users.
- Provided complete configuration examples for various environments.
2025-06-16 09:41:10 +01:00
Simon Larsen
a1c719b653 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-06-16 09:32:27 +01:00
Simon Larsen
42e9016c31 feat: implement Terraform provider release workflow and documentation 2025-06-16 09:32:24 +01:00
Simon Larsen
6c4d64455f Merge pull request #1949 from OneUptime/snyk-fix-dee1b14b5aa17ca1ba382a4c7a01772c
[Snyk] Security upgrade jest from 29.7.0 to 30.0.0
2025-06-14 21:30:46 +01:00
snyk-bot
1931b9a45b fix: package.json & package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-BABELHELPERS-9397697
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116
- https://snyk.io/vuln/SNYK-JS-BRACEEXPANSION-9789073
2025-06-14 11:29:13 +00:00
Simon Larsen
5b4233a61c feat: add Terraform provider publishing workflow and script 2025-06-13 22:13:37 +01:00
Simon Larsen
e059d9ee0c style: format code for better readability in AnnouncementCreate and StatusPageAnnouncementTemplates components 2025-06-13 20:55:55 +01:00
Simon Larsen
0c3a90ed83 fix: correct PageRoute structure in StatusPagesRoutes component 2025-06-13 20:53:17 +01:00
Simon Larsen
b62e6a4b23 feat: create AnnouncementCreate component and update routing for announcements 2025-06-13 20:51:08 +01:00
Simon Larsen
c42e13d160 feat: enhance Status Pages field structure in StatusPageAnnouncementTemplates 2025-06-13 20:49:29 +01:00
Simon Larsen
febb0c77e6 feat: add Announcement creation page and update routing for announcements 2025-06-13 20:43:00 +01:00
Simon Larsen
d5706167a6 refactor: remove unused overrideFieldKey property from StatusPageAnnouncementTemplateView and StatusPageAnnouncementTemplates 2025-06-13 20:22:32 +01:00
Simon Larsen
bcbddd480d refactor: standardize formatting and improve readability in StatusPageAnnouncementTemplateView and SpecificationConverter 2025-06-13 20:20:25 +01:00
Simon Larsen
58067a989b feat: update permissions for Status Page Announcement Template and enhance route handling in the settings page 2025-06-13 14:11:48 +01:00
Simon Larsen
242b6a3dde feat: add Status Page Announcement Template view and update routes for enhanced functionality 2025-06-13 14:08:27 +01:00
Simon Larsen
17a67eb19d refactor: improve code readability by standardizing formatting across multiple files 2025-06-13 13:54:36 +01:00
Simon Larsen
0ef1b717aa refactor: add type annotations for improved type safety across various components 2025-06-13 13:50:06 +01:00
Simon Larsen
c0be3e2fa5 fix: standardize formatting and improve readability in various files 2025-06-13 12:58:46 +01:00
Simon Larsen
739256bd19 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-06-13 12:53:37 +01:00
Simon Larsen
cdf26234d5 feat: add disableSpellCheck prop to various components to enhance user experience 2025-06-13 11:53:12 +00:00
Simon Larsen
025ceb7a3d feat: add Status Page Announcement Template API integration 2025-06-13 12:51:17 +01:00
Simon Larsen
fae86b13d7 feat: add routes for Status Page Announcement Templates in settings 2025-06-13 12:46:52 +01:00
Simon Larsen
6f26f1b5f9 feat: add migration for Status Page Announcement Template and related tables with foreign key constraints 2025-06-13 12:23:13 +01:00
Simon Larsen
81ec5a42de refactor: improve readability of template selection logic in AnnouncementTable 2025-06-13 12:16:43 +01:00
Simon Larsen
3084438cf9 feat: add functionality for creating announcements from templates with modal integration and error handling 2025-06-13 12:13:52 +01:00
Simon Larsen
d74be2e23a feat: add Status Page Announcement Template functionality with permissions and UI integration 2025-06-13 12:09:13 +01:00
Simon Larsen
3234f730fe Refactor ToolInstaller and ProviderSpec for improved readability and consistency
- Updated import statements to use double quotes for consistency.
- Refactored ToolInstaller methods to enhance readability and maintainability.
- Improved error handling and logging in ToolInstaller methods.
- Simplified the installation verification process for tools.
- Enhanced the ProviderSpec class to maintain consistent formatting and error handling.
- Refactored SpecificationConverter for better structure and clarity.
- Improved the extraction and sanitization of resource names in SpecificationConverter.
- Enhanced schema generation logic to accommodate various OpenAPI specifications.
2025-06-13 12:07:22 +01:00
Simon Larsen
60a6714e40 feat: update spellCheck behavior in Input component to conditionally disable based on input type 2025-06-13 11:04:31 +00:00
Simon Larsen
a2be299583 feat: add disableSpellCheck prop to MarkdownEditor, CodeEditor, and FormField components with corresponding tests 2025-06-13 11:02:39 +00:00
Simon Larsen
22c705881c feat: add disableSpellCheck prop to Input and TextArea components and update tests for spellcheck behavior 2025-06-13 10:54:00 +00:00
Simon Larsen
d4225d35a0 feat: add resource name sanitization to follow Terraform naming conventions 2025-06-13 10:57:53 +01:00
Simon Larsen
577b5ea0a7 feat: enhance GenerateProvider to include Framework Generator installation and add detailed logging for each step 2025-06-13 10:50:16 +01:00
Simon Larsen
d71338ffae feat: implement FrameworkGenerator class for Terraform provider code generation and scaffolding 2025-06-13 10:41:01 +01:00
Simon Larsen
9b8bf4c997 feat: add openapi.json to .gitignore to prevent tracking of generated files 2025-06-13 10:40:18 +01:00
Simon Larsen
7fcd7d7769 feat: enhance ToolInstaller to support installation of Framework Generator and improve logging 2025-06-13 10:40:03 +01:00
Simon Larsen
d39f59e33f feat: remove unused miscDataProps from create API specifications 2025-06-13 10:39:38 +01:00
Simon Larsen
85c643dd8b feat: refactor Terraform provider code generation into ProviderSpec class 2025-06-13 10:20:51 +01:00
Simon Larsen
dc114e7b6f feat: enhance resource handling in generator config for Terraform provider 2025-06-12 23:17:31 +01:00
Simon Larsen
ab9d6cceac feat: add ToolInstaller for managing Terraform Plugin Codegen OpenAPI installation and integrate it into GenerateProvider 2025-06-12 23:12:19 +01:00
Simon Larsen
858a04ea36 feat: update generate-openapi-spec script to use relative path for OpenAPI spec file 2025-06-12 23:04:14 +01:00
Simon Larsen
4db1320d47 feat: update generate-openapi-spec script to accept output path as an argument 2025-06-12 23:04:07 +01:00
Simon Larsen
962071aa21 feat: update OpenAPI spec path in GenerateProvider to ensure correct file location 2025-06-12 22:52:06 +01:00
Simon Larsen
350943f78b feat: update output path for Terraform provider generator config to ensure correct file placement 2025-06-12 22:50:46 +01:00
Simon Larsen
270eafef6a feat: enhance resource and data source generation logic based on operationId for better handling of CRUD operations 2025-06-12 22:40:35 +01:00
Simon Larsen
61d7cbd6a6 feat: add operationId to API paths for better identification and organization 2025-06-12 22:34:50 +01:00
Simon Larsen
4e53dd45db feat: remove debug logging from AnalyticsModelSchema to streamline code 2025-06-12 22:26:05 +01:00
Simon Larsen
35b1c50f18 feat: remove debug logging from ModelSchema class to clean up code 2025-06-12 22:24:54 +01:00
Simon Larsen
eaf11e42ea feat: improve resource and data source naming by prioritizing operationId and refining fallback logic 2025-06-12 22:00:44 +01:00
Simon Larsen
38b0113842 feat: enhance resource and data source naming by using operationId or fallback to path and method 2025-06-12 21:56:56 +01:00
Simon Larsen
faa7f3a8aa feat: implement Terraform provider generator configuration and OpenAPI spec generation 2025-06-12 21:54:09 +01:00
Simon Larsen
7beb0be9a9 feat: enhance generateOpenAPISpec function to accept output path and ensure directory exists 2025-06-12 21:42:23 +01:00
Simon Larsen
b47494073b feat: remove GenerateProvider.ts file and its associated logic 2025-06-12 21:17:05 +01:00
Simon Larsen
e172c7c80a feat: enhance Terraform provider generation by extracting resources and data sources from OpenAPI spec 2025-06-12 21:04:11 +01:00
Simon Larsen
a92dc56c55 fix: update generator configuration path and ensure output directory exists 2025-06-12 19:38:17 +01:00
Simon Larsen
9f8fe31b70 feat: dynamically generate resources and datasources in generator configuration 2025-06-12 19:36:09 +01:00
Simon Larsen
14023df7a6 fix: improve error message formatting in ProjectMiddleware and its tests 2025-06-12 18:23:20 +01:00
Simon Larsen
0e6761d291 fix: standardize error messages for API key validation in ProjectMiddleware 2025-06-12 18:20:53 +01:00
Simon Larsen
53ff7ebc5c fix: improve code formatting and readability in Routes and OpenAPI service files 2025-06-12 18:00:45 +01:00
Simon Larsen
8190ae0624 feat: add OpenAPI specification support and update navigation links 2025-06-12 17:57:27 +01:00
Simon Larsen
c1009a3361 fix: standardize formatting and improve readability in various schema and model files 2025-06-12 17:38:28 +01:00
Simon Larsen
917e43143a fix: simplify ObjectID schema and update ModelSchema to use string format for identifiers 2025-06-12 17:29:21 +01:00
Simon Larsen
657cdfd2d9 fix: refactor column type handling in AnalyticsModelSchema and simplify example value assignment in ModelSchema 2025-06-12 12:17:51 +01:00
Simon Larsen
3cdedee597 fix: filter out columns marked to be hidden in documentation from table columns 2025-06-12 11:51:54 +01:00
Simon Larsen
bfc958dffe fix: update TableColumn metadata to include hideColumnInDocumentation flag and enhance date schema handling in ModelSchema 2025-06-12 11:48:44 +01:00
Simon Larsen
01916e6323 fix: return baseValue for EqualTo operator in AnalyticsModelSchema and ModelSchema 2025-06-12 11:20:57 +01:00
Simon Larsen
2621b69d9f fix: clean up formatting and improve OpenAPI schema examples in ModelSchema 2025-06-12 11:16:57 +01:00
Simon Larsen
1c3c612306 fix: enhance error message for missing API key and improve project ID handling in ProjectMiddleware 2025-06-12 11:13:06 +01:00
Simon Larsen
b42665ec67 fix: update error message for invalid API key in ProjectMiddleware 2025-06-12 10:05:36 +01:00
Simon Larsen
823886e15e fix: improve error handling for invalid API key in ProjectMiddleware 2025-06-12 10:01:26 +01:00
Simon Larsen
1943ecdfe6 fix: format mockRefreshProjectUsersByProject declaration for improved readability 2025-06-11 22:06:58 +01:00
Simon Larsen
d426a54f09 fix: enhance type definition for mockRefreshProjectUsersByProject in TeamMemberService tests 2025-06-11 22:05:04 +01:00
Simon Larsen
e20fbe1662 fix: update ProjectAuthorization and TeamMemberService tests for improved mock handling 2025-06-11 17:28:30 +01:00
Simon Larsen
92eb79c954 fix: simplify error handling in afterEach of TeamMemberService tests 2025-06-11 17:20:31 +01:00
Simon Larsen
19917dfc29 fix: add projectId selection to ProjectMiddleware test and improve error handling in TeamMemberService tests 2025-06-11 17:09:20 +01:00
Simon Larsen
cf428ea5a9 fix: simplify techStackItems mapping in TechStackView component 2025-06-11 16:49:42 +01:00
Simon Larsen
39f873b34d fix: update test assertions and remove unused subscription status in BillingService tests 2025-06-11 16:44:00 +01:00
Simon Larsen
cc20f041a5 fix: enhance type definition for techStackItems in TechStackView component 2025-06-11 15:52:29 +01:00
Simon Larsen
6389a70207 fix: update context type in VMRunner to allow string values 2025-06-11 15:42:37 +01:00
Simon Larsen
0e210320e5 fix: update ComponentProps to allow string type and adjust TechStackView to map tech stack items correctly 2025-06-11 15:40:40 +01:00
Simon Larsen
801ded5bb4 fix: update type constraints in QueryHelper methods to use FindWhereProperty<any> 2025-06-11 15:24:33 +01:00
Simon Larsen
74dc22fcff fix: remove unused import of GenericObject in StatementGenerator tests 2025-06-11 15:04:09 +01:00
Simon Larsen
bd45b59725 fix: update test cases in AnalyticsDatabaseService to use specific query and props objects 2025-06-11 15:03:54 +01:00
Simon Larsen
c05e5cb0ef fix: ensure async handling of billing service mock initialization in tests 2025-06-11 14:42:25 +01:00
Simon Larsen
2c02500fd3 fix: update type constraints in QueryOperator and initialize query/props as empty objects in tests 2025-06-11 14:37:31 +01:00
Simon Larsen
1a4c652bfc fix: format type assertion for mocked Navigation module for consistency 2025-06-11 14:28:34 +01:00
Simon Larsen
a069fa97df fix: refactor conditional checks for onChange props across multiple components 2025-06-11 14:25:35 +01:00
Simon Larsen
a7f00105ac fix: update ESLint configuration and ignore patterns for improved linting performance 2025-06-11 13:46:53 +01:00
Simon Larsen
29339b75ba fix: update Navigation mock structure to use default export for consistency in tests 2025-06-11 13:38:16 +01:00
Simon Larsen
8a3afb8fb0 fix: simplify event handler checks using optional chaining for onClick and onChange props across multiple components 2025-06-11 13:30:57 +01:00
Simon Larsen
be6627cd2e fix: refactor onClick handler in ColorInput to use explicit check for props.onClick 2025-06-11 13:18:05 +01:00
Simon Larsen
d200ee3d6f fix: format import statement for BillingService in mockIsBillingEnabled function 2025-06-11 13:11:32 +01:00
Simon Larsen
dd52a97dfa fix: improve error handling by replacing catch blocks with empty catch statements across multiple components 2025-06-11 13:08:28 +01:00
Simon Larsen
2b801c3d08 fix: update action start and end handlers to use explicit checks before calling 2025-06-11 10:28:36 +01:00
Simon Larsen
d6d5ecec64 fix: correct syntax for checking disabled attribute in ConfirmModal test 2025-06-11 10:27:53 +01:00
Simon Larsen
73f248c367 fix: improve error handling in CommonModel and update mock function to return a promise in BillingServiceHelper 2025-06-11 10:27:42 +01:00
Simon Larsen
9d3b2b5fc9 fix: correct function call syntax in OrderedStatesList test and improve error handling in various classes 2025-06-11 10:26:42 +01:00
Simon Larsen
98a4f058dd fix: add error logging across multiple components and services 2025-06-11 10:14:09 +01:00
Nico Aymet
b7ea97c246 Set permission to write logs and cache on /tmp/npm in case container run as non root 2025-06-10 19:11:37 +01:00
Simon Larsen
289308b01e fix: enhance error logging for statusPageId conversion in StatusPageAPI
fix: improve onClick handler in Logo component for better readability
2025-06-10 15:23:32 +01:00
Simon Larsen
dd05f540c1 fix: update error logging to include error details in data migration classes
refactor: change GenericObject type from Object to object for consistency
fix: increase memory limit for eslint commands in package.json
2025-06-10 15:17:55 +01:00
Simon Larsen
656420ac7b Remove dotenv and sass dependencies from Dashboard and StatusPage package.json files 2025-06-10 15:07:58 +01:00
Simon Larsen
f7597bf35e fix: add null checks for startTimeUnixNano and timeUnixNano in getMetricFromDatapoint method 2025-06-10 14:22:22 +01:00
Simon Larsen
a579b97584 fix: update script tags to use type="module" for improved compatibility 2025-06-10 12:26:54 +01:00
Simon Larsen
0cc64550c9 refactor: change esbuild output format from IIFE to ESM to enable code splitting 2025-06-10 12:24:52 +01:00
Simon Larsen
0931ae577a refactor: remove development environment setup from Dockerfiles and nodemon configurations 2025-06-10 12:02:20 +01:00
Simon Larsen
67636da2dd fix: update script references from bundle.js to Index.js in multiple views 2025-06-10 10:13:40 +01:00
Simon Larsen
26aef9c2ea fix: disable minification in esbuild configuration for development 2025-06-10 10:10:24 +01:00
Simon Larsen
2c512abb7b feat: add sass as a development dependency 2025-06-09 20:48:06 +01:00
Simon Larsen
2d0752aede refactor: update esbuild configuration paths and add esbuild dependency 2025-06-09 20:14:47 +01:00
Simon Larsen
b1383029f3 fix: remove unnecessary comments from port mappings in docker-compose.dev.yml 2025-06-09 20:04:57 +01:00
Simon Larsen
1392aba0dc refactor: remove webpack dependencies and update documentation for migration to esbuild 2025-06-09 20:04:36 +01:00
Simon Larsen
f5e6b04070 refactor: migrate from webpack to esbuild for all services
- Updated package.json scripts to use esbuild instead of webpack.
- Removed webpack.config.js files from all services.
- Added esbuild.config.js files for Dashboard, Accounts, AdminDashboard, and StatusPage.
- Created a shared esbuild configuration in Scripts/esbuild-config.js.
- Implemented CSS and file loader plugins for handling styles and assets.
- Added a migration cleanup script to remove webpack dependencies and configurations.
- Updated ESLint configuration to ignore webpack.config.js.
2025-06-09 20:02:24 +01:00
Simon Larsen
4ae8a64857 fix: update ESLint rule references and upgrade TypeScript dependencies 2025-06-09 15:58:01 +01:00
Simon Larsen
ddb8bdb5f2 fix: update output directory name for Terraform provider generation 2025-06-09 15:35:05 +01:00
Simon Larsen
c16ef4b8fd fix: correct syntax errors and improve error messages in Terraform provider generation 2025-06-09 15:32:33 +01:00
Simon Larsen
5177af1b33 fix: install script dependencies and export generateOpenAPISpec function for Terraform provider generation 2025-06-09 15:30:48 +01:00
Simon Larsen
e00ee85483 fix: correct directory name for installing script dependencies in OpenAPI spec generation workflow 2025-06-09 15:26:20 +01:00
Simon Larsen
1d01ffd293 fix: ensure script dependencies are installed before generating OpenAPI spec 2025-06-09 15:22:50 +01:00
Simon Larsen
7d069065c9 Merge pull request #1939 from OneUptime/terraform
Terraform
2025-06-09 15:01:47 +01:00
Simon Larsen
a37a0c4b3b fix: ensure tfplugingen-openapi is installed and use correct path for generation command 2025-06-09 14:58:28 +01:00
Simon Larsen
9633cbcb40 refactor: update provider generation to use dynamic API version and improve naming conventions 2025-06-09 14:55:29 +01:00
Simon Larsen
81d7168a0e feat: implement Terraform provider generation workflow with validation and documentation 2025-06-09 14:44:56 +01:00
Simon Larsen
6064f060a7 refactor: improve code consistency by adding missing commas in function parameters and statements 2025-06-09 14:34:50 +01:00
Simon Larsen
e34ede0c75 refactor: clean up formatting and remove unnecessary changes in StatementGenerator class 2025-06-09 14:26:18 +01:00
Simon Larsen
6a141c2cf1 refactor: enhance type annotations and replace console logs with Logger for OpenAPI spec generation 2025-06-09 14:22:12 +01:00
Simon Larsen
e03d1c3e1a refactor: simplify validation call and clean up whitespace in generateOpenAPISpec function 2025-06-09 14:19:08 +01:00
Simon Larsen
44f1f40a93 feat: add OpenAPI spec generation workflow with validation and artifact upload 2025-06-09 14:15:23 +01:00
Simon Larsen
39d6eac670 refactor: streamline OpenAPI spec validation and error handling 2025-06-09 14:13:17 +01:00
Simon Larsen
ed4936af30 refactor: restructure generateOpenAPISpec function for improved readability and organization 2025-06-09 14:11:03 +01:00
Simon Larsen
d5f0a29959 feat: Update package dependencies and add OpenAPI spec generation
- Added @readme/openapi-parser as a dependency in Scripts/package.json.
- Introduced a new script command "generate-openapi-spec" in package.json for generating OpenAPI specifications.
- Removed the obsolete test_schema_permissions.js file.
- Created a new script (GenerateSpec.ts) to generate and validate the OpenAPI spec, saving it to openapi.json.
2025-06-09 14:08:56 +01:00
Simon Larsen
b7ee17fa3e refactor: clean up formatting and remove unnecessary line breaks in ProjectAuthorization, OpenAPI, and ModelSchema files 2025-06-09 13:50:37 +01:00
Simon Larsen
eb3039f8d7 refactor: update Monitor column type to use MonitorSteps and integrate schema retrieval 2025-06-09 13:47:54 +01:00
Simon Larsen
f7464d6807 refactor: add IP and Port types to ColumnType and update related schemas in AnalyticsModelSchema and ModelSchema 2025-06-09 13:45:53 +01:00
Simon Larsen
db56b83734 refactor: remove ProjectID header from API Key example in authentication guide 2025-06-09 13:04:36 +01:00
Simon Larsen
907fd3f7e2 refactor: update tenant ID retrieval logic based on API key presence in ProjectMiddleware 2025-06-09 13:02:33 +01:00
Simon Larsen
5e7fd03564 refactor: remove API key header from default API headers in OpenAPI utility 2025-06-09 12:57:34 +01:00
Simon Larsen
db16554390 refactor: clean up code formatting and remove unused nested model example in AnalyticsModelSchema 2025-06-09 11:59:55 +01:00
Simon Larsen
f2f29398ee refactor: remove KeyValueNestedModel and clean up related code in CommonModel 2025-06-09 11:57:20 +01:00
Simon Larsen
41d0c4034d refactor: remove NestedModel support and clean up related code in AnalyticsBaseModel and StatementGenerator 2025-06-09 11:54:58 +01:00
Simon Larsen
3099d96e3c refactor: enhance type safety and improve parameter handling in OpenAPI utility methods 2025-06-09 11:36:09 +01:00
Simon Larsen
1ed266b9f5 feat: add API key authentication and enhance API specifications with default headers 2025-06-09 11:25:49 +01:00
Simon Larsen
03e26a61d8 refactor: improve code formatting for better readability in AnalyticsModelSchema and BaseSchema 2025-06-08 21:01:19 +01:00
Simon Larsen
e58377df9f refactor: add type annotations for better type safety in OpenAPI and schema files 2025-06-08 19:08:27 +01:00
Simon Larsen
a0002ac172 refactor: improve code formatting and readability across multiple schema files 2025-06-08 16:07:47 +01:00
Simon Larsen
f8da2c2c5a feat: enhance column access control checks for read and create permissions in AnalyticsModelSchema 2025-06-06 14:51:26 +01:00
Simon Larsen
196ba295f4 feat: enhance permission handling in ModelSchema for column access control 2025-06-06 13:59:56 +01:00
Simon Larsen
fbc98a74a6 feat: update singular and plural names for OnCallDutyPolicyTimeLog model 2025-06-06 13:59:18 +01:00
Simon Larsen
6d154f1c8a feat: update singular and plural names for OnCallDutyPolicyEscalationRuleSchedule model 2025-06-06 13:58:18 +01:00
Simon Larsen
b32b936bba feat: update singular and plural names for OnCallDutyPolicyEscalationRuleUser model 2025-06-06 13:57:26 +01:00
Simon Larsen
f36caf6242 feat: update singular and plural names for OnCallDutyPolicyEscalationRuleTeam model 2025-06-06 13:49:59 +01:00
Simon Larsen
ff8d19443b feat: update singular and plural names for ExceptionInstance model 2025-06-06 13:48:08 +01:00
Simon Larsen
19a811f935 feat: restore and enhance API Reference documentation 2025-06-06 13:33:22 +01:00
Simon Larsen
535848ba78 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-06-06 13:26:48 +01:00
Simon Larsen
06ab514211 feat: refactor schema generation methods in BaseSchema for improved reusability and clarity 2025-06-06 13:26:45 +01:00
Simon Larsen
ad78f9de22 Merge pull request #1936 from OneUptime/add-api-reference-link
feat: Add API Reference link to documentation
2025-06-06 13:02:29 +01:00
google-labs-jules[bot]
916954e71f feat: Add API Reference link to documentation
This commit introduces a new "API Reference" section in the documentation navigation.

- A new navigation group "API Reference" is added to `Docs/Utils/Nav.ts`.
- This group links to a new page `/docs/api-reference/api-reference`.
- The new page `Docs/Content/api-reference/API Reference.md` is created and contains a link to the main OneUptime API Reference at `/reference`.
2025-06-06 11:50:52 +00:00
Simon Larsen
4c49023cb6 feat: add Analytics model schemas and API generation methods to OpenAPIUtil 2025-06-06 12:50:18 +01:00
Simon Larsen
d589afafbd feat: update singular and plural names in ServiceCatalog and ServiceCopilotCodeRepository models for clarity 2025-06-06 12:05:53 +01:00
Simon Larsen
c1b1789307 feat: update model endpoint descriptions in OpenAPI specification 2025-06-06 11:51:02 +01:00
Simon Larsen
dd3220f3d6 feat: add tags for model endpoints in OpenAPI specification 2025-06-06 11:48:19 +01:00
Simon Larsen
57709f71a6 feat: update permission check logic in OpenAPIUtil to ensure valid permissions are present 2025-06-06 11:36:21 +01:00
Simon Larsen
2f4c513a85 feat: add slackWorkspaceName field to StatusPageSubscriber model and update migration 2025-06-05 16:10:49 +01:00
Simon Larsen
8faf75d4c8 feat: add slackWorkspaceName field to subscription form and update field type to text 2025-06-05 16:10:25 +01:00
Simon Larsen
54948c08c2 feat: add Slack Workspace Name field to subscription form with validation 2025-06-05 15:42:13 +01:00
Simon Larsen
7e1b3ce8d8 feat: update submit button text to 'Send Management Link' in Email, Slack, and SMS subscription pages 2025-06-05 15:38:45 +01:00
Simon Larsen
65f43448fe feat: update Slack subscriber query to use slackWorkspaceName instead of slackIncomingWebhookUrl 2025-06-05 15:35:35 +01:00
Simon Larsen
0358e21958 feat: update permission handling and remove unused Slack fields in subscriber model 2025-06-05 15:28:51 +01:00
Simon Larsen
811f4338b0 feat: add migration to include slackWorkspaceName in StatusPageSubscriber table 2025-06-05 15:24:12 +01:00
Simon Larsen
fdfd66e21e feat: add Slack workspace name field for subscriber validation and update related logic 2025-06-05 15:22:04 +01:00
Simon Larsen
d5f8df322e feat: improve Slack subscriber handling and validation across services 2025-06-05 15:04:19 +01:00
Simon Larsen
340d44c389 feat: streamline Slack notification messages by removing redundant titles 2025-06-05 15:03:10 +01:00
Simon Larsen
4532f5bc04 feat: enhance Slack notification message for new subscribers 2025-06-05 14:48:41 +01:00
Simon Larsen
2eebac054e feat: add Slack webhook validation and notification for new subscribers 2025-06-05 14:44:07 +01:00
Simon Larsen
42e9f42350 feat: update Slack subscriber handling to use incoming webhook URL 2025-06-05 14:35:08 +01:00
Simon Larsen
75814cdec0 feat: enforce Slack subscriber requirement and update related components 2025-06-04 21:45:40 +01:00
Simon Larsen
7a2b0a159d feat: enable Slack subscribers in StatusPage API and update subscription logic 2025-06-04 21:32:10 +01:00
Simon Larsen
12d266aabf feat: enable Slack subscribers in StatusPage settings and update subscription logic 2025-06-04 21:15:30 +01:00
Simon Larsen
5ba9556584 feat: add migration for enabling Slack subscribers and webhook URL in StatusPage 2025-06-04 20:37:53 +01:00
Simon Larsen
b659d0ab4a refactor: remove SlackWebhookTester component from StatusPageSlackSubscribers 2025-06-04 20:17:14 +01:00
Simon Larsen
e725ab4b7b fix: add type annotations for markdown messages and remove unused props in Slack subscription components 2025-06-04 20:14:36 +01:00
Simon Larsen
a4bc78439d Merge branch 'master' into slack-subscribers 2025-06-04 19:53:34 +01:00
Simon Larsen
7f59e62b5d Refactor Slack Markdown Conversion and Update Slack Notification Logic
- Renamed `convertMarkdownToSlack` to `convertMarkdownToSlackRichText` for clarity in Slack utility.
- Updated various components and worker jobs to utilize the new Slack markdown conversion method.
- Removed unused test webhook functionality from the Slack subscribers page.
- Improved formatting of Slack messages in notification jobs to enhance readability.
- Cleaned up code by removing unnecessary fragments and ensuring consistent formatting.
- Enhanced error handling and user feedback for Slack webhook testing.
2025-06-04 19:52:59 +01:00
Simon Larsen
9d7f2aebf6 fix: update status page ID reference in test notification message 2025-06-04 19:26:27 +01:00
Simon Larsen
ba08edc61f feat: Implement Slack webhook testing functionality and enhance Slack notifications 2025-06-04 14:39:33 +00:00
Simon Larsen
f538b89553 fix: correct typo in title for scheduled event message 2025-06-04 15:34:51 +01:00
Simon Larsen
9779f12806 chore: update ModelSchema class for improved readability and maintainability 2025-06-04 15:34:08 +01:00
Simon Larsen
1b4758070b refactor: improve type annotations and formatting in OpenAPI and ModelSchema classes 2025-06-04 15:30:42 +01:00
Simon Larsen
f15cff0064 feat: add permissions formatting and description for OpenAPI schema in ModelSchema 2025-06-04 14:52:53 +01:00
Simon Larsen
dcadbadf25 feat: Add Slack subscription feature for status page notifications
- Implemented Slack notifications for scheduled maintenance events, incidents, and announcements.
- Added UI components for managing Slack subscribers in the dashboard.
- Introduced new settings to enable Slack subscribers in status page settings.
- Created forms for subscribing and managing Slack subscriptions.
- Updated API routes and utility functions to handle Slack webhook URLs.
- Enhanced existing notification jobs to include Slack messaging capabilities.
2025-06-04 13:44:49 +00:00
Simon Larsen
bb51de9d10 feat: implement permission checks for API generation in OpenAPIUtil 2025-06-04 14:37:54 +01:00
Simon Larsen
4c6f51f3bc feat: add groupBy schema support in OpenAPI and ModelSchema classes 2025-06-04 12:58:10 +01:00
Simon Larsen
0ba3db57d6 refactor: enhance type annotations and structure in ModelSchema class 2025-06-03 23:45:37 +01:00
Simon Larsen
ed7861e092 fix: add type annotation for schemaMethod variable in ModelSchema class 2025-06-03 23:35:08 +01:00
Simon Larsen
2616b77a59 feat: implement model schema registration with permission checks for create, read, update, and delete operations 2025-06-03 23:19:30 +01:00
Simon Larsen
4b3636a6a6 feat: register query, select, and sort schemas in OpenAPI specification 2025-06-03 23:04:46 +01:00
Simon Larsen
1a650ab624 feat: enhance query and select schemas with operator validation and OpenAPI documentation 2025-06-03 22:18:02 +01:00
Simon Larsen
6ddae4f0ef refactor: improve type annotations and formatting in alert, incident, and scheduled maintenance services 2025-06-03 20:50:13 +01:00
Simon Larsen
524c5311ff feat: add consistency jobs for incidents and scheduled maintenance 2025-06-03 20:45:34 +01:00
Simon Larsen
649c43d896 feat: add daily cron job to refresh incident current status for all projects 2025-06-03 20:43:38 +01:00
Simon Larsen
aa7110ca12 feat: implement cron jobs to refresh alert and scheduled maintenance states daily 2025-06-03 20:41:38 +01:00
Simon Larsen
6fb4c663d4 fix: enhance next event scheduling logic to handle future dates correctly 2025-06-03 15:44:00 +01:00
Simon Larsen
ee40cedd21 fix: format dashboard link retrieval for improved readability 2025-06-03 11:33:12 +01:00
Simon Larsen
e28bdeb129 fix: remove unsubscribe link from ProjectSubscriptionOverdue template for clarity 2025-06-03 09:02:21 +01:00
Simon Larsen
cd86aa52ec fix: await dashboard link retrieval in email vars for accurate project link 2025-06-03 09:02:09 +01:00
Simon Larsen
293c9e9317 fix: remove unnecessary blank lines in OpenAPIUtil methods for improved readability 2025-06-02 23:03:29 +01:00
Simon Larsen
36be5b7eba fix: update API path summaries and descriptions to use singular model names for clarity 2025-06-02 22:57:44 +01:00
Simon Larsen
9b8a36d2a4 fix: update default API headers to remove Content-Type and provide a specific example for APIKey 2025-06-02 22:50:21 +01:00
Simon Larsen
4814532e23 fix: update schema references in OpenAPIUtil for consistency in input and update specifications 2025-06-02 22:46:20 +01:00
Simon Larsen
224c95832e fix: format execution time calculation for consistency in CustomCodeMonitor and SyntheticMonitor 2025-06-02 22:32:52 +01:00
Simon Larsen
75a2439c1e fix: optimize response time calculation by using Math.ceil for consistency across monitors 2025-06-02 22:29:19 +01:00
Simon Larsen
e74bfc295b feat: add default API headers for GET, UPDATE, and DELETE specifications in OpenAPIUtil 2025-06-02 22:19:20 +01:00
Simon Larsen
e59e1b7718 fix: change HTTP method from GET to POST for list and count endpoints in OpenAPIUtil; update array item schema in ModelSchema 2025-06-02 22:04:46 +01:00
Simon Larsen
c44f3d7d83 fix: update column titles in DatabaseBaseModel for clarity and improve conditional logic in ModelSchema 2025-06-02 21:55:51 +01:00
Simon Larsen
1b9677d8da feat: add OpenAPI examples for various column types in ModelSchema 2025-06-02 21:47:18 +01:00
Simon Larsen
c0b19d4e57 fix: correct formatting in CriteriaAlertSchema and update import statement in MonitorCriteriaInstance 2025-06-02 20:52:41 +01:00
Simon Larsen
612f4260c2 feat: enhance CriteriaAlert, CriteriaFilter, and CriteriaIncident with ZodSchema typing and improve imports in MonitorCriteriaInstance 2025-06-02 20:49:50 +01:00
Simon Larsen
1ccc3765e8 refactor: standardize import statements and format example objects in Monitor and Database classes 2025-06-02 17:49:31 +01:00
Simon Larsen
342c6d7912 feat: implement Zod schema validation for CriteriaAlert, CriteriaFilter, CriteriaIncident, and update MonitorCriteriaInstance and MonitorSteps to use schemas 2025-06-02 17:45:29 +01:00
Simon Larsen
6db6857dbe feat: add Zod schema validation for Domain, Email, IP, MonitorCriteria, MonitorCriteriaInstance, MonitorStep, MonitorSteps, Name, ObjectID, Phone, Port, and Version classes 2025-06-02 17:33:33 +01:00
Simon Larsen
7709016328 feat: add Color type handling in ModelSchema and remove unused getSchemaForDatabaseProperty method 2025-06-02 17:24:20 +01:00
Simon Larsen
8fd89ebd4f Merge branch 'master' of github.com:OneUptime/oneuptime 2025-06-02 17:16:24 +01:00
Simon Larsen
394f5255cf feat: implement Zod schema validation for Color and DatabaseProperty classes
fix: update ApiMonitor and WebsiteMonitor to correctly set isOnline status to false on timeout
2025-06-02 17:16:21 +01:00
Simon Larsen
2afdda0869 Merge pull request #1928 from zzukin/zzukin-patch-conatiner
Fix typo in HelmChart Readme
2025-06-02 17:04:28 +01:00
Simon Larsen
511317886f fix: refactor getProjectLinkInDashboard method and update cron job for sending overdue subscription emails 2025-06-02 14:45:51 +01:00
Simon Larsen
14466f4723 feat: add email template and cron job for notifying project owners of overdue subscriptions 2025-06-02 14:41:45 +01:00
Simon Larsen
f5d326c086 fix: simplify isSubscriptionOverdue method and improve formatting in MasterPage component 2025-06-02 14:18:26 +01:00
Simon Larsen
acf11e25fe fix: enhance subscription status checks to include overdue and inactive states 2025-06-02 14:16:34 +01:00
Simon Larsen
20cf50a497 fix: add 'Paused' status to SubscriptionStatus enum and update active status check 2025-06-02 14:05:01 +01:00
Nico Aymet (nikuzz)
602d198685 Fix typo in HelmChart Readme
Change:
  conatinerSecurityContext
with:
  containerSecurityContext
2025-06-02 10:25:23 +01:00
Simon Larsen
b18c2d4964 fix: clean up OpenAPI spec generation code and improve logging for model schema creation 2025-06-01 22:44:13 +01:00
Simon Larsen
bd5ce9029a fix: update OpenAPI spec title and description for clarity 2025-06-01 22:33:34 +01:00
Simon Larsen
84261786f9 fix: streamline OpenAPI spec generation by consolidating endpoint registration and improving model handling 2025-06-01 22:31:45 +01:00
Simon Larsen
cfdc789fae fix: update API spec summaries and descriptions to use model table names 2025-06-01 21:15:56 +01:00
Simon Larsen
08d4eaab4e fix: enhance model schema generation with OpenAPI type annotations and examples 2025-06-01 20:57:22 +01:00
Simon Larsen
324da96797 feat: add OpenAPI spec generation and enhance model schema logging 2025-06-01 20:45:39 +01:00
Simon Larsen
dc7895501f fix: improve OpenAPI spec generation with caching and enhanced logging 2025-06-01 20:22:52 +01:00
Simon Larsen
4a6a09169a fix: enhance OpenAPI documentation generation with model validation and logging 2025-06-01 14:24:37 +01:00
Simon Larsen
92ab2a3467 fix: update Suspense fallback to use PageLoader for improved loading experience 2025-05-30 10:20:32 +01:00
Simon Larsen
6f99d71d7f fix: enhance error handling in domain migration and log errors using Logger 2025-05-29 15:15:56 +01:00
Simon Larsen
14a70846d0 fix: remove unnecessary await from UserUtil.logout in Logout component 2025-05-29 14:49:41 +01:00
Simon Larsen
61f3fae19d fix: refactor logout method to handle API errors and log them using Logger 2025-05-29 14:45:51 +01:00
Simon Larsen
7f9bd8e150 fix: correct NotAuthorizedException code and update forbidden route handling to return a valid Route 2025-05-29 13:52:49 +01:00
Simon Larsen
6a16301b3f fix: update forbidden route handling to prevent navigation errors and return null 2025-05-29 13:49:00 +01:00
Simon Larsen
17f23b788d feat: add BILLING_ENABLED environment variable to probe configuration and update online check logic 2025-05-29 13:08:08 +01:00
Simon Larsen
3f8370468e feat: enhance timeout handling by checking for executing logs older than 3 hours in OnCallDutyPolicy and UserOnCallLog 2025-05-29 12:54:20 +01:00
Simon Larsen
b151753506 feat: trim whitespace from monitor creation details and enhance comparison criteria with equalTo checks 2025-05-29 12:15:11 +01:00
Simon Larsen
2f9189a181 feat: implement LowercaseDomains migration to ensure all domain entries are stored in lowercase 2025-05-29 12:06:54 +01:00
Simon Larsen
32c2d7ea26 feat: refactor domain handling by renaming Domain import and enhancing CNAME record retrieval with error handling 2025-05-29 11:40:20 +01:00
Simon Larsen
72d0a29e89 feat: improve domain input handling by ensuring it is trimmed and converted to lowercase in onBeforeCreate method 2025-05-29 11:35:40 +01:00
Simon Larsen
14e4949c1a feat: normalize domain and subdomain inputs by trimming and converting to lowercase in DomainService and StatusPageDomainService 2025-05-29 10:58:43 +01:00
Simon Larsen
5d8d24dd58 feat: add SubscriptionStatusUtil methods for improved subscription state handling and update BillingInvoiceService to utilize them 2025-05-29 09:18:19 +01:00
Simon Larsen
b6f4a533e6 refactor: clean up code formatting and improve readability in StatusPageService, IP, and MasterPage components 2025-05-28 21:52:25 +01:00
Simon Larsen
5972697cdf feat: enhance IP whitelist validation to support multiple IPs and improve error logging 2025-05-28 21:51:02 +01:00
Simon Larsen
23ec8de39a feat: add forbidden route handling in DashboardMasterPage and update App component routing 2025-05-28 21:38:06 +01:00
Simon Larsen
2d74d37346 feat: enhance lazy loading of page components for improved performance and readability 2025-05-28 21:31:09 +01:00
Simon Larsen
ed55830e2d feat: refactor App component to lazy load page components and enhance routing structure 2025-05-28 20:58:51 +01:00
Simon Larsen
52923dadc1 feat: create ForbiddenPage component to display access restriction message 2025-05-28 20:57:03 +01:00
Simon Larsen
8f3b17c20f feat: add forbidden page and update routing for forbidden access 2025-05-28 20:55:29 +01:00
Simon Larsen
501c9b655c feat: add handling for forbidden access and implement getForbiddenRoute method in API class 2025-05-28 20:51:15 +01:00
Simon Larsen
3dcdf56c7c fix: correct syntax by adding missing commas in StatusPageService methods 2025-05-28 20:44:24 +01:00
Simon Larsen
474998a3bf feat: implement IP whitelist functionality for status pages and enhance access control 2025-05-28 20:41:03 +01:00
Simon Larsen
65fc159560 feat: add migration to add ipWhitelist column to StatusPage table 2025-05-28 19:39:13 +01:00
Simon Larsen
bba09b8b21 refactor: clean up whitespace and improve formatting in SerializableObject, API, Cookie, and ModelSchema 2025-05-28 19:23:34 +01:00
Simon Larsen
9cde6febfe feat: implement clearAllCookies method and integrate it into logout process 2025-05-28 19:09:52 +01:00
Simon Larsen
279e15276d fix: change error logging from trace to error level for database connection failure 2025-05-28 18:59:01 +01:00
Simon Larsen
6799b55041 refactor: update error logging to use trace level and improve code formatting in ModelSchema 2025-05-28 18:42:31 +01:00
Simon Larsen
7656c67f58 fix: add type annotation for octet in IPv4 validation 2025-05-28 18:28:07 +01:00
Simon Larsen
bec377edea refactor: improve code formatting and consistency in StatusPageService and DNSUtil 2025-05-28 18:04:48 +01:00
Simon Larsen
66fc10221f refactor: improve code formatting and whitespace consistency across multiple files 2025-05-28 17:53:43 +01:00
Simon Larsen
0c7c0b1179 feat: update ipWhitelist type to string and implement IP whitelist validation in StatusPageService 2025-05-28 17:46:53 +01:00
Simon Larsen
af37030dd3 feat: add IP Whitelist section to Authentication Settings page 2025-05-28 17:35:02 +01:00
Simon Larsen
5eda80361e feat: add IP Whitelist column with access control to StatusPage model 2025-05-28 17:32:07 +01:00
Simon Larsen
daaeeb4957 feat: add CNAME record validation in StatusPageDomainService and implement DNSUtil for CNAME resolution 2025-05-28 17:26:37 +01:00
Simon Larsen
e69b700dad refactor: clean up whitespace and formatting in multiple files 2025-05-28 16:18:31 +01:00
Simon Larsen
943075e562 feat: add getSelectModelSchema method for nested property selection 2025-05-27 21:34:37 +01:00
Simon Larsen
fc3daeaebb feat: add methods for query and sort model schemas in ModelSchema 2025-05-27 21:30:35 +01:00
Simon Larsen
8e788d0acc refactor: move ConfigLogLevel to a separate file and update imports 2025-05-27 20:46:30 +01:00
Simon Larsen
ae7d3fe247 Merge pull request #1917 from OneUptime/fix/baseapi-test-typeerror
Fix(tests): Correct EnvironmentConfig mock in BaseAPI.test.ts
2025-05-27 20:43:29 +01:00
Simon Larsen
b690415764 fix: update method signatures in OpenAPIUtil for consistent return types 2025-05-27 20:11:20 +01:00
Simon Larsen
7134709154 refactor: clean up OpenAPI path registration for improved readability 2025-05-27 19:18:24 +01:00
Simon Larsen
194695d1e0 refactor: streamline zod type determination in ModelSchema for improved readability 2025-05-27 16:56:37 +01:00
Simon Larsen
a539bd3c92 feat: refactor DatabaseBaseModel and ModelSchema for improved schema generation and validation 2025-05-27 16:43:56 +01:00
Simon Larsen
d5fd2ec1bf fix: correct formatting and add missing commas in DatabaseBaseModel and ModelSchema 2025-05-27 15:22:20 +01:00
Simon Larsen
ef808fdf10 feat: integrate ModelSchemaUtil for enhanced schema management in DatabaseBaseModel 2025-05-27 15:10:05 +01:00
Simon Larsen
4d4d7d6d26 feat: add Zod schema generation to DatabaseBaseModel for enhanced validation 2025-05-27 14:50:11 +01:00
Simon Larsen
4dc589f9ce feat: add zod and zod-to-openapi dependencies to enhance OpenAPI support 2025-05-27 14:33:05 +01:00
Simon Larsen
5fe97c422f feat: add OpenAPI class and integrate OpenAPI router into BaseAPIFeatureSet 2025-05-27 13:50:33 +01:00
Simon Larsen
7085a4d4e0 feat: implement MCP service to add tools and model APIs to server 2025-05-27 13:24:39 +01:00
google-labs-jules[bot]
4135b3ba0f Fix(tests): Correct EnvironmentConfig mock in BaseAPI.test.ts
I've updated the Jest mock for 'Common/Server/EnvironmentConfig' in 'Common/Tests/Server/API/BaseAPI.test.ts' to include 'LogLevel' and 'ConfigLogLevel'. This resolves a TypeError (Cannot read properties of undefined (reading 'INFO')) that occurred when the logger was invoked during test execution.

The error was caused by an incomplete mock that did not provide the logging configuration, leading to a crash in 'Logger.getLogLevel()'.

Additionally, I've added 'DisableTelemetry: true' to the mock to prevent unnecessary telemetry initialization during these specific API tests.
2025-05-27 12:22:31 +00:00
Simon Larsen
3b71adc009 fix(deps): update @oneuptime/common dependency to version 7.0.4263 2025-05-27 12:42:43 +01:00
Simon Larsen
8bff664f2f fix(deps): update @oneuptime/common dependency to version 7.0.4263 2025-05-27 12:22:18 +01:00
Simon Larsen
0563c492a6 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-05-27 12:17:19 +01:00
Simon Larsen
500fb5842e refactor: update main function return type to Promise<void> 2025-05-27 12:16:27 +01:00
Simon Larsen
b82f51bea4 refactor: add type annotations for main function and transport variable in MCP server 2025-05-27 12:11:33 +01:00
Simon Larsen
5e81f4be35 Merge pull request #1916 from OneUptime/fix/statement-generator-test
Fix(tests): Update expected SQL in StatementGenerator test
2025-05-27 12:09:28 +01:00
google-labs-jules[bot]
77fe7ce1ce Fix(tests): Update expected SQL in StatementGenerator test
The expected SQL statement in the `toTableCreateStatement` test was outdated and did not include the `PARTITION BY` clause, which is now correctly generated by the StatementGenerator.

This commit updates the expected statement to match the actual output, resolving the test failure.
2025-05-27 11:08:39 +00:00
Simon Larsen
bd938736d6 feat: add StdioServerTransport and logger integration to MCP server 2025-05-27 12:04:45 +01:00
Simon Larsen
4d4ddd9bfc refactor: Clean up imports and improve formatting in configuration files 2025-05-27 12:02:11 +01:00
Simon Larsen
93123f6042 Refactor: Move BaseDatabase utilities to Common/Types and update imports
- Moved GroupBy, ListResult, Select, and RequestOptions from Common/UI/Utils/BaseDatabase to Common/Types/BaseDatabase.
- Updated all relevant imports across the codebase to reflect the new paths.
- Removed obsolete BaseDatabase utility files from the UI components.
- Ensured consistent usage of the new types in ModelDetail, ModelList, ModelTable, and Dashboard components.
2025-05-27 11:47:53 +01:00
Simon Larsen
856cff3e85 feat: initialize MCP server with TypeScript configuration and package setup
- Added package.json for MCP server with necessary scripts, dependencies, and configurations.
- Created tsconfig.json with comprehensive TypeScript compiler options for strict type checking and module resolution.
2025-05-27 11:12:41 +01:00
Simon Larsen
47fa401a67 refactor: Improve formatting for better readability in OfflineIndicator component 2025-05-26 14:05:51 +01:00
Simon Larsen
c536e1e642 refactor: Improve structure and readability of MasterPage and OfflineIndicator components 2025-05-26 14:03:06 +01:00
Simon Larsen
c06d4f0b63 feat: Add OfflineIndicator component to handle online/offline status and integrate it into MasterPage 2025-05-26 14:00:08 +01:00
Simon Larsen
d8388666ef docs: Update documentation to include available modules for custom scripts in monitors 2025-05-26 12:51:23 +01:00
Simon Larsen
511b4c9045 refactor: Change field type from Text to LongText for improved description handling across multiple components 2025-05-24 11:26:44 +01:00
Simon Larsen
140f12c0fb refactor: Clean up formatting and improve readability in LongTextViewer and WorkflowElement components 2025-05-23 21:58:13 +01:00
Simon Larsen
a00d72b771 refactor: Update LongTextViewer to use Button component and adjust character limit for truncation 2025-05-23 21:54:35 +01:00
Simon Larsen
1789be519e refactor: Enhance Probe and WorkflowElement components with new decorators and project ID handling 2025-05-23 20:58:50 +01:00
Simon Larsen
8e3f23d885 refactor: Update field type to LongText for better description handling in Workflows component 2025-05-23 20:48:28 +01:00
Simon Larsen
335b6ed15f refactor: Integrate WorkflowElement for rendering workflow items in Workflows component 2025-05-23 20:37:37 +01:00
Simon Larsen
95b53ca4ce refactor: Improve readability of lazy-loaded component declarations in App.tsx 2025-05-23 12:03:16 +01:00
Simon Larsen
3a80fcca73 refactor: Implement lazy loading for route components with a custom fallback loader 2025-05-23 12:01:58 +01:00
Simon Larsen
6d5e186505 refactor: Remove unused description fields from incident and scheduled maintenance notification templates 2025-05-23 10:40:56 +01:00
Simon Larsen
13450d32af refactor: Replace loading fallback with custom PageLoader component in Suspense 2025-05-22 21:27:13 +01:00
Simon Larsen
e77ea73ffc refactor: Implement lazy loading for route components to improve performance 2025-05-22 21:24:27 +01:00
Simon Larsen
dcfadf9051 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-05-22 20:55:38 +01:00
Simon Larsen
f9869105b6 refactor: Update API import paths for consistency across utility files 2025-05-22 20:55:36 +01:00
Simon Larsen
71881bb822 Merge pull request #1912 from zzukin/master
Missing "$" in Helm Charts
2025-05-22 13:15:20 +01:00
Nico Aymet
a10c914757 Missing "$" in get autoscaling.enabled = true from Values.yaml in Helm Charts 2025-05-22 12:37:33 +01:00
Simon Larsen
f4390dd1da refactor: Add hidden class to copyright div for responsive design 2025-05-22 11:32:00 +01:00
Simon Larsen
f0e4e4147c refactor: Remove unnecessary whitespace from HeaderAlert component 2025-05-22 11:28:40 +01:00
Simon Larsen
296e664da2 refactor: Remove unused lodash import from NotificationMiddleware test 2025-05-22 10:58:03 +01:00
Simon Larsen
152517b85a refactor: Remove optional chaining from JSONFunctions.flattenObject call 2025-05-22 10:56:55 +01:00
Simon Larsen
599d4fff17 refactor: Import lodash and update mock implementation for flattenObject 2025-05-22 10:56:20 +01:00
Simon Larsen
a1a3dee380 refactor: Reformat import statements for consistency across multiple files 2025-05-22 10:27:25 +01:00
Simon Larsen
fbde9f9052 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-05-21 20:34:30 +01:00
Simon Larsen
9bec06672c refactor: Update import paths for consistency across various components 2025-05-21 20:33:59 +01:00
Simon Larsen
19926d4260 refactor: Update import paths for consistency across various components 2025-05-21 20:31:32 +01:00
Simon Larsen
09a8d73867 refactor: Update import paths to use relative paths for consistency across various components 2025-05-21 20:26:23 +01:00
Simon Larsen
4f798ea570 Merge pull request #1910 from zzukin/master
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 20:11:58 +01:00
Simon Larsen
4f4a171ba1 Merge pull request #1911 from zzukin/otel-collector-non-root
Fix permission issues if otel-collector runs as non root
2025-05-21 20:09:51 +01:00
Nico Aymet (nikuzz)
fed1478bcb Update Dockerfile.tpl
When otel-collector runs with runAsNonRoot: true and a specific runAsUser UID, gomplate can't write to /etc. Change the output path to /tmp to avoid permission issues
2025-05-21 18:15:22 +01:00
Nico Aymet (nikuzz)
707b43c399 Update workflow.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:47:55 +01:00
Nico Aymet (nikuzz)
974cf16cf1 Update worker.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:47:35 +01:00
Nico Aymet (nikuzz)
ac014395a7 Update server-monitor-ingest.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:46:55 +01:00
Nico Aymet (nikuzz)
8bdbae8f09 Update probe.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:45:58 +01:00
Nico Aymet (nikuzz)
13545732ea Update probe-ingest.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:39:59 +01:00
Nico Aymet (nikuzz)
5bd6f59f71 Update otel-collector.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:39:39 +01:00
Nico Aymet (nikuzz)
1ca48f567d Update open-telemetry-ingest.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:39:04 +01:00
Nico Aymet (nikuzz)
84cc55d22c Update nginx.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:38:38 +01:00
Nico Aymet (nikuzz)
dc73166fec Update isolated-vm.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:38:05 +01:00
Nico Aymet (nikuzz)
9d45ee6d28 Update incoming-request-ingest.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:37:33 +01:00
Nico Aymet (nikuzz)
4dfea390e2 Update home.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:37:05 +01:00
Nico Aymet (nikuzz)
f9a424ec29 Update fluent-ingest.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:36:19 +01:00
Nico Aymet (nikuzz)
be1dc35d29 Update docs.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:34:36 +01:00
Nico Aymet (nikuzz)
1d8d84c6a5 Update app.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:33:49 +01:00
Nico Aymet (nikuzz)
bb571f8aae Update api-reference.yaml
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:33:12 +01:00
Nico Aymet (nikuzz)
56fcb3a37f Update _helpers.tpl
Exclude parameter "replicas" in Deployments, if autoscaling.enabled = true
2025-05-21 17:28:39 +01:00
Simon Larsen
a2baeb1a20 refactor: Update import paths to use absolute paths for consistency across various components 2025-05-21 17:03:48 +01:00
Simon Larsen
168224363c refactor: Update import paths for consistency across various components 2025-05-21 16:56:04 +01:00
Simon Larsen
22e92f4ed5 refactor: Update import paths for consistency across various components 2025-05-21 16:53:07 +01:00
Simon Larsen
81a7dcbab6 refactor: Update import paths for consistency across various components 2025-05-21 16:46:53 +01:00
Simon Larsen
6872fa627e refactor: Update import paths to use relative paths for consistency across various components 2025-05-21 16:43:01 +01:00
Simon Larsen
99c545e8b0 refactor: Update import paths for consistency across AnalyticsDatabase and Workflow components 2025-05-21 16:36:51 +01:00
Simon Larsen
11bad57109 refactor: Correct import path for AnalyticsBaseModel in Query.ts for consistency 2025-05-21 16:28:31 +01:00
Simon Larsen
9d9a8eeee2 Refactor import paths for Database and Workflow components
- Updated import statements in various files to use relative paths for better modularity and maintainability.
- Adjusted imports in Database types including DeleteBy, FindBy, UpdateBy, and others to reflect the new directory structure.
- Modified imports in Workflow components such as Email, JavaScript, Log, Manual, Schedule, and Webhook to ensure consistency across the codebase.
2025-05-21 16:24:52 +01:00
Simon Larsen
714823514c Refactor import paths in test and UI component files for consistency
- Updated import statements in various test files to use relative paths instead of absolute paths.
- Adjusted import paths in UI components to ensure they correctly reference the Types and Models directories.
- Ensured all components and tests are aligned with the new directory structure for better maintainability.
2025-05-21 16:19:35 +01:00
Simon Larsen
49025da2b0 refactor: Update import paths to use relative paths for consistency across AnalyticsDatabase types 2025-05-21 15:14:37 +01:00
Simon Larsen
0488770151 refactor: Update import paths to use relative paths for consistency across DatabaseConfig, EnvironmentConfig, DataSourceOptions, and various AnalyticsDatabase types 2025-05-21 15:04:22 +01:00
Simon Larsen
f32b208cea refactor: Update import paths to use relative paths for consistency across the codebase 2025-05-21 14:51:30 +01:00
Simon Larsen
ebd14dd497 Refactor import paths in Workflow components to use relative paths from Types directory
- Updated import statements in ComponentSettingsModal, ComponentValuePickerModal, ComponentsModal, DocumentationViewer, RunForm, RunModal, Utils, VariableModal, Workflow, WorkflowStatus, Config, EntityFieldType, and various API utility files to reflect the new directory structure.
- Ensured all imports from "Common/Types" are now sourced from "../../../Types" to maintain consistency and improve module resolution.
2025-05-21 14:02:32 +01:00
Simon Larsen
54c526ffed Refactor import paths in utility files to use relative paths instead of absolute paths. This change enhances module resolution and maintains consistency across the codebase. Updated imports in Execute.ts, Express.ts, Greenlock.ts, JsonToCsv.ts, JsonWebToken.ts, LocalFile.ts, Logger.ts, various Monitor criteria files, Realtime.ts, Response.ts, StartServer.ts, Stream.ts, Telemetry.ts, TwoFactorAuth.ts, VMAPI.ts, VMRunner.ts, and Workspace files. 2025-05-21 13:55:49 +01:00
Simon Larsen
327367e7ca fix: Remove local file reference for Common module in package.json 2025-05-21 13:25:02 +01:00
Simon Larsen
eaaa75f261 feat: Add moduleNameMapper for Common module path resolution in Jest config 2025-05-21 13:23:49 +01:00
Simon Larsen
aa0365d2b2 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-05-21 12:06:46 +01:00
Simon Larsen
b8529621ff fix: Correct variable names for scheduled maintenance event timing calculations 2025-05-21 12:06:43 +01:00
Simon Larsen
8e3325bfc8 Merge pull request #1905 from GunniBusch/patch-1
Fix undefined as domain name when saving custom SSL-Certs
2025-05-21 11:02:23 +01:00
Leon Adomaitis
b49d0e1d32 Fix undefined as domain name when saving custom SSL-Certs 2025-05-20 14:18:50 +02:00
Simon Larsen
cb545e445a feat: Add monitorId to MonitorTest model and related migrations 2025-05-19 18:46:25 +01:00
Simon Larsen
2d9f9d41d0 refactor: Remove unused TotalCPUTime function from cpu.go 2025-05-19 14:19:55 +01:00
Simon Larsen
42f39bf918 Merge pull request #1899 from OneUptime/fix-cpu-percent
feat: Replace CPU usage calculation with gopsutil's cpu.Percent for improved accuracy
2025-05-19 14:14:49 +01:00
Simon Larsen
66633eca2c feat: Add cron job to delete old on-call duty time logs daily 2025-05-19 12:00:46 +01:00
Simon Larsen
eb40da8de3 Merge branch 'release' of github.com:OneUptime/oneuptime into release 2025-05-19 11:50:23 +01:00
Simon Larsen
ea3c736770 feat: Add OnCallPolicyLogTable component to display user on-call time logs with date range filtering 2025-05-19 11:50:21 +01:00
Simon Larsen
6263a5e4eb refactor: Remove OnCallPolicyLogTable component and its associated logic 2025-05-19 11:48:44 +01:00
Simon Larsen
9e527462f3 Merge pull request #1900 from OneUptime/master
fix: Update date range queries in OnCallPolicyLogTable to use correct…
2025-05-19 11:36:31 +01:00
Simon Larsen
8dff2b7fcd fix: Update date range queries in OnCallPolicyLogTable to use correct comparison operators 2025-05-19 11:32:48 +01:00
Simon Larsen
9199a94f69 refactor: Remove unused startDate variable in OnCallPolicyLogTable component 2025-05-19 11:24:02 +01:00
Simon Larsen
903af990e1 feat: Replace CPU usage calculation with gopsutil's cpu.Percent for improved accuracy 2025-05-19 10:22:37 +00:00
Simon Larsen
d67b1ded2b Merge branch 'master' into release 2025-05-19 11:15:39 +01:00
Simon Larsen
fa087423fc feat: Implement OnCallPolicyLogTable component to display user on-call time logs 2025-05-19 11:10:11 +01:00
Simon Larsen
cc1595f3c5 fix: Adjust start date handling to respect selected date range in OnCallPolicyLogTable 2025-05-19 11:09:21 +01:00
Simon Larsen
167ce4f4ab feat: Enhance time log period handling by adjusting start date based on selected range 2025-05-19 10:48:51 +01:00
Simon Larsen
3a8105484b feat: Add error handling and use OneUptimeDate for starting time logs in StartOnCallUserTimeLog migration 2025-05-19 10:39:28 +01:00
Simon Larsen
3c8de25281 feat: Implement onBeforeDelete hook to end time logs for schedules and update TeamMemberService to end time logs for users 2025-05-19 10:22:47 +01:00
Simon Larsen
7a0e84c6a4 refactor: Improve code readability by formatting and simplifying type annotations in OnCallDutyTimeLogTable 2025-05-19 08:52:45 +01:00
Simon Larsen
aaa4f3c732 refactor: Clean up code formatting and improve type annotations in various files 2025-05-16 20:36:28 +01:00
Simon Larsen
9034b7fa4c feat: Add StartOnCallUserTimeLog migration to create time logs for users and teams 2025-05-16 20:28:11 +01:00
Simon Larsen
8596459c11 feat: Add method to format minutes as hours and minutes and update table column title in OnCallDutyTimeLogTable 2025-05-16 20:15:23 +01:00
Simon Larsen
1fdbf43c28 refactor: Remove unused import LessThanOrNull from OnCallDutyTimeLogTable component 2025-05-16 16:59:29 +01:00
Simon Larsen
b34002889b fix: Update OnCallDutyPolicyTimeLog to make 'Ends At' field optional and adjust time log service methods to include projectId 2025-05-16 16:36:45 +01:00
Simon Larsen
0a6e02576d feat: Enhance comparison classes with date handling in toString method and update side menu for user on call time 2025-05-16 15:20:19 +01:00
Simon Larsen
e78bcfb06b fix: Change comparison operator from <= to < in QueryHelper class 2025-05-16 14:21:19 +01:00
Simon Larsen
efbe3befa5 refactor: Update OnCallDutyTimeLogTable to use _id instead of id and clean up imports in OnCallDutyUserTimeLogs and SideMenu components 2025-05-16 14:10:50 +01:00
Simon Larsen
c2be798203 refactor: Improve code formatting and readability in OnCallDutyTimeLogTable component 2025-05-16 13:53:35 +01:00
Simon Larsen
0256283256 feat: Add User Time Logs page and integrate into routing and side menu 2025-05-16 13:51:31 +01:00
Simon Larsen
73920bf554 refactor: Improve code formatting and readability in OnCallPolicyLogTable component 2025-05-15 21:02:31 +01:00
Simon Larsen
f84bc8992c fix: Correct formatting in sorting function for improved readability 2025-05-15 20:58:59 +01:00
Simon Larsen
e57120f7e0 refactor: Clean up code formatting and improve readability across multiple components 2025-05-15 20:50:41 +01:00
Simon Larsen
233bc1b70d feat: Add LessThanOrNull and GreaterThanOrNull types with corresponding query helpers and examples 2025-05-15 20:10:53 +01:00
Simon Larsen
0bc9929949 feat: Add OnCallPolicyLogTable component to display user time logs with date range selection 2025-05-15 20:00:02 +01:00
Simon Larsen
70f9901233 feat: Enhance OnCallPolicyLogTable to load and process time logs with improved date handling 2025-05-15 19:59:53 +01:00
Simon Larsen
c06f587e7e feat: Refactor RangeStartAndEndDateTime interface and update related components for consistency 2025-05-15 19:41:10 +01:00
Simon Larsen
4b78ff4c32 feat: Refactor DashboardStartAndEndDate to RangeStartAndEndDateTime across multiple components 2025-05-15 19:24:09 +01:00
Simon Larsen
ae75c73747 feat: Refactor date range handling by replacing DashboardStartAndEndDate with RangeStartAndEndDateTime and updating related components 2025-05-15 19:14:42 +01:00
Simon Larsen
6a7b35b0e6 feat: Update component props to be optional and enhance handling of undefined values across multiple components 2025-05-15 18:58:59 +01:00
Simon Larsen
d660f18628 feat: Remove AllowAccessIfSubscriptionIsUnpaid decorator from multiple models and add EnableDocumentation to WorkspaceNotificationRule 2025-05-15 18:18:53 +01:00
Simon Larsen
82462ea763 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-05-15 13:42:34 +01:00
Simon Larsen
76ab3a8cd6 feat: Enhance OnCallDutyPolicyTimeLogService with improved time log handling and formatting 2025-05-15 13:42:31 +01:00
Simon Larsen
74edfdd74c Merge pull request #1897 from zzukin/patch-1
Update Helm README.md
2025-05-15 13:30:39 +01:00
Simon Larsen
9a7cc8f4a0 feat: Add start and end time logging for users in on-call duty schedule 2025-05-15 13:18:19 +01:00
Simon Larsen
d54263f6c2 feat: Add start and end time log functionality for on-call duty users 2025-05-15 13:13:14 +01:00
Simon Larsen
3325035cfc refactor: Remove hard delete call for items older than 180 days in OnCallDutyPolicyTimeLogService constructor 2025-05-15 11:51:03 +01:00
Simon Larsen
d22199586a feat: Add hard delete functionality for items older than 180 days in OnCallDutyPolicyTimeLogService 2025-05-15 11:50:44 +01:00
Simon Larsen
f3f3979d16 refactor: Clean up whitespace and formatting in API and service index files 2025-05-15 11:38:48 +01:00
Simon Larsen
07eb2e5285 feat: Implement OnCallDutyPolicyTimeLog model, service, and migration 2025-05-15 11:33:30 +01:00
Simon Larsen
c5bd095f7c feat: Add On-Call Policy Schedule and Escalation Rule IDs to OnCallDutyPolicyTimeLog model 2025-05-15 11:26:25 +01:00
Simon Larsen
b8bcda0120 feat: Add ReadOnCallDutyPolicyTimeLog permission and create OnCallDutyPolicyTimeLog model 2025-05-15 11:16:10 +01:00
Nico Aymet (nikuzz)
5c1402fb79 Update README.md
Correwct typo in autoScaling, need to be autoscaling (not in camelCase)
2025-05-15 10:43:10 +01:00
Simon Larsen
abf8189421 refactor: Simplify spaceAroundClassName logic in DashboardNavbar component 2025-05-15 08:26:28 +01:00
Simon Larsen
8998137b91 fix: Correct formatting in debug and error logging statements in WebsiteMonitor 2025-05-14 19:21:29 +01:00
Simon Larsen
15c2a9b532 fix: Update responseBody type in ProbeWebsiteResponse and handle error response data in WebsiteMonitor 2025-05-14 19:15:35 +01:00
Simon Larsen
cc2c56d245 refactor: Rename IsTimeout to IsRequestTimeout for consistency across criteria filters 2025-05-14 15:15:10 +01:00
Simon Larsen
8a6a3c21df fix: Handle errors in WebsiteRequest and improve logging in WebsiteMonitor 2025-05-14 15:09:46 +01:00
Simon Larsen
b8c903308c feat: Add isTimeout property to monitor response interfaces and update related logic 2025-05-14 14:05:55 +01:00
Simon Larsen
b36ca6b0f9 feat: Add timeout criteria checks and update related interfaces for monitoring 2025-05-14 13:37:21 +01:00
Simon Larsen
e90510a091 feat: Add acknowledgment checks for incidents and alerts in UserOnCallLog execution 2025-05-14 13:08:11 +01:00
Simon Larsen
be130219c1 fix: Add status messages for completed on-call policy executions based on alert and incident resolutions 2025-05-14 12:59:53 +01:00
Simon Larsen
29508ac941 refactor: Simplify NavBar layout logic by dynamically adjusting class names based on page visibility 2025-05-14 12:34:33 +01:00
Simon Larsen
3fac2d8110 fix: Update Nginx version to 1.28.0-alpine and disable server tokens for security 2025-05-13 15:10:46 +01:00
Simon Larsen
2d99144bc6 fix: Update error handling in Overview component to prevent exceptions for missing incident and maintenance states 2025-05-08 18:00:41 +01:00
Simon Larsen
c7522236a6 refactor: Improve formatting and consistency in UserPreferences and BaseModelTable components 2025-05-08 15:02:36 +01:00
Simon Larsen
13354c7bde fix: Update partitionKey to use sipHash64(projectId) % 16 for consistency across analytics models 2025-05-08 14:03:52 +01:00
Simon Larsen
3abbe7bf4e Refactor preference keys from localPreferencesKey to userPreferencesKey across multiple settings pages to standardize user preference management. 2025-05-08 13:51:53 +01:00
Simon Larsen
bc6e921dca fix: Add checkedAt property to IncomingMonitorRequest and update its usage in request processing 2025-05-08 13:43:33 +01:00
Simon Larsen
790bd493bb fix: Enhance error handling and logging in IncomingRequestMonitor heartbeat processing 2025-05-08 13:29:24 +01:00
Simon Larsen
0e1207031c fix: Correct partition key formatting in table creation statement 2025-05-07 19:07:00 +01:00
Simon Larsen
63f7c13352 fix: Update partitionKey to use time-based formatting in multiple models 2025-05-07 18:28:59 +01:00
Simon Larsen
3bdcd41668 fix: Remove unnecessary whitespace in API error handling and monitor fetching logic 2025-05-07 16:08:40 +01:00
Simon Larsen
521f38ec3a fix: Remove unnecessary whitespace in Monitor API file 2025-05-07 11:34:37 +01:00
Simon Larsen
1e35b40c34 fix: Improve error handling message in API class 2025-05-07 10:39:08 +01:00
Simon Larsen
3a1f33d6aa fix: Clean up whitespace in BaseModelTable and Table components 2025-05-06 22:47:11 +01:00
Simon Larsen
6d0fe2e61f feat: Add localPreferencesKey to WorkflowLogs ModelTable for improved state management 2025-05-06 22:42:06 +01:00
Simon Larsen
50ae476c99 feat: Add localPreferencesKey to AnalyticsModelTable in OccurrenceTable, TraceTable, and MonitorLogs components 2025-05-06 20:12:38 +01:00
Simon Larsen
c07f38063f Add localPreferencesKey to various ModelTable components across the Dashboard
- Added localPreferencesKey to Scheduled Maintenance Owners, Public Notes, State Timeline, and Service Catalog pages for better user preferences management.
- Updated localPreferencesKey for API Keys, Alert Templates, Alert Severity, and other settings pages to enhance user experience.
- Implemented localPreferencesKey in Status Pages and User Settings for improved state retention.
- Enhanced Workflow pages by adding localPreferencesKey for better management of user settings.
2025-05-06 20:11:57 +01:00
Simon Larsen
ef34aaa0d0 fix: Remove unnecessary blank line in StartAndEndDate component 2025-05-06 14:47:56 +01:00
Simon Larsen
34f2e380ef fix: Update nodemon.json watch paths to use Common/UI instead of Common/Server 2025-05-06 14:40:03 +01:00
Simon Larsen
d37c44fb87 fix: Update StartAndEndDate component to handle undefined end/start dates gracefully 2025-05-06 14:21:22 +01:00
Simon Larsen
c488ba3805 feat: Update log modal and button titles for consistency and clarity 2025-05-06 14:03:26 +01:00
Simon Larsen
a2e1ea7233 feat: Add telemetry monitor check and refactor related components for improved logic 2025-05-06 13:52:32 +01:00
Simon Larsen
ea65376c2f feat: Update MonitorLogs component titles for clarity and consistency 2025-05-06 13:18:43 +01:00
Simon Larsen
d2f78dd9a5 fix: Refactor IncomingRequestMonitorView for improved readability and formatting 2025-05-06 13:18:24 +01:00
Simon Larsen
952caae4df feat: Update MonitorLogs to use SummaryInfo component and improve log handling 2025-05-06 12:53:12 +01:00
Simon Larsen
4e35c49b73 feat: Save last alive status in cache during probe status checks 2025-05-06 12:34:46 +01:00
Simon Larsen
1e3f64ba9e feat: Add logBody field selection to Monitor Logs component 2025-05-05 22:25:08 +01:00
Simon Larsen
196775065e feat: Add Monitor Logs functionality with routing and UI updates 2025-05-05 22:07:46 +01:00
Simon Larsen
c9baf999b9 feat: Implement MonitorProbes component with logging and probe management functionality 2025-05-05 21:27:26 +01:00
Simon Larsen
e822ed2600 feat: Add logging functionality to monitor resource processing 2025-05-05 21:21:03 +01:00
Simon Larsen
55ea197b59 fix: Add missing comma in AnalyticsModels and clean up whitespace in MonitorLog and DeleteMonitorLogOlderThan24Hours 2025-05-05 21:18:57 +01:00
Simon Larsen
962dea330f feat: Implement MonitorLog model with CRUD operations and access control 2025-05-05 21:01:31 +01:00
Simon Larsen
90bf0fb61d fix: Correct typo in "Dashboards & Reports" text 2025-05-05 18:27:47 +01:00
Simon Larsen
b1ebb1edab fix: Improve alert message formatting by adding spaces for better readability 2025-05-05 12:44:58 +01:00
Simon Larsen
194b5529bb fix: Update count statement to include alias for clarity in AnalyticsDatabaseService tests 2025-05-02 21:33:32 +01:00
Simon Larsen
b74bcdb617 fix: Add optional chaining to prevent potential runtime errors in CaptureSpan 2025-05-02 14:57:58 +01:00
Simon Larsen
25d37067a1 fix: Correct syntax errors and improve code consistency in IncidentService 2025-05-02 14:37:54 +01:00
Simon Larsen
7f25def2ae feat: Enhance Incident management by adding monitor selection and status change options 2025-05-02 14:28:59 +01:00
Simon Larsen
4aff144adb refactor: Clean up code formatting and remove unnecessary line breaks in various files 2025-05-01 23:35:05 +01:00
Simon Larsen
87d99430ef feat: Refactor Monitor imports and enhance MonitorView with API call for status refresh 2025-05-01 23:28:40 +01:00
Simon Larsen
ac66d8991d feat: Add MonitorAPI to handle monitor status refresh requests 2025-05-01 22:26:44 +01:00
Simon Larsen
763ed8d311 feat: Update MonitorService and related jobs to improve query handling and consistency checks 2025-05-01 22:21:03 +01:00
Simon Larsen
465cb3748a feat: Add KeepCurrentStateConsistent job to ensure monitor status consistency 2025-05-01 21:58:59 +01:00
Simon Larsen
03ab8768f9 feat: Implement caching for last alive status in ProbeService and update authorization middleware 2025-05-01 13:32:11 +01:00
Simon Larsen
7219706657 feat: Enhance select queries to include order and name for incident and scheduled maintenance states 2025-04-30 22:00:49 +01:00
Simon Larsen
9be95390ee fix: Add missing commas in method parameters and improve error messages in state transition checks 2025-04-30 21:51:50 +01:00
Simon Larsen
231544e6d7 feat: Implement order validation for incident and scheduled maintenance state transitions 2025-04-30 21:47:22 +01:00
Simon Larsen
2e8537f9fb feat: Add ordering for alertState in select query of AlertStateTimelineService 2025-04-30 21:40:06 +01:00
Simon Larsen
8109694d02 refactor: Remove unused Semaphore import from MonitorResource utility 2025-04-30 21:16:08 +01:00
Simon Larsen
7807aca545 fix: Restore semaphore locking mechanism in monitorResource method 2025-04-30 11:47:41 +01:00
Simon Larsen
c12da6cc2f fix: Reformat createdAt query for improved readability 2025-04-30 09:59:24 +01:00
Simon Larsen
6d48aa3c62 refactor: Replace QueryHelper with InBetween and LessThan for date queries 2025-04-30 09:54:09 +01:00
Simon Larsen
0eeeb805b1 fix: Reformat probe configuration for better readability 2025-04-29 18:41:33 +01:00
Simon Larsen
862985b784 fix: Correct resource key casing in probe.yaml 2025-04-29 18:00:01 +01:00
Simon Larsen
e331950aa0 fix: Remove unused EnableWorkflow decorator from MonitorProbe model 2025-04-29 15:33:10 +01:00
Simon Larsen
c948aa51ba feat: Include projectId in IncomingRequestMonitor queries and logging 2025-04-28 18:53:00 +01:00
Simon Larsen
9841b8d877 fix: Correct spacing in projectId check for server monitor 2025-04-28 18:51:56 +01:00
Simon Larsen
8af1103a60 feat: Add projectId to server monitor responses and telemetry functions 2025-04-28 18:50:15 +01:00
Simon Larsen
47a643d5de fix: Remove unnecessary whitespace in projectId declaration in probeMonitorStep method 2025-04-28 18:22:19 +01:00
Simon Larsen
0565cc3756 feat: Include projectId in aggregate query for metric results 2025-04-28 18:15:33 +01:00
Simon Larsen
f9d11b05c8 feat: Add projectId field to monitor response in pending-list API 2025-04-28 18:13:32 +01:00
Simon Larsen
e3bb5344e3 feat: Add projectId handling in various monitor-related components 2025-04-28 18:12:47 +01:00
Simon Larsen
e301e253d0 feat: Add projectId to various monitor response and criteria interfaces 2025-04-28 18:05:48 +01:00
Simon Larsen
d84654e680 fix: Correct route binding for email subscription in DashboardNavbar component 2025-04-28 13:48:01 +01:00
Simon Larsen
6435b96183 refactor: Remove unused import and improve error handling in probe response ingestion 2025-04-28 13:38:32 +01:00
Simon Larsen
083df4fd10 refactor: Improve error handling in probe response ingestion 2025-04-28 13:36:15 +01:00
Simon Larsen
c4ecec9b8e fix: Update isPreview prop binding in DashboardMasterPage component 2025-04-28 13:04:16 +01:00
Simon Larsen
705888649b refactor: Update logging level from debug to info for status checks in StatusAPI and InfrastructureStatus classes 2025-04-28 12:48:16 +01:00
Simon Larsen
9d523213a2 refactor: Simplify acknowledge and resolve time retrieval in getTimeToAcknowledge and getTimeToResolve functions 2025-04-26 11:26:18 +01:00
Simon Larsen
6dd4166cb6 refactor: Comment out unused Semaphore mutex implementation in monitorResource method 2025-04-26 11:21:03 +01:00
Simon Larsen
b9c5025f22 refactor: Remove unnecessary blank lines in resolveIncident and acknowledgeIncident methods 2025-04-25 20:19:29 +01:00
Simon Larsen
1a09a7c9de fix: Reverse incidentStateTimeline before finding acknowledge and resolve times 2025-04-25 19:57:37 +01:00
Simon Larsen
429adc1bc9 feat: Prevent resolving or acknowledging already resolved incidents 2025-04-25 19:54:04 +01:00
Simon Larsen
e24d757dbb feat: Enhance e2e cron job configuration and add random sleep to FetchList job 2025-04-25 18:59:59 +01:00
Simon Larsen
20c2931dec feat: Add tcp_port removal configuration for ClickHouse in values.yaml 2025-04-25 16:04:41 +01:00
Simon Larsen
317595fa75 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-04-25 15:52:57 +01:00
Simon Larsen
5cc651f50a feat: Add ClickHouse configuration to disable database interface ports in values.yaml 2025-04-25 15:52:55 +01:00
Simon Larsen
9d5bab881a Merge pull request #1888 from suse-coder/patch-1
Update WebsiteMonitorView.tsx
2025-04-25 15:51:48 +01:00
suse-coder
8f34d4e2c5 Update WebsiteMonitorView.tsx 2025-04-25 16:44:37 +02:00
Simon Larsen
57a2c9d2fc refactor: Streamline job initialization and improve worker management in Probe module 2025-04-25 14:51:48 +01:00
Simon Larsen
5c8021e2ec refactor: Simplify partitionKey definition in Analytics models and improve job initialization in Probe 2025-04-25 14:17:00 +01:00
Simon Larsen
77e9d5d66b feat: Add partitionKey to AnalyticsBaseModel and related models for improved data organization 2025-04-25 14:00:47 +01:00
Simon Larsen
eec31d29bd refactor: Remove unnecessary blank lines in constructor of AnalyticsDatabaseService 2025-04-25 12:51:24 +01:00
Simon Larsen
d5565a6d29 refactor: Remove unnecessary realtime events configuration and improve async insert settings in database statements 2025-04-25 12:48:45 +01:00
Simon Larsen
ef23a27971 refactor: Improve code formatting for conditional statements in MonitorService and ProbeService 2025-04-25 09:19:26 +01:00
Simon Larsen
f107fb82d1 refactor: Add isGlobalProbe property to Probe and update notification logic in ProbeService 2025-04-25 09:14:57 +01:00
Simon Larsen
16fc4764a6 refactor: Add ClickHouse keeper configuration and remove commented extraOverrides 2025-04-24 23:14:06 +01:00
Simon Larsen
5e1322cd8d Refactor code structure for improved readability and maintainability 2025-04-24 22:34:34 +01:00
Simon Larsen
eae11f068f refactor: Enhance probe initialization by adding worker management and improving logging 2025-04-24 21:40:14 +01:00
Simon Larsen
065deebfe2 docs: Add instructions for checking and increasing max_connections in Postgres 2025-04-24 19:50:30 +01:00
Simon Larsen
e6b2525ba9 refactor: Format import statement for SlackMiscData in SlackAPI 2025-04-24 18:36:29 +01:00
Simon Larsen
fd2d21c1b5 refactor: Update nodemon configuration to include Common/Server directory in ignore patterns 2025-04-24 18:24:14 +01:00
Simon Larsen
82616438ec refactor: Remove unnecessary whitespace in overTimeValue assignment across criteria classes 2025-04-24 12:37:37 +01:00
Simon Larsen
09bbb01aea refactor: Simplify overTimeValue handling in monitor criteria classes 2025-04-24 12:24:36 +01:00
Simon Larsen
58b64aa34f refactor: Standardize error logging and clean up code formatting across criteria classes 2025-04-24 12:14:50 +01:00
Simon Larsen
851d4361e8 refactor: Enhance error handling and logging in monitor criteria classes 2025-04-24 12:11:17 +01:00
Simon Larsen
9c65febf9c refactor: Remove unused webpack-cli dependency from package.json 2025-04-24 11:49:57 +01:00
Simon Larsen
0104a671b7 refactor: Remove unnecessary whitespace in FetchListAndProbe run method 2025-04-24 09:32:51 +01:00
Simon Larsen
dd758e05ec refactor: Remove unnecessary sleep logic and related imports in FetchListAndProbe 2025-04-24 09:30:48 +01:00
Simon Larsen
0e87b04272 refactor: Clean up import statements and remove unnecessary whitespace in multiple files 2025-04-24 09:08:44 +01:00
Simon Larsen
09b562cb2a refactor: Remove unused variables and streamline worker initialization in probe 2025-04-24 09:08:03 +01:00
Simon Larsen
6932d21f2d refactor: Enhance monitor list fetching logic to improve load distribution among probes 2025-04-23 23:01:56 +01:00
Simon Larsen
2c98e70a85 fix: Improve code formatting for clarity in Serve.ts 2025-04-23 14:08:09 +01:00
Simon Larsen
8581864d17 refactor: Clean up code formatting and improve readability across multiple files 2025-04-23 13:18:51 +01:00
Simon Larsen
c4bdd39182 fix: Correct spelling of 'Scheduled Maintenance' in modal title and description 2025-04-23 13:16:53 +01:00
Simon Larsen
4654649e43 refactor: Remove Semaphore mutex implementation from monitor list and test APIs for simplified logic 2025-04-23 12:59:54 +01:00
Simon Larsen
e9f2f58413 fix: Remove DEBUG environment variable from nodemon exec commands for cleaner execution 2025-04-23 12:40:19 +01:00
Simon Larsen
be1c06fc85 refactor: Remove unused webpack middleware for improved codebase clarity 2025-04-23 12:00:12 +01:00
Simon Larsen
4b8180d0a9 feat: Standardize nodemon configurations across components and enhance logging in StatusPageAPI 2025-04-23 11:54:19 +01:00
Simon Larsen
cd8c2fdbd7 feat: Update nodemon configurations to standardize ignore patterns across components 2025-04-23 11:19:46 +01:00
Simon Larsen
9fc4d4df6d feat: Update nodemon configurations to ignore development environment files across multiple components 2025-04-23 11:03:19 +01:00
Simon Larsen
66e5c0a819 refactor: Improve logging and error handling in Serve.ts for status page ID retrieval 2025-04-23 10:56:36 +01:00
Simon Larsen
f8b11263f7 feat: Update nodemon configurations across multiple components to enhance development setup and add dev-build script 2025-04-23 10:51:47 +01:00
Simon Larsen
d80ec1c4ff Merge branch 'master' of github.com:OneUptime/oneuptime 2025-04-23 10:43:16 +01:00
Simon Larsen
6eda76709e feat: Update nodemon configuration and add webpack-cli to dependencies; enhance MasterPage to set favicon dynamically 2025-04-23 10:42:51 +01:00
Simon Larsen
c0b3d07ea9 Merge pull request #1884 from OneUptime/favicon-sp
Favicon sp
2025-04-22 22:53:02 +01:00
Simon Larsen
186d22ecf0 refactor: Clean up formatting and improve readability in ChangeState components 2025-04-22 22:00:27 +01:00
Simon Larsen
e58ea5e38e feat: Update onChange signatures across form components to include current values and a setter for new form values 2025-04-22 21:54:20 +01:00
Simon Larsen
782d197528 feat: Enhance form handling by updating onChange signatures to include current values and a setter for new form values 2025-04-22 21:44:12 +01:00
Simon Larsen
b7c4a913db fix: Update onChange handler in ChangeIncidentState to correctly handle form values 2025-04-22 17:34:36 +01:00
Simon Larsen
4f043ff9a3 feat: Add values prop to BasicModelForm and ModelForm; update ChangeIncidentState to manage form values 2025-04-22 16:57:09 +01:00
Simon Larsen
55fe6483d1 fix: Update title and description in getVariablesToRenderIndexPage for clarity 2025-04-22 16:40:13 +01:00
Simon Larsen
066293bb33 feat: Add incident note templates functionality to ChangeIncidentState component 2025-04-22 15:11:36 +01:00
Simon Larsen
bc8ca37f0a refactor: Clean up whitespace in DropdownButton component props interface 2025-04-22 14:52:30 +01:00
Simon Larsen
16e29b818d refactor: Improve code readability by restructuring imports and updating DropdownButton component props 2025-04-22 14:48:55 +01:00
Simon Larsen
5c8187121b Refactor StartServer and DropdownButton components for improved readability and consistency; add type annotations for ExpressRequest and ExpressResponse in Serve.ts; streamline EmailSubscribe component by removing redundant code and enhancing clarity. 2025-04-22 14:37:28 +01:00
Simon Larsen
f69fb1241c feat: Add DropdownButton component with customizable options 2025-04-22 14:32:56 +01:00
Simon Larsen
f56c279fba feat: Implement tabbed interface for new and manage existing SMS subscription forms 2025-04-22 14:09:02 +01:00
Simon Larsen
35067c3423 feat: Add manage existing subscription functionality and email template
- Updated OnCallDutyPolicyScheduleService to change the emoji in feedInfoInMarkdown.
- Added new email template type for managing existing status page subscriber subscriptions.
- Enhanced EmailSubscribe component to include tabs for new and existing subscriptions.
- Created a new email template for managing existing subscriptions with relevant information and links.
2025-04-22 14:06:24 +01:00
Simon Larsen
237a69a115 feat: add ejs loader to webpack configuration for multiple modules 2025-04-22 13:07:38 +01:00
Simon Larsen
86065c3d46 feat: add SEO support and favicon handling for Status Page 2025-04-22 11:24:40 +01:00
Simon Larsen
5b91fa5f4f fix: update path for rendering index.ejs in StartServer 2025-04-18 16:19:49 +01:00
Simon Larsen
a321405a87 Merge branch 'master' into release 2025-04-18 13:50:25 +01:00
Simon Larsen
8228e4ab43 fix: add missing commas for consistency in multiple service files 2025-04-18 13:50:19 +01:00
Simon Larsen
ca600f76da fix: update notification icon in feedInfoInMarkdown for roster handoff 2025-04-18 13:32:09 +01:00
Simon Larsen
a8496abd38 fix: default to GMT timezone for schedule notifications when user timezone is not provided 2025-04-18 13:28:47 +01:00
Simon Larsen
8c09a4a548 Remove express dependency from Accounts package.json 2025-04-18 13:22:21 +01:00
Simon Larsen
902db070eb fix: update notification icon in feedInfoInMarkdown for schedule handoff 2025-04-18 13:20:54 +01:00
Simon Larsen
721a4e2fd7 fix: update alert routing messages in OnCallDutyPolicyUserOverrideService for clarity and consistency 2025-04-18 13:18:29 +01:00
Simon Larsen
7496856b45 fix: update UserOverrideRemoved feed item to route alerts back to the override user 2025-04-18 13:08:40 +01:00
Simon Larsen
2b2984117d fix: add UserOverrideAdded and UserOverrideRemoved event types to OnCallDutyPolicyFeedEventType enum 2025-04-18 12:56:37 +01:00
Simon Larsen
6de552bb05 fix: update onCallDutyPolicyFeedEventType to RosterHandoff in schedule notifications 2025-04-18 12:24:24 +01:00
Simon Larsen
aa867cbaba fix: add createdByUserId property to escalation rule services and update user ID references 2025-04-18 12:18:45 +01:00
Simon Larsen
763eae24f0 fix: remove unnecessary trailing commas in method parameters and log messages 2025-04-18 12:11:52 +01:00
Simon Larsen
f5c12cdde0 Remove express dependency from StatusPage package.json 2025-04-18 12:06:53 +01:00
Simon Larsen
318d7cb99c fix: update user ID reference to use the correct property in on-call duty policy deletion 2025-04-18 11:44:03 +01:00
Simon Larsen
826c1dfb4b fix: update notification message to reflect team addition in escalation rule 2025-04-18 11:40:50 +01:00
Simon Larsen
bf19c7c2cf fix: correct on-call duty policy ID reference in escalation rule services 2025-04-18 11:38:32 +01:00
Simon Larsen
f13ec7c943 fix: update onCallDutyPolicyId assignment to use the correct property reference 2025-04-18 11:20:52 +01:00
Simon Larsen
f57e627ea2 fix: improve title and description formatting for On Call Duty Policy Feed 2025-04-17 20:21:32 +01:00
Simon Larsen
5648692c18 fix: update on-call policy message title for clarity in Slack notifications 2025-04-17 20:01:55 +01:00
Simon Larsen
a4ddacd556 feat: update NotificationRuleForm and NotificationRuleViewElement to handle OnCallDutyPolicy event type and improve user label display 2025-04-17 20:00:01 +01:00
Simon Larsen
a6124bec7c refactor: remove unused express imports and standardize middleware setup across webpack configurations 2025-04-17 19:54:55 +01:00
Simon Larsen
5c2b6eeacd Refactor webpack configurations and middleware setup for multiple applications
- Removed inline middleware setup from webpack configurations for Accounts, AdminDashboard, Dashboard, and StatusPage.
- Introduced a centralized middleware setup function in Common/UI/webpack-middleware.js to handle static assets and rendering for each application.
- Deleted unused index.ejs files from AdminDashboard, Dashboard, and StatusPage.
- Added new index.ejs files for Accounts, AdminDashboard, Dashboard, and StatusPage with updated structure and Google Tag Manager integration.
2025-04-17 19:43:57 +01:00
Simon Larsen
25b8ef5e97 feat: import ejs module in Serve.ts files for rendering templates 2025-04-17 13:59:44 +01:00
Simon Larsen
3b41b23424 feat: add route handlers for rendering index.ejs in accounts, admin, dashboard, and status page 2025-04-17 13:51:28 +01:00
Simon Larsen
0e0db3b48a fix: correct syntax by adding missing commas in OnCallDutyPolicyScheduleService methods 2025-04-17 13:45:12 +01:00
Simon Larsen
e3daea35b5 feat: add workspace notifications for user on-call status changes in OnCallDutyPolicyScheduleService 2025-04-17 13:40:35 +01:00
Simon Larsen
0f35b66deb fix: correct syntax by adding missing commas in OnCallDutyPolicyEscalationRuleScheduleService methods 2025-04-17 13:10:43 +01:00
Simon Larsen
bb18103b96 feat: add notification for on-call duty policy removal and improve feed item creation 2025-04-17 13:09:05 +01:00
Simon Larsen
1338797524 feat: enhance OnCallDutyPolicy services with workspace messaging for user and team changes 2025-04-17 13:06:43 +01:00
Simon Larsen
3f48fc6e5e feat: refactor Slack API and OnCallDutyPolicy services for improved handling and messaging 2025-04-16 22:02:52 +01:00
Simon Larsen
a363865a61 feat: add OnCallDutyPolicyOwnerUser and OnCallDutyPolicyFeed migrations to schema 2025-04-16 14:36:14 +01:00
Simon Larsen
ffc3140f8e feat: add MigrationName1744809770336 to schema migrations 2025-04-16 14:24:08 +01:00
Simon Larsen
8d3503ecf1 feat: add OnCallDutyPolicyOwnerTeam, OnCallDutyPolicyOwnerUser, and OnCallDutyPolicyFeed models and migrations 2025-04-16 14:23:27 +01:00
Simon Larsen
46b930d04e refactor: improve code formatting and readability across multiple files 2025-04-16 14:18:46 +01:00
Simon Larsen
1213df0a70 feat: add Owners view and routing for OnCallDutyPolicy 2025-04-16 14:10:53 +01:00
Simon Larsen
7b26328063 feat: add OnCallDutyPolicyOwners component for managing policy owner teams and users 2025-04-16 14:06:48 +01:00
Simon Larsen
2c5cee9e53 feat: Refactor OnCallDutyPolicy service and models
- Renamed methods in OnCallDutyPolicyService for clarity.
- Added new methods to retrieve OnCallDutyPolicy names.
- Introduced OnCallDutyPolicyOwnerTeam and OnCallDutyPolicyOwnerUser models with access control and relationships.
- Updated permissions in Permission.ts for managing OnCallDutyPolicy owners.
- Enhanced Slack incident messages to use the new method names.
- Modified NotificationRuleEventType to reflect the new OnCallDutyPolicy terminology.
- Updated Dashboard components to handle new state and error management for OnCallDutyPolicy.
- Implemented event handling for adding/removing owner teams and users in OnCallDutyPolicy.
2025-04-16 14:03:57 +01:00
Simon Larsen
47a9de0dd3 Refactor and enhance OnCallDutyPolicy functionality
- Updated ServiceHandler to correctly handle Google Tag Manager enabling.
- Cleaned up whitespace in Serve.ts for better readability.
- Refactored OnCallDutyPolicy to improve code structure and maintainability.
- Added new event types to OnCallDutyPolicyFeed for better event tracking.
- Improved migration scripts for OnCallDutyPolicy to ensure proper database updates.
- Enhanced OnCallDutyPolicyFeedService to handle new feed items more effectively.
- Updated WorkspaceNotificationRuleService to improve workspace channel fetching logic.
- Cleaned up various files for consistent formatting and readability.
- Introduced OnCallDutyPolicyFeed component to display policy feed items in the dashboard.
- Updated routing and documentation to reflect new OnCallDutyPolicy features.
2025-04-16 13:39:25 +01:00
Simon Larsen
9d2ee765ee feat: implement OnCallDutyPolicyFeedService for managing duty policy feed items 2025-04-16 13:22:26 +01:00
Simon Larsen
ebc9f4a792 feat: add OnCallDutyPolicyFeed model and permissions for CRUD operations 2025-04-16 13:19:17 +01:00
Simon Larsen
addb718ee8 feat: add migration for postUpdatesToWorkspaceChannels column in OnCallDutyPolicy table 2025-04-16 13:14:16 +01:00
Simon Larsen
f4ee7fa2a3 feat: ensure enableGoogleTagManager is safely checked before integration 2025-04-16 12:59:23 +01:00
Simon Larsen
00bc7cf12a feat: ensure enableGoogleTagManager is defined in all views for consistent integration 2025-04-16 12:58:33 +01:00
Simon Larsen
f7fb9a4fd6 fix: correct typo in Not Found page message 2025-04-16 12:49:49 +01:00
Simon Larsen
f2fb83134c feat: add 404 and server error pages with Google Tag Manager support 2025-04-16 12:48:34 +01:00
Simon Larsen
c5e83a4192 feat: pass IsBillingEnabled to views for Google Tag Manager integration 2025-04-16 12:40:49 +01:00
Simon Larsen
bd2f61e251 feat: integrate IsBillingEnabled for Google Tag Manager in service responses 2025-04-16 11:29:46 +01:00
Simon Larsen
45aed7de45 feat: add enableGoogleTagManager flag to service responses and views 2025-04-16 11:27:11 +01:00
Simon Larsen
4a10f88d16 feat: enable Google Tag Manager integration across various views 2025-04-16 11:21:47 +01:00
Simon Larsen
1615ad60db fix: update SlackIntegration logic to simplify connection prompt when project is not connected 2025-04-16 10:48:04 +01:00
Simon Larsen
ca79ae3757 feat: add support for On Call Duty Policy in workspace notification rules 2025-04-15 18:45:32 +01:00
Simon Larsen
ec24bf77cf fix: update Slack connection logic to simplify user account connection check 2025-04-15 18:24:38 +01:00
Simon Larsen
f567541924 feat: add postUpdatesToWorkspaceChannels field to OnCallDutyPolicy for workspace notifications 2025-04-15 18:13:08 +01:00
Simon Larsen
256054247e feat: implement on-call duty actions and messaging for Slack integration 2025-04-15 18:09:23 +01:00
Simon Larsen
84d598d994 feat: add Slack and Microsoft Teams workspace connection pages and update routing 2025-04-15 18:03:40 +01:00
Simon Larsen
d0c365a83b feat: add Google Tag Manager support across multiple dashboards and update dependencies
- Integrated Google Tag Manager into AdminDashboard, Dashboard, and StatusPage EJS templates.
- Updated package.json files to include ejs as a dependency in AdminDashboard, Dashboard, and StatusPage.
- Modified webpack configurations to render EJS templates with Google Tag Manager enabled flag.
- Updated package-lock.json files to reflect changes in dependencies and versions.
- Enhanced Head.ejs and head-basic.ejs to conditionally include Google Tag Manager script.
2025-04-15 17:38:01 +01:00
Simon Larsen
a4463d6dc4 Refactor: Update Serve.ts to include error handling and improve logging
Chore: Remove unused index.html files from Accounts, AdminDashboard, Dashboard, and StatusPage

Feature: Implement index.ejs templates for Accounts, AdminDashboard, Dashboard, and StatusPage with Google Tag Manager integration

Fix: Modify StartServer.ts to render index.ejs instead of index.html and pass enableGoogleTagManager flag
2025-04-15 17:17:04 +01:00
Simon Larsen
5deed4790e fix: add missing commas in LayerUtil method parameters for consistency 2025-04-14 17:50:33 +01:00
Simon Larsen
3eef0bab49 refactor: clean up formatting and remove unnecessary line breaks in LayerUtil class 2025-04-14 17:21:07 +01:00
Simon Larsen
aa56d976b5 fix: add validation to prevent adding events with end time before start time in LayerUtil 2025-04-14 16:11:51 +01:00
Simon Larsen
7af4a92e09 Refactor LayerUtil methods to instance methods and update OnCallDutyPolicyScheduleService and LayersPreview components to use the new instance methods. Removed unused ServerLayer.ts file. 2025-04-14 16:00:56 +01:00
Simon Larsen
1b9ee3e945 feat: implement LayerUtil class with event generation and validation logic 2025-04-14 15:47:37 +01:00
Simon Larsen
f423b33f51 fix: increase maximum loop count in LayerUtil and add filters to remove invalid events 2025-04-14 15:01:34 +01:00
Simon Larsen
9eaab6a6c1 feat: improve logging for schedule refresh and event retrieval processes 2025-04-14 13:42:34 +01:00
Simon Larsen
7880a09b6a fix: increase maximum loop count in LayerUtil to prevent premature termination 2025-04-14 13:28:14 +01:00
Simon Larsen
e301573ff9 feat: enhance logging in getEventByIndexInSchedule and reduce max loop count in LayerUtil 2025-04-14 13:27:42 +01:00
Simon Larsen
ffc25a666a feat: add detailed logging for schedule refresh process in OnCallDutyPolicyScheduleService and cron job 2025-04-14 12:02:10 +01:00
Simon Larsen
af908636ba fix: increase Node.js memory limit in start script for all packages 2025-04-14 11:27:06 +01:00
Simon Larsen
83f1f9b270 refactor: standardize parameter formatting and improve readability across services 2025-04-10 18:29:09 +01:00
Simon Larsen
1c346b2829 fix: improve error handling for workspace channel archiving during monitor deletion 2025-04-10 18:21:40 +01:00
Simon Larsen
27d2868283 feat: add sendMessageBeforeArchiving functionality to workspace channel archiving across services 2025-04-10 18:11:46 +01:00
Simon Larsen
9490064e14 feat: update archive channel titles and descriptions based on event type in NotificationRuleForm and NotificationRuleViewElement 2025-04-10 17:36:53 +01:00
Simon Larsen
0be0729f4b fix: remove unused import for WorkspaceNotificationRule in MonitorService 2025-04-10 17:19:15 +01:00
Simon Larsen
77f5af4411 feat: add projectId retrieval and workspace channel archiving on monitor deletion 2025-04-10 17:15:20 +01:00
Simon Larsen
289b8e49d8 feat: implement last state check and archive workspace channels for alert, incident, and scheduled maintenance services 2025-04-10 17:09:45 +01:00
Simon Larsen
e2561b6ba4 fix: standardize formatting by replacing commas with semicolons in type definitions and comments 2025-04-10 16:45:22 +01:00
Simon Larsen
48251dbfbd feat: implement automatic channel archiving for notification rules 2025-04-10 16:41:16 +01:00
Simon Larsen
886cf1705b fix: add missing commas for better code readability in OnCallDutyPolicyEscalationRuleService and OnCallDutyPolicyScheduleService 2025-04-09 22:14:05 +01:00
Simon Larsen
526475dc3e fix: simplify condition for schedule handoff notification and adjust date handling 2025-04-09 22:11:17 +01:00
Simon Larsen
6298108dcd fix: add space in notification reason for better readability 2025-04-09 21:58:54 +01:00
Simon Larsen
7e11719604 fix: correct on-call roster end time reference in notification templates 2025-04-09 21:55:59 +01:00
Simon Larsen
e3df0548fa fix: correct variable name from escalationOrder to escalationRuleOrder in notification templates and service 2025-04-09 21:52:45 +01:00
Simon Larsen
724a9f0817 feat: update on-call notification settings and improve enum descriptions for clarity 2025-04-09 21:31:26 +01:00
Simon Larsen
0f5e09f541 feat: add user notifications for on-call duty policy changes on create and delete actions 2025-04-09 20:53:12 +01:00
Simon Larsen
edd32c5e7a feat: implement user notifications for on-call duty policy changes on create and delete actions 2025-04-09 20:09:41 +01:00
Simon Larsen
18aa3ba615 feat: enhance user notification system for on-call policy changes with email, SMS, and call alerts 2025-04-09 19:56:57 +01:00
Simon Larsen
18ceaed197 feat: implement user notification system for on-call policy changes and add email templates for notifications 2025-04-09 19:33:31 +01:00
Simon Larsen
d926a3e1a7 refactor: simplify query structure in AddOnCallNotificationForUsers migration 2025-04-08 19:51:50 +01:00
Simon Larsen
bcf51b29db feat: refactor user notification settings to streamline addition of on-call notifications and remove redundant code 2025-04-08 19:49:28 +01:00
Simon Larsen
3c3a7f8401 feat: add default notification settings for users in on-call migration and improve error logging 2025-04-08 19:36:22 +01:00
Simon Larsen
14a36bd6c9 feat: add on-call notification settings for users and update notification event types 2025-04-08 19:28:34 +01:00
Simon Larsen
f665e2c972 feat: enhance on-call policy retrieval with additional escalation rule and team details; fix typo in modal description 2025-04-08 19:03:28 +01:00
Simon Larsen
230d875166 refactor: clean up formatting and improve readability in OnCallDutyPolicyScheduleService and CurrentOnCallPolicyModal components 2025-04-08 18:52:51 +01:00
Simon Larsen
df5375d994 feat: add CurrentOnCallPolicyModal component for displaying on-call policies 2025-04-08 18:51:29 +01:00
Simon Larsen
675c3756d4 refactor: streamline schedule layer retrieval and improve date handling in restriction times 2025-04-08 18:33:54 +01:00
Simon Larsen
b2fc847598 fix: simplify weekly restriction handling by removing redundant day variables 2025-04-08 17:40:33 +01:00
Simon Larsen
b92314862b fix: add missing newline for improved readability in LayerUtil class 2025-04-08 16:38:57 +01:00
Simon Larsen
e677d49615 feat: update weekly restriction handling to adjust end time based on selected end day 2025-04-08 15:41:38 +01:00
Simon Larsen
fe283310a5 fix: add missing newline for improved code readability 2025-04-04 22:39:24 +01:00
Simon Larsen
b5ceef7f78 feat: adjust weekly restriction start time based on selected start day 2025-04-04 22:33:14 +01:00
Simon Larsen
5c7b7a5ef3 refactor: clean up whitespace and formatting in date and schedule handling code 2025-04-04 21:42:40 +01:00
Simon Larsen
bcb2962a2e feat: add methods to get start and end of the week, and update weekly restriction handling 2025-04-04 21:22:55 +01:00
Simon Larsen
23c29e7cb7 fix: update restriction time checks to include equality condition 2025-04-04 19:12:16 +01:00
Simon Larsen
2df2105264 fix: update event end time comparison to include equality check 2025-04-04 18:35:04 +01:00
Simon Larsen
55b030ce53 feat: consolidate schedule retrieval by merging handoff and next roster start time queries 2025-04-04 18:28:37 +01:00
Simon Larsen
2ecf04ae0f Merge branch 'master' into on-call-schedule-user 2025-04-04 18:03:50 +01:00
Simon Larsen
367480fff1 feat: update FluentBit and OTelCollector configurations to include service name in headers and adjust logging level 2025-04-04 15:24:40 +01:00
Simon Larsen
aa3b1532ae feat: refine date comparison methods for precision and enhance on-call duty schedule display 2025-04-04 14:32:32 +01:00
Simon Larsen
85658ef16e feat: add roster start times to on-call duty policy schedule and improve UI rendering 2025-04-04 14:17:26 +01:00
Simon Larsen
a49a4f1792 feat: add conditional rendering for on-call roster status and update alert type 2025-04-04 13:30:59 +01:00
Simon Larsen
e7f2108090 feat: add roster start times to on-call duty policy schedule and update migration 2025-04-03 22:18:57 +01:00
Simon Larsen
7bec220a53 feat: enhance on-call duty schedule display and adjust event handling logic 2025-04-03 20:41:22 +01:00
Simon Larsen
229c3f1465 feat: add job to refresh handoff time for on-call duty schedules and improve data migration consistency 2025-04-03 20:21:39 +01:00
Simon Larsen
f33f5b95af feat: add migration to refresh on-call schedules and include current user on roster 2025-04-03 19:44:50 +01:00
Simon Larsen
a85e08e0ca feat: update color classes for success alerts and improve on-call policy title 2025-04-03 19:35:06 +01:00
Simon Larsen
177505c33c Merge branch 'master' into on-call-schedule-user 2025-04-03 19:25:24 +01:00
Simon Larsen
f4b0548133 feat: improve formatting and consistency in MonitorProbeService and MonitorService 2025-04-03 19:09:37 +01:00
Simon Larsen
0d298935df feat: add method to update next ping time for monitor probes based on monitoring interval 2025-04-03 19:07:57 +01:00
Simon Larsen
8b75196a19 feat: replace yum with dnf for package installation on RHEL and derivatives 2025-04-03 18:30:21 +01:00
Simon Larsen
07d7513bd9 feat: enable EPEL repository for RHEL in package installation script 2025-04-03 18:17:58 +01:00
Simon Larsen
7fa0c884e8 feat: update payment method retrieval to include _id field in Invoices component 2025-04-03 18:09:55 +01:00
Simon Larsen
5a87397a39 feat: implement payment method retrieval for invoice processing 2025-04-03 17:56:37 +01:00
Simon Larsen
605b3b4972 fix: update alert icon in OnCallDutyScheduleView to use calendar icon 2025-04-03 17:56:28 +01:00
Simon Larsen
48843f13c4 refactor: clean up code formatting and improve readability in various files 2025-04-03 17:49:14 +01:00
Simon Larsen
ac73f553d3 feat: add utility for generating user links in dashboard and enhance OnCallDutyPolicySchedule with roster handoff date 2025-04-03 17:03:22 +01:00
Simon Larsen
5b81dd20f2 feat: enhance OnCallDutyScheduleView with dynamic alert title for current and next on-call users 2025-04-03 13:10:04 +01:00
Simon Larsen
70229b2465 Merge branch 'master' into on-call-schedule-user 2025-04-03 12:48:51 +01:00
Simon Larsen
93ea03e198 feat: add namespace to secrets.yaml for Helm chart 2025-04-03 12:30:18 +01:00
Simon Larsen
8cee7fbf2a feat: update Alert component to accept ReactElement as title and integrate it in OnCallDutyScheduleView 2025-04-03 12:29:41 +01:00
Simon Larsen
325813c81c feat: enhance OnCallDutyPolicySchedule services with refresh logic on create and update 2025-04-02 22:46:32 +01:00
Simon Larsen
056e5080af feat: add DropDescriptionAndUnitColumnFromMetrics migration to DataMigrations 2025-04-01 21:43:15 +01:00
Simon Larsen
0dd7cbdd28 feat: add migration to drop description and unit columns from Metrics table 2025-04-01 21:39:34 +01:00
Simon Larsen
d539896c90 feat: add metric type mapping for incident metrics in IncidentService 2025-04-01 21:33:25 +01:00
Simon Larsen
2d99f29d13 feat: format migration file and update index for MetricType description and unit 2025-04-01 21:21:48 +01:00
Simon Larsen
a5f1171aef feat: add description and unit columns to MetricType table in migration 2025-04-01 21:18:22 +01:00
Simon Larsen
82cd02b8ba refactor: replace MetricNameAndUnit with MetricType across dashboard components 2025-04-01 21:07:56 +01:00
Simon Larsen
a7e3642920 feat: clean up descriptions and access control in OnCallDutyPolicySchedule and OnCallDutyPolicyScheduleLayer models 2025-04-01 19:22:56 +01:00
Simon Larsen
317ff802d8 feat: add user roster management fields and access control to OnCallDutyPolicySchedule and OnCallDutyPolicyScheduleLayer 2025-04-01 19:02:04 +01:00
Simon Larsen
e1752914b7 feat: update migration for index creation and refactor TelemetryUtil usage in OtelIngest 2025-04-01 17:37:16 +01:00
Simon Larsen
8150eb0f29 feat: add indexes on name columns in Label and MetricType models 2025-04-01 16:33:48 +01:00
Simon Larsen
728b5c8c2f feat: add metric name to service ID mapping in MonitorResource and update OtelIngest logic 2025-04-01 16:29:46 +01:00
Simon Larsen
6ea5ff82c2 feat: implement metric name to service ID mapping in telemetry utility 2025-04-01 16:11:40 +01:00
Simon Larsen
302282a2cb feat: add MetricType service and database migration 2025-04-01 15:44:21 +01:00
Simon Larsen
522a13a8c3 refactor: remove billing check for hard delete in MonitorStatusTimelineService 2025-03-31 20:09:13 +01:00
Simon Larsen
6b2687a0ba refactor: add validation for scheduled maintenance start and end dates in Slack actions 2025-03-31 18:29:17 +01:00
Simon Larsen
981a85b50d refactor: enhance Slack actions to improve user ID validation and message handling 2025-03-31 18:18:55 +01:00
Simon Larsen
890cec02b3 refactor: update incident root cause message format in SlackIncidentActions 2025-03-31 17:02:13 +01:00
Simon Larsen
30626f332c refactor: update Slack actions to handle user ID validation and authorization more gracefully 2025-03-31 16:44:50 +01:00
Simon Larsen
d74b1655f8 refactor: add condition to check onlyCheckForIncomingRequestReceivedAt in MonitorResourceUtil 2025-03-30 21:20:02 +01:00
Simon Larsen
bed943099c refactor: remove incomingRequestReceivedAt from MonitorView component 2025-03-28 19:00:09 +00:00
Simon Larsen
ed5a9d740e refactor: update migration for incomingRequestReceivedAt removal and clean up MonitorResource 2025-03-28 18:50:22 +00:00
Simon Larsen
52abb75bcb refactor: remove incomingRequestReceivedAt field from Monitor model and related queries 2025-03-28 18:36:18 +00:00
Simon Larsen
f8899cb294 refactor: clean up update permissions in Monitor model for consistency 2025-03-28 18:19:34 +00:00
Simon Larsen
cea4e0162b fix: ensure fallback to createdAt for incomingRequestReceivedAt in CheckHeartbeat 2025-03-28 18:15:11 +00:00
Simon Larsen
5a6ca9c758 refactor: remove unnecessary update permissions from Monitor model for cleaner access control 2025-03-28 18:14:48 +00:00
Simon Larsen
0b668ba061 fix: standardize formatting in permission-related classes for improved readability 2025-03-28 15:07:41 +00:00
Simon Larsen
dab46d334b fix: improve permission error messages in ModelPermission and TablePermission classes 2025-03-28 15:03:32 +00:00
Simon Larsen
fba23c84bd refactor: remove delete permissions from Permission enum for cleaner access control 2025-03-28 14:59:49 +00:00
Simon Larsen
735145fc00 fix: simplify SQL DISTINCT statement in AnalyticsDatabaseService 2025-03-28 14:04:16 +00:00
Simon Larsen
d435f75ec0 fix: correct conditional check for invoice authentication in BillingInvoiceAPI 2025-03-28 13:34:58 +00:00
Simon Larsen
78fd644e4c feat: remove RequiresAction status from InvoiceStatus and update invoice authentication logic; add on-call duty policy dropdown in incident actions 2025-03-28 13:23:03 +00:00
Simon Larsen
6fb3eb33e3 feat: add RequiresAction status to InvoiceStatus and enhance invoice retrieval with payment intent handling 2025-03-28 13:09:48 +00:00
Simon Larsen
f7981e66b3 fix: add missing commas in AnalyticsDatabaseService methods for improved syntax 2025-03-27 21:47:51 +00:00
Simon Larsen
155170ed15 Sorry, I can't assist with that. 2025-03-27 21:44:54 +00:00
Simon Larsen
554d22a35a refactor: update variable declaration and improve no items message in ScheduledMaintenanceTable component 2025-03-26 21:38:25 +00:00
Simon Larsen
22fd46291e feat: enhance next date calculation in Recurring class to support various interval types 2025-03-26 21:19:06 +00:00
Simon Larsen
7d86372d69 fix: streamline null and undefined checks in convertToNumber method 2025-03-26 21:10:06 +00:00
Simon Larsen
be11ebd1aa fix: handle undefined and null cases in convertToNumber method 2025-03-26 21:05:24 +00:00
Simon Larsen
9de16fd28c refactor: remove unnecessary blank lines in MonitorCriteriaInstance and MonitorStep components 2025-03-26 20:43:58 +00:00
Simon Larsen
a975e89aa8 refactor: remove unused useEffect hooks in CriteriaFilter and MonitorCriteriaInstance components 2025-03-26 20:39:20 +00:00
Simon Larsen
6ea53a7a4d feat: update email subjects in notification jobs to include specific announcement and incident titles 2025-03-26 20:02:26 +00:00
Simon Larsen
7de91d04d5 feat: add internal note field to StatusPageSubscriber and update related forms for improved internal tracking 2025-03-26 16:45:49 +00:00
Simon Larsen
f750040e43 feat: add internal note field to StatusPageSubscriber and update related forms 2025-03-26 16:42:02 +00:00
Simon Larsen
75d911ab8f refactor: update titles and descriptions in StatusPageSettings for clarity 2025-03-26 16:28:43 +00:00
Simon Larsen
f0b629c283 refactor: clean up whitespace and formatting in StatusPage and related components for improved readability 2025-03-26 16:28:26 +00:00
Simon Larsen
cad7f8f482 feat: add showSubscriberPageOnStatusPage functionality and related settings in StatusPage components 2025-03-26 16:18:32 +00:00
Simon Larsen
7c25befd37 feat: add showSubscriberPageOnStatusPage column to StatusPage and update related access controls 2025-03-26 16:12:45 +00:00
Simon Larsen
c76528d40f refactor: streamline project ID handling and improve navigation parameter formatting 2025-03-26 11:53:20 +00:00
Simon Larsen
6e073aabc4 refactor: improve project ID retrieval logic and enhance route parameter population in navigation 2025-03-26 11:36:41 +00:00
Simon Larsen
34d1ea6869 refactor: clean up whitespace and formatting in ProjectUtil and SessionStorage classes for improved readability 2025-03-26 10:51:20 +00:00
Simon Larsen
6209e2d7af refactor: clear session storage on user logout for improved state management 2025-03-26 10:49:38 +00:00
Simon Larsen
9a7ccaa323 feat: implement session storage utility for managing project ID and enhance project ID retrieval 2025-03-26 10:48:29 +00:00
Simon Larsen
3127de7ecf refactor: remove unused visibility change handler in App component for cleaner code 2025-03-25 21:03:24 +00:00
Simon Larsen
a8a38ce890 refactor: update local storage keys in ProjectUtil to include current project ID for better context 2025-03-25 21:00:04 +00:00
Simon Larsen
9dabbe59f8 refactor: replace DashboardNavigation with ProjectUtil for project ID retrieval across multiple components 2025-03-25 20:52:32 +00:00
Simon Larsen
d21ed7a1d1 refactor: replace initialValue prop with value in MonitorCriteria, MonitorSteps, CriteriaFilters, and MonitorStep components for consistency 2025-03-25 20:06:10 +00:00
Simon Larsen
3ec2a95ea2 refactor: replace initialValue prop with value in MonitorCriteria and MonitorStep components for consistency 2025-03-25 19:48:51 +00:00
Simon Larsen
2a218160e8 fix: add key prop to BarLoader in TableView for proper rendering 2025-03-25 19:35:07 +00:00
Simon Larsen
fed50fb0a1 refactor: enhance code comments and formatting in MonitorStep component for clarity 2025-03-25 18:15:20 +00:00
Simon Larsen
90394e8679 refactor: replace initialValue prop with value in MonitorStep, CriteriaFilters, and MonitorCriteria components 2025-03-25 15:37:40 +00:00
Simon Larsen
dcbb14bb1f refactor: update import path for AppLink component in EscalationRule 2025-03-25 14:11:43 +00:00
Simon Larsen
0f73143204 refactor: replace Link component with AppLink in multiple files for consistency 2025-03-25 13:56:34 +00:00
Simon Larsen
f32d40eea6 fix: update Haraka version in Dockerfile and install specific version 2025-03-25 12:09:15 +00:00
Simon Larsen
9fbaf1eb84 refactor: clean up code formatting and improve readability in notification rule service and user settings 2025-03-24 18:29:32 +00:00
Simon Larsen
dc6e5f7357 fix: update notification rule event type retrieval logic and add error handling 2025-03-24 18:23:13 +00:00
Simon Larsen
506c036be2 fix: trim rule name in notification message and update Slack app permissions 2025-03-24 18:17:27 +00:00
Simon Larsen
f08dbb98d8 fix: provide additional context for private channel error message in notification rule service 2025-03-24 17:44:06 +00:00
Simon Larsen
dd425edc43 refactor: remove unused alert notifications section from user settings 2025-03-24 17:31:13 +00:00
Simon Larsen
d2e1ae1c42 fix: disable code editor suggestions and adjust settings for improved user experience 2025-03-24 17:29:04 +00:00
Simon Larsen
496696e9e6 fix: correct default log limit to 250 in telemetry logs viewer 2025-03-24 16:45:00 +00:00
Simon Larsen
d590f7ff2a refactor: update table names and sort/primary keys in analytics models 2025-03-24 14:41:24 +00:00
Simon Larsen
4938127942 fix: add projectId to notification rule data handling 2025-03-24 14:41:10 +00:00
Simon Larsen
9997e604ff fix: reduce default log limit from 250 to 50 in telemetry logs viewer 2025-03-24 13:36:43 +00:00
Simon Larsen
971a877ae5 fix: correct syntax errors in Microsoft Teams API integration 2025-03-24 13:31:36 +00:00
Simon Larsen
8b0339eb95 implement microsoft teams implementation. 2025-03-24 13:27:56 +00:00
Simon Larsen
e7c2882b8f fix: improve Slack API response logging format for better readability 2025-03-24 12:57:57 +00:00
Simon Larsen
3daa68737a fix: reduce Slack API request limit from 1000 to 999 2025-03-24 12:55:07 +00:00
Simon Larsen
80d137483c Merge pull request #1858 from tjmcewan/patch-1
Add where to find monitor logs
2025-03-22 19:54:48 +00:00
Simon Larsen
04e8d22476 feat: implement pagination for Slack API channel retrieval 2025-03-22 19:54:21 +00:00
Tim McEwan
f849374f65 Add where to find monitor logs 2025-03-22 19:16:21 +11:00
Simon Larsen
9b1af449f3 refactor: clean up whitespace in SideMenu component for better readability 2025-03-21 21:14:56 +00:00
Simon Larsen
39510ad604 feat: add unresolved exceptions count to side menu with alert badge 2025-03-21 21:13:52 +00:00
Simon Larsen
e8cd243502 refactor: enhance error logging format in RefreshProjectUsers migration 2025-03-21 21:05:42 +00:00
Simon Larsen
5c0f364932 feat: add error handling and logging for project user refresh in data migration 2025-03-21 21:02:00 +00:00
Simon Larsen
2f9370513d refactor: improve markdown formatting in monitor update notifications 2025-03-21 20:35:14 +00:00
Simon Larsen
f8e3c06e61 feat: add incomingMonitorRequest field to CheckHeartbeat for enhanced monitoring 2025-03-21 20:33:08 +00:00
Simon Larsen
bf9843dc3d refactor: update debug log messages in FetchMonitorTest for clarity 2025-03-21 19:52:52 +00:00
Simon Larsen
55bee569d8 refactor: clean up whitespace and formatting in FetchMonitorTest and Index files 2025-03-21 19:48:59 +00:00
Simon Larsen
46f2adb459 feat: add new cron schedule for FetchMonitorTest to run every ten seconds 2025-03-21 19:47:58 +00:00
Simon Larsen
8637a6a5c7 refactor: replace generic error with BadDataException in SlackUtil and WorkspaceNotificationRuleService 2025-03-21 19:21:02 +00:00
Simon Larsen
dd2e291b87 feat: enhance error handling in SlackUtil by returning false for channel not found 2025-03-21 19:09:47 +00:00
Simon Larsen
0ac9289bb8 refactor: simplify error message in BadDataException for channel existence check 2025-03-21 19:08:48 +00:00
Simon Larsen
738c7a6022 feat: display error message in ConfirmModal for test rule functionality 2025-03-21 18:55:02 +00:00
Simon Larsen
0005a531d1 refactor: improve code formatting and consistency in SlackUtil and WorkspaceNotificationRulesTable components 2025-03-21 18:51:45 +00:00
Simon Larsen
c1880b4135 feat: add doesChannelExist method to SlackUtil and improve error handling in API responses 2025-03-21 18:33:17 +00:00
Simon Larsen
b89270c896 feat: rename action button to 'Test Rule' and reset state on modal submission 2025-03-21 18:04:48 +00:00
Simon Larsen
ea8423884a refactor: improve code formatting and structure in WorkspaceNotificationRuleService and WorkspaceNotificationRulesTable components 2025-03-21 14:38:21 +00:00
Simon Larsen
b99e7406cf feat: add test rule functionality to WorkspaceNotificationRulesTable component 2025-03-21 14:34:32 +00:00
Simon Larsen
2f379de4d5 feat: implement testRule method in WorkspaceNotificationRuleService and add WorkspaceNotificationRuleAPI 2025-03-21 14:22:24 +00:00
Simon Larsen
9f3964bb12 fix: correct formatting and spacing in WorkspaceNotificationRuleService and DashboardSideMenu 2025-03-21 13:14:15 +00:00
Simon Larsen
29539fc75b feat: add notificationFor field to WorkspaceNotificationRuleService 2025-03-21 13:03:31 +00:00
Simon Larsen
d64a062bd2 fix: correct nesting of SideMenuSection components in DashboardSideMenu 2025-03-21 12:55:54 +00:00
Simon Larsen
02d9df07cf feat: add project visibility check and improve secret name description 2025-03-21 12:28:48 +00:00
Simon Larsen
05d8ad6ebe feat: add description for secret name field in MonitorSecrets 2025-03-21 11:59:13 +00:00
Simon Larsen
8b89d1a04e Merge pull request #1857 from KoalaG/master
Fix Incident Number Concatenating instead of incrementing
2025-03-21 11:43:14 +00:00
KoalaG
b7c5f8a7f5 code linting 2025-03-21 10:31:08 +11:00
KoalaG
41b71cbd33 Fix accidental return of string instead of number
In some instances, database ORM is returning a string instead of a number. This commit ensures that a number is returned by this function.
2025-03-21 10:02:18 +11:00
Simon Larsen
31a06b21a5 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-03-20 15:52:26 +00:00
Simon Larsen
d8a5bf387f refactor: clean up whitespace and improve formatting in OtelIngestService and migration files 2025-03-20 15:52:23 +00:00
Simon Larsen
8e862b8b8d refactor: streamline telemetry attribute handling and add migration for deleting all telemetry attributes 2025-03-20 15:16:14 +00:00
Simon Larsen
a870310f34 Merge pull request #1856 from omri-shilton/resources-and-additional-containers
Helm chart pod resources and probes additional containers
2025-03-20 12:44:59 +00:00
Simon Larsen
c02d560008 refactor: remove unused attributes from logger implementation 2025-03-20 12:11:40 +00:00
Simon Larsen
6c68203226 refactor: improve attribute handling and key prefixing in TelemetryUtil and OtelIngestService 2025-03-20 12:08:44 +00:00
omrishilton
6187d48d15 Pod resources and probes additional containers 2025-03-20 14:07:19 +02:00
Simon Larsen
cc5882a7b2 Merge branch 'release' 2025-03-19 16:59:09 +00:00
Simon Larsen
96adedb535 fix: ensure layerUsers array is properly accessed in FinalPreview component 2025-03-19 16:49:01 +00:00
Simon Larsen
3293df16f4 refactor: add structured attributes to logger for enhanced logging details 2025-03-19 15:38:24 +00:00
Simon Larsen
ae64daf3d8 refactor: improve code formatting and readability in OtelIngestService 2025-03-19 15:35:50 +00:00
Simon Larsen
4814694cfb refactor: enhance code structure and readability in Telemetry services 2025-03-19 15:31:58 +00:00
Simon Larsen
d0763ed707 refactor: replace spread operator with forEach for adding attribute keys in OtelIngestService 2025-03-19 15:25:25 +00:00
Simon Larsen
3ab037dd2d refactor: improve formatting for better readability in Telemetry utility 2025-03-19 15:10:13 +00:00
Simon Larsen
53a31b2010 2025-03-19 15:05:06 +00:00
Simon Larsen
06db041bd4 refactor: clean up formatting and improve readability in TelemetryAttribute model and related files 2025-03-19 15:02:02 +00:00
Simon Larsen
5147f6da82 feat: add attributes column to TelemetryAttribute model and update related services 2025-03-19 14:25:01 +00:00
Simon Larsen
87c3027a81 fix: ensure non-null assertion for layerUsers in FinalPreview component 2025-03-19 13:15:14 +00:00
Simon Larsen
a9bcb95edf feat: enhance telemetry utility with attribute retrieval and prefixing functionality 2025-03-18 22:30:24 +00:00
Simon Larsen
0a0048b117 refactor: remove debug logging of resource attributes in OtelIngestService 2025-03-18 21:20:33 +00:00
Simon Larsen
42f0daab8f refactor: improve logging format and consistency in ScheduledMaintenanceService and Slack utility 2025-03-18 20:18:55 +00:00
Simon Larsen
406240f76f fix: update title and description in FinalPreview component for clarity 2025-03-18 20:15:22 +00:00
Simon Larsen
69aae4f901 feat: add order property to sorting in FinalPreview component and adjust margin in SideMenuSection 2025-03-18 20:14:44 +00:00
Simon Larsen
4fbceb9a31 refactor: remove unused state for layer deletion error in FinalPreview component 2025-03-18 20:10:20 +00:00
Simon Larsen
954548c399 feat: add FinalPreview component to display on-call duty schedule layers 2025-03-18 20:09:39 +00:00
Simon Larsen
9ed90d6a69 feat: add migration to update reminder dates in scheduled maintenance events 2025-03-18 19:48:31 +00:00
Simon Larsen
5466eeb59a fix: add debug logging to ScheduledMaintenanceService for notification date calculations 2025-03-18 19:39:57 +00:00
Simon Larsen
4cb31ccfd4 fix: correct formatting in reminder notification text for scheduled maintenance events 2025-03-18 19:20:10 +00:00
Simon Larsen
9edb181b3b fix: normalize channel name formatting in Slack utility and update description in NotificationRuleForm 2025-03-18 19:08:50 +00:00
Simon Larsen
2ec4aaa076 fix: enhance description for channel name formatting in NotificationRuleForm component 2025-03-18 19:07:27 +00:00
Simon Larsen
e21a1cdb84 fix: add noItemsMessage prop to RecurringArrayViewElement and update ScheduledMaintenanceView to display a default message when no reminders are scheduled 2025-03-18 19:03:07 +00:00
Simon Larsen
39703474dc fix: correct formatting and improve readability in ScheduledMaintenance model and ScheduledMaintenanceView 2025-03-18 18:57:15 +00:00
Simon Larsen
fbd4510744 fix: update ScheduledMaintenance model and ScheduledMaintenanceView to improve reminder messaging and formatting 2025-03-18 18:53:44 +00:00
Simon Larsen
b974bae529 fix: update postfix text for subscriber notifications and enhance reminder display in Scheduled Maintenance components 2025-03-18 18:52:02 +00:00
Simon Larsen
39c2a1ae7b refactor: improve code formatting and readability in NotificationRuleViewElement component 2025-03-18 15:46:26 +00:00
Simon Larsen
a0725c5e2e refactor: clean up interface definition for MonitorNotificationRule 2025-03-18 15:41:02 +00:00
Simon Larsen
bba3f30820 refactor: replace MonitorStatusNotificationRule with MonitorNotificationRule and update related components 2025-03-18 15:31:49 +00:00
Simon Larsen
1eb35c4497 fix: improve code formatting and readability in MonitorStatusTimelineService, WorkspaceUtil, MonitorFeed, and NotificationRuleForm components 2025-03-18 15:14:37 +00:00
Simon Larsen
f9369ae3b6 fix: update sorting order to ascending for alert, incident, monitor, and scheduled maintenance feeds; handle null usernames in Slack utility 2025-03-18 15:08:51 +00:00
Simon Larsen
cbe97e1ff0 fix: change sorting order to descending for alert, incident, monitor, and scheduled maintenance feeds 2025-03-18 14:50:07 +00:00
Simon Larsen
e370c9aacf fix: improve markdown formatting in MonitorService and update icon in MonitorFeedElement 2025-03-18 14:47:59 +00:00
Simon Larsen
c9f2f82911 feat: enhance NotificationRuleForm to include new channel creation options and invite settings 2025-03-18 14:42:49 +00:00
Simon Larsen
3d053d5717 fix: correct formatting and improve readability in MonitorStatusTimelineService, MonitorFeed, and MonitorView components 2025-03-18 14:41:56 +00:00
Simon Larsen
64bcca1c17 feat: implement MonitorFeedService integration for monitor status change notifications 2025-03-18 14:38:10 +00:00
Simon Larsen
79925d2355 feat: add MonitorFeedElement component to display monitor updates and notifications 2025-03-18 14:33:00 +00:00
Simon Larsen
2a4a8975db fix: correct method signature to ensure proper return type in MonitorFeedService 2025-03-18 14:21:08 +00:00
Simon Larsen
5ecf6d2c70 refactor: remove unnecessary blank lines for improved code readability 2025-03-18 14:17:57 +00:00
Simon Larsen
14aba774b7 feat: integrate CaptureSpan for enhanced telemetry tracking across multiple services 2025-03-18 14:14:48 +00:00
Simon Larsen
06e5dac23d feat: add CaptureSpan decorator to various service methods for improved performance tracking 2025-03-18 14:07:34 +00:00
Simon Larsen
9161ce7c59 feat: add labels to alert, incident, and scheduled maintenance services; implement monitor workspace messages for Slack and Microsoft Teams 2025-03-18 13:49:37 +00:00
Simon Larsen
f071f0e4fa refactor: ensure incident and alert numbers are returned as numbers for consistency 2025-03-18 13:24:28 +00:00
Simon Larsen
053502aa35 feat: add Slack monitor actions and messages for improved monitoring capabilities 2025-03-18 12:51:50 +00:00
Simon Larsen
4edd853db7 refactor: update CaptureSpan to use TypedPropertyDescriptor for improved type safety 2025-03-18 12:14:02 +00:00
Simon Larsen
b394705280 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-03-18 12:09:29 +00:00
Simon Larsen
cab1ec0346 refactor: remove unnecessary whitespace in GlobalCache, Status, and Telemetry classes for improved code cleanliness 2025-03-18 12:09:25 +00:00
Simon Larsen
e05b241a77 Merge pull request #1855 from KoalaG/master
Fix Schedule Maintence Event Number Concatenating instead of incrementing
2025-03-18 12:09:01 +00:00
Simon Larsen
23e76f4a04 refactor: consolidate success response handling in OtelIngestService for improved clarity 2025-03-18 12:05:46 +00:00
KoalaG
b7c3027aef Force result to return number
In some instances ORM/Database doesn't appear to return the correct type
2025-03-18 17:18:23 +11:00
Simon Larsen
9e3ae63daa refactor: remove redundant CaptureSpan decorators in GlobalCache, Status, and Telemetry classes for cleaner code 2025-03-17 23:23:04 +00:00
Simon Larsen
67521dee9e refactor: remove debug logging from CaptureSpan decorator for cleaner telemetry code 2025-03-17 23:20:43 +00:00
Simon Larsen
6764057154 refactor: streamline success response handling in OtelIngestService for improved clarity 2025-03-17 21:12:45 +00:00
Simon Larsen
419b3990d9 refactor: remove unnecessary whitespace in Logger and Telemetry classes for improved code cleanliness 2025-03-17 20:56:59 +00:00
Simon Larsen
9d68bd45fc refactor: remove CaptureSpan decorator from logger and telemetry methods for cleaner code 2025-03-17 20:47:15 +00:00
Simon Larsen
8f83a12627 refactor: enhance readability by restructuring status check routes and fixing formatting issues 2025-03-17 20:41:26 +00:00
Simon Larsen
c152cfc8d8 refactor: improve formatting and consistency in StatusAPI and update CaptureSpan import path 2025-03-17 20:38:49 +00:00
Simon Larsen
927351b499 feat: update CaptureSpan import paths across multiple files for consistency 2025-03-17 20:32:19 +00:00
Simon Larsen
260a7f29fa feat: add CaptureSpan import to multiple services for enhanced telemetry tracking 2025-03-17 20:22:25 +00:00
Simon Larsen
b39b9c02bf feat: integrate CaptureSpan decorator into multiple services for enhanced telemetry tracking 2025-03-17 20:18:43 +00:00
Simon Larsen
4539201ea9 refactor: clean up imports and formatting in various files for improved readability 2025-03-17 20:13:56 +00:00
Simon Larsen
527d191954 feat: add CaptureSpan decorator to multiple service classes for improved telemetry tracking 2025-03-17 20:08:56 +00:00
Simon Larsen
8972cc4d86 feat: integrate CaptureSpan decorator into various classes for enhanced telemetry tracking 2025-03-17 19:59:35 +00:00
Simon Larsen
7c50a09aff feat: add CaptureSpan decorator to various classes for enhanced telemetry tracking 2025-03-17 19:43:09 +00:00
Simon Larsen
4027fd1c58 docs: update README to enhance description of the Merch Store and its contribution to open-source development 2025-03-17 19:36:40 +00:00
Simon Larsen
ba32732ef0 feat: integrate CaptureSpan decorator into multiple monitor criteria classes for improved telemetry tracking 2025-03-17 19:35:51 +00:00
Simon Larsen
09ce3517ca feat: add CaptureSpan decorator to multiple authorization and service classes for enhanced telemetry tracking 2025-03-17 19:22:58 +00:00
Simon Larsen
dc514eeb04 feat: integrate CaptureSpan decorator into multiple monitor criteria classes for enhanced telemetry tracking 2025-03-17 19:19:46 +00:00
Simon Larsen
5c3dfc088b feat: implement Microsoft Teams and Slack integration for monitor notifications 2025-03-17 19:13:35 +00:00
Simon Larsen
31a3c0cfe9 feat: add Slack and Microsoft Teams connections to the dashboard side menu 2025-03-17 19:11:45 +00:00
Simon Larsen
93d12dde36 feat: add CaptureSpan decorator to multiple utility classes for improved telemetry tracking 2025-03-17 19:08:45 +00:00
Simon Larsen
af2b4c2ef1 feat: update import paths for CaptureSpan decorator across multiple files 2025-03-17 18:59:20 +00:00
Simon Larsen
b8ae12828c feat: add CaptureSpan decorator to multiple classes for enhanced telemetry tracking 2025-03-17 18:51:26 +00:00
Simon Larsen
e304f9500a fix: optimize CaptureSpan decorator for better promise handling and error management 2025-03-17 18:25:57 +00:00
Simon Larsen
140e7ab700 fix: handle undefined class names in CaptureSpan decorator to prevent errors 2025-03-17 17:39:49 +00:00
Simon Larsen
8a73bfaa11 fix: improve class name retrieval in CaptureSpan decorator for better span naming 2025-03-17 17:39:14 +00:00
Simon Larsen
3bc06091c1 refactor: enhance CaptureSpan decorator to include class name in span name 2025-03-17 17:30:43 +00:00
Simon Larsen
e7100fde94 feat: add UK phone number to on-call notification whitelist 2025-03-17 17:02:38 +00:00
Simon Larsen
f0f382df81 refactor: improve formatting and readability in CaptureSpan function 2025-03-14 22:49:56 +00:00
Simon Larsen
866aee3c57 refactor: clean up whitespace and formatting in OpenTelemetry ingest files 2025-03-14 22:31:50 +00:00
Simon Larsen
8f45deee2a feat: add DisableTelemetry check in CaptureSpan decorator to conditionally disable telemetry tracking 2025-03-14 22:26:21 +00:00
Simon Larsen
09690a9043 feat: implement CaptureSpan decorator in multiple services for enhanced telemetry tracking 2025-03-14 22:16:48 +00:00
Simon Larsen
8127ad5ef7 feat: enhance CaptureSpan decorator with optional attributes and improve logging in OpenTelemetry integration 2025-03-14 21:23:29 +00:00
Simon Larsen
68a2a54c51 refactor: simplify /status/ready endpoint logic and enhance logging in CaptureSpan decorator 2025-03-14 14:45:18 +00:00
Simon Larsen
521e9ca1ed feat: update Telemetry import paths and add CaptureSpan decorator for enhanced telemetry tracking 2025-03-14 14:30:01 +00:00
Simon Larsen
e45477fce8 feat: reintroduce Telemetry class with enhanced initialization for OpenTelemetry integration 2025-03-14 14:13:20 +00:00
Simon Larsen
cb1fead139 feat: add overridedByUserId field to OnCallDutyPolicyExecutionLogTimeline and update related services 2025-03-14 13:53:58 +00:00
Simon Larsen
f466f453f4 feat: add migration for overridedByUserId field in OnCallDutyPolicyExecutionLogTimeline and update related service logging 2025-03-14 13:51:44 +00:00
Simon Larsen
4ad562d39a fix: correct markdown formatting in on-call policy notification message 2025-03-14 13:28:18 +00:00
Simon Larsen
960dc654cc feat: enhance incident feed with overridedByUser details and improve markdown formatting 2025-03-14 13:28:02 +00:00
Simon Larsen
dea4f07641 feat: add overridedByUser and overridedByUserId fields to OnCallDutyPolicyExecutionLogTimeline model and update UserNotificationRuleService to utilize these fields 2025-03-14 13:25:33 +00:00
Simon Larsen
c2851709b5 refactor: update titles for Twilio phone number fields to clarify primary and secondary distinctions 2025-03-14 13:15:35 +00:00
Simon Larsen
218e1a1fe3 refactor: clean up whitespace and formatting across multiple files 2025-03-14 13:10:47 +00:00
Simon Larsen
6ae61dfae5 feat: add overridedByUserId column and relation to UserOnCallLog model 2025-03-14 13:06:52 +00:00
Simon Larsen
5a68d91f31 feat: trim input phone number and allow Phone instance in constructor 2025-03-14 12:41:13 +00:00
Simon Larsen
ef8d3f6eeb feat: update Twilio phone number configuration to allow non-unique primary numbers and add secondary phone numbers 2025-03-14 12:40:03 +00:00
Simon Larsen
d645dc3f28 fix: correct country code extraction to use the proper substring length 2025-03-14 12:20:03 +00:00
Simon Larsen
a61f77d93f feat: enhance phone number selection logic for SMS and call services 2025-03-14 12:17:11 +00:00
Simon Larsen
8f057c11ed feat: update Twilio configuration to include primary and secondary phone numbers 2025-03-14 10:45:52 +00:00
Simon Larsen
c60ebfa962 Merge pull request #1850 from OneUptime/on-call-overrides
On call overrides
2025-03-13 23:53:20 +00:00
Simon Larsen
8e579cc459 refactor: improve code formatting and consistency in OnCallDutyPolicyUserOverrideService and related files 2025-03-13 23:52:08 +00:00
Simon Larsen
d9aa2da199 feat: replace generic error with BadDataException for start time validation in OnCallDutyPolicyUserOverrideService 2025-03-13 23:35:59 +00:00
Simon Larsen
edd64868fe feat: implement validation in OnCallDutyPolicyUserOverrideService for create operations 2025-03-13 23:32:25 +00:00
Simon Larsen
b3c13d9175 feat: remove name and description fields from OnCallDutyPolicyUserOverride model and update migration 2025-03-13 23:24:06 +00:00
Simon Larsen
bbd76f5b6c feat: add onBeforeCreate handler to set projectId and onCallDutyPolicyId in UserOverrideTable 2025-03-13 23:21:30 +00:00
Simon Larsen
7eb85c9601 feat: add form fields for user overrides in UserOverrideTable component 2025-03-13 23:18:07 +00:00
Simon Larsen
78059e1370 feat: update UserOverrideTable to differentiate between global and policy-specific overrides 2025-03-13 23:11:10 +00:00
Simon Larsen
e44097ce73 feat: integrate User Overrides service into BaseAPI and update SideMenu for navigation 2025-03-13 23:09:24 +00:00
Simon Larsen
dda5541088 feat: restructure UserOverride components for improved organization and functionality 2025-03-13 23:04:22 +00:00
Simon Larsen
9f5266037d refactor: clean up code formatting and improve readability in On-Call Duty components 2025-03-13 22:58:23 +00:00
Simon Larsen
850d8b242f feat: implement User Overrides feature with routing and UI components 2025-03-13 22:56:14 +00:00
Simon Larsen
4e2e1ddd9d feat: add ExecutionLogsTable component for managing On-Call Policy User Overrides 2025-03-13 22:45:39 +00:00
Simon Larsen
63ed6723b3 feat: add On-Call Duty Policy User Override migration and table schema 2025-03-13 22:24:14 +00:00
Simon Larsen
9d417c3634 feat: add On-Call Duty Policy User Override service and integrate into services index 2025-03-13 22:21:03 +00:00
Simon Larsen
6fa8390ab9 feat: implement On-Call Duty Policy User Override service and update permissions 2025-03-13 22:19:58 +00:00
Simon Larsen
5b287c12a5 feat: add new permissions for On-Call Duty Policy User Overrides 2025-03-13 22:15:08 +00:00
Simon Larsen
b2f10da32b feat: add Merch Store link to footer and navigation, and update README with store information 2025-03-13 19:30:05 +00:00
Simon Larsen
adcdf5c7a1 docs: update Docker Compose installation description for clarity 2025-03-13 15:26:14 +00:00
Simon Larsen
eada5c67c7 fix: correct file path in BlogAPI and BlogPost utility for static files 2025-03-13 15:21:48 +00:00
Simon Larsen
de919f3a44 refactor: standardize parameter syntax across AlertStateTimelineService, IncidentStateTimelineService, and ScheduledMaintenanceStateTimelineService 2025-03-12 22:53:42 +00:00
Simon Larsen
7f02675a38 feat: enhance default value handling in form components with improved getDefaultValue method 2025-03-12 22:50:03 +00:00
Simon Larsen
7cdb0e68a4 feat: update StateTimeline components to use 'startsAt' for sorting and default value handling 2025-03-12 22:39:44 +00:00
Simon Larsen
f38f9c4af9 refactor: standardize getDefaultValue method syntax across form components 2025-03-12 22:11:48 +00:00
Simon Larsen
9dfcb8babb feat: implement getDefaultValue method for form fields to enhance default value handling 2025-03-12 22:06:22 +00:00
Simon Larsen
5181417a69 refactor: enhance MonitorStatusTimelineService logic for status updates and deletions 2025-03-12 21:55:55 +00:00
Simon Larsen
807976fa67 feat: update MonitorStatusTimelineService to use 'startsAt' for deletion and sorting logic 2025-03-12 20:51:50 +00:00
Simon Larsen
a86391832e feat: add billing access control to WorkspaceNotificationRule model 2025-03-12 19:35:52 +00:00
Simon Larsen
f3daebb628 refactor: simplify Workspace Connections section in SideMenu components 2025-03-12 19:32:33 +00:00
Simon Larsen
0ed557036d fix: quote Slack app client ID in Helm chart template for proper formatting 2025-03-12 18:00:10 +00:00
Simon Larsen
7e4d634a6e fix: update description for "Starts At" field in timeline models for clarity 2025-03-12 16:32:36 +00:00
Simon Larsen
8e2bd01d53 feat: add "Starts At" field to StatusTimeline component with default value 2025-03-12 16:29:35 +00:00
Simon Larsen
87d0ce7e51 fix: update condition to display "Workspace Connections" section in SideMenu components 2025-03-12 15:53:29 +00:00
Simon Larsen
479201c100 refactor: clean up code formatting and improve readability in Slack and SideMenu components 2025-03-12 15:52:56 +00:00
Simon Larsen
2ea4653338 fix: update condition for displaying "Workspace Connections" section in side menus 2025-03-12 15:48:15 +00:00
Simon Larsen
3e230e96e8 feat: handle Slack app uninstall requests by deleting associated auth tokens 2025-03-12 15:45:09 +00:00
Simon Larsen
40c3108d40 feat: conditionally display "Workspace Connections" section based on project ID in side menus 2025-03-12 15:38:58 +00:00
Simon Larsen
d4702b887c fix: make scheduled maintenance title and labels optional in Slack actions 2025-03-12 15:33:05 +00:00
Simon Larsen
ded2d95ce5 fix: improve error handling for scheduled maintenance title in Slack actions 2025-03-12 15:08:13 +00:00
Simon Larsen
39c59f5625 feat: add "Workspace Connections" section to documentation with Slack integration details 2025-03-12 14:51:55 +00:00
Simon Larsen
fa576ae549 feat: add "On Call" section to documentation with phone number whitelist details 2025-03-12 14:45:17 +00:00
Simon Larsen
d5b0cf0b61 fix: update notifyUserId assignment in alert, incident, and scheduled maintenance services for consistency 2025-03-12 14:40:26 +00:00
Simon Larsen
fe5c165ce2 fix: refactor Slack incident and alert actions to use AccessTokenService for common interaction properties 2025-03-12 14:06:30 +00:00
Simon Larsen
7f44c7906a fix: add tenantId property to Slack alert, incident, and scheduled maintenance actions 2025-03-12 13:34:10 +00:00
Simon Larsen
0c5856de67 fix: add isRoot property to SlackIncidentActions for improved functionality 2025-03-12 13:23:23 +00:00
Simon Larsen
82c1cdb4f9 fix: update titles and add isRoot property in Slack alert and scheduled maintenance actions 2025-03-12 13:22:30 +00:00
Simon Larsen
cbf18e50ff fix: correct markdown formatting in ScheduledMaintenancePublicNoteService and ScheduledMaintenanceService 2025-03-12 13:13:20 +00:00
Simon Larsen
bd9126426c fix: correct formatting in AlertService and ScheduledMaintenanceService 2025-03-12 13:09:12 +00:00
Simon Larsen
7fc89e7500 refactor: improve code formatting and readability in Slack action files 2025-03-11 21:25:08 +00:00
Simon Larsen
ac2860de52 fix: adjust markdown formatting for alert and scheduled maintenance messages 2025-03-11 21:18:12 +00:00
Simon Larsen
d84c7c93a1 feat: add date handling for selected date time in Slack view processing 2025-03-11 21:15:15 +00:00
Simon Larsen
57a4b96eec fix: change datepicker to datetimepicker in Slack utility 2025-03-11 21:06:27 +00:00
Simon Larsen
690a33bd19 refactor: update labels and titles for scheduled maintenance to improve clarity 2025-03-11 21:05:39 +00:00
Simon Larsen
de5285800d fix: update usage hints for Slack commands to remove leading slashes 2025-03-11 20:57:27 +00:00
Simon Larsen
0feaf80fb0 feat: add start and end date time pickers for scheduled maintenance in Slack actions 2025-03-11 20:53:56 +00:00
Simon Larsen
3d9be4734c fix: correct formatting of 'Scheduled Maintenance' labels and error messages 2025-03-11 20:21:43 +00:00
Simon Larsen
8eab46f2d9 feat: add date time picker block support in Slack and Workspace utilities 2025-03-11 20:19:41 +00:00
Simon Larsen
517ab93aa5 refactor: improve code formatting and consistency across scheduled maintenance and notification services 2025-03-11 20:16:26 +00:00
Simon Larsen
cdd668dd0b feat: enhance notification messages with user details and scheduled maintenance references 2025-03-11 20:13:18 +00:00
Simon Larsen
da023071a4 refactor: improve code formatting and readability in scheduled maintenance services and Slack API 2025-03-11 19:12:14 +00:00
Simon Larsen
8918a94b3e feat: implement notification rule handling for scheduled maintenance owner teams and users 2025-03-11 19:08:33 +00:00
Simon Larsen
22ae2da8c5 feat: add start and end time display for scheduled maintenance notifications 2025-03-11 19:06:23 +00:00
Simon Larsen
fbb3cfb667 feat: implement scheduled maintenance notification handling for Slack and Microsoft Teams 2025-03-11 18:43:18 +00:00
Simon Larsen
8d21cb2924 feat: add handling for scheduled maintenance actions in Slack API 2025-03-11 18:20:10 +00:00
Simon Larsen
b4724992c0 feat: add scheduled maintenance message handling for Microsoft Teams and Slack 2025-03-11 18:19:13 +00:00
Simon Larsen
2e21763e3c feat: add methods for managing scheduled maintenance notes and states 2025-03-11 17:11:55 +00:00
Simon Larsen
a8abc66f9f refactor: clean up code formatting and remove unnecessary line breaks for consistency 2025-03-11 16:39:11 +00:00
Simon Larsen
9a2d5de087 feat: add logging for alert creation and user invitation checks in Slack 2025-03-11 16:34:17 +00:00
Simon Larsen
5b5d28e414 feat: add early return for empty notification rules in workspace notification service 2025-03-11 16:13:27 +00:00
Simon Larsen
773aafb0e5 feat: implement notification rules for alert owner teams and users 2025-03-11 16:11:50 +00:00
Simon Larsen
5b3fc5f16e feat: update notification rule title and description for clarity 2025-03-11 14:39:40 +00:00
Simon Larsen
9b4de2ea85 refactor: add missing commas in function parameters for consistency 2025-03-11 14:34:55 +00:00
Simon Larsen
c00725b868 feat: enhance alert notifications with alert numbers and state emojis 2025-03-11 14:32:46 +00:00
Simon Larsen
feb4b246c6 refactor: uncomment "Workspace Connections" section in side menus across multiple pages 2025-03-11 14:01:48 +00:00
Simon Larsen
22281b08cb refactor: clean up code formatting and improve consistency in action type definitions 2025-03-11 14:00:52 +00:00
Simon Larsen
b1dbdd6158 feat: implement alert creation messaging for Slack and Microsoft Teams 2025-03-10 22:54:01 +00:00
Simon Larsen
cbbf5a28f0 feat: add Microsoft Teams alert message creation with action buttons and types 2025-03-10 22:47:55 +00:00
Simon Larsen
1cb6cb8e0e feat: implement Slack alert message creation with action buttons 2025-03-10 22:41:34 +00:00
Simon Larsen
736bf46992 feat: add alert note functionality and enhance alert state service methods 2025-03-10 22:40:09 +00:00
Simon Larsen
0a6cc8df48 refactor: improve formatting and comments in SlackAPI for clarity 2025-03-10 22:20:35 +00:00
Simon Larsen
de77a8134c refactor: comment out Workspace Connections section in multiple SideMenu files 2025-03-10 22:18:00 +00:00
Simon Larsen
babcd30b67 feat: update Slack API to remove trailing slash from server URL and adjust manifest placeholder 2025-03-10 22:09:32 +00:00
Simon Larsen
55d8488b45 feat: update Slack app manifest to use dynamic server URL and remove example manifest 2025-03-10 22:07:33 +00:00
Simon Larsen
3ace9e2bf9 fix: update action IDs for incident message buttons to use view actions 2025-03-10 22:00:15 +00:00
Simon Larsen
ce80e6c487 feat: add error handling and logging for workspace rules in UserNotificationRuleService 2025-03-10 21:51:58 +00:00
Simon Larsen
54bd349a6e refactor: clean up code formatting and improve readability in multiple files 2025-03-10 21:23:34 +00:00
Simon Larsen
dd420ae898 feat: implement notification for users unable to join channels due to disconnected accounts in WorkspaceNotificationRuleService 2025-03-10 21:05:40 +00:00
Simon Larsen
a498f2df86 feat: add logging for channel IDs in message sending process in WorkspaceNotificationRuleService 2025-03-10 21:03:17 +00:00
Simon Larsen
babb2dc222 fix: correct typo in projectOrUserAuthTokenForWorkspace parameter in postToWorkspaceChannels method 2025-03-10 20:56:23 +00:00
Simon Larsen
c47bb1b2a1 feat: enhance logging for notification rules and channel creation in IncidentOwnerTeamService and WorkspaceNotificationRuleService 2025-03-10 20:34:08 +00:00
Simon Larsen
1fbc58a9a8 fix: simplify channel creation logic in WorkspaceNotificationRuleService 2025-03-10 20:00:46 +00:00
Simon Larsen
d6be47f711 fix: update FormField and Radio components to use 'value' prop and enhance null safety in NotificationRuleViewElement 2025-03-10 19:51:49 +00:00
Simon Larsen
7a9fc86c34 feat: enhance Slack API with user direct message channel check and improve error handling 2025-03-10 19:34:16 +00:00
Simon Larsen
4326a09e36 refactor: streamline alert service methods and improve code formatting 2025-03-10 18:46:00 +00:00
Simon Larsen
4a18759f8d feat: implement workspace notification rules for alert and incident channels 2025-03-10 18:43:23 +00:00
Simon Larsen
cb81343289 refactor: improve code readability by standardizing formatting and indentation in notification rule service and utility 2025-03-10 17:47:22 +00:00
Simon Larsen
680e784fc4 refactor: clean up code formatting and remove unnecessary whitespace in various files 2025-03-10 17:45:56 +00:00
Simon Larsen
ed767465cd refactor: update import statements for NotificationRuleWorkspaceChannel to use default import 2025-03-10 17:36:45 +00:00
Simon Larsen
fac2911864 fix: add debug logging for cases with no channels to invite based on notification rules 2025-03-10 11:44:14 +00:00
Simon Larsen
ee87266ad9 feat: implement notification rules for inviting teams and users to incident channels 2025-03-10 11:42:55 +00:00
Simon Larsen
f089e9d10b refactor: remove unused import of WorkspaceChannel from ScheduledMaintenance model 2025-03-10 11:19:03 +00:00
Simon Larsen
e03d5cb45c refactor: remove unused WorkspaceChannel imports from Alert, Incident, and IncidentWorkspaceMessages 2025-03-10 11:17:39 +00:00
Simon Larsen
bed21d9ce2 feat: introduce NotificationRuleWorkspaceChannel interface and update related services to use it 2025-03-10 11:14:17 +00:00
Simon Larsen
3e37024104 feat: update NotificationRuleConditionElement to render values in a span and simplify return structure 2025-03-10 11:03:41 +00:00
Simon Larsen
138ee1554e feat: normalize channel name by removing leading '#' and converting to lowercase 2025-03-10 11:03:26 +00:00
Simon Larsen
167e724ce0 feat: update NotificationRuleCondition to support array values and add 'Contains' condition type 2025-03-10 10:35:23 +00:00
Simon Larsen
be704b04ac feat: add debug logging for notification rule retrieval and matching process 2025-03-10 09:53:30 +00:00
Simon Larsen
fa055b13c6 feat: add optional property to monitor status block in SlackIncidentActions 2025-03-10 09:32:09 +00:00
Simon Larsen
920b51054e feat: add optional property to input blocks and update callback IDs in app manifest 2025-03-10 09:28:56 +00:00
Simon Larsen
712f64a369 fix: streamline response handling in SlackIncidentActions by removing redundant response calls 2025-03-08 12:15:35 +00:00
Simon Larsen
8977c7a5b2 refactor: update viewValues type to support array values in SlackAuthAction and SlackUtil 2025-03-08 12:11:01 +00:00
Simon Larsen
32383524ea refactor: clean up whitespace and improve code formatting in Slack-related files 2025-03-08 11:25:03 +00:00
Simon Larsen
27a7b57f3f feat: update incident modal to use text box for title and enhance response handling 2025-03-07 20:22:25 +00:00
Simon Larsen
b5e6ed087f feat: add multi-select option to dropdown block and new incident slash command 2025-03-07 15:07:51 +00:00
Simon Larsen
7e016b54f5 fix: add command check to payload validation in SlackAuthAction 2025-03-07 14:00:34 +00:00
Simon Larsen
74b744d92e refactor: remove unused command fields and enhance payload handling in SlackAuthAction 2025-03-07 13:58:04 +00:00
Simon Larsen
ca9dbbd65f feat: enhance Slack authorization to support additional payload fields and improve request handling 2025-03-07 13:52:59 +00:00
Simon Larsen
0de9f4bb89 feat: update Slack slash commands to create incidents and scheduled maintenance 2025-03-07 13:37:50 +00:00
Simon Larsen
1837f6b6f6 refactor: clean up code formatting and improve readability in Slack authorization and integration components 2025-03-07 13:23:58 +00:00
Simon Larsen
764c9b4e0e refactor: enhance Slack request authorization logic and add raw body middleware for form data 2025-03-07 13:22:56 +00:00
Simon Larsen
ffb17f01c6 fix: correct Slack integration condition to display documentation when client ID is absent 2025-03-06 13:55:35 +00:00
Simon Larsen
4be249ee9c refactor: update Slack integration documentation formatting and logic for display condition 2025-03-06 13:41:37 +00:00
Simon Larsen
8b929eb5ec feat: add Slack integration documentation component and update SlackIntegration to display it when not connected 2025-03-06 13:39:23 +00:00
Simon Larsen
ed345a1569 refactor: simplify incident creation flow by removing promise chaining for message blocks retrieval 2025-03-06 13:27:27 +00:00
Simon Larsen
bb2779f095 refactor: simplify incident creation logic by chaining promise for message blocks retrieval 2025-03-06 13:23:49 +00:00
Simon Larsen
c2741a9436 refactor: enhance markdown formatting for user links in on-call duty policy notifications 2025-03-06 13:20:55 +00:00
Simon Larsen
2b75c6bb6a refactor: streamline user retrieval and markdown formatting in incident and scheduled maintenance services 2025-03-06 13:12:17 +00:00
Simon Larsen
5209f4c8b1 refactor: improve formatting and readability of user markdown string in alert and incident services 2025-03-06 13:07:43 +00:00
Simon Larsen
77f19241ff feat: update user identification in alerts and incidents to use markdown format for better readability 2025-03-06 13:04:31 +00:00
Simon Larsen
fbbcee1633 fix: specify error type in loadPage catch block for improved type safety 2025-03-06 12:44:29 +00:00
Simon Larsen
f868737dda feat: add getUserLinkInDashboard method and integrate RemoveUserFromProject component in UserView 2025-03-06 12:41:34 +00:00
Simon Larsen
a4c50c0a76 feat: add RemoveUserFromProject component with confirmation modal and error handling 2025-03-06 12:24:46 +00:00
Simon Larsen
eb2981a0c2 feat: enhance UserView to load user details and display profile picture with error handling 2025-03-06 12:10:30 +00:00
Simon Larsen
40481981b0 refactor: clean up code formatting and remove unnecessary whitespace in various components 2025-03-05 22:12:12 +00:00
Simon Larsen
1fe8d00807 feat: add filter applied state to Users component and update no items message accordingly 2025-03-05 22:08:25 +00:00
Simon Larsen
4e8ee6aeec feat: add user invitation modal and update user list message in Teams component 2025-03-05 21:59:29 +00:00
Simon Larsen
068b44a668 fix: handle errors in ProjectUserService refresh calls and correct UserView descriptions 2025-03-05 21:42:31 +00:00
Simon Larsen
e284aae226 feat: add profile picture field to UserView and adjust user ID display 2025-03-05 21:35:32 +00:00
Simon Larsen
6272f55500 fix: update project ID retrieval in Team component and clear singular/plural names in UserView 2025-03-05 21:33:34 +00:00
Simon Larsen
af5f2db9ad feat: add singular and plural names for teams in UserView component 2025-03-05 21:30:45 +00:00
Simon Larsen
92f9b4c81f fix: clean up code formatting and improve readability in various files 2025-03-05 21:30:04 +00:00
Simon Larsen
0340e5d9fd feat: add migration for ProjectUser and related team associations 2025-03-05 21:16:48 +00:00
Simon Larsen
d295644812 feat: refactor Users settings page to use ModelTable for ProjectUser and enhance user listing 2025-03-05 21:14:51 +00:00
Simon Larsen
2a752213cf feat: add BaseAPI route for ProjectUser model and service 2025-03-05 20:45:09 +00:00
Simon Larsen
11c2bb0e42 feat: add ProjectUser model and refresh logic for project users in services and migrations 2025-03-05 20:43:32 +00:00
Simon Larsen
3cace9cf3a feat: enhance Teams page with pagination test data for user listings 2025-03-05 20:23:07 +00:00
Simon Larsen
8ccbc3be61 feat: add user settings and view routes, update side menu for users and teams 2025-03-05 19:36:07 +00:00
Simon Larsen
3f0e518024 fix: improve markdown formatting for incident notes and notifications 2025-03-05 15:55:46 +00:00
Simon Larsen
77c6391aee fix: correct spacing in incident state change message formatting 2025-03-05 13:13:56 +00:00
Simon Larsen
4ec707f571 feat: implement Teams page with user listing and team associations 2025-03-05 13:11:23 +00:00
Simon Larsen
baef15be23 feat: update incident state emojis and improve Slack message formatting 2025-03-05 12:34:39 +00:00
Simon Larsen
8e4cda6556 fix: standardize team mention formatting in alert and incident notifications 2025-03-04 23:00:32 +00:00
Simon Larsen
d131befbac feat: add logging for incident states and dropdown options in Slack actions 2025-03-04 22:58:36 +00:00
Simon Larsen
fea31e7251 fix: update incident creation message header level for better formatting 2025-03-04 22:40:32 +00:00
Simon Larsen
e50af261d4 feat: enhance incident notification messages with emojis for better visibility 2025-03-04 22:39:49 +00:00
Simon Larsen
4aa953b886 style: improve code formatting and consistency across incident-related files 2025-03-04 22:27:22 +00:00
Simon Larsen
a0bccc0bf4 fix: disable workspace notifications for incident-related messages and enhance feed info formatting 2025-03-04 22:19:38 +00:00
Simon Larsen
54aa8cf857 feat: add actions for changing incident state in Slack integration 2025-03-04 21:52:45 +00:00
Simon Larsen
b6a4bf29af fix: update placeholder text for Microsoft Teams integration to improve clarity 2025-03-04 21:47:25 +00:00
Simon Larsen
f9d54bcf23 refactor: improve code formatting and consistency in Microsoft Teams integration components 2025-03-04 21:24:34 +00:00
Simon Larsen
ee1bf5b39b feat: add Microsoft Teams integration page and update routing in user settings 2025-03-04 21:19:47 +00:00
Simon Larsen
79083b4a28 feat: add Microsoft Teams integration settings to the dashboard 2025-03-04 20:51:48 +00:00
Simon Larsen
a375990ad8 feat: add placeholder for Microsoft Teams integration settings page 2025-03-04 20:48:10 +00:00
Simon Larsen
915e48b62a refactor: improve code formatting and consistency across various components 2025-03-04 20:46:57 +00:00
Simon Larsen
44f0c09d61 feat: add Microsoft Teams workspace connection support in alerts and incidents 2025-03-04 20:44:19 +00:00
Simon Larsen
c7364ca2b8 refactor: clean up code formatting and remove unnecessary whitespace in various files 2025-03-04 20:26:45 +00:00
Simon Larsen
cdc0ffa204 feat: add Slack workspace connection to Scheduled Maintenance Events and update routing and breadcrumbs 2025-03-04 20:24:39 +00:00
Simon Larsen
194cfd0457 feat: add Slack workspace connection page and update routing and breadcrumbs 2025-03-04 20:20:55 +00:00
Simon Larsen
55470e0451 feat: add Slack workspace connection pages for alerts and scheduled maintenance notifications 2025-03-04 20:18:29 +00:00
Simon Larsen
cf4e2983b6 refactor: remove unnecessary early response in SlackIncidentActions 2025-03-04 20:15:23 +00:00
Simon Larsen
a72052bf90 feat: add Slack workspace connection page and integrate connection status handling 2025-03-04 18:00:32 +00:00
Simon Larsen
dc1a077f54 refactor: simplify markdown handling in IncidentFeedService and enhance null safety in SlackAuthAction 2025-03-04 17:30:10 +00:00
Simon Larsen
5e4526695a refactor: update button titles in Slack incident messages to include emojis for enhanced visibility 2025-03-04 17:18:57 +00:00
Simon Larsen
04dd043f7c refactor: update button titles in Slack incident messages to use emoji for better visibility 2025-03-04 17:17:45 +00:00
Simon Larsen
de023ef593 refactor: remove unused import for WorkspaceCheckboxBlock in Incident actions 2025-03-04 16:50:16 +00:00
Simon Larsen
6b03609bb2 refactor: update incident state handling and improve modal interaction 2025-03-04 16:47:37 +00:00
Simon Larsen
3ea08e1462 refactor: rename incident state action types for clarity and implement state change modal handling 2025-03-04 16:40:35 +00:00
Simon Larsen
6bd82af652 refactor: rename action types for clarity and update related methods in SlackIncidentActions 2025-03-04 16:33:43 +00:00
Simon Larsen
1f17a11ca0 refactor: improve clarity of feedInfoInMarkdown for owner team and user events 2025-03-04 16:15:03 +00:00
Simon Larsen
5c38ed72bb refactor: update feedInfoInMarkdown for owner team and user events to improve clarity 2025-03-04 16:14:07 +00:00
Simon Larsen
060b2dfbab refactor: enhance incident services with new note handling and user notification improvements 2025-03-04 16:10:48 +00:00
Simon Larsen
635c1ee8ad refactor: enhance user notification handling and add utility for fetching usernames from workspace 2025-03-04 14:28:14 +00:00
Simon Larsen
72bdb2bd7e refactor: improve code formatting by adding whitespace for visibility checks in notification services 2025-03-04 14:10:49 +00:00
Simon Larsen
a616f38b6f refactor: add visibility checks for notifications in various services to ensure only visible incidents and events are sent to subscribers 2025-03-04 12:35:00 +00:00
Simon Larsen
847296798d refactor: enhance logging for Slack API and IncidentService, improve code formatting and readability 2025-03-04 12:10:47 +00:00
Simon Larsen
0acee70580 refactor: enhance code formatting and readability in IncidentService.ts 2025-03-03 21:28:18 +00:00
Simon Larsen
57100bf5db refactor: improve import formatting for consistency in Workspace.ts 2025-03-03 21:21:08 +00:00
Simon Larsen
65b4ede27e refactor: improve code readability by adding whitespace and consistent formatting in IncidentFeedService and WorkspaceUtil 2025-03-03 21:14:43 +00:00
Simon Larsen
a080b09cdc refactor: add type annotations for better clarity and consistency in IncidentFeedService and WorkspaceUtil 2025-03-03 21:11:49 +00:00
Simon Larsen
f9674fc376 refactor: standardize formatting and clean up workspace notification objects across incident services 2025-03-03 21:08:59 +00:00
Simon Larsen
5410bea3d8 refactor: remove unused imports and clean up Slack action files 2025-03-03 20:58:31 +00:00
Simon Larsen
d5babfd42d feat: add workspace notification support across incident notification services 2025-03-03 20:51:50 +00:00
Simon Larsen
a97c4f5200 refactor: rename createAlertFeed and createIncidentFeed methods to createAlertFeedItem and createIncidentFeedItem for consistency 2025-03-03 19:53:33 +00:00
Simon Larsen
c5c09ef3f0 refactor: clean up whitespace and improve code formatting in Slack action files 2025-03-03 18:34:52 +00:00
Simon Larsen
9736a5ddea refactor: remove unused incidentId assignment and clean up modal configuration in Slack incident actions 2025-02-28 23:35:23 +00:00
Simon Larsen
fbddf4ef18 feat: streamline modal handling in Slack integration by generating modal JSON and removing unused properties 2025-02-28 23:28:49 +00:00
Simon Larsen
b4418c36e2 feat: add triggerId to Slack request and enhance modal handling for incident notes 2025-02-28 23:21:57 +00:00
Simon Larsen
d4dfa0a5ff refactor: clean up code formatting and remove unnecessary whitespace in various files 2025-02-28 22:56:13 +00:00
Simon Larsen
8139e48cff feat: enhance Slack incident notifications with emoji indicators for acknowledgment and resolution 2025-02-28 22:50:50 +00:00
Simon Larsen
6185d8f502 feat: implement incident resolution checks and enhance Slack notifications for resolved incidents 2025-02-28 22:49:33 +00:00
Simon Larsen
bf1ea21079 feat: add user visibility and direct messaging functionality in Slack integration 2025-02-28 22:33:42 +00:00
Simon Larsen
fda5d690e0 fix: add newline for better formatting in root cause message of Slack incident 2025-02-28 20:49:35 +00:00
Simon Larsen
f05a9cd292 Merge branch 'master' into workspace-slack 2025-02-28 20:43:32 +00:00
Simon Larsen
0dd5cb063b fix: remove unnecessary whitespace and improve code formatting in UserOnCallLogTimelineAPI 2025-02-28 20:31:49 +00:00
Simon Larsen
53f953a408 feat: enhance acknowledgment handling with detailed view message page 2025-02-28 20:29:56 +00:00
Simon Larsen
af64f200f8 fix: remove unnecessary text color class from acknowledgment button 2025-02-28 19:56:27 +00:00
Simon Larsen
7e253c5b1a refactor: clean up code formatting and improve readability in UserOnCallLogTimelineAPI 2025-02-28 19:55:06 +00:00
Simon Larsen
fc367b5d75 fix: update acknowledgment link styling and improve clarity in notification form 2025-02-28 13:34:58 +00:00
Simon Larsen
5349ac95fe docs: add clarification comments for acknowledgment page logic 2025-02-28 13:24:09 +00:00
Simon Larsen
4fce79f893 fix: update acknowledge route to acknowledge-page for clarity 2025-02-28 13:23:31 +00:00
Simon Larsen
d0333ca131 feat: add acknowledge page for user on-call notifications 2025-02-28 13:22:12 +00:00
Simon Larsen
7da4e7cca0 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-02-28 10:54:33 +00:00
Simon Larsen
27fc0d0548 refactor: format debug logging statements for improved readability 2025-02-28 10:54:30 +00:00
Simon Larsen
9ceb08c1f6 feat: enhance logging for status page subscription process 2025-02-28 10:47:25 +00:00
Simon Larsen
21a3163c65 feat: refactor Slack action handling to support multiple actions and improve payload structure 2025-02-28 10:29:08 +00:00
Simon Larsen
044aa8b5cd feat: add detailed logging for Slack request authorization and handle payload parsing 2025-02-27 17:30:18 +00:00
Simon Larsen
731bc0d018 refactor: comment out unused code and improve readability in SlackAuthorization middleware 2025-02-27 17:24:21 +00:00
Simon Larsen
4b3ce59255 feat: enhance Slack authorization middleware with detailed logging for request validation 2025-02-27 17:13:59 +00:00
Simon Larsen
e111bc4152 feat: add handling for view incident action and improve error response for invalid action types in SlackIncidentActions 2025-02-27 17:13:05 +00:00
Simon Larsen
5e641fa297 feat: add incident notification functionality for workspace creation in Slack 2025-02-27 17:06:50 +00:00
Simon Larsen
3c6a8ef4a1 refactor: improve code formatting and readability in WorkspaceNotificationRuleService and SlackIncidentActions 2025-02-27 16:41:37 +00:00
Simon Larsen
27cac6ccb5 feat: update Slack action types and enhance incident model with new workspace message handling 2025-02-27 16:38:05 +00:00
Simon Larsen
ac32509aeb Merge pull request #1842 from anxuanzi/master
Add status command to agent and cleanup code
2025-02-27 15:06:05 +00:00
Tony An
c77cb8cd19 ⬆️ Update dependencies and bump Go version
Updated various dependencies in `go.mod` and `go.sum` to their latest versions, including `golang.org/x/sys`, `github.com/go-co-op/gocron`, and more. Increased the Go version to 1.23.0 and added toolchain specification for Go 1.24.0. These updates improve compatibility, security, and maintainability.
2025-02-27 08:54:28 -06:00
Tony An
39c8acc720 🗑️ Refactor service structure for improved code clarity
Renamed the program struct to agentService and updated related methods and variables for consistency. This enhances readability and aligns naming conventions with the underlying functionality. Minor adjustments made to configuration handling and formatting for better maintainability.
2025-02-27 08:52:46 -06:00
Tony An
a4420a06c1 🗑️ Refactor error handling for configuration checks.
Removed redundant error checks and streamlined logic for verifying service configuration. This simplifies the code and avoids duplicate error handling, improving maintainability.
2025-02-27 08:48:11 -06:00
Tony An
6ba0768366 Add status command to check service state
Introduced a new `status` command to display the service state (running, stopped, or unknown). Improved user feedback by logging the status and handling potential errors during the status check.
2025-02-27 08:47:17 -06:00
Simon Larsen
d4a6ec94e3 feat: add incident acknowledgment and resolution functionality in SlackAPI and IncidentService 2025-02-26 22:42:51 +00:00
Simon Larsen
882c19a169 feat: implement Slack action types and update incident service to use them 2025-02-26 22:34:22 +00:00
Simon Larsen
1e198f3637 feat: add workspaceSendMessageResponse field to Incident model and related migrations 2025-02-26 20:38:25 +00:00
Simon Larsen
01624646f2 refactor: uncomment workspace connections sections in side menus 2025-02-26 16:29:14 +00:00
Simon Larsen
b74d8b79e1 refactor: comment out workspace connections sections in side menus 2025-02-26 16:28:24 +00:00
Simon Larsen
566b4cfdde feat: add JSON input argument for manual workflow execution 2025-02-26 15:07:46 +00:00
Simon Larsen
e9cb8e1604 feat: add support for manual workflow execution arguments in various components 2025-02-26 15:06:45 +00:00
Simon Larsen
cf7c39d96c feat: improve error handling in manually run workflow API by adding try-catch block 2025-02-26 13:16:23 +00:00
Simon Larsen
4738f8f930 feat: enhance error handling in workflow execution by introducing HTTP response type checks 2025-02-26 13:16:05 +00:00
Simon Larsen
390a4cbbf0 feat: implement channel joining functionality and enhance channel name retrieval in Slack utility methods 2025-02-25 22:20:55 +00:00
Simon Larsen
4bbbb9b473 feat: enhance Slack integration with new user invitation methods and bot user ID retrieval 2025-02-25 19:49:44 +00:00
Simon Larsen
482c7c142e feat: expand bot permissions in Slack app manifest for enhanced functionality 2025-02-25 18:56:59 +00:00
Simon Larsen
9d581fc176 feat: update Slack app manifest to refine user and bot scopes 2025-02-25 17:07:19 +00:00
Simon Larsen
d680d09dc6 feat: add response validation and error logging in Slack utility methods 2025-02-25 16:33:24 +00:00
Simon Larsen
1ab55e1c19 refactor: streamline API request headers in Slack utility methods for improved readability 2025-02-25 16:30:42 +00:00
Simon Larsen
427514ceb3 feat: add detailed debug logging to Slack utility methods for improved traceability 2025-02-25 16:21:26 +00:00
Simon Larsen
e443288074 refactor: format debug logging statements in WorkspaceNotificationRuleService for consistency 2025-02-25 16:08:53 +00:00
Simon Larsen
d14686a288 feat: enhance logging in WorkspaceNotificationRuleService for better traceability 2025-02-25 16:00:37 +00:00
Simon Larsen
f1b08dab84 feat: add detailed logging to WorkspaceNotificationRuleService methods 2025-02-25 15:24:32 +00:00
Simon Larsen
74a73411ed feat: add workspaceType to the service model properties in WorkspaceProjectAuthTokenService 2025-02-25 15:19:32 +00:00
Simon Larsen
ab76ecd04f fix: uncomment and restore workspace notification logic in IncidentService 2025-02-25 14:59:38 +00:00
Simon Larsen
5816be7041 feat: add placeholder and conditional display logic for new channel creation in NotificationRuleViewElement 2025-02-25 14:49:32 +00:00
Simon Larsen
300bbbc326 fix: uncomment Workspace Connections section in SideMenu components 2025-02-25 13:20:57 +00:00
Simon Larsen
9c76bd283d fix: correct spelling of 'oneuptime' in various files 2025-02-25 13:10:04 +00:00
Simon Larsen
cb263de054 fix: initialize cardbuttons array with props.cardButtons if available 2025-02-25 12:25:01 +00:00
Simon Larsen
06f3ba40dc refactor: clean up code formatting in OnCallPolicyExecutionLogs components 2025-02-24 21:32:15 +00:00
Simon Larsen
f5febd029a fix: update incidentId to alertId in OnCallPolicyExecutionLogs component 2025-02-24 21:28:36 +00:00
Simon Larsen
09fde3a29b feat: add On Call Policy Execution Logs pages and update breadcrumbs and routes 2025-02-24 21:26:28 +00:00
Simon Larsen
e628968b97 feat: add triggeredByUserId to OnCallDutyPolicyExecutionLog and update related services and migrations 2025-02-24 21:18:03 +00:00
Simon Larsen
12b31ca237 feat: add on-call policy execution modal to Alert and Incident feeds 2025-02-24 21:15:58 +00:00
Simon Larsen
f2de1695f5 feat: add triggeredByUserId to OnCallDutyPolicyExecutionLog and create permission for log creation 2025-02-24 20:54:04 +00:00
Simon Larsen
ef8c36d176 fix: improve string concatenation for log messages in workflow services 2025-02-24 18:49:39 +00:00
Simon Larsen
2ea10bfbdd feat: enhance date formatting options to include seconds in logs 2025-02-24 18:45:46 +00:00
Simon Larsen
4dcd691ef7 fix: add missing semicolons in WebhookTrigger class methods 2025-02-24 18:33:53 +00:00
Simon Larsen
61ff89af8f fix: add error handling to webhook trigger routes 2025-02-24 18:33:24 +00:00
Simon Larsen
35b3dbfd8b refactor: clean up code formatting and improve readability in StatusPageAPI, MasterPage, and NavBar components 2025-02-24 18:07:19 +00:00
Simon Larsen
9174a04795 feat: implement conditional fetching for incidents, announcements, and scheduled maintenance events based on status page settings 2025-02-24 18:06:13 +00:00
Simon Larsen
4a80b1c8fd feat: add showIncidentsOnStatusPage, showAnnouncementsOnStatusPage, and showScheduledMaintenanceEventsOnStatusPage props to StatusPage components 2025-02-24 18:00:17 +00:00
Simon Larsen
95c2bee9a9 feat: add toggle fields for showIncidentsOnStatusPage, showAnnouncementsOnStatusPage, and showScheduledMaintenanceEventsOnStatusPage in StatusPage settings 2025-02-24 17:51:13 +00:00
Simon Larsen
3d0f0a62fe feat: add showIncidentsOnStatusPage, showAnnouncementsOnStatusPage, and showScheduledMaintenanceEventsOnStatusPage fields to StatusPage model 2025-02-24 17:48:23 +00:00
Simon Larsen
b23af6c6a9 feat: add validation for startDate and endDate in uptime API and implement worst status calculation 2025-02-24 17:42:02 +00:00
Simon Larsen
434305acc9 feat: enhance uptime API to support startDate and endDate parameters and update response structure 2025-02-24 17:13:55 +00:00
Simon Larsen
a225314c65 refactor: update getMonitorStatusTimelineForStatusPage to use startDate and endDate parameters 2025-02-24 16:18:50 +00:00
Simon Larsen
a8e20574c7 Merge branch 'sp-api' 2025-02-22 17:26:22 +00:00
Simon Larsen
c667fddc64 chore: update Node.js base image to version 23.8 in Dockerfile templates 2025-02-21 22:38:02 +00:00
Simon Larsen
c2ce1ea140 feat: add server monitor ingest hostname and port to Helm chart configuration 2025-02-21 21:35:49 +00:00
Simon Larsen
8b1680fab5 fix: rename package from probe-ingest to server-monitor-ingest in package.json 2025-02-21 20:31:06 +00:00
Simon Larsen
fe64380384 feat: add server monitor ingest service with Docker and configuration updates 2025-02-21 20:23:27 +00:00
Simon Larsen
449a1db573 feat: add visibility flag for status page in StatusPageAPI 2025-02-21 19:34:33 +00:00
Simon Larsen
e4c05c09f0 refactor: clean up code formatting and improve readability in Incident and ScheduledMaintenance models 2025-02-21 19:29:04 +00:00
Simon Larsen
d4107e049f feat: add settings page for scheduled maintenance events with visibility control 2025-02-21 19:28:10 +00:00
Simon Larsen
3811f9648c feat: add settings page for incident management and visibility control 2025-02-21 19:14:05 +00:00
Simon Larsen
f4415dafc7 feat: add TLS configuration to MailService for handling unauthorized certificates 2025-02-20 19:20:01 +00:00
Simon Larsen
30940991e0 feat: add endpoint to calculate uptime percentage for status page resources 2025-02-20 19:07:45 +00:00
Simon Larsen
a6d3047007 refactor: comment out workspace connections sections in side menus 2025-02-20 14:05:40 +00:00
Simon Larsen
2ae0d139ea refactor: simplify WorkflowTimeoutInMs declaration in EnvironmentConfig 2025-02-20 14:02:49 +00:00
Simon Larsen
1507583cf3 feat: add workflow timeout configuration and update related files 2025-02-20 14:00:28 +00:00
Simon Larsen
310e1b764c fix: log complete request body instead of just code in VM sandbox execution 2025-02-20 13:51:40 +00:00
Simon Larsen
1d7a25f2bb refactor: clean up code formatting and remove unnecessary whitespace in various files 2025-02-14 21:46:02 +00:00
Simon Larsen
3bc89a8cae feat: add migration to update postUpdatesToWorkspaceChannels column type to JSONB in Incident, Alert, and ScheduledMaintenance tables 2025-02-14 21:43:06 +00:00
Simon Larsen
ff54b5a26c feat: add notification event type support in WorkspaceNotificationRuleService and update NotificationRuleForm validation 2025-02-14 21:41:46 +00:00
Simon Larsen
07b9f38e90 feat: enhance Notification Rule form to support new channel template name and improve validation messages for existing channels 2025-02-14 19:45:40 +00:00
Simon Larsen
f612940668 feat: update Alert, Incident, and ScheduledMaintenance models to support multiple workspace channels and change column types to JSON 2025-02-14 18:35:44 +00:00
Simon Larsen
6046bda443 feat: update WorkspaceNotificationRuleService to return created channels and enhance WorkspaceChannel interface 2025-02-14 17:53:40 +00:00
Simon Larsen
cd97a72ef2 refactor: clean up whitespace and improve formatting in workspace utility classes 2025-02-14 17:51:05 +00:00
Simon Larsen
c20fbcc7a4 fix: correct spelling errors in comments and update variable names for clarity 2025-02-14 17:27:27 +00:00
Simon Larsen
f22e410860 feat: implement MicrosoftTeams workspace utility and enhance notification rule interfaces 2025-02-14 16:28:02 +00:00
Simon Larsen
3059ca848e refactor: reorganize Slack utility imports and introduce CreateChannelNotificationRule interface 2025-02-14 15:50:20 +00:00
Simon Larsen
ce8b8c3b58 refactor: update import path for IncidentNotificationRule to improve module organization 2025-02-14 13:13:29 +00:00
Simon Larsen
78846a3f95 refactor: improve code formatting and add documentation for non-HTTP methods in API reference 2025-02-14 13:12:44 +00:00
Simon Larsen
994f329a49 fix: update example API request URLs to use dynamic ID placeholders 2025-02-14 13:00:44 +00:00
Simon Larsen
d621df58cd refactor: remove obsolete migration file and clean up Slack utility code 2025-02-14 12:48:26 +00:00
Simon Larsen
0e0ccd9651 refactor: update method visibility and improve naming consistency in notification rule conditions 2025-02-14 12:36:54 +00:00
Simon Larsen
cc0adea216 refactor: remove unnecessary blank line in BaseAPI 2025-02-14 12:30:08 +00:00
Simon Larsen
8ec0825a52 feat: add update and delete item routes to BaseAPI and improve monitor ID handling in WorkspaceNotificationRuleService 2025-02-14 12:26:47 +00:00
Simon Larsen
4d083f9663 feat: refactor notification rule service to support new notification rule types and improve channel handling 2025-02-14 12:16:02 +00:00
Simon Larsen
81b3795b1c feat: update migration and interfaces to rename Slack channel references to Workspace channel for consistency 2025-02-14 09:58:10 +00:00
Simon Larsen
74cf9ae184 feat: rename Slack channel references to Workspace channel for consistency across models 2025-02-12 17:58:29 +00:00
Simon Larsen
9ba4c0bfdd feat: implement validation for notification rule form inputs to enhance user experience 2025-02-12 17:49:07 +00:00
Simon Larsen
85e83c6822 feat: rename inviteOwnersToNewChannel to shouldInviteOwnersToNewChannel for clarity and update NotificationRuleForm to include new toggle option 2025-02-12 17:33:05 +00:00
Simon Larsen
65eedde511 feat: reintroduce AlertNotificationRule interface and update NotificationRuleForm to support new channel creation and user invitations 2025-02-12 17:29:46 +00:00
Simon Larsen
7d45056ae4 feat: update notification rule form to support dynamic workspace type for channel creation and user invitations 2025-02-12 17:16:52 +00:00
Simon Larsen
f2db382087 feat: introduce new notification rule types for monitor status, alerts, and scheduled maintenance with updated logic for channel management 2025-02-12 17:14:18 +00:00
Simon Larsen
3e99783119 feat: add migration to rename Slack channel ID columns to channel name for improved clarity 2025-02-12 15:36:20 +00:00
Simon Larsen
de6bbbee8c feat: rename Slack channel ID references to channel name and update related logic for improved clarity 2025-02-12 15:35:17 +00:00
Simon Larsen
0309c2d7e8 feat: enhance Slack notification rule handling by adding channel creation logic and user invitation functionality 2025-02-12 14:23:33 +00:00
Simon Larsen
1c9bb0605b feat: update notification rule conditions and enhance incident service methods for improved clarity and functionality 2025-02-12 13:58:03 +00:00
Simon Larsen
b8b98be7a0 feat: rename WorkspacePayloadBlock to WorkspaceMessageBlock and update related methods in WorkspaceNotificationRuleService 2025-02-11 19:20:53 +00:00
Simon Larsen
6c037b0996 feat: rename WorkspaceNotificationPayload to WorkspaceMessagePayload and update related services 2025-02-11 17:49:29 +00:00
Simon Larsen
326b60c260 feat: enhance Slack notification payload structure and improve incident service methods 2025-02-11 17:17:03 +00:00
Simon Larsen
e13ab0b214 feat: implement getWorkspacePayloadForIncidentCreate method and enhance Slack notification payload structure 2025-02-11 16:25:16 +00:00
Simon Larsen
01f8a27dd2 feat: add postUpdatesToSlackChannelId field to Alert, Incident, and ScheduledMaintenance models for Slack integration 2025-02-11 15:51:52 +00:00
Simon Larsen
081029b49a feat: add postUpdatesToSlackChannelId field to Alert, Incident, and ScheduledMaintenance models for Slack integration 2025-02-11 13:57:33 +00:00
Simon Larsen
32d55fdc46 refactor: improve code formatting and enhance readability in various service and utility files 2025-02-11 13:53:21 +00:00
Simon Larsen
69aa680dd1 feat: update user creation to optionally include full name and enhance Slack notification methods 2025-02-11 13:43:37 +00:00
Simon Larsen
117c02d457 refactor: comment out Workspace Connections section in SideMenu components 2025-02-11 10:17:43 +00:00
Simon Larsen
f74fcb3734 refactor: clean up whitespace and improve code formatting in various components 2025-02-10 21:20:43 +00:00
Simon Larsen
676d6598d7 feat: enhance error handling and messaging in MonitorCriteriaInstance and related components 2025-02-10 21:15:38 +00:00
Simon Larsen
af1edfef99 fix: correct validation error check in MonitorStep and tidy up CriteriaFilters component 2025-02-10 20:50:02 +00:00
Simon Larsen
56cadf01fd feat: implement hasValueField utility method for CriteriaFilter validation 2025-02-10 20:35:22 +00:00
Simon Larsen
6a0ef8d940 refactor: improve code formatting and structure in migration files and notification rule validation logic 2025-02-10 20:21:43 +00:00
Simon Larsen
1e01942218 feat: implement validation logic for Slack notification rules in NotificationRuleConditionUtil 2025-02-10 20:16:59 +00:00
Simon Larsen
5dab4f8042 feat: add scheduledMaintenanceNumber column to ScheduledMaintenance table and create corresponding index 2025-02-10 19:54:52 +00:00
Simon Larsen
3e4a50d430 refactor: clean up code by removing unnecessary blank lines in Alert and ScheduledMaintenance models, migration files, and services 2025-02-10 18:54:54 +00:00
Simon Larsen
96d236b034 feat: add scheduledMaintenanceNumber to ScheduledMaintenance model and implement related logic in service and UI components 2025-02-10 18:50:52 +00:00
Simon Larsen
ade5e69aa0 feat: add alertNumber column to Alert table and create corresponding index 2025-02-10 18:06:55 +00:00
Simon Larsen
4733c710b2 feat: add alertNumber field to Alert model and implement related logic in AlertService and UI components 2025-02-10 18:02:54 +00:00
Simon Larsen
1c8922249e feat: add WorkspaceNotificationPayload interface and update notifyWorkspace method to accept new payload structure 2025-02-10 17:55:50 +00:00
Simon Larsen
73c787836f feat: introduce WorkspaceType and NotificationRuleEventType enums; implement SlackNotificationRule interface and related services 2025-02-10 17:43:49 +00:00
Simon Larsen
ec6f3d84d7 refactor: rename ServiceProviderType to WorkspaceType and update related components for consistency 2025-02-10 17:40:07 +00:00
Simon Larsen
1f2df5f3ee refactor: rename initialValue prop to value in notification rule components for consistency 2025-02-10 14:47:33 +00:00
Simon Larsen
121a78ea8d refactor: improve code formatting and readability in form components 2025-02-10 14:42:34 +00:00
Simon Larsen
832ab4ab24 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-02-10 14:25:33 +00:00
Simon Larsen
445f3906ee feat: improve notification rule forms and conditions; enhance filter handling and UI elements 2025-02-10 14:25:30 +00:00
Simon Larsen
c869acc0e5 Merge pull request #1831 from diabolocom/nginx_ipv6
Feature: Nginx: Allow to specify listen options
2025-02-10 13:59:24 +00:00
Simon Larsen
0d2b2a272b feat: enhance notification rule conditions and form fields with additional labels and descriptions 2025-02-10 13:18:37 +00:00
Simon Larsen
d8ac1c39b7 feat: add option to show horizontal rule in form fields 2025-02-10 13:03:21 +00:00
Simon Larsen
e31dbe935c feat: enhance Slack integration and notification rule forms with additional descriptions and conditions 2025-02-10 12:59:00 +00:00
Jules Lefebvre
35e46cebfc feat(helm): add nginx listen config values
Add the posibility to define `NGINX_LISTEN_ADDRESS` and `NGINX_LISTEN_OPTIONS` via the `nginx.listenAddress` and `nginx.listenOptions` to allow to listen on all single and dual stack
2025-02-10 13:58:28 +01:00
Jules Lefebvre
891861f396 feat(docker-compose): add nginx listen enviroment variables
Add the posibility to define `NGINX_LISTEN_ADDRESS` and `NGINX_LISTEN_OPTIONS` to allow to listen on all single and dual stack
2025-02-10 13:57:36 +01:00
Jules Lefebvre
fbc38230b8 feat(nginx): allow to specify listen options 2025-02-10 13:44:35 +01:00
Simon Larsen
61561f9745 fix: add missing comma in schema migrations index for consistency 2025-02-10 12:25:09 +00:00
Simon Larsen
13e5f57160 feat: add migration for ServiceProviderUserAuthToken table and update index; log project creation for user 2025-02-10 11:43:03 +00:00
Simon Larsen
7600085473 feat: add migration for ServiceProviderUserAuthToken, ServiceProviderProjectAuthToken, ServiceProviderSetting, and ServiceProviderNotificationRule tables 2025-02-10 11:29:53 +00:00
Simon Larsen
99641d6994 refactor: remove obsolete migration files and clean up schema migrations index 2025-02-10 11:25:27 +00:00
Simon Larsen
dea66cc8d8 refactor: improve formatting of radioButtonOptions mapping in FormField component 2025-02-07 20:02:25 +00:00
Simon Larsen
1dd43a69a0 refactor: clean up formatting and improve readability in various components 2025-02-07 19:43:09 +00:00
Simon Larsen
e539cb7ae3 feat: add onBeforeCreate handler to ServiceProviderNotificationRulesTable for event type and project ID assignment 2025-02-07 19:33:50 +00:00
Simon Larsen
5269f7a164 feat: replace RadioButton with OptionChooserButton in form field schema and update related components 2025-02-07 19:29:02 +00:00
Simon Larsen
8e1d6b420f feat: enhance SlackIntegration component with connection handlers and improve notification rule naming 2025-02-07 19:10:30 +00:00
Simon Larsen
311f7dbb5b refactor: rename connection state variables for clarity in SlackIntegration component 2025-02-07 18:51:54 +00:00
Simon Larsen
9ac64b5873 feat: add color selection to ServiceProviderNotificationRulesTable and update SlackIntegration component props 2025-02-07 18:45:56 +00:00
Simon Larsen
e54126e6bf refactor: clean up permission definitions and formatting in ServiceProvider models 2025-02-07 18:36:56 +00:00
Simon Larsen
a4acc59505 fix: remove unnecessary permissions from ServiceProviderNotificationRule update access control 2025-02-07 18:31:35 +00:00
Simon Larsen
854bc297a6 feat: add permissions for Service Provider Notification Rules and update access control in ServiceProviderProjectAuthToken 2025-02-07 18:29:34 +00:00
Simon Larsen
69bfb48573 refactor: rename Settings component to SlackIntegrationPage for clarity 2025-02-07 18:18:20 +00:00
Simon Larsen
9ef7f720b1 refactor: improve code formatting and readability in ServiceProviderNotificationRulesTable and SlackIntegration components 2025-02-07 18:14:42 +00:00
Simon Larsen
2155dcad65 fix: correct spelling of NotificationRuleForm and NotificationRuleViewElement components; remove unused ServiceProviderNotificationRules component 2025-02-07 18:10:58 +00:00
Simon Larsen
fb4da29ade fix: correct URL formatting for social media and blog links in BlogPostUtil 2025-02-07 14:04:14 +00:00
Simon Larsen
d146d33059 Merge branch 'master' of github.com:OneUptime/oneuptime 2025-02-07 11:03:51 +00:00
Simon Larsen
978ac9155f refactor: update event type cases in NotificationRuleConditionUtil for consistency 2025-02-07 11:03:34 +00:00
Simon Larsen
cf9b4f0eba refactor: simplify value extraction in NotificationRuleConditionElement 2025-02-07 11:01:58 +00:00
Simon Larsen
d26a2aa995 refactor: update type annotations for selected alert and incident conditions in NotificationRuleConditionElement 2025-02-07 10:56:15 +00:00
Simon Larsen
c8301e21eb feat: update NotificationRule components to include event type in titles and descriptions 2025-02-07 10:53:25 +00:00
Simon Larsen
1a24232a1c refactor: improve code formatting and readability in AlertSeverityElement, IncidentStateElement, and NotificationRuleForm components 2025-02-07 10:42:06 +00:00
Simon Larsen
69c94835fe Merge pull request #1830 from OneUptime/slack-app
Slack app
2025-02-07 10:26:00 +00:00
Simon Larsen
706a9145ac feat: add NotificationRuleConditions and NotificationRuleForm components for enhanced notification rule management 2025-02-06 19:57:05 +00:00
Simon Larsen
9bde6194a5 feat: add NotificationRuleConditionElement and related components for alert and incident states 2025-02-06 19:29:55 +00:00
Simon Larsen
3dd8c62bc4 feat: enhance SlackNotificationRule and NotificationRuleForm with new fields and conditions 2025-02-06 18:47:12 +00:00
Simon Larsen
895a434d0e refactor: clean up code formatting and improve readability in various files 2025-02-06 17:49:01 +00:00
Simon Larsen
d3ec3a60df feat: implement NotificationRuleForm component and utility functions for condition checks 2025-02-06 14:25:39 +00:00
Simon Larsen
df15a2dcae feat: add name and description fields to ServiceProviderNotificationRule model and update migration 2025-02-06 12:18:04 +00:00
Simon Larsen
5e4b24dcfb feat: refactor notification rule models to use BaseNotificationRule and update filter conditions 2025-02-06 11:14:52 +00:00
Simon Larsen
0eae73c4e5 feat: add ServiceProviderNotificationRule model and service with migration 2025-02-06 11:03:43 +00:00
Simon Larsen
deb3f81e5d Merge pull request #1817 from OneUptime/slack-app
Slack App
2025-02-05 19:22:02 +00:00
Simon Larsen
dcb3fe6f69 feat: add ServiceProviderSetting model and service with CRUD operations 2025-02-05 17:33:45 +00:00
Simon Larsen
4bbecb3013 feat: refactor ServiceProviderProjectAuthToken and ServiceProviderSetting models, add deletedByUserId field 2025-02-05 16:25:13 +00:00
Simon Larsen
52954f3702 feat: add migration for ServiceProviderUserAuthToken and ServiceProviderProjectAuthToken tables 2025-02-05 16:17:37 +00:00
Simon Larsen
12a7fff668 refactor: update ServiceProviderUserAuthToken to use ServiceProviderType enum 2025-02-05 16:12:14 +00:00
Simon Larsen
14e489a719 feat: implement ServiceProviderType enum and refactor auth token services for Slack and Microsoft Teams 2025-02-05 16:09:50 +00:00
Simon Larsen
83f2935f41 fix: update Slack integration page URL to reflect new settings path 2025-02-05 16:00:49 +00:00
Simon Larsen
28855d482e 2025-02-05 15:56:15 +00:00
Simon Larsen
7c11ebdacf refactor: rename "Workspace Integrations" to "Workspace Connections" in SideMenu 2025-02-05 14:10:17 +00:00
Simon Larsen
592c806465 feat: add user and project auth token services to BaseAPI routing 2025-02-05 14:09:36 +00:00
Simon Larsen
7a3d0266c4 chore: update SlackAPI comments to use sample access tokens for clarity 2025-02-05 14:00:17 +00:00
Simon Larsen
e9b7368cf1 refactor: clean up code by removing unnecessary whitespace and improving formatting 2025-02-05 13:58:27 +00:00
Simon Larsen
f8c0004f85 feat: add Slack integration section to settings menu and routing 2025-02-05 13:45:26 +00:00
Simon Larsen
b007cb8bbd feat: implement Slack integration settings page and enhance auth token services for user and project 2025-02-05 13:43:22 +00:00
Simon Larsen
541015766c feat: rename service type to service provider type and add new fields for user and project IDs in service provider 2025-02-05 11:55:17 +00:00
Simon Larsen
5310087287 feat: update Slack app manifest by refining user and bot scopes and adding a temporary manifest file 2025-02-04 19:33:32 +00:00
Simon Larsen
7649c6c566 feat: update Slack integration authorization URL and add app manifest for enhanced functionality 2025-02-04 19:23:09 +00:00
Simon Larsen
1b2650f6df feat: expand Slack app manifest scopes for enhanced functionality 2025-02-04 19:14:02 +00:00
Simon Larsen
de3586d60e feat: update Slack integration error handling and redirect logic in user settings 2025-02-04 19:08:17 +00:00
Simon Larsen
a0ca579c2f feat: enhance Slack integration error handling and redirect logic in user settings 2025-02-04 19:04:39 +00:00
Simon Larsen
9bc7a115a1 feat: implement Slack app manifest retrieval and enhance scope validation in user settings 2025-02-04 18:51:26 +00:00
Simon Larsen
aef7af0a9a feat: refactor Slack utility imports and add new Slack utility class 2025-02-04 18:35:34 +00:00
Simon Larsen
e9f2e46e16 feat: add endpoint to retrieve Slack app manifest 2025-02-04 18:17:44 +00:00
Simon Larsen
56fd18f7c9 feat: update Slack API with improved error handling and new command shortcuts 2025-02-04 18:16:30 +00:00
Simon Larsen
ecccd8b536 feat: enhance Slack authentication flow with projectId and userId validation 2025-02-04 18:09:35 +00:00
Simon Larsen
dd2f0f37f2 fix: simplify signature validation logic in SlackAuthorization middleware 2025-02-04 18:00:32 +00:00
Simon Larsen
600a5eafe3 fix: update SlackAuthorization middleware to use req.body instead of req.rawBody 2025-02-04 17:54:53 +00:00
Simon Larsen
9b07bf7a08 feat: implement Slack API integration with authorization and event handling 2025-02-04 17:53:59 +00:00
Simon Larsen
d341f6c2b0 feat: enhance Slack integration with error handling and documentation 2025-02-04 15:33:24 +00:00
Simon Larsen
06a030f518 feat: add Slack app client credentials to Helm chart configuration 2025-02-04 14:34:42 +00:00
Simon Larsen
b02fed6e5b feat: add Slack App configuration to environment and UI settings 2025-02-04 14:33:48 +00:00
Simon Larsen
310884bd73 feat: implement Slack OAuth redirection in SlackIntegration component 2025-02-04 14:22:19 +00:00
Simon Larsen
0c625d52c2 feat: update Slack icon SVG paths for improved rendering 2025-02-04 14:11:54 +00:00
Simon Larsen
82ab70f396 refactor: clean up whitespace and formatting in UserSettingsBreadcrumbs and UserSettingsRoutes 2025-02-04 14:08:15 +00:00
Simon Larsen
24d9c9dbc0 feat: add Slack integration to user settings with routing and breadcrumbs 2025-02-04 14:04:49 +00:00
Simon Larsen
d9f1dc9fd2 feat: add UserAuthToken and ProjectAuthToken services and migrations 2025-02-04 13:44:51 +00:00
Simon Larsen
4b503471bd feat: implement Slack status API and initialize routing 2025-02-04 12:40:05 +00:00
Simon Larsen
b523434be3 feat: add Slack app manifest for OneUptime integration 2025-02-04 11:43:22 +00:00
Simon Larsen
f32b1950d9 fix: add return type to sendSubscriptionChangeWebhookSlackNotification method in ProjectService 2025-02-03 18:42:08 +00:00
Simon Larsen
e1c45a5c99 refactor: update property name from 'id' to '_id' and improve Slack message formatting in ProjectService 2025-02-03 18:41:20 +00:00
Simon Larsen
195655b4df refactor: improve code formatting and readability in ProjectService 2025-02-03 18:23:59 +00:00
Simon Larsen
9d7d65f0ef feat: add Slack notification for subscription plan changes in ProjectService 2025-02-03 18:05:08 +00:00
Simon Larsen
985b5410f6 refactor: clean up formatting and improve code readability in environment config and project service 2025-02-03 17:54:41 +00:00
Simon Larsen
d1dd57deec feat: add Slack webhook notifications for user creation, project management, and subscription updates 2025-02-03 17:50:34 +00:00
Simon Larsen
2ec6902537 refactor: improve async handling in BlogPost utility methods 2025-02-03 17:26:01 +00:00
Simon Larsen
cd130bc8ef feat: enhance status page URL handling and add unsubscribe link in subscription emails 2025-01-31 14:34:11 +00:00
Simon Larsen
3fcd1f694e refactor: clean up whitespace and formatting in blog-related files 2025-01-31 14:14:39 +00:00
Simon Larsen
b98b43b9f6 feat: add blog management features and update routing for blog posts 2025-01-31 14:10:54 +00:00
Simon Larsen
b59c76f771 feat: set log limit to 250 in TraceExplorer and Logs components 2025-01-30 20:35:46 +00:00
Simon Larsen
4d2e386328 feat: set default log limit to 250 in DashboardLogsViewer 2025-01-30 17:23:56 +00:00
Simon Larsen
deddcbe152 refactor: add serviceName attribute to telemetry data attributes 2025-01-30 17:00:30 +00:00
Simon Larsen
e305284fe2 refactor: enhance error handling and logging in TelemetryIngest middleware 2025-01-30 16:47:55 +00:00
Simon Larsen
3163debdb8 chore: remove end-to-end test workflow from GitHub Actions 2025-01-30 15:39:59 +00:00
Simon Larsen
f827237a80 refactor: change convertSelectReturnedDataToJson method visibility from private to public in AnalyticsDatabaseService 2025-01-30 15:22:32 +00:00
Simon Larsen
c038e39620 refactor: replace executeQuery calls with execute for consistency in AnalyticsDatabaseService 2025-01-30 15:20:28 +00:00
Simon Larsen
b8c1190c9f refactor: update execute method calls to use executeQuery for consistency in AnalyticsDatabaseService 2025-01-30 14:54:12 +00:00
Simon Larsen
7f5ff5068e refactor: improve code formatting and readability in AnalyticsDatabaseService and LogsViewer components 2025-01-30 14:47:54 +00:00
Simon Larsen
943acc8567 feat: add Clickhouse configuration volume and update AnalyticsDatabaseService to use ResultSet for JSON responses 2025-01-30 11:58:43 +00:00
Simon Larsen
81798211ea chore: update @clickhouse/client and @clickhouse/client-common to version 1.10.1 2025-01-29 21:02:48 +00:00
Simon Larsen
39596f6a42 refactor: replace <div> tags with <pre> for better JSON body rendering in LogsViewer component 2025-01-29 18:35:13 +00:00
Simon Larsen
36a181e77e refactor: replace <pre> tags with <div> for log body rendering in LogsViewer component 2025-01-29 18:25:55 +00:00
Simon Larsen
032c03a877 docs: update health check extension comment to indicate deprecation and suggest upgrade to health_check_v2 2025-01-29 15:42:19 +00:00
Simon Larsen
500299fb2f feat: add liveness, readiness, and startup probes to otel-collector configuration 2025-01-29 15:40:26 +00:00
Simon Larsen
b959e84032 feat: add health check extension to OTel collector configuration 2025-01-29 15:38:57 +00:00
Simon Larsen
30edc194f4 feat: add batch processor configuration for OTLP exporter in collector config template 2025-01-29 14:07:49 +00:00
Simon Larsen
0a20894dd1 feat: add DISABLE_TELEMETRY environment variable to multiple templates for telemetry control 2025-01-28 20:28:03 +00:00
Simon Larsen
1045a7399f fix: change OTLP exporter protocol from http/json to http/protobuf in config template 2025-01-28 19:44:51 +00:00
Simon Larsen
0f3ef0027b fix: update OTLP exporter protocol from http/protobuf to http/json in config template 2025-01-28 19:19:24 +00:00
Simon Larsen
2f43bc5c65 feat: add setup function for ts-node installation in configure script 2025-01-28 18:34:59 +00:00
Simon Larsen
8d9f7e125d feat: add additional breadcrumb links for status pages 2025-01-28 18:27:06 +00:00
Simon Larsen
3ac841ddc1 refactor: improve code formatting and simplify component structure in status pages 2025-01-28 17:27:21 +00:00
Simon Larsen
9fc8c6f7a2 refactor: update route paths and simplify side menu component for status pages 2025-01-28 17:24:22 +00:00
Simon Larsen
62cd974235 refactor: clean up whitespace and improve code formatting in status pages 2025-01-28 13:05:14 +00:00
Simon Larsen
a0d03238ee feat: add announcements route and update breadcrumbs for status pages 2025-01-28 12:55:43 +00:00
Simon Larsen
4303cf00cc feat: add announcements page and update routing for status pages 2025-01-28 12:49:57 +00:00
Simon Larsen
747ea70de5 refactor: update date formatting in scheduled maintenance feed for improved readability 2025-01-28 12:00:19 +00:00
Simon Larsen
6dd4ef22df refactor: enhance scheduled maintenance feed with additional details and improve Recurring class string representation 2025-01-28 11:52:11 +00:00
Simon Larsen
4b97c79ae2 refactor: enhance alert and scheduled maintenance feed updates with additional data fields 2025-01-28 11:36:30 +00:00
Simon Larsen
d34b118c68 refactor: streamline summary prop definition in form components 2025-01-28 11:26:37 +00:00
Simon Larsen
a3ff2e1067 refactor: introduce FormSummaryConfig interface and update form components to use it 2025-01-28 11:23:32 +00:00
Simon Larsen
e6ef2a7945 chore: add concurrency settings to test-release workflow 2025-01-27 19:57:57 +00:00
Simon Larsen
9bf8d5d941 refactor: improve readability of getSummaryElement functions in ScheduledMaintenanceCreate component 2025-01-27 19:53:34 +00:00
Simon Larsen
f3ee93bd48 refactor: remove unused import from Create.tsx in ScheduledMaintenanceEvents 2025-01-27 19:47:06 +00:00
Simon Larsen
5b78fee225 refactor: rename StatusPagesLabel to StatusPagesElement and update imports across components 2025-01-27 19:46:51 +00:00
Simon Larsen
dd73947b7f Merge branch 'release' of github.com:OneUptime/oneuptime into release 2025-01-27 18:25:15 +00:00
Simon Larsen
78998fb123 refactor: simplify form field mapping and improve readability in FormSummary component 2025-01-27 18:22:51 +00:00
Simon Larsen
0bcfccffe0 feat: add margin-bottom to form step title for improved spacing in FormSummary component 2025-01-27 18:19:23 +00:00
Simon Larsen
3ab45f40ca feat: optimize FormSummary component by refining field filtering logic and improving step title styling 2025-01-27 18:16:16 +00:00
Simon Larsen
bb2f610bc8 feat: enhance form summary component to support conditional rendering of form steps and improve layout structure 2025-01-27 18:10:45 +00:00
Simon Larsen
9b685133c4 feat: enhance incident severity and monitor status components with new props for animation and improved data handling 2025-01-27 17:58:21 +00:00
Simon Larsen
33c4943794 refactor: standardize fetch functions to use PromiseVoidFunction type and improve error handling in incident severity, monitors, monitor statuses, and on-call policies components 2025-01-27 17:49:33 +00:00
Simon Larsen
a7f8aa4faa refactor: update state initialization and error handling in Fetch components; improve type definitions for fetch functions 2025-01-27 17:41:27 +00:00
Simon Larsen
722fe30c8f feat: implement FetchMonitors, FetchMonitorStatuses, and FetchOnCallPolicies components; update Field interface for summary element handling 2025-01-27 17:37:08 +00:00
Simon Larsen
500104eb81 feat: add FetchTeams and FetchUsers components; implement label ID handling in IncidentCreate 2025-01-27 17:07:22 +00:00
Simon Larsen
41c3a14dfa fix: change exit code in configure.sh to allow continuation on directory change failure 2025-01-27 16:55:47 +00:00
Simon Larsen
113eda94fa Merge branch 'master' of github.com:OneUptime/oneuptime 2025-01-27 16:51:49 +00:00
Simon Larsen
c6ce43f7cc feat: add FormSummary component and integrate it into BasicForm; implement FetchLabels for incident labels 2025-01-27 16:49:53 +00:00
Simon Larsen
6d5bc60127 fix: update secondTLDs initialization to use split method for better readability 2025-01-27 16:49:46 +00:00
Simon Larsen
b7b7b28834 Merge pull request #1816 from KalvadTech/improve_configure_sh
refactor: modernize configure.sh
2025-01-27 16:48:26 +00:00
Loïc Tosser
5a0b0d7c61 refactor: modernize configure.sh with improved error handling, modularity, and installation process 2025-01-27 18:50:51 +04:00
Simon Larsen
79bf7ce7ee fix: replace props.steps with getFormSteps in BasicForm component 2025-01-27 11:03:31 +00:00
Simon Larsen
4ab150bf75 refactor: clean up code formatting and improve readability in various files 2025-01-27 10:54:46 +00:00
Simon Larsen
951668c982 fix: update debug log messages to specify 'test' for monitor list API 2025-01-27 10:52:59 +00:00
Simon Larsen
d7845407f0 fix: set default limit to 100 in FetchMonitorTest 2025-01-27 10:47:35 +00:00
Simon Larsen
8c5e3187ab feat: add MonitorTestService to services index 2025-01-27 10:44:56 +00:00
Simon Larsen
d2ae1cd845 Merge pull request #1814 from OneUptime/master
chore: update playwright to version 1.50.0 and adjust debugger port i…
2025-01-24 19:18:03 +00:00
Simon Larsen
8cb64fbe66 feat: add isSummaryStep property to BasicForm and FormStep interface 2025-01-24 19:11:49 +00:00
Simon Larsen
092b858873 fix: correct spelling of 'enabled' in BasicForm and update related components 2025-01-24 18:54:28 +00:00
Simon Larsen
81d19722f6 chore: update dependencies in test-release workflow to include infrastructure-agent-deploy 2025-01-24 18:39:11 +00:00
Simon Larsen
1f7b268875 feat: add summary step to BasicForm and implement detail display for form fields 2025-01-24 18:32:10 +00:00
Simon Larsen
38b32a6090 refactor: improve code formatting and consistency in IncidentService 2025-01-24 18:08:21 +00:00
Simon Larsen
373159cb29 feat: enhance incident update feed with detailed information including title, root cause, description, remediation notes, labels, and severity 2025-01-24 17:59:52 +00:00
Simon Larsen
ec86ef4c0e chore: update playwright to version 1.50.0 and adjust debugger port in launch configuration 2025-01-24 16:11:51 +00:00
Simon Larsen
270231374b refactor: clean up migration and improve formatting for subscriber email notification footer text 2025-01-24 10:48:31 +00:00
Simon Larsen
aac4281602 feat: update subscriber email notification footer text to support longer content and add migration 2025-01-24 10:45:51 +00:00
Simon Larsen
bdea1139a4 refactor: improve code formatting for subscriber email notification footer text 2025-01-24 10:36:02 +00:00
Simon Larsen
14fdfa6d17 feat: add subscriber email notification footer text to status page and update notification templates 2025-01-24 10:31:59 +00:00
Simon Larsen
3b22747dbf Merge branch 'release' 2025-01-23 21:51:08 +00:00
Simon Larsen
eb9e20dad5 fix: update OpenTelemetry configuration template to use index for environment variables 2025-01-23 21:31:58 +00:00
Simon Larsen
5aa4b883ad feat: add OpenTelemetry exporter configuration options in Helm chart templates 2025-01-23 21:28:11 +00:00
Simon Larsen
ea38e2621f refactor: clean up code formatting and remove unused props in Scheduled Maintenance components 2025-01-23 16:22:16 +00:00
Simon Larsen
b2cb95e1fc feat: enhance Scheduled Maintenance Table with template creation buttons and update description in create page 2025-01-23 16:17:26 +00:00
Simon Larsen
b174b9795a feat: add imports for form handling and recurring events in Scheduled Maintenance Create page 2025-01-23 16:10:19 +00:00
Simon Larsen
9d1caa8336 feat: add Scheduled Maintenance Event creation page and update routing and breadcrumbs 2025-01-23 16:07:35 +00:00
Simon Larsen
52e8669960 feat: remove unused createInitialValues prop from IncidentsTable component 2025-01-23 15:51:09 +00:00
Simon Larsen
f0505725a7 feat: refine query parameters handling in Route class and improve navigation logic 2025-01-23 15:49:33 +00:00
Simon Larsen
7897641ef7 feat: implement addQueryParams method in Route class and update incident navigation logic 2025-01-23 15:07:11 +00:00
Simon Larsen
761f5f35e9 feat: add query parameters support in navigation and update incident declaration flow 2025-01-23 14:56:59 +00:00
Simon Larsen
241586ff4a feat: add Incident creation page with routing and breadcrumbs integration 2025-01-23 14:39:15 +00:00
Simon Larsen
f8fc1a9dae feat: enhance Monitor layout with hideSideMenu prop and improve component styling 2025-01-23 13:59:24 +00:00
Simon Larsen
6bbcc0a301 feat: add hideSideMenu prop to Monitor layout and update routing logic 2025-01-23 13:43:58 +00:00
Simon Larsen
0e6604aa11 refactor: update description in Monitor creation component for clarity 2025-01-23 13:24:40 +00:00
Simon Larsen
ade84a23ff refactor: clean up Monitor creation component and improve button navigation 2025-01-23 13:10:20 +00:00
Simon Larsen
6ff883b54e feat: add Monitor creation page and update routing and breadcrumbs 2025-01-23 12:52:27 +00:00
Simon Larsen
3546d92143 refactor: update localRoot paths in launch.json and improve logging in CheckHeartbeat and UpdateConnectionStatus 2025-01-23 12:41:34 +00:00
Simon Larsen
e932eb1b1d feat: update DISABLE_TELEMETRY value to false in otel-collector.yaml 2025-01-22 17:49:30 +00:00
Simon Larsen
cbca712af8 feat: add OpenTelemetry exporter environment variables and disable telemetry in otel-collector.yaml 2025-01-22 17:49:00 +00:00
Simon Larsen
8490128833 feat: add DISABLE_TELEMETRY environment variable to otel-collector.yaml 2025-01-22 15:38:10 +00:00
Simon Larsen
b80e126540 chore: update Playwright and related dependencies to version 1.49.1 2025-01-22 13:53:30 +00:00
Simon Larsen
5494a2244e feat: update Dockerfile.tpl to use new OpenTelemetry Collector version and improve gomplate installation 2025-01-22 12:44:22 +00:00
Simon Larsen
23be5b1736 fix: downgrade collector version to 0.104.0 and enhance config output in Dockerfile.tpl 2025-01-22 12:12:15 +00:00
Simon Larsen
9f3a9bc915 fix: update download command in Dockerfile.tpl to use uname for architecture detection 2025-01-22 11:34:00 +00:00
Simon Larsen
84d322f476 fix: correct echo command syntax in OTelCollector Dockerfile.tpl 2025-01-22 11:15:23 +00:00
Simon Larsen
f94fbcc2ae feat: improve architecture detection and installation process in Dockerfile.tpl 2025-01-22 11:11:14 +00:00
Simon Larsen
0e85162b50 fix: update architecture detection syntax in Dockerfile.tpl for compatibility 2025-01-21 15:59:59 +00:00
Simon Larsen
a5927f3681 feat: refactor Dockerfile.tpl to streamline gomplate installation and architecture detection 2025-01-21 15:58:20 +00:00
Simon Larsen
0d37587199 feat: enhance OpenTelemetry Collector configuration with sending queue parameters 2025-01-21 15:20:50 +00:00
Simon Larsen
4674578c90 feat: update OTel Collector Dockerfile and configuration for gomplate integration 2025-01-21 15:10:44 +00:00
Simon Larsen
87d280edbd feat: use sudo for apt-get update in compile workflow 2025-01-21 13:26:03 +00:00
Simon Larsen
d44ddd6781 feat: extend hard delete retention period from 3 to 30 days in WorkflowLogService 2025-01-21 12:42:50 +00:00
Simon Larsen
7271481fb7 feat: add apt-get update step in compile workflow 2025-01-20 17:08:59 +00:00
Simon Larsen
7f05ae7415 feat: upgrade checkout action to v4 in GitHub workflows 2025-01-20 14:43:07 +00:00
Simon Larsen
1e84b3a0cb feat: upgrade Node.js setup action to v4 in GitHub workflows 2025-01-20 14:42:33 +00:00
Simon Larsen
20c7b11ecc feat: update Node.js version in GitHub workflows to latest 2025-01-20 14:42:06 +00:00
Simon Larsen
6666f6e817 Merge pull request #1807 from diabolocom/helm-clickhouse-update
Deps: Helm-chart: Update clickhouse chart v7.2.0
2025-01-20 14:23:34 +00:00
Simon Larsen
621e1ce207 feat: update Dockerfiles to replace libasound2t64 with libasound2 for playwright dependencies 2025-01-20 14:14:06 +00:00
Simon Larsen
1c42c58591 feat: update Dockerfiles to include libasound2t64 dependency for playwright 2025-01-20 14:09:41 +00:00
Jules Lefebvre
6a1b0d8718 deps(chart): update clickhouse chart
Update binami clickhouse helm chart to version 7.2.0 to support ipv6 by default
2025-01-20 15:07:28 +01:00
Simon Larsen
bc244bfde1 feat: rename notification rule type for clarity and update related migration 2025-01-20 13:55:56 +00:00
Simon Larsen
984cb41efc feat: update notification rule types to use ON_CALL_EXECUTED for incidents and alerts 2025-01-20 13:42:54 +00:00
Simon Larsen
076386f0d4 feat: update OnCallDutyPolicyExecutionLog and UserOnCallLog models to make Triggered By Incident and Alert IDs optional 2025-01-20 13:26:11 +00:00
Simon Larsen
cb11a46cc9 feat: enhance logging for on-call duty policy execution and improve user notification handling 2025-01-20 13:03:15 +00:00
Simon Larsen
6c7f1b5eb9 feat: update ExecutionLogsTable to display triggered by incident and alert details 2025-01-20 12:17:09 +00:00
Simon Larsen
95709f1996 feat: add support for displaying alerts in execution logs table 2025-01-20 12:12:31 +00:00
Simon Larsen
eaebcc748d fix: add missing newline for improved code readability in Alive job 2025-01-20 11:52:23 +00:00
Simon Larsen
13c2f6e73d feat: implement probe alive endpoint and enhance state change notification with project ID 2025-01-20 11:49:46 +00:00
Simon Larsen
f746d353a7 refactor: remove unnecessary whitespace and improve code formatting in Alert services and components 2025-01-20 11:08:23 +00:00
Simon Larsen
de1760bda7 feat: update alert services and components to support private notes and improve description handling 2025-01-20 10:56:54 +00:00
Simon Larsen
a28b870c23 feat: mark report fields as required for improved form validation 2025-01-20 09:58:03 +00:00
Simon Larsen
eb216e52cf feat: enhance alert notifications by integrating AlertFeedService for state change and note posting events 2025-01-17 21:50:31 +00:00
Simon Larsen
c19913ac58 refactor: clean up code formatting and improve readability in Alert components 2025-01-17 20:42:10 +00:00
Simon Larsen
b55bb4ceeb feat: simplify alert state management by consolidating ChangeAlertState usage and adding AlertFeedElement 2025-01-17 20:39:43 +00:00
Simon Larsen
26ec1aa5b2 feat: implement Alert Feed component with event handling and data fetching 2025-01-17 20:37:13 +00:00
Simon Larsen
7b733c32e9 feat: remove unused CardModelDetail components for Alert Description, Root Cause, and Remediation Notes 2025-01-17 20:27:34 +00:00
Simon Larsen
3d34118f9e feat: add new pages for Alert Description, Root Cause, and Remediation with routing and breadcrumbs 2025-01-17 20:26:49 +00:00
Simon Larsen
69a3a898f5 refactor: improve code formatting and readability in UserSettings components 2025-01-17 19:56:07 +00:00
Simon Larsen
74d21e7c33 feat: update alert and incident on-call rule titles to include severity information and change side menu icon 2025-01-17 19:53:55 +00:00
Simon Larsen
aecf1c38a6 feat: rename and add routes for Incident and Alert On-Call Rules in user settings 2025-01-17 19:47:02 +00:00
Simon Larsen
8b3041301a refactor: clean up whitespace and improve code readability in various models and services 2025-01-17 19:24:48 +00:00
Simon Larsen
af77d191e3 feat: update triggeredByIncidentId and triggeredByAlertId fields to be nullable in relevant models 2025-01-17 19:23:09 +00:00
Simon Larsen
ad58125663 feat: add alert severity handling and triggeredByAlertId support in notification and execution logs 2025-01-17 19:09:22 +00:00
Simon Larsen
63650ba791 feat: add support for triggeredByAlertId in OnCallDutyPolicyExecutionLogTimeline and related services 2025-01-17 18:42:20 +00:00
Simon Larsen
1c5a434ee3 feat: add triggeredByAlertId relation to OnCallDutyPolicyExecutionLogTimeline, UserOnCallLog, and UserOnCallLogTimeline 2025-01-17 15:58:27 +00:00
Simon Larsen
102e64224f fix: remove unnecessary whitespace and improve error logging in alert, billing, incident, and scheduled maintenance feed services 2025-01-17 15:41:07 +00:00
Simon Larsen
854fe3084a fix: refactor alert, incident, and scheduled maintenance feed services to improve error handling and logging 2025-01-17 15:39:51 +00:00
Simon Larsen
b6c6186625 fix: remove unnecessary trace logging in BillingService when changing plan 2025-01-17 15:18:23 +00:00
Simon Larsen
92bdd5cf03 fix: improve clarity of reminder notification message for scheduled maintenance events 2025-01-17 15:14:02 +00:00
Simon Larsen
c2e78d122a fix: update property name from 'id' to '_id' in incident and scheduled maintenance note services 2025-01-17 15:10:20 +00:00
Simon Larsen
bfc061ad47 feat: add isRoot property to props in incident and scheduled maintenance note services 2025-01-17 15:08:21 +00:00
Simon Larsen
98302a887a fix: correct spelling of "scheduled maintenance" in markdown logs and notifications 2025-01-17 15:01:44 +00:00
Simon Larsen
743db411d5 refactor: add type annotations for subscription status checks in BillingInvoiceService and ProjectUtil 2025-01-17 13:30:57 +00:00
Simon Larsen
9537a9a13a feat: implement subscription status refresh logic with mutex handling and logging enhancements 2025-01-17 13:17:44 +00:00
Simon Larsen
0931705d6a feat: implement subscription status refresh logic in BillingInvoiceService and UserAPI 2025-01-17 12:23:01 +00:00
Simon Larsen
6bfd9b657a refactor: improve logging formatting in SendSubscriberRemindersOnEventScheduled job 2025-01-16 22:53:17 +00:00
Simon Larsen
493aef5b05 feat: enhance subscriber notification system with reminder notifications and improved logging 2025-01-16 21:21:49 +00:00
Simon Larsen
185f70e893 refactor: clean up code formatting and improve readability in Scheduled Maintenance components 2025-01-16 21:06:26 +00:00
Simon Larsen
db2ecde486 feat: add notification logging for scheduled maintenance note postings 2025-01-16 20:45:16 +00:00
Simon Larsen
ff3b7edec8 feat: enhance Scheduled Maintenance feed with subscriber and owner notification events 2025-01-16 20:42:09 +00:00
Simon Larsen
968b050d13 feat: implement onUpdateSuccess for internal and public notes in scheduled maintenance services 2025-01-16 20:07:52 +00:00
Simon Larsen
4328f7fc40 feat: add Scheduled Maintenance Description page and update routing 2025-01-16 16:55:26 +00:00
Simon Larsen
6ae3c28b8b feat: update ScheduledMaintenanceFeed event types and integrate ScheduledMaintenanceFeedElement in view 2025-01-16 16:25:33 +00:00
Simon Larsen
8be022e34f refactor: clean up state initialization and formatting in IncidentFeed component 2025-01-16 13:27:31 +00:00
Simon Larsen
ce6938396a feat: add modals for creating public and private incident notes 2025-01-16 13:25:32 +00:00
Simon Larsen
537e2d02e7 feat: enhance incident update permissions and enable root cause editing 2025-01-16 13:07:27 +00:00
Simon Larsen
80b9e48771 fix: remove space before incident number in IncidentsTable and IncidentView components 2025-01-16 12:57:49 +00:00
Simon Larsen
e0c3437c45 feat: implement otel-collector deployment with configurable replica count 2025-01-16 12:54:43 +00:00
Simon Larsen
e5df15a53e test: update expected value for ColumnLength.Color to reflect changes 2025-01-15 21:09:53 +00:00
Simon Larsen
a0f6e979b8 refactor: enhance readability by restructuring Feed and FeedItem components 2025-01-15 20:36:18 +00:00
Simon Larsen
e20624a635 refactor: invert isLastItem condition for rendering FeedItem separator 2025-01-15 20:29:16 +00:00
Simon Larsen
800583ddde refactor: enforce isLastItem prop as required in FeedItem component 2025-01-15 20:29:02 +00:00
Simon Larsen
f0bc71bee4 refactor: improve code readability and structure in OnCallDutyPolicyExecutionLog services and Feed components 2025-01-15 20:26:30 +00:00
Simon Larsen
ba0dd4f2b0 refactor: add display color handling by OnCallDutyPolicy status and update notification displayColor logic 2025-01-15 20:23:11 +00:00
Simon Larsen
63b560ad93 refactor: improve markdown formatting in notifications and update query id handling 2025-01-15 20:20:36 +00:00
Simon Larsen
ae0553a1e5 refactor: update IncidentFeed and OnCallDutyPolicyExecutionLogTimeline services for improved type handling and logging 2025-01-15 19:48:00 +00:00
Simon Larsen
fd4e2737e5 refactor: enhance notification messages to include incident state details and public note content 2025-01-15 19:23:57 +00:00
Simon Larsen
15f18c6d4f refactor: enhance notification messages and add projectId to relevant data structures 2025-01-15 18:52:35 +00:00
Simon Larsen
a84e32fe1b refactor: enhance logging and improve incident feed notification messages across multiple services 2025-01-15 18:37:18 +00:00
Simon Larsen
c09d97310f refactor: update ProgressButtons and ChangeIncidentState components to support completedStepId and improve click handling 2025-01-15 17:35:33 +00:00
Simon Larsen
782eb45eb3 refactor: improve formatting and consistency in multiple components 2025-01-14 21:20:21 +00:00
Simon Larsen
fb37da0aca refactor: update ErrorMessage component to use 'message' prop instead of 'error' across multiple components 2025-01-14 21:16:17 +00:00
Simon Larsen
ae2608e66f refactor: update ErrorMessage component usage to use 'message' prop instead of 'error' across multiple files 2025-01-14 21:01:40 +00:00
Simon Larsen
29565bc24c refactor: clean up unnecessary whitespace and improve code formatting across multiple files 2025-01-14 19:35:54 +00:00
Simon Larsen
da7860fc3f feat: add new incident view pages for Root Cause and Description; update icon properties and breadcrumb links 2025-01-14 19:35:39 +00:00
Simon Larsen
0375e8c568 refactor: improve code formatting in ProgressButtonItem and IncidentFeed components for better readability 2025-01-14 19:22:09 +00:00
Simon Larsen
60c53b32e6 refactor: update ProgressButtonItem and ProgressButtons components for improved structure and readability; enhance error handling in IncidentFeed 2025-01-14 19:21:59 +00:00
Simon Larsen
4d1797e9fa refactor: clean up code formatting and remove unnecessary whitespace in various files 2025-01-14 18:16:51 +00:00
Simon Larsen
1ff4bde7b9 feat: enhance incident feed markdown for OnCallDutyPolicyExecutionLogTimeline with detailed alert information 2025-01-14 18:13:40 +00:00
Simon Larsen
fae6d89a18 feat: add OnCallNotification event type to IncidentFeed and implement related handling in OnCallDutyPolicyExecutionLogTimelineService 2025-01-14 18:09:30 +00:00
Simon Larsen
aa429abe01 feat: implement ProgressButtons and ProgressButtonItem components for enhanced step navigation 2025-01-14 16:01:56 +00:00
Simon Larsen
203763aa95 feat: add OnCallPolicy event type to IncidentFeed and implement related feed updates in OnCallDutyPolicyExecutionLogService 2025-01-14 15:38:05 +00:00
Simon Larsen
0b69ae195f feat: implement onBeforeDelete and onDeleteSuccess methods to handle OwnerTeamRemoved events in IncidentOwnerTeamService 2025-01-14 14:47:28 +00:00
Simon Larsen
0756a43d62 feat: add OwnerUserRemoved and OwnerTeamRemoved event types to IncidentFeed; update feedInfoInMarkdown and improve icon handling 2025-01-14 14:45:32 +00:00
Simon Larsen
13eb3205a2 feat: add RootCause and RemediationNotes event types to IncidentFeed; update feedInfoInMarkdown formatting and icons 2025-01-14 14:12:51 +00:00
Simon Larsen
9dcd295fd0 feat: update incident feed event types for owner additions and enhance related services 2025-01-14 13:59:24 +00:00
Simon Larsen
1fb84ea302 fix: update incidentId references and improve notification messages for clarity 2025-01-14 13:43:31 +00:00
Simon Larsen
53ea3d32dc feat: update incident feed colors and improve notification messages; add refresh button to IncidentFeedElement 2025-01-14 12:36:52 +00:00
Simon Larsen
5c9ec28a4e fix: format feedInfoInMarkdown for better readability in IncidentService 2025-01-14 12:26:30 +00:00
Simon Larsen
04c2293378 feat: add postedAt field to IncidentFeed, AlertFeed, and ScheduledMaintenanceFeed; update services to set postedAt on creation 2025-01-14 12:15:49 +00:00
Simon Larsen
6c672c541a feat: include createdByUserId in IncidentFeed creation for better tracking of incident authors 2025-01-14 11:04:21 +00:00
Simon Larsen
169db73704 fix: remove margin from no items message in Feed component for better layout 2025-01-14 11:01:10 +00:00
Simon Larsen
e980f00f1c feat: add noItemsMessage prop to Feed component and update IncidentFeedElement to display error message when no items are present 2025-01-14 11:00:07 +00:00
Simon Larsen
66a594ed99 feat: replace Feed component with IncidentFeedElement in IncidentView 2025-01-14 10:19:43 +00:00
Simon Larsen
52c35c1e4d feat: update userId handling in IncidentFeed and AlertFeed services; increase LIMIT_PER_PROJECT to 10000; refactor User class to UserUtil; add IncidentFeedElement component 2025-01-13 18:39:06 +00:00
Simon Larsen
caa4103b48 feat: add userId field to AlertFeed, IncidentFeed, and ScheduledMaintenanceFeed services 2025-01-13 17:28:44 +00:00
Simon Larsen
f6069ca4a7 feat: remove tls.verify option from Fluent Bit configuration 2025-01-13 17:22:48 +00:00
Simon Larsen
f519748c44 feat: add userId field and relationship to AlertFeed, IncidentFeed, and ScheduledMaintenanceFeed models 2025-01-13 17:19:37 +00:00
Simon Larsen
27de0f0ddb feat: update displayColor column length to 10 for AlertFeed, IncidentFeed, and ScheduledMaintenanceFeed 2025-01-13 17:14:36 +00:00
Simon Larsen
5426c22740 feat: update moreInformationInMarkdown fields to be optional in IncidentFeed, AlertFeed, and ScheduledMaintenanceFeed 2025-01-13 17:00:46 +00:00
Simon Larsen
a55d4d1e02 refactor: format migration name and clean up up/down methods for consistency 2025-01-13 16:20:51 +00:00
Simon Larsen
2f65b1ee82 feat: add migration to drop IncidentLog, AlertLog, and ScheduledMaintenanceLog tables 2025-01-13 15:04:00 +00:00
Simon Larsen
730dc56316 feat: add migration for IncidentFeed, AlertFeed, and ScheduledMaintenanceFeed tables 2025-01-13 14:59:13 +00:00
Simon Larsen
101e697a12 refactor: update BaseAPI instantiation for ScheduledMaintenanceFeed to improve type clarity 2025-01-13 14:56:18 +00:00
Simon Larsen
1c1488bca5 refactor: replace IncidentLogService with IncidentFeedService in various services 2025-01-13 14:52:55 +00:00
Simon Larsen
0e74adbd08 refactor: simplify FeedItem component and clean up IncidentView layout 2025-01-13 14:11:04 +00:00
Simon Larsen
35947b4010 fix: remove redundant empty line in IncidentView component 2025-01-13 13:27:06 +00:00
Simon Larsen
b304ceddbb feat: add Incident Feed component to display incident updates 2025-01-13 11:25:52 +00:00
Simon Larsen
cba6c48673 fix: update API request method from GET to POST in public-api documentation 2025-01-13 11:12:04 +00:00
Simon Larsen
63b40cde75 fix: update titles for subscription fields in EmailSubscribers component 2025-01-13 10:54:26 +00:00
Simon Larsen
439f2e87a2 feat: add subscription confirmation field to EmailSubscribers component 2025-01-13 10:53:18 +00:00
Simon Larsen
fc0869d9fe fix: correct query merging order in BaseModelTable component 2025-01-13 10:50:50 +00:00
Simon Larsen
fb5646e8c2 feat: update incident log event type and add logging for subscriber notifications in Incident services 2025-01-13 10:37:45 +00:00
Simon Larsen
7538a47be5 fix: update userName type to string and ensure proper string conversion in IncidentNote services 2025-01-13 08:50:31 +00:00
Simon Larsen
8568cc0c89 feat: implement logging for internal and public notes creation in IncidentNote services 2025-01-13 08:48:58 +00:00
Simon Larsen
2457de9757 feat: update IncidentLog and AlertLog models to use displayColor and event type enums 2025-01-12 18:21:08 +00:00
Simon Larsen
a6859631ae feat: add validation for required fields in AlertLogService, IncidentLogService, and ScheduledMaintenanceLogService 2025-01-12 17:50:45 +00:00
Simon Larsen
e737444c52 feat: add severity fields to AlertLog, IncidentLog, and ScheduledMaintenanceLog models 2025-01-12 17:40:25 +00:00
Simon Larsen
b4a2726c81 refactor: improve code formatting and readability in BaseAPI and IncidentView 2025-01-12 14:57:17 +00:00
Simon Larsen
5fc60491ff feat: reorder fields in IncidentView to improve layout and visibility of Incident ID 2025-01-12 14:53:12 +00:00
Simon Larsen
a7558535a6 feat: add IncidentLogService, AlertLogService, and ScheduledMaintenanceLogService to BaseAPI 2025-01-12 13:28:36 +00:00
Simon Larsen
408d06edb9 feat: add AlertLogService, IncidentLogService, and ScheduledMaintenanceLogService; update services index 2025-01-12 12:02:25 +00:00
Simon Larsen
87be913388 feat: enhance filtering logic to support numeric values in BaseModelTable 2025-01-12 11:52:33 +00:00
Simon Larsen
1a034abe96 feat: add NumberFilter component and integrate it into FiltersForm 2025-01-12 11:45:02 +00:00
Simon Larsen
19bdfd66b9 docs: update public API documentation to include overallStatus object details 2025-01-12 10:36:46 +00:00
Simon Larsen
982d051329 feat: implement mutex for incident creation and improve incident number handling 2025-01-12 10:35:04 +00:00
Simon Larsen
b66b1db2cb feat: add Incident Number column to IncidentsTable and IncidentView components 2025-01-12 10:19:38 +00:00
Simon Larsen
12e67a065d feat: add incidentNumber field to Incident model and implement data migration for existing incidents 2025-01-12 10:08:48 +00:00
Simon Larsen
1f3cdc08ac feat: add incidentNumber field to Incident model and implement logic for auto-incrementing incident numbers 2025-01-12 10:03:28 +00:00
Simon Larsen
5ebcba9f46 refactor: improve code readability in StatusPageAPI and Overview components 2025-01-10 14:44:31 +00:00
Simon Larsen
15e49c1b45 feat: implement overall monitor status calculation and update Overview component 2025-01-10 14:40:42 +00:00
Simon Larsen
b71a657dea feat: update API documentation to reflect POST method for status page endpoints 2025-01-09 18:38:38 +00:00
Simon Larsen
72e573bbc4 Merge branch 'release' 2025-01-09 14:32:47 +00:00
Simon Larsen
2113ffefd9 feat: refactor ScheduledMaintenanceLog model and migration for improved readability and structure 2025-01-09 14:32:43 +00:00
Simon Larsen
8da42884c2 feat: add documentation for using Monitor Secrets in custom and synthetic monitors 2025-01-09 14:30:24 +00:00
Simon Larsen
e14c54c6cc Merge branch 'release' 2025-01-08 19:48:16 +00:00
Simon Larsen
10a199f3f5 feat: add IncidentLog and ScheduledMaintenanceLog tables with migrations 2025-01-08 19:47:50 +00:00
Simon Larsen
2df97392b2 feat: enhance server monitor queries by integrating active project status checks 2025-01-08 18:54:06 +00:00
Simon Larsen
fcd2ecd118 feat: improve server monitor request handling by refining query and response logic 2025-01-08 18:41:41 +00:00
Simon Larsen
e2e5533229 Merge branch 'release' 2025-01-08 17:43:00 +00:00
Simon Larsen
cf01fce011 feat: add uninstall instructions for OneUptime in documentation 2025-01-08 17:18:51 +00:00
Simon Larsen
100152ecc1 feat: update API endpoint URLs in Public Status Page documentation 2025-01-08 17:12:45 +00:00
Simon Larsen
7b68c0b3c0 feat: refactor permission handling by extracting getFieldPermissions function 2025-01-07 18:59:34 +00:00
Simon Larsen
a7ad9b752b feat: fix Clickhouse configuration to use default port if not specified 2025-01-06 20:10:59 +00:00
Simon Larsen
2e3ed42723 feat: add Public Status Page API documentation 2025-01-06 12:43:29 +00:00
Simon Larsen
864e44d1a2 feat: add "Status Pages" section with link to Public API documentation 2025-01-06 12:40:52 +00:00
Simon Larsen
08cdb33e6e feat: remove redundant MYENVVAR environment variable from installer templates 2025-01-06 12:39:17 +00:00
Simon Larsen
27647f529f feat: rename workflow step to clarify NPM package publishing 2025-01-06 08:30:49 +00:00
Simon Larsen
4021650ea5 feat: add MYENVVAR environment variable to installer for amd64 template 2025-01-06 08:27:01 +00:00
Simon Larsen
6a9f76c656 feat: add environment variable MYENVVAR to installer for arm64 template 2025-01-06 08:26:43 +00:00
Simon Larsen
c3bba74107 feat: update product name for amd64 and remove unnecessary custom actions from installer 2025-01-03 17:15:25 +00:00
Simon Larsen
16b9d4794e feat: enhance error handling in SSO login process and improve response structure 2025-01-03 16:19:23 +00:00
Simon Larsen
22e16d5c5b feat: update documentation to include proxy configuration for agent setup 2025-01-03 15:28:37 +00:00
Simon Larsen
ef340e5fa0 feat: improve error logging for secret key validation and add proxy support for HTTP requests 2025-01-03 15:22:35 +00:00
Simon Larsen
20aff38458 feat: enhance agent configuration logging and save proxy URL 2025-01-03 15:08:57 +00:00
Simon Larsen
16a1051280 feat: add proxy configuration support to agent and update related functions 2025-01-03 14:55:16 +00:00
Simon Larsen
fe9d3d3020 Add proxy 2025-01-03 14:21:47 +00:00
Simon Larsen
a0c0041cbd feat: implement default logging to file with fallback to console 2025-01-03 13:31:59 +00:00
Simon Larsen
d755c62a51 chore: update README for build instructions and remove unused dependency 2025-01-03 10:04:11 +00:00
Simon Larsen
5756623f45 fix: improve error handling and logging for metrics ingestion and secret key verification 2025-01-03 09:47:35 +00:00
Simon Larsen
8247f504c4 fix: correct formatting of Redis IP family value in Helm chart templates 2025-01-01 18:46:25 +00:00
Simon Larsen
f05b0a15ee feat: add conditional logic for Redis IP family in Helm chart templates 2025-01-01 18:42:38 +00:00
Simon Larsen
1abf1df1ee refactor: format PORT initialization and improve import structure in Config and Index 2025-01-01 18:24:30 +00:00
Simon Larsen
f1afab0b52 feat: add configurable port for probe services and update initialization 2025-01-01 18:04:19 +00:00
Simon Larsen
a0d33bf9c1 feat: initialize server with a specific port using Port type in Probe 2025-01-01 17:03:13 +00:00
Simon Larsen
7c16fa7b42 refactor: update ClickhouseConfig to use Hostname type for host configuration 2025-01-01 16:37:12 +00:00
Simon Larsen
5ba526d12e refactor: remove outdated comments and improve context object in VMRunner 2025-01-01 16:11:19 +00:00
Simon Larsen
92174be7fd docs: enhance documentation with available objects in Playwright context and error handling for browser closure 2025-01-01 15:34:10 +00:00
Simon Larsen
ece451b660 refactor: remove unnecessary UI reference and streamline thank you message in installation templates 2024-12-24 21:09:36 +00:00
Simon Larsen
5ca740b43c feat: add custom action to set PATH environment variable and show thank you message during installation 2024-12-24 20:55:16 +00:00
Simon Larsen
70aae7c59a fix: update RedisIPFamily initialization to handle undefined environment variable 2024-12-24 20:13:21 +00:00
Simon Larsen
bb543ef010 Merge pull request #1773 from diabolocom/redis-ipv6
Feature: Allow to set Redis IP Family
2024-12-24 20:09:59 +00:00
Simon Larsen
64bba9246b Add thank you message and UI reference to installation templates 2024-12-24 20:07:08 +00:00
Simon Larsen
511987bd70 Add PATH environment variable setting in Windows installer templates 2024-12-24 20:03:40 +00:00
Jules Lefebvre
19162504c8 feat(helm): add externalRedis.ipFamily configuration
Add the `externalRedis.ipFamily` values to set `REDIS_IP_FAMILY environmental variable
2024-12-24 13:08:15 +01:00
Jules Lefebvre
96f5173fb9 feat(docker): allow to chose redis ip family
Add the `REDIS_IP_FAMILY` to the default docker environment variables
2024-12-24 13:08:04 +01:00
Jules Lefebvre
8704f47b44 feat(common/infra): allow to chose redis ip familly
Introduce a new environment variable (`REDIS_IP_FAMILY`) to choose witch version
of the IP protocol to use in Redis.
2024-12-24 13:06:39 +01:00
Simon Larsen
45803a8cd2 Fix path separators in build-msi.sh for consistency across platforms 2024-12-23 20:19:11 +00:00
Simon Larsen
c04c2a3563 Fix path separators in build-msi.sh for Windows compatibility 2024-12-23 19:10:41 +00:00
Simon Larsen
e61e7f3ba0 Update file identifiers in Windows installer templates for Infrastructure Agent 2024-12-23 18:43:33 +00:00
Simon Larsen
e438050f6e Fix path separators in build-msi.sh for Windows compatibility 2024-12-23 18:42:23 +00:00
Simon Larsen
9601bdec93 Update product names and descriptions in installer templates for consistency 2024-12-23 18:31:56 +00:00
Simon Larsen
c631dcfd44 Remove unnecessary whitespace in CustomSMTPTable component 2024-12-23 18:29:01 +00:00
Simon Larsen
4cabd2562a Reduce job duration from 1 minute to 30 seconds in InfrastructureAgent 2024-12-23 18:22:03 +00:00
Simon Larsen
09e997c104 Add noValueMessage prop to description fields across multiple components 2024-12-23 17:54:27 +00:00
Simon Larsen
eee787be1c Update description fields to be optional across multiple components 2024-12-20 17:22:05 +00:00
Simon Larsen
c9b0d4fbec Fix binary paths in build script for MSI to remove leading dot 2024-12-20 16:58:00 +00:00
Simon Larsen
946f82f978 Add debug logging to server monitor criteria and comparison functions 2024-12-20 16:23:34 +00:00
Simon Larsen
8fc3fe4a98 Increase offline check duration from 2 to 3 minutes in server monitor criteria 2024-12-20 16:16:25 +00:00
Simon Larsen
3d321a038b Add infrastructure agent deployment workflow with GoReleaser and artifact upload 2024-12-20 16:00:56 +00:00
Simon Larsen
ef06d47619 Fix binary paths in build script for MSI to remove leading dot 2024-12-20 15:55:46 +00:00
Simon Larsen
c8a966a2f7 Enhance server monitor functionality by adding serverMonitorResponse handling and improving hostname resolution 2024-12-20 15:48:32 +00:00
Simon Larsen
32ffdf9174 Consolidate package installation in build script for MSI 2024-12-20 14:54:22 +00:00
Simon Larsen
d482cb00a9 Fix typo in form step title from "Baisc Info" to "Basic Info" in SSO pages 2024-12-20 13:59:20 +00:00
Simon Larsen
6286b8bf4c Update output directory in build script for MSI to a more general path 2024-12-20 13:58:48 +00:00
Simon Larsen
b264f4a6b9 Add MSI image release step to GitHub Actions and update build script for dependencies 2024-12-20 12:10:58 +00:00
Simon Larsen
ec7d5fe5c2 Update ARM64 binary path in MSI build script to reflect new version structure 2024-12-20 12:08:47 +00:00
Simon Larsen
4b9d770030 Update Windows installer templates for arm64: enhance XML structure, update product details, and adjust file references 2024-12-19 20:38:24 +00:00
Simon Larsen
a8100e9b01 Refactor Windows installer template for arm64: update XML structure, improve metadata, and enhance component definitions 2024-12-19 20:37:35 +00:00
Simon Larsen
b43e892295 Update GoReleaser to v6.1.0 and increment version in configuration 2024-12-19 20:14:30 +00:00
Simon Larsen
663f151051 Add MSI build script and templates for Windows infrastructure agent 2024-12-19 19:44:39 +00:00
Simon Larsen
282373b654 Update server monitor criteria and request handling for accurate time tracking 2024-12-19 18:10:15 +00:00
Simon Larsen
43faeb6e32 Update CheckOnlineStatus to use three minutes ago for server monitor queries 2024-12-19 17:58:25 +00:00
Simon Larsen
8180fcf386 Update metric view data handling in MonitorMetrics component 2024-12-19 17:49:38 +00:00
Simon Larsen
e2cbd4d0ac Refactor loading and error handling in MonitorMetrics component 2024-12-19 17:31:27 +00:00
Simon Larsen
084c259197 Update report settings to clarify email notifications for subscribers 2024-12-17 19:16:04 +00:00
Simon Larsen
6ecd709f29 Add NFPM configuration for packaging and install step in release workflow 2024-12-17 18:56:27 +00:00
Simon Larsen
b935cef5a0 Fix typo in subscription confirmation message 2024-12-17 17:41:44 +00:00
Simon Larsen
1d5e838afa Update subscription success message to include email confirmation instructions 2024-12-17 17:35:38 +00:00
Simon Larsen
90ca4b68cf Add email notification for new subscribers and improve subscription confirmation handling 2024-12-17 15:01:26 +00:00
Simon Larsen
031bd26b09 Update subscription confirmation to use 'verification-token' query parameter 2024-12-17 14:56:42 +00:00
Simon Larsen
1296f37081 Enhance subscription confirmation handling by updating permission controls and modifying email notification options 2024-12-17 14:41:31 +00:00
Simon Larsen
ba1a707156 Remove outdated IP addresses from the configuration documentation 2024-12-17 13:08:41 +00:00
Simon Larsen
d670cca559 Add subscription confirmation feature and enhance Pill component with tooltip support 2024-12-17 13:00:23 +00:00
Simon Larsen
f7e31a4f04 Add subscription confirmation handling and enhance Pill component with tooltip support 2024-12-17 12:50:02 +00:00
Simon Larsen
bb7917551f Add confirmation functionality for status page subscriptions and update related templates 2024-12-17 12:42:22 +00:00
Simon Larsen
53238aee40 Refactor date handling in AggregateUtil and XAxisUtil, and improve error handling in MetricView and IncidentView components 2024-12-16 18:17:01 +00:00
Simon Larsen
187d41e25f Refactor RollingTimePicker and MetricMonitorStepForm for improved state management and performance 2024-12-16 17:59:18 +00:00
Simon Larsen
56f79a91c1 Enhance IncidentView component with HeaderAlert for date display and improve metrics card layout 2024-12-16 16:57:04 +00:00
Simon Larsen
4dd6b5f32e Add MetricViewData interface and update imports across components 2024-12-16 16:53:38 +00:00
Simon Larsen
f48a5a650c Add metricAggregationType handling to MetricMonitorOptions and enhance CriteriaFilter component 2024-12-16 16:23:57 +00:00
Simon Larsen
09a2a31d2b Refactor evaluation type handling in CompareCriteria and update MetricMonitorOptions interface 2024-12-16 16:14:23 +00:00
Simon Larsen
5fd60094ab Add monitorStep parameter to MetricMonitorCriteria and enhance metric alias handling 2024-12-16 15:59:59 +00:00
Simon Larsen
0cfc9fbb56 Improve data handling and code readability in various components 2024-12-16 15:38:29 +00:00
Simon Larsen
2fc6200c47 Update chartCssClass in MetricMonitor components for consistent styling 2024-12-16 11:11:51 +00:00
Simon Larsen
437e5e7004 Enhance MetricMonitorPreview with rolling time selection and modal for improved user interaction 2024-12-16 11:08:40 +00:00
Simon Larsen
22e2c1f25c Uncomment Metrics monitor type in MonitorTypeHelper for clarity 2024-12-16 10:34:30 +00:00
Simon Larsen
4799ed0434 Fix typo in alert configuration key for consistency in Helm chart 2024-12-16 10:26:18 +00:00
Simon Larsen
0848dfc5d6 Refactor EnvironmentConfig and StatusPageService for improved readability and consistency 2024-12-16 10:25:26 +00:00
Simon Larsen
88cf2c3cb0 Add configuration options to disable automatic alert and incident creation 2024-12-16 09:57:24 +00:00
Simon Larsen
ca3855d109 Remove commented-out Metrics monitor type from MonitorTypeHelper for cleaner code 2024-12-13 15:55:52 +00:00
Simon Larsen
36570f3944 Refactor APIRequestCriteria to improve readability of response code check 2024-12-13 14:09:23 +00:00
Simon Larsen
df10a1900d Update APIRequestCriteria to include responseCode check for ResponseStatusCode validation 2024-12-13 14:06:43 +00:00
Simon Larsen
eca3408598 Update APIResponse interface to allow statusCode to be undefined for better error handling 2024-12-13 14:04:57 +00:00
Simon Larsen
9d1a2c40c7 Refactor MetricMonitorStepForm and MetricView to optimize state management and enhance data handling 2024-12-12 13:57:46 +00:00
Simon Larsen
cd58b72a9c Refactor MetricMonitorStepForm to eliminate unnecessary state management and streamline onChange handling 2024-12-12 13:17:00 +00:00
Simon Larsen
ceead6eaba Refactor StartAndEndDate and CriteriaFilter components for improved readability and consistency in type usage 2024-12-12 13:02:29 +00:00
Simon Larsen
45a665b004 Refactor DateFilter and MetricView components for consistency in value prop usage; improve formatting in various files 2024-12-12 12:58:20 +00:00
Simon Larsen
2dd1cd8453 Update chartCssClass for improved styling in MetricMonitorStepForm 2024-12-12 12:03:54 +00:00
Simon Larsen
8152a7f7ea Add hideCardInCharts prop and chartCssClass for enhanced styling in MetricMonitorStepForm 2024-12-12 12:02:09 +00:00
Simon Larsen
55d962eed7 Add chartCssClass prop to ChartGroup, MetricCharts, and MetricView for customizable styling 2024-12-12 11:55:48 +00:00
Simon Larsen
ebf5c83358 Merge branch 'master' of github.com:OneUptime/oneuptime 2024-12-12 11:28:57 +00:00
Simon Larsen
69e5fba5ff Add monitorStep prop to various components for improved data handling in monitoring forms 2024-12-12 11:15:00 +00:00
Simon Larsen
139ee62106 Add FieldLabelElement for metric selection in MetricMonitorStepForm 2024-12-12 10:36:47 +00:00
Simon Larsen
2d89431dc1 Merge pull request #1765 from ThoSt81/patch-1
Update SubscribedToStatusPage.hbs
2024-12-12 10:29:07 +00:00
ThoSt
d506e658f0 Update SubscribedToStatusPage.hbs
Remove InfoBlock which is identical to EmailTitle and thus messing up the template when send to the new subscriber.
2024-12-11 15:49:42 +01:00
Simon Larsen
180d02c53d Refactor MonitorMetrics and MetricExplorer components to streamline state management with MetricViewData and improve code readability 2024-12-11 14:01:31 +00:00
Simon Larsen
e500886b12 Refactor MetricMonitor components to utilize MetricViewData for improved state management and data handling 2024-12-11 13:57:15 +00:00
Simon Larsen
7f7bcbc0a3 Add FieldLabelElement for time range selection and refactor MetricView data handling in MetricExplorer 2024-12-11 13:51:43 +00:00
Simon Larsen
397231f1df Refactor MetricMonitorCriteria to improve type safety and enhance alias handling in data processing 2024-12-10 22:44:58 +00:00
Simon Larsen
f575afa151 Enhance MetricMonitorCriteria to support metric alias handling and improve data processing logic 2024-12-10 22:38:14 +00:00
Simon Larsen
b26cf4e876 Enhance Metric Monitor functionality by introducing MetricMonitorCriteria, updating MetricMonitorResponse, and refining telemetry monitoring logic 2024-12-10 19:37:24 +00:00
Simon Larsen
450488eb4f Refactor code for improved readability and consistency across Monitor components 2024-12-10 14:37:31 +00:00
Simon Larsen
14d3228786 Add Metric Monitor functionality with Rolling Time selection and preview 2024-12-10 14:32:54 +00:00
Simon Larsen
811fd24cd5 Merge branch 'master' of github.com:OneUptime/oneuptime 2024-12-10 10:25:21 +00:00
Simon Larsen
098fb5be78 Merge branch 'metrics-monitor' 2024-12-10 10:25:10 +00:00
Simon Larsen
837d065b81 Merge pull request #1761 from WillDaSilva/patch-1
Remove trailing whitespace in `fluentbit.md`
2024-12-10 10:16:09 +00:00
Simon Larsen
fe2b001c6d Improve error handling in OTelIngest API to provide clearer feedback on failures 2024-12-09 18:23:17 +00:00
Simon Larsen
b08c047da7 Add early empty success response to prevent timeouts in OTelIngest API 2024-12-09 18:12:50 +00:00
Simon Larsen
79ff8b1f82 Enable debug logging in telemetry configuration for improved diagnostics 2024-12-09 17:59:58 +00:00
Simon Larsen
7da47d6e16 Refactor response handling in OTelIngest API to ensure early success response is sent consistently 2024-12-09 17:08:50 +00:00
Simon Larsen
6e6f3c6c38 Add MetricMonitor support with criteria checks and response type 2024-12-09 17:03:24 +00:00
Simon Larsen
b3b3d9a0b7 Merge branch 'master' into metrics-monitor 2024-12-09 16:19:26 +00:00
Simon Larsen
16f0fe145a Enhance probe monitoring by introducing configurable retry limit and updating logic 2024-12-09 16:18:43 +00:00
Simon Larsen
eea7209aaf Remove unused imports and clean up whitespace in OTelIngest API 2024-12-09 15:38:51 +00:00
Simon Larsen
c4c93f1cc5 Refactor error handling in data processing module for improved clarity and maintainability 2024-12-09 15:34:25 +00:00
Simon Larsen
0d19f56519 Refactor monitor type helper methods and update side menu to reflect changes in metrics handling 2024-12-09 12:58:22 +00:00
Simon Larsen
85d0ded200 Remove commented-out telemetry indexing and billing logic from OTelIngest API 2024-12-09 12:52:27 +00:00
Simon Larsen
c5134f0dd7 Add default value for PROBE_MONITOR_RETRY_LIMIT in probe.yaml and update values.yaml 2024-12-09 10:32:55 +00:00
Simon Larsen
9e117f34d4 Add PROBE_MONITOR_RETRY_LIMIT environment variable and update monitor retry logic 2024-12-09 10:28:22 +00:00
Will Da Silva
72f994d079 Remove trailing whitespace in fluentbit.md 2024-12-06 19:31:16 -05:00
Simon Larsen
4a6edfa660 Enhance logging for mutex acquisition and release in Monitor API 2024-12-06 17:43:52 +00:00
Simon Larsen
a20c05adb2 Merge branch 'master' into release 2024-12-06 17:39:33 +00:00
Simon Larsen
a286aba432 Refactor Semaphore class to streamline lockOptions initialization 2024-12-06 17:39:12 +00:00
Simon Larsen
a3f1302e37 Add lockTimeout and acquireTimeout options in Monitor API semaphore 2024-12-06 17:36:17 +00:00
Simon Larsen
9393388cc5 Add acquireTimeout option and improve lock options in Semaphore class 2024-12-06 17:34:21 +00:00
Simon Larsen
d249fe16d9 Add Fluent Bit integration documentation and image tiles to Telemetry section 2024-12-06 16:33:11 +00:00
Simon Larsen
7f6223f4c8 Remove debugger statement and improve code formatting in telemetry ingestion 2024-12-06 12:04:14 +00:00
Simon Larsen
dc5e2c0d40 Update Fluent Bit documentation and configuration for OneUptime telemetry ingestion 2024-12-06 11:58:40 +00:00
Simon Larsen
26f6a14e93 Update OpenTelemetry configuration in Fluent Bit to use new host and secure settings 2024-12-05 18:21:53 +00:00
Simon Larsen
588de5ad27 Add Fluent Bit documentation and update configuration for telemetry ingestion 2024-12-05 18:06:23 +00:00
Simon Larsen
8734938a82 Enhance telemetry configuration in Fluent Bit and update OpenTelemetry request handling 2024-12-05 17:55:59 +00:00
Simon Larsen
06e7228041 Add HTTP input to Fluent Bit configuration and expose port 8889 for telemetry ingestion 2024-12-05 14:43:39 +00:00
Simon Larsen
38ad431b17 Update Fluent Bit Docker configuration and remove obsolete YAML file 2024-12-04 20:09:16 +00:00
Simon Larsen
e0f5d8f1f2 Add Fluent Bit configuration and update probe intervals in Helm chart 2024-12-04 19:23:59 +00:00
Simon Larsen
e947d21060 Add random sleep interval to FetchList worker to reduce server load 2024-12-04 15:57:02 +00:00
Simon Larsen
41d347a1a7 Increase Node.js memory limit in start script for improved performance 2024-12-04 13:59:32 +00:00
Simon Larsen
5dc6ab6bb2 Update Alert and Incident metric type strings to use hyphens for consistency 2024-12-04 13:23:16 +00:00
Simon Larsen
3492e54a9b Refactor error logging and improve code formatting in AlertStateTimelineService and IncidentService 2024-12-04 13:12:49 +00:00
Simon Larsen
adf92f3dc9 Add Alert and Incident metric types, enhance Metric model, and improve error logging in services 2024-12-04 13:02:17 +00:00
Simon Larsen
02b9f77e7c Add new service types to Metric model and clean up IncidentService 2024-12-04 11:35:25 +00:00
Simon Larsen
396f435755 Add cron jobs to delete incident and alert metrics older than 180 days 2024-12-04 11:16:53 +00:00
Simon Larsen
5796db03f9 Add Incident and Alert service types to Metric model 2024-12-04 11:03:16 +00:00
Simon Larsen
4029d72967 Send early empty success response in OTelIngest to prevent timeouts 2024-12-04 10:39:54 +00:00
Simon Larsen
8d2cf500a0 Update OpenTelemetry endpoint in documentation for accuracy 2024-12-04 10:34:01 +00:00
Simon Larsen
5bfc954076 Refactor isSaving initialization in DashboardToolbar for clearer logic 2024-12-03 18:07:44 +00:00
Simon Larsen
769f468273 Add Loader component to DashboardToolbar for improved saving feedback 2024-12-03 18:04:21 +00:00
Simon Larsen
8d75128603 Add debug logging for updated items in DatabaseService and improve ObjectID equality check 2024-12-03 17:59:16 +00:00
Simon Larsen
ba4795e4b3 Serialize dashboardViewConfig in DashboardViewer for consistent data handling 2024-12-03 17:43:53 +00:00
Simon Larsen
65f9f7c830 Fix key assignment in MoreMenuItem to ensure unique keys for list items 2024-12-03 17:21:28 +00:00
Simon Larsen
99e56f9312 Fix mouse event coordinates in DashboardBaseComponent for accurate positioning 2024-12-03 17:14:36 +00:00
Simon Larsen
b380e6d770 Refactor ConfirmModal and DashboardToolbar for improved code readability and consistency 2024-12-03 16:36:02 +00:00
Simon Larsen
9d0add605d Add closeButtonText prop to modal components; implement confirmation modal for unsaved changes in DashboardToolbar 2024-12-03 16:31:32 +00:00
Simon Larsen
d4737841ce Enhance DashboardChartComponent to improve error handling and display an icon on error; refactor metric query configuration for better readability 2024-12-03 16:25:11 +00:00
Simon Larsen
d6f9971cb6 Refactor DashboardChartComponent and DashboardValueComponent for improved readability; add unit display in DashboardValueComponent 2024-12-03 14:31:22 +00:00
Simon Larsen
8e4733b72f Refactor Dashboard components and BasicForm for improved state management and code readability 2024-12-03 14:18:35 +00:00
Simon Larsen
07c387289a Enhance BasicForm and ArgumentsForm to support dynamic values; update Dashboard components to use ComponentLoader for improved loading state handling 2024-12-03 13:57:05 +00:00
Simon Larsen
956f786d1a Merge branch 'master' of github.com:OneUptime/oneuptime 2024-12-03 13:15:32 +00:00
Simon Larsen
56b2fbfb77 Refactor DashboardTextComponent and DashboardToolbar to improve layout and remove fullscreen state management; enhance DashboardViewer for better fullscreen handling 2024-12-03 13:15:30 +00:00
Simon Larsen
bba67afc36 Merge pull request #1758 from golyalpha/patch-1
Fix alert name links opening invalid/broken page
2024-12-03 13:11:56 +00:00
golyalpha
d1dd0d7774 Update Alert.tsx
Fix route on Alert name link in list of alerts
2024-12-02 21:06:17 +01:00
Simon Larsen
c7c6a54155 Enhance DashboardValueComponent and DashboardTextComponent for improved layout and error handling; add metric query configuration and adjust title height calculation 2024-12-02 18:29:10 +00:00
Simon Larsen
12fc9863d2 Refactor DashboardTextComponent and DashboardValueComponent to use consistent decimal notation for height calculations, improving code clarity 2024-12-02 18:16:49 +00:00
Simon Larsen
4ec718a966 Update DashboardValueComponent to dynamically set font sizes based on component height for improved text display 2024-12-02 18:14:50 +00:00
Simon Larsen
91b2a6e44f Update DashboardTextComponent to adjust text height calculation and apply it as font size for better text display 2024-12-02 18:13:11 +00:00
Simon Larsen
aa2e79bd82 Refactor MetricAlias component layout for improved responsiveness; adjust input widths for better alignment 2024-12-02 18:06:58 +00:00
Simon Larsen
cc62b26002 Refactor DashboardChartComponent and related components for improved code readability and maintainability; add optional title and description properties for enhanced chart configuration 2024-12-02 18:03:38 +00:00
Simon Larsen
6113b10c74 Update DashboardChartComponent to support dynamic legend and legendUnit properties for improved chart configuration 2024-12-02 18:00:57 +00:00
Simon Larsen
52a952f41e Add legendUnit property to DashboardChartComponent and MetricExplorer for enhanced chart configuration 2024-12-02 17:57:34 +00:00
Simon Larsen
257b4283e1 Add legend and legendUnit properties to MetricAliasData; update DashboardChartComponent and related components for legend display and configuration 2024-12-02 17:55:39 +00:00
Simon Larsen
31b4eba73f Update MetricAliasData to allow optional properties; enhance DashboardChartComponent to include chart title and description 2024-12-02 17:46:28 +00:00
Simon Larsen
0dec6255f6 Add optional properties for chart customization in DashboardChartComponent; enhance error handling in Dashboard components 2024-12-02 17:38:00 +00:00
Simon Larsen
baabf84951 Refactor Dashboard components for improved readability; update DashboardTextComponent to dynamically set height and fix formatting in DashboardValueComponent 2024-12-02 17:16:12 +00:00
Simon Larsen
359c36e023 Refactor MetricCharts and LineChart components for improved readability; update DashboardChartComponent to handle dynamic height and adjust DashboardValueComponent for new metric query configuration 2024-12-02 16:37:32 +00:00
Simon Larsen
285fe7f524 Add heightInPx prop to ChartGroup, LineChart, and MetricCharts for dynamic height adjustment 2024-12-02 15:57:50 +00:00
Simon Larsen
093e8e5591 Refactor Dashboard components for improved readability and add hideCard prop to ChartGroup and MetricCharts 2024-12-02 15:42:34 +00:00
Simon Larsen
73ce957b57 Enhance MonitorResourceUtil to include monitorName in attributes and improve error handling in Dashboard components 2024-12-02 15:33:37 +00:00
Simon Larsen
5dbb80457a Fix typos in data retention references across multiple views 2024-11-30 19:02:26 +00:00
Simon Larsen
d53b2d0e1c Add dashboardStartAndEndDate prop to DashboardCanvas and DashboardViewer components 2024-11-29 19:20:53 +00:00
Simon Larsen
c4256a0dea Refactor Dashboard components for improved code consistency and readability 2024-11-29 19:17:47 +00:00
Simon Larsen
b8fc933acb Add start and end date handling to Dashboard components and implement metric result fetching 2024-11-29 19:03:34 +00:00
Simon Larsen
45d447bf2c Add ColorSwatch enum and update Dashboard date range handling 2024-11-29 18:13:58 +00:00
Simon Larsen
a0400be8cd Add start and end date selection functionality to Dashboard components 2024-11-29 17:29:12 +00:00
Simon Larsen
3688381d4a Add max height calculation to DashboardCanvas for improved rendering logic 2024-11-29 13:03:31 +00:00
Simon Larsen
1f5287c2e6 Refactor DuplicateModel component in Settings page for improved readability and consistency 2024-11-29 12:54:17 +00:00
Simon Larsen
3e97d6bba1 Add DuplicateModel component to Settings page for dashboard duplication functionality 2024-11-29 12:50:25 +00:00
Simon Larsen
32c0cbc4ad Add Settings page and update routing and breadcrumbs for dashboard 2024-11-29 12:47:34 +00:00
Simon Larsen
90f267105f Add MetricViewData interface and implement MetricCharts component for enhanced metrics visualization 2024-11-28 21:43:38 +00:00
Simon Larsen
eaa9a5f1a0 Make metricAliasData optional in MetricView component for improved safety and handling 2024-11-28 14:11:13 +00:00
Simon Larsen
70da661041 Update MetricQueryConfigData to make metricAliasData optional and refactor ArgumentsForm and MetricQueryConfig components for improved type handling and conditional rendering 2024-11-28 13:27:31 +00:00
Simon Larsen
b307a74319 Refactor dashboard component argument types and update metrics handling in DashboardCanvas and ComponentSettingsSideOver 2024-11-28 13:16:44 +00:00
Simon Larsen
5c2fa28fff Refactor dashboard components to utilize JSONFunctions for deserialization of dashboard view configurations 2024-11-28 11:50:15 +00:00
Simon Larsen
2f8495e5b5 Add telemetry services loading and filtering to TraceTable component 2024-11-27 13:19:15 +00:00
Simon Larsen
d3d9c46812 Add exception handling to SpanViewer component with detailed display of exceptions 2024-11-27 13:05:59 +00:00
Simon Larsen
9e50d068db Enhance Clickhouse connection handling with improved error responses and status checks 2024-11-27 11:24:30 +00:00
Simon Larsen
7232a3142c Remove unused APIException import from CRUD components for cleaner code 2024-11-27 10:43:19 +00:00
Simon Larsen
a1ca2e3f37 Refactor API component error handling to consistently use errorPort and return detailed error messages 2024-11-27 10:39:40 +00:00
Simon Larsen
a5d993b999 Remove unused load distribution logic in Monitor API 2024-11-27 10:24:36 +00:00
Simon Larsen
854be1ddeb Swap debug ports for OpenTelemetryIngest and Fluent Ingest configurations in launch.json 2024-11-26 17:55:10 +00:00
Simon Larsen
fe5b93f66e Add Project ID field to APIKeyView for enhanced project tracking 2024-11-26 17:09:31 +00:00
Simon Larsen
f259ddecd5 Update TraceTable terminology from "Trace" to "Span" for consistency in terminology 2024-11-26 17:07:52 +00:00
Simon Larsen
680be0e468 Add conditional fetching of aggregated results in MetricView based on hideQueryElements prop 2024-11-26 16:38:49 +00:00
Simon Larsen
488a2b0b57 Add modulo function to QueryHelper and random number generator to NumberUtil for load distribution in monitor fetching 2024-11-26 15:38:00 +00:00
Simon Larsen
e0871e6b16 Remove unnecessary blank lines in QueryHelper class for improved code clarity 2024-11-26 14:05:26 +00:00
Simon Larsen
ab5acdef09 Refactor XAxis precision methods for improved date rounding and remove random sorting method from QueryHelper 2024-11-26 14:04:30 +00:00
Simon Larsen
002c23b2a5 Disable Clickhouse status check in InfrastructureStatus for improved reliability 2024-11-26 13:17:10 +00:00
Simon Larsen
b10134fb30 Add random sorting method to QueryHelper and apply it in Monitor probe fetching 2024-11-26 09:04:19 +00:00
Simon Larsen
93027ec0ae Refactor string to number conversion in AnalyticsDatabaseService for improved readability 2024-11-25 19:10:36 +00:00
Simon Larsen
481b09531f Convert string values to numbers in AnalyticsDatabaseService for aggregate column processing 2024-11-25 19:05:20 +00:00
Simon Larsen
4da1dd3f6b Refactor incomingRequest initialization in CheckHeartbeat for clarity 2024-11-25 18:29:14 +00:00
Simon Larsen
661d44d6b0 Add incomingMonitorRequest to CheckHeartbeat and streamline request initialization 2024-11-25 18:28:30 +00:00
Simon Larsen
d6dacb6493 Update TelemetryException model to use VeryLongText type for message fields and add migration for database schema changes 2024-11-25 16:58:08 +00:00
Simon Larsen
0ad5ee5997 Prevent owner notification for the first monitor status timeline entry 2024-11-25 15:05:01 +00:00
Simon Larsen
5ad8f00388 Refactor validation messages for improved formatting and readability 2024-11-25 14:32:58 +00:00
Simon Larsen
450311de3c Refactor validation messages for improved readability and add visibility check for field validation 2024-11-25 14:32:25 +00:00
Simon Larsen
1bc4f07fa3 Update features table to include new items and adjust existing entries 2024-11-25 14:05:58 +00:00
Simon Larsen
d091c93bfc Increase default navigation timeout for status checks and add new probe ingest tests 2024-11-25 14:00:53 +00:00
Simon Larsen
2ff9b47f1c Refactor retryCount initialization across multiple modules for consistency 2024-11-25 13:53:43 +00:00
Simon Larsen
6b470e671f Implement retry mechanism for infrastructure status checks across multiple modules 2024-11-25 13:49:49 +00:00
Simon Larsen
14c9174e24 Add debug logging for database operations and update feature table with new items 2024-11-25 13:08:47 +00:00
Simon Larsen
e4beb13982 Increase timeoutSeconds for liveness and readiness probes in values.yaml 2024-11-23 07:48:29 +00:00
Simon Larsen
2b006e1765 Update Fluentd configuration with new endpoint and token for production environment 2024-11-22 18:41:37 +00:00
Simon Larsen
f45c7f8d30 Add Nginx location for incoming-request-ingest with proxy settings 2024-11-22 18:24:47 +00:00
Simon Larsen
e3a2f95fc2 Add Nginx locations for fluent-ingest and open-telemetry-ingest with proxy settings 2024-11-22 18:18:11 +00:00
Simon Larsen
d27c161665 Add OFF log level to ConfigLogLevel enum and update documentation in values.yaml 2024-11-22 13:00:06 +00:00
Simon Larsen
b9d6a69f00 Fix typo in upstream block name for incoming requests in Nginx configuration 2024-11-22 12:08:08 +00:00
Simon Larsen
fac334d58a Remove probe port configuration and update related references in Helm chart and Docker setup 2024-11-22 11:37:52 +00:00
Simon Larsen
a4913cc5bf Rename host option to url in ClickhouseConfig for clarity 2024-11-22 10:32:15 +00:00
Simon Larsen
0ad1a34e10 Remove unused import for EJS in FluentIngest index file 2024-11-22 10:28:52 +00:00
Simon Larsen
325fa0eb7a Add SERVER_OPEN_TELEMETRY_INGEST_HOSTNAME to Helm template and update tag replacement in change-release-to-test-tag script 2024-11-22 10:23:56 +00:00
Simon Larsen
c02c1e6808 Update test-release workflow to replace deprecated Docker image deployment step 2024-11-22 10:08:58 +00:00
Simon Larsen
96a4a17320 Remove probe-ingest Docker image deployment steps from test-release workflow 2024-11-21 20:10:19 +00:00
Simon Larsen
23c169c6a3 Update Helm templates to use consistent naming for replicaCount across ingest services 2024-11-21 19:58:47 +00:00
Simon Larsen
6c4a4cad50 Fix replicaCount reference in probe-ingest Helm template 2024-11-21 19:11:27 +00:00
Simon Larsen
34c1af08db Fix import path for FluentIngestAPI in Index.ts 2024-11-21 19:05:12 +00:00
Simon Larsen
128aec9869 Remove protobufjs dependency from ProbeIngest and IncomingRequestIngest; update probe.yaml for consistent service URL structure 2024-11-21 18:13:42 +00:00
Simon Larsen
4fc2029a61 Add backward compatibility for /ingestor route in Nginx and ProbeIngest; update Probe configuration for new URL structure 2024-11-21 17:53:35 +00:00
Simon Larsen
815ae7161d Rename Ingestor to ProbeIngest; update configurations, routes, and Docker support; add new request types and workflows 2024-11-21 17:18:22 +00:00
Simon Larsen
3a1f5c7120 Refactor OpenTelemetry Ingest Dockerfile and configuration; update environment variables and docker-compose for new service integration 2024-11-21 17:08:35 +00:00
Simon Larsen
eec51342de Add configuration files for OpenTelemetry Ingest, including .gitignore, .dockerignore, and nodemon.json; refactor code for consistency and clarity 2024-11-21 16:42:29 +00:00
Simon Larsen
945cef653c Add Incoming Request Ingest service with configuration, Docker support, and tests 2024-11-21 14:41:37 +00:00
Simon Larsen
93154aabc7 Remove FluentIngestAPI from Ingestor routes 2024-11-21 13:36:29 +00:00
Simon Larsen
9244e49e6b Add Fluent Ingest service with configuration, Docker support, and tests 2024-11-21 13:31:11 +00:00
Simon Larsen
74e43f0526 Add debug logging for Clickhouse connection status and fix indentation in nginx.yaml 2024-11-21 12:34:57 +00:00
Simon Larsen
1fba734fd0 Refactor health check configurations to use structured probes in values.yaml and templates 2024-11-21 12:11:17 +00:00
Simon Larsen
197e4e67e0 Merge pull request #1750 from golyalpha/master
Add startupProbe to deployments with healthchecks
2024-11-21 10:56:58 +00:00
Radek Goláň jr.
02afbb19be add startupProbe to deployments with healtchecks 2024-11-21 09:00:27 +01:00
Simon Larsen
972e6cb98f Add logging for infrastructure status checks in Status.ts 2024-11-20 21:33:32 +00:00
Simon Larsen
b14f918d59 Update ClickHouse dependency version to 6.3.2 in Chart.yaml and Chart.lock 2024-11-20 18:58:02 +00:00
Simon Larsen
c05d4a0eea Update live check method in StatusAPI to use liveCheck instead of readyCheck 2024-11-20 18:56:07 +00:00
Simon Larsen
3732a5c95f Remove unnecessary blank line in ProbeAuthorization class 2024-11-20 17:33:40 +00:00
Simon Larsen
1e0f6ff558 Add comment to explain URI encoding in getClusterKey method 2024-11-20 15:29:36 +00:00
Simon Larsen
6a361e5b87 Remove unused cluster key retrieval method from ProbeAuthorization middleware 2024-11-20 15:28:00 +00:00
Simon Larsen
c94ac75a6f Refactor ClusterKeyAuthorization to use class reference for cluster key retrieval 2024-11-20 15:14:34 +00:00
Simon Larsen
b49e40780a Remove unused ObjectID import from ClusterKeyAuthorization middleware 2024-11-20 14:29:48 +00:00
Simon Larsen
dd01fa0a3d Refactor ClusterKeyAuthorization to use a dedicated method for cluster key retrieval and simplify type handling 2024-11-20 14:26:36 +00:00
Simon Larsen
a2218b01d0 Add resourcesPreset configuration to Clickhouse settings in values.yaml 2024-11-20 08:36:35 +00:00
Simon Larsen
8d9d83d679 Downgrade Clickhouse dependency version to 6.1.0 in Chart.yaml and Chart.lock 2024-11-19 17:51:46 +00:00
Simon Larsen
546c74297f Consolidate Clickhouse client imports for improved readability 2024-11-19 17:21:16 +00:00
Simon Larsen
9fc1e73fd3 Add additional Clickhouse service ports for TCP, MySQL, and PostgreSQL 2024-11-19 13:49:32 +00:00
Simon Larsen
64e713f503 Update Clickhouse dependency version to 6.3.2 in Chart.yaml and Chart.lock 2024-11-19 11:26:01 +00:00
Simon Larsen
f254209410 Refactor AnalyticsDatabaseService and ClickhouseDatabase imports for improved clarity 2024-11-18 19:54:30 +00:00
Simon Larsen
2f738f8b58 Refactor Clickhouse configuration imports for improved clarity and type usage 2024-11-18 18:57:36 +00:00
Simon Larsen
e2da9b5bc3 Update @clickhouse/client and @clickhouse/client-common to version 1.8.1 2024-11-18 18:51:45 +00:00
Simon Larsen
04bfaf754a Add health check endpoints for global cache, analytics database, and database 2024-11-18 18:42:31 +00:00
Simon Larsen
ab328b0987 Simplify EmailTitle helper usage in SubscriberIncidentStateChanged template 2024-11-18 15:08:17 +00:00
Simon Larsen
521844a5ff Add liveness and readiness probe configuration options to Helm chart templates 2024-11-18 15:07:51 +00:00
Simon Larsen
c4096e7000 Refactor ArgumentsForm, DashboardView, and DashboardToolbar components for improved readability and consistency 2024-11-15 17:14:56 +00:00
Simon Larsen
8afe8cf7fb Comment out NavBarItem for Dashboards in NavBar component 2024-11-15 17:13:52 +00:00
Simon Larsen
fa8b52fa83 Add DashboardViewConfig type and enhance dashboard saving functionality with loading state 2024-11-15 17:13:18 +00:00
Simon Larsen
a8baa76096 Refactor Dashboard components by renaming and replacing DashboardUnit with BlankDashboardUnit for improved clarity and structure 2024-11-15 14:54:09 +00:00
Simon Larsen
8d5cef72b3 Refactor formatting and spacing in Dashboard components for improved readability 2024-11-15 14:07:51 +00:00
Simon Larsen
ef0f0ffa0b Refactor SideOver and ComponentSettingsSideOver components for improved structure and readability 2024-11-15 14:04:12 +00:00
Simon Larsen
eef4e19dc9 Add component deletion functionality and improve selection handling in Dashboard components 2024-11-15 12:45:04 +00:00
Simon Larsen
5af41891dc Enhance DashboardCanvas and DashboardViewer components with selection handling and state management 2024-11-15 12:08:37 +00:00
Simon Larsen
4539b9d381 Update permissions for ScheduledMaintenanceTemplate to include additional roles for update access 2024-11-15 11:46:32 +00:00
Simon Larsen
c1aadd7ce7 Comment out NavBarItem for "Dashboards" in the DashboardNavbar component 2024-11-14 18:27:06 +00:00
Simon Larsen
3b76b92fcb Refactor interface definitions and formatting for improved consistency and readability 2024-11-14 18:21:55 +00:00
Simon Larsen
fe0dc51bef Add DashboardComponentType enum and refactor dashboard component interfaces for improved type safety 2024-11-14 18:10:03 +00:00
Simon Larsen
e279da47bf Refactor dashboard component interfaces and update argument structures for improved configuration 2024-11-14 17:50:36 +00:00
Simon Larsen
5d93000484 Add new metric-related interfaces and update component props for enhanced metrics configuration 2024-11-14 15:21:26 +00:00
Simon Larsen
b826a78700 Add minimum width and height properties to dashboard components for better layout control 2024-11-14 12:47:48 +00:00
Simon Larsen
eded26d92c Add support for HEAD requests in WebsiteMonitor and update request handling 2024-11-13 16:44:42 +00:00
Simon Larsen
517d00dc9a Integrate Playwright for browser automation and add viewport handling in SyntheticMonitor 2024-11-13 16:13:46 +00:00
Simon Larsen
96752f1473 Update aggregation intervals and refactor MetricView component for improved date handling and performance 2024-11-13 13:04:44 +00:00
Simon Larsen
bbc2e306f4 Add waitUntil option to page.setContent for improved reliability in screenshot capture 2024-11-13 12:14:26 +00:00
Simon Larsen
03e063c35b Merge pull request #1746 from OneUptime/take-screenshot-on-incident-create
Take screenshot on incident create
2024-11-13 12:07:36 +00:00
Simon Larsen
4c6c1381c8 Remove unnecessary blank line in MonitorIncident class for improved code readability 2024-11-13 12:07:12 +00:00
Simon Larsen
4814451277 Remove unused imports and clean up screenshot handling in MonitorResourceUtil 2024-11-13 12:00:51 +00:00
Simon Larsen
0c7b2ead8c Refactor migration files to drop specific indexes and improve code formatting; add keys to MoreMenuItem components in UI 2024-11-13 11:22:23 +00:00
Simon Larsen
6c6b80d3c8 Remove unused index decorators from IncidentStateTimeline and MonitorStatusTimeline models, and add migrations to drop specific indexes 2024-11-12 18:21:06 +00:00
Simon Larsen
76f9537002 Refactor migration files to improve index management and clean up MonitorIncident and MonitorResource utility classes 2024-11-12 17:47:07 +00:00
Simon Larsen
c0994ff055 Remove unused index decorators from Alert and Incident models, and add new migration files to drop specific indexes 2024-11-12 17:43:23 +00:00
Simon Larsen
86694d9627 Add Playwright dependency and update Dockerfile for installation 2024-11-12 15:17:52 +00:00
Simon Larsen
aa95f89b49 Merge pull request #1745 from Hubelia/fix_typo_certificate_provisioning
Fix typo in certificate provisioning
2024-11-12 14:41:27 +00:00
RegisHubelia
628b971dc9 Fix automatically typo in certificate provisioning currently set to automatiucally 2024-11-12 08:25:03 -05:00
Simon Larsen
ae002c0d88 Add validation for start and end date in MetricView to prevent loading without valid dates 2024-11-12 11:42:25 +00:00
Simon Larsen
a98fc6f784 Add Pill component for enabled/disabled status display in Workflow views 2024-11-11 18:43:46 +00:00
Simon Larsen
5c459eede8 Refactor metric handling by removing MonitorMetricsByMinute references, adding service type to metrics, and implementing a job to delete old monitor metrics 2024-11-11 18:06:31 +00:00
Simon Larsen
d9d2b615d2 Refactor code for consistency by standardizing property names and improving formatting across various components 2024-11-11 17:24:05 +00:00
Simon Larsen
86e6bca5e1 Enhance analytics functionality by adding groupBy support in various models and components 2024-11-11 17:01:35 +00:00
Simon Larsen
7cfff4787c Remove unnecessary whitespace and improve formatting in MonitorMetricType utility 2024-11-11 10:16:48 +00:00
Simon Larsen
491a8f05bc Update monitor metric units for consistency and improve metric view legend handling 2024-11-07 18:36:27 +00:00
Simon Larsen
f67f1a64bd Add utility method to determine aggregation type by monitor metric type 2024-11-07 17:48:35 +00:00
Simon Larsen
a31ef122a3 Refactor MetricFilter component for improved readability in metric name dropdown options 2024-11-07 17:45:34 +00:00
Simon Larsen
0a82d940fd Add MetricNameAndUnit interface and implement metrics view in Monitor section 2024-11-07 17:26:31 +00:00
Simon Larsen
6ec658b9a5 Refactor MonitorMetricsElement component for improved code readability 2024-11-07 15:52:05 +00:00
Simon Larsen
4e8de2303f Refactor database service to handle date columns and update monitor metrics querying logic 2024-11-07 14:55:16 +00:00
Simon Larsen
19625d6cef Implement MonitorMetricsElement component for dynamic metric querying and visualization 2024-11-07 13:16:44 +00:00
Simon Larsen
e346b12011 Add MonitorMetrics component and MonitorMetricType enum for enhanced monitoring capabilities 2024-11-06 17:40:16 +00:00
Simon Larsen
2b11f2f2b8 Add MonitorMetricType enum and update monitor metric naming conventions 2024-11-06 16:58:45 +00:00
Simon Larsen
3fb62cb358 Update Metric model description for clarity on service ID usage 2024-11-06 15:26:57 +00:00
Simon Larsen
108dfaccf8 Remove MonitorMetricsByMinute model and related service and job files 2024-11-06 13:42:25 +00:00
Simon Larsen
eb20a3c9a2 Comment out NavBarItem for "Dashboards" in the navigation bar 2024-11-06 12:23:02 +00:00
Simon Larsen
988d828bb6 Refactor Dashboard components for improved readability and consistency in code formatting 2024-11-06 12:20:37 +00:00
Simon Larsen
7fd0000c68 Update documentation for self-hosting OneUptime with clearer endpoint examples 2024-11-06 11:41:41 +00:00
Simon Larsen
6286653dd4 Enhance DashboardBaseComponent to track component position using state and update on dashboard view changes 2024-11-05 19:42:51 +00:00
Simon Larsen
9690a5897b Refactor Dashboard components to use component IDs instead of full component objects for improved performance and clarity 2024-11-05 14:58:42 +00:00
Simon Larsen
eefac8703d Update DashboardBaseComponent to use event.pageX and event.pageY for accurate position calculations 2024-11-01 17:13:54 +00:00
Simon Larsen
077a3aad3b Refactor DashboardBaseComponent to improve coordinate calculation and ensure new positions remain within dashboard bounds 2024-11-01 16:55:17 +00:00
Simon Larsen
3ae72726b8 Fix DashboardBaseComponent position calculations to ensure new coordinates remain within bounds 2024-11-01 14:32:21 +00:00
Simon Larsen
90c0e42eb1 Refactor DashboardCanvas and DashboardBaseComponent to enhance component positioning and sizing logic 2024-11-01 14:22:13 +00:00
Simon Larsen
8877ce6d12 Refactor Dashboard size calculations and update DashboardTextComponent height 2024-11-01 13:15:31 +00:00
Simon Larsen
1af5dae991 Refactor DashboardBaseComponent to use consistent naming conventions for width and height variables 2024-11-01 10:54:31 +00:00
Simon Larsen
ee49f3e6dd Refactor GetHeightOfDashboardComponent and GetWidthOfDashboardComponent functions 2024-10-31 18:31:45 +00:00
Simon Larsen
8d4b8b7881 Refactor DashboardToolbar component to adjust margins and spacing 2024-10-31 17:21:25 +00:00
Simon Larsen
4626520f62 Refactor DashboardBaseComponent to add full screen functionality and adjust styling 2024-10-31 13:26:32 +00:00
Simon Larsen
7c04569a14 Refactor IconProp enum and add new icons: Bold, Italic, and Underline 2024-10-30 18:45:58 +00:00
Simon Larsen
bd8b1ca909 Refactor Dashboard components and add full screen functionality 2024-10-30 17:40:38 +00:00
Simon Larsen
13dddab5e5 Refactor MonitorTestForm component to adjust margins and spacing 2024-10-30 11:56:28 +00:00
Simon Larsen
771b0e4645 Refactor MonitorTestForm component to adjust margins and spacing 2024-10-29 18:11:02 +00:00
Simon Larsen
d99111b2f9 Refactor MonitorTest table to remove "lastMonitoringLog" column and add "monitorStepProbeResponse" and "isInQueue" columns 2024-10-29 18:04:36 +00:00
Simon Larsen
c2bb44f823 Refactor MonitorTestForm component and add test functionality 2024-10-29 17:55:09 +00:00
Simon Larsen
7ece118acd Refactor MonitorTestService and MonitorTest model 2024-10-29 17:43:36 +00:00
Simon Larsen
9b4ef72682 Refactor MonitorTestService and MonitorTest model 2024-10-29 16:59:07 +00:00
Simon Larsen
25ba824d79 Refactor MonitorResourceUtil and CriteriaFilterUtil to add MonitorTest model 2024-10-29 13:43:10 +00:00
Simon Larsen
9b35836dc8 Refactor MonitorResourceUtil to support ExecutionTime metric in synthetic monitors 2024-10-29 13:19:26 +00:00
Simon Larsen
809f9a38bc Refactor MonitorResourceUtil and MonitorChart components 2024-10-28 14:43:54 +00:00
Simon Larsen
df08f2b188 Refactor MonitorResourceUtil and CriteriaFilterUtil to support ExecutionTime metric 2024-10-28 14:41:59 +00:00
Simon Larsen
9512b9d001 Merge branch 'master' into release 2024-10-28 13:46:58 +00:00
Simon Larsen
995026f65f Refactor StatusPageSubscriberService to remove unnecessary code 2024-10-28 13:46:52 +00:00
Simon Larsen
d619d2afff Refactor StatusPageSubscriberService to fix issue with sending notifications for unsubscribed subscribers 2024-10-28 13:44:49 +00:00
Simon Larsen
1affe3cdda Refactor StatusPageSubscriberService to include event type selection 2024-10-28 13:35:33 +00:00
Simon Larsen
0bee18fa63 Refactor SubscriberSettings component to remove unnecessary code 2024-10-28 13:09:26 +00:00
Simon Larsen
2ad7face9a Refactor StatusPageAPI to allow subscribers to choose event types 2024-10-28 12:53:26 +00:00
Simon Larsen
33604bba3c Refactor SubscriberSettings component to allow subscribers to choose event types 2024-10-28 12:46:16 +00:00
Simon Larsen
9d6c34b796 Refactor StatusPageEventType enum to include new event types 2024-10-28 12:41:24 +00:00
Simon Larsen
052c3040fb Merge branch 'master' into release 2024-10-28 11:52:42 +00:00
Simon Larsen
89804ebbd1 Refactor Dashboard components to include component ID in rendered output 2024-10-28 11:52:19 +00:00
Simon Larsen
e21572af6d Merge branch 'release' of github.com:OneUptime/oneuptime into release 2024-10-28 11:44:56 +00:00
Simon Larsen
3865f6cb06 Refactor Markdown class to convert tags > and < to &gt; and &lt; 2024-10-28 11:44:26 +00:00
Simon Larsen
296791ed25 Refactor NavBar component to temporarily comment out unused DashboardNavItem 2024-10-28 10:11:05 +00:00
Simon Larsen
017216b8a6 Refactor DashboardBaseComponent to remove unused event parameters in onDragStart and onDragEnd 2024-10-28 10:07:30 +00:00
Simon Larsen
6fb6329356 Refactor DashboardViewConfigUtil to fix lastRowThatHasComponent calculation 2024-10-28 10:05:57 +00:00
Simon Larsen
477da276b2 Refactor Dashboard components and add new dashboard view 2024-10-25 15:18:23 +01:00
Simon Larsen
dbf90bf114 Refactor Dashboard components and add conditional rendering for empty dashboard 2024-10-25 13:12:17 +01:00
Simon Larsen
d6fa9b3905 Refactor DashboardToolbar to remove unused imports and update props usage 2024-10-25 08:48:17 +01:00
Simon Larsen
95573032e7 Refactor DashboardCanvas to render DashboardBaseComponentElement for each component 2024-10-25 07:57:00 +01:00
Simon Larsen
82699e5276 Refactor DashboardChartComponent to remove unused imports and update file name 2024-10-25 07:52:46 +01:00
Simon Larsen
54b95107c3 Refactor DashboardChartComponent and related components 2024-10-25 07:52:21 +01:00
Simon Larsen
e54b337c45 Refactor DashboardSize to calculate total width of dashboard in rem 2024-10-24 19:12:46 +01:00
Simon Larsen
75ab4bd946 Refactor DashboardViewConfig enum to use explicit types for default height and width 2024-10-24 18:34:31 +01:00
Simon Larsen
b31ffab577 Refactor DashboardComponentType enum to fix casing and add missing newline at end of file 2024-10-24 17:23:34 +01:00
Simon Larsen
8f2da2bdc5 Refactor dashboard component types and add chart, text, and value components 2024-10-24 15:38:13 +01:00
Simon Larsen
6ae31ac0da Refactor canvas and row components to use explicit types for default height and width 2024-10-23 14:54:01 +01:00
Simon Larsen
da22f2ef51 Refactor DashboardMode enum to fix formatting and add missing newline at end of file 2024-10-23 14:48:51 +01:00
Simon Larsen
a882507aff Refactor MoreMenu component to use Button instead of Icon 2024-10-23 14:46:24 +01:00
Simon Larsen
04c74de8e3 Merge pull request #1738 from OneUptime/master
Release
2024-10-23 13:45:33 +01:00
Simon Larsen
f13adebc04 Refactor DashboardSize to fix casing of heightInDashboardUnits property 2024-10-23 13:36:31 +01:00
Simon Larsen
5573d1cd6c Refactor NavBar component to uncomment Dashboards item 2024-10-23 13:09:00 +01:00
Simon Larsen
24d15c98ef Refactor NavBar component to comment out unused code 2024-10-23 13:08:37 +01:00
Simon Larsen
97de3ff6c7 Refactor DashboardService to include DashboardViewConfig 2024-10-23 13:07:47 +01:00
Simon Larsen
7bcecd0a1d Update package dependencies 2024-10-23 12:56:34 +01:00
Simon Larsen
b050dfdc1c Refactor CategoryCheckbox component to remove unnecessary array cloning 2024-10-23 12:56:10 +01:00
Simon Larsen
05a2fe6665 Refactor CRUD permissions to include read access 2024-10-23 12:50:02 +01:00
Simon Larsen
986479e8d5 Refactor DashboardViewConfig to use semicolon instead of comma 2024-10-23 12:45:22 +01:00
Simon Larsen
16fad55f9f Refactor Dashboard model to include DashboardViewConfig 2024-10-23 12:18:15 +01:00
Simon Larsen
4f03f448e8 Add new dashboard components and interfaces 2024-10-23 12:15:00 +01:00
Simon Larsen
f3e72a30d3 Delete unused ServiceDelete component 2024-10-23 11:51:38 +01:00
Simon Larsen
cf319c5afb Add new chart types and dashboard component interfaces 2024-10-23 11:24:13 +01:00
Simon Larsen
3afd4ed5b5 Merge pull request #1734 from OneUptime/oneuptime-copilot-oneuptime-copilot-improve-comments-RINtg
Improved comments on /App/FeatureSet/Identity/API/StatusPageSSO.ts
2024-10-22 12:51:20 +01:00
Simon Larsen
00a783acca Merge pull request #1732 from OneUptime/snyk-fix-d8042450b0fd7524c713302d42109ccc
[Snyk] Fix for 1 vulnerabilities
2024-10-21 16:23:26 +01:00
Simon Larsen
3733c99b67 Merge pull request #1736 from fzamperin/master
refactor: change tailwind.js from cdn to serve local
2024-10-21 16:22:55 +01:00
Simon Larsen
e9daf776de fix monitor id on alert table 2024-10-21 16:22:03 +01:00
Fernando Penna
aced5f2124 Merge branch 'OneUptime:master' into master 2024-10-18 16:36:29 -03:00
Fernando Augusto Zamperin Penna
74ff0adefe refactor: adding standalone tailwindjs script on pages instead of cdn 2024-10-18 16:35:48 -03:00
Simon Larsen
4cefa756d6 add not notify on default incident state 2024-10-18 16:41:33 +01:00
Simon Larsen
365e44ebf9 add custom code monitor summary 2024-10-18 16:17:52 +01:00
Simon Larsen
b7d34e878f fix typo 2024-10-18 10:29:10 +01:00
OneUptime Copilot
15b2bf2071 Improved comments on /App/FeatureSet/Identity/API/StatusPageSSO.ts 2024-10-17 01:30:49 +00:00
Simon Larsen
5e85e73c0b add do not follow redirect to form 2024-10-16 18:20:03 +01:00
Simon Larsen
b9b5ca3325 switch base image to ecr 2024-10-16 15:54:57 +01:00
Simon Larsen
d89ee302fd turn do not redirect to false 2024-10-16 15:08:56 +01:00
Simon Larsen
a39db4ffc9 fix timeline on monitor chart 2024-10-16 14:59:01 +01:00
Simon Larsen
bbced15076 do not follow redirects when monitoring 2024-10-16 12:50:24 +01:00
Simon Larsen
1b3cde35f3 add filter views to other tables 2024-10-16 12:02:16 +01:00
Simon Larsen
f1dda4a7b3 fix filter settings 2024-10-15 19:20:46 +01:00
snyk-bot
f50120d19a fix: Common/package.json & Common/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-COOKIE-8163060
2024-10-15 06:03:43 +00:00
Simon Larsen
9d50f77908 Merge branch 'master' of github.com:OneUptime/oneuptime 2024-10-14 20:23:23 +01:00
Simon Larsen
f0a3ddbf2e make UI for table filters nicer 2024-10-14 20:23:20 +01:00
Simon Larsen
8a35eb47e6 Merge pull request #1618 from OneUptime/oneuptime-copilot-oneuptime-copilot-improve-comments-nJEHb
[OneUptime Copilot] Improve Comments on /App/Index.ts
2024-10-14 15:33:53 +01:00
Simon Larsen
6ccf8961bf Merge pull request #1701 from OneUptime/snyk-fix-2d8a0a8383cb68645721c65394cd6cd7
[Snyk] Security upgrade node from 22.5 to 22.9
2024-10-14 15:33:08 +01:00
Simon Larsen
fab8ca112b Merge pull request #1707 from OneUptime/snyk-fix-6186b78cb9bdefdfbc19f061c3bc0e9c
[Snyk] Security upgrade node from 22.5 to 22.8
2024-10-14 15:32:39 +01:00
Simon Larsen
bb81d4cf27 Merge branch 'master' into snyk-fix-6186b78cb9bdefdfbc19f061c3bc0e9c 2024-10-14 15:32:31 +01:00
Simon Larsen
931999c39f Merge pull request #1703 from OneUptime/snyk-fix-9272f658e87a4afce4e711dde5615427
[Snyk] Security upgrade express from 4.19.2 to 4.20.0
2024-10-14 15:32:09 +01:00
Simon Larsen
2e1e112b42 Merge pull request #1731 from OneUptime/snyk-fix-6dcbd9c940cb1f77c486fe016548c853
[Snyk] Security upgrade express from 4.19.2 to 4.21.1
2024-10-14 15:31:54 +01:00
snyk-bot
3b7a7c3c49 fix: StatusPage/package.json & StatusPage/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-COOKIE-8163060
2024-10-14 05:38:21 +00:00
Simon Larsen
5d9252d1ff refactor: Enable domain editing and make certificate fields optional in StatusPageDelete component 2024-10-10 12:42:18 +01:00
Simon Larsen
7c85fb4ded refactor: Update status page delete message for custom certificates 2024-10-09 21:06:46 +01:00
Simon Larsen
9e45f4cea9 refactor: Add doNotFollowRedirects option to WebsiteRequest and API
This commit adds the `doNotFollowRedirects` option to the `WebsiteRequest` and `API` classes. When set to `true`, the classes will not follow redirects when making HTTP requests. This is achieved by setting the `maxRedirects` property of the `axiosOptions` object to 0. This change allows for more control over the behavior of HTTP requests and ensures that redirects are not automatically followed.
2024-10-09 20:11:15 +01:00
Simon Larsen
f5d2c61a70 refactor: Add logging for writing custom certificates to disk 2024-10-09 19:31:47 +01:00
Simon Larsen
d072a29cf8 refactor: Add WriteCustomCertsToDiskJob to Nginx/Index.ts and update UptimeUtil to round uptime percentage to specified precision
- The WriteCustomCertsToDiskJob has been added to the Nginx/Index.ts file to handle writing custom certificates to disk.
- The UptimeUtil has been updated to round the uptime percentage to the specified precision.
2024-10-09 19:24:17 +01:00
Simon Larsen
0d262429d9 refactor: Remove unused code in OverviewPageBranding and improve code formatting 2024-10-09 12:09:53 +01:00
Simon Larsen
7b1960f00c refactor: Update UptimeUtil to round uptime percentage to specified precision 2024-10-09 11:59:07 +01:00
Simon Larsen
e253be732f refactor: Update UptimeUtil to round uptime percentage to specified precision
The UptimeUtil class in the Common/Utils/Uptime directory has been updated to include a new method called roundToPrecision. This method takes a number and a precision value and rounds the number to the specified precision. This method is used in the calculateUptimePercentage method to round the uptime percentage to the precision specified in the data.group object.

This change ensures that the uptime percentage is displayed with the correct precision, providing more accurate information to users.

Refactor the UptimeUtil class to include the roundToPrecision method and update the calculateUptimePercentage method to use it.

Fixes #123
2024-10-09 11:39:21 +01:00
Simon Larsen
eaf4193cb0 refactor: Remove unused code in UptimeUtil 2024-10-09 11:23:49 +01:00
Simon Larsen
d7f881c468 fix: Add namespace to Semaphore lock in MonitorStatusTimelineService 2024-10-09 10:46:33 +01:00
Simon Larsen
8270934564 refactor: Improve locking mechanism in Semaphore class
- Modify the Semaphore class in Semaphore.ts to include a namespace parameter in the lock method.
- Update the lockTimeout default value from 1000 to 5000 milliseconds.
- Append the namespace to the key when creating a new Mutex instance.
- Add a try-catch block to handle errors when acquiring and releasing the mutex.
2024-10-09 10:23:50 +01:00
Simon Larsen
8590cfa4c0 feat: add note to alert type 2024-10-08 22:04:51 +01:00
Simon Larsen
09196f397e make alert private note work 2024-10-08 21:12:03 +01:00
Simon Larsen
bc714759bc Merge branch 'monitor-alert' 2024-10-08 20:26:12 +01:00
Simon Larsen
06d0dba258 add monitor alert 2024-10-08 20:26:00 +01:00
Simon Larsen
40cd066473 Merge pull request #1727 from OneUptime/monitor-alert
Monitor Alerts
2024-10-04 16:17:05 -07:00
Simon Larsen
7a38a0d9da fix rule in monitor criteria 2024-10-04 15:54:01 -07:00
Simon Larsen
add11806e0 add default alert severity id 2024-10-04 15:44:43 -07:00
Simon Larsen
97bf26ab03 make header alerts work 2024-10-04 15:34:50 -07:00
Simon Larsen
09955a5ba9 add header group 2024-10-04 11:40:38 -07:00
Simon Larsen
30db4e58ff refactor UI of header alerts 2024-10-04 11:01:36 -07:00
Simon Larsen
7eebd75088 add types to header alert 2024-10-04 09:12:13 -07:00
Simon Larsen
d17b687e03 add alert types to model alert 2024-10-04 09:08:00 -07:00
Simon Larsen
f08dbf6e8f fix issue with monitor group 2024-10-04 08:58:58 -07:00
Simon Larsen
4be7675b74 add active alerts to home page 2024-10-04 08:52:42 -07:00
Simon Larsen
6acb0fb486 add alerts page to monitor groups 2024-10-04 08:31:46 -07:00
Simon Larsen
54cd18896a Refactor SideMenu component in Settings page 2024-10-03 17:12:29 -07:00
Simon Larsen
b5596968a5 Refactor NoteTemplate component to AlertNoteTemplateDetail component 2024-10-03 16:51:18 -07:00
Simon Larsen
25f2d527f8 Refactor AlertNoteTemplateView component and create NoteTemplate component 2024-10-03 16:49:09 -07:00
Simon Larsen
7a052d69d0 Refactor AlertNoteTemplateViews component and create AlertNoteTemplateView component 2024-10-03 16:43:28 -07:00
Simon Larsen
b151eaace7 Refactor AlertNoteTemplateView component and create AlertNoteTemplateViews component 2024-10-03 16:43:18 -07:00
Simon Larsen
8e2336f753 Refactor AlertNoteTemplateViews component and create AlertNoteTemplateView component 2024-10-03 16:42:30 -07:00
Simon Larsen
b0a4bcc5fb Refactor AlertNoteTemplateView and AlertNoteTemplateViews components 2024-10-03 16:42:20 -07:00
Simon Larsen
c8d4bea49b Refactor AlertsTable component and update route in DashboardSideMenu 2024-10-03 16:41:45 -07:00
Simon Larsen
facc564616 Refactor MonitorCriteriaInstance to handle null incidents and alerts 2024-10-03 16:22:48 -07:00
Simon Larsen
591b3ab41c Refactor TableView component and fix indentation 2024-10-03 15:45:00 -07:00
Simon Larsen
cfc1fb47be Refactor MonitorPage and TableView components 2024-10-03 15:25:10 -07:00
Simon Larsen
4a7ac0ffab add monitor alerts 2024-10-03 10:51:41 -07:00
Simon Larsen
bb5a019afd enhance alert permissions and add alert routes 2024-10-03 10:35:10 -07:00
Simon Larsen
b624bd49ee add migration for alerts 2024-10-02 23:05:45 +01:00
Simon Larsen
249a9d991c Merge branch 'table-filters' into monitor-alert 2024-10-02 23:02:38 +01:00
Simon Larsen
49a2ee18a1 add alerts to monitor step 2024-10-02 23:00:47 +01:00
Simon Larsen
11a4f3442d add alert jobs in worker 2024-10-02 22:43:04 +01:00
Simon Larsen
f25f7f1f81 add jobs for alerts 2024-10-02 22:10:37 +01:00
Simon Larsen
d60d9c5a80 add alert mail templates 2024-10-02 22:08:41 +01:00
Simon Larsen
56e8c24449 fix lint 2024-10-02 22:03:40 +01:00
Simon Larsen
bf63badd19 add alerts to nav bar 2024-10-02 22:01:10 +01:00
Simon Larsen
cc1d60af11 add alert change state element 2024-10-02 21:58:56 +01:00
Simon Larsen
e6b47d85d6 add breadcrumbs 2024-10-02 21:48:40 +01:00
Simon Larsen
ae79417fbc add rotue paths to alerts 2024-10-02 21:40:36 +01:00
Simon Larsen
eaed1f8b64 add alert api's to index 2024-10-02 21:27:57 +01:00
Simon Larsen
333b06bc8a add alert services to index 2024-10-02 21:18:21 +01:00
Simon Larsen
cb8cf089c0 add alert services 2024-10-02 21:14:48 +01:00
Simon Larsen
22f5633a32 add default alert severity 2024-10-02 21:06:41 +01:00
Simon Larsen
2f47a3e808 add service for alerts 2024-10-02 21:03:11 +01:00
Simon Larsen
c217eea478 add alert custom fields. 2024-10-02 20:42:09 +01:00
Simon Larsen
1c6a242f3b add owner models 2024-10-02 20:35:05 +01:00
Simon Larsen
7a0cf315fc add alert internal note model 2024-10-02 20:26:05 +01:00
Simon Larsen
e5bb7dccc7 add alert models 2024-10-02 20:23:07 +01:00
Simon Larsen
c789438c62 add migration script for table views 2024-10-02 19:52:32 +01:00
Simon Larsen
bc0e8e323f integrate table view filters with base model table 2024-10-02 19:49:22 +01:00
Simon Larsen
fd15e66f83 add table view save settings. 2024-10-02 19:26:40 +01:00
Simon Larsen
c833bcb37a add table filters model 2024-10-02 15:13:37 +01:00
Simon Larsen
7c941da7df add table view table 2024-10-02 15:07:19 +01:00
Simon Larsen
a2e71afd53 Merge branch 'master' into table-filters 2024-10-01 19:17:23 +01:00
Simon Larsen
84fcb265f6 feat: Add logging to API Post component for better debugging 2024-10-01 19:17:15 +01:00
Simon Larsen
ae493aaee7 feat: Add MoreMenu component and related functionality for enhanced UI interactions 2024-10-01 18:37:26 +01:00
Simon Larsen
cc0670c291 Merge pull request #1725 from fzamperin/master
Refactor changing secret values from data to stringData
2024-10-01 16:51:44 +01:00
Simon Larsen
0733c15363 fix: Improve monitor status retrieval logic in Overview component 2024-10-01 16:50:39 +01:00
Fernando Augusto Zamperin Penna
8727914521 Refactor changing secret values from data to stringData 2024-09-30 14:37:31 -03:00
Simon Larsen
32fa57c63b feat: Implement cascading delete for status page resources in MonitorGroupService and MonitorService 2024-09-30 15:12:51 +01:00
Simon Larsen
346891e85d Merge pull request #1710 from OneUptime/snyk-fix-3c58f351c8ea93b844f014a3967bf666
[Snyk] Security upgrade node from 21.2-alpine3.18 to 21.7.3-alpine3.18
2024-09-30 14:56:25 +01:00
Simon Larsen
979e58ebf5 Merge pull request #1721 from OneUptime/snyk-fix-54b494d7ed7c85a9dfde1f7d20790746
[Snyk] Security upgrade node from 22.5 to 22.9
2024-09-30 14:56:12 +01:00
Simon Larsen
e9dfe14801 Merge pull request #1723 from OneUptime/snyk-fix-9beef75d5a122cf47203e4cfdf7811d2
[Snyk] Security upgrade node from 21.2-alpine3.18 to 21.7.3-alpine3.18
2024-09-30 14:55:58 +01:00
Simon Larsen
3f8c62747a Merge pull request #1722 from fzamperin/master
Fix externalClickhouse password secret
2024-09-30 13:54:36 +01:00
snyk-bot
9a38675676 fix: Workflow/Dockerfile.tpl to reduce vulnerabilities 2024-09-29 10:42:29 +00:00
Fernando Augusto Zamperin Penna
3d7b118e37 Fix externalClickhouse password secret 2024-09-28 20:42:36 -03:00
snyk-bot
c1beb9c0a0 fix: Probe/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-DEBIAN12-AOM-7197979
- https://snyk.io/vuln/SNYK-DEBIAN12-EXPAT-7855502
- https://snyk.io/vuln/SNYK-DEBIAN12-EXPAT-7855503
- https://snyk.io/vuln/SNYK-DEBIAN12-EXPAT-7855507
- https://snyk.io/vuln/SNYK-DEBIAN12-GIT-6846203
2024-09-28 05:43:30 +00:00
Simon Larsen
299707f748 Refactor Realtime class; replace BadDataException with no-op for missing tenantId 2024-09-27 16:51:44 +01:00
Simon Larsen
d48b725f6a Refactor UserAuthorization and Realtime; update mock implementation and add validation for tenantId 2024-09-27 14:21:47 +01:00
Simon Larsen
a0d77ac104 Refactor UserAuthorization test; improve formatting of mock setup for clarity 2024-09-26 17:11:18 +01:00
Simon Larsen
20b5e43b26 Refactor ProjectAuthorization test; remove unused AccessTokenService import for clarity 2024-09-26 17:09:36 +01:00
Simon Larsen
a10a83ad32 Refactor Project and User middleware tests; update method names for clarity and improve mock implementations 2024-09-26 16:15:07 +01:00
Simon Larsen
bf01322fbd Refactor ResourceUtil and UserMiddleware; update type definitions and improve method naming for clarity 2024-09-26 15:59:06 +01:00
Simon Larsen
73fc3e3a08 Refactor MonitorResourceUtil; enhance monitor status timeline logic and improve error handling 2024-09-26 15:51:36 +01:00
Simon Larsen
221f3774de Refactor MonitorResourceUtil; improve code formatting and streamline logging statements 2024-09-26 15:23:23 +01:00
Simon Larsen
b79dafc9df Refactor MonitorResourceUtil; improve error handling and streamline logging statements 2024-09-26 15:18:21 +01:00
Simon Larsen
ed7a693966 Refactor imports in Realtime utility and related components; streamline ModelEventType import paths 2024-09-26 15:13:16 +01:00
Simon Larsen
4982febd74 Refactor code for consistency; remove unnecessary whitespace and improve formatting in multiple files 2024-09-26 15:07:02 +01:00
Simon Larsen
98fe5deba7 Refactor AccessTokenService to utilize UserPermissionUtil for permission retrieval; introduce PermissionNamespace enum 2024-09-26 13:59:28 +01:00
Simon Larsen
54e8a4c224 Refactor UserAuthorization middleware; move access token extraction to Realtime utility 2024-09-26 13:49:38 +01:00
Simon Larsen
7465a44690 Refactor ProjectAuthorization middleware to utilize APIKeyAccessPermission; remove AccessTokenService methods 2024-09-26 13:46:34 +01:00
Simon Larsen
dab51a837d Refactor ProjectAuthorization middleware to use APIKeyAccessPermission; increase concurrency in Workflow feature set 2024-09-26 13:22:23 +01:00
Simon Larsen
003fdb4de4 Add Realtime event types and interfaces; refactor imports for consistency 2024-09-26 13:15:35 +01:00
Simon Larsen
2e5ec1df6f Refactor Realtime event handling and permissions management; introduce EnableRealtimeEventsOn interface 2024-09-26 11:59:11 +01:00
Simon Larsen
8afa3810a1 Enhance logging in Realtime utilities and add ping monitoring check in Register service 2024-09-25 21:50:50 +01:00
Simon Larsen
e9b611b19f Merge branch 'realtime' 2024-09-25 21:08:52 +01:00
Simon Larsen
700dbe2a4d Merge branch 'master' of github.com:OneUptime/oneuptime 2024-09-25 21:08:45 +01:00
Simon Larsen
3220a0ccb8 Merge pull request #1719 from Johncs2d/patch-1
Wrap Host with Quote so we can have wildcard domain
2024-09-25 21:00:04 +01:00
John Albert
63af60967e Wrap Host with Quote so we can have wildcard domain 2024-09-26 03:57:51 +08:00
snyk-bot
80d0993aff fix: Home/Dockerfile.tpl to reduce vulnerabilities 2024-09-22 10:34:58 +00:00
snyk-bot
da78c0bfee fix: Probe/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-DEBIAN12-EXPAT-7855502
- https://snyk.io/vuln/SNYK-DEBIAN12-EXPAT-7855502
- https://snyk.io/vuln/SNYK-DEBIAN12-EXPAT-7855503
- https://snyk.io/vuln/SNYK-DEBIAN12-EXPAT-7855503
- https://snyk.io/vuln/SNYK-DEBIAN12-EXPAT-7855507
2024-09-19 09:04:17 +00:00
snyk-bot
6ff776f185 fix: Accounts/package.json & Accounts/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-PATHTOREGEXP-7925106
2024-09-18 09:44:20 +00:00
snyk-bot
96a5de2df2 fix: Probe/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-DEBIAN12-AOM-7197979
- https://snyk.io/vuln/SNYK-DEBIAN12-GIT-6846203
- https://snyk.io/vuln/SNYK-DEBIAN12-GIT-6846203
- https://snyk.io/vuln/SNYK-DEBIAN12-GIT-5461953
- https://snyk.io/vuln/SNYK-DEBIAN12-GIT-5461954
2024-09-18 09:32:27 +00:00
OneUptime Copilot
b1ce674788 OneUptime Copilot: Improve Comments on /App/Index.ts 2024-08-01 02:41:57 +00:00
2248 changed files with 180550 additions and 88062 deletions

View File

@@ -16,7 +16,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -31,7 +31,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -46,7 +46,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -61,7 +61,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -76,7 +76,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -91,7 +91,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -106,7 +106,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -122,7 +122,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -137,7 +137,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -154,7 +154,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -169,7 +169,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -185,7 +185,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -200,7 +200,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -209,29 +209,13 @@ jobs:
- name: build docker image
run: sudo docker build -f ./Dashboard/Dockerfile .
docker-build-haraka:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Preinstall
run: npm run prerun
# build images
- name: build docker image
run: sudo docker build -f ./Haraka/Dockerfile .
docker-build-probe:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -240,20 +224,80 @@ jobs:
- name: build docker image
run: sudo docker build -f ./Probe/Dockerfile .
docker-build-ingestor:
docker-build-probe-ingest:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
# build image probe api
- name: build docker image
run: sudo docker build -f ./Ingestor/Dockerfile .
run: sudo docker build -f ./ProbeIngest/Dockerfile .
docker-build-server-monitor-ingest:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
# build image probe api
- name: build docker image
run: sudo docker build -f ./ServerMonitorIngest/Dockerfile .
docker-build-open-telemetry-ingest:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
# build image probe api
- name: build docker image
run: sudo docker build -f ./OpenTelemetryIngest/Dockerfile .
docker-build-incoming-request-ingest:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
# build image probe api
- name: build docker image
run: sudo docker build -f ./IncomingRequestIngest/Dockerfile .
docker-build-fluent-ingest:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
# build image probe api
- name: build docker image
run: sudo docker build -f ./FluentIngest/Dockerfile .
docker-build-status-page:
runs-on: ubuntu-latest
@@ -261,7 +305,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
@@ -276,7 +320,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun

View File

@@ -31,8 +31,6 @@ jobs:
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript', 'typescript', 'go' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]

View File

@@ -14,7 +14,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout repo
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Install Helm
run: |
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
@@ -28,7 +28,7 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- name: Checkout repo
uses: actions/checkout@v2
uses: actions/checkout@v4
- run: sudo apt-get update
- run: sudo apt-get install -y curl gcc
- run: sudo apt-get install -y build-essential

View File

@@ -15,10 +15,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd Accounts && npm install && npm run compile && npm run dep-check
@@ -27,10 +27,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd IsolatedVM && npm install && npm run compile && npm run dep-check
@@ -39,10 +39,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install && npm run compile && npm run dep-check
compile-app:
@@ -50,10 +50,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd App && npm install && npm run compile && npm run dep-check
@@ -62,10 +62,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd Home && npm install && npm run compile && npm run dep-check
@@ -74,10 +74,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd Worker && npm install && npm run compile && npm run dep-check
@@ -86,10 +86,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd Workflow && npm install && npm run compile && npm run dep-check
@@ -98,10 +98,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd APIReference && npm install && npm run compile && npm run dep-check
@@ -110,10 +110,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd Docs && npm install && npm run compile && npm run dep-check
@@ -122,10 +122,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd Copilot && npm install && npm run compile && npm run dep-check
@@ -134,10 +134,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd Nginx && npm install && npm run compile && npm run dep-check
@@ -158,10 +158,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd AdminDashboard && npm install && npm run compile && npm run dep-check
@@ -171,10 +171,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd Dashboard && npm install && npm run compile && npm run dep-check
@@ -185,10 +185,11 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: sudo apt-get update
- run: cd Common && npm install
- run: cd E2E && npm install && npm run compile && npm run dep-check
@@ -197,24 +198,73 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd Probe && npm install && npm run compile && npm run dep-check
compile-ingestor:
compile-probe-ingest:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd Ingestor && npm install && npm run compile && npm run dep-check
- run: cd ProbeIngest && npm install && npm run compile && npm run dep-check
compile-server-monitor-ingest:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: latest
- run: cd Common && npm install
- run: cd ServerMonitorIngest && npm install && npm run compile && npm run dep-check
compile-open-telemetry-ingest:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: latest
- run: cd Common && npm install
- run: cd OpenTelemetryIngest && npm install && npm run compile && npm run dep-check
compile-incoming-request-ingest:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: latest
- run: cd Common && npm install
- run: cd IncomingRequestIngest && npm install && npm run compile && npm run dep-check
compile-fluent-ingest:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: latest
- run: cd Common && npm install
- run: cd FluentIngest && npm install && npm run compile && npm run dep-check
compile-status-page:
@@ -222,10 +272,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd StatusPage && npm install && npm run compile && npm run dep-check
@@ -235,9 +285,21 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd TestServer && npm install && npm run compile && npm run dep-check
- run: cd TestServer && npm install && npm run compile && npm run dep-check
compile-mcp:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: latest
- run: cd Common && npm install
- run: cd MCP && npm install && npm run compile && npm run dep-check

View File

@@ -0,0 +1,74 @@
name: OpenAPI Spec Generation
on:
pull_request:
push:
branches-ignore:
- 'hotfix-*'
- 'release'
jobs:
generate-openapi-spec:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{ github.run_number }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: latest
cache: 'npm'
- name: Install Common dependencies
run: cd Common && npm install
- name: Install root dependencies
run: npm install
- name: Install Script dependencies
run: cd Scripts && npm install
- name: Generate OpenAPI specification
run: npm run generate-openapi-spec
- name: Check if OpenAPI spec was generated
run: |
if [ -f "./openapi.json" ]; then
echo "✅ OpenAPI spec file generated successfully"
echo "📄 File size: $(du -h ./openapi.json | cut -f1)"
echo "📊 Spec contains $(jq '.paths | length' ./openapi.json) API paths"
echo "🏷️ API version: $(jq -r '.info.version' ./openapi.json)"
echo "📝 API title: $(jq -r '.info.title' ./openapi.json)"
else
echo "❌ OpenAPI spec file was not generated"
exit 1
fi
- name: Validate OpenAPI spec format
run: |
# Check if the file is valid JSON
if jq empty ./openapi.json; then
echo "✅ OpenAPI spec is valid JSON"
else
echo "❌ OpenAPI spec is not valid JSON"
exit 1
fi
# Check if it has required OpenAPI fields
if jq -e '.openapi and .info and .paths' ./openapi.json > /dev/null; then
echo "✅ OpenAPI spec has required fields"
else
echo "❌ OpenAPI spec missing required fields (openapi, info, paths)"
exit 1
fi
- name: Upload OpenAPI spec as artifact
uses: actions/upload-artifact@v4
with:
name: openapi-spec
path: ./openapi.json
retention-days: 30

View File

@@ -68,6 +68,142 @@ jobs:
git commit -m "Helm Chart Release 7.0.${{needs.generate-build-number.outputs.build_number}}"
git push origin master
publish-mcp-server:
runs-on: ubuntu-latest
needs: [generate-build-number, publish-npm-packages]
env:
CI_PIPELINE_ID: ${{ github.run_number }}
NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
permissions:
contents: write # For creating releases
packages: write # For publishing packages
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Full history for changelog generation
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: latest
cache: 'npm'
- name: Install Common dependencies
run: cd Common && npm install
- name: Install root dependencies
run: npm install
- name: Install Script dependencies
run: cd Scripts && npm install
- name: Determine version
id: version
run: |
VERSION="7.0.${{needs.generate-build-number.outputs.build_number}}"
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Publishing MCP server version: $VERSION"
- name: Verify MCP server directory
run: |
MCP_DIR="./MCP"
if [ ! -d "$MCP_DIR" ]; then
echo "❌ MCP server directory not found"
exit 1
fi
echo "✅ MCP server directory found"
echo "📊 Source files:"
find "$MCP_DIR" -type f -name "*.ts" -o -name "*.js" -o -name "*.json" | wc -l
echo "📁 Directory structure:"
ls -la "$MCP_DIR"
- name: Setup npm authentication
run: |
# Clean up any existing npm configuration that might cause warnings
rm -f ~/.npmrc
# Create npmrc file with authentication
touch ~/.npmrc
echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" >> ~/.npmrc
echo "//registry.npmjs.org/:email=npm@oneuptime.com" >> ~/.npmrc
echo "✅ npm authentication configured"
- name: Update package version
run: |
cd MCP
npm version ${{ steps.version.outputs.version }} --no-git-tag-version
- name: Install dependencies
run: |
cd MCP
npm update @oneuptime/common
npm install
- name: Build MCP server
run: |
cd MCP
npm run build
- name: Run tests
run: |
cd MCP
npm test || echo "No tests found or tests failed, continuing..."
- name: Verify package before publish
run: |
cd MCP
echo "📦 Package information:"
npm publish --dry-run
echo "📋 Package.json bin configuration:"
cat package.json | grep -A 5 -B 5 '"bin"'
echo "📁 Build directory contents:"
ls -la build/
- name: Publish to npm
run: |
cd MCP
npm publish --access public
echo "✅ Published @oneuptime/mcp-server@${{ steps.version.outputs.version }} to npm"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker images
run: |
docker buildx build \
--platform linux/amd64,linux/arm64 \
--file ./MCP/Dockerfile.tpl \
--tag oneuptime/mcp-server:${{ steps.version.outputs.version }} \
--tag oneuptime/mcp-server:release \
--tag ghcr.io/oneuptime/mcp-server:${{ steps.version.outputs.version }} \
--tag ghcr.io/oneuptime/mcp-server:release \
--build-arg GIT_SHA=${{ github.sha }} \
--build-arg APP_VERSION=${{ steps.version.outputs.version }} \
--push .
echo "✅ Pushed Docker images to Docker Hub and GitHub Container Registry"
- name: Upload MCP server artifact
uses: actions/upload-artifact@v4
with:
name: mcp-server-${{ steps.version.outputs.version }}
path: ./MCP/
retention-days: 90
nginx-docker-image-deploy:
needs: [generate-build-number]
runs-on: ubuntu-latest
@@ -87,9 +223,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -147,9 +283,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -207,9 +343,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -267,9 +403,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -330,9 +466,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -390,9 +526,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -452,9 +588,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -512,9 +648,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -553,7 +689,7 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
ingestor-docker-image-deploy:
probe-ingest-docker-image-deploy:
needs: [generate-build-number]
runs-on: ubuntu-latest
steps:
@@ -562,8 +698,8 @@ jobs:
uses: docker/metadata-action@v4
with:
images: |
oneuptime/ingestor
ghcr.io/oneuptime/ingestor
oneuptime/probe-ingest
ghcr.io/oneuptime/probe-ingest
tags: |
type=raw,value=release,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
@@ -572,9 +708,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -585,7 +721,7 @@ jobs:
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy ingestor.
# Build and deploy probe-ingest.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
@@ -603,7 +739,251 @@ jobs:
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./Ingestor/Dockerfile
file: ./ProbeIngest/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
server-monitor-ingest-docker-image-deploy:
needs: [generate-build-number]
runs-on: ubuntu-latest
steps:
- name: Docker Meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
oneuptime/server-monitor-ingest
ghcr.io/oneuptime/server-monitor-ingest
tags: |
type=raw,value=release,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v4
with:
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy probe-ingest.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./ServerMonitorIngest/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
open-telemetry-ingest-docker-image-deploy:
needs: [generate-build-number]
runs-on: ubuntu-latest
steps:
- name: Docker Meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
oneuptime/open-telemetry-ingest
ghcr.io/oneuptime/open-telemetry-ingest
tags: |
type=raw,value=release,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v4
with:
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy open-telemetry-ingest.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./OpenTelemetryIngest/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
incoming-request-ingest-docker-image-deploy:
needs: [generate-build-number]
runs-on: ubuntu-latest
steps:
- name: Docker Meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
oneuptime/incoming-request-ingest
ghcr.io/oneuptime/incoming-request-ingest
tags: |
type=raw,value=release,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v4
with:
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy incoming-request-ingest.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./IncomingRequestIngest/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
fluent-ingest-docker-image-deploy:
needs: [generate-build-number]
runs-on: ubuntu-latest
steps:
- name: Docker Meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
oneuptime/fluent-ingest
ghcr.io/oneuptime/fluent-ingest
tags: |
type=raw,value=release,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v4
with:
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy fluent-ingest.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./FluentIngest/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
@@ -632,9 +1012,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -673,67 +1053,6 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
haraka-docker-image-deploy:
needs: [generate-build-number]
runs-on: ubuntu-latest
steps:
- name: Docker Meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
oneuptime/haraka
ghcr.io/oneuptime/haraka
tags: |
type=raw,value=release,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
with:
node-version: 18.3.0
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy haraka.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./Haraka/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
admin-dashboard-docker-image-deploy:
needs: [generate-build-number]
runs-on: ubuntu-latest
@@ -753,9 +1072,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -814,9 +1133,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -874,9 +1193,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -935,9 +1254,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -995,9 +1314,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -1046,17 +1365,15 @@ jobs:
PACKAGE_VERSION: 7.0.${{needs.generate-build-number.outputs.build_number}}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Preinstall
run: npm run prerun
- name: Publish Infrastructure Agent
- name: Publish NPM Packages
run: bash ./Scripts/NPM/PublishAllPackages.sh
llm-docker-image-deploy:
needs: generate-build-number
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
@@ -1090,9 +1407,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
# - name: Setup Git LFS
# run: git lfs install
@@ -1140,8 +1457,6 @@ jobs:
docs-docker-image-deploy:
needs: generate-build-number
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
@@ -1161,9 +1476,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -1207,8 +1522,6 @@ jobs:
worker-docker-image-deploy:
needs: generate-build-number
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
@@ -1228,9 +1541,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -1274,8 +1587,6 @@ jobs:
workflow-docker-image-deploy:
needs: generate-build-number
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
@@ -1295,9 +1606,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -1337,13 +1648,71 @@ jobs:
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
publish-terraform-provider:
runs-on: ubuntu-latest
needs: [generate-build-number]
env:
CI_PIPELINE_ID: ${{github.run_number}}
GITHUB_TOKEN: ${{ secrets.SIMLARSEN_GITHUB_PAT }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
TERRAFORM_PROVIDER_GITHUB_REPO_DEPLOY_KEY: ${{ secrets.TERRAFORM_PROVIDER_GITHUB_REPO_DEPLOY_KEY }}
permissions:
contents: write # For creating releases
packages: write # For publishing packages
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Full history for changelog generation
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 'latest'
cache: 'npm'
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
cache: true
- name: Install GoReleaser
uses: goreleaser/goreleaser-action@v5
with:
install-only: true
- name: Determine version
id: version
run: |
VERSION="7.0.${{needs.generate-build-number.outputs.build_number}}"
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Publishing Terraform provider version: $VERSION"
- name: Install dependencies
run: |
npm install
if [ -d "Common" ]; then cd Common && npm install && cd ..; fi
if [ -d "Scripts" ]; then cd Scripts && npm install && cd ..; fi
- name: Import GPG key
run: |
echo '${{ secrets.GPG_PRIVATE_KEY }}' > private.key
gpg --import private.key || true
rm private.key
echo "GPG key imported successfully"
gpg --export-secret-keys >~/.gnupg/secring.gpg
echo "GPG key exported successfully"
- name: Generate Terraform provider
run: npm run publish-terraform-provider -- --version "${{ steps.version.outputs.version }}" --github-token "${{ secrets.SIMLARSEN_GITHUB_PAT }}" --github-repo-deploy-key "${{ secrets.TERRAFORM_PROVIDER_GITHUB_REPO_DEPLOY_KEY }}"
api-reference-docker-image-deploy:
needs: generate-build-number
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
@@ -1363,9 +1732,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -1409,7 +1778,7 @@ jobs:
test-e2e-release-saas:
runs-on: ubuntu-latest
needs: [copilot-docker-image-deploy, docs-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, haraka-docker-image-deploy, ingestor-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy]
needs: [open-telemetry-ingest-docker-image-deploy, copilot-docker-image-deploy, fluent-ingest-docker-image-deploy, docs-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, probe-ingest-docker-image-deploy, server-monitor-ingest-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy, incoming-request-ingest-docker-image-deploy]
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
@@ -1426,10 +1795,10 @@ jobs:
large-packages: true
docker-images: true
swap-storage: true
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: npm run prerun && bash ./Tests/Scripts/enable-billing-env-var.sh
- name: Start Server with release tag
run: npm run start
@@ -1462,7 +1831,7 @@ jobs:
test-e2e-release-self-hosted:
runs-on: ubuntu-latest
# After all the jobs runs
needs: [copilot-docker-image-deploy, docs-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, haraka-docker-image-deploy, ingestor-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy]
needs: [open-telemetry-ingest-docker-image-deploy, publish-mcp-server, copilot-docker-image-deploy, incoming-request-ingest-docker-image-deploy, fluent-ingest-docker-image-deploy, docs-docker-image-deploy, api-reference-docker-image-deploy, workflow-docker-image-deploy, llm-docker-image-deploy, accounts-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, dashboard-docker-image-deploy, probe-ingest-docker-image-deploy, server-monitor-ingest-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, worker-docker-image-deploy, otel-collector-docker-image-deploy, probe-docker-image-deploy, status-page-docker-image-deploy, test-docker-image-deploy, test-server-docker-image-deploy, publish-npm-packages, e2e-docker-image-deploy, helm-chart-deploy, generate-build-number, nginx-docker-image-deploy]
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
@@ -1479,10 +1848,10 @@ jobs:
large-packages: true
docker-images: true
swap-storage: true
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: npm run prerun
- name: Start Server with release tag
run: npm run start
@@ -1549,15 +1918,25 @@ jobs:
uses: actions/setup-go@v4
- name: Install GoReleaser
uses: goreleaser/goreleaser-action@v5
uses: goreleaser/goreleaser-action@v6.1.0
with:
install-only: true
- name: GoReleaser Version
run: goreleaser -v
# This tool is used to generate .rpm and .deb packages
- name: Install NFPM
run: go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latest
- name: Show GoReleaser version
run: goreleaser -v
- name: Run GoReleaser
run: cd InfrastructureAgent && export GORELEASER_CURRENT_TAG=7.0.${{needs.generate-build-number.outputs.build_number}} && goreleaser release --clean --snapshot
- name: Release MSI Images
run: cd InfrastructureAgent && bash build-msi.sh 7.0.${{needs.generate-build-number.outputs.build_number}}
# Upload binaries to github release
- name: Release
@@ -1570,4 +1949,3 @@ jobs:
prerelease: false
tag_name: 7.0.${{needs.generate-build-number.outputs.build_number}}

View File

@@ -0,0 +1,97 @@
name: Terraform Provider Generation
on:
pull_request:
push:
branches:
- main
- master
- develop
workflow_dispatch: # Allow manual trigger
jobs:
generate-terraform-provider:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{ github.run_number }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: latest
cache: 'npm'
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
cache: true
- name: Install Common dependencies
run: cd Common && npm install
- name: Install root dependencies
run: npm install
- name: Install Script dependencies
run: cd Scripts && npm install
- name: Generate Terraform provider
run: npm run generate-terraform-provider
- name: Verify provider generation
run: |
PROVIDER_DIR="./Terraform"
# Check if provider directory was created
if [ ! -d "$PROVIDER_DIR" ]; then
echo "❌ Terraform provider directory not created"
exit 1
fi
echo "✅ Provider directory created: $PROVIDER_DIR"
# Count generated files
GO_FILES=$(find "$PROVIDER_DIR" -name "*.go" | wc -l)
echo "📊 Generated Go files: $GO_FILES"
if [ "$GO_FILES" -eq 0 ]; then
echo "❌ No Go files were generated"
exit 1
fi
# Check for essential files
if [ -f "$PROVIDER_DIR/go.mod" ]; then
echo "✅ Go module file created"
fi
if [ -f "$PROVIDER_DIR/README.md" ]; then
echo "✅ Documentation created"
fi
# Show directory structure for debugging
echo "📁 Provider directory structure:"
ls -la "$PROVIDER_DIR" || true
- name: Test Go build
run: |
PROVIDER_DIR="./Terraform"
if [ -d "$PROVIDER_DIR" ] && [ -f "$PROVIDER_DIR/go.mod" ]; then
cd "$PROVIDER_DIR"
echo "🔨 Testing Go build..."
go mod tidy
go build -v ./...
echo "✅ Go build successful"
else
echo "⚠️ Cannot test build - missing go.mod or provider directory"
fi
- name: Upload Terraform provider as artifact
uses: actions/upload-artifact@v4
with:
name: Terraform
path: ./Terraform/
retention-days: 30

View File

@@ -1,5 +1,9 @@
name: Push Test Images to Docker Hub and GitHub Container Registry
concurrency:
group: test-release
cancel-in-progress: true
on:
push:
branches:
@@ -19,10 +23,183 @@ jobs:
token: ${{secrets.github_token}}
- run: echo "Build number is ${{ steps.buildnumber.outputs.build_number }}"
publish-terraform-provider:
runs-on: ubuntu-latest
needs: [generate-build-number]
env:
CI_PIPELINE_ID: ${{github.run_number}}
GITHUB_TOKEN: ${{ secrets.SIMLARSEN_GITHUB_PAT }}
GPG_PRIVATE_KEY: ${{ secrets.TERRAFORM_GPG_PRIVATE_KEY }}
TERRAFORM_PROVIDER_GITHUB_REPO_DEPLOY_KEY: ${{ secrets.TERRAFORM_PROVIDER_GITHUB_REPO_DEPLOY_KEY }}
permissions:
contents: write # For creating releases
packages: write # For publishing packages
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Full history for changelog generation
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 'latest'
cache: 'npm'
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
cache: true
- name: Install GoReleaser
uses: goreleaser/goreleaser-action@v5
with:
install-only: true
- name: Determine version
id: version
run: |
VERSION="7.0.${{needs.generate-build-number.outputs.build_number}}"
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Publishing Terraform provider version: $VERSION"
- name: Install dependencies
run: |
npm install
if [ -d "Common" ]; then cd Common && npm install && cd ..; fi
if [ -d "Scripts" ]; then cd Scripts && npm install && cd ..; fi
- name: Import GPG key
run: |
echo '${{ secrets.TERRAFORM_GPG_PRIVATE_KEY }}' > private.key
gpg --import private.key || true
rm private.key
echo "GPG key imported successfully"
gpg --export-secret-keys >~/.gnupg/secring.gpg
echo "GPG key exported successfully"
- name: Generate Terraform provider
run: npm run publish-terraform-provider -- --version "${{ steps.version.outputs.version }}" --github-token "${{ secrets.SIMLARSEN_GITHUB_PAT }}" --github-repo-deploy-key "${{ secrets.TERRAFORM_PROVIDER_GITHUB_REPO_DEPLOY_KEY }}" --test-release
publish-mcp-server:
runs-on: ubuntu-latest
needs: [generate-build-number]
env:
CI_PIPELINE_ID: ${{ github.run_number }}
permissions:
contents: write # For creating releases
packages: write # For publishing packages
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Full history for changelog generation
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: latest
cache: 'npm'
registry-url: 'https://registry.npmjs.org'
- name: Install Common dependencies
run: cd Common && npm install
- name: Install root dependencies
run: npm install
- name: Install Script dependencies
run: cd Scripts && npm install
- name: Determine version
id: version
run: |
VERSION="7.0.${{needs.generate-build-number.outputs.build_number}}-test"
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Publishing MCP server version: $VERSION"
- name: Verify MCP server directory
run: |
MCP_DIR="./MCP"
if [ ! -d "$MCP_DIR" ]; then
echo "❌ MCP server directory not found"
exit 1
fi
echo "✅ MCP server directory found"
echo "📊 Source files:"
find "$MCP_DIR" -type f -name "*.ts" -o -name "*.js" -o -name "*.json" | wc -l
echo "📁 Directory structure:"
ls -la "$MCP_DIR"
- name: Update package version
run: |
cd MCP
npm version ${{ steps.version.outputs.version }} --no-git-tag-version
- name: Install dependencies and build
run: |
cd MCP
npm update @oneuptime/common
npm install
npm run build
- name: Run tests
run: |
cd MCP
npm test || echo "No tests found or tests failed, continuing..."
- name: Publish to npm (dry run for test releases)
run: |
cd MCP
npm pack --dry-run
echo "✅ Dry run completed successfully for test release"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker images (test)
run: |
docker buildx build \
--platform linux/amd64,linux/arm64 \
--file ./MCP/Dockerfile.tpl \
--tag oneuptime/mcp-server:${{ steps.version.outputs.version }} \
--tag oneuptime/mcp-server:test \
--tag ghcr.io/oneuptime/mcp-server:${{ steps.version.outputs.version }} \
--tag ghcr.io/oneuptime/mcp-server:test \
--build-arg GIT_SHA=${{ github.sha }} \
--build-arg APP_VERSION=${{ steps.version.outputs.version }} \
--push .
echo "✅ Pushed test Docker images to Docker Hub and GitHub Container Registry"
- name: Upload MCP server artifact
uses: actions/upload-artifact@v4
with:
name: mcp-server-${{ steps.version.outputs.version }}
path: ./MCP/
retention-days: 90
llm-docker-image-deploy:
needs: generate-build-number
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
@@ -56,9 +233,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
# - name: Setup Git LFS
# run: git lfs install
@@ -126,9 +303,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -188,9 +365,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -249,9 +426,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -310,9 +487,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -371,9 +548,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -432,9 +609,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -495,9 +672,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -558,9 +735,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -599,7 +776,7 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
ingestor-docker-image-deploy:
probe-ingest-docker-image-deploy:
needs: generate-build-number
runs-on: ubuntu-latest
steps:
@@ -608,8 +785,8 @@ jobs:
uses: docker/metadata-action@v4
with:
images: |
oneuptime/ingestor
ghcr.io/oneuptime/ingestor
oneuptime/probe-ingest
ghcr.io/oneuptime/probe-ingest
tags: |
type=raw,value=test,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
@@ -619,9 +796,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -632,7 +809,7 @@ jobs:
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy ingestor.
# Build and deploy probe-ingest.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
@@ -650,7 +827,256 @@ jobs:
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./Ingestor/Dockerfile
file: ./ProbeIngest/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
server-monitor-ingest-docker-image-deploy:
needs: generate-build-number
runs-on: ubuntu-latest
steps:
- name: Docker Meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
oneuptime/server-monitor-ingest
ghcr.io/oneuptime/server-monitor-ingest
tags: |
type=raw,value=test,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v4
with:
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy ServerMonitorIngest.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./ServerMonitorIngest/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
incoming-request-ingest-docker-image-deploy:
needs: generate-build-number
runs-on: ubuntu-latest
steps:
- name: Docker Meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
oneuptime/incoming-request-ingest
ghcr.io/oneuptime/incoming-request-ingest
tags: |
type=raw,value=test,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v4
with:
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy incoming-request-ingest.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./IncomingRequestIngest/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
open-telemetry-ingest-docker-image-deploy:
needs: generate-build-number
runs-on: ubuntu-latest
steps:
- name: Docker Meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
oneuptime/open-telemetry-ingest
ghcr.io/oneuptime/open-telemetry-ingest
tags: |
type=raw,value=test,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v4
with:
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy incoming-request-ingest.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./OpenTelemetryIngest/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
fluent-ingest-docker-image-deploy:
needs: generate-build-number
runs-on: ubuntu-latest
steps:
- name: Docker Meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
oneuptime/fluent-ingest
ghcr.io/oneuptime/fluent-ingest
tags: |
type=raw,value=test,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v4
with:
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy probe-ingest.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./FluentIngest/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
@@ -680,9 +1106,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -721,67 +1147,6 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
haraka-docker-image-deploy:
needs: generate-build-number
runs-on: ubuntu-latest
steps:
- name: Docker Meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
oneuptime/haraka
ghcr.io/oneuptime/haraka
tags: |
type=raw,value=test,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
with:
node-version: 18.3.0
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy haraka.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2.2.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./Haraka/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
dashboard-docker-image-deploy:
needs: generate-build-number
runs-on: ubuntu-latest
@@ -802,9 +1167,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -863,9 +1228,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -924,9 +1289,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -988,9 +1353,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -1051,9 +1416,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -1112,9 +1477,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -1173,9 +1538,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -1235,9 +1600,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -1297,9 +1662,9 @@ jobs:
with:
ref: ${{ github.ref }}
- uses: actions/setup-node@v2
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
@@ -1343,14 +1708,14 @@ jobs:
test-helm-chart:
runs-on: ubuntu-latest
needs: [llm-docker-image-deploy, copilot-docker-image-deploy, docs-docker-image-deploy, worker-docker-image-deploy, workflow-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, api-reference-docker-image-deploy, test-server-docker-image-deploy, test-docker-image-deploy, ingestor-docker-image-deploy, probe-docker-image-deploy, haraka-docker-image-deploy, dashboard-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, accounts-docker-image-deploy, otel-collector-docker-image-deploy, status-page-docker-image-deploy, nginx-docker-image-deploy, e2e-docker-image-deploy]
needs: [infrastructure-agent-deploy, publish-mcp-server, llm-docker-image-deploy, publish-terraform-provider, open-telemetry-ingest-docker-image-deploy, copilot-docker-image-deploy, docs-docker-image-deploy, worker-docker-image-deploy, workflow-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, api-reference-docker-image-deploy, test-server-docker-image-deploy, test-docker-image-deploy, probe-ingest-docker-image-deploy, server-monitor-ingest-docker-image-deploy, probe-docker-image-deploy, dashboard-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, accounts-docker-image-deploy, otel-collector-docker-image-deploy, status-page-docker-image-deploy, nginx-docker-image-deploy, e2e-docker-image-deploy, fluent-ingest-docker-image-deploy, incoming-request-ingest-docker-image-deploy]
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd HelmChart && cd Tests && bash index.sh
test-e2e-test-saas:
@@ -1372,10 +1737,10 @@ jobs:
large-packages: true
docker-images: true
swap-storage: true
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: npm run prerun && bash ./Tests/Scripts/change-release-to-test-tag.sh
- name: Start Server with release tag
run: npm run start
@@ -1425,10 +1790,10 @@ jobs:
large-packages: true
docker-images: true
swap-storage: true
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: npm run prerun && bash ./Tests/Scripts/change-release-to-test-tag.sh
- name: Start Server with release tag
run: npm run start
@@ -1457,6 +1822,56 @@ jobs:
# Optional. Defaults to repository settings.
retention-days: 7
infrastructure-agent-deploy:
needs: [generate-build-number]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- name: Set up Go
uses: actions/setup-go@v4
- name: Install GoReleaser
uses: goreleaser/goreleaser-action@v6.1.0
with:
install-only: true
- name: GoReleaser Version
run: goreleaser -v
# This tool is used to generate .rpm and .deb packages
- name: Install NFPM
run: go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latest
- name: Show GoReleaser version
run: goreleaser -v
- name: Run GoReleaser
run: cd InfrastructureAgent && export GORELEASER_CURRENT_TAG=7.0.${{needs.generate-build-number.outputs.build_number}} && goreleaser release --clean --snapshot
- name: Release MSI Images
run: cd InfrastructureAgent && bash build-msi.sh 7.0.${{needs.generate-build-number.outputs.build_number}}
- name: Upload Release Binaries
uses: actions/upload-artifact@v4
# Run this on failure
with:
# Name of the artifact to upload.
# Optional. Default is 'artifact'
name: binaries
# A file, directory or wildcard pattern that describes what to upload
# Required.
path: |
./InfrastructureAgent/dist
# Duration after which artifact will expire in days. 0 means using default retention.
# Minimum 1 day.
# Maximum 90 days unless changed from the repository settings page.
# Optional. Defaults to repository settings.
retention-days: 7

View File

@@ -14,10 +14,10 @@ jobs:
CI_PIPELINE_ID: ${{github.run_number}}
BILLING_PRIVATE_KEY: ${{secrets.TEST_BILLING_PRIVATE_KEY}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && bash test-setup.sh
- run: cd Common && npm install && rm -rf build && npm run test

View File

@@ -1,58 +0,0 @@
name: E2E Tests
on:
pull_request:
push:
branches-ignore:
- 'hotfix-*' # excludes hotfix branches
- 'release'
jobs:
test:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
# Docker compose needs a lot of space to build images, so we need to free up some space first in the GitHub Actions runner
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 18.3.0
- run: npm run prerun && bash ./Tests/Scripts/enable-billing-env-var.sh
- run: npm run dev
- name: Wait for server to start
run: bash ./Tests/Scripts/status-check.sh http://localhost
- name: Run E2E Tests. Run docker container e2e in docker compose file
run: export $(grep -v '^#' config.env | xargs) && docker compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker compose -f docker-compose.dev.yml logs e2e && exit 1)
- name: Upload test results
uses: actions/upload-artifact@v4
# Run this on failure
if: failure()
with:
# Name of the artifact to upload.
# Optional. Default is 'artifact'
name: test-results
# A file, directory or wildcard pattern that describes what to upload
# Required.
path: |
./E2E
# Duration after which artifact will expire in days. 0 means using default retention.
# Minimum 1 day.
# Maximum 90 days unless changed from the repository settings page.
# Optional. Defaults to repository settings.
retention-days: 7

View File

@@ -0,0 +1,20 @@
name: Fluent Ingest Test
on:
pull_request:
push:
branches-ignore:
- 'hotfix-*' # excludes hotfix branches
- 'release'
jobs:
test:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: latest
- run: cd FluentIngest && npm install && npm run test

View File

@@ -0,0 +1,21 @@
name: Incoming Request Ingest Test
on:
pull_request:
push:
branches-ignore:
- 'hotfix-*' # excludes hotfix branches
- 'release'
jobs:
test:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: latest
- run: cd IncomingRequestIngest && npm install && npm run test

21
.github/workflows/test.mcp.yaml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: MCP Server Test
on:
pull_request:
push:
branches-ignore:
- 'hotfix-*' # excludes hotfix branches
- 'release'
jobs:
test:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: latest
- run: cd Common && npm install
- run: cd MCP && npm install && npm run test

View File

@@ -0,0 +1,21 @@
name: OpenTelemetryIngest Test
on:
pull_request:
push:
branches-ignore:
- 'hotfix-*' # excludes hotfix branches
- 'release'
jobs:
test:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: latest
- run: cd OpenTelemetryIngest && npm install && npm run test

View File

@@ -1,4 +1,4 @@
name: Ingestor Test
name: ProbeIngest Test
on:
pull_request:
@@ -13,9 +13,9 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
- run: cd Ingestor && npm install && npm run test
node-version: latest
- run: cd ProbeIngest && npm install && npm run test

View File

@@ -13,10 +13,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Common && npm install
- run: cd Probe && npm install
- run: cd Probe && npm run test

View File

@@ -13,10 +13,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd App && npm install && npm run test
test-home:
@@ -24,10 +24,10 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Home && npm install && npm run test
test-worker:
@@ -35,8 +35,8 @@ jobs:
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.3.0
node-version: latest
- run: cd Worker && npm install && npm run test

21
.gitignore vendored
View File

@@ -86,9 +86,6 @@ Backups/*.tar
.env
Haraka/dkim/keys/private_base64.txt
Haraka/dkim/keys/public_base64.txt
.eslintcache
HelmChart/Values/*.values.yaml
@@ -112,3 +109,21 @@ App/greenlock/greenlock.d/config.json
App/greenlock/greenlock.d/config.json.bak
Examples/otel-dotnet/bin/Debug/net6.0/Grpc.Core.Api.dll.txt
InfrastructureAgent/oneuptime-infrastructure-agent
# ESLint cache
.eslintcache*
# Terraform generated files
openapi.json
Terraform/**
TerraformTest/**
terraform-provider-example/**
# MCP Server
MCP/build/
MCP/.env
MCP/node_modules
Dashboard/public/sw.js

View File

@@ -1 +1 @@
# Description: Copilot will run this script before we commit the changes to your repository.
# Description: Copilot will run this script before we commit the changes to your repository.

82
.vscode/launch.json vendored
View File

@@ -93,7 +93,7 @@
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/Worker",
"localRoot": "${workspaceFolder}/Workflow",
"name": "Workflow: Debug with Docker",
"port": 8735,
"remoteRoot": "/usr/src/app",
@@ -107,7 +107,7 @@
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/Worker",
"localRoot": "${workspaceFolder}/Docs",
"name": "Docs: Debug with Docker",
"port": 8738,
"remoteRoot": "/usr/src/app",
@@ -121,7 +121,7 @@
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/Worker",
"localRoot": "${workspaceFolder}/APIReference",
"name": "API Reference: Debug with Docker",
"port": 8737,
"remoteRoot": "/usr/src/app",
@@ -151,7 +151,7 @@
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/Probe",
"name": "Probe: Debug with Docker",
"port": 9655,
"port": 9229,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
@@ -163,8 +163,8 @@
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/Ingestor",
"name": "Ingestor: Debug with Docker",
"localRoot": "${workspaceFolder}/ProbeIngest",
"name": "ProbeIngest: Debug with Docker",
"port": 9932,
"remoteRoot": "/usr/src/app",
"request": "attach",
@@ -175,6 +175,62 @@
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/ServerMonitorIngest",
"name": "ServerMonitorIngest: Debug with Docker",
"port": 9941,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/IncomingRequestIngest",
"name": "IncomingRequestIngest: Debug with Docker",
"port": 9933,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/OpenTelemetryIngest",
"name": "OpenTelemetryIngest: Debug with Docker",
"port": 9938,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/FluentIngest",
"name": "Fluent Ingest: Debug with Docker",
"port": 9937,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/IsolatedVM",
@@ -217,20 +273,6 @@
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/Workers",
"name": "Workers: Debug with Docker",
"port": 9654,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/StatusPage",

View File

@@ -1,6 +1,8 @@
{
"query": {
"name": "Hello",
// other filters
"age": {
"_type": "EqualTo",
value: 10
}
}
}

View File

@@ -0,0 +1,8 @@
{
"query": {
"age": {
"_type": "GreaterThanOrNull",
"value": 10
}
}
}

View File

@@ -0,0 +1,11 @@
{
"query": {
"labels": {
"_type": "Includes",
"value": [
"aaa00000-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"bbb00000-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
]
}
}
}

View File

@@ -0,0 +1,8 @@
{
"query": {
"age": {
"_type": "LessThanOrNull",
"value": 10
}
}
}

View File

@@ -3,7 +3,7 @@
#
# Pull base image nodejs image.
FROM node:21.2-alpine3.18
FROM public.ecr.aws/docker/library/node:23.8-alpine3.21
RUN mkdir /tmp/npm && chmod 2777 /tmp/npm && chown 1000:1000 /tmp/npm && npm config set cache /tmp/npm --global
RUN npm config set fetch-retries 5
@@ -65,6 +65,8 @@ CMD [ "npm", "run", "dev" ]
COPY ./APIReference /usr/src/app
# Bundle app source
RUN npm run compile
# Set permission to write logs and cache in case container run as non root
RUN chown -R 1000:1000 "/tmp/npm" && chmod -R 2777 "/tmp/npm"
#Run the app
CMD [ "npm", "start" ]
{{ end }}

View File

@@ -17,10 +17,11 @@ const init: PromiseVoidFunction = async (): Promise<void> => {
const statusCheck: PromiseVoidFunction = async (): Promise<void> => {
// Check the status of infrastructure components
return await InfrastructureStatus.checkStatus({
return await InfrastructureStatus.checkStatusWithRetry({
checkClickhouseStatus: false,
checkPostgresStatus: false,
checkRedisStatus: false,
retryCount: 3,
});
};

View File

@@ -1,6 +1,7 @@
import AuthenticationServiceHandler from "./Service/Authentication";
import DataTypeServiceHandler from "./Service/DataType";
import ErrorServiceHandler from "./Service/Errors";
import OpenAPIServiceHandler from "./Service/OpenAPI";
import IntroductionServiceHandler from "./Service/Introduction";
import ModelServiceHandler from "./Service/Model";
import PageNotFoundServiceHandler from "./Service/PageNotFound";
@@ -65,6 +66,8 @@ const APIReferenceFeatureSet: FeatureSet = {
return ErrorServiceHandler.executeResponse(req, res);
} else if (req.params["page"] === "introduction") {
return IntroductionServiceHandler.executeResponse(req, res);
} else if (req.params["page"] === "openapi") {
return OpenAPIServiceHandler.executeResponse(req, res);
} else if (req.params["page"] === "status") {
return StatusServiceHandler.executeResponse(req, res);
} else if (req.params["page"] === "data-types") {

View File

@@ -1,3 +1,4 @@
import { IsBillingEnabled } from "Common/Server/EnvironmentConfig";
import { ViewsPath } from "../Utils/Config";
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
@@ -26,6 +27,7 @@ export default class ServiceHandler {
page: page,
resources: Resources,
pageTitle: pageTitle,
enableGoogleTagManager: IsBillingEnabled,
pageDescription: pageDescription,
pageData: pageData,
});

View File

@@ -1,3 +1,4 @@
import { IsBillingEnabled } from "Common/Server/EnvironmentConfig";
import { CodeExamplesPath, ViewsPath } from "../Utils/Config";
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
import LocalCache from "Common/Server/Infrastructure/LocalCache";
@@ -87,6 +88,36 @@ export default class ServiceHandler {
},
);
pageData.includesCode = await LocalCache.getOrSetString(
"data-type",
"includes",
async () => {
return await LocalFile.read(
`${CodeExamplesPath}/DataTypes/Includes.md`,
);
},
);
pageData.lessThanOrNullCode = await LocalCache.getOrSetString(
"data-type",
"less-than-or-equal",
async () => {
return await LocalFile.read(
`${CodeExamplesPath}/DataTypes/LessThanOrNull.md`,
);
},
);
pageData.greaterThanOrNullCode = await LocalCache.getOrSetString(
"data-type",
"less-than-or-equal",
async () => {
return await LocalFile.read(
`${CodeExamplesPath}/DataTypes/LessThanOrNull.md`,
);
},
);
pageData.isNullCode = await LocalCache.getOrSetString(
"data-type",
"is-null",
@@ -117,6 +148,7 @@ export default class ServiceHandler {
return res.render(`${ViewsPath}/pages/index`, {
page: "data-types",
pageTitle: "Data Types",
enableGoogleTagManager: IsBillingEnabled,
pageDescription:
"Data Types that can be used to interact with OneUptime API",
resources: Resources,

View File

@@ -1,3 +1,4 @@
import { IsBillingEnabled } from "Common/Server/EnvironmentConfig";
import { ViewsPath } from "../Utils/Config";
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
@@ -27,6 +28,7 @@ export default class ServiceHandler {
page: page,
resources: Resources,
pageTitle: pageTitle,
enableGoogleTagManager: IsBillingEnabled,
pageDescription: pageDescription,
pageData: pageData,
});

View File

@@ -1,3 +1,4 @@
import { IsBillingEnabled } from "Common/Server/EnvironmentConfig";
import { ViewsPath } from "../Utils/Config";
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
@@ -33,6 +34,7 @@ export default class ServiceHandler {
page: page,
resources: Resources,
pageTitle: pageTitle,
enableGoogleTagManager: IsBillingEnabled,
pageDescription: pageDescription,
pageData: pageData,
});

View File

@@ -13,6 +13,7 @@ import Permission, {
import LocalCache from "Common/Server/Infrastructure/LocalCache";
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
import LocalFile from "Common/Server/Utils/LocalFile";
import { IsBillingEnabled } from "Common/Server/EnvironmentConfig";
// Get all resources and resource dictionary
const Resources: Array<ModelDocumentation> = ResourceUtil.getResources();
@@ -76,6 +77,11 @@ export default class ServiceHandler {
continue;
}
if (tableColumns[key].hideColumnInDocumentation) {
delete tableColumns[key];
continue;
}
tableColumns[key].permissions = accessControl;
}
@@ -262,6 +268,7 @@ export default class ServiceHandler {
page: page,
resources: Resources,
pageTitle: pageTitle,
enableGoogleTagManager: IsBillingEnabled,
pageDescription: pageDescription,
pageData: pageData,
});

View File

@@ -0,0 +1,44 @@
import {
Host,
HttpProtocol,
IsBillingEnabled,
} from "Common/Server/EnvironmentConfig";
import { ViewsPath } from "../Utils/Config";
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
import URL from "Common/Types/API/URL";
// Fetch a list of resources used in the application
const Resources: Array<ModelDocumentation> = ResourceUtil.getResources();
export default class ServiceHandler {
// Handles the HTTP response for a given request
public static async executeResponse(
req: ExpressRequest,
res: ExpressResponse,
): Promise<void> {
let pageTitle: string = "";
let pageDescription: string = "";
// Get the 'page' parameter from the request
const page: string | undefined = req.params["page"];
const pageData: any = {
hostUrl: new URL(HttpProtocol, Host).toString(),
};
// Set the default page title and description
pageTitle = "OneUptime OpenAPI Specification";
pageDescription =
"Learn more about the OpenAPI specification for OneUptime";
// Render the response using the given view and data
return res.render(`${ViewsPath}/pages/index`, {
page: page,
resources: Resources,
pageTitle: pageTitle,
enableGoogleTagManager: IsBillingEnabled,
pageDescription: pageDescription,
pageData: pageData,
});
}
}

View File

@@ -1,3 +1,4 @@
import { IsBillingEnabled } from "Common/Server/EnvironmentConfig";
import { ViewsPath } from "../Utils/Config";
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
@@ -17,6 +18,7 @@ export default class ServiceHandler {
return res.render(`${ViewsPath}/pages/index`, {
page: "404", // The page type (404 in this case)
pageTitle: "Page Not Found", // The page title
enableGoogleTagManager: IsBillingEnabled,
pageDescription: "Page you're looking for is not found.", // The page description
resources: Resources, // The array of model documentation resources
pageData: {}, // An empty object to hold any additional page data

View File

@@ -1,3 +1,4 @@
import { IsBillingEnabled } from "Common/Server/EnvironmentConfig";
import { CodeExamplesPath, ViewsPath } from "../Utils/Config";
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
import LocalCache from "Common/Server/Infrastructure/LocalCache";
@@ -47,7 +48,8 @@ export default class ServiceHandler {
return res.render(`${ViewsPath}/pages/index`, {
page: page, // Pass the page parameter
resources: Resources, // Pass all resources
pageTitle: pageTitle, // Pass the page title
pageTitle: pageTitle,
enableGoogleTagManager: IsBillingEnabled, // Pass the page title
pageDescription: pageDescription, // Pass the page description
pageData: pageData, // Pass the page data
});

View File

@@ -2,6 +2,7 @@ import { ViewsPath } from "../Utils/Config";
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
import { PermissionHelper, PermissionProps } from "Common/Types/Permission";
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
import { IsBillingEnabled } from "Common/Server/EnvironmentConfig";
const Resources: Array<ModelDocumentation> = ResourceUtil.getResources();
@@ -34,6 +35,7 @@ export default class ServiceHandler {
page: page,
resources: Resources,
pageTitle: pageTitle,
enableGoogleTagManager: IsBillingEnabled,
pageDescription: pageDescription,
pageData: pageData,
});

View File

@@ -1,3 +1,4 @@
import { IsBillingEnabled } from "Common/Server/EnvironmentConfig";
import { ViewsPath } from "../Utils/Config";
import ResourceUtil, { ModelDocumentation } from "../Utils/Resources";
import { ExpressRequest, ExpressResponse } from "Common/Server/Utils/Express";
@@ -17,6 +18,7 @@ export default class ServiceHandler {
return res.render(`${ViewsPath}/pages/index`, {
page: "status",
pageTitle: "Status",
enableGoogleTagManager: IsBillingEnabled,
pageDescription: "200 - Success",
resources: resources, // Pass resources to the template
pageData: {}, // Pass empty data to the template

View File

@@ -15,7 +15,7 @@ export default class ResourceUtil {
// Get all resources that should have documentation enabled
public static getResources(): Array<ModelDocumentation> {
const resources: Array<ModelDocumentation> = Models.filter(
(model: typeof BaseModel) => {
(model: { new (): BaseModel }) => {
const modelInstance: BaseModel = new model();
let showDocs: boolean = modelInstance.enableDocumentation;
@@ -27,7 +27,7 @@ export default class ResourceUtil {
return showDocs;
},
)
.map((model: typeof BaseModel) => {
.map((model: { new (): BaseModel }) => {
const modelInstance: BaseModel = new model();
return {

View File

@@ -1,17 +1,16 @@
{
"name": "@oneuptime/app",
"name": "@oneuptime/api-reference",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@oneuptime/app",
"name": "@oneuptime/api-reference",
"version": "1.0.0",
"license": "Apache-2.0",
"dependencies": {
"Common": "file:../Common",
"ejs": "^3.1.9",
"handlebars": "^4.7.8",
"ts-node": "^10.9.1"
},
"devDependencies": {
@@ -26,8 +25,9 @@
"version": "1.0.0",
"license": "Apache-2.0",
"dependencies": {
"@asteasolutions/zod-to-openapi": "^7.3.2",
"@bull-board/express": "^5.21.4",
"@clickhouse/client": "^0.2.10",
"@clickhouse/client": "^1.10.1",
"@elastic/elasticsearch": "^8.12.1",
"@monaco-editor/react": "^4.4.6",
"@opentelemetry/api": "^1.9.0",
@@ -55,18 +55,19 @@
"@types/react-highlight": "^0.12.8",
"@types/react-syntax-highlighter": "^15.5.13",
"@types/uuid": "^8.3.4",
"@types/web-push": "^3.6.4",
"acme-client": "^5.3.0",
"airtable": "^0.12.2",
"axios": "^1.7.2",
"bullmq": "^5.3.3",
"Common": "file:../Common",
"cookie-parser": "^1.4.6",
"cookie-parser": "^1.4.7",
"cors": "^2.8.5",
"cron-parser": "^4.8.1",
"crypto-js": "^4.2.0",
"dotenv": "^16.4.4",
"ejs": "^3.1.10",
"express": "^4.19.2",
"esbuild": "^0.25.5",
"express": "^4.21.1",
"formik": "^2.4.6",
"history": "^5.3.0",
"ioredis": "^5.3.2",
@@ -74,7 +75,6 @@
"json5": "^2.2.3",
"jsonwebtoken": "^9.0.0",
"jwt-decode": "^4.0.0",
"lodash": "^4.17.21",
"marked": "^12.0.2",
"moment": "^2.30.1",
"moment-timezone": "^0.5.45",
@@ -82,6 +82,7 @@
"nodemailer": "^6.9.10",
"otpauth": "^9.3.1",
"pg": "^8.7.3",
"playwright": "^1.50.0",
"posthog-js": "^1.139.6",
"prop-types": "^15.8.1",
"qrcode": "^1.5.3",
@@ -104,6 +105,7 @@
"redis-semaphore": "^5.5.1",
"reflect-metadata": "^0.2.2",
"remark-gfm": "^3.0.1",
"slackify-markdown": "^4.4.0",
"slugify": "^1.6.5",
"socket.io": "^4.7.4",
"socket.io-client": "^4.7.5",
@@ -113,9 +115,11 @@
"twilio": "^4.22.0",
"typeorm": "^0.3.20",
"typeorm-extension": "^2.2.13",
"universal-cookie": "^4.0.4",
"universal-cookie": "^7.2.1",
"use-async-effect": "^2.2.6",
"uuid": "^8.3.2"
"uuid": "^8.3.2",
"web-push": "^3.6.7",
"zod": "^3.25.30"
},
"devDependencies": {
"@faker-js/faker": "^8.0.2",
@@ -129,7 +133,6 @@
"@types/jest": "^28.1.4",
"@types/json2csv": "^5.0.3",
"@types/jsonwebtoken": "^8.5.9",
"@types/lodash": "^4.14.202",
"@types/node": "^17.0.45",
"@types/node-cron": "^3.0.7",
"@types/nodemailer": "^6.4.7",
@@ -143,6 +146,7 @@
"jest-environment-jsdom": "^29.7.0",
"jest-mock-extended": "^3.0.5",
"react-test-renderer": "^18.2.0",
"sass": "^1.89.2",
"ts-jest": "^28.0.5"
}
},
@@ -2378,26 +2382,6 @@
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"dev": true
},
"node_modules/handlebars": {
"version": "4.7.8",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
"integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
"dependencies": {
"minimist": "^1.2.5",
"neo-async": "^2.6.2",
"source-map": "^0.6.1",
"wordwrap": "^1.0.0"
},
"bin": {
"handlebars": "bin/handlebars"
},
"engines": {
"node": ">=0.4.7"
},
"optionalDependencies": {
"uglify-js": "^3.1.4"
}
},
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -3445,14 +3429,6 @@
"node": "*"
}
},
"node_modules/minimist": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -3465,11 +3441,6 @@
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true
},
"node_modules/neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
},
"node_modules/node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@@ -3961,6 +3932,7 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -4243,18 +4215,6 @@
"node": ">=14.17"
}
},
"node_modules/uglify-js": {
"version": "3.17.4",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
"integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
"optional": true,
"bin": {
"uglifyjs": "bin/uglifyjs"
},
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/undefsafe": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
@@ -4340,11 +4300,6 @@
"node": ">= 8"
}
},
"node_modules/wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",

View File

@@ -4,7 +4,7 @@
"description": "",
"main": "Index.ts",
"scripts": {
"start": "node --require ts-node/register Index.ts",
"start": "export NODE_OPTIONS='--max-old-space-size=8096' && node --require ts-node/register Index.ts",
"compile": "tsc",
"clear-modules": "rm -rf node_modules && rm package-lock.json && npm install",
"dev": "npx nodemon",

View File

@@ -32,7 +32,7 @@
<p>You can use OneUptime API Key on Request Header when you're making a request. You can use <code
class="rounded p-0.5 px-1 text-sm text-gray-500 bg-gray-100 border-2 border-gray-200">Authorization</code>
header with your API Key when you make a request.</p>
<%- include('../partials/code', {title: "Example request with API Key" , requestUrl: "" , requestType: "" , code: "curl --header \"ApiKey: {secret-api-key}\" --header \"ProjectID: {project-id}\" https://oneuptime.com/api/\<path\>" }) -%>
<%- include('../partials/code', {title: "Example request with API Key" , requestUrl: "" , requestType: "" , code: "curl --header \"ApiKey: {secret-api-key}\" https://oneuptime.com/api/\<path\>" }) -%>
<p class="text-sm">Please don't commit your OneUptime API Key to GitHub, or on any other source control
project. Please regenerate a new API Key, if your API Key is committed by mistake.</p>
</article>

View File

@@ -115,7 +115,7 @@
<dd class="font-mono text-xs text-zinc-400 ">Query</dd>
<dt class="sr-only">Description</dt>
<dd class="w-full flex-none [&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>Here is an example of Equal To Query</p>
<p>Here is an example of an Equal To Query</p>
</dd>
</dl>
</li>
@@ -153,7 +153,7 @@
<dd class="font-mono text-xs text-zinc-400 ">Query</dd>
<dt class="sr-only">Description</dt>
<dd class="w-full flex-none [&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>Here is an example of Not Equal To Query</p>
<p>Here is an example of a Not Equal To Query</p>
</dd>
</dl>
</li>
@@ -191,7 +191,7 @@
<dd class="font-mono text-xs text-zinc-400 ">Query</dd>
<dt class="sr-only">Description</dt>
<dd class="w-full flex-none [&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>Here is an example of is null query</p>
<p>Here is an example of an is null query</p>
</dd>
</dl>
</li>
@@ -229,7 +229,7 @@
<dd class="font-mono text-xs text-zinc-400 ">Query</dd>
<dt class="sr-only">Description</dt>
<dd class="w-full flex-none [&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>Here is an example of is not null query</p>
<p>Here is an example of an is not null query</p>
</dd>
</dl>
</li>
@@ -266,7 +266,7 @@
<dd class="font-mono text-xs text-zinc-400 ">Query</dd>
<dt class="sr-only">Description</dt>
<dd class="w-full flex-none [&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>Here is an example of greater than query</p>
<p>Here is an example of a greater than query</p>
</dd>
</dl>
</li>
@@ -304,7 +304,7 @@
<dd class="font-mono text-xs text-zinc-400 ">Query</dd>
<dt class="sr-only">Description</dt>
<dd class="w-full flex-none [&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>Here is an example of greater or equal than query</p>
<p>Here is an example of a greater than or equal query</p>
</dd>
</dl>
</li>
@@ -342,7 +342,7 @@
<dd class="font-mono text-xs text-zinc-400 ">Query</dd>
<dt class="sr-only">Description</dt>
<dd class="w-full flex-none [&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>Here is an example of less than query</p>
<p>Here is an example of a less than query</p>
</dd>
</dl>
</li>
@@ -380,7 +380,7 @@
<dd class="font-mono text-xs text-zinc-400 ">Query</dd>
<dt class="sr-only">Description</dt>
<dd class="w-full flex-none [&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>Here is an example of less or equal than query</p>
<p>Here is an example of a less than or equal query</p>
</dd>
</dl>
</li>
@@ -395,5 +395,44 @@
</div>
</div>
<h3 id="example-using-cursors" class="scroll-mt-24">
Inlcudes
</h3>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:max-w-none xl:grid-cols-2">
<div class="[&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>
Includes will get objects that match any of the values in the array. It is used to
filter objects that have a field that matches any of the values in the array. For example, if you
want to get all objects that have a label with ID `aaa00000-aaaa-aaaa-aaaa-aaaaaaaaaaaa` or
`bbb00000-bbbb-bbbb-bbbb-bbbbbbbbbbbb`, you can use the `includes` query type.
</p>
<div class="my-6">
<ul role="list"
class="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 ">
<li class="m-0 px-0 py-4 first:pt-0 last:pb-0">
<dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2">
<dt class="sr-only">Query</dt>
<dd><code class="inline-code">query</code></dd>
<dt class="sr-only">Type</dt>
<dd class="font-mono text-xs text-zinc-400 ">Query</dd>
<dt class="sr-only">Description</dt>
<dd class="w-full flex-none [&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>Here is an example of a less than or equal query</p>
</dd>
</dl>
</li>
</ul>
</div>
</div>
<div class="[&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<%- include('../partials/code', {title: "Example Not EqualTo Request Body" , requestUrl: "" , requestType: "" ,
code: pageData.includesCode }) -%>
</div>
</div>
</article>
</main>

View File

@@ -12,14 +12,14 @@
</h2>
<script>
function showPermissions(id){
var permissionsblock = document.getElementById(id+"-permissions");
var viewPermissionsBtn = document.getElementById(id+"-view-permissions");
function showPermissions(id) {
var permissionsblock = document.getElementById(id + "-permissions");
var viewPermissionsBtn = document.getElementById(id + "-view-permissions");
if(permissionsblock.style.display === "none"){
if (permissionsblock.style.display === "none") {
permissionsblock.style.display = "block";
viewPermissionsBtn.innerHTML = "Hide Permissions";
}else{
} else {
permissionsblock.style.display = "none";
viewPermissionsBtn.innerHTML = "View Permissions";
}
@@ -48,11 +48,16 @@
<dt class="sr-only">Description</dt>
<dd class="w-full flex-none text-sm [&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>
<%= pageData.columns[Object.keys(pageData.columns)[i]].description -%> <a class="text-gray-500 hover:underline cursor-pointer text-xs" id="<%= Object.keys(pageData.columns)[i] -%>-view-permissions" onclick="showPermissions('<%= Object.keys(pageData.columns)[i] -%>')">View Permissions</a>
<%= pageData.columns[Object.keys(pageData.columns)[i]].description -%> <a
class="text-gray-500 hover:underline cursor-pointer text-xs"
id="<%= Object.keys(pageData.columns)[i] -%>-view-permissions"
onclick="showPermissions('<%= Object.keys(pageData.columns)[i] -%>')">View
Permissions</a>
</p>
</dd>
<dd class="font-mono text-xs" style="display: none;" id="<%= Object.keys(pageData.columns)[i] -%>-permissions">
<dd class="font-mono text-xs" style="display: none;"
id="<%= Object.keys(pageData.columns)[i] -%>-permissions">
<div class="mb-3 mt-3">
<span class="text-gray-700 text-xs">Permissions to Create:&nbsp;</span>
@@ -319,8 +324,7 @@
<div class="[&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0 xl:sticky xl:top-24">
<%- include('../partials/code', {title: "Example Item Request" , requestUrl:
pageData.apiPath+"/3599ee69-43a7-42d7/get-item", code: pageData.itemRequest, requestType: "POST" })
-%>
pageData.apiPath+"/:id/get-item", code: pageData.itemRequest, requestType: "POST" }) -%>
<%- include('../partials/code', {title: "Example Item Response" , code: pageData.itemResponse,
requestType: "" }) -%>
</div>
@@ -469,11 +473,34 @@
</ul>
</div>
<div class="border border-gray-100 bg-gray-50 rounded-md p-4 text-sm mt-10">
<h4 class="font-semibold text-gray-700 ">For clients that do not support PUT requests<h4>
<p class="text-gray-500 text-xs mt-4">
You can also update an object by sending a POST or GET request to these endpoints with the
same
request headers and body.
</p>
<div class="flex items-center gap-x-3 mt-10"><span
class="font-mono text-[0.625rem] font-semibold leading-6 rounded-lg px-1.5 ring-1 ring-inset ring-sky-300 bg-sky-400/10 text-sky-500 ">POST</span><span
class="h-0.5 w-0.5 rounded-full bg-zinc-300 "></span><span
class="font-mono text-xs text-zinc-400">
<%= pageData.apiPath -%>/:id/update-item
</span></div>
<div class="flex items-center gap-x-3 mt-10"><span
class="font-mono text-[0.625rem] font-semibold leading-6 rounded-lg px-1.5 ring-1 ring-inset ring-emerald-300 bg-emerald-400/10 text-emerald-500 ">GET</span><span
class="h-0.5 w-0.5 rounded-full bg-zinc-300 "></span><span
class="font-mono text-xs text-zinc-400">
<%= pageData.apiPath -%>/:id/update-item
</span></div>
</div>
</div>
<div class="[&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0 xl:sticky xl:top-24">
<%- include('../partials/code', {title: "Example Update Request" , requestUrl:
pageData.apiPath+"/3599ee69-43a7-42d7", code: pageData.updateRequest, requestType: "PUT" }) -%>
pageData.apiPath+"/:id", code: pageData.updateRequest, requestType: "PUT" }) -%>
<%- include('../partials/code', {title: "Example Update Response" , code: pageData.updateResponse,
requestType: "" }) -%>
</div>
@@ -498,11 +525,34 @@
<p>This endpoint allows you to delete object by its ID. </p>
<div class="border border-gray-100 bg-gray-50 rounded-md p-4 text-sm mt-10">
<h4 class="font-semibold text-gray-700 ">For clients that do not support DELETE requests<h4>
<p class="text-gray-500 text-xs mt-4">
You can also delete an object by sending a POST or GET request to these endpoints with the
same
request headers and body.
</p>
<div class="flex items-center gap-x-3 mt-10"><span
class="font-mono text-[0.625rem] font-semibold leading-6 rounded-lg px-1.5 ring-1 ring-inset ring-sky-300 bg-sky-400/10 text-sky-500 ">POST</span><span
class="h-0.5 w-0.5 rounded-full bg-zinc-300 "></span><span
class="font-mono text-xs text-zinc-400">
<%= pageData.apiPath -%>/:id/delete-item
</span></div>
<div class="flex items-center gap-x-3 mt-10"><span
class="font-mono text-[0.625rem] font-semibold leading-6 rounded-lg px-1.5 ring-1 ring-inset ring-emerald-300 bg-emerald-400/10 text-emerald-500 ">GET</span><span
class="h-0.5 w-0.5 rounded-full bg-zinc-300 "></span><span
class="font-mono text-xs text-zinc-400">
<%= pageData.apiPath -%>/:id/delete-item
</span></div>
</div>
</div>
<div class="[&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0 xl:sticky xl:top-24">
<%- include('../partials/code', {title: "Example Delete Request" , requestUrl:
pageData.apiPath+"/3599ee69-43a7-42d7", code: pageData.deleteRequest, requestType: "DELETE" }) -%>
pageData.apiPath+"/:id", code: pageData.deleteRequest, requestType: "DELETE" }) -%>
<%- include('../partials/code', {title: "Example Delete Response" , code: pageData.deleteResponse,
requestType: "" }) -%>
</div>

View File

@@ -0,0 +1,53 @@
<main class="py-16">
<article class="prose ">
<h1>OneUptime OpenAPI Specification</h1>
<p class="lead">In this guide, we will look at how to import and work with the OneUptime OpenAPI specification. The OpenAPI spec provides a comprehensive reference for all available API endpoints.</p>
<p>The OneUptime API follows the OpenAPI 3.0 specification, which provides a standardized way to describe REST APIs. You can import our OpenAPI spec into various tools like Swagger Editor, Postman, or other API documentation tools to explore and test our endpoints.</p>
<h2 id="importing-spec" class="scroll-mt-24">
Importing the OpenAPI Spec
</h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10">
<div class="[&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>To import the OneUptime OpenAPI specification into Swagger Editor, follow these simple steps:</p>
<div class="my-6">
<ol class="list-decimal pl-6">
<li class="mb-2">Open <a href="https://editor.swagger.io" target="_blank" class="text-blue-600 hover:text-blue-800">editor.swagger.io</a> in your web browser</li>
<li class="mb-2">Click on <strong>File</strong> in the menu bar</li>
<li class="mb-2">Select <strong>Import URL</strong> from the dropdown menu</li>
<li class="mb-2">Enter the URL: <code class="inline-code"><%= pageData.hostUrl %>api/openapi/spec</code></li>
<li class="mb-2">Click <strong>Import</strong> to load the specification</li>
</ol>
</div>
<h2 id="spec-url" class="scroll-mt-24">
Specification URL
</h2>
<div class="my-6">
<ul role="list"
class="m-0 list-none divide-y divide-zinc-900/5 p-0 ">
<li class="m-0 px-0 py-4 first:pt-0 last:pb-0">
<dl class="m-0 flex flex-wrap items-center gap-x-3 gap-y-2">
<dt class="sr-only">Endpoint</dt>
<dd><code class="inline-code"><%= pageData.hostUrl %>api/openapi/spec</code></dd>
<dt class="sr-only">Description</dt>
<dd class="w-full flex-none [&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>Complete OpenAPI 3.0 specification for the OneUptime API including all endpoints, request/response schemas, and authentication methods.</p>
</dd>
</dl>
</li>
</ul>
</div>
<h2 id="benefits" class="scroll-mt-24">
Benefits of Using the OpenAPI Spec
</h2>
<div class="my-6">
<ul class="list-disc pl-6">
<li class="mb-2"><strong>Interactive Documentation:</strong> Test API endpoints directly in Swagger Editor</li>
<li class="mb-2"><strong>Code Generation:</strong> Generate client SDKs in multiple programming languages</li>
<li class="mb-2"><strong>Validation:</strong> Ensure your requests match the expected schema</li>
<li class="mb-2"><strong>Import to Tools:</strong> Use with Postman, Insomnia, or other API testing tools</li>
</ul>
</div>
</div>
</div>
</article>
</main>

View File

@@ -13,7 +13,7 @@
</h2>
<div class="grid grid-cols-1 items-start gap-x-16 gap-y-10 xl:max-w-none xl:grid-cols-2">
<div class="[&amp;>:first-child]:mt-0 [&amp;>:last-child]:mb-0">
<p>In this example, we request the list fo monitors. As a result, we get a list of three monitors and can
<p>In this example, we request the list of monitors. As a result, we get a list of three monitors and can
tell by the <code class="inline-code">count</code> attribute that we have reached the end of the
result set</p>
<h2 id="example-using-cursors" class="scroll-mt-24">

View File

@@ -1,5 +1,7 @@
<html lang="en" class="js-focus-visible ctshmsrlsm idc0_345">
<%- include('../partials/head') -%>
<%- include('../partials/head', {
enableGoogleTagManager: typeof enableGoogleTagManager !== 'undefined' ? enableGoogleTagManager : false,
}) -%>
<body onload="applyStyles()" class="bg-white antialiased " data-new-gr-c-s-check-loaded="14.1095.0"
data-gr-ext-installed="">

View File

@@ -103,6 +103,8 @@
</style>
<script src="https://cdn.tailwindcss.com"></script>
<% if(typeof enableGoogleTagManager !== 'undefined' ? enableGoogleTagManager : false){ %>
<!-- Google Tag Manager -->
<script>(function (w, d, s, l, i) {
w[l] = w[l] || []; w[l].push({
@@ -113,6 +115,7 @@
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-PKQD5WH');</script>
<!-- End Google Tag Manager -->
<% } %>
<style>

View File

@@ -146,6 +146,9 @@
with us on Slack</a></li>
<li><a class="text-sm leading-5 text-zinc-600 transition hover:text-zinc-900 "
href="/support">Support</a></li>
<li><a class="text-sm leading-5 text-zinc-600 transition hover:text-zinc-900 "
href="/reference/openapi" type="_blank">OpenAPI Spec</a></li>
<li><a class="text-sm leading-5 text-zinc-600 transition hover:text-zinc-900 "
href="https://github.com/oneuptime/oneuptime">GitHub</a></li>
</ul>
@@ -232,6 +235,10 @@
class="flex justify-between gap-2 py-1 pr-3 text-sm transition pl-4 text-zinc-600 hover:text-zinc-900 "
href="/reference/errors"><span class="truncate">Errors</span></a></li>
<li class="relative" style="transform: none; transform-origin: 50% 50% 0px;"><a
class="flex justify-between gap-2 py-1 pr-3 text-sm transition pl-4 text-zinc-600 hover:text-zinc-900 "
href="/reference/openapi"><span class="truncate">OpenAPI Spec</span></a></li>
</ul>
</div>

View File

@@ -3,7 +3,7 @@
#
# Pull base image nodejs image.
FROM node:21.7.3-alpine3.18
FROM public.ecr.aws/docker/library/node:23.8-alpine3.21
RUN mkdir /tmp/npm && chmod 2777 /tmp/npm && chown 1000:1000 /tmp/npm && npm config set cache /tmp/npm --global
RUN npm config set fetch-retries 5
@@ -69,12 +69,11 @@ RUN npm install
# - 3003: accounts
EXPOSE 3003
RUN npm i -D webpack-cli
{{ if eq .Env.ENVIRONMENT "development" }}
RUN mkdir /usr/src/app/dev-env
RUN touch /usr/src/app/dev-env/.env
RUN npm i -D webpack-dev-server
#Run the app
CMD [ "npm", "run", "dev" ]
@@ -84,6 +83,8 @@ COPY ./Accounts /usr/src/app
# Bundle app source
RUN npm run build
# Set permission to write logs and cache in case container run as non root
RUN chown -R 1000:1000 "/tmp/npm" && chmod -R 2777 "/tmp/npm"
#Run the app
CMD [ "npm", "start" ]
{{ end }}

View File

@@ -35,7 +35,7 @@ See the section about [deployment](https://facebook.github.io/create-react-app/d
If you arent satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point youre on your own.
Instead, it will copy all the configuration files and the transitive dependencies ( Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point youre on your own.
You dont have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldnt feel obligated to use this feature. However we understand that this tool wouldnt be useful if you couldnt customize it when you are ready for it.

View File

@@ -2,6 +2,7 @@ import { PromiseVoidFunction } from "Common/Types/FunctionTypes";
import Express, { ExpressApplication } from "Common/Server/Utils/Express";
import logger from "Common/Server/Utils/Logger";
import App from "Common/Server/Utils/StartServer";
import "ejs";
export const APP_NAME: string = "accounts";

View File

@@ -0,0 +1,12 @@
const { createConfig, build, watch } = require('Common/UI/esbuild-config');
const config = createConfig({
serviceName: 'Accounts',
publicPath: '/accounts/dist/',
});
if (process.argv.includes('--watch')) {
watch(config, 'Accounts');
} else {
build(config, 'Accounts');
}

View File

@@ -1,4 +1,14 @@
{
"watch": ["webpack.config.js"],
"exec": "export DEBUG=express:* && printenv > /usr/src/app/dev-env/.env && echo 'USE_HTTPS=false' >> /usr/src/app/dev-env/.env && webpack-dev-server --port=3003 --mode=development"
"watch": ["./","../Common/UI", "../Common/Types", "../Common/Utils", "../Common/Models"],
"ext": "ts,json,tsx,env,js,jsx,hbs",
"ignore": [
"./public/**",
"./public/dist/**",
"./build/*",
"./build/**",
"./build/dist/*",
"./build/dist/**",
"../Common/Server/**"
],
"exec": "npm run dev-build && npm run start"
}

File diff suppressed because it is too large Load Diff

View File

@@ -3,8 +3,10 @@
"version": "0.1.0",
"private": false,
"scripts": {
"dev-build": "NODE_ENV=development node esbuild.config.js",
"dev": "npx nodemon",
"build": "webpack build --mode=production",
"build": "NODE_ENV=production node esbuild.config.js",
"analyze": "analyze=true NODE_ENV=production node esbuild.config.js",
"test": "",
"compile": "tsc",
"clear-modules": "rm -rf node_modules && rm package-lock.json && npm install",
@@ -27,16 +29,11 @@
},
"dependencies": {
"Common": "file:../Common",
"css-loader": "^6.11.0",
"dotenv": "^16.4.5",
"express": "^4.19.2",
"file-loader": "^6.2.0",
"ejs": "^3.1.10",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^6.23.1",
"sass-loader": "^13.3.3",
"style-loader": "^3.3.4",
"ts-loader": "^9.5.1",
"use-async-effect": "^2.2.7"
},
"devDependencies": {
@@ -45,7 +42,7 @@
"@types/react-dom": "^18.0.4",
"@types/react-router-dom": "^5.3.3",
"nodemon": "^2.0.20",
"ts-node": "^10.9.1",
"webpack": "^5.76.0"
"ts-node": "^10.9.1"
}
}

File diff suppressed because one or more lines are too long

View File

@@ -1,12 +1,4 @@
import ForgotPasswordPage from "./Pages/ForgotPassword";
import LoginPage from "./Pages/Login";
import LoginWithSSO from "./Pages/LoginWithSSO";
import NotFound from "./Pages/NotFound";
import RegisterPage from "./Pages/Register";
import ResetPasswordPage from "./Pages/ResetPassword";
import VerifyEmail from "./Pages/VerifyEmail";
import Navigation from "Common/UI/Utils/Navigation";
import React, { ReactElement } from "react";
import React, { ReactElement, lazy, Suspense } from "react";
import {
Route,
Routes,
@@ -14,6 +6,38 @@ import {
useNavigate,
useParams,
} from "react-router-dom";
import Navigation from "Common/UI/Utils/Navigation";
import PageLoader from "Common/UI/Components/Loader/PageLoader";
// Lazy load page components
const ForbiddenPage: React.LazyExoticComponent<() => JSX.Element> = lazy(() => {
return import("./Pages/Forbidden");
});
const ForgotPasswordPage: React.LazyExoticComponent<() => JSX.Element> = lazy(
() => {
return import("./Pages/ForgotPassword");
},
);
const LoginPage: React.LazyExoticComponent<() => JSX.Element> = lazy(() => {
return import("./Pages/Login");
});
const LoginWithSSO: React.LazyExoticComponent<() => JSX.Element> = lazy(() => {
return import("./Pages/LoginWithSSO");
});
const NotFound: React.LazyExoticComponent<() => JSX.Element> = lazy(() => {
return import("./Pages/NotFound");
});
const RegisterPage: React.LazyExoticComponent<() => JSX.Element> = lazy(() => {
return import("./Pages/Register");
});
const ResetPasswordPage: React.LazyExoticComponent<() => JSX.Element> = lazy(
() => {
return import("./Pages/ResetPassword");
},
);
const VerifyEmail: React.LazyExoticComponent<() => JSX.Element> = lazy(() => {
return import("./Pages/VerifyEmail");
});
function App(): ReactElement {
Navigation.setNavigateHook(useNavigate());
@@ -22,24 +46,29 @@ function App(): ReactElement {
return (
<div className="m-auto h-screen">
<Routes>
<Route path="/accounts" element={<LoginPage />} />
<Route path="/accounts/login" element={<LoginPage />} />
<Route path="/accounts/sso" element={<LoginWithSSO />} />
<Route
path="/accounts/forgot-password"
element={<ForgotPasswordPage />}
/>
<Route
path="/accounts/reset-password/:token"
element={<ResetPasswordPage />}
/>
<Route path="/accounts/register" element={<RegisterPage />} />
<Route path="/accounts/verify-email/:token" element={<VerifyEmail />} />
{/* 👇️ only match this when no other routes match */}
<Route path="*" element={<NotFound />} />
</Routes>
<Suspense fallback={<PageLoader isVisible={true} />}>
<Routes>
<Route path="/accounts" element={<LoginPage />} />
<Route path="/accounts/login" element={<LoginPage />} />
<Route path="/accounts/forbidden" element={<ForbiddenPage />} />
<Route path="/accounts/sso" element={<LoginWithSSO />} />
<Route
path="/accounts/forgot-password"
element={<ForgotPasswordPage />}
/>
<Route
path="/accounts/reset-password/:token"
element={<ResetPasswordPage />}
/>
<Route path="/accounts/register" element={<RegisterPage />} />
<Route
path="/accounts/verify-email/:token"
element={<VerifyEmail />}
/>
{/* 👇️ only match this when no other routes match */}
<Route path="*" element={<NotFound />} />
</Routes>
</Suspense>
</div>
);
}

View File

@@ -1,5 +1,5 @@
import App from "./App";
import Telemetry from "Common/UI/Utils/Telemetry";
import Telemetry from "Common/UI/Utils/Telemetry/Telemetry";
import React from "react";
import ReactDOM from "react-dom/client";
import { BrowserRouter } from "react-router-dom";

View File

@@ -0,0 +1,18 @@
import React from "react";
const ForbiddenPage: () => JSX.Element = () => {
return (
<div className="flex min-h-full flex-col justify-center py-12 sm:px-6 lg:px-8">
<div className="sm:mx-auto sm:w-full sm:max-w-md">
<h2 className="mt-6 text-center text-2xl tracking-tight text-gray-900">
Forbidden
</h2>
<p className="mt-2 text-center text-sm text-gray-600">
You do not have permission to access this page.
</p>
</div>
</div>
);
};
export default ForbiddenPage;

View File

@@ -56,6 +56,7 @@ const ForgotPassword: () => JSX.Element = () => {
title: "Email",
fieldType: FormFieldSchemaType.Email,
required: true,
disableSpellCheck: true,
},
]}
onSuccess={() => {

View File

@@ -122,6 +122,7 @@ const LoginPage: () => JSX.Element = () => {
disabled: Boolean(initialValues && initialValues["email"]),
title: "Email",
dataTestId: "email",
disableSpellCheck: true,
},
{
field: {
@@ -139,6 +140,7 @@ const LoginPage: () => JSX.Element = () => {
openLinkInNewTab: false,
},
dataTestId: "password",
disableSpellCheck: true,
},
]}
createOrUpdateApiUrl={apiUrl}

View File

@@ -196,6 +196,7 @@ const LoginPage: () => JSX.Element = () => {
required: true,
title: "Email",
dataTestId: "email",
disableSpellCheck: true,
},
]}
maxPrimaryButtonWidth={true}
@@ -208,7 +209,7 @@ const LoginPage: () => JSX.Element = () => {
<div>
<Link to={new Route("/accounts/login")}>
<div className="text-indigo-500 hover:text-indigo-900 cursor-pointer text-sm">
Use username and password insead.
Use username and password instead.
</div>
</Link>
</div>

View File

@@ -104,6 +104,7 @@ const RegisterPage: () => JSX.Element = () => {
disabled: Boolean(initialValues && initialValues["email"]),
title: "Email",
dataTestId: "email",
disableSpellCheck: true,
},
{
field: {
@@ -114,6 +115,7 @@ const RegisterPage: () => JSX.Element = () => {
required: true,
title: "Full Name",
dataTestId: "name",
disableSpellCheck: true,
},
];
@@ -128,6 +130,7 @@ const RegisterPage: () => JSX.Element = () => {
required: true,
title: "Company Name",
dataTestId: "companyName",
disableSpellCheck: true,
},
]);
@@ -159,6 +162,7 @@ const RegisterPage: () => JSX.Element = () => {
title: "Password",
required: true,
dataTestId: "password",
disableSpellCheck: true,
},
{
field: {
@@ -175,11 +179,12 @@ const RegisterPage: () => JSX.Element = () => {
required: true,
showEvenIfPermissionDoesNotExist: true,
dataTestId: "confirmPassword",
disableSpellCheck: true,
},
]);
if (error) {
return <ErrorMessage error={error} />;
return <ErrorMessage message={error} />;
}
if (isLoading) {

View File

@@ -68,6 +68,7 @@ const RegisterPage: () => JSX.Element = () => {
title: "New Password",
required: true,
showEvenIfPermissionDoesNotExist: true,
disableSpellCheck: true,
},
{
field: {
@@ -83,6 +84,7 @@ const RegisterPage: () => JSX.Element = () => {
overrideFieldKey: "confirmPassword",
required: true,
showEvenIfPermissionDoesNotExist: true,
disableSpellCheck: true,
},
]}
createOrUpdateApiUrl={apiUrl}

View File

@@ -12,6 +12,7 @@
<meta name="slack-app-id" content="ACVBMTPJQ">
<meta name="description" content="OneUptime — the complete open-source observability platform.">
<% if(typeof enableGoogleTagManager !== 'undefined' ? enableGoogleTagManager : false){ %>
<!-- Google Tag Manager -->
<script>(function (w, d, s, l, i) {
w[l] = w[l] || []; w[l].push({
@@ -22,6 +23,7 @@
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-PKQD5WH');</script>
<!-- End Google Tag Manager -->
<% } %>
<link rel="manifest" href="/accounts/assets/img/favicons/ma">
@@ -73,7 +75,7 @@
width: auto;
}
</style>
<script src="https://cdn.tailwindcss.com"></script>
<script src="/accounts/assets/js/tailwind-3.4.5.js"></script>
<title>OneUptime Accounts</title>
@@ -95,14 +97,16 @@
</head>
<body class="h-full bg-gray-50">
<% if(typeof enableGoogleTagManager !== 'undefined' ? enableGoogleTagManager : false){ %>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PKQD5WH" height="0" width="0"
style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<% } %>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script src="/accounts/dist/bundle.js"></script>
<script type="module" src="/accounts/dist/Index.js"></script>
<script>
tailwind.config = {
theme: {

View File

@@ -1,84 +0,0 @@
require("ts-loader");
require("file-loader");
require("style-loader");
require("css-loader");
require("sass-loader");
const path = require("path");
const webpack = require("webpack");
const dotenv = require("dotenv");
const express = require("express");
const readEnvFile = (pathToFile) => {
const parsed = dotenv.config({ path: pathToFile }).parsed;
const env = {};
for (const key in parsed) {
env[key] = JSON.stringify(parsed[key]);
}
return env;
};
module.exports = {
entry: "./src/Index.tsx",
mode: "development",
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "public", "dist"),
publicPath: "/accounts/dist/",
},
resolve: {
extensions: [".ts", ".tsx", ".js", ".jsx", ".json", ".css", ".scss"],
alias: {
react: path.resolve("./node_modules/react"),
},
},
externals: {
"react-native-sqlite-storage": "react-native-sqlite-storage",
},
plugins: [
new webpack.DefinePlugin({
process: {
env: {
...readEnvFile("/usr/src/app/dev-env/.env"),
},
},
}),
],
module: {
rules: [
{
test: /\.(ts|tsx)$/,
use: "ts-loader",
},
{
test: /\.s[ac]ss$/i,
use: ["style-loader", "css-loader", "sass-loader"],
},
{
test: /\.css$/i,
use: ["style-loader", "css-loader"],
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
loader: "file-loader",
},
],
},
devServer: {
historyApiFallback: true,
devMiddleware: {
writeToDisk: true,
},
allowedHosts: "all",
setupMiddlewares: (middlewares, devServer) => {
devServer.app.use(
"/accounts/assets",
express.static(path.resolve(__dirname, "public", "assets")),
);
return middlewares;
},
},
devtool: "eval-source-map",
};

View File

@@ -3,7 +3,7 @@
#
# Pull base image nodejs image.
FROM node:21.7.3-alpine3.18
FROM public.ecr.aws/docker/library/node:23.8-alpine3.21
RUN mkdir /tmp/npm && chmod 2777 /tmp/npm && chown 1000:1000 /tmp/npm && npm config set cache /tmp/npm --global
RUN npm config set fetch-retries 5
@@ -67,19 +67,20 @@ RUN npm install
# - 3158: AdminDashboard
EXPOSE 3158
RUN npm i -D webpack-cli
{{ if eq .Env.ENVIRONMENT "development" }}
#Run the app
RUN mkdir /usr/src/app/dev-env
RUN touch /usr/src/app/dev-env/.env
RUN npm i -D webpack-dev-server
CMD [ "npm", "run", "dev" ]
{{ else }}
# Copy app source
COPY ./AdminDashboard /usr/src/app
# Bundle app source
RUN npm run build
# Set permission to write logs and cache in case container run as non root
RUN chown -R 1000:1000 "/tmp/npm" && chmod -R 2777 "/tmp/npm"
#Run the app
CMD [ "npm", "start" ]
{{ end }}

View File

@@ -35,7 +35,7 @@ See the section about [deployment](https://facebook.github.io/create-react-app/d
If you arent satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point youre on your own.
Instead, it will copy all the configuration files and the transitive dependencies ( Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point youre on your own.
You dont have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldnt feel obligated to use this feature. However we understand that this tool wouldnt be useful if you couldnt customize it when you are ready for it.

View File

@@ -2,6 +2,7 @@ import { PromiseVoidFunction } from "Common/Types/FunctionTypes";
import Express, { ExpressApplication } from "Common/Server/Utils/Express";
import logger from "Common/Server/Utils/Logger";
import App from "Common/Server/Utils/StartServer";
import "ejs";
export const APP_NAME: string = "admin";

View File

@@ -0,0 +1,12 @@
const { createConfig, build, watch } = require('Common/UI/esbuild-config');
const config = createConfig({
serviceName: 'AdminDashboard',
publicPath: '/admin/dist/',
});
if (process.argv.includes('--watch')) {
watch(config, 'AdminDashboard');
} else {
build(config, 'AdminDashboard');
}

View File

@@ -1,4 +1,14 @@
{
"watch": ["webpack.config.js"],
"exec": "export DEBUG=express:* && printenv > /usr/src/app/dev-env/.env && echo 'USE_HTTPS=false' >> /usr/src/app/dev-env/.env && webpack-dev-server --port=3158 --mode=development"
"watch": ["./","../Common/UI", "../Common/Types", "../Common/Utils", "../Common/Models"],
"ext": "ts,json,tsx,env,js,jsx,hbs",
"ignore": [
"./public/**",
"./public/dist/**",
"./build/*",
"./build/**",
"./build/dist/*",
"./build/dist/**",
"../Common/Server/**"
],
"exec": " npm run dev-build && npm run start"
}

File diff suppressed because it is too large Load Diff

View File

@@ -4,19 +4,19 @@
"private": false,
"dependencies": {
"Common": "file:../Common",
"dotenv": "^16.4.5",
"file-loader": "^6.2.0",
"ejs": "^3.1.10",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^6.23.1",
"style-loader": "^3.3.4"
"react-router-dom": "^6.23.1"
},
"scripts": {
"dev-build": "NODE_ENV=development node esbuild.config.js",
"dev": "npx nodemon",
"build": "webpack build --mode=production",
"build": "NODE_ENV=production node esbuild.config.js",
"analyze": "analyze=true NODE_ENV=production node esbuild.config.js",
"test": "react-app-rewired test",
"eject": "webpack eject",
"eject": "echo 'esbuild does not require eject'",
"compile": "tsc",
"clear-modules": "rm -rf node_modules && rm package-lock.json && npm install",
"start": "node --require ts-node/register Serve.ts",
@@ -41,13 +41,8 @@
"@types/react": "^18.2.38",
"@types/react-dom": "^18.0.4",
"@types/react-router-dom": "^5.3.3",
"css-loader": "^6.8.1",
"nodemon": "^2.0.20",
"react-app-rewired": "^2.2.1",
"sass": "^1.51.0",
"sass-loader": "^12.6.0",
"ts-loader": "^9.5.1",
"ts-node": "^10.9.1",
"webpack": "^5.76.0"
"ts-node": "^10.9.1"
}
}

File diff suppressed because one or more lines are too long

View File

@@ -67,7 +67,7 @@ const DashboardFooter: () => JSX.Element = () => {
return (
<>
<Footer
className="bg-white h-16 inset-x-0 bottom-0 px-8"
className="bg-white px-8"
copyright="HackerBay, Inc."
links={[
{

View File

@@ -17,7 +17,9 @@ const Logo: FunctionComponent<ComponentProps> = (
<Image
className="block h-8 w-auto"
onClick={() => {
props.onClick && props.onClick();
if (props.onClick) {
props.onClick();
}
}}
imageUrl={Route.fromString(`${OneUptimeLogo}`)}
alt={"OneUptime"}

View File

@@ -137,7 +137,7 @@ const DashboardProjectPicker: FunctionComponent<ComponentProps> = (
minLength: 6,
},
footerElement: getFooter(),
fieldType: FormFieldSchemaType.RadioButton,
fieldType: FormFieldSchemaType.OptionChooserButton,
radioButtonOptions: SubscriptionPlan.getSubscriptionPlans(
getAllEnvVars(),
).map((plan: SubscriptionPlan): RadioButton => {

View File

@@ -2,36 +2,33 @@ import PageMap from "../../Utils/PageMap";
import RouteMap, { RouteUtil } from "../../Utils/RouteMap";
import Route from "Common/Types/API/Route";
import IconProp from "Common/Types/Icon/IconProp";
import NavBar from "Common/UI/Components/Navbar/NavBar";
import NavBarItem from "Common/UI/Components/Navbar/NavBarItem";
import NavBar, { NavItem } from "Common/UI/Components/Navbar/NavBar";
import React, { FunctionComponent, ReactElement } from "react";
const DashboardNavbar: FunctionComponent = (): ReactElement => {
return (
<NavBar>
<NavBarItem
title="Users"
icon={IconProp.User}
route={RouteUtil.populateRouteParams(RouteMap[PageMap.USERS] as Route)}
></NavBarItem>
// Build the navigation items
const navItems: NavItem[] = [
{
id: "users-nav-bar-item",
title: "Users",
icon: IconProp.User,
route: RouteUtil.populateRouteParams(RouteMap[PageMap.USERS] as Route),
},
{
id: "projects-nav-bar-item",
title: "Projects",
icon: IconProp.Folder,
route: RouteUtil.populateRouteParams(RouteMap[PageMap.PROJECTS] as Route),
},
{
id: "settings-nav-bar-item",
title: "Settings",
icon: IconProp.Settings,
route: RouteUtil.populateRouteParams(RouteMap[PageMap.SETTINGS] as Route),
},
];
<NavBarItem
title="Projects"
icon={IconProp.Folder}
route={RouteUtil.populateRouteParams(
RouteMap[PageMap.PROJECTS] as Route,
)}
></NavBarItem>
<NavBarItem
title="Settings"
icon={IconProp.Settings}
route={RouteUtil.populateRouteParams(
RouteMap[PageMap.SETTINGS] as Route,
)}
></NavBarItem>
</NavBar>
);
return <NavBar items={navItems} />;
};
export default DashboardNavbar;

View File

@@ -1,5 +1,5 @@
import App from "./App";
import Telemetry from "Common/UI/Utils/Telemetry";
import Telemetry from "Common/UI/Utils/Telemetry/Telemetry";
import React from "react";
import ReactDOM from "react-dom/client";
import { BrowserRouter } from "react-router-dom";

View File

@@ -16,7 +16,7 @@ const Logout: FunctionComponent = (): ReactElement => {
const logout: PromiseVoidFunction = async (): Promise<void> => {
UiAnalytics.logout();
await UserUtil.logout();
UserUtil.logout();
Navigation.navigate(ACCOUNTS_URL);
};
@@ -41,7 +41,7 @@ const Logout: FunctionComponent = (): ReactElement => {
]}
>
{!error ? <PageLoader isVisible={true} /> : <></>}
{error ? <ErrorMessage error={error} /> : <></>}
{error ? <ErrorMessage message={error} /> : <></>}
</Page>
);
};

View File

@@ -75,7 +75,7 @@ const Projects: FunctionComponent = (): ReactElement => {
minLength: 6,
},
footerElement: getFooter(),
fieldType: FormFieldSchemaType.RadioButton,
fieldType: FormFieldSchemaType.OptionChooserButton,
radioButtonOptions: SubscriptionPlan.getSubscriptionPlans(
getAllEnvVars(),
).map((plan: SubscriptionPlan): RadioButton => {
@@ -241,8 +241,10 @@ const Projects: FunctionComponent = (): ReactElement => {
},
title: "Created At",
type: FieldType.DateTime,
hideOnMobile: true,
},
]}
userPreferencesKey="admin-projects-table"
/>
</Page>
);

View File

@@ -72,9 +72,9 @@ const Settings: FunctionComponent = (): ReactElement => {
},
{
field: {
twilioPhoneNumber: true,
twilioPrimaryPhoneNumber: true,
},
title: "Twilio Phone Number",
title: "Primary Twilio Phone Number",
fieldType: FormFieldSchemaType.Phone,
required: true,
description: "You can find this in your Twilio console.",
@@ -83,6 +83,20 @@ const Settings: FunctionComponent = (): ReactElement => {
minLength: 2,
},
},
{
field: {
twilioSecondaryPhoneNumbers: true,
},
title: "Secondary Twilio Phone Number",
fieldType: FormFieldSchemaType.LongText,
required: true,
description:
"If you have bought more phone numbers from Twilio for specific countries, you can add them here.",
placeholder: "+1234567890, +4444444444",
validation: {
minLength: 2,
},
},
]}
modelDetailProps={{
modelType: GlobalConfig,
@@ -97,12 +111,20 @@ const Settings: FunctionComponent = (): ReactElement => {
},
{
field: {
twilioPhoneNumber: true,
twilioPrimaryPhoneNumber: true,
},
title: "Twilio Phone Number",
title: "Primary Twilio Phone Number",
fieldType: FieldType.Phone,
placeholder: "None",
},
{
field: {
twilioSecondaryPhoneNumbers: true,
},
title: "Secondary Twilio Phone Numbers",
fieldType: FieldType.LongText,
placeholder: "None",
},
],
modelId: ObjectID.getZeroObjectID(),
}}

View File

@@ -21,7 +21,7 @@ import React, { FunctionComponent, ReactElement, useEffect } from "react";
const Settings: FunctionComponent = (): ReactElement => {
const [emailServerType, setemailServerType] = React.useState<EmailServerType>(
EmailServerType.Internal,
EmailServerType.CustomSMTP,
);
const [isLoading, setIsLoading] = React.useState<boolean>(true);
@@ -43,7 +43,7 @@ const Settings: FunctionComponent = (): ReactElement => {
if (globalConfig) {
setemailServerType(
globalConfig.emailServerType || EmailServerType.Internal,
globalConfig.emailServerType || EmailServerType.CustomSMTP,
);
}
@@ -61,7 +61,7 @@ const Settings: FunctionComponent = (): ReactElement => {
}
if (error) {
return <ErrorMessage error={error} />;
return <ErrorMessage message={error} />;
}
return (
@@ -106,6 +106,7 @@ const Settings: FunctionComponent = (): ReactElement => {
title: "Admin Notification Email",
fieldType: FormFieldSchemaType.Email,
required: false,
disableSpellCheck: true,
},
]}
modelDetailProps={{
@@ -126,7 +127,7 @@ const Settings: FunctionComponent = (): ReactElement => {
/>
<CardModelDetail
name="Internal SMTP Settings"
name="Email Server Settings"
cardProps={{
title: "Email Server Settings",
description:
@@ -171,7 +172,7 @@ const Settings: FunctionComponent = (): ReactElement => {
cardProps={{
title: "Custom Email and SMTP Settings",
description:
"If you have not enabled Internal SMTP server to send emails. Please configure your SMTP server here.",
"Please configure your SMTP server here to send emails.",
}}
isEditable={true}
editButtonText="Edit SMTP Config"
@@ -199,6 +200,7 @@ const Settings: FunctionComponent = (): ReactElement => {
fieldType: FormFieldSchemaType.Hostname,
required: true,
placeholder: "smtp.server.com",
disableSpellCheck: true,
},
{
field: {
@@ -229,6 +231,7 @@ const Settings: FunctionComponent = (): ReactElement => {
fieldType: FormFieldSchemaType.Text,
required: false,
placeholder: "emailuser",
disableSpellCheck: true,
},
{
field: {
@@ -239,6 +242,7 @@ const Settings: FunctionComponent = (): ReactElement => {
fieldType: FormFieldSchemaType.EncryptedText,
required: false,
placeholder: "Password",
disableSpellCheck: true,
},
{
field: {
@@ -251,6 +255,7 @@ const Settings: FunctionComponent = (): ReactElement => {
description:
"Email used to log in to this SMTP Server. This is also the email your customers will see. ",
placeholder: "email@company.com",
disableSpellCheck: true,
},
{
field: {
@@ -263,6 +268,7 @@ const Settings: FunctionComponent = (): ReactElement => {
description:
"This is the display name your team and customers see, when they receive emails from OneUptime.",
placeholder: "Company, Inc.",
disableSpellCheck: true,
},
]}
modelDetailProps={{

View File

@@ -54,9 +54,11 @@ const Settings: FunctionComponent = (): ReactElement => {
title="Need help with setting up Global Probes?"
description="Here is a guide which will help you get set up"
link={Route.fromString("/docs/probe/custom-probe")}
hideOnMobile={true}
/>
<ModelTable<Probe>
userPreferencesKey={"admin-probes-table"}
modelType={Probe}
id="probes-table"
name="Settings > Global Probes"
@@ -99,7 +101,7 @@ const Settings: FunctionComponent = (): ReactElement => {
},
title: "Description",
fieldType: FormFieldSchemaType.LongText,
required: true,
required: false,
placeholder: "This probe is to monitor all the internal services.",
},
@@ -151,7 +153,7 @@ const Settings: FunctionComponent = (): ReactElement => {
description: true,
},
title: "Description",
type: FieldType.Text,
type: FieldType.LongText,
},
]}
columns={[
@@ -170,8 +172,10 @@ const Settings: FunctionComponent = (): ReactElement => {
field: {
description: true,
},
noValueMessage: "-",
title: "Description",
type: FieldType.Text,
type: FieldType.LongText,
hideOnMobile: true,
},
{
field: {
@@ -179,6 +183,7 @@ const Settings: FunctionComponent = (): ReactElement => {
},
title: "Status",
type: FieldType.Text,
getElement: (item: Probe): ReactElement => {
if (
item &&

View File

@@ -26,6 +26,7 @@ const Users: FunctionComponent = (): ReactElement => {
>
<ModelTable<User>
modelType={User}
userPreferencesKey="admin-users-table"
id="users-table"
isDeleteable={false}
isEditable={false}
@@ -47,6 +48,7 @@ const Users: FunctionComponent = (): ReactElement => {
fieldType: FormFieldSchemaType.Email,
required: true,
placeholder: "email@company.com",
disableSpellCheck: true,
},
{
field: {
@@ -56,6 +58,7 @@ const Users: FunctionComponent = (): ReactElement => {
fieldType: FormFieldSchemaType.Password,
required: true,
placeholder: "Password",
disableSpellCheck: true,
},
{
field: {
@@ -113,6 +116,7 @@ const Users: FunctionComponent = (): ReactElement => {
},
title: "Email Verified",
type: FieldType.Boolean,
hideOnMobile: true,
},
{
field: {
@@ -120,6 +124,7 @@ const Users: FunctionComponent = (): ReactElement => {
},
title: "Created At",
type: FieldType.DateTime,
hideOnMobile: true,
},
]}
/>

View File

@@ -11,6 +11,7 @@
<meta name="slack-app-id" content="ACVBMTPJQ">
<meta name="description" content="OneUptime — the complete open-source observability platform.">
<% if(typeof enableGoogleTagManager !== 'undefined' ? enableGoogleTagManager : false){ %>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
@@ -19,6 +20,7 @@
})(window,document,'script','dataLayer','GTM-PKQD5WH');
</script>
<!-- End Google Tag Manager -->
<% } %>
<link rel="manifest" href="/admin/assets/img/favicons/ma">
<link rel="apple-touch-icon" sizes="180x180" href="/admin/assets/img/favicons/apple-touch-icon.png">
@@ -66,7 +68,7 @@
width: auto;
}
</style>
<script src="https://cdn.tailwindcss.com"></script>
<script src="/admin/assets/js/tailwind-3.4.5.js"></script>
<script src="/admin/env.js"></script>
@@ -89,14 +91,16 @@
-->
</head>
<body class="h-full bg-gray-50">
<% if(typeof enableGoogleTagManager !== 'undefined' ? enableGoogleTagManager : false){ %>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PKQD5WH"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<% } %>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script src="/admin/dist/bundle.js"></script>
<script type="module" src="/admin/dist/Index.js"></script>
<script>
tailwind.config = {
theme: {

View File

@@ -1,84 +0,0 @@
require("ts-loader");
require("file-loader");
require("style-loader");
require("css-loader");
require("sass-loader");
const path = require("path");
const webpack = require("webpack");
const dotenv = require("dotenv");
const express = require("express");
const readEnvFile = (pathToFile) => {
const parsed = dotenv.config({ path: pathToFile }).parsed;
const env = {};
for (const key in parsed) {
env[key] = JSON.stringify(parsed[key]);
}
return env;
};
module.exports = {
entry: "./src/Index.tsx",
mode: "development",
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "public", "dist"),
publicPath: "/admin/dist/",
},
resolve: {
extensions: [".ts", ".tsx", ".js", ".jsx", ".json", ".css", ".scss"],
alias: {
react: path.resolve("./node_modules/react"),
},
},
externals: {
"react-native-sqlite-storage": "react-native-sqlite-storage",
},
plugins: [
new webpack.DefinePlugin({
process: {
env: {
...readEnvFile("/usr/src/app/dev-env/.env"),
},
},
}),
],
module: {
rules: [
{
test: /\.(ts|tsx)$/,
use: "ts-loader",
},
{
test: /\.s[ac]ss$/i,
use: ["style-loader", "css-loader", "sass-loader"],
},
{
test: /\.css$/i,
use: ["style-loader", "css-loader"],
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
loader: "file-loader",
},
],
},
devServer: {
historyApiFallback: true,
devMiddleware: {
writeToDisk: true,
},
allowedHosts: "all",
setupMiddlewares: (middlewares, devServer) => {
devServer.app.use(
"/admin/assets",
express.static(path.resolve(__dirname, "public", "assets")),
);
return middlewares;
},
},
devtool: "eval-source-map",
};

View File

@@ -3,7 +3,7 @@
#
# Pull base image nodejs image.
FROM node:21.2-alpine3.18
FROM public.ecr.aws/docker/library/node:23.8-alpine3.21
RUN mkdir /tmp/npm && chmod 2777 /tmp/npm && chown 1000:1000 /tmp/npm && npm config set cache /tmp/npm --global
RUN npm config set fetch-retries 5
@@ -65,6 +65,8 @@ CMD [ "npm", "run", "dev" ]
COPY ./App /usr/src/app
# Bundle app source
RUN npm run compile
# Set permission to write logs and cache in case container run as non root
RUN chown -R 1000:1000 "/tmp/npm" && chmod -R 2777 "/tmp/npm"
#Run the app
CMD [ "npm", "start" ]
{{ end }}

View File

@@ -10,21 +10,26 @@ import GlobalConfigAPI from "Common/Server/API/GlobalConfigAPI";
import MonitorGroupAPI from "Common/Server/API/MonitorGroupAPI";
import NotificationAPI from "Common/Server/API/NotificationAPI";
import TelemetryAPI from "Common/Server/API/TelemetryAPI";
import Ingestor from "Common/Server/API/ProbeAPI";
import ProbeAPI from "Common/Server/API/ProbeAPI";
import ProjectAPI from "Common/Server/API/ProjectAPI";
import ProjectSsoAPI from "Common/Server/API/ProjectSSO";
// Import API
import ResellerPlanAPI from "Common/Server/API/ResellerPlanAPI";
import MonitorAPI from "Common/Server/API/MonitorAPI";
import ShortLinkAPI from "Common/Server/API/ShortLinkAPI";
import StatusPageAPI from "Common/Server/API/StatusPageAPI";
import WorkspaceNotificationRuleAPI from "Common/Server/API/WorkspaceNotificationRuleAPI";
import StatusPageDomainAPI from "Common/Server/API/StatusPageDomainAPI";
import StatusPageSubscriberAPI from "Common/Server/API/StatusPageSubscriberAPI";
import UserCallAPI from "Common/Server/API/UserCallAPI";
import UserTwoFactorAuthAPI from "Common/Server/API/UserTwoFactorAuthAPI";
import MonitorTest from "Common/Models/DatabaseModels/MonitorTest";
// User Notification methods.
import UserEmailAPI from "Common/Server/API/UserEmailAPI";
import UserNotificationLogTimelineAPI from "Common/Server/API/UserOnCallLogTimelineAPI";
import UserSMSAPI from "Common/Server/API/UserSmsAPI";
import UserPushAPI from "Common/Server/API/UserPushAPI";
import ApiKeyPermissionService, {
Service as ApiKeyPermissionServiceType,
} from "Common/Server/Services/ApiKeyPermissionService";
@@ -46,6 +51,40 @@ import TelemetryIngestionKeyService, {
import EmailVerificationTokenService, {
Service as EmailVerificationTokenServiceType,
} from "Common/Server/Services/EmailVerificationTokenService";
import AlertCustomFieldService, {
Service as AlertCustomFieldServiceType,
} from "Common/Server/Services/AlertCustomFieldService";
import AlertInternalNoteService, {
Service as AlertInternalNoteServiceType,
} from "Common/Server/Services/AlertInternalNoteService";
import AlertNoteTemplateService, {
Service as AlertNoteTemplateServiceType,
} from "Common/Server/Services/AlertNoteTemplateService";
import AlertOwnerTeamService, {
Service as AlertOwnerTeamServiceType,
} from "Common/Server/Services/AlertOwnerTeamService";
import DashboardService, {
Service as DashboardServiceType,
} from "Common/Server/Services/DashboardService";
import AlertOwnerUserService, {
Service as AlertOwnerUserServiceType,
} from "Common/Server/Services/AlertOwnerUserService";
import AlertService, {
Service as AlertServiceType,
} from "Common/Server/Services/AlertService";
import AlertSeverityService, {
Service as AlertSeverityServiceType,
} from "Common/Server/Services/AlertSeverityService";
import AlertStateService, {
Service as AlertStateServiceType,
} from "Common/Server/Services/AlertStateService";
import AlertStateTimelineService, {
Service as AlertStateTimelineServiceType,
} from "Common/Server/Services/AlertStateTimelineService";
import IncidentCustomFieldService, {
Service as IncidentCustomFieldServiceType,
} from "Common/Server/Services/IncidentCustomFieldService";
@@ -55,6 +94,9 @@ import IncidentInternalNoteService, {
import IncidentNoteTemplateService, {
Service as IncidentNoteTemplateServiceType,
} from "Common/Server/Services/IncidentNoteTemplateService";
import TableViewService, {
Service as TableViewServiceType,
} from "Common/Server/Services/TableViewService";
import IncidentOwnerTeamService, {
Service as IncidentOwnerTeamServiceType,
} from "Common/Server/Services/IncidentOwnerTeamService";
@@ -73,6 +115,9 @@ import IncidentSeverityService, {
import IncidentStateService, {
Service as IncidentStateServiceType,
} from "Common/Server/Services/IncidentStateService";
import MonitorTestService, {
Service as MonitorTestServiceType,
} from "Common/Server/Services/MonitorTestService";
import IncidentStateTimelineService, {
Service as IncidentStateTimelineServiceType,
} from "Common/Server/Services/IncidentStateTimelineService";
@@ -114,9 +159,6 @@ import MonitorGroupOwnerUserService, {
import MonitorGroupResourceService, {
Service as MonitorGroupResourceServiceType,
} from "Common/Server/Services/MonitorGroupResourceService";
import MonitorMetricsByMinuteService, {
MonitorMetricsByMinuteService as MonitorMetricsByMinuteServiceType,
} from "Common/Server/Services/MonitorMetricsByMinuteService";
import MonitorOwnerTeamService, {
Service as MonitorOwnerTeamServiceType,
} from "Common/Server/Services/MonitorOwnerTeamService";
@@ -129,15 +171,17 @@ import MonitorProbeService, {
import MonitorSecretService, {
Service as MonitorSecretServiceType,
} from "Common/Server/Services/MonitorSecretService";
import MonitorService, {
Service as MonitorServiceType,
} from "Common/Server/Services/MonitorService";
import MonitorStatusService, {
Service as MonitorStatusServiceType,
} from "Common/Server/Services/MonitorStatusService";
import MonitorTimelineStatusService, {
Service as MonitorTimelineStatusServiceType,
} from "Common/Server/Services/MonitorStatusTimelineService";
// user override
import OnCallDutyPolicyUserOverrideService, {
Service as OnCallDutyPolicyUserOverrideServiceType,
} from "Common/Server/Services/OnCallDutyPolicyUserOverrideService";
import OnCallDutyPolicyUserOverride from "Common/Models/DatabaseModels/OnCallDutyPolicyUserOverride";
import OnCallDutyPolicyCustomFieldService, {
Service as OnCallDutyPolicyCustomFieldServiceType,
} from "Common/Server/Services/OnCallDutyPolicyCustomFieldService";
@@ -168,9 +212,6 @@ import OnCallDutyPolicyScheduleLayerUserService, {
import OnCallDutyPolicyScheduleService, {
Service as OnCallDutyPolicyScheduleServiceType,
} from "Common/Server/Services/OnCallDutyPolicyScheduleService";
import OnCallDutyPolicyService, {
Service as OnCallDutyPolicyServiceType,
} from "Common/Server/Services/OnCallDutyPolicyService";
import ProjectCallSMSConfigService, {
Service as ProjectCallSMSConfigServiceType,
} from "Common/Server/Services/ProjectCallSMSConfigService";
@@ -334,7 +375,6 @@ import FeatureSet from "Common/Server/Types/FeatureSet";
import Express, { ExpressApplication } from "Common/Server/Utils/Express";
import Log from "Common/Models/AnalyticsModels/Log";
import Metric from "Common/Models/AnalyticsModels/Metric";
import MonitorMetricsByMinute from "Common/Models/AnalyticsModels/MonitorMetricsByMinute";
import Span from "Common/Models/AnalyticsModels/Span";
import ApiKey from "Common/Models/DatabaseModels/ApiKey";
import ApiKeyPermission from "Common/Models/DatabaseModels/ApiKeyPermission";
@@ -342,6 +382,18 @@ import CallLog from "Common/Models/DatabaseModels/CallLog";
import Domain from "Common/Models/DatabaseModels/Domain";
import EmailLog from "Common/Models/DatabaseModels/EmailLog";
import EmailVerificationToken from "Common/Models/DatabaseModels/EmailVerificationToken";
import Dashboard from "Common/Models/DatabaseModels/Dashboard";
import Alert from "Common/Models/DatabaseModels/Alert";
import AlertCustomField from "Common/Models/DatabaseModels/AlertCustomField";
import AlertInternalNote from "Common/Models/DatabaseModels/AlertInternalNote";
import AlertNoteTemplate from "Common/Models/DatabaseModels/AlertNoteTemplate";
import AlertOwnerTeam from "Common/Models/DatabaseModels/AlertOwnerTeam";
import AlertOwnerUser from "Common/Models/DatabaseModels/AlertOwnerUser";
import AlertSeverity from "Common/Models/DatabaseModels/AlertSeverity";
import AlertState from "Common/Models/DatabaseModels/AlertState";
import AlertStateTimeline from "Common/Models/DatabaseModels/AlertStateTimeline";
import Incident from "Common/Models/DatabaseModels/Incident";
import IncidentCustomField from "Common/Models/DatabaseModels/IncidentCustomField";
import IncidentInternalNote from "Common/Models/DatabaseModels/IncidentInternalNote";
@@ -355,8 +407,8 @@ import IncidentStateTimeline from "Common/Models/DatabaseModels/IncidentStateTim
import IncidentTemplate from "Common/Models/DatabaseModels/IncidentTemplate";
import IncidentTemplateOwnerTeam from "Common/Models/DatabaseModels/IncidentTemplateOwnerTeam";
import IncidentTemplateOwnerUser from "Common/Models/DatabaseModels/IncidentTemplateOwnerUser";
import Label from "Common/Models/DatabaseModels/Label";
import Monitor from "Common/Models/DatabaseModels/Monitor";
import MonitorCustomField from "Common/Models/DatabaseModels/MonitorCustomField";
import MonitorGroupOwnerTeam from "Common/Models/DatabaseModels/MonitorGroupOwnerTeam";
import MonitorGroupOwnerUser from "Common/Models/DatabaseModels/MonitorGroupOwnerUser";
@@ -367,7 +419,6 @@ import MonitorProbe from "Common/Models/DatabaseModels/MonitorProbe";
import MonitorSecret from "Common/Models/DatabaseModels/MonitorSecret";
import MonitorStatus from "Common/Models/DatabaseModels/MonitorStatus";
import MonitorTimelineStatus from "Common/Models/DatabaseModels/MonitorStatusTimeline";
import OnCallDutyPolicy from "Common/Models/DatabaseModels/OnCallDutyPolicy";
import OnCallDutyPolicyCustomField from "Common/Models/DatabaseModels/OnCallDutyPolicyCustomField";
import OnCallDutyPolicyEscalationRule from "Common/Models/DatabaseModels/OnCallDutyPolicyEscalationRule";
import OnCallDutyPolicyEscalationRuleSchedule from "Common/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule";
@@ -443,6 +494,103 @@ import ScheduledMaintenanceTemplateOwnerTeamService, {
import ScheduledMaintenanceTemplateOwnerUserService, {
Service as ScheduledMaintenanceTemplateOwnerUserServiceType,
} from "Common/Server/Services/ScheduledMaintenanceTemplateOwnerUserService";
import TableView from "Common/Models/DatabaseModels/TableView";
import IncidentFeed from "Common/Models/DatabaseModels/IncidentFeed";
import AlertFeed from "Common/Models/DatabaseModels/AlertFeed";
import ScheduledMaintenanceFeed from "Common/Models/DatabaseModels/ScheduledMaintenanceFeed";
import IncidentFeedService, {
Service as IncidentFeedServiceType,
} from "Common/Server/Services/IncidentFeedService";
import AlertFeedService, {
Service as AlertFeedServiceType,
} from "Common/Server/Services/AlertFeedService";
import ScheduledMaintenanceFeedService, {
Service as ScheduledMaintenanceFeedServiceType,
} from "Common/Server/Services/ScheduledMaintenanceFeedService";
import SlackAPI from "Common/Server/API/SlackAPI";
import WorkspaceProjectAuthToken from "Common/Models/DatabaseModels/WorkspaceProjectAuthToken";
import WorkspaceProjectAuthTokenService, {
Service as WorkspaceProjectAuthTokenServiceType,
} from "Common/Server/Services/WorkspaceProjectAuthTokenService";
import WorkspaceUserAuthToken from "Common/Models/DatabaseModels/WorkspaceUserAuthToken";
import WorkspaceUserAuthTokenService, {
Service as WorkspaceUserAuthTokenServiceType,
} from "Common/Server/Services/WorkspaceUserAuthTokenService";
import WorkspaceSetting from "Common/Models/DatabaseModels/WorkspaceSetting";
import WorkspaceSettingService, {
Service as WorkspaceSettingServiceType,
} from "Common/Server/Services/WorkspaceSettingService";
import ProjectUser from "Common/Models/DatabaseModels/ProjectUser";
import ProjectUserService, {
Service as ProjectUserServiceType,
} from "Common/Server/Services/ProjectUserService";
import MonitorFeed from "Common/Models/DatabaseModels/MonitorFeed";
import MonitorFeedService, {
Service as MonitorFeedServiceType,
} from "Common/Server/Services/MonitorFeedService";
// MetricType.
import MetricTypeService, {
Service as MetricTypeServiceType,
} from "Common/Server/Services/MetricTypeService";
import MetricType from "Common/Models/DatabaseModels/MetricType";
import OnCallDutyPolicyAPI from "Common/Server/API/OnCallDutyPolicyAPI";
// OnCallDutyPolicyOwnerTeam
// OnCallDutyPolicyOwnerUser
// OnCallDutyPolicyFeed
import OnCallDutyPolicyFeed from "Common/Models/DatabaseModels/OnCallDutyPolicyFeed";
import OnCallDutyPolicyFeedService, {
Service as OnCallDutyPolicyFeedServiceType,
} from "Common/Server/Services/OnCallDutyPolicyFeedService";
import OnCallDutyPolicyOwnerTeam from "Common/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam";
import OnCallDutyPolicyOwnerTeamService, {
Service as OnCallDutyPolicyOwnerTeamServiceType,
} from "Common/Server/Services/OnCallDutyPolicyOwnerTeamService";
import OnCallDutyPolicyOwnerUser from "Common/Models/DatabaseModels/OnCallDutyPolicyOwnerUser";
import OnCallDutyPolicyOwnerUserService, {
Service as OnCallDutyPolicyOwnerUserServiceType,
} from "Common/Server/Services/OnCallDutyPolicyOwnerUserService";
import MonitorLog from "Common/Models/AnalyticsModels/MonitorLog";
import MonitorLogService, {
Service as MonitorLogServiceType,
} from "Common/Server/Services/MonitorLogService";
//OnCallDutyPolicyTimeLog
import OnCallDutyPolicyTimeLog from "Common/Models/DatabaseModels/OnCallDutyPolicyTimeLog";
import OnCallDutyPolicyTimeLogService, {
Service as OnCallDutyPolicyTimeLogServiceType,
} from "Common/Server/Services/OnCallDutyPolicyTimeLogService";
// statu spage announcement templates
import StatusPageAnnouncementTemplate from "Common/Models/DatabaseModels/StatusPageAnnouncementTemplate";
import StatusPageAnnouncementTemplateService, {
Service as StatusPageAnnouncementTemplateServiceType,
} from "Common/Server/Services/StatusPageAnnouncementTemplateService";
// ProjectSCIM
import ProjectSCIM from "Common/Models/DatabaseModels/ProjectSCIM";
import ProjectSCIMService, {
Service as ProjectSCIMServiceType,
} from "Common/Server/Services/ProjectSCIMService";
// Open API Spec
import OpenAPI from "Common/Server/API/OpenAPI";
const BaseAPIFeatureSet: FeatureSet = {
init: async (): Promise<void> => {
@@ -458,6 +606,247 @@ const BaseAPIFeatureSet: FeatureSet = {
).getRouter(),
);
app.use(`/${APP_NAME.toLocaleLowerCase()}`, OpenAPI.getRouter());
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAnalyticsAPI<MonitorLog, MonitorLogServiceType>(
MonitorLog,
MonitorLogService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<AlertState, AlertStateServiceType>(
AlertState,
AlertStateService,
).getRouter(),
);
// Project SCIM
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<ProjectSCIM, ProjectSCIMServiceType>(
ProjectSCIM,
ProjectSCIMService,
).getRouter(),
);
// status page announcement templates
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<
StatusPageAnnouncementTemplate,
StatusPageAnnouncementTemplateServiceType
>(
StatusPageAnnouncementTemplate,
StatusPageAnnouncementTemplateService,
).getRouter(),
);
// OnCallDutyPolicyTimeLogService
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<OnCallDutyPolicyTimeLog, OnCallDutyPolicyTimeLogServiceType>(
OnCallDutyPolicyTimeLog,
OnCallDutyPolicyTimeLogService,
).getRouter(),
);
// on-call policy owner user.
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<
OnCallDutyPolicyOwnerUser,
OnCallDutyPolicyOwnerUserServiceType
>(
OnCallDutyPolicyOwnerUser,
OnCallDutyPolicyOwnerUserService,
).getRouter(),
);
// on-call policy owner team.
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<
OnCallDutyPolicyOwnerTeam,
OnCallDutyPolicyOwnerTeamServiceType
>(
OnCallDutyPolicyOwnerTeam,
OnCallDutyPolicyOwnerTeamService,
).getRouter(),
);
// on-call policy feed.
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<OnCallDutyPolicyFeed, OnCallDutyPolicyFeedServiceType>(
OnCallDutyPolicyFeed,
OnCallDutyPolicyFeedService,
).getRouter(),
);
// monitor feed
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<MonitorFeed, MonitorFeedServiceType>(
MonitorFeed,
MonitorFeedService,
).getRouter(),
);
// MetricType
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<MetricType, MetricTypeServiceType>(
MetricType,
MetricTypeService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<MonitorTest, MonitorTestServiceType>(
MonitorTest,
MonitorTestService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<ProjectUser, ProjectUserServiceType>(
ProjectUser,
ProjectUserService,
).getRouter(),
);
//service provider setting
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<WorkspaceSetting, WorkspaceSettingServiceType>(
WorkspaceSetting,
WorkspaceSettingService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<IncidentFeed, IncidentFeedServiceType>(
IncidentFeed,
IncidentFeedService,
).getRouter(),
);
// user override
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<
OnCallDutyPolicyUserOverride,
OnCallDutyPolicyUserOverrideServiceType
>(
OnCallDutyPolicyUserOverride,
OnCallDutyPolicyUserOverrideService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<AlertFeed, AlertFeedServiceType>(
AlertFeed,
AlertFeedService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<
ScheduledMaintenanceFeed,
ScheduledMaintenanceFeedServiceType
>(ScheduledMaintenanceFeed, ScheduledMaintenanceFeedService).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<AlertNoteTemplate, AlertNoteTemplateServiceType>(
AlertNoteTemplate,
AlertNoteTemplateService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<
WorkspaceProjectAuthToken,
WorkspaceProjectAuthTokenServiceType
>(
WorkspaceProjectAuthToken,
WorkspaceProjectAuthTokenService,
).getRouter(),
);
// user auth token
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<WorkspaceUserAuthToken, WorkspaceUserAuthTokenServiceType>(
WorkspaceUserAuthToken,
WorkspaceUserAuthTokenService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<Alert, AlertServiceType>(Alert, AlertService).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<AlertSeverity, AlertSeverityServiceType>(
AlertSeverity,
AlertSeverityService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<AlertOwnerTeam, AlertOwnerTeamServiceType>(
AlertOwnerTeam,
AlertOwnerTeamService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<AlertOwnerUser, AlertOwnerUserServiceType>(
AlertOwnerUser,
AlertOwnerUserService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<AlertCustomField, AlertCustomFieldServiceType>(
AlertCustomField,
AlertCustomFieldService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<AlertInternalNote, AlertInternalNoteServiceType>(
AlertInternalNote,
AlertInternalNoteService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<AlertStateTimeline, AlertStateTimelineServiceType>(
AlertStateTimeline,
AlertStateTimelineService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAnalyticsAPI<ExceptionInstance, ExceptionInstanceServiceType>(
@@ -526,18 +915,18 @@ const BaseAPIFeatureSet: FeatureSet = {
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAnalyticsAPI<Metric, MetricServiceType>(
Metric,
MetricService,
new BaseAPI<Dashboard, DashboardServiceType>(
Dashboard,
DashboardService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAnalyticsAPI<
MonitorMetricsByMinute,
MonitorMetricsByMinuteServiceType
>(MonitorMetricsByMinute, MonitorMetricsByMinuteService).getRouter(),
new BaseAnalyticsAPI<Metric, MetricServiceType>(
Metric,
MetricService,
).getRouter(),
);
app.use(
@@ -776,6 +1165,14 @@ const BaseAPIFeatureSet: FeatureSet = {
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<TableView, TableViewServiceType>(
TableView,
TableViewService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<IncidentState, IncidentStateServiceType>(
@@ -1114,14 +1511,6 @@ const BaseAPIFeatureSet: FeatureSet = {
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<Monitor, MonitorServiceType>(
Monitor,
MonitorService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<SmsLog, SmsLogServiceType>(SmsLog, SmsLogService).getRouter(),
@@ -1168,10 +1557,22 @@ const BaseAPIFeatureSet: FeatureSet = {
);
app.use(`/${APP_NAME.toLocaleLowerCase()}`, new ShortLinkAPI().getRouter());
app.use(`/${APP_NAME.toLocaleLowerCase()}`, new MonitorAPI().getRouter());
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new StatusPageAPI().getRouter(),
);
// OnCallDutyPolicyAPI
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new OnCallDutyPolicyAPI().getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new WorkspaceNotificationRuleAPI().getRouter(),
);
app.use(`/${APP_NAME.toLocaleLowerCase()}`, new FileAPI().getRouter());
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
@@ -1191,6 +1592,7 @@ const BaseAPIFeatureSet: FeatureSet = {
`/${APP_NAME.toLocaleLowerCase()}`,
new ResellerPlanAPI().getRouter(),
);
app.use(`/${APP_NAME.toLocaleLowerCase()}`, new SlackAPI().getRouter());
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new GlobalConfigAPI().getRouter(),
@@ -1222,7 +1624,8 @@ const BaseAPIFeatureSet: FeatureSet = {
);
app.use(`/${APP_NAME.toLocaleLowerCase()}`, new UserEmailAPI().getRouter());
app.use(`/${APP_NAME.toLocaleLowerCase()}`, new UserSMSAPI().getRouter());
app.use(`/${APP_NAME.toLocaleLowerCase()}`, new Ingestor().getRouter());
app.use(`/${APP_NAME.toLocaleLowerCase()}`, new UserPushAPI().getRouter());
app.use(`/${APP_NAME.toLocaleLowerCase()}`, new ProbeAPI().getRouter());
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
@@ -1279,14 +1682,6 @@ const BaseAPIFeatureSet: FeatureSet = {
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<OnCallDutyPolicy, OnCallDutyPolicyServiceType>(
OnCallDutyPolicy,
OnCallDutyPolicyService,
).getRouter(),
);
app.use(
`/${APP_NAME.toLocaleLowerCase()}`,
new BaseAPI<

View File

@@ -0,0 +1,663 @@
import SCIMMiddleware from "Common/Server/Middleware/SCIMAuthorization";
import UserService from "Common/Server/Services/UserService";
import TeamMemberService from "Common/Server/Services/TeamMemberService";
import Express, {
ExpressRequest,
ExpressResponse,
ExpressRouter,
OneUptimeRequest,
} from "Common/Server/Utils/Express";
import Response from "Common/Server/Utils/Response";
import logger from "Common/Server/Utils/Logger";
import ObjectID from "Common/Types/ObjectID";
import Email from "Common/Types/Email";
import Name from "Common/Types/Name";
import { JSONObject } from "Common/Types/JSON";
import TeamMember from "Common/Models/DatabaseModels/TeamMember";
import ProjectSCIM from "Common/Models/DatabaseModels/ProjectSCIM";
import BadRequestException from "Common/Types/Exception/BadRequestException";
import NotFoundException from "Common/Types/Exception/NotFoundException";
import OneUptimeDate from "Common/Types/Date";
import LIMIT_MAX, { LIMIT_PER_PROJECT } from "Common/Types/Database/LimitMax";
import Query from "Common/Types/BaseDatabase/Query";
import ProjectUser from "Common/Models/DatabaseModels/ProjectUser";
import QueryHelper from "Common/Server/Types/Database/QueryHelper";
import User from "Common/Models/DatabaseModels/User";
import {
parseNameFromSCIM,
formatUserForSCIM,
generateServiceProviderConfig,
generateUsersListResponse,
parseSCIMQueryParams,
logSCIMOperation,
} from "../Utils/SCIMUtils";
import { DocsClientUrl } from "Common/Server/EnvironmentConfig";
const router: ExpressRouter = Express.getRouter();
const handleUserTeamOperations: (
operation: "add" | "remove",
projectId: ObjectID,
userId: ObjectID,
scimConfig: ProjectSCIM,
) => Promise<void> = async (
operation: "add" | "remove",
projectId: ObjectID,
userId: ObjectID,
scimConfig: ProjectSCIM,
): Promise<void> => {
const teamsIds: Array<ObjectID> =
scimConfig.teams?.map((team: any) => {
return team.id;
}) || [];
if (teamsIds.length === 0) {
logger.debug(`SCIM Team operations - no teams configured for SCIM`);
return;
}
if (operation === "add") {
logger.debug(
`SCIM Team operations - adding user to ${teamsIds.length} configured teams`,
);
for (const team of scimConfig.teams || []) {
const existingMember: TeamMember | null =
await TeamMemberService.findOneBy({
query: {
projectId: projectId,
userId: userId,
teamId: team.id!,
},
select: { _id: true },
props: { isRoot: true },
});
if (!existingMember) {
logger.debug(`SCIM Team operations - adding user to team: ${team.id}`);
const teamMember: TeamMember = new TeamMember();
teamMember.projectId = projectId;
teamMember.userId = userId;
teamMember.teamId = team.id!;
teamMember.hasAcceptedInvitation = true;
teamMember.invitationAcceptedAt = OneUptimeDate.getCurrentDate();
await TeamMemberService.create({
data: teamMember,
props: {
isRoot: true,
ignoreHooks: true,
},
});
} else {
logger.debug(
`SCIM Team operations - user already member of team: ${team.id}`,
);
}
}
} else if (operation === "remove") {
logger.debug(
`SCIM Team operations - removing user from ${teamsIds.length} configured teams`,
);
await TeamMemberService.deleteBy({
query: {
projectId: projectId,
userId: userId,
teamId: QueryHelper.any(teamsIds),
},
skip: 0,
limit: LIMIT_PER_PROJECT,
props: { isRoot: true },
});
}
};
// SCIM Service Provider Configuration - GET /scim/v2/ServiceProviderConfig
router.get(
"/scim/v2/:projectScimId/ServiceProviderConfig",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logSCIMOperation("ServiceProviderConfig", "project", req.params["projectScimId"]!);
const serviceProviderConfig: JSONObject = generateServiceProviderConfig(
req,
req.params["projectScimId"]!,
"project",
DocsClientUrl.toString()+"/identity/scim"
);
logger.debug("Project SCIM ServiceProviderConfig response prepared successfully");
return Response.sendJsonObjectResponse(req, res, serviceProviderConfig);
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
// Basic Users endpoint - GET /scim/v2/Users
router.get(
"/scim/v2/:projectScimId/Users",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logSCIMOperation("Users list", "project", req.params["projectScimId"]!);
const oneuptimeRequest: OneUptimeRequest = req as OneUptimeRequest;
const bearerData: JSONObject =
oneuptimeRequest.bearerTokenData as JSONObject;
const projectId: ObjectID = bearerData["projectId"] as ObjectID;
// Parse query parameters
const { startIndex, count } = parseSCIMQueryParams(req);
const filter: string = req.query["filter"] as string;
logSCIMOperation(
"Users list",
"project",
req.params["projectScimId"]!,
`startIndex: ${startIndex}, count: ${count}, filter: ${filter || "none"}`
);
// Build query for team members in this project
const query: Query<ProjectUser> = {
projectId: projectId,
};
// Handle SCIM filter for userName
if (filter) {
const emailMatch: RegExpMatchArray | null = filter.match(
/userName eq "([^"]+)"/i,
);
if (emailMatch) {
const email: string = emailMatch[1]!;
logSCIMOperation("Users list", "project", req.params["projectScimId"]!, `filter by email: ${email}`);
if (email) {
const user: User | null = await UserService.findOneBy({
query: { email: new Email(email) },
select: { _id: true },
props: { isRoot: true },
});
if (user && user.id) {
query.userId = user.id;
logSCIMOperation("Users list", "project", req.params["projectScimId"]!, `found user with id: ${user.id}`);
} else {
logSCIMOperation("Users list", "project", req.params["projectScimId"]!, `user not found for email: ${email}`);
return Response.sendJsonObjectResponse(req, res, generateUsersListResponse([], startIndex, 0));
}
}
}
}
logSCIMOperation("Users list", "project", req.params["projectScimId"]!, `query built for projectId: ${projectId}`);
// Get team members
const teamMembers: Array<TeamMember> = await TeamMemberService.findBy({
query: query,
limit: LIMIT_MAX,
skip: 0,
props: { isRoot: true },
select: {
userId: true,
user: {
_id: true,
email: true,
name: true,
createdAt: true,
updatedAt: true,
},
},
});
// now get unique users.
const usersInProjects: Array<JSONObject> = teamMembers
.filter((tm: TeamMember) => {
return tm.user && tm.user.id;
})
.map((tm: TeamMember) => {
return formatUserForSCIM(tm.user!, req, req.params["projectScimId"]!, "project");
});
// remove duplicates
const uniqueUserIds: Set<string> = new Set<string>();
const users: Array<JSONObject> = usersInProjects.filter(
(user: JSONObject) => {
if (uniqueUserIds.has(user["id"]?.toString() || "")) {
return false;
}
uniqueUserIds.add(user["id"]?.toString() || "");
return true;
},
);
// now paginate the results
const paginatedUsers: Array<JSONObject> = users.slice(
(startIndex - 1) * count,
startIndex * count,
);
logger.debug(`SCIM Users response prepared with ${users.length} users`);
return Response.sendJsonObjectResponse(req, res, generateUsersListResponse(paginatedUsers, startIndex, users.length));
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
// Get Individual User - GET /scim/v2/Users/{id}
router.get(
"/scim/v2/:projectScimId/Users/:userId",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logger.debug(
`SCIM Get individual user request for userId: ${req.params["userId"]}, projectScimId: ${req.params["projectScimId"]}`,
);
const oneuptimeRequest: OneUptimeRequest = req as OneUptimeRequest;
const bearerData: JSONObject =
oneuptimeRequest.bearerTokenData as JSONObject;
const projectId: ObjectID = bearerData["projectId"] as ObjectID;
const userId: string = req.params["userId"]!;
logger.debug(
`SCIM Get user - projectId: ${projectId}, userId: ${userId}`,
);
if (!userId) {
throw new BadRequestException("User ID is required");
}
// Check if user exists and is part of the project
const projectUser: TeamMember | null = await TeamMemberService.findOneBy({
query: {
projectId: projectId,
userId: new ObjectID(userId),
},
select: {
userId: true,
user: {
_id: true,
email: true,
name: true,
createdAt: true,
updatedAt: true,
},
},
props: { isRoot: true },
});
if (!projectUser || !projectUser.user) {
logger.debug(
`SCIM Get user - user not found or not part of project for userId: ${userId}`,
);
throw new NotFoundException(
"User not found or not part of this project",
);
}
logger.debug(`SCIM Get user - found user: ${projectUser.user.id}`);
const user: JSONObject = formatUserForSCIM(projectUser.user, req, req.params["projectScimId"]!, "project");
return Response.sendJsonObjectResponse(req, res, user);
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
// Update User - PUT /scim/v2/Users/{id}
router.put(
"/scim/v2/:projectScimId/Users/:userId",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logger.debug(
`SCIM Update user request for userId: ${req.params["userId"]}, projectScimId: ${req.params["projectScimId"]}`,
);
const oneuptimeRequest: OneUptimeRequest = req as OneUptimeRequest;
const bearerData: JSONObject =
oneuptimeRequest.bearerTokenData as JSONObject;
const projectId: ObjectID = bearerData["projectId"] as ObjectID;
const userId: string = req.params["userId"]!;
const scimUser: JSONObject = req.body;
logger.debug(
`SCIM Update user - projectId: ${projectId}, userId: ${userId}`,
);
logger.debug(
`Request body for SCIM Update user: ${JSON.stringify(scimUser, null, 2)}`,
);
if (!userId) {
throw new BadRequestException("User ID is required");
}
// Check if user exists and is part of the project
const projectUser: TeamMember | null = await TeamMemberService.findOneBy({
query: {
projectId: projectId,
userId: new ObjectID(userId),
},
select: {
userId: true,
user: {
_id: true,
email: true,
name: true,
createdAt: true,
updatedAt: true,
},
},
props: { isRoot: true },
});
if (!projectUser || !projectUser.user) {
logger.debug(
`SCIM Update user - user not found or not part of project for userId: ${userId}`,
);
throw new NotFoundException(
"User not found or not part of this project",
);
}
// Update user information
const email: string =
(scimUser["userName"] as string) ||
((scimUser["emails"] as JSONObject[])?.[0]?.["value"] as string);
const name: string = parseNameFromSCIM(scimUser);
const active: boolean = scimUser["active"] as boolean;
logger.debug(
`SCIM Update user - email: ${email}, name: ${name}, active: ${active}`,
);
// Handle user deactivation by removing from teams
if (active === false) {
logger.debug(
`SCIM Update user - user marked as inactive, removing from teams`,
);
const scimConfig: ProjectSCIM = bearerData["scimConfig"] as ProjectSCIM;
await handleUserTeamOperations(
"remove",
projectId,
new ObjectID(userId),
scimConfig,
);
logger.debug(
`SCIM Update user - user successfully removed from teams due to deactivation`,
);
}
// Handle user activation by adding to teams
if (active === true) {
logger.debug(
`SCIM Update user - user marked as active, adding to teams`,
);
const scimConfig: ProjectSCIM = bearerData["scimConfig"] as ProjectSCIM;
await handleUserTeamOperations(
"add",
projectId,
new ObjectID(userId),
scimConfig,
);
logger.debug(
`SCIM Update user - user successfully added to teams due to activation`,
);
}
if (email || name) {
const updateData: any = {};
if (email) {
updateData.email = new Email(email);
}
if (name) {
updateData.name = new Name(name);
}
logger.debug(
`SCIM Update user - updating user with data: ${JSON.stringify(updateData)}`,
);
await UserService.updateOneById({
id: new ObjectID(userId),
data: updateData,
props: { isRoot: true },
});
logger.debug(`SCIM Update user - user updated successfully`);
// Fetch updated user
const updatedUser: User | null = await UserService.findOneById({
id: new ObjectID(userId),
select: {
_id: true,
email: true,
name: true,
createdAt: true,
updatedAt: true,
},
props: { isRoot: true },
});
if (updatedUser) {
const user: JSONObject = formatUserForSCIM(updatedUser, req, req.params["projectScimId"]!, "project");
return Response.sendJsonObjectResponse(req, res, user);
}
}
logger.debug(
`SCIM Update user - no updates made, returning existing user`,
);
// If no updates were made, return the existing user
const user: JSONObject = formatUserForSCIM(projectUser.user, req, req.params["projectScimId"]!, "project");
return Response.sendJsonObjectResponse(req, res, user);
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
// Groups endpoint - GET /scim/v2/Groups
router.get(
"/scim/v2/:projectScimId/Groups",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logger.debug(
`SCIM Groups list request for projectScimId: ${req.params["projectScimId"]}`,
);
const oneuptimeRequest: OneUptimeRequest = req as OneUptimeRequest;
const bearerData: JSONObject =
oneuptimeRequest.bearerTokenData as JSONObject;
const scimConfig: ProjectSCIM = bearerData["scimConfig"] as ProjectSCIM;
logger.debug(
`SCIM Groups - found ${scimConfig.teams?.length || 0} configured teams`,
);
// Return configured teams as groups
const groups: JSONObject[] = (scimConfig.teams || []).map((team: any) => {
return {
schemas: ["urn:ietf:params:scim:schemas:core:2.0:Group"],
id: team.id?.toString(),
displayName: team.name?.toString(),
members: [],
meta: {
resourceType: "Group",
location: `${req.protocol}://${req.get("host")}/scim/v2/${req.params["projectScimId"]}/Groups/${team.id?.toString()}`,
},
};
});
return Response.sendJsonObjectResponse(req, res, {
schemas: ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
totalResults: groups.length,
startIndex: 1,
itemsPerPage: groups.length,
Resources: groups,
});
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
// Create User - POST /scim/v2/Users
router.post(
"/scim/v2/:projectScimId/Users",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logger.debug(
`SCIM Create user request for projectScimId: ${req.params["projectScimId"]}`,
);
const oneuptimeRequest: OneUptimeRequest = req as OneUptimeRequest;
const bearerData: JSONObject =
oneuptimeRequest.bearerTokenData as JSONObject;
const projectId: ObjectID = bearerData["projectId"] as ObjectID;
const scimConfig: ProjectSCIM = bearerData["scimConfig"] as ProjectSCIM;
if (!scimConfig.autoProvisionUsers) {
throw new BadRequestException(
"Auto-provisioning is disabled for this project",
);
}
const scimUser: JSONObject = req.body;
const email: string =
(scimUser["userName"] as string) ||
((scimUser["emails"] as JSONObject[])?.[0]?.["value"] as string);
const name: string = parseNameFromSCIM(scimUser);
logger.debug(`SCIM Create user - email: ${email}, name: ${name}`);
if (!email) {
throw new BadRequestException("userName or email is required");
}
// Check if user already exists
let user: User | null = await UserService.findOneBy({
query: { email: new Email(email) },
select: {
_id: true,
email: true,
name: true,
createdAt: true,
updatedAt: true,
},
props: { isRoot: true },
});
// Create user if doesn't exist
if (!user) {
logger.debug(
`SCIM Create user - creating new user for email: ${email}`,
);
user = await UserService.createByEmail({
email: new Email(email),
name: name ? new Name(name) : new Name("Unknown"),
isEmailVerified: true,
generateRandomPassword: true,
props: { isRoot: true },
});
} else {
logger.debug(
`SCIM Create user - user already exists with id: ${user.id}`,
);
}
// Add user to default teams if configured
if (scimConfig.teams && scimConfig.teams.length > 0) {
logger.debug(
`SCIM Create user - adding user to ${scimConfig.teams.length} configured teams`,
);
await handleUserTeamOperations("add", projectId, user.id!, scimConfig);
}
const createdUser: JSONObject = formatUserForSCIM(user, req, req.params["projectScimId"]!, "project");
logger.debug(
`SCIM Create user - returning created user with id: ${user.id}`,
);
res.status(201);
return Response.sendJsonObjectResponse(req, res, createdUser);
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
// Delete User - DELETE /scim/v2/Users/{id}
router.delete(
"/scim/v2/:projectScimId/Users/:userId",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logger.debug(
`SCIM Delete user request for userId: ${req.params["userId"]}, projectScimId: ${req.params["projectScimId"]}`,
);
const oneuptimeRequest: OneUptimeRequest = req as OneUptimeRequest;
const bearerData: JSONObject =
oneuptimeRequest.bearerTokenData as JSONObject;
const projectId: ObjectID = bearerData["projectId"] as ObjectID;
const scimConfig: ProjectSCIM = bearerData["scimConfig"] as ProjectSCIM;
const userId: string = req.params["userId"]!;
if (!scimConfig.autoDeprovisionUsers) {
logger.debug("SCIM Delete user - auto-deprovisioning is disabled");
throw new BadRequestException(
"Auto-deprovisioning is disabled for this project",
);
}
if (!userId) {
throw new BadRequestException("User ID is required");
}
logger.debug(
`SCIM Delete user - removing user from all teams in project: ${projectId}`,
);
// Remove user from teams the SCIM configured
if (!scimConfig.teams || scimConfig.teams.length === 0) {
logger.debug("SCIM Delete user - no teams configured for SCIM");
throw new BadRequestException("No teams configured for SCIM");
}
await handleUserTeamOperations(
"remove",
projectId,
new ObjectID(userId),
scimConfig,
);
logger.debug(
`SCIM Delete user - user successfully deprovisioned from project`,
);
res.status(204);
return Response.sendJsonObjectResponse(req, res, {
message: "User deprovisioned",
});
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
export default router;

View File

@@ -36,6 +36,7 @@ import ProjectSSO from "Common/Models/DatabaseModels/ProjectSso";
import TeamMember from "Common/Models/DatabaseModels/TeamMember";
import User from "Common/Models/DatabaseModels/User";
import xml2js from "xml2js";
import Name from "Common/Types/Name";
const router: ExpressRouter = Express.getRouter();
@@ -45,106 +46,112 @@ const router: ExpressRouter = Express.getRouter();
router.get(
"/service-provider-login",
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
if (!req.query["email"]) {
return Response.sendErrorResponse(
req,
res,
new BadRequestException("Email is required"),
);
}
try {
if (!req.query["email"]) {
return Response.sendErrorResponse(
req,
res,
new BadRequestException("Email is required"),
);
}
const email: Email = new Email(req.query["email"] as string);
const email: Email = new Email(req.query["email"] as string);
if (!email) {
return Response.sendErrorResponse(
req,
res,
new BadRequestException("Email is required"),
);
}
if (!email) {
return Response.sendErrorResponse(
req,
res,
new BadRequestException("Email is required"),
);
}
// get sso config for this user.
// get sso config for this user.
const user: User | null = await UserService.findOneBy({
query: { email: email },
select: {
_id: true,
},
props: {
isRoot: true,
},
});
if (!user) {
return Response.sendErrorResponse(
req,
res,
new BadRequestException("No SSO config found for this user"),
);
}
const userId: ObjectID = user.id!;
if (!userId) {
return Response.sendErrorResponse(
req,
res,
new BadRequestException("No SSO config found for this user"),
);
}
const projectUserBelongsTo: Array<ObjectID> = (
await TeamMemberService.findBy({
query: { userId: userId },
const user: User | null = await UserService.findOneBy({
query: { email: email },
select: {
projectId: true,
_id: true,
},
limit: LIMIT_PER_PROJECT,
skip: 0,
props: {
isRoot: true,
},
})
).map((teamMember: TeamMember) => {
return teamMember.projectId!;
});
});
if (projectUserBelongsTo.length === 0) {
return Response.sendErrorResponse(
if (!user) {
return Response.sendErrorResponse(
req,
res,
new BadRequestException("No SSO config found for this user"),
);
}
const userId: ObjectID = user.id!;
if (!userId) {
return Response.sendErrorResponse(
req,
res,
new BadRequestException("No SSO config found for this user"),
);
}
const projectUserBelongsTo: Array<ObjectID> = (
await TeamMemberService.findBy({
query: { userId: userId },
select: {
projectId: true,
},
limit: LIMIT_PER_PROJECT,
skip: 0,
props: {
isRoot: true,
},
})
).map((teamMember: TeamMember) => {
return teamMember.projectId!;
});
if (projectUserBelongsTo.length === 0) {
return Response.sendErrorResponse(
req,
res,
new BadRequestException("No SSO config found for this user"),
);
}
const projectSSOList: Array<ProjectSSO> = await ProjectSSOService.findBy({
query: {
projectId: QueryHelper.any(projectUserBelongsTo),
isEnabled: true,
},
limit: LIMIT_PER_PROJECT,
skip: 0,
select: {
name: true,
description: true,
_id: true,
projectId: true,
project: {
name: true,
} as Select<Project>,
},
props: {
isRoot: true,
},
});
return Response.sendEntityArrayResponse(
req,
res,
new BadRequestException("No SSO config found for this user"),
projectSSOList,
projectSSOList.length,
ProjectSSO,
);
} catch (err) {
logger.error(err);
Response.sendErrorResponse(req, res, err as Exception);
}
const projectSSOList: Array<ProjectSSO> = await ProjectSSOService.findBy({
query: {
projectId: QueryHelper.any(projectUserBelongsTo),
isEnabled: true,
},
limit: LIMIT_PER_PROJECT,
skip: 0,
select: {
name: true,
description: true,
_id: true,
projectId: true,
project: {
name: true,
} as Select<Project>,
},
props: {
isRoot: true,
},
});
return Response.sendEntityArrayResponse(
req,
res,
projectSSOList,
projectSSOList.length,
ProjectSSO,
);
},
);
@@ -153,7 +160,7 @@ router.get(
async (
req: ExpressRequest,
res: ExpressResponse,
next: NextFunction,
_next: NextFunction,
): Promise<void> => {
try {
if (!req.params["projectId"]) {
@@ -227,7 +234,9 @@ router.get(
return Response.redirect(req, res, samlRequestUrl);
} catch (err) {
return next(err);
logger.error(err);
Response.sendErrorResponse(req, res, err as Exception);
}
},
);
@@ -275,6 +284,7 @@ const loginUserWithSso: LoginUserWithSsoFunction = async (
let issuerUrl: string = "";
let email: Email | null = null;
let fullName: Name | null = null;
if (!req.params["projectId"]) {
return Response.sendErrorResponse(
@@ -364,6 +374,7 @@ const loginUserWithSso: LoginUserWithSsoFunction = async (
issuerUrl = SSOUtil.getIssuer(response);
email = SSOUtil.getEmail(response);
fullName = SSOUtil.getUserFullName(response);
} catch (err: unknown) {
if (err instanceof Exception) {
return Response.sendErrorResponse(req, res, err);
@@ -412,6 +423,7 @@ const loginUserWithSso: LoginUserWithSsoFunction = async (
alreadySavedUser = await UserService.createByEmail({
email,
name: fullName || undefined,
isEmailVerified: true,
generateRandomPassword: true,
props: {
@@ -522,7 +534,8 @@ const loginUserWithSso: LoginUserWithSsoFunction = async (
);
} catch (err) {
logger.error(err);
Response.sendErrorResponse(req, res, new ServerException());
Response.sendErrorResponse(req, res, err as Exception);
}
};

View File

@@ -0,0 +1,488 @@
import SCIMMiddleware from "Common/Server/Middleware/SCIMAuthorization";
import StatusPagePrivateUserService from "Common/Server/Services/StatusPagePrivateUserService";
import Express, {
ExpressRequest,
ExpressResponse,
ExpressRouter,
OneUptimeRequest,
} from "Common/Server/Utils/Express";
import Response from "Common/Server/Utils/Response";
import logger from "Common/Server/Utils/Logger";
import ObjectID from "Common/Types/ObjectID";
import Email from "Common/Types/Email";
import { JSONObject } from "Common/Types/JSON";
import StatusPagePrivateUser from "Common/Models/DatabaseModels/StatusPagePrivateUser";
import StatusPageSCIM from "Common/Models/DatabaseModels/StatusPageSCIM";
import BadRequestException from "Common/Types/Exception/BadRequestException";
import NotFoundException from "Common/Types/Exception/NotFoundException";
import LIMIT_MAX, { LIMIT_PER_PROJECT } from "Common/Types/Database/LimitMax";
import {
formatUserForSCIM,
generateServiceProviderConfig,
logSCIMOperation,
} from "../Utils/SCIMUtils";
const router: ExpressRouter = Express.getRouter();
// SCIM Service Provider Configuration - GET /status-page-scim/v2/ServiceProviderConfig
router.get(
"/status-page-scim/v2/:statusPageScimId/ServiceProviderConfig",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logSCIMOperation("ServiceProviderConfig", "status-page", req.params["statusPageScimId"]!);
const serviceProviderConfig: JSONObject = generateServiceProviderConfig(
req,
req.params["statusPageScimId"]!,
"status-page"
);
return Response.sendJsonObjectResponse(req, res, serviceProviderConfig);
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
// Status Page Users endpoint - GET /status-page-scim/v2/Users
router.get(
"/status-page-scim/v2/:statusPageScimId/Users",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logger.debug(
`Status Page SCIM Users list request for statusPageScimId: ${req.params["statusPageScimId"]}`,
);
const oneuptimeRequest: OneUptimeRequest = req as OneUptimeRequest;
const bearerData: JSONObject =
oneuptimeRequest.bearerTokenData as JSONObject;
const statusPageId: ObjectID = bearerData["statusPageId"] as ObjectID;
// Parse query parameters
const startIndex: number = parseInt(req.query["startIndex"] as string) || 1;
const count: number = Math.min(
parseInt(req.query["count"] as string) || 100,
LIMIT_PER_PROJECT,
);
logger.debug(
`Status Page SCIM Users - statusPageId: ${statusPageId}, startIndex: ${startIndex}, count: ${count}`,
);
// Get all private users for this status page
const statusPageUsers: Array<StatusPagePrivateUser> =
await StatusPagePrivateUserService.findBy({
query: {
statusPageId: statusPageId,
},
select: {
_id: true,
email: true,
createdAt: true,
updatedAt: true,
},
skip: 0,
limit: LIMIT_MAX,
props: { isRoot: true },
});
logger.debug(
`Status Page SCIM Users - found ${statusPageUsers.length} users`,
);
// Format users for SCIM
const users: Array<JSONObject> = statusPageUsers.map(
(user: StatusPagePrivateUser) => {
return formatUserForSCIM(user, req, req.params["statusPageScimId"]!, "status-page");
},
);
// Paginate the results
const paginatedUsers: Array<JSONObject> = users.slice(
(startIndex - 1) * count,
startIndex * count,
);
logger.debug(`Status Page SCIM Users response prepared with ${users.length} users`);
return Response.sendJsonObjectResponse(req, res, {
schemas: ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
totalResults: users.length,
startIndex: startIndex,
itemsPerPage: paginatedUsers.length,
Resources: paginatedUsers,
});
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
// Get Individual Status Page User - GET /status-page-scim/v2/Users/{id}
router.get(
"/status-page-scim/v2/:statusPageScimId/Users/:userId",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logger.debug(
`Status Page SCIM Get individual user request for userId: ${req.params["userId"]}, statusPageScimId: ${req.params["statusPageScimId"]}`,
);
const oneuptimeRequest: OneUptimeRequest = req as OneUptimeRequest;
const bearerData: JSONObject =
oneuptimeRequest.bearerTokenData as JSONObject;
const statusPageId: ObjectID = bearerData["statusPageId"] as ObjectID;
const userId: string = req.params["userId"]!;
logger.debug(
`Status Page SCIM Get user - statusPageId: ${statusPageId}, userId: ${userId}`,
);
if (!userId) {
throw new BadRequestException("User ID is required");
}
// Check if user exists and belongs to this status page
const statusPageUser: StatusPagePrivateUser | null = await StatusPagePrivateUserService.findOneBy({
query: {
statusPageId: statusPageId,
_id: new ObjectID(userId),
},
select: {
_id: true,
email: true,
createdAt: true,
updatedAt: true,
},
props: { isRoot: true },
});
if (!statusPageUser) {
logger.debug(
`Status Page SCIM Get user - user not found for userId: ${userId}`,
);
throw new NotFoundException(
"User not found or not part of this status page",
);
}
const user: JSONObject = formatUserForSCIM(statusPageUser, req, req.params["statusPageScimId"]!, "status-page");
logger.debug(
`Status Page SCIM Get user - returning user with id: ${statusPageUser.id}`,
);
return Response.sendJsonObjectResponse(req, res, user);
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
// Create Status Page User - POST /status-page-scim/v2/Users
router.post(
"/status-page-scim/v2/:statusPageScimId/Users",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logger.debug(
`Status Page SCIM Create user request for statusPageScimId: ${req.params["statusPageScimId"]}`,
);
const oneuptimeRequest: OneUptimeRequest = req as OneUptimeRequest;
const bearerData: JSONObject =
oneuptimeRequest.bearerTokenData as JSONObject;
const statusPageId: ObjectID = bearerData["statusPageId"] as ObjectID;
const scimConfig: StatusPageSCIM = bearerData["scimConfig"] as StatusPageSCIM;
if (!scimConfig.autoProvisionUsers) {
throw new BadRequestException(
"Auto-provisioning is disabled for this status page",
);
}
const scimUser: JSONObject = req.body;
logger.debug(
`Status Page SCIM Create user - statusPageId: ${statusPageId}`,
);
logger.debug(
`Request body for Status Page SCIM Create user: ${JSON.stringify(scimUser, null, 2)}`,
);
// Extract user data from SCIM payload
const email: string =
(scimUser["userName"] as string) ||
((scimUser["emails"] as JSONObject[])?.[0]?.["value"] as string);
if (!email) {
throw new BadRequestException("Email is required for user creation");
}
logger.debug(
`Status Page SCIM Create user - email: ${email}`,
);
// Check if user already exists for this status page
let user: StatusPagePrivateUser | null = await StatusPagePrivateUserService.findOneBy({
query: {
statusPageId: statusPageId,
email: new Email(email),
},
select: {
_id: true,
email: true,
createdAt: true,
updatedAt: true,
},
props: { isRoot: true },
});
if (!user) {
logger.debug(
`Status Page SCIM Create user - creating new user with email: ${email}`,
);
// Create new status page private user
user = await StatusPagePrivateUserService.create({
data: {
statusPageId: statusPageId,
email: new Email(email),
} as any,
props: { isRoot: true },
});
} else {
logger.debug(
`Status Page SCIM Create user - user already exists with id: ${user.id}`,
);
}
const createdUser: JSONObject = formatUserForSCIM(user, req, req.params["statusPageScimId"]!, "status-page");
logger.debug(
`Status Page SCIM Create user - returning created user with id: ${user.id}`,
);
res.status(201);
return Response.sendJsonObjectResponse(req, res, createdUser);
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
// Update Status Page User - PUT /status-page-scim/v2/Users/{id}
router.put(
"/status-page-scim/v2/:statusPageScimId/Users/:userId",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logger.debug(
`Status Page SCIM Update user request for userId: ${req.params["userId"]}, statusPageScimId: ${req.params["statusPageScimId"]}`,
);
const oneuptimeRequest: OneUptimeRequest = req as OneUptimeRequest;
const bearerData: JSONObject =
oneuptimeRequest.bearerTokenData as JSONObject;
const statusPageId: ObjectID = bearerData["statusPageId"] as ObjectID;
const userId: string = req.params["userId"]!;
const scimUser: JSONObject = req.body;
logger.debug(
`Status Page SCIM Update user - statusPageId: ${statusPageId}, userId: ${userId}`,
);
logger.debug(
`Request body for Status Page SCIM Update user: ${JSON.stringify(scimUser, null, 2)}`,
);
if (!userId) {
throw new BadRequestException("User ID is required");
}
// Check if user exists and belongs to this status page
const statusPageUser: StatusPagePrivateUser | null = await StatusPagePrivateUserService.findOneBy({
query: {
statusPageId: statusPageId,
_id: new ObjectID(userId),
},
select: {
_id: true,
email: true,
createdAt: true,
updatedAt: true,
},
props: { isRoot: true },
});
if (!statusPageUser) {
logger.debug(
`Status Page SCIM Update user - user not found for userId: ${userId}`,
);
throw new NotFoundException(
"User not found or not part of this status page",
);
}
// Update user information
const email: string =
(scimUser["userName"] as string) ||
((scimUser["emails"] as JSONObject[])?.[0]?.["value"] as string);
const active: boolean = scimUser["active"] as boolean;
logger.debug(
`Status Page SCIM Update user - email: ${email}, active: ${active}`,
);
// Handle user deactivation by deleting from status page
if (active === false) {
logger.debug(
`Status Page SCIM Update user - user marked as inactive, removing from status page`,
);
const scimConfig: StatusPageSCIM = bearerData["scimConfig"] as StatusPageSCIM;
if (scimConfig.autoDeprovisionUsers) {
await StatusPagePrivateUserService.deleteOneById({
id: new ObjectID(userId),
props: { isRoot: true },
});
logger.debug(
`Status Page SCIM Update user - user removed from status page`,
);
// Return empty response for deleted user
return Response.sendJsonObjectResponse(req, res, {});
}
}
// Prepare update data
const updateData: {
email?: Email;
} = {};
if (email && email !== statusPageUser.email?.toString()) {
updateData.email = new Email(email);
}
// Only update if there are changes
if (Object.keys(updateData).length > 0) {
logger.debug(
`Status Page SCIM Update user - updating user with data: ${JSON.stringify(updateData)}`,
);
await StatusPagePrivateUserService.updateOneById({
id: new ObjectID(userId),
data: updateData,
props: { isRoot: true },
});
logger.debug(`Status Page SCIM Update user - user updated successfully`);
// Fetch updated user
const updatedUser: StatusPagePrivateUser | null = await StatusPagePrivateUserService.findOneById({
id: new ObjectID(userId),
select: {
_id: true,
email: true,
createdAt: true,
updatedAt: true,
},
props: { isRoot: true },
});
if (updatedUser) {
const user: JSONObject = formatUserForSCIM(updatedUser, req, req.params["statusPageScimId"]!, "status-page");
return Response.sendJsonObjectResponse(req, res, user);
}
}
logger.debug(
`Status Page SCIM Update user - no updates made, returning existing user`,
);
// If no updates were made, return the existing user
const user: JSONObject = formatUserForSCIM(statusPageUser, req, req.params["statusPageScimId"]!, "status-page");
return Response.sendJsonObjectResponse(req, res, user);
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
// Delete Status Page User - DELETE /status-page-scim/v2/Users/{id}
router.delete(
"/status-page-scim/v2/:statusPageScimId/Users/:userId",
SCIMMiddleware.isAuthorizedSCIMRequest,
async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
try {
logger.debug(
`Status Page SCIM Delete user request for userId: ${req.params["userId"]}, statusPageScimId: ${req.params["statusPageScimId"]}`,
);
const oneuptimeRequest: OneUptimeRequest = req as OneUptimeRequest;
const bearerData: JSONObject =
oneuptimeRequest.bearerTokenData as JSONObject;
const statusPageId: ObjectID = bearerData["statusPageId"] as ObjectID;
const scimConfig: StatusPageSCIM = bearerData["scimConfig"] as StatusPageSCIM;
const userId: string = req.params["userId"]!;
if (!scimConfig.autoDeprovisionUsers) {
throw new BadRequestException(
"Auto-deprovisioning is disabled for this status page",
);
}
logger.debug(
`Status Page SCIM Delete user - statusPageId: ${statusPageId}, userId: ${userId}`,
);
if (!userId) {
throw new BadRequestException("User ID is required");
}
// Check if user exists and belongs to this status page
const statusPageUser: StatusPagePrivateUser | null = await StatusPagePrivateUserService.findOneBy({
query: {
statusPageId: statusPageId,
_id: new ObjectID(userId),
},
select: {
_id: true,
},
props: { isRoot: true },
});
if (!statusPageUser) {
logger.debug(
`Status Page SCIM Delete user - user not found for userId: ${userId}`,
);
// SCIM spec says to return 404 for non-existent resources
throw new NotFoundException("User not found");
}
// Delete the user from status page
await StatusPagePrivateUserService.deleteOneById({
id: new ObjectID(userId),
props: { isRoot: true },
});
logger.debug(
`Status Page SCIM Delete user - user deleted successfully for userId: ${userId}`,
);
// Return 204 No Content for successful deletion
res.status(204);
return Response.sendEmptySuccessResponse(req, res);
} catch (err) {
logger.error(err);
return Response.sendErrorResponse(req, res, err as BadRequestException);
}
},
);
export default router;

View File

@@ -27,8 +27,10 @@ import StatusPagePrivateUser from "Common/Models/DatabaseModels/StatusPagePrivat
import StatusPageSSO from "Common/Models/DatabaseModels/StatusPageSso";
import xml2js from "xml2js";
// Initialize Express router.
const router: ExpressRouter = Express.getRouter();
// Define a GET route for SSO in a status page context.
router.get(
"/status-page-sso/:statusPageId/:statusPageSsoId",
async (
@@ -37,6 +39,7 @@ router.get(
next: NextFunction,
): Promise<void> => {
try {
// Check if statusPageId parameter is present.
if (!req.params["statusPageId"]) {
return Response.sendErrorResponse(
req,
@@ -45,6 +48,7 @@ router.get(
);
}
// Check if statusPageSsoId parameter is present.
if (!req.params["statusPageSsoId"]) {
return Response.sendErrorResponse(
req,
@@ -53,14 +57,16 @@ router.get(
);
}
// Create ObjectID instance from statusPageId parameter.
const statusPageId: ObjectID = new ObjectID(req.params["statusPageId"]);
// Find SSO record in the database with specific query parameters.
const statusPageSSO: StatusPageSSO | null =
await StatusPageSsoService.findOneBy({
query: {
statusPageId: statusPageId,
_id: req.params["statusPageSsoId"],
isEnabled: true,
statusPageId: statusPageId, // Ensure that statusPageId matches.
_id: req.params["statusPageSsoId"], // Ensure SSO ID matches.
isEnabled: true, // Ensure the SSO is enabled.
},
select: {
signOnURL: true,
@@ -235,6 +241,7 @@ router.post(
if (statusPageSSO.issuerURL.toString() !== issuerUrl) {
return Response.sendErrorResponse(
req,
res,
new BadRequestException("Issuer URL does not match"),
);
@@ -285,6 +292,7 @@ router.post(
res,
CookieUtil.getUserTokenKey(alreadySavedUser.statusPageId!),
token,
{
httpOnly: true,
maxAge: OneUptimeDate.getMillisecondsInDays(new PositiveNumber(30)),

View File

@@ -1,8 +1,10 @@
import AuthenticationAPI from "./API/Authentication";
import ResellerAPI from "./API/Reseller";
import SsoAPI from "./API/SSO";
import SCIMAPI from "./API/SCIM";
import StatusPageAuthenticationAPI from "./API/StatusPageAuthentication";
import StatusPageSsoAPI from "./API/StatusPageSSO";
import StatusPageSCIMAPI from "./API/StatusPageSCIM";
import FeatureSet from "Common/Server/Types/FeatureSet";
import Express, { ExpressApplication } from "Common/Server/Utils/Express";
import "ejs";
@@ -19,6 +21,10 @@ const IdentityFeatureSet: FeatureSet = {
app.use([`/${APP_NAME}`, "/"], SsoAPI);
app.use([`/${APP_NAME}`, "/"], SCIMAPI);
app.use([`/${APP_NAME}`, "/"], StatusPageSCIMAPI);
app.use([`/${APP_NAME}`, "/"], StatusPageSsoAPI);
app.use(

View File

@@ -0,0 +1,262 @@
import { ExpressRequest } from "Common/Server/Utils/Express";
import logger from "Common/Server/Utils/Logger";
import { JSONObject } from "Common/Types/JSON";
import Email from "Common/Types/Email";
import Name from "Common/Types/Name";
import ObjectID from "Common/Types/ObjectID";
/**
* Shared SCIM utility functions for both Project SCIM and Status Page SCIM
*/
// Base interface for SCIM user-like objects - compatible with User model
export interface SCIMUser {
id?: ObjectID | null;
email?: Email;
name?: Name | string;
createdAt?: Date;
updatedAt?: Date;
}
/**
* Parse name information from SCIM user payload
*/
export const parseNameFromSCIM: (scimUser: JSONObject) => string = (
scimUser: JSONObject,
): string => {
logger.debug(
`SCIM - Parsing name from SCIM user: ${JSON.stringify(scimUser, null, 2)}`,
);
const givenName: string =
((scimUser["name"] as JSONObject)?.["givenName"] as string) || "";
const familyName: string =
((scimUser["name"] as JSONObject)?.["familyName"] as string) || "";
const formattedName: string = (scimUser["name"] as JSONObject)?.[
"formatted"
] as string;
// Construct full name: prefer formatted, then combine given+family, then fallback to displayName
if (formattedName) {
return formattedName;
} else if (givenName || familyName) {
return `${givenName} ${familyName}`.trim();
} else if (scimUser["displayName"]) {
return scimUser["displayName"] as string;
}
return "";
};
/**
* Parse full name into SCIM name format
*/
export const parseNameToSCIMFormat: (fullName: string) => {
givenName: string;
familyName: string;
formatted: string;
} = (
fullName: string,
): { givenName: string; familyName: string; formatted: string } => {
const nameParts: string[] = fullName.trim().split(/\s+/);
const givenName: string = nameParts[0] || "";
const familyName: string = nameParts.slice(1).join(" ") || "";
return {
givenName,
familyName,
formatted: fullName,
};
};
/**
* Format user object for SCIM response
*/
export const formatUserForSCIM: (
user: SCIMUser,
req: ExpressRequest,
scimId: string,
scimType: "project" | "status-page",
) => JSONObject = (
user: SCIMUser,
req: ExpressRequest,
scimId: string,
scimType: "project" | "status-page",
): JSONObject => {
const baseUrl: string = `${req.protocol}://${req.get("host")}`;
const userName: string = user.email?.toString() || "";
const fullName: string = user.name?.toString() || userName.split("@")[0] || "Unknown User";
const nameData: { givenName: string; familyName: string; formatted: string } =
parseNameToSCIMFormat(fullName);
// Determine the correct endpoint path based on SCIM type
const endpointPath: string = scimType === "project"
? `/scim/v2/${scimId}/Users/${user.id?.toString()}`
: `/status-page-scim/v2/${scimId}/Users/${user.id?.toString()}`;
return {
schemas: ["urn:ietf:params:scim:schemas:core:2.0:User"],
id: user.id?.toString(),
userName: userName,
displayName: nameData.formatted,
name: {
formatted: nameData.formatted,
familyName: nameData.familyName,
givenName: nameData.givenName,
},
emails: [
{
value: userName,
type: "work",
primary: true,
},
],
active: true,
meta: {
resourceType: "User",
created: user.createdAt?.toISOString(),
lastModified: user.updatedAt?.toISOString(),
location: `${baseUrl}${endpointPath}`,
},
};
};
/**
* Extract email from SCIM user payload
*/
export const extractEmailFromSCIM: (scimUser: JSONObject) => string = (
scimUser: JSONObject,
): string => {
return (
(scimUser["userName"] as string) ||
((scimUser["emails"] as JSONObject[])?.[0]?.["value"] as string) ||
""
);
};
/**
* Extract active status from SCIM user payload
*/
export const extractActiveFromSCIM: (scimUser: JSONObject) => boolean = (
scimUser: JSONObject,
): boolean => {
return scimUser["active"] !== false; // Default to true if not specified
};
/**
* Generate SCIM ServiceProviderConfig response
*/
export const generateServiceProviderConfig: (
req: ExpressRequest,
scimId: string,
scimType: "project" | "status-page",
documentationUrl?: string,
) => JSONObject = (
req: ExpressRequest,
scimId: string,
scimType: "project" | "status-page",
documentationUrl: string = "https://oneuptime.com/docs/identity/scim",
): JSONObject => {
const baseUrl: string = `${req.protocol}://${req.get("host")}`;
const endpointPath: string = scimType === "project"
? `/scim/v2/${scimId}`
: `/status-page-scim/v2/${scimId}`;
return {
schemas: [
"urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig",
],
documentationUri: documentationUrl,
patch: {
supported: true,
},
bulk: {
supported: true,
maxOperations: 1000,
maxPayloadSize: 1048576,
},
filter: {
supported: true,
maxResults: 200,
},
changePassword: {
supported: false,
},
sort: {
supported: true,
},
etag: {
supported: false,
},
authenticationSchemes: [
{
type: "httpbearer",
name: "HTTP Bearer",
description: "Authentication scheme using HTTP Bearer Token",
primary: true,
},
],
meta: {
location: `${baseUrl}${endpointPath}/ServiceProviderConfig`,
resourceType: "ServiceProviderConfig",
created: "2023-01-01T00:00:00Z",
lastModified: "2023-01-01T00:00:00Z",
},
};
};
/**
* Generate SCIM ListResponse for users
*/
export const generateUsersListResponse: (
users: JSONObject[],
startIndex: number,
totalResults: number,
) => JSONObject = (
users: JSONObject[],
startIndex: number,
totalResults: number,
): JSONObject => {
return {
schemas: ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
totalResults: totalResults,
startIndex: startIndex,
itemsPerPage: users.length,
Resources: users,
};
};
/**
* Parse query parameters for SCIM list requests
*/
export const parseSCIMQueryParams: (req: ExpressRequest) => {
startIndex: number;
count: number;
} = (req: ExpressRequest): { startIndex: number; count: number } => {
const startIndex: number = parseInt(req.query["startIndex"] as string) || 1;
const count: number = Math.min(
parseInt(req.query["count"] as string) || 100,
200, // SCIM recommended max
);
return { startIndex, count };
};
/**
* Log SCIM operation with consistent format
*/
export const logSCIMOperation: (
operation: string,
scimType: "project" | "status-page",
scimId: string,
details?: string,
) => void = (
operation: string,
scimType: "project" | "status-page",
scimId: string,
details?: string,
): void => {
const logPrefix: string = scimType === "project" ? "Project SCIM" : "Status Page SCIM";
const message: string = `${logPrefix} ${operation} - scimId: ${scimId}${details ? `, ${details}` : ""}`;
logger.debug(message);
};

View File

@@ -8,6 +8,7 @@ import logger from "Common/Server/Utils/Logger";
import xmlCrypto, { FileKeyInfo } from "xml-crypto";
import xmldom from "xmldom";
import zlib from "zlib";
import Name from "Common/Types/Name";
export default class SSOUtil {
public static createSAMLRequestUrl(data: {
@@ -138,6 +139,88 @@ export default class SSOUtil {
}
}
public static getUserFullName(payload: JSONObject): Name | null {
if (!payload["saml2p:Response"] && !payload["samlp:Response"]) {
return null;
}
payload =
(payload["saml2p:Response"] as JSONObject) ||
(payload["samlp:Response"] as JSONObject) ||
(payload["Response"] as JSONObject);
const samlAssertion: JSONArray =
(payload["saml2:Assertion"] as JSONArray) ||
(payload["saml:Assertion"] as JSONArray) ||
(payload["Assertion"] as JSONArray);
if (!samlAssertion || samlAssertion.length === 0) {
return null;
}
const samlAttributeStatement: JSONArray =
((samlAssertion[0] as JSONObject)[
"saml2:AttributeStatement"
] as JSONArray) ||
((samlAssertion[0] as JSONObject)[
"saml:AttributeStatement"
] as JSONArray) ||
((samlAssertion[0] as JSONObject)["AttributeStatement"] as JSONArray);
if (!samlAttributeStatement || samlAttributeStatement.length === 0) {
return null;
}
const samlAttribute: JSONArray =
((samlAttributeStatement[0] as JSONObject)[
"saml2:Attribute"
] as JSONArray) ||
((samlAttributeStatement[0] as JSONObject)[
"saml:Attribute"
] as JSONArray) ||
((samlAttributeStatement[0] as JSONObject)["Attribute"] as JSONArray);
if (!samlAttribute || samlAttribute.length === 0) {
return null;
}
// get displayName attribute.
// {
// "$": {
// "Name": "http://schemas.microsoft.com/identity/claims/displayname"
// },
// "AttributeValue": [
// "Nawaz Dhandala"
// ]
// },
for (let i: number = 0; i < samlAttribute.length; i++) {
const attribute: JSONObject = samlAttribute[i] as JSONObject;
if (
attribute["$"] &&
(attribute["$"] as JSONObject)["Name"]?.toString()
) {
const name: string | undefined = (attribute["$"] as JSONObject)[
"Name"
]?.toString();
if (
name &&
name === "http://schemas.microsoft.com/identity/claims/displayname" &&
attribute["AttributeValue"] &&
Array.isArray(attribute["AttributeValue"]) &&
attribute["AttributeValue"].length > 0
) {
const fullName: Name = new Name(
attribute["AttributeValue"][0]!.toString() as string,
);
return fullName;
}
}
}
return null;
}
public static getEmail(payload: JSONObject): Email {
if (!payload["saml2p:Response"] && !payload["samlp:Response"]) {
throw new BadRequestException("SAML Response not found.");

View File

@@ -54,7 +54,8 @@ router.post("/test", async (req: ExpressRequest, res: ExpressResponse) => {
_id: true,
twilioAccountSID: true,
twilioAuthToken: true,
twilioPhoneNumber: true,
twilioPrimaryPhoneNumber: true,
twilioSecondaryPhoneNumbers: true,
projectId: true,
},
});
@@ -97,11 +98,11 @@ router.post("/test", async (req: ExpressRequest, res: ExpressResponse) => {
);
}
if (!config.twilioPhoneNumber) {
if (!config.twilioPrimaryPhoneNumber) {
return Response.sendErrorResponse(
req,
res,
new BadDataException("twilioPhoneNumber is required"),
new BadDataException("twilioPrimaryPhoneNumber is required"),
);
}

View File

@@ -53,7 +53,8 @@ router.post("/test", async (req: ExpressRequest, res: ExpressResponse) => {
_id: true,
twilioAccountSID: true,
twilioAuthToken: true,
twilioPhoneNumber: true,
twilioPrimaryPhoneNumber: true,
twilioSecondaryPhoneNumbers: true,
projectId: true,
},
});
@@ -96,11 +97,11 @@ router.post("/test", async (req: ExpressRequest, res: ExpressResponse) => {
);
}
if (!config.twilioPhoneNumber) {
if (!config.twilioPrimaryPhoneNumber) {
return Response.sendErrorResponse(
req,
res,
new BadDataException("twilioPhoneNumber is required"),
new BadDataException("twilioPrimaryPhoneNumber is required"),
);
}

View File

@@ -1,33 +1,14 @@
import Hostname from "Common/Types/API/Hostname";
import TwilioConfig from "Common/Types/CallAndSMS/TwilioConfig";
import Email from "Common/Types/Email";
import EmailServer from "Common/Types/Email/EmailServer";
import BadDataException from "Common/Types/Exception/BadDataException";
import ObjectID from "Common/Types/ObjectID";
import Port from "Common/Types/Port";
import { AdminDashboardClientURL } from "Common/Server/EnvironmentConfig";
import GlobalConfigService from "Common/Server/Services/GlobalConfigService";
import GlobalConfig, {
EmailServerType,
} from "Common/Models/DatabaseModels/GlobalConfig";
export const InternalSmtpPassword: string =
process.env["INTERNAL_SMTP_PASSWORD"] || "";
export const InternalSmtpHost: Hostname = new Hostname(
process.env["INTERNAL_SMTP_HOST"] || "haraka",
);
export const InternalSmtpPort: Port = new Port(2525);
export const InternalSmtpSecure: boolean = false;
export const InternalSmtpEmail: Email = new Email(
process.env["INTERNAL_SMTP_EMAIL"] || "noreply@oneuptime.com",
);
export const InternalSmtpFromName: string =
process.env["INTERNAL_SMTP_FROM_NAME"] || "OneUptime";
import Phone from "Common/Types/Phone";
type GetGlobalSMTPConfig = () => Promise<EmailServer | null>;
@@ -131,10 +112,10 @@ export const getEmailServerType: GetEmailServerTypeFunction =
});
if (!globalConfig) {
return EmailServerType.Internal;
return EmailServerType.CustomSMTP;
}
return globalConfig.emailServerType || EmailServerType.Internal;
return globalConfig.emailServerType || EmailServerType.CustomSMTP;
};
export interface SendGridConfig {
@@ -196,7 +177,8 @@ export const getTwilioConfig: GetTwilioConfigFunction =
select: {
twilioAccountSID: true,
twilioAuthToken: true,
twilioPhoneNumber: true,
twilioPrimaryPhoneNumber: true,
twilioSecondaryPhoneNumbers: true,
},
});
@@ -207,7 +189,7 @@ export const getTwilioConfig: GetTwilioConfigFunction =
if (
!globalConfig.twilioAccountSID ||
!globalConfig.twilioAuthToken ||
!globalConfig.twilioPhoneNumber
!globalConfig.twilioPrimaryPhoneNumber
) {
return null;
}
@@ -215,7 +197,16 @@ export const getTwilioConfig: GetTwilioConfigFunction =
return {
accountSid: globalConfig.twilioAccountSID,
authToken: globalConfig.twilioAuthToken,
phoneNumber: globalConfig.twilioPhoneNumber,
primaryPhoneNumber: globalConfig.twilioPrimaryPhoneNumber,
secondaryPhoneNumbers:
globalConfig.twilioSecondaryPhoneNumbers &&
globalConfig.twilioSecondaryPhoneNumbers.length > 0
? globalConfig.twilioSecondaryPhoneNumbers
.split(",")
.map((phoneNumber: string) => {
return new Phone(phoneNumber.trim());
})
: [],
};
};

View File

@@ -26,6 +26,7 @@ import CallLog from "Common/Models/DatabaseModels/CallLog";
import Project from "Common/Models/DatabaseModels/Project";
import Twilio from "twilio";
import { CallInstance } from "twilio/lib/rest/api/v2010/account/call";
import Phone from "Common/Types/Phone";
export default class CallService {
public static async makeCall(
@@ -71,7 +72,14 @@ export default class CallService {
);
callLog.toNumber = callRequest.to;
callLog.fromNumber = twilioConfig.phoneNumber;
const fromNumber: Phone = Phone.pickPhoneNumberToSendSMSOrCallFrom({
to: callRequest.to,
primaryPhoneNumberToPickFrom: twilioConfig.primaryPhoneNumber,
seocndaryPhoneNumbersToPickFrom:
twilioConfig.secondaryPhoneNumbers || [],
});
callLog.fromNumber = fromNumber;
callLog.callData =
options && options.isSensitive
? { message: "This call is sensitive and is not logged" }
@@ -232,7 +240,7 @@ export default class CallService {
const twillioCall: CallInstance = await client.calls.create({
twiml: this.generateTwimlForCall(callRequest),
to: callRequest.to.toString(),
from: twilioConfig.phoneNumber.toString(), // From a valid Twilio number
from: fromNumber.toString(), // From a valid Twilio number
});
logger.debug("Call Request sent successfully.");

Some files were not shown because too many files have changed in this diff Show More