Compare commits

...

1072 Commits

Author SHA1 Message Date
Simon Larsen
206c5023d7 Add import for ProductType from 'Model/Models/UsageBilling' in Helpers.ts 2023-12-26 11:47:13 +00:00
Simon Larsen
8584726d22 Refactor code formatting and remove unnecessary whitespace 2023-12-26 11:23:18 +00:00
Simon Larsen
ba7a2fb057 Update PostgresConfig and Init files 2023-12-26 11:13:00 +00:00
Simon Larsen
334ac4d623 Add DiskSize class with conversion methods and update UsageHistory component 2023-12-25 20:33:51 +00:00
Simon Larsen
e9dc7bcab9 Add totalCostInUSD to usageBilling select query and calculate totalCostInCents for reporting 2023-12-25 20:10:35 +00:00
Simon Larsen
ec1942af8f Refactor billing unit names and remove debugger statements 2023-12-25 19:51:36 +00:00
Simon Larsen
224eff0d3d Update launch.json and ObjectID.ts, add debugger statement, modify BillingService.test.ts, Statement.ts, and NavBar.tsx, and update OTelIngest.ts 2023-12-25 19:21:04 +00:00
Simon Larsen
937679d544 Update test setup in CommonServer workflow and PostgresConfig 2023-12-25 18:42:48 +00:00
Simon Larsen
0af8d7359b Refactor billing configuration and add database setup in tests 2023-12-25 18:31:23 +00:00
Simon Larsen
e57963cad1 Refactor rendering code in SSO.ts 2023-12-25 15:04:27 +00:00
Simon Larsen
8a0b977a17 Update test command in CommonServer workflow 2023-12-25 14:32:08 +00:00
Simon Larsen
c4f8826084 Commented out unused code in NavBar.tsx 2023-12-25 14:19:34 +00:00
Simon Larsen
c543e2ab90 Update file paths in SSO.ts 2023-12-25 14:10:15 +00:00
Simon Larsen
f41978c16d Refactor file picker overrideRequestUrl parameter 2023-12-25 13:52:52 +00:00
Simon Larsen
1fcc5fc7b5 Refactor notification API routes and file paths 2023-12-25 13:51:37 +00:00
Simon Larsen
1e37f03792 Update API routes for notifications 2023-12-25 13:43:26 +00:00
Simon Larsen
15850380c4 Fix file picker and notification proxy URLs 2023-12-25 13:39:11 +00:00
Simon Larsen
284752631e Remove unnecessary endpoint status checks 2023-12-25 13:30:46 +00:00
Simon Larsen
2d843605c7 Update environment variables in dashboard-api.yaml and docker-compose.base.yml 2023-12-25 13:27:28 +00:00
Simon Larsen
9512d97671 fix fmt 2023-12-25 13:22:16 +00:00
Simon Larsen
5140f92b1a Update dependencies in ActiveMonitoringMeteredPlan.ts and package.json 2023-12-25 13:17:26 +00:00
Simon Larsen
7cda0565ba Update API endpoints in CallService, MailService, and SmsService 2023-12-25 13:12:19 +00:00
Simon Larsen
224824f1f1 Remove notification service and related configurations 2023-12-25 13:09:41 +00:00
Simon Larsen
72589c060e Delete unused files and templates 2023-12-25 13:03:33 +00:00
Simon Larsen
501e78aae1 Merge branch 'logs-final' into remove-servicess 2023-12-25 12:49:05 +00:00
Simon Larsen
62b309c18c Add dependencies for XML parsing and cryptography 2023-12-25 12:46:09 +00:00
Simon Larsen
4359b74f26 Remove unused files and configurations 2023-12-25 12:42:20 +00:00
Simon Larsen
25fd18b958 Add import for Identity feature set 2023-12-25 12:35:36 +00:00
Simon Larsen
5dfe813bc2 Refactor docker-compose files to remove unused services 2023-12-25 12:28:15 +00:00
Simon Larsen
ca56f83f08 Update Nginx configuration for file proxy 2023-12-25 12:24:09 +00:00
Simon Larsen
cef7df73bb Remove unused files and configurations 2023-12-25 12:23:13 +00:00
Simon Larsen
901d9dd80c Add File API endpoint to DashboardAPI 2023-12-25 12:21:13 +00:00
Simon Larsen
09e7e1811d Delete unused files and templates 2023-12-25 12:16:54 +00:00
Simon Larsen
f6df07b002 Delete volumes.yaml file 2023-12-25 11:40:38 +00:00
Simon Larsen
184ad1b2b8 Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-12-24 19:22:58 +00:00
Simon Larsen
82b17ebc8e Fix capitalization in file paths and update helm install commands 2023-12-24 19:22:54 +00:00
Simon Larsen
4d1c557ee6 Add ActiveMonitoring to ProductType enum 2023-12-22 17:42:05 +00:00
Simon Larsen
22d63c3c80 Update metered plan reporting in ReportTelemetryMeteredPlan.ts 2023-12-22 17:20:15 +00:00
Simon Larsen
a865f987f8 Refactor TelemetryMeteredPlan class to use correct spelling for productType 2023-12-22 17:16:52 +00:00
Simon Larsen
fdb64c5cd9 Update import statements and remove unused code 2023-12-22 17:15:14 +00:00
Simon Larsen
e08d2bb8eb Refactor metered plan handling and add new telemetry plan 2023-12-22 17:00:39 +00:00
Simon Larsen
8f8c443a72 Remove unused metered plan active monitoring configuration 2023-12-22 14:34:54 +00:00
Simon Larsen
190df60a3f Add data retention settings and update telemetry service 2023-12-22 14:34:09 +00:00
Simon Larsen
f374459c5a Fix formatting and add missing commas 2023-12-22 12:18:14 +00:00
Simon Larsen
d42d95f28e Add usage history page to settings menu 2023-12-22 12:12:13 +00:00
Simon Larsen
c5f1621ac0 Merge pull request #1070 from OneUptime/dependabot/pip/Llama/transformers-4.36.0
Bump transformers from 4.34.0 to 4.36.0 in /Llama
2023-12-21 22:40:20 +00:00
Simon Larsen
d788332221 Add usage billing functionality and report to Usage Service 2023-12-21 19:59:29 +00:00
Simon Larsen
d17cef4692 Add new jobs for metered plan telemetry 2023-12-21 19:07:48 +00:00
Simon Larsen
fd8eb66146 Fix bug in login functionality
Add validation for user input

Refactor code for better readability

Update error handling in API calls

Optimize database queries for improved performance
2023-12-21 19:06:43 +00:00
Simon Larsen
e6943d38d5 Refactor metered plan reporting in BillingService and MonitorService 2023-12-21 18:54:05 +00:00
Simon Larsen
53c25a4a4f Fix billing service and usage billing model 2023-12-21 18:49:14 +00:00
Simon Larsen
4eff4b91e9 Update metered plans in config.example.env 2023-12-21 17:40:03 +00:00
Simon Larsen
b0cb902fab Delete UsageBillingService.ts and add UsageBillingService to DashboardAPI/Index.ts 2023-12-21 15:06:50 +00:00
Simon Larsen
1af2ed32fc Add UsageBilling and telemetry retention settings 2023-12-21 15:02:57 +00:00
Simon Larsen
f9b0716769 Add reseller service and reseller model to ProjectAPI 2023-12-21 13:11:54 +00:00
Simon Larsen
7509dbb766 Refactor LogsFilters and NavBar components 2023-12-21 12:47:19 +00:00
Simon Larsen
2d4a084aee Fix formatting issues in Project.ts and Header.tsx 2023-12-21 12:05:56 +00:00
Simon Larsen
03b9627da7 Add id attribute to status page logo 2023-12-21 12:03:02 +00:00
Simon Larsen
fba576b248 Add ColumnBillingAccessControl to Project model 2023-12-21 11:29:20 +00:00
dependabot[bot]
80a925d77d Bump transformers from 4.34.0 to 4.36.0 in /Llama
Bumps [transformers](https://github.com/huggingface/transformers) from 4.34.0 to 4.36.0.
- [Release notes](https://github.com/huggingface/transformers/releases)
- [Commits](https://github.com/huggingface/transformers/compare/v4.34.0...v4.36.0)

---
updated-dependencies:
- dependency-name: transformers
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-20 21:14:11 +00:00
Simon Larsen
781c40e7c5 Refactor status page notification code 2023-12-20 16:36:36 +00:00
Simon Larsen
60430eb6f5 Add status page notification functionality 2023-12-20 16:32:23 +00:00
Simon Larsen
f12a793951 Fix UI styling and update field descriptions in FormField and IncidentsTable 2023-12-20 16:15:26 +00:00
Simon Larsen
7d795408ed Fix initial value bug in Category component 2023-12-20 16:11:52 +00:00
Simon Larsen
81c8758630 Update FormField component to include title and description in Modal 2023-12-20 16:05:56 +00:00
Simon Larsen
b925b876de Fix formatting in selectByAccessControlProps in Field.ts 2023-12-20 15:56:28 +00:00
Simon Larsen
815270cfbc Refactor FormField component to use selectByAccessControlProps 2023-12-20 15:54:15 +00:00
Simon Larsen
5d4f8c623a Update function to handle edge cases
This commit updates the function to handle edge cases, ensuring that the code is more robust and handles unexpected scenarios.
2023-12-20 15:46:55 +00:00
Simon Larsen
84a76da280 Fix import statement and formatting in CategoryCheckboxTypes.ts and FormField.tsx 2023-12-20 14:54:00 +00:00
Simon Larsen
c7ae1844c5 Update component props and types 2023-12-20 14:52:31 +00:00
Simon Larsen
8636b5bc69 Refactor getFieldDescription function in FormField.tsx 2023-12-20 14:22:30 +00:00
Simon Larsen
147e104bc4 Update FieldLabel and FormField components 2023-12-20 14:20:53 +00:00
Simon Larsen
52f2c8ad14 Refactor Text.trimLines method to use arrow function with explicit return 2023-12-20 13:30:23 +00:00
Simon Larsen
3c06af91ba Add Text.trimLines() method and use it in SmsService.sendSms() 2023-12-20 13:29:23 +00:00
Simon Larsen
fbcda678f8 Refactor ConfirmModal test code 2023-12-20 13:11:51 +00:00
Simon Larsen
1b019af98d Merge pull request #1069 from Srdeveloper1004/feature/commonui-test
Add new confirm modal test of commonui
2023-12-20 12:52:33 +00:00
Simon Larsen
c8a23df5b6 Refactor code formatting and fix indentation
Update error message for user limit reached in free plan

Remove unused import statement

Fix indentation in Home/Index.ts

Fix indentation and add line breaks in HardDeleteItemsInDatabase.ts
2023-12-20 12:37:55 +00:00
code dev
b4fb4f72b6 Add new confirm modal test of commonui 2023-12-20 13:36:21 +01:00
Simon Larsen
3208e99469 Update pricing and plan names 2023-12-20 12:04:28 +00:00
Simon Larsen
fdff20a2f9 Add user limit check for free plan 2023-12-20 11:54:26 +00:00
Simon Larsen
b483cf1601 Add billing check before performing hard delete 2023-12-20 11:50:14 +00:00
Simon Larsen
21df6c0b7c Add hard delete for items older than 120 days 2023-12-20 11:48:14 +00:00
Simon Larsen
0408bf96db Update hard delete threshold to 3 days 2023-12-20 11:45:05 +00:00
Simon Larsen
8e0b2dd8dd Update CodeEditor configuration 2023-12-19 19:44:30 +00:00
Simon Larsen
667b326c8b Refactor ModelAPI.getItem in SMTP settings page 2023-12-19 17:58:07 +00:00
Simon Larsen
f5342d066c Update update access control to PlanSelect.Scale 2023-12-19 17:50:59 +00:00
Simon Larsen
d67ee57bf0 Add showEvenIfPermissionDoesNotExist property to Field interface 2023-12-19 17:42:54 +00:00
Simon Larsen
9a6d8c9459 Update unsubscribe message and add forceShow to form fields 2023-12-19 17:40:48 +00:00
Simon Larsen
4c71eb7fca Refactor code for better readability and maintainability 2023-12-19 17:25:23 +00:00
Simon Larsen
97f7a6e4ef Add webpack-dev-server for development environment 2023-12-19 17:23:53 +00:00
Simon Larsen
23a79ca158 Refactor code to improve readability and maintainability 2023-12-19 15:56:12 +00:00
Simon Larsen
777adada5a Add allowSubscribersToChooseResources flag to notification logic 2023-12-19 15:52:44 +00:00
Simon Larsen
1887f1d238 Update unsubscribe message in notification templates 2023-12-19 15:40:23 +00:00
Simon Larsen
dcc25fa0c4 Add webpack-cli as a development dependency 2023-12-19 15:30:28 +00:00
Simon Larsen
0c293c8362 Refactor StatusPageAPI.ts to use explicit type for subscriber 2023-12-19 14:45:32 +00:00
Simon Larsen
585b7bc239 Fix formatting issues and remove unnecessary code 2023-12-19 14:41:33 +00:00
Simon Larsen
fc50511b7f Fix monitor retrieval and on-call schedule loading 2023-12-19 14:31:41 +00:00
Simon Larsen
006e398322 Refactor API calls in Settings, EmailSubscribers, TeamView, UserView, ProjectInvitations, and PublicNote components 2023-12-19 14:09:41 +00:00
Simon Larsen
0e442f0134 Refactor API calls and update select options 2023-12-19 13:55:35 +00:00
Simon Larsen
7d01474d0f Refactor API calls in Register and VerifyEmail pages 2023-12-19 13:22:17 +00:00
Simon Larsen
dbce4f90ab Update ModelAPI and related components 2023-12-19 13:20:22 +00:00
Simon Larsen
eccb035bf2 Fix bug in login functionality
Refactor code to improve performance

Update README with new instructions

Add new feature for user authentication

Fix formatting issues in CSS file

Update dependencies to latest versions

Remove unused variables

Add error handling for edge cases

Fix broken links in documentation

Optimize database queries for faster response times
2023-12-19 12:59:03 +00:00
Simon Larsen
fad319016b Disable word-based suggestions in CodeEditor 2023-12-19 12:46:34 +00:00
Simon Larsen
9a09b6562d Fix subscription API endpoints and update subscription form 2023-12-19 12:43:53 +00:00
Simon Larsen
8dc689fd5a Update API URLs in ModelForm component 2023-12-19 12:33:01 +00:00
Simon Larsen
bbeaeb047e Fix required field validation in FormField component 2023-12-19 12:27:49 +00:00
Simon Larsen
576c220b31 Fix formatting issue in UpdateSubscription.tsx 2023-12-19 12:03:09 +00:00
Simon Larsen
59ab24ba36 Refactor unsubscribe URL generation in StatusPageSubscriberService 2023-12-19 11:43:41 +00:00
Simon Larsen
32e72a8817 Update subscription routes and components 2023-12-19 11:34:15 +00:00
Simon Larsen
d03ffc83b2 Add Unsubscribe page and routes 2023-12-18 23:00:31 +00:00
Simon Larsen
c88a59cddb Fix bug in login functionality
Update error handling in API calls

Refactor code for improved readability

Add new feature for user authentication

Optimize database queries for faster performance

Update dependencies to latest versions

Fix formatting issues in code

Add unit tests for new functionality

Remove unused code

Update documentation for new API endpoints
2023-12-18 22:36:28 +00:00
Simon Larsen
c2305da404 Fix bug in login functionality 2023-12-18 22:34:59 +00:00
Simon Larsen
36dcb1597f Fix formatting and remove unnecessary code 2023-12-18 22:32:17 +00:00
Simon Larsen
24f499bcc2 Fix subscription logic and update form field validation 2023-12-18 22:25:05 +00:00
Simon Larsen
6a3f287822 Refactor Checkbox and FormField components 2023-12-18 22:11:09 +00:00
Simon Larsen
37d2d8bedf Fix category and checkbox onChange event handling 2023-12-18 22:01:37 +00:00
Simon Larsen
e51c3c5c56 Update Checkbox and SubscribePage components 2023-12-18 20:00:17 +00:00
Simon Larsen
13ee850a67 Add isSubscribedToAllResources field and update EmailSubscribe component 2023-12-18 17:21:52 +00:00
Simon Larsen
fa586c0667 Add BaseModel import and sanitize initial values in CategoryCheckbox component 2023-12-18 17:18:12 +00:00
Simon Larsen
16a858d2e2 Update StatusPage and EmailSubscribers components 2023-12-18 15:39:59 +00:00
Simon Larsen
51f4f4c23c Fix formatting issues and improve code readability 2023-12-18 15:24:33 +00:00
Simon Larsen
15a81ed14d Add canReadOnRelationQuery property to StatusPageGroup model and import SubscriberUtil in EmailSubscribe component 2023-12-18 15:19:15 +00:00
Simon Larsen
c520d09351 Add validation for status page resources 2023-12-16 21:14:07 +00:00
Simon Larsen
14c6bdb3b4 Refactor EventItem component to use div instead of p tags for event descriptions 2023-12-16 21:01:57 +00:00
Simon Larsen
ec9e6252a1 Add support for subscribers to choose resources 2023-12-16 21:00:23 +00:00
Simon Larsen
8fd03008b7 Add column access control for allowSubscribersToChooseResources and enableSmsSubscribers 2023-12-16 20:49:33 +00:00
Simon Larsen
b1922ea4a9 Refactor Checkbox and HorizontalRule components 2023-12-16 20:43:03 +00:00
Simon Larsen
63fcfbc6f6 Fix typos and add functionality to Checkbox components 2023-12-16 20:38:45 +00:00
Simon Larsen
cf5fceb981 Refactor CategoryCheckbox component and fix Checkbox styling 2023-12-16 19:27:58 +00:00
Simon Larsen
c95f845a5c Add HorizontalRule component and update Category component 2023-12-16 19:18:22 +00:00
Simon Larsen
b42a69b154 Refactor code formatting in Index.tsx and Checkbox.tsx
Fix formatting and add error handling in EmailSubscribe.tsx
2023-12-16 14:01:51 +00:00
Simon Larsen
b0ef3be85e Fix formatting and remove unnecessary code 2023-12-16 14:01:15 +00:00
Simon Larsen
07b72310fc Refactor Overview component 2023-12-16 13:56:48 +00:00
Simon Larsen
3707ee7b9d Update code editor settings and UI labels 2023-12-16 13:36:23 +00:00
Simon Larsen
f5bc142112 Add category checkbox for undefined category
Update ModelForm import in EmailSubscribe.tsx
2023-12-16 13:20:50 +00:00
Simon Larsen
90e01e9fb8 Add allowSubscribersToChooseResources state variable 2023-12-16 13:12:37 +00:00
Simon Larsen
93fc5b68ff Add option to allow subscribers to choose resources 2023-12-16 13:11:06 +00:00
Simon Larsen
54600cf358 Add description for allowing subscribers to choose resources 2023-12-16 13:04:54 +00:00
Simon Larsen
ba90733f72 Add advanced subscriber settings to SubscriberSettings.tsx and StatusPage model 2023-12-16 13:03:23 +00:00
Simon Larsen
acc610e253 Refactor CategoryCheckbox component and add description to CheckboxCategory 2023-12-16 13:00:49 +00:00
Simon Larsen
a4c17c7bf6 Add order property to select query in StatusPageAPI.ts and CategoryCheckboxProps interface 2023-12-16 12:42:10 +00:00
Simon Larsen
5f2479abce Add API endpoint to get status page resources 2023-12-16 12:09:53 +00:00
Simon Larsen
b2042baa04 Add ManyToMany relationship with StatusPageResource 2023-12-16 12:06:50 +00:00
Simon Larsen
cfba3386b7 Add Checkbox and CategoryCheckbox options to FormFieldSchemaType and Field interface 2023-12-16 11:37:37 +00:00
Simon Larsen
06b34c4e9d Refactor CategoryCheckbox component 2023-12-16 11:13:00 +00:00
Simon Larsen
074055aec4 Refactor code for improved performance and readability 2023-12-16 11:05:27 +00:00
Simon Larsen
5ef0b908d8 Update wordBasedSuggestions in CodeEditor.tsx 2023-12-14 19:15:12 +00:00
Simon Larsen
cbc9445b84 Update notification sending in incident and scheduled maintenance jobs 2023-12-14 19:12:32 +00:00
Simon Larsen
eebfb79b06 Fix code formatting and update variable declaration 2023-12-14 16:54:14 +00:00
Simon Larsen
c0ff01e7f6 Update SmsLog and SmsService classes, and SendNotificationToSubscribers job 2023-12-14 16:51:15 +00:00
Simon Larsen
16a65fcb4c Update import statements and add new data migration 2023-12-14 16:23:49 +00:00
Simon Larsen
f62930abb1 Fix formatting issues and enable SMS subscribers 2023-12-14 16:07:09 +00:00
Simon Larsen
379252bddf Add SMS notification feature and update side menu 2023-12-14 16:04:56 +00:00
Simon Larsen
69eed8d7cf Update code editor settings and side menu icons 2023-12-14 15:47:58 +00:00
Simon Larsen
2a37f62a82 Add enableSMSSubscribers flag to NavBar and MasterPage components 2023-12-14 15:26:30 +00:00
Simon Larsen
0fb652abf2 Enable email subscribers instead of subscribers 2023-12-14 15:13:46 +00:00
Nawaz Dhandala
c4f058cbec Merge pull request #1066 from soknaly/fix/update-wrong-breadcrumbs
fix: update monitor wrong breadcrumbs
2023-12-13 15:46:12 +00:00
Sokna Ly
3ca7d83d96 fix: update monitor wrong breadcrumbs 2023-12-13 22:36:15 +07:00
Simon Larsen
3787985d23 Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-12-13 13:53:57 +00:00
Simon Larsen
632ed7b782 Fix retry logic for response times exceeding 10 seconds 2023-12-13 13:53:55 +00:00
Nawaz Dhandala
3ae76dde91 Merge pull request #1065 from OneUptime/snyk-upgrade-432a38389fa3774d65991245b8bf3f20
[Snyk] Upgrade @types/lodash from 4.14.201 to 4.14.202
2023-12-13 13:45:44 +00:00
Simon Larsen
dc6ce43e0d Update fileMock.js path in jest.config.json 2023-12-13 13:43:05 +00:00
Simon Larsen
0ca9c2db9b Update moduleNameMapper in jest.config.json 2023-12-13 13:37:48 +00:00
Simon Larsen
552415713e Update dependencies in jest.config.json and package-lock.json 2023-12-13 13:31:01 +00:00
snyk-bot
f4c7304d38 fix: upgrade @types/lodash from 4.14.201 to 4.14.202
Snyk has created this PR to upgrade @types/lodash from 4.14.201 to 4.14.202.

See this package in npm:
https://www.npmjs.com/package/@types/lodash

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/c3622982-05c8-495c-809c-20f301c75f92?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-12 18:50:23 +00:00
Simon Larsen
12e90da3a1 Update webpack configurations 2023-12-12 18:09:50 +00:00
Simon Larsen
6db5bea724 Add express dependency to package.json 2023-12-12 17:54:35 +00:00
Simon Larsen
b3ac3771b1 Add dotenv package to package.json files 2023-12-12 17:20:16 +00:00
Simon Larsen
4ca1def4c8 Update webpack-cli installation in Dockerfile.tpl 2023-12-12 16:58:03 +00:00
Simon Larsen
911872ac3c Add webpack-cli installation to Dockerfile.tpl 2023-12-12 16:21:29 +00:00
Simon Larsen
dab7f81073 Add devDependency @types/node to package.json and update playwright.config.ts 2023-12-12 16:13:22 +00:00
Simon Larsen
c0d8155ad7 Update package.json dependencies 2023-12-12 16:07:26 +00:00
Simon Larsen
4e0d7e32b2 Update package.json dependencies and fix wordBasedSuggestions in CodeEditor 2023-12-12 15:59:56 +00:00
Simon Larsen
b527f47837 Fix wordBasedSuggestions value in CodeEditor.tsx and update devDependencies in package.json 2023-12-12 15:22:21 +00:00
Simon Larsen
2b8b818bc7 Update dependencies and package.json files 2023-12-12 15:11:04 +00:00
Simon Larsen
01c3b9e8be Remove unused files and dependencies 2023-12-12 15:03:08 +00:00
Simon Larsen
c991cd859f Update package.json scripts 2023-12-12 14:58:10 +00:00
Simon Larsen
62862a2ace Remove unused devDependencies and fix formatting in package.json files 2023-12-12 14:51:53 +00:00
Simon Larsen
ba5f3e7355 Remove unused dependencies and update package.json 2023-12-12 14:49:37 +00:00
Simon Larsen
18bc817701 Update package.json dependencies 2023-12-12 14:45:18 +00:00
Simon Larsen
bcabf7daad Update package.json files 2023-12-12 14:41:50 +00:00
Simon Larsen
7433ed39bc Remove unused dependencies from package.json 2023-12-12 14:33:25 +00:00
Simon Larsen
48cbd60ebc Update dependencies in package.json 2023-12-12 14:30:01 +00:00
Simon Larsen
4544c1225e Fix dep-check command in package.json 2023-12-12 14:27:51 +00:00
Simon Larsen
77c3b4f329 Fix formatting in package.json files 2023-12-12 14:27:05 +00:00
Simon Larsen
9cbfce967d Add dependency check to npm run compile commands in workflows 2023-12-12 13:49:17 +00:00
Simon Larsen
c84cbe5575 Add dep-check script to package.json files 2023-12-12 13:48:44 +00:00
Simon Larsen
b7965229f1 Remove unused dependency "i" 2023-12-12 13:41:52 +00:00
Simon Larsen
d661b2961c Remove unnecessary npm dependency 2023-12-12 13:40:10 +00:00
Simon Larsen
6c2f1acf39 Merge pull request #1064 from OneUptime/snyk-fix-a860abc8298edff3a5a3c26b62688bb9
[Snyk] Security upgrade npm from 8.19.4 to 10.2.2
2023-12-12 13:38:25 +00:00
snyk-bot
ad53b442a0 fix: CommonUI/package.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116
2023-12-12 13:38:01 +00:00
Simon Larsen
526df139b1 Update Dockerfile and launch configurations 2023-12-11 19:37:18 +00:00
Simon Larsen
c60eaccc90 Merge pull request #1063 from OneUptime/remove-link-shortner
Remove link shortner
2023-12-11 19:32:43 +00:00
Simon Larsen
f2d13ec4ad Refactor API routes and remove LinkShortenerAPI 2023-12-11 19:32:29 +00:00
Simon Larsen
259659133e Remove LinkShortener files and dependencies 2023-12-11 19:07:34 +00:00
Simon Larsen
a35462b3c9 Remove link-shortener service and related configurations 2023-12-11 19:03:04 +00:00
Simon Larsen
19b717019b Update queryText condition in QueryHelper.ts 2023-12-11 18:58:26 +00:00
Simon Larsen
0a688459ee Commented out logging option in PostgresConfig.ts 2023-12-11 18:46:36 +00:00
Simon Larsen
f4ffc4f115 Add replaceAll method to Text class and update component id in Manual.ts 2023-12-11 18:45:22 +00:00
Simon Larsen
4825e57821 Update RouteMap.ts to include API key view route
This commit updates the RouteMap.ts file to include a new route for viewing API keys. The route is added to the SettingsRoutePath dictionary and the RouteMap dictionary. This allows users to navigate to the API key view page.
2023-12-11 16:43:56 +00:00
Simon Larsen
d574be9ab5 Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-12-10 10:12:58 +00:00
Simon Larsen
7a5c04cec4 Merge remote-tracking branch 'origin/snyk-upgrade-03b42086b70cdb33a8fe1c558fff1f61' 2023-12-10 10:12:55 +00:00
Simon Larsen
aee2d10db6 Merge remote-tracking branch 'origin/snyk-upgrade-c8ed9bb51506dd37c942287d5c170911' 2023-12-10 10:11:42 +00:00
Simon Larsen
aec8258939 Merge remote-tracking branch 'origin/snyk-upgrade-96956e3257665a9bb586b4a6fdc7e1ff' 2023-12-10 10:10:43 +00:00
Simon Larsen
38be1286c7 Merge pull request #1060 from soknaly/fix/navitem-active-only-first-route
fix: NavbarItem is active only for the specific route
2023-12-08 17:05:32 +00:00
Sokna Ly
ebab1b2010 fix: remove console for lint 2023-12-08 23:46:27 +07:00
Sokna Ly
6ab771f3ee fix: NavbarItem is active only for specific route 2023-12-08 23:23:27 +07:00
Simon Larsen
e874913d38 Update IS_SERVER variable values in docker-compose.base.yml 2023-12-08 15:06:16 +00:00
Simon Larsen
706f0ebb27 Remove typescript-remove-decorators-transformer package 2023-12-08 14:51:14 +00:00
Simon Larsen
f83df55a9c Add video script to multiple pages 2023-12-08 14:48:03 +00:00
Simon Larsen
e08ff80312 Fix videoId formatting in status-page.ejs 2023-12-08 13:50:03 +00:00
Simon Larsen
ec40c16eed Remove unnecessary heading in pricing-compare.ejs 2023-12-07 20:27:27 +00:00
Simon Larsen
16fe15ac22 Refactor cookie banner code 2023-12-07 19:10:10 +00:00
snyk-bot
507fad9490 fix: upgrade react-router-dom from 6.18.0 to 6.19.0
Snyk has created this PR to upgrade react-router-dom from 6.18.0 to 6.19.0.

See this package in npm:
https://www.npmjs.com/package/react-router-dom

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/11bb5528-45f9-473c-a635-dc097fd03b3c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-07 18:31:11 +00:00
Simon Larsen
81fa79ac57 Add banner components to monitor, on-call duty,
on-call duty schedule, status pages, and workflows
pages
2023-12-07 16:52:29 +00:00
Simon Larsen
5078e084a4 Add watch demo video to workflow builder 2023-12-07 16:29:25 +00:00
Simon Larsen
18508e763b Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-12-07 13:41:57 +00:00
Simon Larsen
27398d4b95 Add watch demo videos to monitoring and on-call
pages
2023-12-07 13:41:42 +00:00
Simon Larsen
e781c6032a Merge pull request #1056 from OneUptime/snyk-upgrade-ad2462895ced76c22eab830dd32b5a69
[Snyk] Upgrade body-parser from 1.20.1 to 1.20.2
2023-12-07 11:19:21 +00:00
Simon Larsen
4f6e89550f Merge pull request #1058 from soknaly/chore/remove-typeorm-decorators-in-bundle
perf: remove typeorm decorators in frontend to reduce bundle size
2023-12-07 09:32:20 +00:00
Simon Larsen
435d0b2df3 Merge pull request #1057 from OneUptime/snyk-upgrade-0506dcd0512d3151753019a6facc3dd5
[Snyk] Upgrade ejs from 3.1.8 to 3.1.9
2023-12-07 09:30:24 +00:00
Sokna Ly
1aa466d3f2 core: remove typeorm decorators in bundle to reduce bundle size 2023-12-07 12:55:00 +07:00
snyk-bot
6852f89827 fix: upgrade ejs from 3.1.8 to 3.1.9
Snyk has created this PR to upgrade ejs from 3.1.8 to 3.1.9.

See this package in npm:
https://www.npmjs.com/package/ejs

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5a2fa790-dc76-4e5f-90cc-f4da8ad2caf7?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-06 22:31:05 +00:00
snyk-bot
f20131668e fix: upgrade body-parser from 1.20.1 to 1.20.2
Snyk has created this PR to upgrade body-parser from 1.20.1 to 1.20.2.

See this package in npm:
https://www.npmjs.com/package/body-parser

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5a2fa790-dc76-4e5f-90cc-f4da8ad2caf7?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-06 22:31:01 +00:00
Simon Larsen
bfcc0fa511 Merge pull request #1055 from OneUptime/snyk-upgrade-5fe2f2752e83205b554153ed739f8c33
[Snyk] Upgrade body-parser from 1.20.1 to 1.20.2
2023-12-06 20:28:12 +00:00
Simon Larsen
bf57922bde Merge pull request #1054 from OneUptime/snyk-upgrade-a94823791dcff6266c07be328e63be48
[Snyk] Upgrade ejs from 3.1.8 to 3.1.9
2023-12-06 20:28:03 +00:00
Simon Larsen
b80357d345 Merge pull request #1053 from OneUptime/snyk-fix-2ff6686696365a35f8bd44c5c59bee8a
[Snyk] Security upgrade npm from 8.19.4 to 9.6.3
2023-12-06 20:27:54 +00:00
snyk-bot
5b2bf8b31e fix: upgrade body-parser from 1.20.1 to 1.20.2
Snyk has created this PR to upgrade body-parser from 1.20.1 to 1.20.2.

See this package in npm:
https://www.npmjs.com/package/body-parser

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/102b46c1-e36e-406c-acd1-31c8200a6c5f?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-06 17:56:06 +00:00
snyk-bot
f9b5079458 fix: upgrade ejs from 3.1.8 to 3.1.9
Snyk has created this PR to upgrade ejs from 3.1.8 to 3.1.9.

See this package in npm:
https://www.npmjs.com/package/ejs

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/102b46c1-e36e-406c-acd1-31c8200a6c5f?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-06 17:56:02 +00:00
snyk-bot
f366b5cdcc fix: CommonUI/package.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116
2023-12-06 17:52:41 +00:00
Simon Larsen
e9dd4ba84f Add On-Call Rotation feature 2023-12-06 17:14:01 +00:00
Simon Larsen
b4230344c7 Refactor SideOver component 2023-12-06 14:57:49 +00:00
Simon Larsen
74ee0f6224 Fix typo in StatusPage.ts 2023-12-06 14:52:57 +00:00
Simon Larsen
3f2c1ccef4 Remove unused import and update schedule in
ExecutePendingExecutions.ts
2023-12-06 14:48:46 +00:00
Simon Larsen
c869b49e23 Update model references in
OnCallDutyPolicyExecutionLogTimeline and
UserOnCallLog
2023-12-06 14:13:56 +00:00
Simon Larsen
0ce1a58600 Fix whitespace and remove unnecessary lines 2023-12-06 14:04:10 +00:00
Simon Larsen
2f8a436fd0 Add onCallScheduleId to
UserNotificationRuleService and UserOnCallLog
models
2023-12-06 13:55:36 +00:00
Simon Larsen
e6d544fabc Merge pull request #961 from soknaly/refactor/lazy-load-pages
refactor: implement lazy load and separate routes
2023-12-06 12:12:11 +00:00
Simon Larsen
878ab8566e Merge pull request #1045 from OneUptime/snyk-upgrade-c8d138532a8ee40cb2b4b6b2a4ff795c
[Snyk] Upgrade @types/lodash from 4.14.200 to 4.14.201
2023-12-06 11:28:23 +00:00
Simon Larsen
fd98e2e1f3 Merge pull request #1047 from OneUptime/snyk-upgrade-7b95ffd21ffa3b848a5bc0928c37c1a2
[Snyk] Upgrade xml-crypto from 3.0.1 to 3.2.0
2023-12-06 11:28:14 +00:00
Simon Larsen
cffdd4d7c2 Merge pull request #1048 from OneUptime/snyk-upgrade-8a07047bdc86943d6e3a0d408c4f106f
[Snyk] Upgrade ejs from 3.1.8 to 3.1.9
2023-12-06 11:28:10 +00:00
Simon Larsen
503d028677 Merge pull request #1049 from soknaly/chore/typo-for-javascript-code-workflow-document
chore: Update typo in Javascript Code component's document in Workflow
2023-12-06 11:27:50 +00:00
Sokna Ly
a3aaefe843 chore: Update typo in Javascript Code component's document in Workflow 2023-12-06 12:03:54 +07:00
snyk-bot
94d47bc54a fix: upgrade ejs from 3.1.8 to 3.1.9
Snyk has created this PR to upgrade ejs from 3.1.8 to 3.1.9.

See this package in npm:
https://www.npmjs.com/package/ejs

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/274dd1b5-2589-4279-bb73-2a2367ad9639?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-05 23:31:03 +00:00
snyk-bot
579d635699 fix: upgrade xml-crypto from 3.0.1 to 3.2.0
Snyk has created this PR to upgrade xml-crypto from 3.0.1 to 3.2.0.

See this package in npm:
https://www.npmjs.com/package/xml-crypto

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/274dd1b5-2589-4279-bb73-2a2367ad9639?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-05 23:30:59 +00:00
snyk-bot
6526b6d59b fix: upgrade xml2js from 0.5.0 to 0.6.2
Snyk has created this PR to upgrade xml2js from 0.5.0 to 0.6.2.

See this package in npm:
https://www.npmjs.com/package/xml2js

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/274dd1b5-2589-4279-bb73-2a2367ad9639?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-05 23:30:53 +00:00
snyk-bot
22fe6a8859 fix: upgrade @types/lodash from 4.14.200 to 4.14.201
Snyk has created this PR to upgrade @types/lodash from 4.14.200 to 4.14.201.

See this package in npm:
https://www.npmjs.com/package/@types/lodash

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/c3622982-05c8-495c-809c-20f301c75f92?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-05 23:02:38 +00:00
Simon Larsen
b64cf8127b Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-12-05 19:40:37 +00:00
Simon Larsen
dc3d262b45 Fix indentation and formatting issues in LayerUtil
class
2023-12-05 19:40:06 +00:00
Simon Larsen
87497ba998 Fix restriction times for event 2023-12-05 19:38:15 +00:00
Simon Larsen
161536fb5b Fix weekly restriction bug in LayerUtil 2023-12-05 18:56:01 +00:00
Simon Larsen
f0b2c92065 Merge pull request #1043 from OneUptime/snyk-upgrade-42c9ce24c5b0bf3ca5e47cdd656e46b1
[Snyk] Upgrade react-icons from 4.11.0 to 4.12.0
2023-12-05 18:26:00 +00:00
Simon Larsen
bd9638f402 Merge pull request #1044 from OneUptime/snyk-fix-7c489554fcd9da33f61452df75f4b2b0
[Snyk] Security upgrade @sendgrid/mail from 7.7.0 to 8.0.0
2023-12-05 18:25:47 +00:00
snyk-bot
99793c7a37 fix: Notification/package.json & Notification/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-AXIOS-6032459
2023-12-05 18:16:42 +00:00
snyk-bot
50b0b435cd fix: upgrade react-icons from 4.11.0 to 4.12.0
Snyk has created this PR to upgrade react-icons from 4.11.0 to 4.12.0.

See this package in npm:
https://www.npmjs.com/package/react-icons

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/11bb5528-45f9-473c-a635-dc097fd03b3c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-05 18:15:38 +00:00
Simon Larsen
d43b63c8f5 Merge pull request #1039 from OneUptime/snyk-upgrade-4e0318c06bddc286eca43f7543206607
[Snyk] Upgrade @types/try-to-catch from 3.0.0 to 3.0.3
2023-12-05 18:14:12 +00:00
Simon Larsen
97b6f2702e Merge pull request #1038 from OneUptime/snyk-upgrade-81d6105f73ae497dd6bf41d8f180827a
[Snyk] Upgrade @types/compression from 1.7.2 to 1.7.5
2023-12-05 18:13:50 +00:00
Simon Larsen
ae5911c0b4 Merge pull request #1040 from OneUptime/snyk-upgrade-3da39d4ae5da57b5272149805701c146
[Snyk] Upgrade xmlbuilder2 from 3.0.2 to 3.1.1
2023-12-05 18:13:40 +00:00
Simon Larsen
4d1dc9198a Merge pull request #1042 from OneUptime/snyk-upgrade-a1ea33981137bf9bca654d6fce8f9bb4
[Snyk] Upgrade @types/body-parser from 1.19.4 to 1.19.5
2023-12-05 18:13:32 +00:00
snyk-bot
8cda8eff8e fix: upgrade @types/body-parser from 1.19.4 to 1.19.5
Snyk has created this PR to upgrade @types/body-parser from 1.19.4 to 1.19.5.

See this package in npm:
https://www.npmjs.com/package/@types/body-parser

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/102b46c1-e36e-406c-acd1-31c8200a6c5f?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-05 18:08:04 +00:00
snyk-bot
e43068d391 fix: upgrade @types/ejs from 3.1.4 to 3.1.5
Snyk has created this PR to upgrade @types/ejs from 3.1.4 to 3.1.5.

See this package in npm:
https://www.npmjs.com/package/@types/ejs

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/102b46c1-e36e-406c-acd1-31c8200a6c5f?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-05 18:07:59 +00:00
snyk-bot
93eda19560 fix: upgrade xmlbuilder2 from 3.0.2 to 3.1.1
Snyk has created this PR to upgrade xmlbuilder2 from 3.0.2 to 3.1.1.

See this package in npm:
https://www.npmjs.com/package/xmlbuilder2

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/102b46c1-e36e-406c-acd1-31c8200a6c5f?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-05 18:07:54 +00:00
snyk-bot
970f4e30bc fix: upgrade @types/try-to-catch from 3.0.0 to 3.0.3
Snyk has created this PR to upgrade @types/try-to-catch from 3.0.0 to 3.0.3.

See this package in npm:
https://www.npmjs.com/package/@types/try-to-catch

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/102b46c1-e36e-406c-acd1-31c8200a6c5f?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-05 18:07:50 +00:00
snyk-bot
db1d2d3dce fix: upgrade @types/compression from 1.7.2 to 1.7.5
Snyk has created this PR to upgrade @types/compression from 1.7.2 to 1.7.5.

See this package in npm:
https://www.npmjs.com/package/@types/compression

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/102b46c1-e36e-406c-acd1-31c8200a6c5f?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-05 18:07:45 +00:00
Simon Larsen
91691a05d6 Fix overlapping date comparison logic 2023-12-05 17:58:54 +00:00
Sokna Ly
01ad5604ba refactor: separate routes and lazy load pages for user profiles 2023-12-06 00:30:26 +07:00
Sokna Ly
27bb1d87b4 refactor: separate routes and lazy load pages for monitor groups 2023-12-06 00:07:56 +07:00
Sokna Ly
b6742c93d7 refactor: lazy load for settings pages 2023-12-05 23:28:19 +07:00
Sokna Ly
cb2a3619fc refactor: separate routes and lazy load for on-call duty 2023-12-05 23:21:08 +07:00
Simon Larsen
418c7f9da6 Fix sorting and removal of events in LayerUtil and
update layerUsers in Layers component
2023-12-05 15:59:49 +00:00
Sokna Ly
cbb716c102 refactor: convert pages to lazy pages for incidents 2023-12-05 22:51:14 +07:00
Sokna Ly
1ce1058f72 refactor: implement lazy load for MarkdownViewer component to reduce main bundle size 2023-12-05 22:44:32 +07:00
Simon Larsen
133a46a3cf Refactor date overlapping logic and trim events 2023-12-05 15:26:28 +00:00
Simon Larsen
6a50b0a4cc Fix overlapping events and update layer priority 2023-12-05 15:12:17 +00:00
Sokna Ly
ff9b2e4fd0 Merge branch 'master' into refactor/lazy-load-pages 2023-12-05 22:08:48 +07:00
Simon Larsen
07ecf31473 Fix date calculation bug in LayerUtil class 2023-12-05 14:52:16 +00:00
Simon Larsen
f24e540fc6 Fix issue with updating layers in
OnCallScheduleLayer component
2023-12-05 14:18:20 +00:00
Simon Larsen
ca93e786c9 Update onCallDutySchedule to onCallSchedules 2023-12-05 14:05:47 +00:00
Simon Larsen
f42b25ef9d Remove
OnCallDutyPolicyEscalationRuleOnCallSchedule and
add OnCallDutyPolicyEscalationRuleSchedule
2023-12-05 14:02:29 +00:00
Simon Larsen
3dcdb5f0c2 Fix formatting issues and improve code readability 2023-12-05 13:56:14 +00:00
Simon Larsen
606c0cb69d Add OnCallDutyScheduleView component to
OnCallPolicyDelete
2023-12-05 13:53:50 +00:00
Simon Larsen
b187773f99 Add
OnCallDutyPolicyEscalationRuleOnCallScheduleService
and OnCallDutyPolicySchedule
2023-12-05 13:43:37 +00:00
Simon Larsen
1949946cd3 Add careers link to footer 2023-12-05 13:33:08 +00:00
Simon Larsen
f3e4958d36 Fix bug in login functionality 2023-12-05 13:30:54 +00:00
Simon Larsen
09b9454633 Merge branch 'master' into multiple-layers 2023-12-05 13:15:18 +00:00
Simon Larsen
0cfc424116 Update stripe package version 2023-12-05 13:14:44 +00:00
Simon Larsen
4bccc7ce96 Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-12-05 13:13:52 +00:00
Simon Larsen
4ad1182a48 merge 2023-12-05 13:13:48 +00:00
Simon Larsen
69e6e22e1f Merge pull request #1033 from OneUptime/snyk-upgrade-2a781cf5d1b40902b325ee1bf4fcce95
[Snyk] Upgrade @types/body-parser from 1.19.4 to 1.19.5
2023-12-05 13:11:18 +00:00
Simon Larsen
eaacaf7489 Merge pull request #1035 from junedkhatri31/master
fix: Double window opening on image selection
2023-12-05 12:59:06 +00:00
Simon Larsen
868ac191a9 Merge pull request #1036 from soknaly/refactor/lodash-tree-shaking
refactor: optimize tree-shaking for lodash to reduce bundle size
2023-12-05 12:58:39 +00:00
Sokna Ly
912f1ecfc8 refactor: optimize tree-shaking for lodash to reduce bundle size 2023-12-05 19:33:18 +07:00
Juned Khatri
72ade144e5 fix: Double window opening on image selection 2023-12-05 00:55:25 +05:30
Simon Larsen
db92624920 Fix formatting issues and add
OnCallDutyPolicyEscalationRuleOnCallSchedule API
endpoint
2023-12-04 18:20:07 +00:00
Simon Larsen
cbd7211690 Add On-Call Duty Policy Escalation Rule Schedule
permissions
2023-12-04 18:16:19 +00:00
Simon Larsen
8c217fcfe1 Add showFieldLabel prop to LayerPreview component 2023-12-04 18:03:26 +00:00
Simon Larsen
046f7dd0c2 Refactor OnCallScheduleLayer components 2023-12-04 17:56:38 +00:00
Simon Larsen
ea2ae6e1e1 Add LayersPreview component and Card component to
Layers.tsx
2023-12-04 17:46:41 +00:00
Simon Larsen
a29cf250b9 Add onLayerUsersUpdateOrLoaded callback to Layer
component
2023-12-04 17:44:29 +00:00
Sokna Ly
77ff3673cd chore: add webpack bundle analyzer to anylze and optimize sizes 2023-12-05 00:07:59 +07:00
Sokna Ly
222d3e8c84 refactor: implement lazy load and separate routes for project settings 2023-12-04 23:54:59 +07:00
Sokna Ly
d0280da995 refactor: implement lazy load and separate routes for scheduled events 2023-12-04 23:24:53 +07:00
Sokna Ly
957604636d refactor: implement lazy load and separate routes for incidents 2023-12-04 22:48:44 +07:00
Sokna Ly
2c8b559b08 refactor: update statuspages routes and lazy pages 2023-12-04 22:25:42 +07:00
Simon Larsen
541847b5fb Remove commented out code in SideMenu.tsx 2023-12-04 14:45:56 +00:00
Simon Larsen
a5a236e0cb Merge branch 'release' of github.com-simon:OneUptime/oneuptime into release 2023-12-04 14:45:17 +00:00
Simon Larsen
53f3426543 Remove unnecessary padding in SideOver component 2023-12-04 14:44:53 +00:00
Simon Larsen
dedf42ca84 Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-12-04 14:16:56 +00:00
Simon Larsen
2a1c300b04 Add trigger arguments to BaseModelComponent and
OnTriggerBaseModel
2023-12-04 14:16:53 +00:00
Simon Larsen
58cf02b50a Merge pull request #1032 from OneUptime/snyk-upgrade-fcb4d148909cd5a2854fc5b7240d8ca1
[Snyk] Upgrade xmlbuilder2 from 3.0.2 to 3.1.1
2023-12-04 13:43:51 +00:00
Simon Larsen
277180907a Merge pull request #1034 from OneUptime/snyk-upgrade-8813fd872c1a056cf6de811a0cf6d765
[Snyk] Upgrade @types/ejs from 3.1.4 to 3.1.5
2023-12-04 13:43:40 +00:00
Simon Larsen
55924cac1f Remove integration related build and deploy
workflows
2023-12-04 13:05:08 +00:00
Simon Larsen
48d87d61ef fmt fix 2023-12-04 13:02:36 +00:00
Simon Larsen
d5220593dc fix fmt 2023-12-04 12:46:27 +00:00
Simon Larsen
553d2aaea5 Merge branch 'layer-preview' 2023-12-04 12:40:22 +00:00
snyk-bot
52778bdb2d fix: upgrade @types/ejs from 3.1.4 to 3.1.5
Snyk has created this PR to upgrade @types/ejs from 3.1.4 to 3.1.5.

See this package in npm:
https://www.npmjs.com/package/@types/ejs

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5a2fa790-dc76-4e5f-90cc-f4da8ad2caf7?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-03 17:31:35 +00:00
snyk-bot
5b67f517d8 fix: upgrade @types/body-parser from 1.19.4 to 1.19.5
Snyk has created this PR to upgrade @types/body-parser from 1.19.4 to 1.19.5.

See this package in npm:
https://www.npmjs.com/package/@types/body-parser

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5a2fa790-dc76-4e5f-90cc-f4da8ad2caf7?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-03 17:31:32 +00:00
snyk-bot
084b3b4bcc fix: upgrade xmlbuilder2 from 3.0.2 to 3.1.1
Snyk has created this PR to upgrade xmlbuilder2 from 3.0.2 to 3.1.1.

See this package in npm:
https://www.npmjs.com/package/xmlbuilder2

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5a2fa790-dc76-4e5f-90cc-f4da8ad2caf7?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-03 17:31:28 +00:00
Simon Larsen
440c405023 Merge pull request #1031 from OneUptime/snyk-upgrade-7f14cd3d26a4d6cbb9b3e798937d41e9
[Snyk] Upgrade reactflow from 11.9.4 to 11.10.1
2023-12-03 17:24:49 +00:00
Simon Larsen
d3fa233759 Merge pull request #1029 from OneUptime/snyk-upgrade-4439de81fe43cb8862c0298432f53b25
[Snyk] Upgrade @heroicons/react from 2.0.13 to 2.0.18
2023-12-03 17:24:32 +00:00
snyk-bot
863756fa57 fix: upgrade reactflow from 11.9.4 to 11.10.1
Snyk has created this PR to upgrade reactflow from 11.9.4 to 11.10.1.

See this package in npm:
https://www.npmjs.com/package/reactflow

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5dd2ef9c-1270-4729-aff4-e407805f7a9c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-03 17:17:44 +00:00
snyk-bot
cf802c0d4a fix: upgrade @stripe/react-stripe-js from 1.16.1 to 1.16.5
Snyk has created this PR to upgrade @stripe/react-stripe-js from 1.16.1 to 1.16.5.

See this package in npm:
https://www.npmjs.com/package/@stripe/react-stripe-js

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5dd2ef9c-1270-4729-aff4-e407805f7a9c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-03 17:17:40 +00:00
snyk-bot
e7e0ca5172 fix: upgrade @heroicons/react from 2.0.13 to 2.0.18
Snyk has created this PR to upgrade @heroicons/react from 2.0.13 to 2.0.18.

See this package in npm:
https://www.npmjs.com/package/@heroicons/react

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5dd2ef9c-1270-4729-aff4-e407805f7a9c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-03 17:17:36 +00:00
Simon Larsen
9801232a8c Merge pull request #1025 from OneUptime/snyk-upgrade-ae228c91abe943bf5f30641698c015a7
[Snyk] Upgrade node-cron from 3.0.2 to 3.0.3
2023-12-03 17:15:12 +00:00
Simon Larsen
cb4e18b472 Merge pull request #1026 from OneUptime/snyk-upgrade-32522cb26613558894bb22275628e18f
[Snyk] Upgrade @types/ping from 0.4.3 to 0.4.4
2023-12-03 17:14:47 +00:00
Simon Larsen
69d0d1aac3 Merge pull request #1027 from OneUptime/snyk-upgrade-4b1ca73ee243d4d7b54bb359bf94fe85
[Snyk] Upgrade @types/saml2-js from 3.0.1 to 3.0.4
2023-12-03 17:14:40 +00:00
Simon Larsen
8932ebf52d Merge pull request #1028 from OneUptime/snyk-upgrade-472e546493dc3e5c644ff3b458d8b2b9
[Snyk] Upgrade @types/xml2js from 0.4.11 to 0.4.14
2023-12-03 17:14:29 +00:00
snyk-bot
fa21d220ac fix: upgrade @types/xml2js from 0.4.11 to 0.4.14
Snyk has created this PR to upgrade @types/xml2js from 0.4.11 to 0.4.14.

See this package in npm:
https://www.npmjs.com/package/@types/xml2js

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/274dd1b5-2589-4279-bb73-2a2367ad9639?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-03 17:12:25 +00:00
snyk-bot
28204919a0 fix: upgrade @types/saml2-js from 3.0.1 to 3.0.4
Snyk has created this PR to upgrade @types/saml2-js from 3.0.1 to 3.0.4.

See this package in npm:
https://www.npmjs.com/package/@types/saml2-js

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/274dd1b5-2589-4279-bb73-2a2367ad9639?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-03 17:12:21 +00:00
snyk-bot
565da66333 fix: upgrade @types/ping from 0.4.3 to 0.4.4
Snyk has created this PR to upgrade @types/ping from 0.4.3 to 0.4.4.

See this package in npm:
https://www.npmjs.com/package/@types/ping

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/49c81d9c-12c2-4e8e-b9e8-72f98b1b595c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-03 17:11:27 +00:00
snyk-bot
6efb29faa1 fix: upgrade node-cron from 3.0.2 to 3.0.3
Snyk has created this PR to upgrade node-cron from 3.0.2 to 3.0.3.

See this package in npm:
https://www.npmjs.com/package/node-cron

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/49c81d9c-12c2-4e8e-b9e8-72f98b1b595c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-03 17:11:23 +00:00
Sokna Ly
10bef3fff0 Merge branch 'master' into refactor/lazy-load-pages 2023-12-03 23:43:35 +07:00
Simon Larsen
cc47bced8a Refactor LayerUtil to support multi-layer events 2023-12-03 16:39:24 +00:00
Simon Larsen
df4f47ce66 Merge pull request #1024 from soknaly/fix/workflow-crash-manually-run
fix: workflow crash on manually run
2023-12-03 16:19:37 +00:00
Sokna Ly
0c735578f8 fix: workflow crash on manually run 2023-12-03 22:47:00 +07:00
Simon Larsen
8fb7ef1e2b Fix issue with same start and end time in
OnCallDutyPolicy/Layer.ts
2023-12-03 15:45:48 +00:00
Simon Larsen
97a326cb51 Refactor date calculation methods in LayerUtil
class
2023-12-03 15:38:11 +00:00
Simon Larsen
57cc4edcca Fix interval calculation in LayerUtil 2023-12-03 15:36:08 +00:00
Simon Larsen
f3ac74e59b Refactor date handling in OneUptimeDate class and
fix initial value in RestrictionTimesFieldElement
component
2023-12-03 15:20:43 +00:00
Simon Larsen
849c3e560a Fix date and time handling in input components 2023-12-03 14:53:03 +00:00
Simon Larsen
3af8c91d5e Fix checked attribute in BasicRadioButton
component
2023-12-03 13:58:55 +00:00
Simon Larsen
31b9eac7ad Fix range selection in CalendarElement component 2023-12-03 13:45:40 +00:00
Simon Larsen
4b432014f9 Merge pull request #1023 from OneUptime/snyk-upgrade-de2242ad9c35b62dcf48b1a93c9065ae
[Snyk] Upgrade node-cron from 3.0.2 to 3.0.3
2023-12-02 20:21:40 +00:00
snyk-bot
163f3db2ca fix: upgrade node-cron from 3.0.2 to 3.0.3
Snyk has created this PR to upgrade node-cron from 3.0.2 to 3.0.3.

See this package in npm:
https://www.npmjs.com/package/node-cron

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/53798e83-e133-4bf4-bad9-b856237bab63?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-02 19:53:05 +00:00
Simon Larsen
b4fbd01894 Refactor event generation logic in LayerUtil class 2023-12-02 18:42:12 +00:00
Simon Larsen
c8f7c4eef6 Merge pull request #1021 from OneUptime/snyk-upgrade-b2868e431dbf9e5372cc4ff7e0a6d828
[Snyk] Upgrade @types/xml-crypto from 1.4.2 to 1.4.5
2023-12-02 18:33:33 +00:00
Simon Larsen
490d3dd2b3 Merge pull request #1019 from OneUptime/snyk-upgrade-f62991f7815856dd2760a37263155eb1
[Snyk] Upgrade jsrsasign from 10.6.1 to 10.8.6
2023-12-02 18:33:08 +00:00
Simon Larsen
4b0374e134 Merge pull request #1020 from OneUptime/snyk-upgrade-68b0ceb4075387a0877d9d5a3a4a92f6
[Snyk] Upgrade @types/jsrsasign from 10.5.5 to 10.5.12
2023-12-02 18:33:01 +00:00
Simon Larsen
2ce9462c3c Merge pull request #1022 from OneUptime/snyk-upgrade-d1acfa26befdca3b35027a65ec59f4c1
[Snyk] Upgrade @types/xmldom from 0.1.31 to 0.1.34
2023-12-02 18:32:53 +00:00
snyk-bot
801dca9be1 fix: upgrade @types/xmldom from 0.1.31 to 0.1.34
Snyk has created this PR to upgrade @types/xmldom from 0.1.31 to 0.1.34.

See this package in npm:
https://www.npmjs.com/package/@types/xmldom

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/274dd1b5-2589-4279-bb73-2a2367ad9639?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-02 17:35:32 +00:00
snyk-bot
ad6ffb0ba4 fix: upgrade @types/xml-crypto from 1.4.2 to 1.4.5
Snyk has created this PR to upgrade @types/xml-crypto from 1.4.2 to 1.4.5.

See this package in npm:
https://www.npmjs.com/package/@types/xml-crypto

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/274dd1b5-2589-4279-bb73-2a2367ad9639?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-02 17:35:28 +00:00
snyk-bot
5afeb8ecc4 fix: upgrade @types/jsrsasign from 10.5.5 to 10.5.12
Snyk has created this PR to upgrade @types/jsrsasign from 10.5.5 to 10.5.12.

See this package in npm:
https://www.npmjs.com/package/@types/jsrsasign

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/274dd1b5-2589-4279-bb73-2a2367ad9639?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-02 17:35:24 +00:00
snyk-bot
bd29c33c19 fix: upgrade jsrsasign from 10.6.1 to 10.8.6
Snyk has created this PR to upgrade jsrsasign from 10.6.1 to 10.8.6.

See this package in npm:
https://www.npmjs.com/package/jsrsasign

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/274dd1b5-2589-4279-bb73-2a2367ad9639?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-02 17:35:20 +00:00
Simon Larsen
89c484facf Merge pull request #1013 from OneUptime/snyk-fix-204bc415a6fb66e59b12bb3e5757584d
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 21:25:31 +00:00
Simon Larsen
d7ff9ce800 Merge pull request #1018 from OneUptime/snyk-fix-3a9bef7eb066ac6697b483ffd593343f
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 21:25:14 +00:00
Simon Larsen
3c26f4769d Merge pull request #1017 from OneUptime/snyk-fix-9c3495b11d21e645ad6c66b28361cc7b
[Snyk] Security upgrade twilio from 4.19.0 to 4.19.3
2023-12-01 21:25:09 +00:00
Simon Larsen
d609fc94ec Merge pull request #1016 from OneUptime/snyk-fix-7a48c794f8097caa9b776fc1f6fb5948
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 21:25:01 +00:00
Simon Larsen
4da25335b7 Merge pull request #1015 from OneUptime/snyk-fix-a9f7c5e6db4093079f5f7946e6ac39e1
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 21:24:54 +00:00
Simon Larsen
d6c9b48360 Merge pull request #1014 from OneUptime/snyk-fix-5f56733afef2fcf0351a5defbb9a2cc9
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 21:24:48 +00:00
Simon Larsen
4776b0a331 Merge pull request #1012 from OneUptime/snyk-fix-db134ce011556a5dbe40065278716967
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 21:24:37 +00:00
Simon Larsen
b06947c912 Merge pull request #1011 from OneUptime/snyk-fix-dc57777e1175cedbe93438eab0a3ea96
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 21:24:28 +00:00
Simon Larsen
768e54e61b Update dependencies in Chart.lock 2023-12-01 21:21:18 +00:00
Simon Larsen
94b0cd47f9 Remove minio dependency from Helm chart and
related files
2023-12-01 21:20:30 +00:00
Simon Larsen
02e8c54725 Delete unnecessary files and configurations 2023-12-01 21:17:21 +00:00
Simon Larsen
9cc5dc56b1 Fix user index update in LayerUtil 2023-12-01 21:09:09 +00:00
Simon Larsen
4dac24bc8b Fix handoff time issue in LayerUtil 2023-12-01 20:40:21 +00:00
Simon Larsen
32169d4a87 Fix import statement in Calendar component and
handle undefined color in LayerPreview
2023-12-01 20:30:25 +00:00
Simon Larsen
d49d4b79c3 Remove unused import statement 2023-12-01 20:28:01 +00:00
Simon Larsen
622437c6e3 Fix color index calculation and make email field
required in TeamView
2023-12-01 20:13:36 +00:00
snyk-bot
b0d160a227 fix: LinkShortener/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 20:10:03 +00:00
snyk-bot
81254c2234 fix: CommonServer/package.json & CommonServer/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-AXIOS-6032459
2023-12-01 20:07:41 +00:00
snyk-bot
aafa3b15b7 fix: Ingestor/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 20:02:58 +00:00
snyk-bot
70fa8ae9fa fix: AdminDashboard/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 19:57:55 +00:00
snyk-bot
696b6dc87d fix: ApiReference/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 19:51:01 +00:00
snyk-bot
b2ece0f23b fix: Workflow/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 19:49:31 +00:00
snyk-bot
c4a0040f44 fix: Notification/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 19:47:43 +00:00
snyk-bot
3af0e0f182 fix: Accounts/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 19:38:39 +00:00
Simon Larsen
4900978f92 Update brand colors and fix calendar view 2023-12-01 19:33:37 +00:00
Simon Larsen
8c7c61519f Merge pull request #1000 from OneUptime/snyk-fix-927cea7ad7a1e485a2ea22dca9ee6b1c
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 18:53:35 +00:00
Simon Larsen
471259e8a1 Merge pull request #1006 from OneUptime/snyk-fix-99a0a08f0873a365f1d0b3ab5de2c5cf
[Snyk] Security upgrade twilio from 4.19.0 to 4.19.3
2023-12-01 18:53:12 +00:00
Simon Larsen
88ea284d68 Merge pull request #1004 from OneUptime/snyk-fix-e4a15846e3cb6d9f58b5d18e45f868b7
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 18:53:04 +00:00
Simon Larsen
f4482de562 Merge pull request #1002 from OneUptime/snyk-fix-423a1121beaf97b382faa2c8d9dcadd0
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 18:52:57 +00:00
Simon Larsen
a32e5a157b Merge pull request #997 from OneUptime/snyk-fix-a860abc8298edff3a5a3c26b62688bb9
[Snyk] Security upgrade npm from 8.19.4 to 10.2.2
2023-12-01 18:52:48 +00:00
Simon Larsen
7e99352071 Merge pull request #1010 from OneUptime/snyk-fix-2efc3baace7152694f03fa927955b83f
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 18:52:11 +00:00
Simon Larsen
046688598a Merge pull request #1009 from OneUptime/snyk-fix-ff2d1161766d17b63daed07a6dd49aed
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 18:52:03 +00:00
Simon Larsen
0ba3758eb3 Merge pull request #1008 from OneUptime/snyk-fix-14c15f7bec8d61b1dd30a19f11b69cc8
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 18:51:54 +00:00
Simon Larsen
ca29caddb7 Merge pull request #1007 from OneUptime/snyk-fix-67dadd9d8e8733764c69abdfe624ff23
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 18:51:48 +00:00
Simon Larsen
035ad05659 Merge pull request #1005 from OneUptime/snyk-fix-4c0626cd39059fefc6d7c3c11d793178
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 18:51:40 +00:00
Simon Larsen
515e6b1625 Merge pull request #1003 from OneUptime/snyk-fix-f3c0488e191234220c15fb4dbaaeb311
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 18:51:30 +00:00
Simon Larsen
153908e406 Merge pull request #1001 from OneUptime/snyk-fix-498e00bbba9f8f90d0365aeb4e6cc0dd
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 18:51:21 +00:00
Simon Larsen
8fae1b724b Merge pull request #999 from OneUptime/snyk-upgrade-2ad0e48a5dc734dcc1b1643c0a7612db
[Snyk] Upgrade @types/node-cron from 3.0.10 to 3.0.11
2023-12-01 18:51:12 +00:00
Simon Larsen
53e04ddb71 Merge pull request #998 from OneUptime/snyk-fix-9e4ca15a59249e56a2fd36455272c907
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 18:51:05 +00:00
Simon Larsen
d757ed60eb Merge pull request #996 from OneUptime/snyk-fix-c89331e4c2ad7bbb7f1edcddbce83355
[Snyk] Security upgrade node from current-alpine to 21.2-alpine3.18
2023-12-01 18:50:52 +00:00
snyk-bot
0e0365007d fix: Probe/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 18:12:24 +00:00
snyk-bot
c62a511e8f fix: Workers/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 18:10:25 +00:00
snyk-bot
0fe0268df7 fix: Identity/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 18:07:27 +00:00
snyk-bot
e50a5ef1e3 fix: DashboardAPI/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 17:55:23 +00:00
snyk-bot
cdade5994e fix: Notification/package.json & Notification/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-AXIOS-6032459
2023-12-01 17:50:26 +00:00
snyk-bot
74b23054f8 fix: Haraka/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 17:47:22 +00:00
snyk-bot
52eea584c1 fix: TestServer/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 17:46:25 +00:00
snyk-bot
e695ffce09 fix: Integration/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 17:46:23 +00:00
snyk-bot
85c00fa19b fix: StatusPage/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 17:45:23 +00:00
snyk-bot
ec52dc0d70 fix: Home/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 17:38:21 +00:00
snyk-bot
737ee28528 fix: Tests/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 17:36:21 +00:00
snyk-bot
58e1635d68 fix: upgrade @types/node-cron from 3.0.10 to 3.0.11
Snyk has created this PR to upgrade @types/node-cron from 3.0.10 to 3.0.11.

See this package in npm:
https://www.npmjs.com/package/@types/node-cron

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/53798e83-e133-4bf4-bad9-b856237bab63?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-12-01 17:28:29 +00:00
snyk-bot
1443218abc fix: File/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 17:26:21 +00:00
snyk-bot
f9a68300a7 fix: CommonUI/package.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116
2023-12-01 17:13:29 +00:00
snyk-bot
e9208eef5f fix: Dashboard/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6032386
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
- https://snyk.io/vuln/SNYK-ALPINE318-OPENSSL-6055795
2023-12-01 17:12:21 +00:00
Simon Larsen
42ce4028a9 Merge pull request #995 from OneUptime/snyk-fix-2c680b7d17447ce7693e2558d08707a3
[Snyk] Security upgrade saml2-js from 4.0.1 to 4.0.2
2023-12-01 12:57:53 +00:00
snyk-bot
6c08f311fe fix: Identity/package.json & Identity/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-XML2JS-5414874
2023-12-01 12:57:24 +00:00
Simon Larsen
6bc3f302ef Merge pull request #994 from soknaly/fix/sideover-no-scroll
fix: sideover content overflow cannot scroll
2023-12-01 12:50:10 +00:00
Sokna Ly
16e2990a9f fix: sideover content overflow cannot scroll 2023-12-01 10:32:11 +07:00
Simon Larsen
e8d698ebf4 Merge pull request #985 from OneUptime/snyk-fix-7633c6e8b4fc071846f9192deb4605f9
[Snyk] Security upgrade nodemailer-express-handlebars from 5.0.0 to 6.1.0
2023-11-30 20:51:19 +00:00
Simon Larsen
ec71491bcb Merge pull request #986 from OneUptime/snyk-fix-bf2f163ff55c1f4b94c2ebfd4fd3aed6
[Snyk] Security upgrade nodemailer-express-handlebars from 5.0.0 to 6.1.0
2023-11-30 20:51:09 +00:00
Simon Larsen
e5aefc9362 Merge pull request #987 from OneUptime/snyk-upgrade-15c6465ca83ce0eb81569e1b9ae69971
[Snyk] Upgrade @types/compression from 1.7.2 to 1.7.5
2023-11-30 20:51:02 +00:00
Simon Larsen
2373458f94 Merge pull request #988 from OneUptime/snyk-upgrade-3af220b765c5570aa25c00c22eadd9f3
[Snyk] Upgrade @types/try-to-catch from 3.0.0 to 3.0.3
2023-11-30 20:50:53 +00:00
Simon Larsen
406c475da6 Update event title format in LayerPreview
component
2023-11-30 17:53:59 +00:00
snyk-bot
bba9b24f78 fix: upgrade @types/try-to-catch from 3.0.0 to 3.0.3
Snyk has created this PR to upgrade @types/try-to-catch from 3.0.0 to 3.0.3.

See this package in npm:
https://www.npmjs.com/package/@types/try-to-catch

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5a2fa790-dc76-4e5f-90cc-f4da8ad2caf7?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-30 17:53:47 +00:00
snyk-bot
9fcce2cb2c fix: upgrade @types/compression from 1.7.2 to 1.7.5
Snyk has created this PR to upgrade @types/compression from 1.7.2 to 1.7.5.

See this package in npm:
https://www.npmjs.com/package/@types/compression

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5a2fa790-dc76-4e5f-90cc-f4da8ad2caf7?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-30 17:53:43 +00:00
snyk-bot
40d99ccf5b fix: CommonServer/package.json & CommonServer/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116
2023-11-30 17:45:15 +00:00
snyk-bot
9f5b9146d1 fix: Notification/package.json & Notification/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116
2023-11-30 17:39:47 +00:00
Simon Larsen
42caa72bbf Remove unused import and fix code style 2023-11-30 17:29:00 +00:00
Simon Larsen
a8c2999e7c Refactor color handling in BrandColors and Color
classes
2023-11-30 17:26:09 +00:00
Simon Larsen
53882dfeb9 Add date parsing for startDateTimeOfLayer,
calendarStartDate, calendarEndDate, and
handOffTime
2023-11-30 16:52:05 +00:00
Simon Larsen
2b243f2cac Fix bugs and improve functionality 2023-11-30 16:40:07 +00:00
Simon Larsen
2fece456ef Merge pull request #984 from OneUptime/master
Release
2023-11-30 14:57:59 +00:00
Simon Larsen
39848fd071 Fix default calendar view and add start and end
time selection
2023-11-30 14:36:45 +00:00
Simon Larsen
11ee56998f Fix bug in login functionality 2023-11-30 14:23:59 +00:00
Simon Larsen
22cce216fe Fix bug in login functionality 2023-11-30 14:05:01 +00:00
Simon Larsen
3ac00ef54a Fix formatting and remove unnecessary code 2023-11-30 13:59:13 +00:00
Simon Larsen
97e8f2de8e Refactor layer rotation logic and helper functions 2023-11-30 13:57:54 +00:00
Simon Larsen
4a7f5ac910 Add onRangeChange prop to CalendarElement 2023-11-30 13:51:08 +00:00
Simon Larsen
93fae92467 Merge branch 'master' into layer-preview 2023-11-30 12:48:53 +00:00
Simon Larsen
4e749b4c29 Fix side menu in OnCallDuty page 2023-11-30 12:48:11 +00:00
Simon Larsen
24b71c42e6 Merge pull request #982 from OneUptime/layer-preview
Add useState hook to Layer component and pass
2023-11-30 12:46:36 +00:00
Simon Larsen
11daa0b423 Remove commented code for Schedules in SideMenu 2023-11-30 12:46:23 +00:00
Simon Larsen
0028772b30 Fix onSubmitSuccessful parameter in BasicForm
component
2023-11-30 12:44:18 +00:00
Simon Larsen
bb8b66bacc Add support for hand off time and calculate user
index based on hand off time
2023-11-30 12:17:19 +00:00
Simon Larsen
f4f96d2c01 Merge pull request #978 from OneUptime/snyk-upgrade-52fdfdfac839df15942c3c4a11a331ef
[Snyk] Upgrade reactflow from 11.5.3 to 11.9.4
2023-11-30 12:15:15 +00:00
Simon Larsen
81d03790c6 Merge pull request #979 from OneUptime/snyk-upgrade-b97dce923f163472952fd0a3649d90f0
[Snyk] Upgrade @stripe/stripe-js from 1.46.0 to 1.54.2
2023-11-30 12:15:02 +00:00
Simon Larsen
8a3c50371d Merge pull request #980 from OneUptime/snyk-upgrade-2bb09c052a0afd9d317730092765c1f1
[Snyk] Upgrade @headlessui/react from 1.7.7 to 1.7.17
2023-11-30 12:14:54 +00:00
Simon Larsen
cb6a92da40 Merge pull request #981 from OneUptime/snyk-upgrade-72a70fc075806f88061288d86937e8c6
[Snyk] Upgrade react-icons from 4.7.1 to 4.11.0
2023-11-30 12:14:43 +00:00
Simon Larsen
4387d2d981 Refactor date-related functions and add DayOfWeek
enum
2023-11-29 20:20:47 +00:00
Simon Larsen
ebc2f6f56e Add new enum value and update description in
LayerPreview component
2023-11-29 19:36:56 +00:00
snyk-bot
463526deca fix: upgrade react-icons from 4.7.1 to 4.11.0
Snyk has created this PR to upgrade react-icons from 4.7.1 to 4.11.0.

See this package in npm:
https://www.npmjs.com/package/react-icons

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5dd2ef9c-1270-4729-aff4-e407805f7a9c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-29 17:47:41 +00:00
snyk-bot
4d59e9304b fix: upgrade @headlessui/react from 1.7.7 to 1.7.17
Snyk has created this PR to upgrade @headlessui/react from 1.7.7 to 1.7.17.

See this package in npm:
https://www.npmjs.com/package/@headlessui/react

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5dd2ef9c-1270-4729-aff4-e407805f7a9c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-29 17:47:37 +00:00
snyk-bot
60ac93a0da fix: upgrade @stripe/stripe-js from 1.46.0 to 1.54.2
Snyk has created this PR to upgrade @stripe/stripe-js from 1.46.0 to 1.54.2.

See this package in npm:
https://www.npmjs.com/package/@stripe/stripe-js

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5dd2ef9c-1270-4729-aff4-e407805f7a9c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-29 17:47:32 +00:00
snyk-bot
26a1783fc7 fix: upgrade reactflow from 11.5.3 to 11.9.4
Snyk has created this PR to upgrade reactflow from 11.5.3 to 11.9.4.

See this package in npm:
https://www.npmjs.com/package/reactflow

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5dd2ef9c-1270-4729-aff4-e407805f7a9c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-29 17:47:28 +00:00
Simon Larsen
ad4c98a492 Add useState hook to Layer component and pass
layerUsers prop to LayerPreview component
2023-11-29 17:47:28 +00:00
Simon Larsen
3db9acc4b2 Refactor OnCallScheduleLayer component 2023-11-29 17:46:52 +00:00
Simon Larsen
aebb1c85af Commented out the "Schedules" section in the
SideMenu component
2023-11-29 17:34:10 +00:00
Simon Larsen
a942a1415f Fix formatting issues in code 2023-11-29 17:32:28 +00:00
Simon Larsen
aaf3b052b1 Add defaultCalendarView prop to Calendar component 2023-11-29 15:08:37 +00:00
Simon Larsen
878b7a14be Add moment-timezone package and update Calendar
component
2023-11-29 15:01:20 +00:00
Simon Larsen
29078d584b Merge branch 'master' into schedules 2023-11-29 14:11:20 +00:00
Simon Larsen
b9372929de Add miscData parameter to onTrigger method 2023-11-29 13:35:14 +00:00
Simon Larsen
11c732d12b Update dependencies in package.json 2023-11-29 13:14:04 +00:00
Simon Larsen
d46c864c31 Merge pull request #976 from rpaterson/statement
Refactor Analytics SQL generation to use query params
2023-11-29 13:04:55 +00:00
Roy Paterson
6d0e563551 Remove Analytics DB "DeleteOneBy"
ClickHouse does not support setting a LIMIT or OFFSET to an ALTER
TABLE DELETE statement.
2023-11-29 11:48:12 +00:00
Roy Paterson
cb313fc3bd Remove Analytics DB "UpdateOneBy"
ClickHouse does not support setting a LIMIT to an ALTER TABLE UPDATE
statement.
2023-11-29 11:43:09 +00:00
Roy Paterson
d63c66725f Refactor Analytics SQL generation to use query params
SQL is generated using the Statement class which guards
against accidental SQL injection using a special "SQL"
template literal tag.

INSERT functionality is not using the new Statement class
pending resolution of Nested column type functionality.
2023-11-29 11:32:07 +00:00
Simon Larsen
f4c003ec45 Add onListLoaded prop to ModelList and implement
LayerPreview component
2023-11-28 21:35:33 +00:00
Simon Larsen
b4e1530e20 Merge pull request #974 from OneUptime/snyk-upgrade-6cda72abd45959075d00042296e99220
[Snyk] Upgrade markdown-it from 13.0.1 to 13.0.2
2023-11-28 21:12:14 +00:00
Simon Larsen
9b49b72b20 Delete LayerView component 2023-11-28 17:51:23 +00:00
snyk-bot
9480c1e46b fix: upgrade markdown-it from 13.0.1 to 13.0.2
Snyk has created this PR to upgrade markdown-it from 13.0.1 to 13.0.2.

See this package in npm:
https://www.npmjs.com/package/markdown-it

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/53798e83-e133-4bf4-bad9-b856237bab63?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-28 17:37:09 +00:00
Simon Larsen
151fe8c2c9 Fix formatting issues and update descriptions 2023-11-28 17:20:04 +00:00
Simon Larsen
9ac253cbaa Fix input component rendering issue and update
date manipulation functions
2023-11-28 17:00:36 +00:00
Simon Larsen
8514a48c8f Update fromJSON method in RestrictionTimes class 2023-11-28 15:45:02 +00:00
Simon Larsen
656ed8153d Add @types/react-big-calendar package 2023-11-28 15:25:20 +00:00
Simon Larsen
70e6ce7714 Merge pull request #972 from OneUptime/snyk-upgrade-e68619dd8006bdb2a1a05f030c6d4355
[Snyk] Upgrade @types/body-parser from 1.19.2 to 1.19.4
2023-11-28 15:24:33 +00:00
Simon Larsen
7bd1c18be2 Fix radio button ID issue and add spacing to
restriction times field
2023-11-28 15:07:19 +00:00
Simon Larsen
d8876e5000 Add hooks for delete and update operations in
OnCallDutyPolicyScheduleLayerUserService and add
sorting functionality in ModelList component
2023-11-28 14:14:14 +00:00
Simon Larsen
fc503a11ab Add drag and drop functionality to ModelList and
StaticModelList components
2023-11-28 13:59:26 +00:00
Simon Larsen
753603ff97 Update descriptions and add IDs to ModelList
components
2023-11-28 13:47:11 +00:00
Simon Larsen
6c998fd661 Add profilePictureId to LayerUser query 2023-11-27 18:55:42 +00:00
Simon Larsen
8e4dbc7137 Add customElement prop to ModelList and
StaticModelList components
2023-11-27 18:46:34 +00:00
Simon Larsen
c58a29bf44 Update layer basic info and user form props 2023-11-27 18:40:56 +00:00
Simon Larsen
4c07a9edd1 Refactor code formatting and fix minor issues 2023-11-27 18:26:06 +00:00
Simon Larsen
b847b93268 Merge branch 'master' into schedules 2023-11-27 18:21:09 +00:00
Simon Larsen
4dd2705fc4 Update Input component types 2023-11-27 18:20:59 +00:00
Simon Larsen
39d6c4db09 Fix radio button group bug and update descriptions 2023-11-27 18:15:10 +00:00
snyk-bot
2404c34ab7 fix: upgrade @types/body-parser from 1.19.2 to 1.19.4
Snyk has created this PR to upgrade @types/body-parser from 1.19.2 to 1.19.4.

See this package in npm:
https://www.npmjs.com/package/@types/body-parser

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5a2fa790-dc76-4e5f-90cc-f4da8ad2caf7?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-27 17:14:35 +00:00
Simon Larsen
2c8b54f1ea Update SideMenu component 2023-11-27 16:52:13 +00:00
Simon Larsen
10f6285d42 Merge pull request #947 from OneUptime/schedules
On Call Schedules
2023-11-27 16:22:14 +00:00
Simon Larsen
fd5d47a60c Commented out the "Schedules" section in the
SideMenu component
2023-11-27 16:21:51 +00:00
Simon Larsen
df8c521dc3 Fix date input type in LogsFilters component 2023-11-27 16:20:25 +00:00
Simon Larsen
a1e519c318 Update Input component types 2023-11-27 16:12:20 +00:00
Simon Larsen
ff9e576b27 Refactor dropdown and radio button components 2023-11-27 14:29:23 +00:00
Simon Larsen
8629985a1a Fix radio button error and dropdown type issue 2023-11-27 14:11:04 +00:00
Simon Larsen
ae8944d949 Fix formatting issues and update imports 2023-11-27 13:59:59 +00:00
Simon Larsen
22690ad164 Merge pull request #971 from jinvillaz/unit-test
Add unit test for CommonServer and CommonUi
2023-11-27 08:52:09 +00:00
Simon Larsen
9c8ad1e2b2 Merge pull request #970 from OneUptime/snyk-upgrade-0a8275a9c010aea9d68fb7442dcfa9c7
[Snyk] Upgrade @types/body-parser from 1.19.2 to 1.19.4
2023-11-27 08:48:31 +00:00
Jhonatan Villanueva
5df20b858e Add unit test for CommonServer and CommonUi 2023-11-26 15:08:47 -04:00
snyk-bot
f25f960f69 fix: upgrade @types/body-parser from 1.19.2 to 1.19.4
Snyk has created this PR to upgrade @types/body-parser from 1.19.2 to 1.19.4.

See this package in npm:
https://www.npmjs.com/package/@types/body-parser

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/102b46c1-e36e-406c-acd1-31c8200a6c5f?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-26 17:18:05 +00:00
Simon Larsen
ddfdfed58b Merge pull request #968 from OneUptime/simlarsen-patch-1
Create MAINTAINERS
2023-11-26 16:06:54 +00:00
Simon Larsen
5cde6b4815 Create MAINTAINERS 2023-11-26 16:06:45 +00:00
Simon Larsen
db2ff63951 Merge pull request #967 from OneUptime/simlarsen-patch-1
Create code-of-conduct.md
2023-11-26 16:02:52 +00:00
Simon Larsen
19f22b6d1b Create code-of-conduct.md 2023-11-26 16:02:42 +00:00
Simon Larsen
913d487810 Add LayerRestrictionTimes component to Layer.tsx 2023-11-26 15:52:05 +00:00
Simon Larsen
9d771b370f Fix weekly restriction function call 2023-11-26 15:45:48 +00:00
Simon Larsen
ae5e705418 Add new methods and fix formatting in DropdownUtil
and OneUptimeDate classes
2023-11-26 15:44:06 +00:00
Simon Larsen
887cb7c1d9 Update import paths for RadioButtons component 2023-11-26 14:30:55 +00:00
Simon Larsen
4e28436838 Remove renovate.json configuration file 2023-11-26 14:16:11 +00:00
Simon Larsen
a00cc6d7e9 Add new form field schema type and update layer
component
2023-11-26 14:15:09 +00:00
Simon Larsen
e146d56f50 Add ArrowUpDown icon to IconProp enum and use it
in TableRow component
2023-11-26 13:19:40 +00:00
Simon Larsen
692fb99baf Merge pull request #964 from soknaly/fix/dropdown-style
fix: Update Dropdown (react-select) style
2023-11-26 11:54:20 +00:00
Simon Larsen
be541c93bb Merge pull request #965 from OneUptime/snyk-upgrade-081a4faa9f93f32a892bedbe6d5a4783
[Snyk] Upgrade ejs from 3.1.8 to 3.1.9
2023-11-25 23:00:22 +00:00
Simon Larsen
95f20eae7c Merge pull request #966 from OneUptime/snyk-upgrade-242e24614fd3734f278c8f6a56289c81
[Snyk] Upgrade @types/node-cron from 3.0.6 to 3.0.10
2023-11-25 23:00:12 +00:00
snyk-bot
baf99f104f fix: upgrade @types/node-cron from 3.0.6 to 3.0.10
Snyk has created this PR to upgrade @types/node-cron from 3.0.6 to 3.0.10.

See this package in npm:
https://www.npmjs.com/package/@types/node-cron

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/53798e83-e133-4bf4-bad9-b856237bab63?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-25 17:48:45 +00:00
snyk-bot
678bda8b37 fix: upgrade ejs from 3.1.8 to 3.1.9
Snyk has created this PR to upgrade ejs from 3.1.8 to 3.1.9.

See this package in npm:
https://www.npmjs.com/package/ejs

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/e4400ce8-cee4-4844-a869-b529560ade37?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-25 17:44:22 +00:00
Sokna Ly
48def92f92 fix: Update Dropdown (react-select) style 2023-11-25 23:19:00 +07:00
Simon Larsen
ed5313b87d Merge pull request #958 from OneUptime/snyk-upgrade-716502480db450357812e381b5ef0273
[Snyk] Upgrade @fortawesome/react-fontawesome from 0.1.19 to 0.2.0
2023-11-25 11:54:04 +00:00
Simon Larsen
bdc62bb72b Merge pull request #960 from OneUptime/snyk-upgrade-512b83fc2e572886ea70dea87295a657
[Snyk] Upgrade react-router-dom from 6.5.0 to 6.18.0
2023-11-25 11:53:51 +00:00
Sokna Ly
0e18d7ee5e chore: add or empty to env host 2023-11-25 15:30:37 +07:00
Sokna Ly
7b173cfc16 fix: linting and revert unnecessary chagne 2023-11-25 15:27:46 +07:00
Sokna Ly
4e98bd9e3a refactor: implement lazy load and separate routes for dashboard, monitors, telemetry pages 2023-11-25 15:10:19 +07:00
snyk-bot
da036921b4 fix: upgrade react-router-dom from 6.5.0 to 6.18.0
Snyk has created this PR to upgrade react-router-dom from 6.5.0 to 6.18.0.

See this package in npm:
https://www.npmjs.com/package/react-router-dom

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5dd2ef9c-1270-4729-aff4-e407805f7a9c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-24 19:41:20 +00:00
Simon Larsen
d67d245379 Merge pull request #959 from OneUptime/snyk-upgrade-fe23e36b867c6b594b502626a19ea469
[Snyk] Upgrade @types/ejs from 3.1.1 to 3.1.4
2023-11-24 18:21:21 +00:00
snyk-bot
2b56184cad fix: upgrade @types/ejs from 3.1.1 to 3.1.4
Snyk has created this PR to upgrade @types/ejs from 3.1.1 to 3.1.4.

See this package in npm:
https://www.npmjs.com/package/@types/ejs

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/102b46c1-e36e-406c-acd1-31c8200a6c5f?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-24 17:55:32 +00:00
snyk-bot
efe0bccd65 fix: upgrade @fortawesome/react-fontawesome from 0.1.19 to 0.2.0
Snyk has created this PR to upgrade @fortawesome/react-fontawesome from 0.1.19 to 0.2.0.

See this package in npm:
https://www.npmjs.com/package/@fortawesome/react-fontawesome

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/47001ef1-7b3a-49c2-88cd-8025c56346d0?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-24 17:34:31 +00:00
Simon Larsen
d7b200e2f7 Merge pull request #957 from OneUptime/snyk-upgrade-206f2ef9fc2402c71cb73404031a1101
[Snyk] Upgrade typeorm from 0.3.14 to 0.3.17
2023-11-24 17:31:41 +00:00
snyk-bot
d1a3b2b852 fix: upgrade typeorm from 0.3.14 to 0.3.17
Snyk has created this PR to upgrade typeorm from 0.3.14 to 0.3.17.

See this package in npm:
https://www.npmjs.com/package/typeorm

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/95df775c-d36f-4060-828c-d0ddc8c9f28e?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-24 17:28:37 +00:00
Simon Larsen
db2dbfcac7 Remove unnecessary line in Field interface 2023-11-24 16:09:58 +00:00
Simon Larsen
a6d9c6493a Merge pull request #954 from rpaterson/sql-escape
Escape Analytics Database SQL
2023-11-24 14:02:10 +00:00
Simon Larsen
a067e85283 Add On Call Duty Policy Schedule services and
models
2023-11-24 12:57:54 +00:00
Simon Larsen
e9feb06864 Add new API routes for OnCallDutyPolicySchedule
and OnCallDutyPolicyScheduleLayerUser
2023-11-24 12:53:01 +00:00
Simon Larsen
9c4799ff30 Refactor StatusBubble component to use props.color
for background color
2023-11-24 12:39:43 +00:00
Simon Larsen
88c4b75c45 Fix On-Call Duty route and remove unnecessary code 2023-11-24 12:25:37 +00:00
Simon Larsen
3d46de7fb6 Merge branch 'master' into schedules 2023-11-24 12:17:44 +00:00
Simon Larsen
c82f40443b Fix teamId assignment in TeamMemberService 2023-11-24 12:16:23 +00:00
Simon Larsen
ca32b8fa1d Fix on-call duty page titles 2023-11-24 12:11:36 +00:00
Simon Larsen
8ad344f1f9 Merge pull request #889 from fedealconada/team-member-service-coverage
test: add coverage for TeamMemberService.ts
2023-11-24 12:11:25 +00:00
Roy Paterson
407abd4146 Add crudApiPath to test 2023-11-24 11:58:15 +00:00
Roy Paterson
fdc7887e48 Escape values to prevent SQL injection 2023-11-24 11:36:49 +00:00
Roy Paterson
59cd7afcc5 Add Tests for StatementGenerator.toSetStatement() 2023-11-24 11:36:49 +00:00
Roy Paterson
0070aa7ee7 Increase database test timeout to 10 seconds
Setting up the database is slow.
2023-11-24 11:36:49 +00:00
Simon Larsen
e39474bc23 Merge pull request #952 from OneUptime/snyk-upgrade-2be86f202576cc54f75a2d7029cbe161
[Snyk] Upgrade airtable from 0.11.6 to 0.12.2
2023-11-23 22:31:09 +00:00
Simon Larsen
cb834adc6c Merge pull request #953 from OneUptime/snyk-upgrade-a5e521eabb7f562ab94e9c456514dff6
[Snyk] Upgrade @types/ejs from 3.1.1 to 3.1.4
2023-11-23 21:45:37 +00:00
snyk-bot
434573e770 fix: upgrade @types/ejs from 3.1.1 to 3.1.4
Snyk has created this PR to upgrade @types/ejs from 3.1.1 to 3.1.4.

See this package in npm:
https://www.npmjs.com/package/@types/ejs

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/5a2fa790-dc76-4e5f-90cc-f4da8ad2caf7?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-23 19:59:25 +00:00
snyk-bot
96fced64cf fix: upgrade airtable from 0.11.6 to 0.12.2
Snyk has created this PR to upgrade airtable from 0.11.6 to 0.12.2.

See this package in npm:
https://www.npmjs.com/package/airtable

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/a2fb4fe1-f25f-4ff9-a58c-e78277b0a7fa?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-23 19:59:05 +00:00
Simon Larsen
b12e8ad489 Fix enum syntax error and import missing module 2023-11-23 19:47:58 +00:00
Simon Larsen
33f567570c Merge branch 'master' into schedules 2023-11-23 19:18:54 +00:00
Simon Larsen
015350acb2 Merge pull request #939 from OneUptime/snyk-upgrade-1e8b2e5347b891af2fdff850e86d61b0
[Snyk] Upgrade @types/nodemailer from 6.4.6 to 6.4.13
2023-11-23 19:15:21 +00:00
Simon Larsen
9f52526e5a Merge branch 'master' into snyk-upgrade-1e8b2e5347b891af2fdff850e86d61b0 2023-11-23 19:15:07 +00:00
Simon Larsen
d41b9c4fc1 Merge pull request #945 from OneUptime/snyk-upgrade-7629a880e641d806cc633739d13088f4
[Snyk] Upgrade react-icons from 4.7.1 to 4.11.0
2023-11-23 19:12:49 +00:00
Simon Larsen
9a587623bf Merge pull request #943 from OneUptime/snyk-upgrade-999a26ac2112c160c090c315e5e05b74
[Snyk] Upgrade ejs from 3.1.8 to 3.1.9
2023-11-23 19:12:17 +00:00
Simon Larsen
70136546be Merge pull request #944 from OneUptime/snyk-upgrade-e6e436e0ef8ab8279ef89eae14c51482
[Snyk] Upgrade react-router-dom from 6.4.5 to 6.18.0
2023-11-23 19:12:06 +00:00
Simon Larsen
d683f26ca7 Merge pull request #946 from OneUptime/snyk-upgrade-3fac855f902dda7a149301067eb92036
[Snyk] Upgrade cron-parser from 4.8.1 to 4.9.0
2023-11-23 19:11:50 +00:00
Simon Larsen
830ddd04f8 Add Calendar icon to Icon component 2023-11-23 19:10:51 +00:00
snyk-bot
2e429a14d2 fix: upgrade cron-parser from 4.8.1 to 4.9.0
Snyk has created this PR to upgrade cron-parser from 4.8.1 to 4.9.0.

See this package in npm:
https://www.npmjs.com/package/cron-parser

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/89d21457-97ad-4d10-9b37-253f0b4cc388?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-23 17:37:26 +00:00
snyk-bot
ed21325f5b fix: upgrade react-icons from 4.7.1 to 4.11.0
Snyk has created this PR to upgrade react-icons from 4.7.1 to 4.11.0.

See this package in npm:
https://www.npmjs.com/package/react-icons

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/11bb5528-45f9-473c-a635-dc097fd03b3c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-23 17:32:01 +00:00
snyk-bot
372d6b5d3a fix: upgrade react-router-dom from 6.4.5 to 6.18.0
Snyk has created this PR to upgrade react-router-dom from 6.4.5 to 6.18.0.

See this package in npm:
https://www.npmjs.com/package/react-router-dom

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/11bb5528-45f9-473c-a635-dc097fd03b3c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-23 17:31:57 +00:00
snyk-bot
ee2188d75a fix: upgrade ejs from 3.1.8 to 3.1.9
Snyk has created this PR to upgrade ejs from 3.1.8 to 3.1.9.

See this package in npm:
https://www.npmjs.com/package/ejs

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/0177f54a-1932-4698-9bc3-69701ae8a756?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-23 17:27:20 +00:00
Simon Larsen
79db7d5702 Merge pull request #942 from OneUptime/snyk-upgrade-44d9690d3afab96d85153f5464d227d9
[Snyk] Upgrade cron-parser from 4.8.1 to 4.9.0
2023-11-22 22:13:52 +00:00
Simon Larsen
5705f413cb Merge pull request #941 from OneUptime/snyk-upgrade-10fe9e968efecdbd27d8b7db0d899da4
[Snyk] Upgrade jest from 29.5.0 to 29.7.0
2023-11-22 22:13:34 +00:00
snyk-bot
f37601d923 fix: upgrade cron-parser from 4.8.1 to 4.9.0
Snyk has created this PR to upgrade cron-parser from 4.8.1 to 4.9.0.

See this package in npm:
https://www.npmjs.com/package/cron-parser

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/b8f33af6-6e95-4b8d-be69-ae879ce7ba92?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-22 20:06:29 +00:00
snyk-bot
2c705aca77 fix: upgrade jest from 29.5.0 to 29.7.0
Snyk has created this PR to upgrade jest from 29.5.0 to 29.7.0.

See this package in npm:
https://www.npmjs.com/package/jest

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/e80ba7ae-9a47-403b-93f0-65ae60216925?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-22 20:00:00 +00:00
Simon Larsen
ee9767eecc Merge pull request #936 from OneUptime/snyk-upgrade-d29661c67137394caaafd3564c878f78
[Snyk] Upgrade ejs from 3.1.8 to 3.1.9
2023-11-22 19:28:37 +00:00
Simon Larsen
39b0d6e7b6 Merge pull request #937 from OneUptime/snyk-upgrade-3765fb5997db5ec0013131e4ab84f78c
[Snyk] Upgrade @types/ping from 0.4.1 to 0.4.3
2023-11-22 19:28:19 +00:00
Simon Larsen
e45ec0bf74 Merge pull request #938 from OneUptime/snyk-upgrade-853239b17591925d7b149ac60221a380
[Snyk] Upgrade nodemailer from 6.8.0 to 6.9.7
2023-11-22 19:28:08 +00:00
Simon Larsen
2f05ccdfc7 Merge pull request #940 from OneUptime/snyk-upgrade-b234b3b5cb802c6fd4fb58accb3e03ff
[Snyk] Upgrade @types/nodemailer-express-handlebars from 4.0.2 to 4.0.4
2023-11-22 19:27:37 +00:00
Simon Larsen
e1a0cd90e4 Refactor online check in monitor classes 2023-11-22 19:27:01 +00:00
Simon Larsen
ca52106c23 Add SSL certificate check function 2023-11-22 17:32:58 +00:00
snyk-bot
d6932ee3fc fix: upgrade @types/nodemailer-express-handlebars from 4.0.2 to 4.0.4
Snyk has created this PR to upgrade @types/nodemailer-express-handlebars from 4.0.2 to 4.0.4.

See this package in npm:
https://www.npmjs.com/package/@types/nodemailer-express-handlebars

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/0177f54a-1932-4698-9bc3-69701ae8a756?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-22 17:27:40 +00:00
snyk-bot
62f1ac8945 fix: upgrade @types/nodemailer from 6.4.6 to 6.4.13
Snyk has created this PR to upgrade @types/nodemailer from 6.4.6 to 6.4.13.

See this package in npm:
https://www.npmjs.com/package/@types/nodemailer

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/0177f54a-1932-4698-9bc3-69701ae8a756?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-22 17:27:37 +00:00
snyk-bot
668c6bf858 fix: upgrade nodemailer from 6.8.0 to 6.9.7
Snyk has created this PR to upgrade nodemailer from 6.8.0 to 6.9.7.

See this package in npm:
https://www.npmjs.com/package/nodemailer

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/0177f54a-1932-4698-9bc3-69701ae8a756?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-22 17:27:32 +00:00
snyk-bot
69e045d581 fix: upgrade @types/ping from 0.4.1 to 0.4.3
Snyk has created this PR to upgrade @types/ping from 0.4.1 to 0.4.3.

See this package in npm:
https://www.npmjs.com/package/@types/ping

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/49c81d9c-12c2-4e8e-b9e8-72f98b1b595c?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-22 17:19:13 +00:00
snyk-bot
0faeeed8b5 fix: upgrade ejs from 3.1.8 to 3.1.9
Snyk has created this PR to upgrade ejs from 3.1.8 to 3.1.9.

See this package in npm:
https://www.npmjs.com/package/ejs

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/cf2b4795-8742-46cb-8289-f13aadd23bcc?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-22 17:17:06 +00:00
Simon Larsen
031fe5425c Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-11-22 16:42:52 +00:00
Simon Larsen
61d3604a9d Fix formatting issues in MonitorType.ts,
MonitorCriteriaInstance.ts, ApiMonitor.ts,
CriteriaFilter.tsx, MonitorStep.tsx,
MonitorService.ts, WebsiteMonitor.ts, and
PingMonitor.ts
2023-11-22 16:40:19 +00:00
Simon Larsen
b375e8341d Fix error handling and add timeout functionality
in PortMonitor
2023-11-22 16:37:37 +00:00
Simon Larsen
6c1c446f06 Merge pull request #935 from soknaly/fix-duplicate-api-call-model-form
fix: duplicate api call in ModelForm
2023-11-22 16:26:38 +00:00
Simon Larsen
fd3694b93f Refactor monitor classes to handle retry count 2023-11-22 16:25:38 +00:00
Simon Larsen
261db0c748 Update runs-on value in test.probe.yaml 2023-11-22 16:16:57 +00:00
Simon Larsen
ad8ebf43de Add support for Port monitoring 2023-11-22 16:11:00 +00:00
Simon Larsen
fb24b39f27 Add new monitor type and update input type 2023-11-22 16:08:02 +00:00
Simon Larsen
753141e524 Add MonitorType Port and update MonitorStep
component
2023-11-22 16:02:31 +00:00
Sokna Ly
28906a3c09 Fix duplicate api call in ModelForm 2023-11-22 22:27:35 +07:00
Simon Larsen
81a39951fb Change runs-on to self-hosted in test job 2023-11-22 13:49:26 +00:00
Simon Larsen
7584bfd26c Update hostname in PingMonitor test 2023-11-22 12:13:19 +00:00
Simon Larsen
eff654c117 Update ping test URLs and IP address 2023-11-22 11:57:12 +00:00
Simon Larsen
eb144ca195 Refactor Step and HeaderAlert components 2023-11-22 11:54:03 +00:00
Simon Larsen
eb04399147 Refactor component function signatures 2023-11-22 11:52:08 +00:00
Simon Larsen
5c6efc0f8e Update React version in package.json 2023-11-22 11:50:57 +00:00
Simon Larsen
986bc78df6 Fix bug in login functionality 2023-11-22 11:25:39 +00:00
Simon Larsen
727f923dbb Add clear-modules script to package.json files 2023-11-22 11:13:15 +00:00
Simon Larsen
c7622bb7f3 Fix bug in login functionality 2023-11-22 11:08:06 +00:00
Simon Larsen
86a25a456a Merge branch 'ts-upgrade' 2023-11-22 10:59:13 +00:00
Simon Larsen
7f93e953ee Update Jest configurations for test coverage 2023-11-22 10:55:09 +00:00
Simon Larsen
2bc92729e5 Update React Router version in package.json 2023-11-22 10:42:28 +00:00
Simon Larsen
cd4a139a3c Update TypeScript version to 5.3.2 2023-11-22 10:33:39 +00:00
Simon Larsen
eefccf6110 Merge pull request #930 from OneUptime/snyk-upgrade-1f3f4ba368583e0b1358ce0c1711880c
[Snyk] Upgrade typeorm from 0.3.14 to 0.3.17
2023-11-21 21:15:55 +00:00
Simon Larsen
920352ac97 Merge pull request #932 from OneUptime/snyk-upgrade-b16ef9d4021ec0f091b1c3daf6896f55
[Snyk] Upgrade the-new-css-reset from 1.7.3 to 1.11.1
2023-11-21 21:15:14 +00:00
Simon Larsen
8fc4f61ffe Merge pull request #931 from OneUptime/snyk-upgrade-c21ec3c979b5f5cf7afa8f0763392d95
[Snyk] Upgrade @types/lodash from 4.14.182 to 4.14.200
2023-11-21 21:14:41 +00:00
Simon Larsen
1ec06ac333 Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-11-21 20:49:27 +00:00
Simon Larsen
8d9ec445b7 remove realtime docker build 2023-11-21 20:49:24 +00:00
snyk-bot
0e934ed3e5 fix: upgrade the-new-css-reset from 1.7.3 to 1.11.1
Snyk has created this PR to upgrade the-new-css-reset from 1.7.3 to 1.11.1.

See this package in npm:
https://www.npmjs.com/package/the-new-css-reset

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/c3622982-05c8-495c-809c-20f301c75f92?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-21 19:14:49 +00:00
snyk-bot
ad6f59013e fix: upgrade @types/lodash from 4.14.182 to 4.14.200
Snyk has created this PR to upgrade @types/lodash from 4.14.182 to 4.14.200.

See this package in npm:
https://www.npmjs.com/package/@types/lodash

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/c3622982-05c8-495c-809c-20f301c75f92?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-21 19:14:45 +00:00
snyk-bot
6fed662391 fix: upgrade typeorm from 0.3.14 to 0.3.17
Snyk has created this PR to upgrade typeorm from 0.3.14 to 0.3.17.

See this package in npm:
https://www.npmjs.com/package/typeorm

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/c3622982-05c8-495c-809c-20f301c75f92?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-21 19:14:41 +00:00
Simon Larsen
6a9704ba79 Merge pull request #925 from OneUptime/snyk-upgrade-ea7c92df7e1a0d96b31d4010e1ce3fa8
[Snyk] Upgrade formik from 2.2.9 to 2.4.5
2023-11-21 18:19:37 +00:00
Simon Larsen
4c66d4c97e Merge pull request #924 from OneUptime/snyk-upgrade-eb045c7858a7c0be001826618e61a91c
[Snyk] Upgrade the-new-css-reset from 1.7.3 to 1.11.1
2023-11-21 18:19:10 +00:00
Simon Larsen
2f5c19ecb5 Merge pull request #928 from OneUptime/snyk-upgrade-1d14a8c213e14afa5aeef487f9eb5045
[Snyk] Upgrade twilio from 4.11.2 to 4.19.0
2023-11-21 18:18:26 +00:00
Simon Larsen
80b2474b03 Add option to disable monitor when duplicating 2023-11-21 18:10:28 +00:00
Simon Larsen
0fe31f5371 Fix probe status rendering issue 2023-11-21 18:04:41 +00:00
Simon Larsen
f7cd616540 Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-11-21 18:02:45 +00:00
Simon Larsen
dfda71d779 Add Probe Status Element to Monitor and Settings
Pages
2023-11-21 18:02:39 +00:00
snyk-bot
f6dc0d9214 fix: upgrade twilio from 4.11.2 to 4.19.0
Snyk has created this PR to upgrade twilio from 4.11.2 to 4.19.0.

See this package in npm:
https://www.npmjs.com/package/twilio

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/0177f54a-1932-4698-9bc3-69701ae8a756?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-21 17:52:34 +00:00
Simon Larsen
200dd1d98d Merge pull request #922 from OneUptime/snyk-upgrade-d25901fbcbaaf02ff24c2f45cd7adba5
[Snyk] Upgrade react-router-dom from 6.4.5 to 6.18.0
2023-11-21 17:51:09 +00:00
Simon Larsen
640ce525c5 Update Probe npm install and test commands 2023-11-21 17:50:09 +00:00
snyk-bot
6a6780058c fix: upgrade formik from 2.2.9 to 2.4.5
Snyk has created this PR to upgrade formik from 2.2.9 to 2.4.5.

See this package in npm:
https://www.npmjs.com/package/formik

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/40b17bc5-1bd4-48b1-88f1-5b4dc1400e80?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-21 17:14:11 +00:00
snyk-bot
2f167bd7aa fix: upgrade the-new-css-reset from 1.7.3 to 1.11.1
Snyk has created this PR to upgrade the-new-css-reset from 1.7.3 to 1.11.1.

See this package in npm:
https://www.npmjs.com/package/the-new-css-reset

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/40b17bc5-1bd4-48b1-88f1-5b4dc1400e80?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-21 17:14:07 +00:00
snyk-bot
cbbc3c79d0 fix: upgrade react-router-dom from 6.4.5 to 6.18.0
Snyk has created this PR to upgrade react-router-dom from 6.4.5 to 6.18.0.

See this package in npm:
https://www.npmjs.com/package/react-router-dom

See this project in Snyk:
https://app.snyk.io/org/oneuptime-RsC2nshvQ2Vnr35jHvMnMP/project/40b17bc5-1bd4-48b1-88f1-5b4dc1400e80?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-21 17:13:56 +00:00
Simon Larsen
14dceebc9a Update dependencies and fix tests 2023-11-21 16:34:10 +00:00
Simon Larsen
2fbe8294eb Update Jest configuration and API test file 2023-11-21 14:33:05 +00:00
Simon Larsen
3a57253720 remove realtime jobs 2023-11-21 14:19:12 +00:00
Simon Larsen
c554627ab2 Fix formatting issues in code 2023-11-21 13:23:22 +00:00
Simon Larsen
a9a0466e49 Update axios version in package-lock.json 2023-11-21 13:18:23 +00:00
Simon Larsen
126927350d Commented out unused code and imports 2023-11-21 13:16:38 +00:00
Simon Larsen
a5f2f4e338 Merge branch 'telemetry' 2023-11-21 13:15:53 +00:00
Simon Larsen
b276e6dfc4 Update axios version to 1.6.2 2023-11-21 13:15:39 +00:00
Simon Larsen
9f7f5d7a50 Add postedAt field to IncidentPublicNote and
ScheduledMaintenancePublicNote models
2023-11-21 13:13:02 +00:00
Simon Larsen
c6981cc130 Fix formatting and indentation issues in
StatusPageAPI and StatusPageSettings
2023-11-21 12:39:46 +00:00
Simon Larsen
cf0a76ce71 Add hidePoweredByOneUptimeBranding feature 2023-11-21 12:35:43 +00:00
Simon Larsen
5ce3a5d876 fix haraka docker 2023-11-21 12:14:24 +00:00
Simon Larsen
b8b79e0d73 Update coverage reporters in jest.config.json 2023-11-21 12:10:26 +00:00
Simon Larsen
aa38ebf8ba Update typeRoots in tsconfig.json files 2023-11-21 12:09:33 +00:00
Simon Larsen
e1d34054ab fix lock 2023-11-21 12:03:44 +00:00
Simon Larsen
c22606d93c Add SQL as a CodeType and fix Dropdown overflow
issue
2023-11-21 11:45:23 +00:00
Simon Larsen
8c7aab22f1 Merge pull request #911 from OneUptime/renovate/postgresql-12.x
chore(deps): update helm release postgresql to v12.12.10
2023-11-21 08:30:27 +00:00
renovate[bot]
45cbe8e357 chore(deps): update helm release postgresql to v12.12.10 2023-11-21 06:58:44 +00:00
Simon Larsen
74f797948e Merge pull request #906 from OneUptime/renovate/depcheck-1.x-lockfile
chore(deps): update dependency depcheck to v1.4.7
2023-11-20 22:10:52 +00:00
renovate[bot]
9cb3cf0d04 chore(deps): update dependency depcheck to v1.4.7 2023-11-20 22:09:29 +00:00
Simon Larsen
35a85a35a4 Merge pull request #903 from OneUptime/renovate/babel-eslint-replacement
chore(deps): replace dependency babel-eslint with @babel/eslint-parser ^7.11.0
2023-11-20 22:07:06 +00:00
Simon Larsen
6f0b7a2145 Merge pull request #904 from OneUptime/renovate/node-16.x-lockfile
chore(deps): update dependency @types/node to v16.18.62
2023-11-20 21:50:52 +00:00
renovate[bot]
e5ee57e234 chore(deps): update dependency @types/node to v16.18.62 2023-11-20 21:40:48 +00:00
renovate[bot]
2b186d8a2a chore(deps): replace dependency babel-eslint with @babel/eslint-parser ^7.11.0 2023-11-20 21:38:23 +00:00
Simon Larsen
0a711dbcfd Merge pull request #902 from OneUptime/snyk-fix-cac0a811fbf081e8c39adb9edee45ab8
[Snyk] Security upgrade node from 18.13.0-alpine to 18.18.1-alpine
2023-11-20 21:37:23 +00:00
snyk-bot
d26b348f0d fix: Tests/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-3314647
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-3326683
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-5741793
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-5843454
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-5848038
2023-11-20 20:36:37 +00:00
Simon Larsen
7ea8479779 Merge pull request #901 from OneUptime/renovate/npm-axios-vulnerability
fix(deps): update dependency axios to v1.6.0 [security]
2023-11-20 20:16:23 +00:00
renovate[bot]
72d2297a02 fix(deps): update dependency axios to v1.6.0 [security] 2023-11-20 20:10:36 +00:00
Simon Larsen
fae8968dde Merge pull request #899 from OneUptime/simlarsen-patch-1
Create renovate.json
2023-11-20 20:08:30 +00:00
Simon Larsen
b9a10ebcad Create renovate.json 2023-11-20 20:08:21 +00:00
Simon Larsen
5a7c706829 Merge pull request #898 from OneUptime/snyk-fix-0aaed0cf00f945f9022cc5d8720c4f32
[Snyk] Security upgrade node from 18.13.0-alpine to 18.18.1-alpine
2023-11-20 19:53:14 +00:00
snyk-bot
adf7432663 fix: Haraka/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-3314647
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-6032385
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-3326683
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-5741793
- https://snyk.io/vuln/SNYK-UPSTREAM-NODE-5843454
2023-11-20 19:52:58 +00:00
Simon Larsen
2409e0fea8 Merge pull request #897 from OneUptime/snyk-fix-13ca70246dc97f612c5350fe03df784b
[Snyk] Security upgrade crypto-js from 4.1.1 to 4.2.0
2023-11-20 19:52:06 +00:00
snyk-bot
f0fb3fabd0 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-CRYPTOJS-6028119
2023-11-20 19:49:55 +00:00
Simon Larsen
340afdecc8 Merge pull request #896 from OneUptime/snyk-fix-b17ab3044788224d222d9dff8822f36a
[Snyk] Security upgrade axios from 1.3.3 to 1.6.0
2023-11-20 19:30:47 +00:00
snyk-bot
c7b5a544ee fix: Workflow/package.json & Workflow/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-AXIOS-6032459
2023-11-20 19:29:40 +00:00
Simon Larsen
8d131b28bf Merge pull request #895 from OneUptime/snyk-fix-65754aaffe2d6283116e53a7b22cdf20
[Snyk] Security upgrade nginx from 1.25.1-alpine to 1.25.3-alpine
2023-11-20 19:28:29 +00:00
snyk-bot
d1131d32e8 fix: Nginx/Dockerfile.tpl to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE317-CURL-5958910
- https://snyk.io/vuln/SNYK-ALPINE317-CURL-5958910
- https://snyk.io/vuln/SNYK-ALPINE317-LIBWEBP-5902239
- https://snyk.io/vuln/SNYK-ALPINE317-LIBX11-6042401
- https://snyk.io/vuln/SNYK-ALPINE317-NGHTTP2-5954769
2023-11-20 19:28:01 +00:00
Federico Martín Alconada Verzini
2c4664b362 chore: appease linter 2023-11-20 14:27:54 +00:00
Federico Martín Alconada Verzini
c784324b00 test: add coverage for TeamMemberService.ts 2023-11-20 14:07:30 +00:00
Simon Larsen
bfc5e29b71 remove older data 2023-11-20 13:34:13 +00:00
Simon Larsen
ba30927de6 Merge branch 'master' into telemetry 2023-11-20 13:21:21 +00:00
Simon Larsen
ae5f0983a6 fix typo 2023-11-19 21:56:13 +00:00
Simon Larsen
49c70767b0 fix update group to growth 2023-11-19 14:06:47 +00:00
Simon Larsen
b6afa0d632 Merge pull request #893 from jkvn/master
Everything you see should be deletable
2023-11-18 14:00:29 +00:00
Kevin Jagodic
a2b8e721bf Merge branch 'OneUptime:master' into master 2023-11-18 14:47:34 +01:00
Kevin Jagodic
ac7b04e8ad Change delete permission to Free plan in model files
Updated the 'delete' permissions for Team, IncidentState, TeamPermission, ScheduledMaintenanceState, Label, and MonitorStatus model files from 'PlanSelect.Growth' to 'PlanSelect.Free'. This change allows users with a 'Free' plan to have the ability to delete these specific resources.
2023-11-18 14:45:36 +01:00
Simon Larsen
b0eb75d6c7 Merge branch 'master' into release 2023-11-18 13:45:31 +00:00
Simon Larsen
784bebe1a4 Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-11-18 13:44:35 +00:00
Simon Larsen
638e323c4f Add HTTPResponse import and handle API response in
Settings component
2023-11-18 13:44:32 +00:00
Simon Larsen
f79f4c7627 Add Stop icon to Icon component and implement
LogsFilters component
2023-11-18 13:37:03 +00:00
Simon Larsen
5936805350 Merge pull request #892 from jkvn/master
Make announcement deletable
2023-11-18 13:29:46 +00:00
Kevin Jagodic
22c9d9228c Update StatusPageAnnouncement.ts 2023-11-18 14:25:34 +01:00
Simon Larsen
9759911dba Merge pull request #891 from zuverliebt/master
Fix Plan Group Update Error
2023-11-18 12:56:19 +00:00
Luca
fa99ce9a3f Update StatusPageGroup.ts
If you created groups before the update, you can no longer delete or edit them.
2023-11-18 13:43:36 +01:00
Simon Larsen
983739cc03 dark scrollbar 2023-11-17 18:22:44 +00:00
Simon Larsen
b4f034d1a9 Update LogItem styling in LogsViewer component 2023-11-17 18:09:18 +00:00
Simon Larsen
3bdc7407aa Merge pull request #888 from OneUptime/master
Release
2023-11-17 17:24:59 +00:00
Simon Larsen
1829e1ec42 add permission to logs 2023-11-17 17:10:44 +00:00
Simon Larsen
cb82bd7c6f Merge branch 'master' into telemetry 2023-11-17 16:36:54 +00:00
Simon Larsen
48f5a735d2 Add SideMenuSection component and update
SideMenuItem components
2023-11-17 16:30:01 +00:00
Simon Larsen
17946c3c51 Add Permission.ProjectMember to TeamPermission and
StatusPageOwnerTeam models
2023-11-17 14:54:42 +00:00
Simon Larsen
57c13add9c support form-urlencoded 2023-11-17 13:58:46 +00:00
Simon Larsen
544bbb2d2f Fix formatting issues in StatusBubble and
DashboardHeader components
2023-11-17 13:35:12 +00:00
Simon Larsen
7126fdbdae Add shouldAnimate prop to Statusbubble component 2023-11-17 13:29:15 +00:00
Simon Larsen
aaf60f39ac fix default criteria 2023-11-17 13:10:53 +00:00
Simon Larsen
687c5c341b fix log 2023-11-17 11:28:14 +00:00
Simon Larsen
0b37a63c84 Merge pull request #887 from DamsDev1/fix-affected-resources
Fix affected resources overflow
2023-11-17 09:36:33 +00:00
Damien Fajole
4421227c5e Fix affected resources overflow 2023-11-17 10:11:45 +01:00
Simon Larsen
91f8489b22 fix err 2023-11-16 18:46:33 +00:00
Simon Larsen
4fa048929c make realtime work 2023-11-16 18:34:23 +00:00
Simon Larsen
12df8275a5 fix socket connection 2023-11-16 17:16:37 +00:00
Simon Larsen
8e76c5a90a Merge pull request #886 from fedealconada/filepicker-coverage
test: add coverage for FilePicker.ts
2023-11-15 19:26:23 +00:00
Simon Larsen
08d13997fe Fix formatting and add realtime event emission 2023-11-15 19:20:04 +00:00
Simon Larsen
e12ea14d85 Add realtime events support to
AnalyticsDatabaseService and BaseModel
2023-11-15 18:49:43 +00:00
Federico Martín Alconada Verzini
80a46eb808 test: add coverage for FilePicker.ts 2023-11-15 18:32:03 +00:00
Simon Larsen
4dc5c55a41 Merge pull request #881 from fedealconada/billing-service-coverage
chore: add BillingService.ts test coverage
2023-11-15 16:11:35 +00:00
Simon Larsen
67a94cca79 Merge pull request #878 from slavaGanzin/CommonUI-Probe.test
Probe.test
2023-11-15 16:08:10 +00:00
Simon Larsen
ee84a082dc Add RealtimeRoute and socket.io-client dependency 2023-11-15 16:07:04 +00:00
Federico Martín Alconada Verzini
a52b2be67e chore: consolidate APIErrors into Errors 2023-11-15 14:08:45 +00:00
Simon Larsen
092d5ec270 Delete unnecessary files and code related to
Realtime service
2023-11-15 13:30:02 +00:00
Simon Larsen
7ce4cb9143 Add rounded corners to LogItem component and
implement auto-scrolling in LogsViewer component
2023-11-15 13:20:05 +00:00
Simon Larsen
8a32c659e1 fix log 2023-11-15 12:33:10 +00:00
Federico Martín Alconada Verzini
49c9987efd chore: force camel case file name change (2) 2023-11-15 11:42:18 +00:00
Federico Martín Alconada Verzini
aa6d3523fc chore: force camel case file name change (1) 2023-11-15 11:41:44 +00:00
Federico Martín Alconada Verzini
be8da5c8f9 chore: address review comments 2023-11-15 11:34:40 +00:00
Simon Larsen
c240f4d569 Merge pull request #883 from fedealconada/components-modal-coverage
chore: add ComponentsModal.tsx test coverage
2023-11-15 08:39:46 +00:00
Simon Larsen
0d8f174675 Refactor code for better readability and
maintainability
2023-11-14 17:42:26 +00:00
Simon Larsen
8b11dcfe81 Refactor LogsViewer component and
AnalyticsDatabaseService class
2023-11-14 16:51:36 +00:00
Simon Larsen
b4e56b18ce Refactor AnalyticsDataModel to AnalyticsBaseModel
and update CommonModel.fromJSON method
2023-11-14 16:37:41 +00:00
Simon Larsen
1fd68ef60f Add BaseAnalyticsAPI to DashboardAPI and export
LogService from LogService.ts
2023-11-14 16:22:06 +00:00
Simon Larsen
62d1679938 Add BaseModel import to multiple files 2023-11-14 16:13:58 +00:00
Simon Larsen
99af4fe826 Fix formatting and remove unused imports 2023-11-14 15:24:05 +00:00
Simon Larsen
4ec5c0d7f1 Add changes to various files 2023-11-14 15:14:58 +00:00
Simon Larsen
3023e22de3 refactor common server to add base api for analytics 2023-11-14 14:21:26 +00:00
Simon Larsen
5128e17205 refactor base api 2023-11-13 19:31:44 +00:00
Federico Martín Alconada Verzini
d3bb9f26e9 chore: add BillingService.ts test coverage 2023-11-13 17:19:32 +00:00
Federico Martín Alconada Verzini
a8026f470a chore: add ComponentsModal.tsx teset coverage 2023-11-13 17:13:10 +00:00
Simon Larsen
3072bb8625 Merge pull request #877 from slavaGanzin/CommonUI-ProgressBar.test
ProgressBar.test.tsx
2023-11-13 16:43:51 +00:00
Simon Larsen
9a3127563d Merge pull request #882 from OneUptime/simlarsen-patch-1
Update IPAddress.md
2023-11-13 13:29:26 +00:00
Simon Larsen
1ff254343f Update IPAddress.md 2023-11-13 13:29:16 +00:00
Simon Larsen
2f6f81385f add coming soon pages 2023-11-13 12:30:36 +00:00
Simon Larsen
b5929454b0 fix otel ingest 2023-11-13 12:10:37 +00:00
Simon Larsen
17b2012279 rename service to telemetry service 2023-11-13 12:09:16 +00:00
Simon Larsen
2d47b326b8 Merge branch 'master' into telemetry 2023-11-13 11:52:30 +00:00
Simon Larsen
72b90f8414 add resources affected 2023-11-13 11:50:39 +00:00
Simon Larsen
a32120e5bd add obj in path 2023-11-13 11:16:18 +00:00
Simon Larsen
502f298a3a add authentication 2023-11-12 15:12:49 +00:00
Simon Larsen
d8d5556f1a add header setter 2023-11-12 14:24:27 +00:00
Slava Ganzin
1e488ebfbe ProgressBar.test: check text 2023-11-12 12:18:03 +01:00
Slava Ganzin
4cd4cc828f ProgressBar.test: use data-testid 2023-11-11 22:43:38 +01:00
Slava Ganzin
e5795034c6 Probe.test: use data-testid 2023-11-11 22:38:08 +01:00
Simon Larsen
2b2f9a74b6 rename helpers 2023-11-10 17:17:37 +00:00
Simon Larsen
fd98711ad8 rename helpers 2023-11-10 17:17:20 +00:00
Simon Larsen
cf4d8df7e5 Merge pull request #879 from slavaGanzin/CommonServer-API-tests
BaseAPI.test.tsx
2023-11-10 17:14:40 +00:00
Slava Ganzin
0a91105e28 fix ProgressBar.test 2023-11-10 15:32:50 +01:00
Slava Ganzin
58bfec9c5a fix awaits in BaseAPI.test 2023-11-10 15:16:57 +01:00
Slava Ganzin
ce402c79d1 ProbeAPI.test 2023-11-10 15:07:46 +01:00
Slava Ganzin
4ce79420ca Probe.test 2023-11-10 14:33:39 +01:00
Slava Ganzin
c663fbd0a1 ProgressBar.test.tsx 2023-11-10 14:25:48 +01:00
Simon Larsen
c8f24affc3 add jest types to probe test 2023-11-10 12:53:50 +00:00
Simon Larsen
abb4f4724f fix fmt 2023-11-10 12:16:01 +00:00
Simon Larsen
3a268fc816 fix fmt 2023-11-10 12:11:06 +00:00
Simon Larsen
8cb398919a add resources affected 2023-11-10 12:05:08 +00:00
Slava Ganzin
a63dd22d1e refactor mockRouter 2023-11-10 11:31:05 +01:00
Slava Ganzin
c793479f55 BaseAPI.test.tsx 2023-11-10 10:46:26 +01:00
Simon Larsen
1d092240f9 fix tests 2023-11-09 21:47:11 +00:00
Simon Larsen
625c96b91a fix otel collector 2023-11-09 21:37:23 +00:00
Simon Larsen
a5686c01fb add service pages 2023-11-09 14:09:08 +00:00
Simon Larsen
a8dc444714 add service pages 2023-11-08 20:28:26 +00:00
Simon Larsen
508677867a add service model 2023-11-08 20:13:49 +00:00
Simon Larsen
a9a839f143 fix uptime percent 2023-11-08 09:43:04 +00:00
Simon Larsen
a299fca2ba Merge pull request #874 from dulajkavinda/tests/added-tests-crontab-jsontocsv
Added tests for JsonToCsv and CronTab util functions
2023-11-07 16:58:30 +00:00
Simon Larsen
396066bf0d fix util 2023-11-07 16:57:00 +00:00
Simon Larsen
9debdfafba Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-11-07 16:39:40 +00:00
Simon Larsen
49c4dff44b add uptime percent to monitor groups. 2023-11-07 16:39:38 +00:00
Simon Larsen
27a8434181 add uptime to monitors page 2023-11-07 16:06:27 +00:00
Simon Larsen
c8305ef7c0 uptime percent 2023-11-07 15:23:57 +00:00
Simon Larsen
2f332a64f3 add uptime percent 2023-11-07 15:18:29 +00:00
Dulaj Kavinda
fb5291e7c1 tests: added testts for CronTab 2023-11-07 19:36:36 +05:30
Dulaj Kavinda
4034cf6ed8 tests: added tests for JsonToCsv 2023-11-07 18:17:44 +05:30
Simon Larsen
8b37587800 Merge pull request #873 from dulajkavinda/tests/added-tests-tabs-and-modal
Added tests for Tabs and Modal components
2023-11-07 09:05:45 +00:00
Dulaj Kavinda
03eb1dd1f2 tests: added test cases for CommonUI/Modal 2023-11-07 12:40:15 +05:30
Dulaj Kavinda
ee91526239 tests: added test cases for CommonUI/Tabs 2023-11-07 12:39:29 +05:30
Simon Larsen
970c537b96 add uptime precision 2023-11-06 20:17:37 +00:00
Simon Larsen
35718ee7b5 fix blog icon 2023-11-05 13:38:14 +00:00
Simon Larsen
310cd90714 add blog links 2023-11-05 13:36:38 +00:00
Simon Larsen
513fa74c59 add unpaid banner 2023-11-05 12:57:39 +00:00
Simon Larsen
4ba6f714af add project id 2023-11-05 12:15:42 +00:00
Simon Larsen
7ab3ba7201 add logs in call service 2023-11-03 18:11:58 +00:00
Simon Larsen
e5aa9c9496 remove persistence from redis 2023-11-03 17:42:37 +00:00
Simon Larsen
455ca7b22d add appendonly no to redis 2023-11-03 17:35:13 +00:00
Simon Larsen
0b71c8b769 add log statements 2023-11-03 16:39:05 +00:00
Simon Larsen
19b0a1f2a8 require fs 2023-11-03 16:00:35 +00:00
Simon Larsen
4f93dd0f04 move files in install to js 2023-11-03 15:57:05 +00:00
Simon Larsen
60d0f188ad add categorization to overview 2023-11-02 19:00:30 +00:00
Simon Larsen
bd587b210e add sections to announcments 2023-11-02 18:50:18 +00:00
Simon Larsen
80dd33cd7f add categories to pages 2023-11-02 16:39:40 +00:00
Simon Larsen
d675eca50c add categories to incidents 2023-11-02 15:23:43 +00:00
Simon Larsen
76712e8f89 add labels to events 2023-11-02 14:05:40 +00:00
Simon Larsen
fe68b009eb Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-11-02 13:40:54 +00:00
Simon Larsen
6c1bd10873 fix current status on sp 2023-11-02 13:39:59 +00:00
Simon Larsen
9a6960e154 Merge pull request #870 from OneUptime/monitor-groups
Monitor groups
2023-11-02 11:45:28 +00:00
Simon Larsen
05a288c761 fix jest types 2023-11-02 11:11:36 +00:00
Simon Larsen
a9f503da9d fix probe tests 2023-11-02 10:21:31 +00:00
Simon Larsen
49d3655502 fix fmt 2023-11-01 20:49:00 +00:00
Simon Larsen
1cdcc639b4 fix fmt 2023-11-01 20:45:23 +00:00
Simon Larsen
7568c70b50 fix fmt 2023-11-01 20:15:18 +00:00
Simon Larsen
6259f81a91 add ui changes 2023-11-01 19:38:58 +00:00
Simon Larsen
f40c1daeb8 fix fmt 2023-11-01 14:15:43 +00:00
Simon Larsen
bb73ed14cd add animate in status bubble 2023-11-01 10:44:01 +00:00
Simon Larsen
4b71a81f7c fix fmt on uptime 2023-11-01 10:40:03 +00:00
Simon Larsen
d6788c138b fix uptime graph 2023-11-01 10:34:38 +00:00
Simon Larsen
28f4a1f473 add status api 2023-10-31 17:05:56 +00:00
Simon Larsen
ccb4781c06 enable compression 2023-10-31 14:10:57 +00:00
Simon Larsen
2e27347225 fix fmt 2023-10-31 12:19:47 +00:00
Simon Larsen
e9015f0eff Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-10-31 12:06:27 +00:00
Simon Larsen
6cf8560151 fix eslint 2023-10-31 12:06:24 +00:00
Simon Larsen
7d2e91d867 Merge pull request #854 from hasannadeem/tests/notification-middleware-and-cookie-utils
Tests for notification middleware and cookie utils
2023-10-31 11:57:11 +00:00
Simon Larsen
46e0210dcc Merge pull request #869 from fakharj/eslint-object-curly-spacing
add eslint object-curly-spacing rule
2023-10-31 09:58:24 +00:00
Simon Larsen
02fc5502eb Merge branch 'master' into eslint-object-curly-spacing 2023-10-31 09:58:17 +00:00
Simon Larsen
ce3131edaf Merge pull request #865 from fakharj/eslint-unneeded-ternary
added no unneeded ternary in eslint
2023-10-30 13:56:03 +00:00
fakharj
ca4716133a add eslint object-curly-spacing rule 2023-10-30 18:43:43 +05:00
Simon Larsen
9cb254f9d1 Merge pull request #862 from OneUptime/dependabot/npm_and_yarn/Common/crypto-js-4.2.0
Bump crypto-js from 4.1.1 to 4.2.0 in /Common
2023-10-30 11:13:47 +00:00
Simon Larsen
d51fbdf5f7 Merge pull request #868 from cheese-framework/master
Add test suites for JSONFunctions and SerializableObject
2023-10-30 11:10:51 +00:00
Simon Larsen
57b7b5b39e Merge pull request #855 from hammadfauz/duplicateModalTest
Duplicate modal test
2023-10-30 08:24:18 +00:00
Drantaz
2e46ebd0e8 Merge branch 'master' of https://github.com/cheese-framework/oneuptime 2023-10-27 20:25:23 +00:00
Drantaz
4ffe215665 Add test suites for JSONFunctions and SerializableObject 2023-10-27 20:24:33 +00:00
Hammad
e680346f1f fixes lint 2023-10-27 23:48:27 +05:00
Hammad
4faa8d32f6 adds test ids to key elements 2023-10-27 23:27:33 +05:00
Simon Larsen
ab07ff0104 fix fmt 2023-10-27 17:22:20 +01:00
Simon Larsen
03dd6fef04 Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-10-27 17:15:29 +01:00
Simon Larsen
31c0ff7dea Merge branch 'feature-flags' 2023-10-27 17:15:18 +01:00
Simon Larsen
dca1d2c370 add call and sms cost 2023-10-27 17:14:58 +01:00
Simon Larsen
fc218a970a Merge pull request #861 from OneUptime/feature-flags
add feature flag page
2023-10-27 16:40:30 +01:00
Simon Larsen
17509225ee add monitor groups. 2023-10-27 16:39:33 +01:00
Simon Larsen
447bac1d67 fix undefined in page title 2023-10-27 16:20:04 +01:00
Simon Larsen
67b3b224a7 fix monitor group api 2023-10-27 16:17:28 +01:00
Simon Larsen
48fbf50973 add current status 2023-10-27 13:13:32 +01:00
fakharj
a0acb24651 added no unneeded ternary in eslint 2023-10-27 13:03:07 +05:00
Simon Larsen
c958893d67 increase timeout to 30 secs 2023-10-26 20:51:00 +01:00
Simon Larsen
9e2bd15cf4 fix fmt 2023-10-26 19:58:47 +01:00
Simon Larsen
17e9ad4fcd Merge branch 'master' into feature-flags 2023-10-26 19:10:30 +01:00
Simon Larsen
4d5a49f11e fix fmt 2023-10-26 19:09:29 +01:00
Simon Larsen
2d9b9950dd when monitors are timeout mark them as offline. 2023-10-26 19:09:03 +01:00
Simon Larsen
c3c0fbc853 fix fmt 2023-10-26 15:24:15 +01:00
Simon Larsen
f970b02e9e monitor group view 2023-10-26 15:20:38 +01:00
Simon Larsen
987394be41 monitor groups page 2023-10-26 15:02:48 +01:00
Simon Larsen
34b3dff108 add service 2023-10-26 14:53:26 +01:00
Simon Larsen
b603241d57 add incidents page 2023-10-26 14:51:45 +01:00
Simon Larsen
8df01fc098 add owners page 2023-10-26 14:26:58 +01:00
Simon Larsen
268305e6cd add services and perms 2023-10-26 14:14:52 +01:00
Simon Larsen
bbb53b3321 make delete work 2023-10-26 13:52:05 +01:00
Simon Larsen
c79fa88ad1 add monitor group resource 2023-10-26 13:37:31 +01:00
Simon Larsen
35c5e57752 add read perms to domain 2023-10-26 13:09:06 +01:00
dependabot[bot]
254a9de101 Bump crypto-js from 4.1.1 to 4.2.0 in /Common
Bumps [crypto-js](https://github.com/brix/crypto-js) from 4.1.1 to 4.2.0.
- [Commits](https://github.com/brix/crypto-js/compare/4.1.1...4.2.0)

---
updated-dependencies:
- dependency-name: crypto-js
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-25 22:47:32 +00:00
Simon Larsen
c844bf8e43 add feature flag page 2023-10-25 20:05:28 +01:00
Simon Larsen
c0288716da add labels to status page 2023-10-25 18:06:39 +01:00
Simon Larsen
51e7fa6c9a add labels to status page 2023-10-25 17:46:30 +01:00
Simon Larsen
d9eb60017a fix fmt 2023-10-25 17:37:02 +01:00
Simon Larsen
e9d7b36198 fix labels on status page. 2023-10-25 14:50:28 +01:00
Simon Larsen
7308945061 show incident labels on status page 2023-10-25 14:39:43 +01:00
Simon Larsen
3f8e5e4e0a Merge pull request #860 from cheese-framework/master
Add test suites for Database and API
2023-10-25 12:40:20 +01:00
Drantaz
3f7d186db0 Add test suites for Database and API 2023-10-25 11:10:52 +00:00
Simon Larsen
8cb91d94eb remove auto table creation 2023-10-25 09:21:11 +01:00
Simon Larsen
3337ad2a45 Merge pull request #859 from OneUptime/otel-save
Otel save
2023-10-25 09:20:24 +01:00
Simon Larsen
438fbf4368 add historgram in program 2023-10-24 20:49:10 +01:00
Simon Larsen
ffca1acc9a Merge pull request #858 from cheese-framework/Add-Jest-test-suite-for-Common/Database/Date-#857
Add Test cases for Common/Database/Date
2023-10-24 20:25:24 +01:00
Drantaz
846d5ce104 Add Test cases for Common/Database/Date -- Add linting 2023-10-24 17:14:26 +00:00
Drantaz
43a075436a Add Test cases for Common/Database/Date 2023-10-24 16:55:11 +00:00
Simon Larsen
8fe35d9a29 remove unneeded files 2023-10-24 16:54:14 +01:00
Simon Larsen
849eeac23a add auto table creation 2023-10-24 13:52:37 +01:00
Simon Larsen
01a4cac559 Merge pull request #830 from OneUptime/otel-save
Otel save
2023-10-24 13:50:38 +01:00
Simon Larsen
b4cd4d2c02 comment out table creation 2023-10-24 13:50:15 +01:00
Simon Larsen
329484fb87 fix fmt 2023-10-24 13:49:27 +01:00
Simon Larsen
ee54a324d7 add guage 2023-10-24 13:35:26 +01:00
Simon Larsen
ba2feffbee Merge pull request #826 from hammadfauz/BearerTokenAuthTest
Bearer token auth test
2023-10-24 12:30:07 +01:00
Hammad
4b0b91396b lint fixes 2023-10-24 16:26:53 +05:00
Hammad
f2c6321216 raises proper exception when token is invalid or empty 2023-10-24 16:22:45 +05:00
Simon Larsen
67447c0bd7 fix copy in criteria 2023-10-24 11:57:06 +01:00
Simon Larsen
323646ebcd docker file for otel proj 2023-10-24 11:56:52 +01:00
Simon Larsen
81e4b4435c fix array save 2023-10-24 11:32:02 +01:00
Simon Larsen
842b0664c7 update long numbers 2023-10-24 10:56:41 +01:00
Simon Larsen
0bdab474de fix models 2023-10-24 10:46:44 +01:00
Simon Larsen
ef1b22e62b Merge pull request #856 from OneUptime/simlarsen-patch-1
Update DockerCompose.md
2023-10-24 10:22:51 +01:00
Simon Larsen
3d229a0030 Update DockerCompose.md 2023-10-24 10:22:37 +01:00
Simon Larsen
e34599d18a fix fmt 2023-10-23 20:41:33 +01:00
Simon Larsen
aa7594f2a8 fix fmt 2023-10-23 20:24:36 +01:00
Simon Larsen
0626669b02 add metrics histogram and sum 2023-10-23 20:19:20 +01:00
Simon Larsen
35b949e448 add new models to clickhouse 2023-10-23 20:02:44 +01:00
Simon Larsen
2bb4086fd1 refactor service code 2023-10-23 15:58:16 +01:00
Simon Larsen
03f9c36f06 fix fmt 2023-10-23 15:51:38 +01:00
Simon Larsen
9fe998a43d save logs to otel 2023-10-23 15:27:22 +01:00
Simon Larsen
3841b655e5 add dotnet otel project 2023-10-23 15:17:25 +01:00
Hammad
5ec8ee6dcb removes jest config for ignoring snapshots 2023-10-23 19:17:19 +05:00
Hammad
a1c6121bee tests UI by querying key elements and removes snapshots 2023-10-23 19:15:10 +05:00
Hammad
51c76aa1af moves test suite into Components as per convention 2023-10-23 19:14:04 +05:00
Simon Larsen
40ee5d775b fix fmt 2023-10-23 12:57:02 +01:00
Simon Larsen
88f0e2af51 set default card for customers if they dont have it. 2023-10-23 11:27:19 +01:00
Hammad
e702a0b0d2 Fixes lint errors 2023-10-21 15:49:54 +05:00
Hammad
cfc2f99248 adds tests for DuplicateModel 2023-10-21 15:07:20 +05:00
Hammad
f23bb3af41 fixes jest mistaking snapshots for test suites 2023-10-21 15:06:46 +05:00
Simon Larsen
2cdf1236be fix fmt 2023-10-20 19:52:58 +01:00
Simon Larsen
ed5a144735 fix insert into db 2023-10-20 19:51:23 +01:00
Simon Larsen
e687a439e6 fix fmt 2023-10-20 17:58:45 +01:00
Simon Larsen
cfa20e2be6 generate insert statement 2023-10-20 17:43:50 +01:00
hasan
9205764deb Add tests for notification middleware and cookie utils 2023-10-20 18:44:33 +05:00
Simon Larsen
32275837ac fix nested type 2023-10-20 14:26:01 +01:00
Simon Larsen
34568a39f5 refactor staement generator into a new file 2023-10-20 13:01:51 +01:00
Simon Larsen
b7b41dfebb Merge branch 'master' into otel-save 2023-10-20 11:27:21 +01:00
Simon Larsen
9b40011196 add more shadow 2023-10-20 11:24:02 +01:00
Simon Larsen
d644287a0c fix video close 2023-10-20 11:18:19 +01:00
Simon Larsen
ea7dc0b918 add hiring link in footer 2023-10-19 18:52:24 +01:00
Simon Larsen
c34639a3bb add watch demo to status page 2023-10-19 18:23:54 +01:00
Simon Larsen
41ba37be80 nested model 2023-10-19 16:06:09 +01:00
Simon Larsen
954d5be113 fix clickhouse 2023-10-18 18:18:00 +01:00
Simon Larsen
21a857d912 fix import 2023-10-18 17:47:45 +01:00
Simon Larsen
cb0f7bbad5 fix fmt 2023-10-18 17:44:54 +01:00
Simon Larsen
c3c94f3634 add table 2023-10-18 17:43:18 +01:00
Simon Larsen
955141d42e add logs, metrics and spans 2023-10-18 17:28:49 +01:00
Simon Larsen
352c9ffb8e otel save 2023-10-18 13:59:19 +01:00
Simon Larsen
d543757a7d open collector port 2023-10-18 12:19:52 +01:00
Simon Larsen
b3cfdbf45a enable gpu on llama docker 2023-10-18 12:07:37 +01:00
Simon Larsen
c629921d01 fix llama docker file. 2023-10-18 11:01:15 +01:00
Simon Larsen
008e0c50b1 fix cluster domain in helm chart 2023-10-18 10:16:23 +01:00
Simon Larsen
fcf916bdfe change to alert emoji 2023-10-17 14:48:54 +01:00
Simon Larsen
9850bcf0e7 fix fmt 2023-10-17 14:30:25 +01:00
Simon Larsen
e1efeec9ec add cookie set 2023-10-17 13:49:43 +01:00
Simon Larsen
7e34393fc6 fix api url 2023-10-17 12:59:14 +01:00
Simon Larsen
262fffd9ff fix url 2023-10-17 12:48:46 +01:00
Simon Larsen
35db6e95ad add httponly cookie to status page 2023-10-17 12:10:50 +01:00
Simon Larsen
17208b5e26 fix token cookie on master page 2023-10-16 21:16:11 +01:00
Simon Larsen
896dce3430 add pycache to gitignore 2023-10-16 20:54:21 +01:00
Simon Larsen
d844fa9df2 fix api 2023-10-16 20:06:21 +01:00
Simon Larsen
48542c4323 fix typo 2023-10-16 19:26:13 +01:00
Simon Larsen
f57047c778 fix sttaus page api 2023-10-16 19:01:45 +01:00
Simon Larsen
e471787462 set cookie for host 2023-10-16 18:15:25 +01:00
Hammad
dc4721f878 fixes lint errors 2023-10-16 22:01:05 +05:00
Simon Larsen
4bd4dbf3c1 fix domains cookie set on status page 2023-10-16 17:41:49 +01:00
Hammad
6c0c79dd25 removes line that will never be run
this brings code coverage to 100%
2023-10-16 21:14:36 +05:00
Hammad
a9548858b0 adds tests for CommonServer/Middleware/BearerTokenAuthorization 2023-10-16 21:12:31 +05:00
Simon Larsen
6804e94850 add ingestor status check 2023-10-16 12:55:54 +01:00
Simon Larsen
63736aed6c fix path 2023-10-16 12:53:15 +01:00
Simon Larsen
c848032fdc add otel to helm chart 2023-10-16 12:41:27 +01:00
Simon Larsen
22c2231e22 make llama work with rest api 2023-10-16 11:45:15 +01:00
Simon Larsen
7a063d741c fix otel collector 2023-10-16 11:06:11 +01:00
Simon Larsen
8a9cc10ff0 fix otel collector 2023-10-16 11:04:47 +01:00
Simon Larsen
2e43fa0c02 Merge pull request #820 from hasannadeem/test/side-menu-item-and-dictionary-of-string-components
Added tests for SideMenuItem and DictionaryOfStrings components
2023-10-16 10:54:11 +01:00
Simon Larsen
f51a1828ab fix fmt 2023-10-15 21:41:49 +01:00
Simon Larsen
805139055a make llama work 2023-10-15 21:04:58 +01:00
Simon Larsen
42c85b16e7 delete nodejs adaptor from llama 2023-10-15 18:34:25 +01:00
Simon Larsen
a59742cddb add python app for llama. 2023-10-15 18:14:15 +01:00
Simon Larsen
ba426b5580 fix llama 2023-10-14 17:59:52 +01:00
Simon Larsen
1945bbfd45 fix llama compile err 2023-10-14 16:45:17 +01:00
Simon Larsen
58debb9959 male llama work 2023-10-14 16:36:12 +01:00
hasan
6485f474b2 Add tests for SideMenuItem and DictionaryOfStrings components 2023-10-14 18:11:51 +05:00
Simon Larsen
301d7f124c fix fmt 2023-10-14 12:01:06 +01:00
Simon Larsen
985217d2bf rename helm files for ingestor 2023-10-13 20:14:04 +01:00
Simon Larsen
20f46177cb Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-10-13 19:49:57 +01:00
Simon Larsen
0453d995ba if no ingestor then connect to oneuptime 2023-10-13 19:49:20 +01:00
Simon Larsen
8ab7fbc95d Merge pull request #819 from OneUptime/make-auth-secure
Make auth secure
2023-10-13 19:46:45 +01:00
Simon Larsen
2d99850596 fix fmt 2023-10-13 19:46:19 +01:00
Simon Larsen
c77b8e2d57 fix common server tests 2023-10-13 19:45:24 +01:00
Simon Larsen
e12f73cebf basic form fix 2023-10-13 19:38:06 +01:00
Simon Larsen
0351480152 fix fmt 2023-10-13 19:12:28 +01:00
Simon Larsen
62e81bee06 fix server tests 2023-10-13 15:29:29 +01:00
Simon Larsen
11b500058e fix type 2023-10-13 15:08:53 +01:00
Simon Larsen
0b94b0ff70 fix undef in cookie get 2023-10-13 14:46:12 +01:00
Simon Larsen
9bd8275321 fix fmt 2023-10-13 14:35:49 +01:00
Simon Larsen
a25a1ed0b9 remove licensing jobs 2023-10-13 14:35:35 +01:00
Simon Larsen
accffbe443 add docker build for otel collector 2023-10-13 14:34:35 +01:00
Simon Larsen
414bfdfec1 add otel jobs 2023-10-13 14:33:21 +01:00
Simon Larsen
cc7037b549 Merge pull request #812 from OneUptime/logging
Logging
2023-10-13 13:57:51 +01:00
Simon Larsen
725f41ef1b make auth httponly 2023-10-13 13:25:38 +01:00
Simon Larsen
e7682c826d remove licensing 2023-10-13 13:02:07 +01:00
Simon Larsen
5347bc29ea add height param for custom logo 2023-10-13 11:11:02 +01:00
Simon Larsen
aa975633dd fix height and width for outlook 2023-10-13 11:08:21 +01:00
Simon Larsen
199ef2b009 fix fmt 2023-10-12 20:04:37 +01:00
Simon Larsen
f0f690f24a duplicate workflows 2023-10-12 19:31:36 +01:00
Simon Larsen
ef43088692 Merge branch 'master' into logging 2023-10-12 19:04:14 +01:00
Simon Larsen
8f36524583 fix txt 2023-10-12 19:03:51 +01:00
Simon Larsen
d738d1378c add duplicate monitor functionality. 2023-10-12 18:48:23 +01:00
Simon Larsen
b402450eac add more logs to redis events 2023-10-12 15:16:42 +01:00
Simon Larsen
130d7b1af3 add stack trace limit 2023-10-12 15:09:06 +01:00
Simon Larsen
070fd415ae mark jobs as timed out. 2023-10-12 15:01:06 +01:00
Simon Larsen
d8b6cf98fe fix fmt 2023-10-10 20:36:22 +01:00
Simon Larsen
3a8451aea3 fix fmt 2023-10-10 20:33:48 +01:00
Simon Larsen
0de056c4e9 fix logging 2023-10-10 20:23:48 +01:00
Simon Larsen
8e02cf56ef improve logging. 2023-10-10 20:19:29 +01:00
Simon Larsen
1296707e0d Merge branch 'master' into logging 2023-10-10 19:41:32 +01:00
Simon Larsen
80b848f757 Merge branch 'master' of github.com-simon:OneUptime/oneuptime 2023-10-10 19:41:09 +01:00
Simon Larsen
4b2a9c74c0 Merge branch 'release' 2023-10-10 19:40:58 +01:00
Simon Larsen
62ed9583fc Merge pull request #813 from yashug/fix-584
FIX-584: Fixes SideOver component action buttons to appear without sc…
2023-10-10 17:21:02 +01:00
Simon Larsen
8a2f9f9913 fix pricing page 2023-10-10 16:29:41 +01:00
Simon Larsen
1a1be22b16 fix fmt 2023-10-10 16:24:35 +01:00
yashug
7e48cb2451 FIX-584: Fixes SideOver component action buttons to appear without scroll 2023-10-10 19:25:33 +05:30
Simon Larsen
8fc2f93e94 refactor otel middleware 2023-10-10 14:51:59 +01:00
Simon Larsen
1892d06cec gzip working 2023-10-10 14:41:20 +01:00
Simon Larsen
32960b90f8 get gzip body 2023-10-10 13:49:48 +01:00
Simon Larsen
7bd5efee1c remove sonar cloud 2023-10-10 11:25:51 +01:00
Simon Larsen
f1b4214379 add proto files 2023-10-10 11:16:22 +01:00
Simon Larsen
ff0314ae9b add collector to docker compose 2023-10-09 19:21:38 +01:00
Simon Larsen
591c89a320 add otel collector to nginx 2023-10-09 19:18:46 +01:00
Simon Larsen
60b1f3bcc5 fix probe ingest response 2023-10-09 19:07:25 +01:00
Simon Larsen
7e796dff42 probeapi request 2023-10-09 19:04:39 +01:00
Simon Larsen
34817a1066 probe-api to ingestor 2023-10-09 18:54:23 +01:00
Simon Larsen
45bdadde87 add otel collector 2023-10-09 18:50:37 +01:00
Simon Larsen
753e017efd Merge branch 'master' into logging 2023-10-09 16:50:36 +01:00
Simon Larsen
6b80d76fda Merge pull request #802 from yashug/rewrite-error-boundary
Rewrites ErrorBoundary as class Component to catch errors
2023-10-09 13:38:27 +01:00
yashug
7daa955528 uses react-error-boudnary library to support functional component 2023-10-09 16:44:56 +05:30
Simon Larsen
ff9117ab05 add profile pic change to global event 2023-10-09 11:55:52 +01:00
Simon Larsen
4405c5fe10 fix model progress 2023-10-09 11:17:25 +01:00
yashug
98a1ae95b8 Merge branch 'master' into rewrite-error-boundary 2023-10-09 15:29:07 +05:30
Simon Larsen
bcc06324c3 Merge branch 'release' of github.com-simon:OneUptime/oneuptime into release 2023-10-08 15:04:51 +01:00
Simon Larsen
d7f2432a0c fix billing for free customers 2023-10-08 15:03:50 +01:00
Simon Larsen
e75c16b6f8 fix delete link 2023-10-08 14:01:16 +01:00
Simon Larsen
c13291c33c Merge pull request #811 from yashug/test/Common/Utils
Adds Test cases for Common/Utils to make 100% coverage
2023-10-07 19:23:30 +01:00
yashug
824fb68395 Adds Test cases for Common/Utils to make 100% coverage 2023-10-07 21:27:41 +05:30
Simon Larsen
e0795f24fc Merge pull request #808 from AaronDewes/patch-1
Fix typo in "expressions"
2023-10-07 15:09:13 +01:00
Aaron Dewes
0d178843e4 Fix typo in "expressions" 2023-10-06 22:59:23 +02:00
Simon Larsen
b6f8dbabc5 Merge pull request #805 from yashug/test-master-topsection-pages
Adds test cases for MasterPage & TopSection
2023-10-06 20:03:02 +01:00
Simon Larsen
78e97b815d Merge pull request #806 from OneUptime/master
Release
2023-10-06 17:38:40 +01:00
yashug
9ff18d6df5 Adds test cases for MasterPage & TopSection 2023-10-06 21:14:34 +05:30
yashug
9fec234b07 Rewrites ErrorBoundary as class Component to catch errors 2023-10-06 19:45:05 +05:30
Simon Larsen
5fa633959f Merge pull request #801 from Gift-Stack/test-404-page
Add test file for 404 page
2023-10-06 14:02:51 +01:00
GiFTED
0b4373edcc Add test file for 404 page 2023-10-06 13:58:49 +01:00
Simon Larsen
be09a9354d fix method 2023-10-06 12:47:16 +00:00
Simon Larsen
d6549cd861 fix local file 2023-10-06 12:41:29 +00:00
Simon Larsen
3ab1758f17 Merge branch 'master' of github.com:OneUptime/oneuptime 2023-10-06 12:07:02 +00:00
Simon Larsen
138a42326f add mkdir -p for status page certs 2023-10-06 12:07:00 +00:00
Simon Larsen
c6689d2a36 Merge pull request #798 from Gift-Stack/update-lint
Update lint
2023-10-06 09:42:24 +01:00
Simon Larsen
3376c2cb96 Merge pull request #800 from Gift-Stack/test-color-viewer
Create test for the color viewer component
2023-10-06 09:40:55 +01:00
GiFTED
d6e7b5840b Create test for the color viewer component 2023-10-06 01:34:39 +01:00
GiFTED
0319e43a21 restrict null asserted optional chain 2023-10-05 20:51:02 +01:00
GiFTED
d9be0a76e3 restrict null asserted optional chain 2023-10-05 20:50:52 +01:00
Simon Larsen
75748274c1 Merge pull request #797 from Gift-Stack/fix/no-unused-vars-lint
Fix/no unused vars lint
2023-10-05 18:55:38 +01:00
Simon Larsen
08893110bb Merge branch 'master' of github.com:OneUptime/oneuptime 2023-10-05 17:02:26 +00:00
Simon Larsen
1140eb7270 fix mount paths 2023-10-05 17:02:22 +00:00
GiFTED
b526306780 Cleanup unused variables 2023-10-05 18:01:59 +01:00
GiFTED
dc235464f4 Make active 2023-10-05 17:37:17 +01:00
GiFTED
f0413ac917 Make active 2023-10-05 17:36:59 +01:00
Simon Larsen
b00ce0e894 make docs clearer 2023-10-05 17:07:46 +01:00
Simon Larsen
2c90d8c0be fix docs for JS expression 2023-10-05 17:04:51 +01:00
Simon Larsen
7ccb5fca6f Merge pull request #796 from OneUptime/parse-json-on-monitors
Parse json on monitors
2023-10-05 17:01:42 +01:00
Simon Larsen
b65d452632 fix fmt 2023-10-05 17:01:16 +01:00
Simon Larsen
c040d60da9 fix fmt for js expression 2023-10-05 16:56:55 +01:00
Simon Larsen
6fe40bc630 fix js workflow 2023-10-05 16:53:24 +01:00
Simon Larsen
c85d9b8372 add docs 2023-10-05 15:59:10 +01:00
Simon Larsen
58cfe477c2 write docs 2023-10-05 14:40:10 +01:00
Simon Larsen
6d5cb57813 add code expression 2023-10-05 14:28:11 +01:00
Simon Larsen
4761c747a4 Merge branch 'master' into parse-json-on-monitors 2023-10-05 13:49:34 +01:00
Simon Larsen
7ca8d20c4d disable probe 2 2023-10-05 12:31:19 +00:00
Simon Larsen
59a77c6c15 Merge branch 'master' of github.com:OneUptime/oneuptime 2023-10-05 08:49:37 +00:00
Simon Larsen
099af1f5fe fix probe url in helm chart 2023-10-05 08:49:35 +00:00
Simon Larsen
d06c657a16 fix fmt 2023-10-05 09:29:14 +01:00
Simon Larsen
1d9abe8af0 update values in helm 2023-10-05 08:24:37 +00:00
Simon Larsen
9bf46fbcf1 refactor workflow file 2023-10-04 20:02:55 +01:00
Simon Larsen
91adc172bd Merge branch 'master' into parse-json-on-monitors 2023-10-04 19:36:55 +01:00
Simon Larsen
2d4bb56ffa exit node process on app init fail 2023-10-04 19:22:25 +01:00
Simon Larsen
01b677ec77 fix hostnames 2023-10-04 19:15:20 +01:00
Simon Larsen
ed7708ba7c remove change in config from npm 2023-10-04 19:11:51 +01:00
Simon Larsen
1d7980f3ba fix criteria filter 2023-10-04 19:11:15 +01:00
Simon Larsen
43069791da add values 2023-10-04 18:10:15 +00:00
Simon Larsen
ccedb52acd refactor criteria filter 2023-10-04 16:26:07 +01:00
Simon Larsen
f0d69b8ca0 add js expression 2023-10-04 16:18:52 +01:00
Simon Larsen
4359e8fa30 fix readme 2023-10-04 14:06:40 +00:00
Simon Larsen
b1162446db fix secrets 2023-10-04 13:45:24 +00:00
Simon Larsen
cf80324382 add secrets 2023-10-04 13:45:11 +00:00
Simon Larsen
f4e372cfce Merge branch 'master' of github.com:OneUptime/oneuptime 2023-10-04 13:44:54 +00:00
Simon Larsen
b47e95f836 add readme 2023-10-04 13:06:02 +00:00
Simon Larsen
e4af38dfa9 add create default clickhouse db on connect 2023-10-04 13:54:48 +01:00
Simon Larsen
e51ed0edc0 Merge branch 'release' of github.com-simon:OneUptime/oneuptime into release 2023-10-04 12:17:10 +01:00
Simon Larsen
746b396e4f fix ordering of elements 2023-10-04 11:20:08 +01:00
Simon Larsen
1d08ffb130 fix is master admin 2023-10-04 10:56:44 +01:00
Simon Larsen
231493b335 fix website request 2023-10-04 10:28:15 +01:00
Simon Larsen
1cbd9d2d26 Merge pull request #787 from OneUptime/master
Release clickhouse service
2023-10-04 09:54:47 +01:00
Simon Larsen
661e1b8b4d Merge pull request #786 from OneUptime/clickhouse-service
Clickhouse service
2023-10-03 16:06:45 +01:00
Simon Larsen
4a0ff353e6 fix fmt 2023-10-03 16:06:13 +01:00
Simon Larsen
36cbc22327 fix fmt 2023-10-03 13:54:55 +01:00
Simon Larsen
bbd57c917e make find work 2023-10-03 13:29:12 +01:00
Simon Larsen
f72d5550cf delete by 2023-10-02 16:49:58 +01:00
Simon Larsen
5920b97c6c add delete by 2023-10-02 16:48:50 +01:00
Simon Larsen
2c8019bfc6 add upate query 2023-10-02 16:37:40 +01:00
Simon Larsen
d3e3b7d918 fix docker file 2023-10-02 16:17:43 +01:00
Simon Larsen
f2d02c4a5a fix fmt 2023-10-02 16:07:49 +01:00
Simon Larsen
209ac74643 fix analytics service 2023-10-02 15:59:18 +01:00
Simon Larsen
2a6cb19405 add pnpm to docker build to speed up builds 2023-10-02 12:38:40 +01:00
Simon Larsen
62db38520f add find by 2023-10-02 12:13:37 +01:00
Simon Larsen
31a41fed60 fix fmt 2023-10-02 11:06:26 +01:00
Simon Larsen
55fd9a87b9 fix fmt 2023-10-02 11:04:36 +01:00
Simon Larsen
91ed99f256 fix import statement 2023-10-02 10:59:42 +01:00
Simon Larsen
6f4963cdb0 fix common ui 2023-10-02 10:54:53 +01:00
Simon Larsen
9b6667e6c7 fix analytics model 2023-10-02 10:53:00 +01:00
Simon Larsen
b42b93844b fix compile err 2023-10-02 10:32:31 +01:00
Simon Larsen
ca63e6fbfb Merge pull request #785 from kashalls/check-if-curl-installed
Add curl to configure.sh dependency install
2023-10-01 21:16:51 +01:00
Jordan Jones
515b8ba94c chore(tests): sneak in the tiny misspelling 2023-10-01 08:29:47 -07:00
Jordan Jones
e9bdf80f84 chore(configure): add curl to install dependencies
This helps protect cases where new containers don't have curl installed by default.
2023-10-01 08:28:11 -07:00
Simon Larsen
31bcfc7531 fix compile err 2023-10-01 14:52:56 +01:00
Simon Larsen
4046da0523 fix model permissions for clickhouse 2023-10-01 14:35:46 +01:00
Simon Larsen
e728501ddb add create by 2023-10-01 12:46:51 +01:00
1124 changed files with 83799 additions and 328343 deletions

View File

@@ -6,6 +6,7 @@ node_modules
# dependencies
/node_modules
node_modules
**/node_modules
.idea
# testing
@@ -53,4 +54,7 @@ tests/coverage
settings.json
GoSDK/tester/
GoSDK/tester/
Llama/Models/*

View File

@@ -87,10 +87,11 @@
],
// https://www.npmjs.com/package/eslint-plugin-unused-imports
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["error", {"argsIgnorePattern": "^_"}],
"@typescript-eslint/no-extra-non-null-assertion": "error",
"@typescript-eslint/no-floating-promises":"error",
"@typescript-eslint/await-thenable":"error",
"@typescript-eslint/no-non-null-asserted-optional-chain": "error",
"unused-imports/no-unused-imports": "error",
"unused-imports/no-unused-vars": [
"error",
@@ -178,11 +179,13 @@
"ignoreReadBeforeAssign": false
}
],
"no-var": "error"
"no-var": "error",
"object-curly-spacing": ["error", "always"],
"no-unneeded-ternary": "error"
},
"settings": {
"react": {
"version": "18.1.0"
}
}
}
}

View File

@@ -34,5 +34,8 @@ If applicable, add screenshots to help explain your problem.
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Deployment Type**
Is this issue on SaaS (at https://oneuptime.com) or self hosted (the version that you deployed on your server)?
**Additional context**
Add any other context about the problem here.

View File

@@ -1,20 +0,0 @@
name: Code Analysis
on:
push:
branches:
- master
pull_request:
types: [opened, synchronize, reopened]
jobs:
sonarcloud:
name: SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

View File

@@ -23,7 +23,7 @@ jobs:
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd CommonUI && npm install --force
- run: cd Accounts && npm install && npm run compile
- run: cd Accounts && npm install && npm run compile && npm run dep-check
compile-api-reference:
runs-on: ubuntu-latest
@@ -37,21 +37,7 @@ jobs:
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd ApiReference && npm install && npm run compile
compile-link-shortener:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd LinkShortener && npm install && npm run compile
- run: cd ApiReference && npm install && npm run compile && npm run dep-check
compile-common-server:
runs-on: ubuntu-latest
@@ -64,7 +50,7 @@ jobs:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install && npm run compile
- run: cd CommonServer && npm install && npm run compile && npm run dep-check
compile-common-ui:
runs-on: ubuntu-latest
@@ -77,7 +63,7 @@ jobs:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonUI && npm install --force && npm run compile
- run: cd CommonUI && npm install --force && npm run compile && npm run dep-check
compile-common:
runs-on: ubuntu-latest
@@ -89,7 +75,7 @@ jobs:
with:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd Model && npm install && npm run compile
- run: cd Model && npm install && npm run compile && npm run dep-check
compile-dashboard-api:
runs-on: ubuntu-latest
@@ -104,7 +90,7 @@ jobs:
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd CommonUI && npm install --force
- run: cd DashboardAPI && npm install && npm run compile
- run: cd DashboardAPI && npm install && npm run compile && npm run dep-check
compile-admin-dashboard:
@@ -120,7 +106,7 @@ jobs:
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd CommonUI && npm install --force
- run: cd AdminDashboard && npm install && npm run compile
- run: cd AdminDashboard && npm install && npm run compile && npm run dep-check
compile-dashboard:
runs-on: ubuntu-latest
@@ -135,21 +121,7 @@ jobs:
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd CommonUI && npm install --force
- run: cd Dashboard && npm install && npm run compile
compile-file:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd File && npm install && npm run compile
- run: cd Dashboard && npm install && npm run compile && npm run dep-check
compile-home:
runs-on: ubuntu-latest
@@ -163,63 +135,8 @@ jobs:
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd Home && npm install && npm run compile
- run: cd Home && npm install && npm run compile && npm run dep-check
compile-identity:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd Identity && npm install && npm run compile
compile-integrations:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd Integration && npm install && npm run compile
compile-licensing:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd Licensing && npm install && npm run compile
compile-notification:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd Notification && npm install && npm run compile
compile-model:
runs-on: ubuntu-latest
@@ -232,7 +149,18 @@ jobs:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd Model && npm install && npm run compile
- run: cd Model && npm install && npm run compile && npm run dep-check
compile-e2e:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 18.3.0
- run: cd E2E && npm install && npm run compile && npm run dep-check
compile-probe:
runs-on: ubuntu-latest
@@ -246,9 +174,9 @@ jobs:
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd Probe && npm install && npm run compile
- run: cd Probe && npm install && npm run compile && npm run dep-check
compile-probe-api:
compile-ingestor:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
@@ -260,23 +188,9 @@ jobs:
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd ProbeAPI && npm install && npm run compile
- run: cd Ingestor && npm install && npm run compile && npm run dep-check
compile-realtime:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd Realtime && npm install && npm run compile
compile-status-page:
runs-on: ubuntu-latest
env:
@@ -290,7 +204,7 @@ jobs:
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd CommonUI && npm install --force
- run: cd StatusPage && npm install && npm run compile
- run: cd StatusPage && npm install && npm run compile && npm run dep-check
compile-workers:
runs-on: ubuntu-latest
@@ -305,7 +219,7 @@ jobs:
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd CommonUI && npm install --force
- run: cd Workers && npm install && npm run compile
- run: cd Workers && npm install && npm run compile && npm run dep-check
compile-workflow:
runs-on: ubuntu-latest
@@ -319,7 +233,7 @@ jobs:
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd Workflow && npm install && npm run compile
- run: cd Workflow && npm install && npm run compile && npm run dep-check
compile-test-server:
runs-on: ubuntu-latest
@@ -333,4 +247,4 @@ jobs:
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd TestServer && npm install && npm run compile
- run: cd TestServer && npm install && npm run compile && npm run dep-check

View File

@@ -25,7 +25,8 @@ jobs:
- name: build docker image
run: sudo docker build -f ./Accounts/Dockerfile .
docker-build-link-shortener:
docker-build-otel-collector:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
@@ -38,7 +39,7 @@ jobs:
# build image for accounts service
- name: build docker image
run: sudo docker build -f ./LinkShortener/Dockerfile .
run: sudo docker build -f ./OTelCollector/Dockerfile .
docker-build-api-reference:
runs-on: ubuntu-latest
@@ -101,21 +102,6 @@ jobs:
- name: build docker image
run: sudo docker build -f ./Dashboard/Dockerfile .
docker-build-file:
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 image for file
- name: build docker image
run: sudo docker build -f ./File/Dockerfile .
docker-build-haraka:
runs-on: ubuntu-latest
env:
@@ -147,67 +133,6 @@ jobs:
- name: build docker image
run: sudo docker build -f ./Home/Dockerfile .
docker-build-identity:
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 image for identity
- name: build docker image
run: sudo docker build -f ./Identity/Dockerfile .
docker-build-integrations:
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 image for licensing
- name: build docker image
run: sudo docker build -f ./Integration/Dockerfile .
docker-build-licensing:
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 image for licensing
- name: build docker image
run: sudo docker build -f ./Licensing/Dockerfile .
docker-build-notification:
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 image for mail service
- name: build docker image
run: sudo docker build -f ./Notification/Dockerfile .
docker-build-probe:
runs-on: ubuntu-latest
env:
@@ -223,7 +148,7 @@ jobs:
- name: build docker image
run: sudo docker build -f ./Probe/Dockerfile .
docker-build-probe-api:
docker-build-ingestor:
runs-on: ubuntu-latest
env:
CI_PIPELINE_ID: ${{github.run_number}}
@@ -236,22 +161,7 @@ jobs:
# build image probe api
- name: build docker image
run: sudo docker build -f ./ProbeAPI/Dockerfile .
docker-build-realtime:
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 image for home
- name: build docker image
run: sudo docker build -f ./Realtime/Dockerfile .
run: sudo docker build -f ./Ingestor/Dockerfile .
docker-build-status-page:
runs-on: ubuntu-latest

View File

@@ -67,7 +67,6 @@ jobs:
ssh-add - <<< '${{ secrets.HELM_CHART_GITHUB_REPO_DEPLOY_KEY }}'
git clone git@github.com:OneUptime/helm-chart.git
cd oneuptime/HelmChart/Public
cp README.md oneuptime/README.md
helm lint oneuptime
helm package --sign --key 'key@oneuptime.com' --keyring ~/.gnupg/secring.gpg oneuptime --version 7.0.${{needs.generate-build-number.outputs.build_number}} --app-version 7.0.${{needs.generate-build-number.outputs.build_number}}
echo "Helm Chart Package created successfully"
@@ -76,7 +75,6 @@ jobs:
echo "Copying the package to helm-chart repo"
rm -r ../../helm-chart/oneuptime
cp -r ./Public/* ../../helm-chart
cp ./Public/README.md ../../helm-chart/oneuptime/README.md
echo "Package copied successfully"
cd .. && cd .. && cd helm-chart
echo "Updating helm-chart repo"
@@ -209,6 +207,68 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
otel-collector-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/otel-collector
ghcr.io/oneuptime/otel-collector
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 otel-collector.
- 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: ./OTelCollector/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}}
workflow-docker-image-deploy:
needs: generate-build-number
runs-on: ubuntu-latest
@@ -269,65 +329,6 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
link-shortener-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/link-shortener
ghcr.io/oneuptime/link-shortener
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 link-shortener.
- 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: ./LinkShortener/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}}
workers-docker-image-deploy:
needs: generate-build-number
@@ -509,7 +510,7 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
realtime-docker-image-deploy:
ingestor-docker-image-deploy:
needs: generate-build-number
runs-on: ubuntu-latest
steps:
@@ -518,8 +519,8 @@ jobs:
uses: docker/metadata-action@v4
with:
images: |
oneuptime/realtime
ghcr.io/oneuptime/realtime
oneuptime/ingestor
ghcr.io/oneuptime/ingestor
tags: |
type=raw,value=release,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}},pattern={{version}},enable=true
@@ -541,7 +542,7 @@ jobs:
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy realtime.
# Build and deploy ingestor.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
@@ -559,247 +560,7 @@ jobs:
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./Realtime/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}}
probe-api-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/probe-api
ghcr.io/oneuptime/probe-api
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 probe-api.
- 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: ./ProbeAPI/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}}
notification-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/notification
ghcr.io/oneuptime/notification
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 notification.
- 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: ./Notification/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}}
licensing-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/licensing
ghcr.io/oneuptime/licensing
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 licensing.
- 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: ./Licensing/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}}
integrations-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/integrations
ghcr.io/oneuptime/integrations
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 integrations.
- 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: ./Integration/Dockerfile
file: ./Ingestor/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
@@ -869,65 +630,6 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
identity-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/identity
ghcr.io/oneuptime/identity
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 identity.
- 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: ./Identity/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}}
home-docker-image-deploy:
needs: generate-build-number
@@ -1050,67 +752,6 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
file-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/file
ghcr.io/oneuptime/file
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 file.
- 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: ./File/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

View File

@@ -202,7 +202,9 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
link-shortener-docker-image-deploy:
otel-collector-docker-image-deploy:
needs: generate-build-number
runs-on: ubuntu-latest
steps:
@@ -211,8 +213,8 @@ jobs:
uses: docker/metadata-action@v4
with:
images: |
oneuptime/link-shortener
ghcr.io/oneuptime/link-shortener
oneuptime/otel-collector
ghcr.io/oneuptime/otel-collector
tags: |
type=raw,value=test,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
@@ -235,7 +237,7 @@ jobs:
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy link-shortener.
# Build and deploy otel-collector.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
@@ -253,7 +255,7 @@ jobs:
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./LinkShortener/Dockerfile
file: ./OTelCollector/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
@@ -448,7 +450,7 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
realtime-docker-image-deploy:
ingestor-docker-image-deploy:
needs: generate-build-number
runs-on: ubuntu-latest
steps:
@@ -457,8 +459,8 @@ jobs:
uses: docker/metadata-action@v4
with:
images: |
oneuptime/realtime
ghcr.io/oneuptime/realtime
oneuptime/ingestor
ghcr.io/oneuptime/ingestor
tags: |
type=raw,value=test,enable=true
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true
@@ -481,7 +483,7 @@ jobs:
- name: Generate Dockerfile from Dockerfile.tpl
run: npm run prerun
# Build and deploy realtime.
# Build and deploy ingestor.
- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
@@ -499,251 +501,7 @@ jobs:
- name: Build and push
uses: docker/build-push-action@v4
with:
file: ./Realtime/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}}
probe-api-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/probe-api
ghcr.io/oneuptime/probe-api
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 probe-api.
- 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: ./ProbeAPI/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}}
notification-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/notification
ghcr.io/oneuptime/notification
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 notification.
- 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: ./Notification/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}}
licensing-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/licensing
ghcr.io/oneuptime/licensing
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 licensing.
- 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: ./Licensing/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}}
integrations-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/integrations
ghcr.io/oneuptime/integrations
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 integrations.
- 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: ./Integration/Dockerfile
file: ./Ingestor/Dockerfile
context: .
platforms: linux/amd64,linux/arm64
push: true
@@ -814,67 +572,6 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
identity-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/identity
ghcr.io/oneuptime/identity
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 identity.
- 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: ./Identity/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}}
home-docker-image-deploy:
needs: generate-build-number
runs-on: ubuntu-latest
@@ -998,67 +695,6 @@ jobs:
GIT_SHA=${{ github.sha }}
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}}
file-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/file
ghcr.io/oneuptime/file
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 file.
- 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: ./File/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

View File

@@ -19,5 +19,6 @@ jobs:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd Model && npm install
- run: cd CommonServer && npm install
- run: cd CommonServer && bash test-setup.sh
- run: export $(grep -v '^#' config.env | xargs) && cd CommonServer && npm install && npm run test
- run: export $(grep -v '^#' config.env | xargs) && cd CommonServer && rm -rf build && npm run test

View File

@@ -1,4 +1,4 @@
name: Probe Api Test
name: Ingestor Test
on:
pull_request:
@@ -17,5 +17,5 @@ jobs:
- uses: actions/setup-node@v2
with:
node-version: 18.3.0
- run: cd ProbeAPI && npm install && npm run test
- run: cd Ingestor && npm install && npm run test

View File

@@ -9,7 +9,7 @@ on:
jobs:
test:
runs-on: ubuntu-latest
runs-on: self-hosted # this needs to be self-hosted because ICMP checks are disbled in hosted runners
env:
CI_PIPELINE_ID: ${{github.run_number}}
steps:
@@ -19,5 +19,6 @@ jobs:
node-version: 18.3.0
- run: cd Common && npm install
- run: cd CommonServer && npm install
- run: cd Probe && npm install && npm run test
- run: cd Probe && npm install
- run: cd Probe && npm run test

9
.gitignore vendored
View File

@@ -13,7 +13,7 @@ node_modules
.idea
# testing
/coverage
**/coverage
# production
/build
@@ -92,3 +92,10 @@ Haraka/dkim/keys/public_base64.txt
.eslintcache
HelmChart/Values/*.values.yaml
Llama/Models/tokenizer*
Llama/Models/llama*
Llama/__pycache__/*
Examples/otel-dotnet/obj

117
.vscode/launch.json vendored
View File

@@ -55,20 +55,6 @@
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/LinkShortener",
"name": "Link Shortener: Debug with Docker",
"port": 9826,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/TestServer",
@@ -99,8 +85,8 @@
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/ProbeAPI",
"name": "Probe API: Debug with Docker",
"localRoot": "${workspaceFolder}/Ingestor",
"name": "Ingestor: Debug with Docker",
"port": 9932,
"remoteRoot": "/usr/src/app",
"request": "attach",
@@ -125,34 +111,6 @@
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/data-ingestor",
"name": "Data Ingestor: Debug with Docker",
"port": 9338,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/Notification",
"name": "Notification: Debug with Docker",
"port": 9111,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/Realtime",
@@ -197,7 +155,7 @@
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/ProbeAPI",
"localRoot": "${workspaceFolder}/Ingestor",
"name": "Probe API: Debug with Docker",
"port": 9251,
"remoteRoot": "/usr/src/app",
@@ -209,20 +167,6 @@
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/Identity",
"name": "Identity: Debug with Docker",
"port": 9132,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/Identity",
@@ -237,48 +181,6 @@
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/Alert",
"name": "Alert: Debug with Docker",
"port": 9133,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/Alert",
"name": "Integration: Debug with Docker",
"port": 9134,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/licensing",
"name": "Licensing: Debug with Docker",
"port": 9233,
"remoteRoot": "/usr/src/app",
"request": "attach",
"skipFiles": [
"<node_internals>/**"
],
"type": "node",
"restart": true,
"autoAttachChildProcesses": true
},
{
"address": "127.0.0.1",
"localRoot": "${workspaceFolder}/HttpTestServer",
@@ -348,6 +250,19 @@
"debug:test"
],
},
{
"name": "Probe: Debug Tests",
"type": "node",
"restart": true,
"autoAttachChildProcesses": true,
"request": "launch",
"cwd": "${workspaceRoot}/Probe",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"debug:test"
],
},
{
"name": "Accounts: Debug Local Files",
"type": "node",

35
Accounts/Dockerfile.tpl Executable file → Normal file
View File

@@ -3,12 +3,10 @@
#
# Pull base image nodejs image.
FROM node:current-alpine AS base
FROM node:21.2-alpine3.18
USER root
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-retry-maxtimeout 6000000
RUN npm config set fetch-retry-mintimeout 1000000
ARG GIT_SHA
ARG APP_VERSION
@@ -26,9 +24,6 @@ SHELL ["/bin/bash", "-c"]
RUN mkdir /usr/src
# Install common
FROM base AS common
WORKDIR /usr/src/Common
COPY ./Common/package*.json /usr/src/Common/
RUN npm install
@@ -36,9 +31,6 @@ COPY ./Common /usr/src/Common
# Install Model
FROM base AS model
WORKDIR /usr/src/Model
COPY ./Model/package*.json /usr/src/Model/
RUN npm install
@@ -46,9 +38,6 @@ COPY ./Model /usr/src/Model
# Install CommonServer
FROM base AS commonserver
WORKDIR /usr/src/CommonServer
COPY ./CommonServer/package*.json /usr/src/CommonServer/
RUN npm install
@@ -59,7 +48,6 @@ COPY ./CommonServer /usr/src/CommonServer
# Install CommonUI
FROM base AS commonui
WORKDIR /usr/src/CommonUI
COPY ./CommonUI/package*.json /usr/src/CommonUI/
RUN npm install --force
@@ -67,22 +55,6 @@ COPY ./CommonUI /usr/src/CommonUI
#SET ENV Variables
# Install app
FROM base AS app
WORKDIR /usr/src/Common
COPY --from=common /usr/src/Common .
WORKDIR /usr/src/Model
COPY --from=model /usr/src/Model .
WORKDIR /usr/src/CommonServer
COPY --from=commonserver /usr/src/CommonServer .
WORKDIR /usr/src/CommonUI
COPY --from=commonui /usr/src/CommonUI .
ENV PRODUCTION=true
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
@@ -97,17 +69,20 @@ 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" ]
{{ else }}
# Copy app source
COPY ./Accounts /usr/src/app
# Bundle app source
RUN npm run build
#Run the app
CMD [ "npm", "start" ]

View File

@@ -14,11 +14,13 @@ const init: () => Promise<void> = async (): Promise<void> => {
} catch (err) {
logger.error('App Init Failed:');
logger.error(err);
throw err;
}
};
init().catch((err: Error) => {
logger.error(err);
logger.info('Exiting node process');
process.exit(1);
});

25902
Accounts/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -2,31 +2,16 @@
"name": "accounts",
"version": "0.1.0",
"private": false,
"dependencies": {
"Common": "file:../Common",
"CommonServer": "file:../CommonServer",
"CommonUI": "file:../CommonUI",
"crypto-js": "^4.1.1",
"formik": "^2.2.9",
"Model": "file:../Model",
"react": "^18.1.0",
"react-dom": "^18.1.0",
"react-router": "^6.3.0",
"react-router-dom": "^6.3.0",
"react-scripts": "5.0.1",
"the-new-css-reset": "^1.7.3",
"typescript": "^4.6.4",
"use-async-effect": "^2.2.7"
},
"scripts": {
"dev": "npx nodemon",
"build": "webpack build --mode=production",
"test": "",
"compile": "tsc",
"clear-modules": "rm -rf node_modules && rm package-lock.json && npm install",
"start": "node --require ts-node/register Serve.ts",
"audit": "npm audit --audit-level=low",
"configure": "npx npm-force-resolutions || echo 'No package-lock.json file. Skipping force resolutions'",
"dep-check": "depcheck ./ --skip-missing=true'"
"dep-check": "npm install -g depcheck && depcheck ./ --skip-missing=true"
},
"browserslist": {
"production": [
@@ -40,27 +25,30 @@
"last 1 safari version"
]
},
"dependencies": {
"Common": "file:../Common",
"CommonServer": "file:../CommonServer",
"CommonUI": "file:../CommonUI",
"css-loader": "^6.8.1",
"dotenv": "^16.3.1",
"express": "^4.18.2",
"file-loader": "^6.2.0",
"Model": "file:../Model",
"react": "^18.2.0",
"react-dom": "^18.1.0",
"react-router-dom": "^6.18.0",
"sass-loader": "^13.3.2",
"style-loader": "^3.3.3",
"ts-loader": "^9.5.1",
"use-async-effect": "^2.2.7"
},
"devDependencies": {
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.2.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.1",
"@types/node": "^16.11.35",
"@types/react": "^18.0.9",
"@types/react": "^18.2.38",
"@types/react-dom": "^18.0.4",
"@types/react-router-dom": "^5.3.3",
"css-loader": "^6.7.1",
"customize-cra": "^1.0.0",
"dotenv-webpack": "^7.1.0",
"nodemon": "^2.0.20",
"process": "0.11.10",
"react-app-rewired": "^2.2.1",
"sass": "^1.51.0",
"sass-loader": "^12.6.0",
"ts-loader": "^9.3.0",
"ts-node": "^10.9.1",
"webpack": "^5.76.0",
"webpack-cli": "^4.9.2",
"webpack-dev-server": "^4.9.0"
"webpack": "^5.76.0"
}
}

View File

@@ -47,7 +47,7 @@ const ForgotPassword: () => JSX.Element = () => {
modelType={User}
name="Forgot Password"
id="login-form"
apiUrl={apiUrl}
createOrUpdateApiUrl={apiUrl}
fields={[
{
field: {

View File

@@ -87,7 +87,7 @@ const LoginPage: () => JSX.Element = () => {
},
},
]}
apiUrl={apiUrl}
createOrUpdateApiUrl={apiUrl}
formType={FormType.Create}
submitButtonText={'Login'}
onSuccess={(
@@ -107,7 +107,7 @@ const LoginPage: () => JSX.Element = () => {
maxPrimaryButtonWidth={true}
footer={
<div className="actions pointer text-center mt-4 hover:underline fw-semibold">
<p>
<div>
{!showSsoTip && (
<div
onClick={() => {
@@ -128,13 +128,13 @@ const LoginPage: () => JSX.Element = () => {
your project.
</div>
)}
</p>
</div>
</div>
}
/>
</div>
<div className="mt-10 text-center">
<p className="text-muted mb-0 text-gray-500">
<div className="text-muted mb-0 text-gray-500">
Don&apos;t have an account?{' '}
<Link
to={new Route('/accounts/register')}
@@ -142,7 +142,7 @@ const LoginPage: () => JSX.Element = () => {
>
Register.
</Link>
</p>
</div>
</div>
</div>
</div>

View File

@@ -47,19 +47,19 @@ const RegisterPage: () => JSX.Element = () => {
try {
const reseller: ListResult<Reseller> =
await ModelAPI.getList<Reseller>(
Reseller,
{
await ModelAPI.getList<Reseller>({
modelType: Reseller,
query: {
resellerId: resellerId,
},
1,
0,
{
limit: 1,
skip: 0,
select: {
hidePhoneNumberOnSignup: true,
},
{},
{}
);
sort: {},
requestOptions: {},
});
if (reseller.data.length > 0) {
setResller(reseller.data[0]);
@@ -167,7 +167,7 @@ const RegisterPage: () => JSX.Element = () => {
title: 'Confirm Password',
overrideFieldKey: 'confirmPassword',
required: true,
forceShow: true,
showEvenIfPermissionDoesNotExist: true,
},
]);
@@ -209,7 +209,7 @@ const RegisterPage: () => JSX.Element = () => {
initialValues={initialValues}
maxPrimaryButtonWidth={true}
fields={formFields}
apiUrl={apiUrl}
createOrUpdateApiUrl={apiUrl}
onBeforeCreate={(item: User): Promise<User> => {
const utmParams: Dictionary<string> =
UserUtil.getUtmParams();

View File

@@ -85,7 +85,7 @@ const RegisterPage: () => JSX.Element = () => {
required: true,
},
]}
apiUrl={apiUrl}
createOrUpdateApiUrl={apiUrl}
formType={FormType.Create}
submitButtonText={'Reset Password'}
onSuccess={() => {

View File

@@ -30,15 +30,15 @@ const VerifyEmail: () => JSX.Element = () => {
Navigation.getLastParam()?.toString().replace('/', '') || ''
);
await ModelAPI.createOrUpdate<EmailVerificationToken>(
emailverificationToken,
EmailVerificationToken,
FormType.Create,
{},
{
await ModelAPI.createOrUpdate<EmailVerificationToken>({
model: emailverificationToken,
modelType: EmailVerificationToken,
formType: FormType.Create,
miscDataProps: {},
requestOptions: {
overrideRequestUrl: apiUrl,
}
);
},
});
} catch (err) {
setError(API.getFriendlyMessage(err));
}

View File

@@ -6,24 +6,25 @@ import Name from 'Common/Types/Name';
import { DASHBOARD_URL } from 'CommonUI/src/Config';
import { JSONObject } from 'Common/Types/JSON';
import User from 'Model/Models/User';
import JSONFunctions from 'Common/Types/JSONFunctions';
import Analytics from 'CommonUI/src/Utils/Analytics';
import BaseModel from 'Common/Models/BaseModel';
export default abstract class LoginUtil {
public static login(value: JSONObject): void {
const user: User = JSONFunctions.fromJSON(
const user: User = BaseModel.fromJSON(
value['user'] as JSONObject,
User
) as User;
const token: string = value['token'] as string;
UserUtil.setAccessToken(token);
UserUtil.setEmail(user.email as Email);
UserUtil.setUserId(user.id as ObjectID);
UserUtil.setName(user.name || new Name(''));
UserUtil.setIsMasterAdmin(user.isMasterAdmin as boolean);
if (user.profilePictureId) {
UserUtil.setProfilePicId(user.profilePictureId);
}
Analytics.userAuth(user.email!);
// go to dashboard, user should be logged in.

View File

@@ -8,6 +8,7 @@
},
"compilerOptions": {
/* Visit https://aka.ms/tsconfig.json to read more about this file */
/* Projects */
// "incremental": true, /* Enable incremental compilation */
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
@@ -15,43 +16,47 @@
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
/* Language and Environment */
"target": "es2017" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
"jsx": "react" /* Specify what JSX code is generated. */,
"experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
"emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
"experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
"emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */
// "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
/* Modules */
"module": "es2022" /* Specify what module code is generated. */,
// "rootDir": "./", /* Specify the root folder within your source files. */
"moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
"moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
"typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */
"types": [
"node"
], /* Specify type package names to be included without being referenced in a source file. */
"typeRoots": [
"./node_modules/@types"
], /* Specify multiple folders that act like `./node_modules/@types`. */
"types": ["node"], /* Specify type package names to be included without being referenced in a source file. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
// "resolveJsonModule": true, /* Enable importing .json files */
// "noResolve": true, /* Disallow `import`s, `require`s or `<reference>`s from expanding the number of files TypeScript should add to a project. */
/* JavaScript Support */
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
/* Emit */
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
"sourceMap": true, /* Create source map files for emitted JavaScript files. */
"sourceMap": true, /* Create source map files for emitted JavaScript files. */
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */
"outDir": "./build/dist", /* Specify an output folder for all emitted files. */
"outDir": "./build/dist", /* Specify an output folder for all emitted files. */
// "removeComments": true, /* Disable emitting comments. */
// "noEmit": true, /* Disable emitting files from a compilation. */
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
@@ -69,34 +74,37 @@
// "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
/* Interop Constraints */
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
"esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */,
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
"forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
/* Type Checking */
"strict": true /* Enable all strict type-checking options. */,
"noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */
"strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */
"strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
"strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */
"strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
"noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */
"useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */
"alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
"noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */
"noUnusedParameters": true, /* Raise an error when a function parameter isn't read */
"exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
"noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
"noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
"noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */
"noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
"noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */
"noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */
"strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */
"strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
"strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */
"strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
"noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */
"useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */
"alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
"noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */
"noUnusedParameters": true, /* Raise an error when a function parameter isn't read */
"exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
"noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
"noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
"noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */
"noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
"noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
/* Completeness */
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
"skipLibCheck": true /* Skip type checking all .d.ts files. */
}
}
}

View File

@@ -1,3 +1,8 @@
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');

33
AdminDashboard/Dockerfile.tpl Executable file → Normal file
View File

@@ -3,12 +3,10 @@
#
# Pull base image nodejs image.
FROM node:current-alpine AS base
FROM node:21.2-alpine3.18
USER root
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-retry-maxtimeout 6000000
RUN npm config set fetch-retry-mintimeout 1000000
ARG GIT_SHA
ARG APP_VERSION
@@ -26,18 +24,12 @@ SHELL ["/bin/bash", "-c"]
RUN mkdir /usr/src
# Install common
FROM base AS common
WORKDIR /usr/src/Common
COPY ./Common/package*.json /usr/src/Common/
RUN npm install
COPY ./Common /usr/src/Common
# Install Model
FROM base AS model
WORKDIR /usr/src/Model
COPY ./Model/package*.json /usr/src/Model/
RUN npm install
@@ -45,9 +37,6 @@ COPY ./Model /usr/src/Model
# Install CommonServer
FROM base AS commonserver
WORKDIR /usr/src/CommonServer
COPY ./CommonServer/package*.json /usr/src/CommonServer/
RUN npm install
@@ -58,29 +47,12 @@ COPY ./CommonServer /usr/src/CommonServer
# Install CommonUI
FROM base AS commonui
WORKDIR /usr/src/CommonUI
COPY ./CommonUI/package*.json /usr/src/CommonUI/
RUN npm install --force
COPY ./CommonUI /usr/src/CommonUI
#SET ENV Variables
# Install app
FROM base AS app
WORKDIR /usr/src/Common
COPY --from=common /usr/src/Common .
WORKDIR /usr/src/Model
COPY --from=model /usr/src/Model .
WORKDIR /usr/src/CommonServer
COPY --from=commonserver /usr/src/CommonServer .
WORKDIR /usr/src/CommonUI
COPY --from=commonui /usr/src/CommonUI .
ENV PRODUCTION=true
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
@@ -95,10 +67,13 @@ 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

View File

@@ -13,11 +13,13 @@ const init: () => Promise<void> = async (): Promise<void> => {
} catch (err) {
logger.error('App Init Failed:');
logger.error(err);
throw err;
}
};
init().catch((err: Error) => {
logger.error(err);
logger.info('Exiting node process');
process.exit(1);
});

File diff suppressed because it is too large Load Diff

View File

@@ -3,26 +3,16 @@
"version": "0.1.0",
"private": false,
"dependencies": {
"@headlessui/react": "^1.7.7",
"@heroicons/react": "^2.0.13",
"@stripe/react-stripe-js": "^1.15.0",
"@stripe/stripe-js": "^1.44.1",
"Common": "file:../Common",
"CommonServer": "file:../CommonServer",
"CommonUI": "file:../CommonUI",
"dotenv": "^16.3.1",
"file-loader": "^6.2.0",
"Model": "file:../Model",
"react": "^18.1.0",
"react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1",
"react": "^18.2.0",
"react-dom": "^18.1.0",
"react-icons": "^4.4.0",
"react-router": "^6.3.0",
"react-router-dom": "^6.3.0",
"reactflow": "^11.5.3",
"stripe": "^11.0.0",
"the-new-css-reset": "^1.7.3",
"typescript": "^4.6.4",
"use-async-effect": "^2.2.6"
"react-router-dom": "^6.18.0",
"style-loader": "^3.3.3"
},
"scripts": {
"dev": "npx nodemon",
@@ -30,10 +20,11 @@
"test": "react-app-rewired test",
"eject": "webpack eject",
"compile": "tsc",
"clear-modules": "rm -rf node_modules && rm package-lock.json && npm install",
"start": "node --require ts-node/register Serve.ts",
"audit": "npm audit --audit-level=low",
"configure": "npx npm-force-resolutions || echo 'No package-lock.json file. Skipping force resolutions'",
"dep-check": "depcheck ./ --skip-missing=true'"
"dep-check": "npm install -g depcheck && depcheck ./ --skip-missing=true"
},
"browserslist": {
"production": [
@@ -48,24 +39,17 @@
]
},
"devDependencies": {
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.2.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.1",
"@types/node": "^16.11.35",
"@types/react": "^18.0.9",
"@types/react": "^18.2.38",
"@types/react-dom": "^18.0.4",
"@types/react-router-dom": "^5.3.3",
"css-loader": "^6.7.1",
"customize-cra": "^1.0.0",
"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.3.0",
"ts-loader": "^9.5.1",
"ts-node": "^10.9.1",
"webpack": "^5.76.0",
"webpack-cli": "^4.9.2",
"webpack-dev-server": "^4.9.0"
"webpack": "^5.76.0"
}
}

View File

@@ -34,14 +34,6 @@ const DashboardFooter: () => JSX.Element = () => {
name: 'Dashboard',
path: '/dashboard',
},
{
name: 'Notification',
path: '/notification',
},
{
name: 'Identity Service',
path: '/identity',
},
];
for (const app of apps) {

View File

@@ -14,7 +14,7 @@ import ProjectUtil from 'CommonUI/src/Utils/Project';
import { BILLING_ENABLED, getAllEnvVars } from 'CommonUI/src/Config';
import SubscriptionPlan from 'Common/Types/Billing/SubscriptionPlan';
import Field from 'CommonUI/src/Components/Forms/Types/Field';
import { RadioButton } from 'CommonUI/src/Components/RadioButtons/RadioButtons';
import { RadioButton } from 'CommonUI/src/Components/RadioButtons/GroupRadioButtons';
import Toggle from 'CommonUI/src/Components/Toggle/Toggle';
export interface ComponentProps {

View File

@@ -9,12 +9,21 @@ import UserUtil from 'CommonUI/src/Utils/User';
import Navigation from 'CommonUI/src/Utils/Navigation';
import { ACCOUNTS_URL } from 'CommonUI/src/Config';
import UiAnalytics from 'CommonUI/src/Utils/Analytics';
import ErrorMessage from 'CommonUI/src/Components/ErrorMessage/ErrorMessage';
const Logout: FunctionComponent = (): ReactElement => {
useEffect(() => {
const [error, setError] = React.useState<string | null>(null);
const logout: Function = async () => {
UiAnalytics.logout();
UserUtil.logout();
await UserUtil.logout();
Navigation.navigate(ACCOUNTS_URL);
};
useEffect(() => {
logout().catch((error: Error) => {
setError(error.message || error.toString());
});
}, []);
return (
@@ -35,7 +44,8 @@ const Logout: FunctionComponent = (): ReactElement => {
},
]}
>
<PageLoader isVisible={true} />
{!error ? <PageLoader isVisible={true} /> : <></>}
{error ? <ErrorMessage error={error} /> : <></>}
</Page>
);
};

View File

@@ -17,7 +17,7 @@ import User from 'Model/Models/User';
import { BILLING_ENABLED, getAllEnvVars } from 'CommonUI/src/Config';
import Field from 'CommonUI/src/Components/Forms/Types/Field';
import SubscriptionPlan from 'Common/Types/Billing/SubscriptionPlan';
import { RadioButton } from 'CommonUI/src/Components/RadioButtons/RadioButtons';
import { RadioButton } from 'CommonUI/src/Components/RadioButtons/GroupRadioButtons';
import Toggle from 'CommonUI/src/Components/Toggle/Toggle';
import AdminModelAPI from '../../Utils/ModelAPI';

View File

@@ -187,6 +187,7 @@ const Settings: FunctionComponent = (): ReactElement => {
<Statusbubble
text={'Connected'}
color={Green}
shouldAnimate={true}
/>
);
}
@@ -195,6 +196,7 @@ const Settings: FunctionComponent = (): ReactElement => {
<Statusbubble
text={'Disconnected'}
color={Red}
shouldAnimate={false}
/>
);
},

View File

@@ -29,14 +29,14 @@ const Settings: FunctionComponent = (): ReactElement => {
setIsLoading(true);
const globalConfig: GlobalConfig | null =
await ModelAPI.getItem<GlobalConfig>(
GlobalConfig,
ObjectID.getZeroObjectID(),
{
await ModelAPI.getItem<GlobalConfig>({
modelType: GlobalConfig,
id: ObjectID.getZeroObjectID(),
select: {
_id: true,
emailServerType: true,
}
);
},
});
if (globalConfig) {
setemailServerType(

View File

@@ -38,7 +38,7 @@
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
"typeRoots": [
"./node_modules/@types"
], /* Specify multiple folders that act like `./node_modules/@types`. */
"types": ["node"], /* Specify type package names to be included without being referenced in a source file. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */

View File

@@ -1,3 +1,8 @@
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');

22
ApiReference/Dockerfile.tpl Executable file → Normal file
View File

@@ -1,10 +1,8 @@
# Pull base image nodejs image.
FROM node:current-alpine AS base
FROM node:21.2-alpine3.18
USER root
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-retry-maxtimeout 6000000
RUN npm config set fetch-retry-mintimeout 1000000
ARG GIT_SHA
ARG APP_VERSION
@@ -22,18 +20,12 @@ SHELL ["/bin/bash", "-c"]
RUN mkdir /usr/src
# Install common
FROM base AS common
WORKDIR /usr/src/Common
COPY ./Common/package*.json /usr/src/Common/
RUN npm install
COPY ./Common /usr/src/Common
# Install Model
FROM base AS model
WORKDIR /usr/src/Model
COPY ./Model/package*.json /usr/src/Model/
RUN npm install
@@ -41,9 +33,6 @@ COPY ./Model /usr/src/Model
# Install CommonServer
FROM base AS commonserver
WORKDIR /usr/src/CommonServer
COPY ./CommonServer/package*.json /usr/src/CommonServer/
RUN npm install
@@ -52,16 +41,7 @@ COPY ./CommonServer /usr/src/CommonServer
# Install app
FROM base AS app
WORKDIR /usr/src/Common
COPY --from=common /usr/src/Common .
WORKDIR /usr/src/Model
COPY --from=model /usr/src/Model .
WORKDIR /usr/src/CommonServer
COPY --from=commonserver /usr/src/CommonServer .
ENV PRODUCTION=true

View File

@@ -93,11 +93,13 @@ const init: () => Promise<void> = async (): Promise<void> => {
} catch (err) {
logger.error('App Init Failed:');
logger.error(err);
throw err;
}
};
init().catch((err: Error) => {
logger.error(err);
logger.info('Exiting node process');
process.exit(1);
});

View File

@@ -1,4 +1,4 @@
import { ColumnAccessControl } from 'Common/Types/Database/AccessControl/AccessControl';
import { ColumnAccessControl } from 'Common/Types/BaseDatabase/AccessControl';
import { getTableColumns } from 'Common/Types/Database/TableColumn';
import Dictionary from 'Common/Types/Dictionary';
import ObjectID from 'Common/Types/ObjectID';

File diff suppressed because it is too large Load Diff

32
ApiReference/package.json Executable file → Normal file
View File

@@ -5,51 +5,33 @@
"configure": "npx npm-force-resolutions || echo 'No package-lock.json file. Skipping force resolutions'",
"start": "node --require ts-node/register Index.ts",
"compile": "tsc",
"clear-modules": "rm -rf node_modules && rm package-lock.json && npm install",
"dev": "npx nodemon",
"test": "jest",
"test": "jest --detectOpenHandles",
"coverage": "jest --detectOpenHandles --coverage",
"lighthouse-test": "jest --forceExit lighthouse-tests/test/index.test.js --env=node",
"lighthouse": "start-server-and-test http://localhost:1444",
"smoketest": "jest --forceExit smoketest/index.test.js --env=node",
"audit": "npm audit --audit-level=low",
"light-house": "node lighthouse.js --web",
"light-house-mobile": "node lighthouse.js --mobile",
"dep-check": "depcheck ./ --skip-missing=true --ignores='ejs,puppeteer'"
"dep-check": "npm install -g depcheck && depcheck ./ --skip-missing=true"
},
"dependencies": {
"@types/body-parser": "^1.19.2",
"@types/cli-table": "^0.3.0",
"@types/compression": "^1.7.2",
"@types/ejs": "^3.1.1",
"@types/minify": "^8.0.0",
"@types/try-to-catch": "^3.0.0",
"axios": "^0.26.1",
"body-parser": "^1.19.2",
"cli-table": "^0.3.11",
"Common": "file:../Common",
"CommonServer": "file:../CommonServer",
"compression": "^1.7.4",
"ejs": "^3.1.8",
"express": "^4.18.1",
"Model": "file:../Model",
"ts-node": "^10.9.1",
"xmlbuilder2": "^3.0.2"
"ts-node": "^10.9.1"
},
"resolutions": {},
"devDependencies": {
"@types/jest": "^27.5.1",
"@types/node": "^17.0.22",
"chrome-launcher": "^0.15.0",
"commander": "^9.1.0",
"depcheck": "^1.4.3",
"jest": "^28.1.0",
"lighthouse": "^9.5.0",
"nodemon": "^2.0.20",
"npm-force-resolutions": "0.0.10",
"ora": "^6.1.0",
"start-server-and-test": "^1.14.0",
"ts-jest": "^28.0.2",
"ts-node-dev": "^1.1.8",
"typescript": "^4.6.4"
"typescript": "^5.3.2"
}
}
}

View File

@@ -0,0 +1,42 @@
# Some basic commands for Clickhouse
## Show tables in the database
```sql
show tables from oneuptime
```
## Show table structure
```sql
DESCRIBE TABLE oneuptime.Span
```
## Show table data
```sql
select * from table_name
```
## Delete table data
```sql
truncate table_name
```
## Delete table
```sql
drop table oneuptime.table_name
```
## Insert for nested data
```sql
INSERT INTO opentelemetry_spans (trace_id, span_id, attributes.key, attributes.value) VALUES
('trace1', 'span1', ['key1', 'key2'], ['value1', 'value2']),
('trace2', 'span2', ['keyA', 'keyB'], ['valueA', 'valueB']);
```

View File

@@ -0,0 +1,293 @@
import TableColumnType from '../Types/AnalyticsDatabase/TableColumnType';
import AnalyticsTableColumn from '../Types/AnalyticsDatabase/TableColumn';
import BadDataException from '../Types/Exception/BadDataException';
import AnalyticsTableEngine from '../Types/AnalyticsDatabase/AnalyticsTableEngine';
import ColumnBillingAccessControl from '../Types/BaseDatabase/ColumnBillingAccessControl';
import TableBillingAccessControl from '../Types/BaseDatabase/TableBillingAccessControl';
import { TableAccessControl } from '../Types/BaseDatabase/AccessControl';
import EnableWorkflowOn from '../Types/BaseDatabase/EnableWorkflowOn';
import ObjectID from '../Types/ObjectID';
import CommonModel from './CommonModel';
import Route from '../Types/API/Route';
import { EnableRealtimeEventsOn } from '../Utils/Realtime';
export default class AnalyticsBaseModel extends CommonModel {
public constructor(data: {
tableName: string;
singularName: string;
pluralName: string;
tableEngine?: AnalyticsTableEngine | undefined;
tableColumns: Array<AnalyticsTableColumn>;
crudApiPath: Route;
allowAccessIfSubscriptionIsUnpaid?: boolean | undefined;
tableBillingAccessControl?: TableBillingAccessControl | undefined;
accessControl?: TableAccessControl | undefined;
primaryKeys: Array<string>; // this should be the subset of tableColumns
enableWorkflowOn?: EnableWorkflowOn | undefined;
enableRealtimeEventsOn?: EnableRealtimeEventsOn | undefined;
}) {
super({
tableColumns: data.tableColumns,
});
const columns: Array<AnalyticsTableColumn> = [...data.tableColumns];
this.tableName = data.tableName;
if (data.tableEngine) {
this.tableEngine = data.tableEngine;
}
columns.push(
new AnalyticsTableColumn({
key: '_id',
title: 'ID',
description: 'ID of this object',
required: true,
type: TableColumnType.ObjectID,
})
);
columns.push(
new AnalyticsTableColumn({
key: 'createdAt',
title: 'Created',
description: 'Date and Time when the object was created.',
required: true,
type: TableColumnType.Date,
})
);
columns.push(
new AnalyticsTableColumn({
key: 'updatedAt',
title: 'Updated',
description: 'Date and Time when the object was updated.',
required: true,
type: TableColumnType.Date,
})
);
if (!data.primaryKeys || data.primaryKeys.length === 0) {
throw new BadDataException('Primary keys are required');
}
// check if primary keys are subset of tableColumns
data.primaryKeys.forEach((primaryKey: string) => {
const column: AnalyticsTableColumn | undefined = columns.find(
(column: AnalyticsTableColumn) => {
return column.key === primaryKey;
}
);
if (!column) {
throw new BadDataException(
'Primary key ' + primaryKey + ' is not part of tableColumns'
);
}
if (!column.required) {
throw new BadDataException(
'Primary key ' +
primaryKey +
' is not required. Primary keys must be required.'
);
}
});
this.primaryKeys = data.primaryKeys;
this.tableColumns = columns;
this.singularName = data.singularName;
this.pluralName = data.pluralName;
this.tableBillingAccessControl = data.tableBillingAccessControl;
this.allowAccessIfSubscriptionIsUnpaid =
data.allowAccessIfSubscriptionIsUnpaid || false;
this.accessControl = data.accessControl;
this.enableWorkflowOn = data.enableWorkflowOn;
this.crudApiPath = data.crudApiPath;
this.enableRealtimeEventsOn = data.enableRealtimeEventsOn;
// initialize Arrays.
for (const column of this.tableColumns) {
if (column.type === TableColumnType.NestedModel) {
this.setColumnValue(column.key, []);
}
}
}
private _enableWorkflowOn: EnableWorkflowOn | undefined;
public get enableWorkflowOn(): EnableWorkflowOn | undefined {
return this._enableWorkflowOn;
}
public set enableWorkflowOn(v: EnableWorkflowOn | undefined) {
this._enableWorkflowOn = v;
}
private _accessControl: TableAccessControl | undefined;
public get accessControl(): TableAccessControl | undefined {
return this._accessControl;
}
public set accessControl(v: TableAccessControl | undefined) {
this._accessControl = v;
}
private _tableName: string = '';
public get tableName(): string {
return this._tableName;
}
public set tableName(v: string) {
this._tableName = v;
}
private _tableEngine: AnalyticsTableEngine = AnalyticsTableEngine.MergeTree;
public get tableEngine(): AnalyticsTableEngine {
return this._tableEngine;
}
public set tableEngine(v: AnalyticsTableEngine) {
this._tableEngine = v;
}
private _enableRealtimeEventsOn: EnableRealtimeEventsOn | undefined;
public get enableRealtimeEventsOn(): EnableRealtimeEventsOn | undefined {
return this._enableRealtimeEventsOn;
}
public set enableRealtimeEventsOn(v: EnableRealtimeEventsOn | undefined) {
this._enableRealtimeEventsOn = v;
}
private _primaryKeys: Array<string> = [];
public get primaryKeys(): Array<string> {
return this._primaryKeys;
}
public set primaryKeys(v: Array<string>) {
this._primaryKeys = v;
}
private _singularName: string = '';
public get singularName(): string {
return this._singularName;
}
public set singularName(v: string) {
this._singularName = v;
}
private _pluralName: string = '';
public get pluralName(): string {
return this._pluralName;
}
public set pluralName(v: string) {
this._pluralName = v;
}
private _tableBillingAccessControl: TableBillingAccessControl | undefined;
public get tableBillingAccessControl():
| TableBillingAccessControl
| undefined {
return this._tableBillingAccessControl;
}
public set tableBillingAccessControl(
v: TableBillingAccessControl | undefined
) {
this._tableBillingAccessControl = v;
}
private _allowAccessIfSubscriptionIsUnpaid: boolean = false;
public get allowAccessIfSubscriptionIsUnpaid(): boolean {
return this._allowAccessIfSubscriptionIsUnpaid;
}
public set allowAccessIfSubscriptionIsUnpaid(v: boolean) {
this._allowAccessIfSubscriptionIsUnpaid = v;
}
private _crudApiPath!: Route;
public get crudApiPath(): Route {
return this._crudApiPath;
}
public set crudApiPath(v: Route) {
this._crudApiPath = v;
}
public getTenantColumn(): AnalyticsTableColumn | null {
const column: AnalyticsTableColumn | undefined = this.tableColumns.find(
(column: AnalyticsTableColumn) => {
return column.isTenantId;
}
);
if (!column) {
return null;
}
return column;
}
public getTenantColumnValue(): ObjectID | null {
const column: AnalyticsTableColumn | null = this.getTenantColumn();
if (!column) {
return null;
}
return this.getColumnValue(column.key) as ObjectID | null;
}
public getRequiredColumns(): Array<AnalyticsTableColumn> {
return this.tableColumns.filter((column: AnalyticsTableColumn) => {
return column.required;
});
}
public isDefaultValueColumn(columnName: string): boolean {
const column: AnalyticsTableColumn | null =
this.getTableColumn(columnName);
if (!column) {
return false;
}
return column.isDefaultValueColumn;
}
public getColumnBillingAccessControl(
columnName: string
): ColumnBillingAccessControl | null {
const column: AnalyticsTableColumn | null =
this.getTableColumn(columnName);
if (!column) {
return null;
}
return column.billingAccessControl || null;
}
public get id(): ObjectID | undefined {
return this.getColumnValue('_id') as ObjectID | undefined;
}
public set id(v: ObjectID | undefined) {
this.setColumnValue('_id', v);
}
public get _id(): ObjectID | undefined {
return this.getColumnValue('_id') as ObjectID | undefined;
}
public set _id(v: ObjectID | undefined) {
this.setColumnValue('_id', v);
}
public get createdAt(): Date | undefined {
return this.getColumnValue('createdAt') as Date | undefined;
}
public set createdAt(v: Date | undefined) {
this.setColumnValue('createdAt', v);
}
public get updatedAt(): Date | undefined {
return this.getColumnValue('updatedAt') as Date | undefined;
}
public set updatedAt(v: Date | undefined) {
this.setColumnValue('updatedAt', v);
}
}

View File

@@ -0,0 +1,218 @@
// This model will be extended by BaseModel and Nested Mdoel
import AnalyticsTableColumn from '../Types/AnalyticsDatabase/TableColumn';
import TableColumnType from '../Types/AnalyticsDatabase/TableColumnType';
import OneUptimeDate from '../Types/Date';
import BadDataException from '../Types/Exception/BadDataException';
import { JSONArray, JSONObject, JSONValue } from '../Types/JSON';
import JSONFunctions from '../Types/JSONFunctions';
import ObjectID from '../Types/ObjectID';
export type RecordValue =
| ObjectID
| string
| number
| boolean
| Date
| Array<number>
| Array<string>
| Array<CommonModel>;
export type Record = Array<RecordValue | Record>;
export default class CommonModel {
protected data: JSONObject = {};
private _tableColumns: Array<AnalyticsTableColumn> = [];
public get tableColumns(): Array<AnalyticsTableColumn> {
return this._tableColumns;
}
public set tableColumns(v: Array<AnalyticsTableColumn>) {
this._tableColumns = v;
}
public setColumnValue(
columnName: string,
value: JSONValue | Array<CommonModel>
): void {
const column: AnalyticsTableColumn | null =
this.getTableColumn(columnName);
if (column) {
if (
column.type === TableColumnType.ObjectID &&
typeof value === 'string'
) {
value = new ObjectID(value);
}
if (
column.type === TableColumnType.Date &&
typeof value === 'string'
) {
value = OneUptimeDate.fromString(value);
}
if (
column.type === TableColumnType.JSON &&
typeof value === 'string'
) {
value = JSON.parse(value);
}
if (
column.type === TableColumnType.Number &&
typeof value === 'string'
) {
value = parseInt(value);
}
// decimal
if (
column.type === TableColumnType.Decimal &&
typeof value === 'string'
) {
value = parseFloat(value);
}
return (this.data[columnName] = value as any);
}
throw new BadDataException('Column ' + columnName + ' does not exist');
}
public constructor(data: { tableColumns: Array<AnalyticsTableColumn> }) {
this.tableColumns = data.tableColumns;
}
public getColumnValue<T extends RecordValue>(
columnName: string
): T | undefined {
if (this.getTableColumn(columnName)) {
return this.data[columnName] as T;
}
return undefined;
}
public getTableColumn(name: string): AnalyticsTableColumn | null {
const column: AnalyticsTableColumn | undefined = this.tableColumns.find(
(column: AnalyticsTableColumn) => {
return column.key === name;
}
);
if (!column) {
return null;
}
return column;
}
public getTableColumns(): Array<AnalyticsTableColumn> {
return this.tableColumns;
}
public static fromJSON<T extends CommonModel>(
json: JSONObject | JSONArray | CommonModel | Array<CommonModel>,
type: { new (): T }
): T | Array<T> {
if (Array.isArray(json)) {
const arr: Array<T> = [];
for (const item of json) {
if (item instanceof CommonModel) {
arr.push(item as T);
continue;
}
arr.push(new type().fromJSON(item) as T);
}
return arr;
}
if (json instanceof CommonModel) {
return json as T;
}
return new type().fromJSON(json) as T;
}
public static toJSON<T extends CommonModel>(
model: T,
_modelType: { new (): T }
): JSONObject {
return model.toJSON();
}
public fromJSON(json: JSONObject): CommonModel {
for (const key in json) {
this.setColumnValue(key, json[key]);
}
return this;
}
public toJSON(): JSONObject {
const json: JSONObject = {};
this.tableColumns.forEach((column: AnalyticsTableColumn) => {
const recordValue: RecordValue | undefined = this.getColumnValue(
column.key
);
if (recordValue instanceof CommonModel) {
json[column.key] = recordValue.toJSON();
return;
}
if (recordValue instanceof Array) {
if (recordValue.length > 0 && column.nestedModelType) {
json[column.key] = CommonModel.toJSONArray(
recordValue as Array<CommonModel>,
column.nestedModelType
);
}
return;
}
json[column.key] = recordValue;
});
return JSONFunctions.serialize(json);
}
public static fromJSONArray<TBaseModel extends CommonModel>(
jsonArray: Array<JSONObject | CommonModel>,
modelType: { new (): CommonModel }
): Array<TBaseModel> {
const models: Array<CommonModel> = [];
jsonArray.forEach((json: JSONObject | CommonModel) => {
if (json instanceof CommonModel) {
models.push(json);
return;
}
const model: CommonModel = new modelType();
model.fromJSON(json);
models.push(model);
});
return models as Array<TBaseModel>;
}
public static toJSONArray(
models: Array<CommonModel>,
modelType: { new (): CommonModel }
): Array<JSONObject> {
const json: Array<JSONObject> = [];
models.forEach((model: CommonModel) => {
json.push(this.toJSON(model, modelType));
});
return json;
}
}

View File

@@ -0,0 +1,8 @@
import AnalyticsTableColumn from '../Types/AnalyticsDatabase/TableColumn';
import CommonModel from './CommonModel';
export default class NestedModel extends CommonModel {
public constructor(data: { tableColumns: Array<AnalyticsTableColumn> }) {
super(data);
}
}

View File

@@ -1,104 +0,0 @@
import TableColumnType from '../Types/BaseDatabase/TableColumnType';
import AnalyticsTableColumn from '../Types/AnalyticsDatabase/TableColumn';
import BadDataException from '../Types/Exception/BadDataException';
import AnalyticsTableEngine from '../Types/AnalyticsDatabase/AnalyticsTableEngine';
export default class AnalyticsDataModel {
private _tableColumns: Array<AnalyticsTableColumn> = [];
public get tableColumns(): Array<AnalyticsTableColumn> {
return this._tableColumns;
}
public set tableColumns(v: Array<AnalyticsTableColumn>) {
this._tableColumns = v;
}
private _tableName: string = '';
public get tableName(): string {
return this._tableName;
}
public set tableName(v: string) {
this._tableName = v;
}
private _tableEngine: AnalyticsTableEngine = AnalyticsTableEngine.MergeTree;
public get tableEngine(): AnalyticsTableEngine {
return this._tableEngine;
}
public set tableEngine(v: AnalyticsTableEngine) {
this._tableEngine = v;
}
private _primaryKeys: Array<string> = [];
public get primaryKeys(): Array<string> {
return this._primaryKeys;
}
public set primaryKeys(v: Array<string>) {
this._primaryKeys = v;
}
public constructor(data: {
tableName: string;
tableEngine?: AnalyticsTableEngine | undefined;
tableColumns: Array<AnalyticsTableColumn>;
primaryKeys: Array<string>; // this should be the subset of tableColumns
}) {
const columns: Array<AnalyticsTableColumn> = [...data.tableColumns];
this.tableName = data.tableName;
if (data.tableEngine) {
this.tableEngine = data.tableEngine;
}
columns.push(
new AnalyticsTableColumn({
key: '_id',
title: 'ID',
description: 'ID of this object',
required: true,
type: TableColumnType.ObjectID,
})
);
columns.push(
new AnalyticsTableColumn({
key: 'createdAt',
title: 'Created',
description: 'Date and Time when the object was created.',
required: true,
type: TableColumnType.Date,
})
);
columns.push(
new AnalyticsTableColumn({
key: 'updatedAt',
title: 'Updated',
description: 'Date and Time when the object was updated.',
required: true,
type: TableColumnType.Date,
})
);
if (!data.primaryKeys || data.primaryKeys.length === 0) {
throw new BadDataException('Primary keys are required');
}
// check if primary keys are subset of tableColumns
data.primaryKeys.forEach((primaryKey: string) => {
if (
!columns.find((column: AnalyticsTableColumn) => {
return column.key === primaryKey;
})
) {
throw new BadDataException(
'Primary key ' + primaryKey + ' is not part of tableColumns'
);
}
});
this.primaryKeys = data.primaryKeys;
this.tableColumns = columns;
}
}

View File

@@ -21,24 +21,23 @@ import Email from '../Types/Email';
import Phone from '../Types/Phone';
import PositiveNumber from '../Types/PositiveNumber';
import Route from '../Types/API/Route';
import TableColumnType from '../Types/BaseDatabase/TableColumnType';
import TableColumnType from '../Types/Database/TableColumnType';
import Permission, {
instanceOfUserTenantAccessPermission,
PermissionHelper,
UserPermission,
UserTenantAccessPermission,
} from '../Types/Permission';
import {
ColumnAccessControl,
ColumnBillingAccessControl,
} from '../Types/Database/AccessControl/AccessControl';
import { ColumnAccessControl } from '../Types/BaseDatabase/AccessControl';
import { getColumnAccessControlForAllColumns } from '../Types/Database/AccessControl/ColumnAccessControl';
import BadDataException from '../Types/Exception/BadDataException';
import { PlanSelect } from '../Types/Billing/SubscriptionPlan';
import { EnableWorkflowOn } from '../Types/Model/EnableWorkflow';
import EnableWorkflowOn from '../Types/BaseDatabase/EnableWorkflowOn';
import IconProp from '../Types/Icon/IconProp';
import Text from '../Types/Text';
import { getColumnBillingAccessControlForAllColumns } from '../Types/Database/AccessControl/ColumnBillingAccessControl';
import ColumnBillingAccessControl from '../Types/BaseDatabase/ColumnBillingAccessControl';
import JSONFunctions from '../Types/JSONFunctions';
export type DbTypes =
| string
@@ -255,6 +254,10 @@ export default class BaseModel extends BaseEntity {
(this as any)[columnName] = value;
}
public removeValue(columnName: string): void {
(this as any)[columnName] = undefined;
}
public doesPermissionHaveConditions(
permission: Permission
): JSONObject | null {
@@ -528,4 +531,180 @@ export default class BaseModel extends BaseEntity {
)
);
}
public static toJSON(
model: BaseModel,
modelType: { new (): BaseModel }
): JSONObject {
const json: JSONObject = this.toJSONObject(model, modelType);
return JSONFunctions.serialize(json);
}
public static toJSONObject(
model: BaseModel,
modelType: { new (): BaseModel }
): JSONObject {
const json: JSONObject = {};
const vanillaModel: BaseModel = new modelType();
for (const key of vanillaModel.getTableColumns().columns) {
if ((model as any)[key] === undefined) {
continue;
}
const tableColumnMetadata: TableColumnMetadata =
vanillaModel.getTableColumnMetadata(key);
if (tableColumnMetadata) {
if (
(model as any)[key] &&
tableColumnMetadata.modelType &&
tableColumnMetadata.type === TableColumnType.Entity &&
(model as any)[key] instanceof BaseModel
) {
(json as any)[key] = this.toJSONObject(
(model as any)[key],
tableColumnMetadata.modelType
);
} else if (
(model as any)[key] &&
Array.isArray((model as any)[key]) &&
(model as any)[key].length > 0 &&
tableColumnMetadata.modelType &&
tableColumnMetadata.type === TableColumnType.EntityArray
) {
(json as any)[key] = this.toJSONObjectArray(
(model as any)[key] as Array<BaseModel>,
tableColumnMetadata.modelType
);
} else {
(json as any)[key] = (model as any)[key];
}
}
}
return json;
}
public static toJSONObjectArray(
list: Array<BaseModel>,
modelType: { new (): BaseModel }
): JSONArray {
const array: JSONArray = [];
for (const item of list) {
array.push(this.toJSONObject(item, modelType));
}
return array;
}
public static toJSONArray(
list: Array<BaseModel>,
modelType: { new (): BaseModel }
): JSONArray {
const array: JSONArray = [];
for (const item of list) {
array.push(this.toJSON(item, modelType));
}
return array;
}
private static _fromJSON<T extends BaseModel>(
json: JSONObject | T,
type: { new (): T }
): T {
if (json instanceof BaseModel) {
return json;
}
json = JSONFunctions.deserialize(json);
const baseModel: T = new type();
for (const key of Object.keys(json)) {
const tableColumnMetadata: TableColumnMetadata =
baseModel.getTableColumnMetadata(key);
if (tableColumnMetadata) {
if (
json[key] &&
tableColumnMetadata.modelType &&
tableColumnMetadata.type === TableColumnType.Entity
) {
if (
json[key] &&
Array.isArray(json[key]) &&
(json[key] as Array<any>).length > 0
) {
json[key] = (json[key] as Array<any>)[0];
}
(baseModel as any)[key] = this.fromJSON(
json[key] as JSONObject,
tableColumnMetadata.modelType
);
} else if (
json[key] &&
tableColumnMetadata.modelType &&
tableColumnMetadata.type === TableColumnType.EntityArray
) {
if (json[key] && !Array.isArray(json[key])) {
json[key] = [json[key]];
}
(baseModel as any)[key] = this.fromJSONArray(
json[key] as JSONArray,
tableColumnMetadata.modelType
);
} else {
(baseModel as any)[key] = json[key];
}
}
}
return baseModel as T;
}
public static fromJSON<T extends BaseModel>(
json: JSONObject | JSONArray,
type: { new (): T }
): T | Array<T> {
if (Array.isArray(json)) {
const arr: Array<T> = [];
for (const item of json) {
arr.push(this._fromJSON<T>(item, type));
}
return arr;
}
return this._fromJSON<T>(json, type);
}
public static fromJSONObject<T extends BaseModel>(
json: JSONObject | T,
type: { new (): T }
): T {
if (json instanceof BaseModel) {
return json;
}
return this.fromJSON<T>(json, type) as T;
}
public static fromJSONArray<T extends BaseModel>(
json: Array<JSONObject | T>,
type: { new (): T }
): Array<T> {
const arr: Array<T> = [];
for (const item of json) {
arr.push(this._fromJSON<T>(item, type));
}
return arr;
}
}

View File

@@ -4,7 +4,7 @@ import ColumnLength from '../Types/Database/ColumnLength';
import ColumnType from '../Types/Database/ColumnType';
import SlugifyColumn from '../Types/Database/SlugifyColumn';
import TableColumn from '../Types/Database/TableColumn';
import TableColumnType from '../Types/BaseDatabase/TableColumnType';
import TableColumnType from '../Types/Database/TableColumnType';
import MimeType from '../Types/File/MimeType';
import ObjectID from '../Types/ObjectID';
import Permission from '../Types/Permission';

View File

@@ -26,4 +26,6 @@ export const ApiReferenceRoute: Route = new Route('/reference');
export const AdminDashboardRoute: Route = new Route('/admin');
export const ProbeApiRoute: Route = new Route('/probe-api');
export const IngestorRoute: Route = new Route('/ingestor');
export const RealtimeRoute: Route = new Route('/realtime/socket');

View File

@@ -0,0 +1,61 @@
import HTTPErrorResponse from '../../../Types/API/HTTPErrorResponse';
describe('HTTPErrorResponse', () => {
it('should return an empty string when data is null', () => {
const httpResponse: HTTPErrorResponse = new HTTPErrorResponse(
404,
{ data: null },
{}
);
expect(httpResponse.message).toBe('');
});
it('should return the message from the "data" property if present', () => {
const httpResponse: HTTPErrorResponse = new HTTPErrorResponse(
200,
{ data: 'Data message' },
{}
);
expect(httpResponse.message).toBe('Data message');
});
it('should return the message from the "message" property if present', () => {
const httpResponse: HTTPErrorResponse = new HTTPErrorResponse(
200,
{ message: 'Message message' },
{}
);
expect(httpResponse.message).toBe('Message message');
});
it('should return the message from the "error" property if no other message properties are present', () => {
const httpResponse: HTTPErrorResponse = new HTTPErrorResponse(
500,
{ error: 'Error message' },
{}
);
expect(httpResponse.message).toBe('Error message');
});
it('should return an empty string when no relevant message properties are present', () => {
const httpResponse: HTTPErrorResponse = new HTTPErrorResponse(
204,
{ otherProperty: 'Other message' },
{}
);
expect(httpResponse.message).toBe('');
});
it('should prioritize "data" > "message" > "error" when multiple message properties are present', () => {
const httpResponse: HTTPErrorResponse = new HTTPErrorResponse(
201,
{
data: 'Data message',
message: 'Message message',
error: 'Error message',
},
{}
);
expect(httpResponse.message).toBe('Data message');
});
});

View File

@@ -0,0 +1,82 @@
import DatabaseDate from '../../../Types/Database/Date';
import moment from 'moment';
import InBetween from '../../../Types/Database/InBetween';
import { JSONObject } from '../../../Types/JSON';
describe('DatabaseDate', () => {
describe('asDateStartOfTheDayEndOfTheDayForDatabaseQuery', () => {
it('should return InBetween object for a valid Date input', () => {
const inputDate: Date = new Date('2023-10-24T12:00:00Z');
const result: JSONObject =
DatabaseDate.asDateStartOfTheDayEndOfTheDayForDatabaseQuery(
inputDate
).toJSON();
const expectedStart: string = moment(inputDate)
.startOf('day')
.format('YYYY-MM-DD HH:mm:ss');
const expectedEnd: string = moment(inputDate)
.endOf('day')
.format('YYYY-MM-DD HH:mm:ss');
expect(result).toEqual({
startValue: expectedStart,
endValue: expectedEnd,
_type: 'InBetween',
});
});
it('should return InBetween object for a valid Date string input', () => {
const inputDate: string = '2023-10-24T12:00:00Z';
const result: JSONObject =
DatabaseDate.asDateStartOfTheDayEndOfTheDayForDatabaseQuery(
inputDate
).toJSON();
const expectedStart: string = moment(inputDate)
.startOf('day')
.format('YYYY-MM-DD HH:mm:ss');
const expectedEnd: string = moment(inputDate)
.endOf('day')
.format('YYYY-MM-DD HH:mm:ss');
expect(result).toEqual({
startValue: expectedStart,
endValue: expectedEnd,
_type: 'InBetween',
});
});
it('should handle invalid date string gracefully', () => {
const inputDate: string = 'invalid-date';
const result: JSONObject =
DatabaseDate.asDateStartOfTheDayEndOfTheDayForDatabaseQuery(
inputDate
).toJSON();
expect(result).toEqual({
startValue: 'Invalid date',
endValue: 'Invalid date',
_type: 'InBetween',
});
});
it('should handle empty string input gracefully', () => {
const inputDate: string = '';
const result: JSONObject =
DatabaseDate.asDateStartOfTheDayEndOfTheDayForDatabaseQuery(
inputDate
).toJSON();
expect(result).toEqual({
startValue: 'Invalid date',
endValue: 'Invalid date',
_type: 'InBetween',
});
});
it('should be a type of InBetween', () => {
const inputDate: string = '2023-10-24T12:00:00Z';
const result: InBetween =
DatabaseDate.asDateStartOfTheDayEndOfTheDayForDatabaseQuery(
inputDate
);
expect(result).toBeInstanceOf(InBetween);
});
});
});

View File

@@ -0,0 +1,70 @@
import EqualToOrNull from '../../../Types/Database/EqualToOrNull';
import BadDataException from '../../../Types/Exception/BadDataException';
import { JSONObject } from '../../../Types/JSON';
describe('EqualToOrNull', () => {
it('should create an EqualToOrNull object with a valid value', () => {
const value: string = 'oneuptime';
const equalObj: EqualToOrNull = new EqualToOrNull(value);
expect(equalObj.value).toBe(value);
});
it('should get the value property of an EqualToOrNull object', () => {
const value: string = 'oneuptime';
const equalObj: EqualToOrNull = new EqualToOrNull(value);
expect(equalObj.value).toBe(value);
});
it('should set the value property of an EqualToOrNull object', () => {
const equalObj: EqualToOrNull = new EqualToOrNull('oldValue');
equalObj.value = 'newValue';
expect(equalObj.value).toBe('newValue');
});
it('should return the correct string representation using toString method', () => {
const equalObj: EqualToOrNull = new EqualToOrNull('oneuptime');
expect(equalObj.toString()).toBe('oneuptime');
});
it('should generate the correct JSON representation using toJSON method', () => {
const equalObj: EqualToOrNull = new EqualToOrNull('oneuptime');
const expectedJSON: JSONObject = {
_type: 'EqualToOrNull',
value: 'oneuptime',
};
expect(equalObj.toJSON()).toEqual(expectedJSON);
});
it('should create an EqualToOrNull object from valid JSON input', () => {
const jsonInput: JSONObject = {
_type: 'EqualToOrNull',
value: 'oneuptime',
};
const equalObj: EqualToOrNull = EqualToOrNull.fromJSON(jsonInput);
expect(equalObj.value).toBe('oneuptime');
});
it('should throw a BadDataException when using invalid JSON input', () => {
const jsonInput: JSONObject = {
_type: 'InvalidType',
value: 'oneuptime',
};
expect(() => {
return EqualToOrNull.fromJSON(jsonInput);
}).toThrow(BadDataException);
});
it('should be a type of EqualToOrNull', () => {
const equalObj: EqualToOrNull = new EqualToOrNull('oneuptime');
expect(equalObj).toBeInstanceOf(EqualToOrNull);
});
it('should handle null value when using fromJSON method', () => {
const jsonInput: JSONObject = {
_type: 'EqualToOrNull',
value: null,
};
const equalObj: EqualToOrNull = EqualToOrNull.fromJSON(jsonInput);
expect(equalObj.value).toBeNull();
});
});

View File

@@ -0,0 +1,80 @@
import InBetween from '../../../Types/Database/InBetween';
import BadDataException from '../../../Types/Exception/BadDataException';
import { JSONObject } from '../../../Types/JSON';
describe('InBetween', () => {
it('should create an InBetween object with valid start and end values', () => {
const startValue: number = 10;
const endValue: number = 20;
const betweenObj: InBetween = new InBetween(startValue, endValue);
expect(betweenObj.startValue).toBe(10);
expect(betweenObj.endValue).toBe(20);
});
it('should generate the correct JSON representation using toJSON method', () => {
const startValue: number = 10;
const endValue: number = 20;
const betweenObj: InBetween = new InBetween(startValue, endValue);
const expectedJSON: JSONObject = {
_type: 'InBetween',
startValue: 10,
endValue: 20,
};
expect(betweenObj.toJSON()).toEqual(expectedJSON);
});
it('should create an InBetween object from valid JSON input', () => {
const jsonInput: JSONObject = {
_type: 'InBetween',
startValue: 10,
endValue: 20,
};
const betweenObj: InBetween = InBetween.fromJSON(jsonInput);
expect(betweenObj.startValue).toBe(10);
expect(betweenObj.endValue).toBe(20);
});
it('should throw a BadDataException when using invalid JSON input', () => {
const jsonInput: JSONObject = {
_type: 'InvalidType',
startValue: 10,
endValue: 20,
};
expect(() => {
return InBetween.fromJSON(jsonInput);
}).toThrow(BadDataException);
});
it('should return a string with start and end values matching', () => {
const startValue: number = 15;
const endValue: number = 15;
const betweenObj: InBetween = new InBetween(startValue, endValue);
expect(betweenObj.toString()).toBe('15');
});
it('should return a string with start and end values different', () => {
const startValue: number = 10;
const endValue: number = 20;
const betweenObj: InBetween = new InBetween(startValue, endValue);
expect(betweenObj.toString()).toBe('10 - 20');
});
it('should return the start value as a string', () => {
const startValue: number = 10;
const endValue: number = 20;
const betweenObj: InBetween = new InBetween(startValue, endValue);
expect(betweenObj.toStartValueString()).toBe('10');
});
it('should return the end value as a string', () => {
const startValue: number = 10;
const endValue: number = 20;
const betweenObj: InBetween = new InBetween(startValue, endValue);
expect(betweenObj.toEndValueString()).toBe('20');
});
it('should be a type of InBetween', () => {
const inBetweenObj: InBetween = new InBetween(10, 15);
expect(inBetweenObj).toBeInstanceOf(InBetween);
});
});

View File

@@ -0,0 +1,52 @@
import BaseModel from '../../Models/BaseModel';
import { JSONObject } from '../../Types/JSON';
import JSONFunctions from '../../Types/JSONFunctions';
describe('JSONFunctions Class', () => {
let baseModel: BaseModel;
beforeEach(() => {
baseModel = new BaseModel();
});
describe('isEmptyObject Method', () => {
test('Returns true for an empty object', () => {
const emptyObj: JSONObject = {};
expect(JSONFunctions.isEmptyObject(emptyObj)).toBe(true);
});
test('Returns false for a non-empty object', () => {
const nonEmptyObj: JSONObject = { key: 'value' };
expect(JSONFunctions.isEmptyObject(nonEmptyObj)).toBe(false);
});
test('Returns true for null or undefined', () => {
expect(JSONFunctions.isEmptyObject(null)).toBe(true);
expect(JSONFunctions.isEmptyObject(undefined)).toBe(true);
});
});
describe('toJSON and fromJSON Methods', () => {
test('toJSON returns a valid JSON object', () => {
const json: JSONObject = BaseModel.toJSON(baseModel, BaseModel);
expect(json).toEqual(expect.objectContaining({}));
});
test('toJSONObject returns a valid JSON object', () => {
const json: JSONObject = BaseModel.toJSONObject(
baseModel,
BaseModel
);
expect(json).toEqual(expect.objectContaining({}));
});
test('fromJSON returns a BaseModel instance', () => {
const json: JSONObject = { name: 'oneuptime' };
const result: BaseModel | BaseModel[] = BaseModel.fromJSON(
json,
BaseModel
);
expect(result).toBeInstanceOf(BaseModel);
});
});
});

View File

@@ -0,0 +1,44 @@
import NotImplementedException from '../../Types/Exception/NotImplementedException';
import { JSONObject } from '../../Types/JSON';
import SerializableObject from '../../Types/SerializableObject';
describe('SerializableObject Class', () => {
let serializableObject: SerializableObject;
beforeEach(() => {
serializableObject = new SerializableObject();
});
test('Constructor initializes an instance of SerializableObject', () => {
expect(serializableObject).toBeInstanceOf(SerializableObject);
});
describe('toJSON Method', () => {
test('Throws NotImplementedException when called', () => {
expect(() => {
return serializableObject.toJSON();
}).toThrow(NotImplementedException);
});
});
describe('fromJSON Method', () => {
test('Throws NotImplementedException when called', () => {
expect(() => {
return SerializableObject.fromJSON({});
}).toThrow(NotImplementedException);
});
});
describe('fromJSON Instance Method', () => {
test('Returns the result from the static fromJSON method', () => {
const json: JSONObject = { key: 'value' };
const expectedResult: SerializableObject = new SerializableObject();
jest.spyOn(SerializableObject, 'fromJSON').mockReturnValue(
expectedResult
);
const result: SerializableObject =
serializableObject.fromJSON(json);
expect(result).toBe(expectedResult);
});
});
});

View File

@@ -10,6 +10,7 @@ import axios, {
AxiosStatic,
AxiosRequestConfig,
Method,
AxiosHeaders,
} from 'axios';
import { expect, jest } from '@jest/globals';
import HTTPResponse from '../../Types/API/HTTPResponse';
@@ -51,13 +52,17 @@ function createAxiosResponse<T = any, D = any>(
data = [] as T,
status = 200,
statusText = 'OK',
config = {},
config = {
headers: DEFAULT_HEADERS as AxiosHeaders,
},
headers = DEFAULT_HEADERS,
}: Partial<AxiosResponse<T, D>> = {
data: [] as T,
status: 200,
statusText: 'OK',
config: {},
config: {
headers: DEFAULT_HEADERS as AxiosHeaders,
},
headers: DEFAULT_HEADERS,
}
): AxiosResponse<T, D> {
@@ -82,7 +87,9 @@ const mergedHeaders: Headers = {
*/
function createAxiosError<T = any, D = any>(
{
config = {},
config = {
headers: DEFAULT_HEADERS as AxiosHeaders,
},
isAxiosError = true,
toJSON = () => {
return {};
@@ -91,7 +98,9 @@ function createAxiosError<T = any, D = any>(
message = 'Something went wrong',
response = createAxiosResponse(),
}: Partial<AxiosError<T, D>> = {
config: {},
config: {
headers: DEFAULT_HEADERS as AxiosHeaders,
},
isAxiosError: true,
toJSON: () => {
return {};
@@ -219,7 +228,7 @@ describe('getErrorResponse', () => {
// NOTE: Passing undefined will initialize the default parameter
const axiosError: AxiosError<null, {}> = createAxiosError({
response: null!,
});
}) as AxiosError<null, {}>;
// Use bracket notation property access to access private method
expect(() => {
@@ -279,7 +288,7 @@ describe('fetch', () => {
data,
}),
message: 'An error occurred',
});
}) as AxiosError<undefined, {}>;
mockedAxios.mockRejectedValueOnce(mockedAxiosError);
@@ -349,6 +358,10 @@ const httpMethodTests: Array<HTTPMethodType> = [
name: 'delete',
method: HTTPMethod.DELETE,
},
{
name: 'head',
method: HTTPMethod.HEAD,
},
];
describe.each(httpMethodTests)('$name', ({ name, method }: HTTPMethodType) => {

View File

@@ -0,0 +1,85 @@
import Analytics from '../../Utils/Analytics';
import Email from '../../Types/Email';
import { JSONObject } from '../../Types/JSON';
import posthog from 'posthog-js';
jest.mock('posthog-js', () => {
return {
init: jest.fn(),
identify: jest.fn(),
reset: jest.fn(),
capture: jest.fn(),
};
});
const apiHost: string = 'https://example.com';
const apiKey: string = 'your-api-key';
describe('Analytics Class', () => {
afterEach(() => {
jest.clearAllMocks();
});
it('should initialize the Analytics class', () => {
const analytics: Analytics = new Analytics(apiHost, apiKey);
expect(posthog.init).toHaveBeenCalledWith(apiKey, {
api_host: apiHost,
autocapture: false,
});
expect(analytics.isInitialized).toBe(true);
});
it('should not initialize if apiHost and apiKey are not provided', () => {
const analytics: Analytics = new Analytics('', '');
expect(posthog.init).not.toHaveBeenCalled();
expect(analytics.isInitialized).toBe(false);
});
it('should authenticate a user', () => {
const analytics: Analytics = new Analytics(apiHost, apiKey);
const email: Email = new Email('test@example.com');
analytics.userAuth(email);
expect(posthog.identify).toHaveBeenCalledWith(email.toString());
});
it('should not authenticate a user if not initialized', () => {
const analytics: Analytics = new Analytics('', '');
const email: Email = new Email('test@example.com');
analytics.userAuth(email);
expect(posthog.identify).not.toHaveBeenCalled();
});
it('should reset the user session on logout', () => {
const analytics: Analytics = new Analytics(apiHost, apiKey);
analytics.logout();
expect(posthog.reset).toHaveBeenCalled();
});
it('should not reset the user session if not initialized', () => {
const analytics: Analytics = new Analytics('', '');
analytics.logout();
expect(posthog.reset).not.toHaveBeenCalled();
});
it('should capture an event with optional data', () => {
const analytics: Analytics = new Analytics(apiHost, apiKey);
const eventName: string = 'testEvent';
const data: JSONObject = { key: 'value' };
analytics.capture(eventName, data);
expect(posthog.capture).toHaveBeenCalledWith(eventName, data);
});
it('should not capture an event if not initialized', () => {
const analytics: Analytics = new Analytics('', '');
analytics.capture('testEvent');
expect(posthog.capture).not.toHaveBeenCalled();
});
});

View File

@@ -0,0 +1,34 @@
import {
EVERY_MINUTE,
EVERY_DAY,
EVERY_HOUR,
EVERY_FIVE_MINUTE,
EVERY_FIVE_SECONDS,
EVERY_WEEK,
} from '../../Utils/CronTime';
describe('CronTime', () => {
test('should return every minute', () => {
expect(EVERY_MINUTE).toEqual('* * * * *');
});
test('should return every day', () => {
expect(EVERY_DAY).toEqual('0 8 * * *');
});
test('should return every hour', () => {
expect(EVERY_HOUR).toEqual('1 * * * *');
});
test('should return every five minute', () => {
expect(EVERY_FIVE_MINUTE).toEqual('*/5 * * * *');
});
test('should return every five seconds', () => {
expect(EVERY_FIVE_SECONDS).toEqual('*/5 * * * * *');
});
test('should return every week', () => {
expect(EVERY_WEEK).toEqual('0 0 * * 0');
});
});

View File

@@ -0,0 +1,38 @@
import Faker from '../../Utils/Faker';
import Email from '../../Types/Email';
import Name from '../../Types/Name';
import Phone from '../../Types/Phone';
describe('Faker Class', () => {
it('should generate a random name with alphanumeric characters', () => {
expect(Faker.generateName()).toMatch(/^[a-zA-Z0-9]{10}$/);
});
it('should generate a random company name', () => {
expect(Faker.generateCompanyName()).toBeTruthy();
});
it('should generate a string of random numbers of specified length', () => {
expect(Faker.randomNumbers(8)).toMatch(/^\d{8}$/);
});
it('should generate a user full name', () => {
const userFullName: Name = Faker.generateUserFullName();
expect(userFullName).toHaveProperty('name');
expect(userFullName.name).toBeTruthy();
});
it('should generate a valid email address', () => {
const email: Email = Faker.generateEmail();
expect(email.email).toMatch(
/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,9}$/i
);
});
it('should generate a valid phone number', () => {
const phone: Phone = Faker.generatePhone();
expect(phone.phone).toMatch(
/^[+]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,7}$/
);
});
});

View File

@@ -1,9 +1,12 @@
import Slug from '../../Utils/Slug';
describe('Slug.getSlug()', () => {
test('should return empty string, if name is empty ', () => {
test('should return empty string, if name is empty ', () => {
expect(Slug.getSlug('')).toEqual('');
expect(Slug.getSlug(' ')).toEqual('');
});
test('should generate a slug from a valid name when name is null', () => {
expect(Slug.getSlug(null)).toMatch(/^[a-z0-9-]+$/);
});
test('should replaces spaces in nonEmpty with hyphen -', () => {
expect(Slug.getSlug('this is slug')).toMatch(/this-is-slug/g);
});

View File

@@ -1,11 +1,17 @@
import BaseModel from '../../Models/BaseModel';
import AnalyticsBaseModel from '../../AnalyticsModels/BaseModel';
import { JSONArray, JSONObject, JSONObjectOrArray } from '../JSON';
import JSONFunctions from '../JSONFunctions';
import Typeof from '../Typeof';
import Headers from './Headers';
export default class HTTPResponse<
T extends JSONObjectOrArray | BaseModel | Array<BaseModel>
T extends
| JSONObjectOrArray
| BaseModel
| Array<BaseModel>
| AnalyticsBaseModel
| Array<AnalyticsBaseModel>
> {
private _statusCode: number = -1;
public get statusCode(): number {

View File

@@ -1,7 +1,12 @@
import TableColumnType from '../BaseDatabase/TableColumnType';
import { ColumnAccessControl } from '../BaseDatabase/AccessControl';
import ColumnBillingAccessControl from '../BaseDatabase/ColumnBillingAccessControl';
import TableColumnType from '../AnalyticsDatabase/TableColumnType';
import { JSONValue } from '../JSON';
import NestedModel from '../../AnalyticsModels/NestedModel';
export default class AnalyticsTableColumn {
private _key: string = 'id';
public get key(): string {
return this._key;
}
@@ -33,7 +38,15 @@ export default class AnalyticsTableColumn {
this._required = v;
}
private _type: TableColumnType = TableColumnType.ShortText;
private _isTenantId: boolean = false;
public get isTenantId(): boolean {
return this._isTenantId;
}
public set isTenantId(v: boolean) {
this._isTenantId = v;
}
private _type: TableColumnType = TableColumnType.Text;
public get type(): TableColumnType {
return this._type;
}
@@ -41,17 +54,110 @@ export default class AnalyticsTableColumn {
this._type = v;
}
private _forceGetDefaultValueOnCreate?:
| (() => Date | string | number | boolean)
| undefined;
public get forceGetDefaultValueOnCreate():
| (() => Date | string | number | boolean)
| undefined {
return this._forceGetDefaultValueOnCreate;
}
public set forceGetDefaultValueOnCreate(
v: (() => Date | string | number | boolean) | undefined
) {
this._forceGetDefaultValueOnCreate = v;
}
private _defaultValue: JSONValue | undefined;
public get defaultValue(): JSONValue {
return this._defaultValue;
}
public set defaultValue(v: JSONValue) {
this._defaultValue = v;
}
public get isDefaultValueColumn(): boolean {
return Boolean(this.defaultValue !== undefined);
}
private _billingAccessControl?: ColumnBillingAccessControl | undefined;
public get billingAccessControl(): ColumnBillingAccessControl | undefined {
return this._billingAccessControl;
}
public set billingAccessControl(v: ColumnBillingAccessControl | undefined) {
this._billingAccessControl = v;
}
private _allowAccessIfSubscriptionIsUnpaid: boolean = false;
public get allowAccessIfSubscriptionIsUnpaid(): boolean {
return this._allowAccessIfSubscriptionIsUnpaid;
}
public set allowAccessIfSubscriptionIsUnpaid(v: boolean) {
this._allowAccessIfSubscriptionIsUnpaid = v;
}
private _accessControl: ColumnAccessControl | undefined;
public get accessControl(): ColumnAccessControl | undefined {
return this._accessControl;
}
public set accessControl(v: ColumnAccessControl | undefined) {
this._accessControl = v;
}
private _nestedModel?: NestedModel | undefined;
public get nestedModel(): NestedModel | undefined {
return this._nestedModel;
}
public set nestedModel(v: NestedModel | undefined) {
this._nestedModel = v;
}
private _nestedModelType?: { new (): NestedModel } | undefined;
public get nestedModelType(): { new (): NestedModel } | undefined {
return this._nestedModelType;
}
public set nestedModelType(v: { new (): NestedModel } | undefined) {
this._nestedModelType = v;
}
public constructor(data: {
key: string;
nestedModelType?: { new (): NestedModel } | undefined;
title: string;
description: string;
required: boolean;
defaultValue?: JSONValue | undefined;
type: TableColumnType;
billingAccessControl?: ColumnBillingAccessControl | undefined;
isTenantId?: boolean | undefined;
accessControl?: ColumnAccessControl | undefined;
allowAccessIfSubscriptionIsUnpaid?: boolean | undefined;
forceGetDefaultValueOnCreate?:
| (() => Date | string | number | boolean)
| undefined;
}) {
if (
data.type === TableColumnType.NestedModel &&
!data.nestedModelType
) {
throw new Error('NestedModel is required when type is NestedModel');
}
this.accessControl = data.accessControl;
this.key = data.key;
this.title = data.title;
this.description = data.description;
this.required = data.required;
this.type = data.type;
this.isTenantId = data.isTenantId || false;
this.forceGetDefaultValueOnCreate = data.forceGetDefaultValueOnCreate;
this.defaultValue = data.defaultValue;
this.billingAccessControl = data.billingAccessControl;
this.allowAccessIfSubscriptionIsUnpaid =
data.allowAccessIfSubscriptionIsUnpaid || false;
if (data.nestedModelType) {
this.nestedModel = new data.nestedModelType();
this.nestedModelType = data.nestedModelType;
}
}
}

View File

@@ -0,0 +1,15 @@
enum ColumnType {
ObjectID = 'Object ID',
Date = 'Date',
Boolean = 'Boolean',
Number = 'Number',
Text = 'Text',
NestedModel = 'Nested Model',
JSON = 'JSON',
Decimal = 'Decimal',
ArrayNumber = 'Array of Numbers',
ArrayText = 'Array of Text',
LongNumber = 'Long Number',
}
export default ColumnType;

View File

@@ -0,0 +1,11 @@
import Permission from '../Permission';
export interface ColumnAccessControl {
read: Array<Permission>;
create: Array<Permission>;
update: Array<Permission>;
}
export interface TableAccessControl extends ColumnAccessControl {
delete: Array<Permission>;
}

View File

@@ -0,0 +1,7 @@
import { PlanSelect } from '../Billing/SubscriptionPlan';
export default interface ColumnBillingAccessControl {
create: PlanSelect;
read: PlanSelect;
update: PlanSelect;
}

View File

@@ -20,4 +20,5 @@ export default interface DatabaseCommonInteractionProps {
ignoreHooks?: boolean | undefined;
currentPlan?: PlanSelect | undefined;
isSubscriptionUnpaid?: boolean | undefined;
isMasterAdmin?: boolean | undefined;
}

View File

@@ -0,0 +1,73 @@
import Permission, { UserPermission } from '../Permission';
import DatabaseCommonInteractionProps from './DatabaseCommonInteractionProps';
export default class DatabaseCommonInteractionPropsUtil {
public static getUserPermissions(
props: DatabaseCommonInteractionProps
): Array<UserPermission> {
// Check first if the user has Global Permissions.
// Global permissions includes all the tenantId user has access to.
// and it includes all the global permissions that applies to all the tenant, like PUBLIC.
if (!props.userGlobalAccessPermission) {
props.userGlobalAccessPermission = {
globalPermissions: [Permission.Public],
projectIds: [],
_type: 'UserGlobalAccessPermission',
};
}
// If the PUBLIC Permission is not found in global permissions, include it.
if (
props.userGlobalAccessPermission &&
!props.userGlobalAccessPermission.globalPermissions.includes(
Permission.Public
)
) {
props.userGlobalAccessPermission.globalPermissions.push(
Permission.Public
); // add public permission if not already.
}
// If the CurrentUser Permission is not found in global permissions, include it.
if (
props.userId &&
props.userGlobalAccessPermission &&
!props.userGlobalAccessPermission.globalPermissions.includes(
Permission.CurrentUser
)
) {
props.userGlobalAccessPermission.globalPermissions.push(
Permission.CurrentUser
);
}
let userPermissions: Array<UserPermission> = [];
// Include global permission in userPermissions.
if (props.userGlobalAccessPermission) {
/// take global permissions.
userPermissions =
props.userGlobalAccessPermission.globalPermissions.map(
(permission: Permission) => {
return {
permission: permission,
labelIds: [],
_type: 'UserPermission',
};
}
);
}
if (props.tenantId && props.userTenantAccessPermission) {
// Include Tenant Permission in userPermissions.
userPermissions = [
...userPermissions,
...(props.userTenantAccessPermission[props.tenantId.toString()]
?.permissions || []),
];
}
return userPermissions;
}
}

View File

@@ -0,0 +1,6 @@
enum DatabaseType {
Database = 'Database',
AnalyticsDatabase = 'AnalyticsDatabase',
}
export default DatabaseType;

View File

@@ -0,0 +1,6 @@
export default interface EnableWorkflowOn {
create?: boolean | undefined;
update?: boolean | undefined;
delete?: boolean | undefined;
read?: boolean | undefined;
}

View File

@@ -0,0 +1,8 @@
import { PlanSelect } from '../Billing/SubscriptionPlan';
export default interface TableBillingAccessControl {
create: PlanSelect;
read: PlanSelect;
update: PlanSelect;
delete: PlanSelect;
}

View File

@@ -1,16 +1,16 @@
export default class MeteredPlan {
private priceId: string;
private unitName: string;
private pricePerUnit: number;
private pricePerUnitInUSD: number;
public constructor(
priceId: string,
pricePerUnit: number,
unitName: string
) {
this.priceId = priceId;
this.pricePerUnit = pricePerUnit;
this.unitName = unitName;
public constructor(data: {
priceId: string;
pricePerUnitInUSD: number;
unitName: string;
}) {
this.priceId = data.priceId;
this.pricePerUnitInUSD = data.pricePerUnitInUSD;
this.unitName = data.unitName;
}
public getPriceId(): string {
@@ -18,7 +18,7 @@ export default class MeteredPlan {
}
public getPricePerUnit(): number {
return this.pricePerUnit;
return this.pricePerUnitInUSD;
}
public getUnitName(): string {

View File

@@ -8,4 +8,25 @@ enum SubscriptionStatus {
Unpaid = 'unpaid',
}
export class SubscriptionStatusUtil {
public static isSubscriptionActive(
status?: SubscriptionStatus | undefined
): boolean {
if (!status) {
return true;
}
return (
status === SubscriptionStatus.Active ||
status === SubscriptionStatus.Trialing
);
}
public static isSubscriptionInactive(
status?: SubscriptionStatus | undefined
): boolean {
return !SubscriptionStatusUtil.isSubscriptionActive(status);
}
}
export default SubscriptionStatus;

View File

@@ -1,18 +1,35 @@
import Color from './Color';
export const Black: Color = new Color('#000000');
export const White: Color = new Color('#ffffff');
export const slate: Color = new Color('#564ab1');
export const Purple: Color = new Color('#6f42c1');
export const Pink: Color = new Color('#e83e8c');
export const Red: Color = new Color('#fd625e');
export const Orange: Color = new Color('#f1734f');
export const Yellow: Color = new Color('#ffbf53');
export const Green: Color = new Color('#2ab57d');
export const Teal: Color = new Color('#050505');
export const Cyan: Color = new Color('#4ba6ef');
export const VeryLightGrey: Color = new Color('#c2c2c2');
export const Grey: Color = new Color('#575757');
export const LightGrey: Color = new Color('#908B8B');
export const Moroon: Color = new Color('#b70400');
export const Blue: Color = new Color('#3686be');
export const Black: Color = Color.fromString('#000000');
export const White: Color = Color.fromString('#ffffff');
export const slate: Color = Color.fromString('#564ab1');
export const Purple: Color = Color.fromString('#6f42c1');
export const Pink: Color = Color.fromString('#e83e8c');
export const Red: Color = Color.fromString('#fd625e');
export const Orange: Color = Color.fromString('#f1734f');
export const Yellow: Color = Color.fromString('#ffbf53');
export const Green: Color = Color.fromString('#2ab57d');
export const Teal: Color = Color.fromString('#050505');
export const Cyan: Color = Color.fromString('#4ba6ef');
export const VeryLightGrey: Color = Color.fromString('#c2c2c2');
export const Grey: Color = Color.fromString('#575757');
export const LightGrey: Color = Color.fromString('#908B8B');
export const Moroon: Color = Color.fromString('#b70400');
export const Blue: Color = Color.fromString('#3686be');
export const EventColorList: Color[] = [
Color.fromString('#d50000'),
Color.fromString('#e67c73'),
Color.fromString('#f4511e'),
Color.fromString('#f6bf26'),
Color.fromString('#33b679'),
Color.fromString('#0b8043'),
Color.fromString('#039be5'),
Color.fromString('#3f51b5'),
Color.fromString('#65a30d'),
Color.fromString('#8e24aa'),
Color.fromString('#616161'),
];

View File

@@ -0,0 +1,12 @@
import { JSONObject } from '../JSON';
export default interface CalendarEvent extends JSONObject {
id: number;
title: string;
start: Date;
end: Date;
allDay?: boolean | undefined;
desc?: string | undefined;
color?: string | undefined;
textColor?: string | undefined;
}

View File

@@ -28,3 +28,14 @@ export interface CallRequestMessage {
export default interface CallRequest extends CallRequestMessage {
to: Phone;
}
export const isHighRiskPhoneNumber: Function = (
phoneNumber: Phone
): boolean => {
// Pakistan
if (phoneNumber.toString().startsWith('+92')) {
return true;
}
return false;
};

View File

@@ -4,6 +4,7 @@ enum CodeType {
HTML = 'html',
JSON = 'json',
Markdown = 'markdown',
SQL = 'sql',
// TODO add more mime types.
}

View File

@@ -88,4 +88,17 @@ export default class Color extends DatabaseProperty {
this._componentToHex(rgb.blue)
);
}
public static fromString(color: string): Color {
return new Color(color);
}
public static shouldUseDarkText(color: Color): boolean {
const rgb: RGB = Color.colorToRgb(color);
if (rgb.red * 0.299 + rgb.green * 0.587 + rgb.blue * 0.114 > 186) {
return true;
}
return false;
}
}

34
Common/Types/Currency.ts Normal file
View File

@@ -0,0 +1,34 @@
import BadDataException from './Exception/BadDataException';
export default class Currency {
public static convertToDecimalPlaces(
value: number,
decimalPlaces: number = 2
): number {
if (decimalPlaces < 0) {
throw new BadDataException(
'decimalPlaces must be greater than or equal to 0.'
);
}
if (typeof value === 'string') {
value = parseFloat(value);
}
if (decimalPlaces === 0) {
return Math.ceil(value);
}
value = value * Math.pow(10, decimalPlaces);
// convert to int.
value = Math.round(value);
// convert back to float.
value = value / Math.pow(10, decimalPlaces);
return value;
}
}

View File

@@ -1,25 +0,0 @@
import { PlanSelect } from '../../Billing/SubscriptionPlan';
import Permission from '../../Permission';
export interface ColumnAccessControl {
read: Array<Permission>;
create: Array<Permission>;
update: Array<Permission>;
}
export interface TableAccessControl extends ColumnAccessControl {
delete: Array<Permission>;
}
export interface BillingAccessControl {
create: PlanSelect;
read: PlanSelect;
update: PlanSelect;
delete: PlanSelect;
}
export interface ColumnBillingAccessControl {
create: PlanSelect;
read: PlanSelect;
update: PlanSelect;
}

View File

@@ -2,7 +2,7 @@ import 'reflect-metadata';
import BaseModel from '../../../Models/BaseModel';
import Dictionary from '../../Dictionary';
import { ReflectionMetadataType } from '../../Reflection';
import { ColumnAccessControl } from './AccessControl';
import { ColumnAccessControl } from '../../BaseDatabase/AccessControl';
const accessControlSymbol: Symbol = Symbol('ColumnAccessControl');

View File

@@ -2,7 +2,7 @@ import 'reflect-metadata';
import BaseModel from '../../../Models/BaseModel';
import Dictionary from '../../Dictionary';
import { ReflectionMetadataType } from '../../Reflection';
import { ColumnBillingAccessControl } from './AccessControl';
import ColumnBillingAccessControl from '../../BaseDatabase/ColumnBillingAccessControl';
const accessControlSymbol: Symbol = Symbol('ColumnBillingAccessControl');

View File

@@ -1,4 +1,4 @@
import { TableAccessControl } from './AccessControl';
import { TableAccessControl } from '../../BaseDatabase/AccessControl';
export default (accessControl: TableAccessControl) => {
return (ctr: Function) => {

View File

@@ -1,6 +1,6 @@
import { BillingAccessControl } from './AccessControl';
import TableBillingAccessControl from '../../BaseDatabase/TableBillingAccessControl';
export default (accessControl: BillingAccessControl) => {
export default (accessControl: TableBillingAccessControl) => {
return (ctr: Function) => {
if (accessControl.create) {
ctr.prototype.createBillingPlan = accessControl.create;

View File

@@ -1,4 +1,4 @@
import TableColumnType from '../BaseDatabase/TableColumnType';
import TableColumnType from './TableColumnType';
enum ColumnLength {
Version = 30,

View File

@@ -0,0 +1,7 @@
import EnableWorkflowOn from '../BaseDatabase/EnableWorkflowOn';
export default (enableWorkflowOn: EnableWorkflowOn) => {
return (ctr: Function) => {
ctr.prototype.enableWorkflowOn = enableWorkflowOn;
};
};

View File

@@ -2,7 +2,7 @@ import 'reflect-metadata';
import BaseModel from '../../Models/BaseModel';
import Dictionary from '../Dictionary';
import { ReflectionMetadataType } from '../Reflection';
import TableColumnType from '../BaseDatabase/TableColumnType';
import TableColumnType from './TableColumnType';
const tableColumn: Symbol = Symbol('TableColumn');

View File

@@ -1,10 +1,76 @@
import InBetween from './Database/InBetween';
import DayOfWeek, { DayOfWeekUtil } from './Day/DayOfWeek';
import BadDataException from './Exception/BadDataException';
import { JSONObject, ObjectType } from './JSON';
import PositiveNumber from './PositiveNumber';
import moment from 'moment-timezone';
export const Moment: typeof moment = moment;
export default class OneUptimeDate {
public static moveDateToTheDayOfWeek(
date: Date,
moveToWeek: Date,
dayOfWeek: DayOfWeek
): Date {
// date will be moved to the week of "moveToWeek" and then to the day of week "dayOfWeek"
date = this.fromString(date);
date = this.keepTimeButMoveDay(date, moveToWeek);
// now move the date to the day of week
const dateDayOfWeek: DayOfWeek = this.getDayOfWeek(date);
if (dateDayOfWeek === dayOfWeek) {
return date;
}
const numberOfDayOfWeek: number =
DayOfWeekUtil.getNumberOfDayOfWeek(dayOfWeek);
const dateDayOfWeekNumber: number =
DayOfWeekUtil.getNumberOfDayOfWeek(dateDayOfWeek);
const difference: number = numberOfDayOfWeek - dateDayOfWeekNumber;
if (difference === 0) {
return date;
}
return this.addRemoveDays(date, difference);
}
public static isOverlapping(
start: Date,
end: Date,
start1: Date,
end1: Date
): unknown {
start = this.fromString(start);
end = this.fromString(end);
start1 = this.fromString(start1);
end1 = this.fromString(end1);
let isOverlapping: boolean =
moment(start).isBetween(start1, end1) ||
moment(end).isBetween(start1, end1) ||
moment(start).isSame(start1) ||
moment(end).isSame(end1);
if (!isOverlapping) {
// check if the start1 and end1 are in between start and end
isOverlapping =
moment(start1).isBetween(start, end) ||
moment(end1).isBetween(start, end) ||
moment(start1).isSame(start) ||
moment(end1).isSame(end);
}
return isOverlapping;
}
public static getCurrentDate(): Date {
return moment().toDate();
}
@@ -13,7 +79,139 @@ export default class OneUptimeDate {
return moment(date).fromNow();
}
public static toString(date: Date): string {
public static toTimeString(date: Date | string): string {
if (typeof date === 'string') {
date = this.fromString(date);
}
return moment(date).format('HH:mm');
}
public static isSame(date1: Date, date2: Date): boolean {
date1 = this.fromString(date1);
date2 = this.fromString(date2);
return moment(date1).isSame(date2);
}
public static getDaysBetweenTwoDates(
startDate: Date,
endDate: Date
): number {
startDate = this.fromString(startDate);
endDate = this.fromString(endDate);
return moment(endDate).diff(moment(startDate), 'days');
}
public static getDaysBetweenTwoDatesInclusive(
startDate: Date,
endDate: Date
): number {
return this.getDaysBetweenTwoDates(startDate, endDate) + 1;
}
public static getHoursBetweenTwoDates(
startDate: Date,
endDate: Date
): number {
startDate = this.fromString(startDate);
endDate = this.fromString(endDate);
return moment(endDate).diff(moment(startDate), 'hours');
}
public static getHoursBetweenTwoDatesInclusive(
startDate: Date,
endDate: Date
): number {
return this.getHoursBetweenTwoDates(startDate, endDate) + 1;
}
public static getMinutesBetweenTwoDates(
startDate: Date,
endDate: Date
): number {
startDate = this.fromString(startDate);
endDate = this.fromString(endDate);
return moment(endDate).diff(moment(startDate), 'minutes');
}
public static getMinutesBetweenTwoDatesInclusive(
startDate: Date,
endDate: Date
): number {
return this.getMinutesBetweenTwoDates(startDate, endDate) + 1;
}
public static getSecondsBetweenTwoDates(
startDate: Date,
endDate: Date
): number {
startDate = this.fromString(startDate);
endDate = this.fromString(endDate);
return moment(endDate).diff(moment(startDate), 'seconds');
}
public static getSecondsBetweenTwoDatesInclusive(
startDate: Date,
endDate: Date
): number {
return this.getSecondsBetweenTwoDates(startDate, endDate) + 1;
}
public static getWeeksBetweenTwoDates(
startDate: Date,
endDate: Date
): number {
startDate = this.fromString(startDate);
endDate = this.fromString(endDate);
return moment(endDate).diff(moment(startDate), 'weeks');
}
public static getWeeksBetweenTwoDatesInclusive(
startDate: Date,
endDate: Date
): number {
return this.getWeeksBetweenTwoDates(startDate, endDate) + 1;
}
public static getMonthsBetweenTwoDates(
startDate: Date,
endDate: Date
): number {
startDate = this.fromString(startDate);
endDate = this.fromString(endDate);
return moment(endDate).diff(moment(startDate), 'months');
}
public static getMonthsBetweenTwoDatesInclusive(
startDate: Date,
endDate: Date
): number {
return this.getMonthsBetweenTwoDates(startDate, endDate) + 1;
}
public static getYearsBetweenTwoDates(
startDate: Date,
endDate: Date
): number {
startDate = this.fromString(startDate);
endDate = this.fromString(endDate);
return moment(endDate).diff(moment(startDate), 'years');
}
public static getYearsBetweenTwoDatesInclusive(
startDate: Date,
endDate: Date
): number {
return this.getYearsBetweenTwoDates(startDate, endDate) + 1;
}
public static toString(date: Date | undefined): string {
if (!date) {
return '';
}
date = this.fromString(date);
return date.toISOString();
}
@@ -21,6 +219,19 @@ export default class OneUptimeDate {
return moment();
}
public static keepTimeButMoveDay(keepTimeFor: Date, moveDayTo: Date): Date {
keepTimeFor = this.fromString(keepTimeFor);
moveDayTo = this.fromString(moveDayTo);
return moment(moveDayTo)
.set({
hour: keepTimeFor.getHours(),
minute: keepTimeFor.getMinutes(),
second: keepTimeFor.getSeconds(),
millisecond: keepTimeFor.getMilliseconds(),
})
.toDate();
}
public static getOneMinAgo(): Date {
return this.getSomeMinutesAgo(new PositiveNumber(1));
}
@@ -29,6 +240,10 @@ export default class OneUptimeDate {
return this.getSomeDaysAgo(new PositiveNumber(1));
}
public static fromUnixNano(timestamp: number): Date {
return moment(timestamp / 1000000).toDate();
}
public static getSecondsTo(date: Date): number {
date = this.fromString(date);
const dif: number = date.getTime() - this.getCurrentDate().getTime();
@@ -81,11 +296,78 @@ export default class OneUptimeDate {
};
}
public static areOnTheSameDay(date1: Date, date2: Date): boolean {
date1 = this.fromString(date1);
date2 = this.fromString(date2);
return moment(date1).isSame(date2, 'day');
}
public static areOnTheSameMonth(date1: Date, date2: Date): boolean {
date1 = this.fromString(date1);
date2 = this.fromString(date2);
return moment(date1).isSame(date2, 'month');
}
public static areOnTheSameYear(date1: Date, date2: Date): boolean {
date1 = this.fromString(date1);
date2 = this.fromString(date2);
return moment(date1).isSame(date2, 'year');
}
public static areOnTheSameHour(date1: Date, date2: Date): boolean {
date1 = this.fromString(date1);
date2 = this.fromString(date2);
return moment(date1).isSame(date2, 'hour');
}
public static areOnTheSameMinute(date1: Date, date2: Date): boolean {
date1 = this.fromString(date1);
date2 = this.fromString(date2);
return moment(date1).isSame(date2, 'minute');
}
public static areOnTheSameSecond(date1: Date, date2: Date): boolean {
date1 = this.fromString(date1);
date2 = this.fromString(date2);
return moment(date1).isSame(date2, 'second');
}
public static areOnTheSameWeek(date1: Date, date2: Date): boolean {
date1 = this.fromString(date1);
date2 = this.fromString(date2);
return moment(date1).isSame(date2, 'week');
}
public static addRemoveMinutes(date: Date, minutes: number): Date {
date = this.fromString(date);
return moment(date).add(minutes, 'minutes').toDate();
}
public static addRemoveDays(date: Date, days: number): Date {
date = this.fromString(date);
return moment(date).add(days, 'days').toDate();
}
public static addRemoveHours(date: Date, hours: number): Date {
date = this.fromString(date);
return moment(date).add(hours, 'hours').toDate();
}
public static addRemoveYears(date: Date, years: number): Date {
date = this.fromString(date);
return moment(date).add(years, 'years').toDate();
}
public static addRemoveMonths(date: Date, months: number): Date {
date = this.fromString(date);
return moment(date).add(months, 'months').toDate();
}
public static addRemoveWeeks(date: Date, weeks: number): Date {
date = this.fromString(date);
return moment(date).add(weeks, 'weeks').toDate();
}
public static addRemoveSeconds(date: Date, seconds: number): Date {
date = this.fromString(date);
return moment(date).add(seconds, 'seconds').toDate();
@@ -98,6 +380,10 @@ export default class OneUptimeDate {
return days.positiveNumber * 24 * 60 * 60;
}
public static getMillisecondsInDays(days: PositiveNumber | number): number {
return this.getSecondsInDays(days) * 1000;
}
public static getSomeHoursAgo(hours: PositiveNumber | number): Date {
if (!(hours instanceof PositiveNumber)) {
hours = new PositiveNumber(hours);
@@ -221,7 +507,7 @@ export default class OneUptimeDate {
let hasMins: boolean = false;
if (hours !== '00') {
hasHours = true;
text += hours + ' hours';
text += hours + ' hours ';
}
if (mins !== '00' || hasHours) {
@@ -231,7 +517,7 @@ export default class OneUptimeDate {
text += ', ';
}
text += mins + ' minutes';
text += mins + ' minutes ';
}
if (!(hasHours && hasMins)) {
@@ -351,6 +637,51 @@ export default class OneUptimeDate {
return moment(date).isAfter(startDate);
}
public static isOnOrAfter(date: Date, startDate: Date): boolean {
date = this.fromString(date);
startDate = this.fromString(startDate);
return moment(date).isSameOrAfter(startDate);
}
public static getDayOfWeek(date: Date): DayOfWeek {
const dayOfWeek: number = this.geyDayOfWeekAsNumber(date);
if (dayOfWeek === 1) {
return DayOfWeek.Monday;
} else if (dayOfWeek === 2) {
return DayOfWeek.Tuesday;
} else if (dayOfWeek === 3) {
return DayOfWeek.Wednesday;
} else if (dayOfWeek === 4) {
return DayOfWeek.Thursday;
} else if (dayOfWeek === 5) {
return DayOfWeek.Friday;
} else if (dayOfWeek === 6) {
return DayOfWeek.Saturday;
} else if (dayOfWeek === 7) {
return DayOfWeek.Sunday;
}
throw new BadDataException('Invalid day of week');
}
public static geyDayOfWeekAsNumber(date: Date): number {
date = this.fromString(date);
return moment(date).isoWeekday();
}
public static isOnOrBefore(date: Date, endDate: Date): boolean {
date = this.fromString(date);
endDate = this.fromString(endDate);
return moment(date).isSameOrBefore(endDate);
}
public static isEqualBySeconds(date: Date, startDate: Date): boolean {
date = this.fromString(date);
startDate = this.fromString(startDate);
return moment(date).isSame(startDate, 'seconds');
}
public static hasExpired(expirationDate: Date): boolean {
expirationDate = this.fromString(expirationDate);
return !moment(this.getCurrentDate()).isBefore(expirationDate);
@@ -544,4 +875,37 @@ export default class OneUptimeDate {
OneUptimeDate.getEndOfDay(formattedDate)
);
}
public static getDateWithCustomTime(data: {
hours: number;
minutes: number;
seconds: number;
}): Date {
const hour: number = data.hours;
const minutes: number = data.minutes;
const seconds: number = data.seconds;
//validate the hour
if (hour < 0 || hour > 23) {
throw new BadDataException('Invalid hour');
}
//validate the minutes
if (minutes < 0 || minutes > 59) {
throw new BadDataException('Invalid minutes');
}
//validate the seconds
if (seconds < 0 || seconds > 59) {
throw new BadDataException('Invalid seconds');
}
const date: Date = OneUptimeDate.getCurrentDate();
date.setHours(hour);
date.setMinutes(minutes);
date.setSeconds(seconds);
return date;
}
}

View File

@@ -0,0 +1,32 @@
enum DayOfWeek {
Sunday = 'Sunday',
Monday = 'Monday',
Tuesday = 'Tuesday',
Wednesday = 'Wednesday',
Thursday = 'Thursday',
Friday = 'Friday',
Saturday = 'Saturday',
}
export class DayOfWeekUtil {
public static getNumberOfDayOfWeek(dayOfWeek: DayOfWeek): number {
switch (dayOfWeek) {
case DayOfWeek.Sunday:
return 0;
case DayOfWeek.Monday:
return 1;
case DayOfWeek.Tuesday:
return 2;
case DayOfWeek.Wednesday:
return 3;
case DayOfWeek.Thursday:
return 4;
case DayOfWeek.Friday:
return 5;
case DayOfWeek.Saturday:
return 6;
}
}
}
export default DayOfWeek;

46
Common/Types/DiskSize.ts Normal file
View File

@@ -0,0 +1,46 @@
import BadDataException from './Exception/BadDataException';
export default class DiskSize {
public static convertToDecimalPlaces(
value: number,
decimalPlaces: number = 2
): number {
if (decimalPlaces < 0) {
throw new BadDataException(
'decimalPlaces must be greater than or equal to 0.'
);
}
if (typeof value === 'string') {
value = parseFloat(value);
}
if (decimalPlaces === 0) {
return Math.ceil(value);
}
value = value * Math.pow(10, decimalPlaces);
// convert to int.
value = Math.round(value);
// convert back to float.
value = value / Math.pow(10, decimalPlaces);
return value;
}
public static byteSizeToGB(byteSize: number): number {
return byteSize / 1024 / 1024 / 1024;
}
public static byteSizeToMB(byteSize: number): number {
return byteSize / 1024 / 1024;
}
public static byteSizeToKB(byteSize: number): number {
return byteSize / 1024;
}
}

View File

@@ -0,0 +1,9 @@
enum EventInterval {
Hour = 'Hour',
Day = 'Day',
Week = 'Week',
Month = 'Month',
Year = 'Year',
}
export default EventInterval;

View File

@@ -0,0 +1,119 @@
import { FindOperator } from 'typeorm';
import DatabaseProperty from '../Database/DatabaseProperty';
import EventInterval from './EventInterval';
import BadDataException from '../Exception/BadDataException';
import { JSONObject, ObjectType } from '../JSON';
import JSONFunctions from '../JSONFunctions';
import PositiveNumber from '../PositiveNumber';
export interface RecurringData extends JSONObject {
intervalType: EventInterval;
intervalCount: PositiveNumber;
}
export default class Recurring extends DatabaseProperty {
public static getDefaultRotationData(): RecurringData {
return {
intervalType: EventInterval.Day,
intervalCount: new PositiveNumber(1),
};
}
private data: RecurringData = Recurring.getDefaultRotationData();
public get intervalType(): EventInterval {
return this.data.intervalType;
}
public set intervalType(v: EventInterval) {
this.data.intervalType = v;
}
// intervalCount
public get intervalCount(): PositiveNumber {
return this.data.intervalCount;
}
public set intervalCount(v: PositiveNumber) {
this.data.intervalCount = v;
}
public constructor() {
super();
this.data = Recurring.getDefaultRotationData();
}
public static getDefault(): Recurring {
return new Recurring();
}
public override toJSON(): JSONObject {
return JSONFunctions.serialize({
_type: ObjectType.Recurring,
value: {
intervalType: this.intervalType,
intervalCount: this.intervalCount.toJSON(),
},
});
}
public static override fromJSON(json: JSONObject | Recurring): Recurring {
if (json instanceof Recurring) {
return json;
}
if (!json || json['_type'] !== ObjectType.Recurring) {
throw new BadDataException('Invalid Rotation');
}
if (!json['value']) {
throw new BadDataException('Invalid Rotation');
}
json = json['value'] as JSONObject;
let intervalType: EventInterval = EventInterval.Day;
if (json && json['intervalType']) {
intervalType = json['intervalType'] as EventInterval;
}
let intervalCount: PositiveNumber = new PositiveNumber(1);
if (json && json['intervalCount']) {
intervalCount = PositiveNumber.fromJSON(json['intervalCount']);
}
const rotation: Recurring = new Recurring();
rotation.data = {
intervalType,
intervalCount,
};
return rotation;
}
protected static override toDatabase(
value: Recurring | FindOperator<Recurring>
): JSONObject | null {
if (value && value instanceof Recurring) {
return (value as Recurring).toJSON();
} else if (value) {
return JSONFunctions.serialize(value as any);
}
return null;
}
protected static override fromDatabase(
value: JSONObject
): Recurring | null {
if (value) {
return Recurring.fromJSON(value);
}
return null;
}
}

11
Common/Types/HashCode.ts Normal file
View File

@@ -0,0 +1,11 @@
export default class HashCode {
public static fromString(text: string): number {
let hash: number = 0;
for (let i: number = 0; i < text.length; i++) {
const code: number = text.charCodeAt(i);
hash = (hash << 5) - hash + code;
hash = hash & hash; // Convert to 32bit integer
}
return hash;
}
}

View File

@@ -10,12 +10,23 @@ enum IconProp {
Settings = 'Settings',
Criteria = 'Criteria',
Notification = 'Notification',
CursorArrowRays = 'CursorArrowRays',
ArrowUpDown = 'ArrowUpDown',
Cube = 'Cube',
Squares = 'Squares',
RectangleStack = 'RectangleStack',
ChartBar = 'ChartBar',
SquareStack = 'SquareStack',
Calendar = 'Calendar',
Help = 'Help',
JSON = 'JSON',
Signal = 'Signal',
Stop = 'Stop',
Database = 'Database',
ChevronDown = 'ChevronDown',
Pencil = 'Pencil',
Flag = 'Flag',
Copy = 'Copy',
ChevronRight = 'ChevronRight',
ChevronUp = 'ChevronUp',
Play = 'Play',
@@ -25,6 +36,7 @@ enum IconProp {
Home = 'Home',
Graph = 'Graph',
Variable = 'Variable',
ListBullet = 'ListBullet',
Image = 'Image',
Grid = 'Grid',
More = 'More',

View File

@@ -23,6 +23,8 @@ import EqualToOrNull from './Database/EqualToOrNull';
import NotEqual from './Database/NotEqual';
import { CheckOn, FilterType } from './Monitor/CriteriaFilter';
import CallRequest from './Call/CallRequest';
import PositiveNumber from './PositiveNumber';
import StartAndEndTime from './Time/StartAndEndTime';
export enum ObjectType {
ObjectID = 'ObjectID',
@@ -30,7 +32,10 @@ export enum ObjectType {
EqualToOrNull = 'EqualToOrNull',
MonitorSteps = 'MonitorSteps',
MonitorStep = 'MonitorStep',
Recurring = 'Recurring',
RestrictionTimes = 'RestrictionTimes',
MonitorCriteria = 'MonitorCriteria',
PositiveNumber = 'PositiveNumber',
MonitorCriteriaInstance = 'MonitorCriteriaInstance',
NotEqual = 'NotEqual',
Email = 'Email',
@@ -106,6 +111,8 @@ export type JSONValue =
| Array<GreaterThan>
| GreaterThanOrEqual
| Array<GreaterThanOrEqual>
| PositiveNumber
| Array<PositiveNumber>
| LessThan
| Array<LessThan>
| InBetween
@@ -123,9 +130,12 @@ export type JSONValue =
| Array<JSONValue>
| Array<Permission>
| Array<JSONValue>
| Array<ObjectID>
| CallRequest
| undefined
| null;
| null
| StartAndEndTime
| Array<StartAndEndTime>;
export interface JSONObject {
[x: string]: JSONValue;

View File

@@ -3,8 +3,6 @@ import DatabaseProperty from './Database/DatabaseProperty';
import OneUptimeDate from './Date';
import BaseModel from '../Models/BaseModel';
import { JSONArray, JSONObject, JSONValue, ObjectType } from './JSON';
import { TableColumnMetadata } from '../Types/Database/TableColumn';
import TableColumnType from './BaseDatabase/TableColumnType';
import SerializableObject from './SerializableObject';
import SerializableObjectDictionary from './SerializableObjectDictionary';
import JSON5 from 'json5';
@@ -20,182 +18,6 @@ export default class JSONFunctions {
return Object.keys(obj).length === 0;
}
public static toJSON(
model: BaseModel,
modelType: { new (): BaseModel }
): JSONObject {
const json: JSONObject = this.toJSONObject(model, modelType);
return JSONFunctions.serialize(json);
}
public static toJSONObject(
model: BaseModel,
modelType: { new (): BaseModel }
): JSONObject {
const json: JSONObject = {};
const vanillaModel: BaseModel = new modelType();
for (const key of vanillaModel.getTableColumns().columns) {
if ((model as any)[key] === undefined) {
continue;
}
const tableColumnMetadata: TableColumnMetadata =
vanillaModel.getTableColumnMetadata(key);
if (tableColumnMetadata) {
if (
(model as any)[key] &&
tableColumnMetadata.modelType &&
tableColumnMetadata.type === TableColumnType.Entity &&
(model as any)[key] instanceof BaseModel
) {
(json as any)[key] = this.toJSONObject(
(model as any)[key],
tableColumnMetadata.modelType
);
} else if (
(model as any)[key] &&
Array.isArray((model as any)[key]) &&
(model as any)[key].length > 0 &&
tableColumnMetadata.modelType &&
tableColumnMetadata.type === TableColumnType.EntityArray
) {
(json as any)[key] = this.toJSONObjectArray(
(model as any)[key] as Array<BaseModel>,
tableColumnMetadata.modelType
);
} else {
(json as any)[key] = (model as any)[key];
}
}
}
return json;
}
public static toJSONObjectArray(
list: Array<BaseModel>,
modelType: { new (): BaseModel }
): JSONArray {
const array: JSONArray = [];
for (const item of list) {
array.push(this.toJSONObject(item, modelType));
}
return array;
}
public static toJSONArray(
list: Array<BaseModel>,
modelType: { new (): BaseModel }
): JSONArray {
const array: JSONArray = [];
for (const item of list) {
array.push(this.toJSON(item, modelType));
}
return array;
}
private static _fromJSON<T extends BaseModel>(
json: JSONObject | T,
type: { new (): T }
): T {
if (json instanceof BaseModel) {
return json;
}
json = JSONFunctions.deserialize(json);
const baseModel: T = new type();
for (const key of Object.keys(json)) {
const tableColumnMetadata: TableColumnMetadata =
baseModel.getTableColumnMetadata(key);
if (tableColumnMetadata) {
if (
json[key] &&
tableColumnMetadata.modelType &&
tableColumnMetadata.type === TableColumnType.Entity
) {
if (
json[key] &&
Array.isArray(json[key]) &&
(json[key] as Array<any>).length > 0
) {
json[key] = (json[key] as Array<any>)[0];
}
(baseModel as any)[key] = this.fromJSON(
json[key] as JSONObject,
tableColumnMetadata.modelType
);
} else if (
json[key] &&
tableColumnMetadata.modelType &&
tableColumnMetadata.type === TableColumnType.EntityArray
) {
if (json[key] && !Array.isArray(json[key])) {
json[key] = [json[key]];
}
(baseModel as any)[key] = this.fromJSONArray(
json[key] as JSONArray,
tableColumnMetadata.modelType
);
} else {
(baseModel as any)[key] = json[key];
}
}
}
return baseModel as T;
}
public static fromJSON<T extends BaseModel>(
json: JSONObject | JSONArray,
type: { new (): T }
): T | Array<T> {
if (Array.isArray(json)) {
const arr: Array<T> = [];
for (const item of json) {
arr.push(this._fromJSON<T>(item, type));
}
return arr;
}
return this._fromJSON<T>(json, type);
}
public static fromJSONObject<T extends BaseModel>(
json: JSONObject | T,
type: { new (): T }
): T {
if (json instanceof BaseModel) {
return json;
}
return this.fromJSON<T>(json, type) as T;
}
public static fromJSONArray<T extends BaseModel>(
json: Array<JSONObject | T>,
type: { new (): T }
): Array<T> {
const arr: Array<T> = [];
for (const item of json) {
arr.push(this._fromJSON<T>(item, type));
}
return arr;
}
public static toCompressedString(val: JSONValue): string {
return JSON.stringify(val, null, 2);
}
@@ -262,7 +84,7 @@ export default class JSONFunctions {
) {
return val;
} else if (val instanceof BaseModel) {
return this.toJSON(val, BaseModel);
return BaseModel.toJSON(val, BaseModel);
} else if (typeof val === Typeof.Number) {
return val;
} else if (ArrayBuffer.isView(val)) {

View File

@@ -1,12 +0,0 @@
export interface EnableWorkflowOn {
create?: boolean | undefined;
update?: boolean | undefined;
delete?: boolean | undefined;
read?: boolean | undefined;
}
export default (enableWorkflowOn: EnableWorkflowOn) => {
return (ctr: Function) => {
ctr.prototype.enableWorkflowOn = enableWorkflowOn;
};
};

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