This commit updates the SendCreatedResourceNotification class to convert the rootCause property to HTML using the Markdown.convertToHTML function. This ensures that the rootCause is properly formatted and displayed in the incident notification email. The rootCause is either the incident's rootCause or a default message if no rootCause is identified. This enhancement improves the readability and effectiveness of the incident notifications.
This commit updates the ProbeMonitorResponseService class to include the criteria details in the rootCause property of the ProbeApiIngestResponse. The criteria met ID, criteria name, criteria description, filter conditions met, and failure cause are now included in the rootCause. This enhancement improves the clarity and completeness of the rootCause information.
The EvaluateOverTime method in the EvaluateOverTime.ts file has been updated to handle boolean values for the IsOnline metric. This change allows the method to correctly evaluate and process the IsOnline metric data, improving the accuracy and reliability of the evaluation process.
The CompareCriteria class has been refactored to improve the clarity of message generation. The code now checks the filter type before appending the values to the message, ensuring that the message is only generated when necessary. This change enhances the readability and maintainability of the code.
The CriteriaFilterUtil class has been updated to handle the IsOnline check correctly. The getEvaluateOverTimeTypeByCriteriaFilter method now includes the IsOnline check in the returned array of EvaluateOverTimeType values. This fix ensures that the CriteriaFilterUtil class functions properly and provides accurate results for the IsOnline check.
This commit adds support for the IsOnline check in the CriteriaFilterUtil class. The getEvaluateOverTimeTypeByCriteriaFilter method now includes the IsOnline check in the returned array of EvaluateOverTimeType values. This enhancement improves the functionality and flexibility of the CriteriaFilterUtil class.
This commit refactors the code in SendCreatedResourceNotification.ts to improve the clarity of how the "declaredBy" field is assigned. The code now checks if the incident has a createdByProbe and createdByUser, and assigns the appropriate value to "declaredBy" based on the available information. This change enhances the readability and maintainability of the code.
This commit adds the "declaredBy" field to the IncidentOwnerResourceCreated template in the Notification feature set and the SendCreatedResourceNotification job in the Workers feature set. The "declaredBy" field is used to display the name of the user or probe who declared the incident. This enhancement improves the clarity and completeness of the incident notifications sent to incident owners.
This commit adds a new optional prop "suffix" to the ProbeElement component in Probe.tsx. The suffix is appended to the probe name displayed in the UI. This enhancement provides more flexibility in customizing the display of probe names.
The branch name generation in CopilotActionsBase.ts has been fixed to replace double hyphens with a single hyphen. This ensures that the branch name is correctly formatted and avoids any potential issues with branch creation and management.
The branch name generation in CopilotActionsBase.ts has been fixed to replace double hyphens with a single hyphen. This ensures that the branch name is correctly formatted and avoids any potential issues with branch creation and management.
This commit updates the import paths for the LlmType module in the following files:
- Copilot/Config.ts
- Copilot/Service/LLM/Llama.ts
- Copilot/Service/LLM/LLM.ts
The import paths are corrected to match the actual file structure, ensuring that the LlmType module is properly imported and used throughout the codebase. This change improves the maintainability and readability of the code.
This commit removes the unused CopilotEvent enum and CopilotEventService class. These files are no longer needed in the codebase and can be safely deleted. Removing unused code improves the maintainability and reduces the complexity of the project.
This commit refactors the code by improving the comments in the code and updating the job function in app.py. The comments are now focused on code that is hard to understand, and unnecessary comments are removed. The job function is converted to an async function to support asynchronous processing, which improves the performance and responsiveness of the application. These changes enhance the readability and efficiency of the codebase.
The file path in the CodeRepositoryUtil.getFileContent() method is now sanitized using the LocalFile.sanitizeFilePath() function before executing the command. This change ensures that the file path is properly formatted and prevents any potential security vulnerabilities or errors caused by invalid file paths.
The job function in app.py has been converted to an async function to support asynchronous processing. This change improves the performance and responsiveness of the application by allowing other tasks to run concurrently while the job function is processing the queue.
This commit adds the FixNumberOfCodeEventsInEachRun constant to the Config.ts file. The constant is set to 5 and is used to determine the number of code events to fix in each run. This change improves the flexibility and configurability of the code events handling in the application.
This commit updates the Dockerfile.tpl to use the huggingface/transformers-pytorch-gpu image instead of the continuumio/anaconda3 image. This change allows the Llama app to utilize GPU resources for improved performance in AI processing. Additionally, the unnecessary installation of the transformers and accelerate libraries is removed as they are already included in the huggingface/transformers-pytorch-gpu image.
refactor: Add appname label to probe.yaml
This commit adds the "appname" label to the probe.yaml file in order to provide additional information about the application. This label will help with identifying the specific application when managing and monitoring the Kubernetes resources.
This commit adds GPU support to the Llama app in the docker-compose.ai.yml file. It includes a new deploy section with reservations for GPU devices, specifying the driver, count, and capabilities. This change enables the Llama app to utilize GPU resources for improved performance in AI processing.
This commit updates the Llama app to log the prompt and output to the console for debugging purposes. It adds print statements to log the prompt before processing and the generated output after processing. This change improves the development workflow by providing visibility into the input and output of the AI model.
This commit adds three new scripts, start-ai, build-ai, and force-build-ai, to the package.json file. These scripts are used to start, build, and force-build the AI services respectively. They are configured to export environment variables, run the prerun script, and execute the necessary docker compose commands with the specified configuration file. This addition enhances the development workflow by providing convenient commands for managing the AI services.
This commit updates the Llama app to use a local model path instead of a model ID. The model path is set to "/app/Models/Meta-Llama-3-8B-Instruct". This change improves the reliability and performance of the app by directly referencing the model file instead of relying on an external model ID.
This commit modifies the github-release workflow to include the generate-build-number job as a dependency. Previously, the workflow only depended on the test-e2e-release-saas and test-e2e-release-self-hosted jobs. By adding the generate-build-number job, we ensure that the necessary build number is generated before the github-release job is executed. This change improves the overall release process by providing accurate build information for the release.
This commit modifies the Dockerfile.tpl file to update the EXPOSE directive. The port number is changed from 80 to 8547 to align with the port used by the Llama application. This change ensures that the Llama application is accessible from outside the container on the correct port.
This commit modifies the secrets.yaml file to add keys for postgres, redis, and clickhouse. These keys are used to store sensitive information such as passwords for external services. By including these keys, we ensure that the necessary secrets are available for the application to connect to these services securely.
This commit updates the Register.spec.ts file to improve the page load performance by implementing lazy loading for images. It ensures that the dashboard page is up before signing up the user and reloads the page if it fails to load. These changes enhance the user experience by optimizing the loading time of the registration page.
This commit modifies the Cookie.ts file to update the setItem method signature. The key parameter now accepts both CookieName and string types, allowing for more flexibility when setting cookies. This change improves the usability and versatility of the Cookie utility class.
This commit updates the ProbeMonitorResponseService class to include a check for the presence of remediation notes in the criteriaIncident object. If remediation notes are provided, they are assigned to the incident object. This change enhances the functionality of the ProbeMonitorResponseService by allowing the storage and retrieval of remediation notes for incidents.
This commit updates the incident form to include a field for remediation notes. This allows users to provide specific steps that should be taken to resolve the incident. By adding this feature, we enhance the incident management process and improve collaboration among team members.
This commit updates the MonitorCriteriaIncidentForm component to include fields for incident description and remediation notes. The incident description field now supports markdown formatting and has a placeholder text for when no description is entered. Similarly, the remediation notes field also supports markdown formatting and has a placeholder text for when no notes are entered. These changes enhance the user experience by providing a more comprehensive incident form.
This commit adds a new migration file for the SchemaMigrations table, introducing a new migration named MigrationName1718711669847. This migration is imported in the Index.ts file of the SchemaMigrations directory. Additionally, the MonitorCriteriaIncidentForm component is updated to change the title of the "Show Advanced Fields" button to "Add Remediation Notes for an engineer to help resolve this incident." The button is also given a left margin of -3 pixels to adjust its positioning. These changes improve the database schema management and enhance the user experience in the incident form.
This commit adds support for user timezones in the login and user profile functionality. It updates the LoginUtil and User classes to include methods for setting and retrieving the user's timezone. Additionally, the UserTimezoneInit component in the Dashboard module is updated to display and allow the user to update their timezone. This change improves the user experience by providing accurate timezone information and allows for better handling of time-related functionality throughout the application.
This commit updates the error message in the `asDateForDatabaseQuery` method of the `OneUptimeDate` class. It now includes the `date.toString()` value to provide more information about the invalid date. This change improves error handling and debugging capabilities.
This commit refactors the getCurrentTimezoneString method in the Date.ts file. It replaces the usage of moment.tz.guess() with this.getCurrentTimezone() to improve code readability and maintainability. Additionally, it adds a check to prepend "GMT" to the zone abbreviation if it starts with a "+" or "-" sign. This change ensures consistent formatting of the timezone string returned by the method.
This commit updates the import statements in the Monitor.ts file. It changes the import statement for the TimezoneUtil module to import from "Common/Types/Timezone" instead of the previous import path. This change ensures that the correct module is imported, improving the accuracy and reliability of the code.
This commit adds data-testid attributes to the Toast component in order to improve testability. The "toast" element, "toast-icon" element, "title" element, "description" element, and "close-button" element now have corresponding data-testid attributes. This change allows for more precise targeting of elements in automated tests, enhancing the reliability and accuracy of the test suite.
This commit removes unused code and updates import statements in multiple files. It removes the unused TimezoneCode enum from the Common/Types/TimezoneCode.ts file and updates the import statements in the affected files to import Timezone from Common/Types/Timezone instead of TimezoneCode. These changes improve the accuracy and reliability of the code.
This commit adds the functionality to select subscriber timezones in the SubscriberSettings component. It introduces a new field, "Subscriber Timezones", which allows subscribers to choose their preferred timezones for receiving notifications. The selected timezones are displayed when subscribers receive notifications. This feature enhances the user experience by providing localized time information.
Refactor import statements for TimezoneUtil in UserProfile/Index.tsx
This commit updates the import statements in the UserProfile/Index.tsx file to import TimezoneUtil from "Common/Types/Timezone" instead of "CommonUI/src/Utils/Timezone". This change ensures that the correct module is imported, improving the accuracy and reliability of the code.
Refactor import statements for TimezoneUtil in UserProfile/Index.tsx
This commit updates the import statements in the UserProfile/Index.tsx file to import TimezoneUtil from "Common/Types/Timezone" instead of "CommonUI/src/Utils/Timezone". This change ensures that the correct module is imported, improving the accuracy and reliability of the code.
Refactor import statements for TimezoneUtil in UserProfile/Index.tsx
This commit updates the import statements in the UserProfile/Index.tsx file to import TimezoneUtil from "Common/Types/Timezone" instead of "CommonUI/src/Utils/Timezone". This change ensures that the correct module is imported, improving the accuracy and reliability of the code.
Refactor import statements for TimezoneUtil in UserProfile/Index.tsx
This commit updates the import statements in the UserProfile/Index.tsx file to import TimezoneUtil from "Common/Types/Timezone" instead of "CommonUI/src/Utils/Timezone". This change ensures that the correct module is imported, improving the accuracy and reliability of the code.
refactor: Update retries value in playwright.config.ts
This commit updates the retries value in the playwright.config.ts file to a fixed value of 3. This change ensures that the tests are retried up to 3 times, improving the reliability of the test suite.
refactor: Update import statements for jest in test files
This commit updates the import statements for jest in multiple test files to use the correct module name "jest" instead of "globals". This change ensures that the jest module is imported correctly, improving the accuracy and reliability of the test setup.
refactor: Update docker-compose command in test.e2e.yaml
This commit updates the docker-compose command in the test.e2e.yaml file to remove the duplicate `e2e` service name. This change improves the clarity and efficiency of the script.
fix: job dependencies
Merge branch 'release' of github.com:OneUptime/oneuptime into release
refactor: Clear user data and remove cookies on authentication error
This commit removes the TimezoneCode enum from the Common/Types/TimezoneCode.ts file. The enum is no longer needed and can be safely deleted. Additionally, it updates the import statements in the affected files to import Timezone from Common/Types/Timezone instead of TimezoneCode. This change ensures that the correct module is imported and improves the accuracy and reliability of the code.
This commit updates the import statements in the UserProfile/Index.tsx file. It changes the import statement for TimezoneUtil from "CommonUI/src/Utils/Timezone" to "Common/Types/Timezone". This change ensures that the correct module is imported, improving the accuracy and reliability of the code.
This commit updates the import statements in the UserProfile/Index.tsx file. It changes the import statement for TimezoneUtil from "CommonUI/src/Utils/Timezone" to "Common/Types/Timezone". This change ensures that the correct module is imported, improving the accuracy and reliability of the code.
This commit refactors the import statements in the UserProfile/Index.tsx file. It updates the import statement for TimezoneUtil from "CommonUI/src/Utils/Timezone" to "Common/Types/Timezone". This change ensures that the correct module is imported, improving the accuracy and reliability of the code.
This commit updates the retries value in the playwright.config.ts file. The previous value was determined based on the environment variable "CI", but it has been changed to a fixed value of 3. This change ensures that the tests are retried up to 3 times, improving the reliability of the test suite.
This commit updates the import statements for jest in multiple test files. The previous import statements used "globals" as the module name, which is incorrect. The correct module name is "jest". This change ensures that the jest module is imported correctly, improving the accuracy and reliability of the test setup.
refactor: Update docker-compose command in test.e2e.yaml
This commit updates the docker-compose command in the test.e2e.yaml file. The previous command included the `e2e` service name twice, which is unnecessary. The updated command removes the duplicate service name, improving the clarity and efficiency of the script.
This commit clears the user data and removes cookies when an authentication error occurs. This ensures that the user is logged out and any stored data is removed, preventing unauthorized access. The code change is made in the API.ts file.
This commit updates the axios and posthog-js dependencies in the package-lock.json file. The axios dependency is updated from version 1.7.1 to 1.7.2, and the posthog-js dependency is updated from version 1.131.4 to 1.133.0. This update ensures that the latest stable versions of these dependencies are used, improving the functionality and security of the application.
This commit updates the import statements for jest in multiple test files. The previous import statements used "globals" as the module name, which is incorrect. The correct module name is "jest". This change ensures that the jest module is imported correctly, improving the accuracy and reliability of the test setup.
This commit updates the import statements for jest in multiple test files. The previous import statements used "globals" as the module name, which is incorrect. The correct module name is "jest". This change ensures that the jest module is imported correctly, improving the accuracy and reliability of the test setup.
This commit updates the import statements for jest in multiple test files. The previous import statements used "globals" as the module name, which is incorrect. The correct module name is "jest". This change ensures that the jest module is imported correctly, improving the accuracy and reliability of the test setup.
This commit updates the import statements for jest in multiple test files. The previous import statements used "globals" as the module name, which is incorrect. The correct module name is "jest". This change ensures that the jest module is imported correctly, improving the accuracy and reliability of the test setup.
This commit updates the import statements for jest in multiple test files. The previous import statements used "globals" as the module name, which is incorrect. The correct module name is "jest". This change ensures that the jest module is imported correctly, improving the accuracy and reliability of the test setup.
This commit updates the import statement for jest in the setupTest.js file. The previous import statement used "globals" as the module name, which is incorrect. The correct module name is "jest". This change ensures that the jest module is imported correctly, improving the accuracy and reliability of the test setup.
This commit updates the import statement for jest in the setupTest.js file. The previous import statement used "globals" as the module name, which is incorrect. The correct module name is "jest". This change ensures that the jest module is imported correctly, improving the accuracy and reliability of the test setup.
This commit updates the import statement for jest in the setupTest.js file. The previous import statement used "globals" as the module name, which is incorrect. The correct module name is "jest". This change ensures that the jest module is imported correctly, improving the accuracy and reliability of the test setup.
This commit removes the "@trivago/prettier-plugin-sort-imports" plugin from the ".prettierrc.json" file and updates the eslint configuration in the "package.json" file. The plugin was removed because it is no longer needed and caused conflicts with the updated eslint configuration. This change improves the codebase by simplifying the prettier configuration and ensuring compatibility with the updated eslint rules.
This commit updates the symbol type from 'Symbol' to 'symbol' in the ColumnAccessControl files. The use of 'symbol' aligns with the TypeScript convention for symbol types. This change improves code consistency and readability.
This commit adds a new dropdown component for selecting the timezone on the user profile page. The dropdown options are populated using the `TimezoneCode` enum from the `Common/Types/TimezoneCode.ts` file. Users can now select their timezone, which will be used for all date and time related notifications sent to them. This enhancement improves the user experience by providing a convenient way to set the timezone preference.
This commit refactors the API class in API.ts to improve error handling. The `getFriendlyErrorMessage` method now includes additional error cases and returns more specific error messages for network errors, timeouts, request aborts, cancellations, connection issues, and SSL certificate expiration. This change enhances the user experience by providing clearer and more informative error messages.
This commit updates the notification subjects for incidents and announcements in the SendNotificationToSubscribers.ts files. The subjects now include a prefix indicating the type of notification (e.g., [Incident], [Announcement]) followed by the status page name. This change improves the clarity and consistency of the notification emails and SMS messages sent to subscribers.
This commit refactors the API class in API.ts to improve the handling of SSL certificate errors. The `getFriendlyErrorMessage` method now includes specific error messages for different SSL certificate issues, such as expired certificates, certificates signed by unknown authorities, and self-signed certificates. This enhancement enhances the user experience by providing clearer and more informative error messages for SSL certificate errors.
The API class in API.ts has been updated to improve error handling. The getFriendlyErrorMessage method now includes additional error cases and returns more specific error messages for network errors, timeouts, request aborts, cancellations, connection issues, and SSL certificate expiration. This change enhances the user experience by providing clearer and more informative error messages.
The API class in API.ts has been updated to improve error handling and display. The getFriendlyErrorMessage method now includes additional error cases and returns more specific error messages for network errors, timeouts, request aborts, cancellations, connection issues, and SSL certificate expiration. This change enhances the user experience by providing clearer and more informative error messages.
The status-check.sh script has been modified to update the endpoint URLs for checking the status of the Dashboard, Status Page, and Accounts services. The URLs now include "/status/ready" at the end, ensuring that the services are ready to handle requests. This change improves the accuracy and reliability of the status check script.
The login test in Login.spec.ts has been updated to handle cases where the user credentials (email and password) are missing. Previously, the test would only check if the user is registered, but now it also checks if the registered user email and password are available. This change ensures that the test behaves correctly in all scenarios and improves the reliability of the login functionality.
refactor: Update artifact upload paths in release and test workflows
The artifact upload paths in the release.yml, test-release.yaml, and test.e2e.yaml workflows have been updated to include the entire E2E directory instead of specific subdirectories. This change simplifies the configuration and ensures that all necessary files are included in the artifacts.
This commit adds a new endpoint to the CodeRepositoryAPI class in CodeRepositoryAPI.ts. The endpoint allows users to retrieve Copilot events for a specific file in the code repository. It takes in a secret key, file path, and service catalog ID as parameters and returns a list of Copilot events. This enhancement improves the functionality and usability of the API.
This commit adds a new column, CopilotEventStatus, to the CopilotEvent model in the CopilotEvent.ts file. The CopilotEventStatus column represents the status of a Copilot event that was triggered for a file in the code repository. This enhancement improves the functionality and flexibility of the CopilotEvent model.
This commit updates the branch name in Copilot/Index.ts from 'test-branch-3' to 'test-branch-4'. Additionally, it adds the GITHUB_USERNAME variable to the .env.example file. These changes improve the accuracy and functionality of the code.
This commit modifies the CodeRepositoryUtil class in CodeRepository.ts to include a new parameter, serviceRepository, in the createBranch and createOrCheckoutBranch methods. This change allows for better integration with the ServiceRepository class and improves the flexibility and maintainability of the code.
The HostedCodeRepository class in HostedCodeRepository.ts has been updated to include a new method, createPullRequest. This method allows for the creation of pull requests in the code repository. This change enhances the functionality and flexibility of the HostedCodeRepository class.
The ServiceFileTypesUtil class in ServiceFileTypes.ts has been updated to include two new methods: getCommonDirectoriesToIgnore and getCommonFilesToIgnore. These methods return arrays of common directories and files that should be ignored in code repositories. This change improves the functionality and maintainability of the code by providing a centralized way to define and retrieve the directories and files to ignore.
The CodeRepositoryUtil class in CodeRepository.ts has been refactored to improve the handling of file extensions. The changes include:
- Simplifying the logic for skipping files with unsupported extensions
- Adding support for accepted file extensions in the getFilesInDirectory method
These improvements enhance the functionality and maintainability of the code.
The ServiceRepository class in ServiceRepository.ts has been updated to include a new field, serviceLanguage. This field is of type ServiceLanguage and is required. This change allows for better organization and identification of code repositories based on their programming language.
This commit refactors the CodeRepositoryUtil and LocalFile classes to include a new method, sanitizeFilePath, which removes double slashes from file paths. This change ensures that file paths are properly formatted and improves the reliability and maintainability of the code.
The CodeRepositoryView component in Index.tsx has been updated to include a new field for the repository name. This change allows for better organization and identification of code repositories within the system.
The CodeRepository entity has been updated to include two new fields: organizationName and repositoryName. These fields are of type character varying(100) and are required. This change allows for better organization and identification of code repositories within the system.
The status-check.sh script has been modified to update the endpoint URLs for checking the status of the Dashboard and Status Page services. The URLs now include "/status/ready" at the end, ensuring that the services are ready to handle requests. This change improves the accuracy and reliability of the status check script.
The status-check.sh script has been updated to modify the endpoint URLs for checking the status of various services. The URLs now include "/ready" at the end, indicating that the services are ready to handle requests. This change ensures that the status check accurately reflects the readiness of the services and improves the reliability of the script.
The SchemaMigrations/Index.ts file has been updated to include the MigrationName1718203144945 migration. This change ensures that the new migration is included in the list of schema migrations, allowing for proper database versioning and management.
The ServiceRepository class in ServiceRepository.ts has been updated to use the number type for the limitNumberOfOpenPullRequestsCount property instead of the string type. This change ensures that the property is correctly typed and improves the accuracy and reliability of the code.
The GitHubUtil class in GitHub.ts has been updated to import the HostedCodeRepository class from the correct file path, "HostedCodeRepository/HostedCodeRepository". This change ensures that the correct class is imported and used, improving the functionality and maintainability of the code.
The CodeRepositoryType.ts file has been refactored to remove commented out code and unused imports. This change improves code cleanliness and reduces unnecessary clutter in the file.
The Config.ts file has been updated to handle the GitHub token more efficiently. The GetGitHubToken function now checks the repository type and throws an exception if a GitHub token is required but not provided. This change improves the security and reliability of the application by ensuring that the correct token is used for GitHub repositories.
The ServiceRepositoryPage component has been updated to include a new flag, doNotShowWhenEditing, which controls whether a certain field should be displayed when editing a service. This change improves the user experience by allowing for more flexibility in customizing the form fields based on the editing mode.
The prop types for the noItemsMessage prop have been updated in multiple components to include the ReactElement type. This change allows for passing React elements as the no items message, providing more flexibility in customizing the message's content and appearance.
The title of the Service Catalog field in the ServiceRepositoryPage component has been updated from "Service Catalog" to "Service". This change improves clarity and consistency in the user interface.
This commit adds the MigrationName1718126316684 to the list of schema migrations in the Index.ts file. The new migration introduces changes to the database schema and ensures that the codebase is up to date with the latest schema changes. This enhancement improves the maintainability and functionality of the application.
This commit adds a new field to the ServiceRepositoryPage component, allowing users to enable or disable pull requests for a service. When enabled, OneUptime will create pull requests for the service and automatically improve the code. This enhancement provides more control over pull request generation and improves the functionality of the ServiceRepositoryPage.
The enablePullRequests property has been added to the ServiceRepository model. This property allows for enabling or disabling automatic pull request creation by Copilot for this service. By default, enablePullRequests is set to true, indicating that Copilot will create pull requests for this service to automatically improve the codebase. This change enhances the functionality of the ServiceRepository model and provides more control over pull request generation.
refactor: Update defaultValue property in Field interface
The defaultValue property in the Field interface has been updated to include the number type. This change allows for setting default values of type number in form fields.
This commit removes the CopilotServiceService module, which is no longer needed. It also updates the references to the CopilotService class to use the ServiceRepository class instead. This change improves code organization and consistency by using the appropriate service class for managing service repositories.
This commit adds the CopilotService to the BaseAPIFeatureSet in the Index.ts file. The CopilotService is imported from the CopilotServiceService module and is used to create a new router for the "/app" endpoint. This change allows for handling requests related to the CopilotService in the application.
New migrations have been added to the SchemaMigrations and Models directories. These migrations introduce new changes to the database schema and model definitions. This commit ensures that the codebase is up to date with the latest schema changes and improves the maintainability of the application.
The titles of the ServiceCatalog and ServiceCatalogOwnerTeam classes have been updated to use a consistent naming convention. The "ServiceCatalog" title has been changed to "Service Catalog" and the "ServiceCatalog ID" title has been changed to "Service Catalog ID". This change improves clarity and readability in the codebase.
The value of ALLOWED_ACTIVE_MONITOR_COUNT_IN_FREE_PLAN in _helpers.tpl has been updated to be quoted using the | quote filter. This change ensures that the value is treated as a string, improving consistency and compatibility with other parts of the codebase.
A new debug configuration has been added to the launch.json file. This configuration allows for launching Copilot locally by running the "start" script using npm. It skips files in the "<node_internals>" directory and is specifically configured for debugging Node.js applications. This change improves the development experience by enabling easy debugging of Copilot locally.
The linting configuration in the package.json file has been updated to exclude .tsx files from linting. This change ensures that the linting process only targets .ts files and improves the efficiency of the linting process.
The jest.config.json files in the Model, Probe, Common, Copilot, CommonUI, Ingestor, IsolatedVM, TestServer, and CommonServer directories have been updated. The "testPathIgnorePatterns" property has been added to each file, excluding the "node_modules" and "dist" directories from test path matching. This change improves test performance and ensures that unnecessary files are not included in the test coverage.
The CodeRepositoryUtil methods getGitCommitHashForFile and getFilesInDirectory have been updated to accept a repoPath parameter. This change allows for specifying the repository path when retrieving the git commit hash for a file or getting the files in a directory. It improves the flexibility and reusability of the CodeRepositoryUtil class.
The import statements in the MonitorService.ts file have been updated to import the AllowedActiveMonitorCountInFreePlan and IsBillingEnabled constants from the EnvironmentConfig module. This change ensures that the codebase is using the correct import paths and improves code readability.
The ALLOWED_ACTIVE_MONITOR_COUNT_IN_FREE_PLAN constant has been updated to 10 in multiple files. This change aligns the codebase with the new limit for active monitors allowed in the free plan.
This code change updates the CodeRepositoryAPI endpoint in the CodeRepositoryAPI.ts file to use the POST method instead of the GET method for getting the code repository. The route has also been modified to "/get-code-repository/:secretkey" to align with the API design. This change ensures that the code repository is retrieved securely and follows the recommended RESTful API practices.
This code change adds the CodeRepositoryAPI endpoint to the BaseAPIFeatureSet in the App/FeatureSet/BaseAPI/Index.ts file. It imports the CodeRepository model and service, and includes the necessary routing and configuration for the endpoint. This change allows for the CRUD operations on CodeRepository data through the API.
This code change adds the TableBillingAccessControl decorator to the MonitorOwnerTeam, MonitorOwnerUser, StatusPageOwnerTeam, MonitorGroupOwnerTeam, and MonitorGroupOwnerUser models. The decorator configures the access control settings for these models based on the specified subscription plans. This change ensures that the appropriate access control rules are applied when creating, reading, updating, or deleting records in these models.
The DuplicateModel component in CommonUI has been updated to include a new option, forceNavigate, when navigating to a new item. This option allows for forced navigation to the new item, bypassing any checks or validations. This change provides more control over the navigation behavior and ensures consistent navigation to the new item.
The Field interface in the CommonUI project has been updated to include a new property, doNotShowWhenCreating. This property allows developers to specify whether a field should be shown in the form when creating a new entity. By setting doNotShowWhenCreating to true, the field will be hidden during the creation process. This change provides more control over the visibility of fields in the form based on the create or edit mode.
Update CodeRepository.getRepository() to return a Promise<CodeRepositoryModel> instead of a string. This change improves the functionality and flexibility of the CodeRepository class.
The CodeRepository.getRepository() method has been updated to return a Promise<CodeRepositoryModel> instead of a string. This change ensures that the method is asynchronous and can handle asynchronous operations, improving the overall functionality and flexibility of the CodeRepository class.
The startup message in the Copilot/Index.ts file has been updated to provide a clearer description of the application. This change improves the readability and understanding of the log output during the startup process.
This code change adds the CopilotEvent API endpoint to the BaseAPIFeatureSet in the App/FeatureSet/BaseAPI/Index.ts file. It imports the CopilotEvent model and service, and includes the necessary routing and configuration for the endpoint. This change allows for the CRUD operations on CopilotEvent data through the API.
This code change updates the Dockerfile and build steps for the Copilot service. It adds a new workflow job, `docker-build-copilot`, which builds the Docker image for the Copilot service. The job includes steps to checkout the code, preinstall dependencies, and build the Docker image using the specified Dockerfile. This change ensures that the Copilot service is built and deployed correctly in the CI/CD pipeline.
This code change updates the logger class to use the configured log level from the environment configuration. The getLogLevel method is added to retrieve the log level, and the info, error, warn, and debug methods are updated to check the log level before logging the message. This change ensures that the logger behaves according to the configured log level, improving the consistency and control of log output.
This code change adds a new column, 'isMonotonic', to the Metric model in the AnalyticsModels directory. The column is optional and represents whether the metric is monotonic. This change ensures that the necessary data is captured and stored correctly for metrics in the system.
This code change updates the Telemetry class in the CommonServer/Utils directory to include methods for creating gauge and histogram metrics. The getGauge and getHistogram methods are added, allowing for the creation of observable gauges and histograms with specified names and descriptions. This change enhances the telemetry capabilities of the application by providing more options for metric tracking and analysis.
This code change updates the EventItem component to dynamically apply styles based on the event type. The classNames for the title and description elements are now generated based on the eventType prop, allowing for more flexibility in styling. This change improves the visual representation of different event types in the application.
This code change adds a new column, 'Metric Point Type', to the Metric model in the AnalyticsModels directory. The column is optional and represents the type of metric point. This change ensures that the necessary data is captured and stored correctly for metrics in the system.
This code change adds a new column, 'Aggregation Temporality', to the Metric model in the AnalyticsModels directory. The column is required and represents the aggregation temporality of the metric. This change ensures that the necessary data is captured and stored correctly for metrics in the system.
This code change updates the needs array in the test-e2e-release-saas and test-e2e-release-self-hosted jobs in the release.yml file. The nginx-docker-image-deploy job has been added to the needs array to ensure that it is executed before these jobs. This change ensures that the necessary dependencies are met for the successful execution of the test-e2e-release-saas and test-e2e-release-self-hosted jobs.
This code change removes the commented code in the NavBar component that was no longer needed. The commented code was related to the AI Copilot feature and the Service Catalog feature, which have been refactored or removed from the application. Removing this commented code improves code readability and reduces clutter in the component.
refactor: Update viewPageRoute in CodeRepositoryPage component
This code change updates the viewPageRoute prop in the CodeRepositoryPage component to use the new route generated by the Navigation utility. This ensures that the component navigates to the correct view page when a code repository is clicked.
This code change adds the viewPageRoute prop to the CodeRepositoryPage component in order to specify the route for viewing a code repository. This prop is set to the corresponding route from the RouteMap. By including this prop, the component will correctly navigate to the view page when the user clicks on a code repository.
This code change adds the CodeRepository model and service to the project. It includes the following modifications:
- Added CodeRepository model to the Models/Index.ts file.
- Added CodeRepositoryService to the Services/Index.ts file.
- Created CodeRepositoryService.ts file with the necessary implementation.
These changes enable the project to manage code repositories.
This code change adds the CodeRepository model, service, and permissions to the project. It includes the following modifications:
- Added CodeRepository model to the Models/Index.ts file.
- Added CodeRepositoryService to the Services/Index.ts file.
- Created CodeRepositoryService.ts file with the necessary implementation.
- Updated Permission enum in the Permission.ts file to include CreateCodeRepository, DeleteCodeRepository, EditCodeRepository, and ReadCodeRepository permissions.
These changes enable the project to manage code repositories and define the necessary permissions for them.
This code change updates the endpoint-status.sh script to improve the error message when the endpoint returns an HTTP status other than 200. The previous message mentioned that it usually takes a few minutes for the app to boot, which is not accurate. The updated message removes this misleading information and provides a more accurate description of the retry behavior.
This code change updates the BaseModelTable component to improve the logic for determining whether to show the actions column. Previously, the actions column was shown based on various conditions, including permissions, action buttons, and the showViewIdButton prop. This logic has been refactored to simplify the conditions and make it easier to understand.
- The showActionsColumn variable is now initialized with the result of the Boolean function, which checks if any of the conditions are met.
- Additionally, if the user is a master admin, the actions column will always be shown, regardless of other conditions.
These changes enhance the readability and maintainability of the code, ensuring that the actions column is displayed correctly based on the specified conditions.
This code change updates the values.yaml file in the HelmChart/Public/oneuptime directory. It enables the cleanup and e2e cron jobs for development purposes. Please note that these cron jobs should not be enabled in production environments. This change allows for easier testing and debugging during development.
This code change updates the CodeQL analysis workflow in the .github/workflows/codeql-analysis.yml file. It adds TypeScript as a supported language for CodeQL analysis, in addition to JavaScript. This ensures that the codebase can be thoroughly analyzed for potential security vulnerabilities and bugs in both JavaScript and TypeScript code.
This code change updates the SideMenu.tsx file in the ServiceCatalog/View directory. It fixes an indentation issue in the SideMenuItem component by properly aligning the opening tag. This ensures consistent code formatting and improves code readability.
This code change updates the Delete.tsx file in the ServiceCatalog/View directory. It modifies the onDeleteSuccess callback function to navigate to the Service Catalog page (RouteMap[PageMap.SERVICE_CATALOG]) after a successful deletion. This ensures a smooth user experience by redirecting them to the appropriate page after completing the deletion process.
This code change updates the ServiceCatalogPage component in ServiceCatalog.tsx to include lazy loading for the ServiceCatalogElement component. By implementing lazy loading, the page load performance is improved as the ServiceCatalogElement component is only loaded when it is actually needed. This enhances the overall user experience by reducing initial page load time.
This code change updates the ServiceCatalogRoutePath in the RouteMap.ts file to include new routes for viewing, managing owners, and deleting service catalogs. This ensures that the application can properly handle these actions related to service catalogs within the dashboard.
This code change updates the ServiceCatalogRoutePath in the RouteMap.ts file to include new routes for viewing, managing owners, and deleting service catalogs. This ensures that the application can properly handle these actions related to service catalogs within the dashboard.
This code change adds the ServiceCatalogOwnerTeamService and ServiceCatalogOwnerUserService to the Services/Index.ts file. These services are necessary for managing ownership of Service Catalogs, allowing teams and individual users to be assigned as owners of specific Service Catalogs.
This code change adds the ServiceCatalogOwnerTeam and ServiceCatalogOwnerUser models to the project. These models are necessary for managing ownership of Service Catalogs, allowing teams and individual users to be assigned as owners of specific Service Catalogs.
This code change fixes the formatting in the SchemaMigrations/Index.ts file. The changes include removing unnecessary whitespace and ensuring consistent indentation. This improves code readability and maintainability.
This code change updates the Index.ts and Models/Index.ts files to import and include the ServiceCatalogService and ServiceCatalog model respectively. This allows for the management of Service Catalogs, including creating, deleting, editing, and reading them within the project.
This code change adds new permissions for managing Service Catalogs. The permissions include creating, deleting, editing, and reading Service Catalogs. These permissions allow users to perform various actions related to Service Catalogs within the project.
Refactor: Update Index.ts and Models/Index.ts to import and include the ServiceCatalogService and ServiceCatalog model respectively.
refactor: Change metric column types to decimal
This code change modifies the Metric model in the AnalyticsModels directory to change the column types of various metrics from TableColumnType.Number to TableColumnType.Decimal. This update ensures more accurate and precise calculations for the metrics.
This code change updates the CommonServer/package.json file to remove the "@opentelemetry/metrics" dependency and adds the "@opentelemetry/sdk-metrics" dependency with version "^1.21.0". It also updates the Ingestor/Service/OTelIngest.ts file to import the "JSONFunctions" module from "Common/Types/JSONFunctions" and use the "flattenObject" function from that module to flatten the final object before returning it.
This code change updates the OTelIngest.ts file to improve code readability and maintainability. It includes formatting changes such as indentation and line breaks to enhance code structure and organization. These modifications make the code easier to understand and maintain for future development.
This code change updates the Telemetry class to include new metrics for status checks. It adds counters for successful and failed status checks, including separate counters for ready and live checks. This modification enhances the monitoring capabilities of the application and provides more granular insights into the status of the system.
This code change updates the external database configuration in the HelmChart. It adds support for using an existing secret for the password instead of directly specifying the password. This modification enhances security and allows for easier management of the database credentials.
This code change updates the external database configuration in the HelmChart. It adds support for using an existing secret for the password instead of directly specifying the password. This modification enhances security and allows for easier management of the database credentials.
This code change updates the PageMap and RouteMap files to include a new telemetry metric page. The new page, TELEMETRY_SERVICES_VIEW_METRIC, is added to both files with its corresponding route path. This modification ensures that the new page is properly mapped and accessible within the application.
This code change updates the value of DATABASE_USERNAME in the _helpers.tpl file. The value is changed to "postgres" when the postgresql.enabled flag is true, and to the value of $.Values.externalPostgres.username when the flag is false. This modification ensures that the correct username is used for the database connection.
The code changes update the commands used to retrieve secrets from Kubernetes. The previous commands were using the deprecated `go-template` option, which has been replaced with the `jsonpath` option. This refactor ensures that the correct commands are used to retrieve the secrets, improving the reliability and maintainability of the code.
This code change adds lazy loading for images in the DateFilter component. By implementing lazy loading, the images in the component will only load when they are in the viewport, improving the page load performance. This enhancement provides a better user experience by reducing the initial load time of the page.
This code change adds a new date filter to the FiltersForm and FilterViewer components. The date filter allows users to filter data based on a specific date range. This enhancement improves the filtering capabilities of the components and provides users with more flexibility in data analysis.
This code change updates the DatabaseService class to set the isRoot flag to true when updating items. Previously, the props object in the update query only included the ignoreHooks flag. By adding the isRoot flag, we ensure that the update operation is performed as a root user, bypassing any access restrictions or hooks. This modification enhances the flexibility and control of the update process.
This code change updates the PingMonitorView component to display the monitor destination and port. It ensures that the destination URL or IP address and the corresponding port are correctly displayed in the component. This enhancement improves the visibility of the monitoring information for users.
This code change updates the ProbeMonitorResponse interface to include the monitorDestination and monitorDestinationPort properties. These properties represent the destination URL or IP address and the corresponding port for monitoring. By adding these properties to the interface, we ensure that the necessary information is available for monitoring purposes.
This code change updates the value of DATABASE_USERNAME in the _helpers.tpl file. The value is changed to "postgres" when the postgresql.enabled flag is true, and to the value of $.Values.externalPostgres.username when the flag is false. This modification ensures that the correct username is used for the database connection.
This code change updates the import statement for the InitialMigration file in the Postgres SchemaMigrations folder. The file name was changed from "1717605043663-MigrationName.ts" to "1717605043663-InitialMigration.ts". This refactor ensures that the correct file is imported and used for schema migrations.
This code change updates the ClickHouse configuration to support HTTPS. It introduces a new environment variable, `ClickHouseIsHostHttps`, which is set to `true` in the `EnvironmentConfig.ts` file. The `ClickhouseConfig.ts` file is modified to conditionally set the host protocol to `https` based on the value of `ClickHouseIsHostHttps`. This enhancement allows users to easily configure ClickHouse to use HTTPS when connecting to the host.
This code change updates the Redis and ClickHouse TLS configuration to support the new `RedisTlsCert`, `RedisTlsKey`, `ClickhouseTlsCert`, and `ClickhouseTlsKey` environment variables. It modifies the `Redis.ts` and `ClickhouseConfig.ts` files to conditionally set the TLS options based on the presence of these variables. This enhancement allows users to easily enable TLS for Redis and ClickHouse by providing the necessary certificate and key files.
This code change enables Redis and ClickHouse in the Helm chart by setting the `enabled` flag to `true` for both services in the `values.yaml` file. This enhancement allows users to utilize Redis and ClickHouse functionalities when deploying the Helm chart.
This code change updates the Postgres configuration in the Helm chart to support both internal and external Postgres databases. It adds the necessary environment variables and secrets blocks to handle the external Postgres database configuration. This enhancement allows users to easily switch between using an internal or external Postgres database when deploying the Helm chart.
This code change updates the Postgres configuration in the Helm chart to support both internal and external Postgres databases. It adds the `applicationName` property to the `dataSourceOptions` object in `PostgresConfig.ts` to set the application name to 'oneuptime'. Additionally, it adds new blocks in `secrets.yaml` to handle secrets for the external Postgres database, including the password and SSL options. This enhancement allows users to easily switch between using an internal or external Postgres database when deploying the Helm chart.
This code change updates the Postgres configuration in the Helm chart to support both internal and external Postgres databases. The `DATABASE_NAME` environment variable is renamed from `DATABASE_DATABASE` to improve clarity. Additionally, a new block for configuring SSL options for the external Postgres database is added. This enhancement allows users to easily switch between using an internal or external Postgres database when deploying the Helm chart.
This code change updates the Postgres configuration in the Helm chart to support both internal and external Postgres databases. The `DATABASE_HOST`, `DATABASE_PORT`, `DATABASE_USERNAME`, `DATABASE_PASSWORD`, and `DATABASE_DATABASE` environment variables are now conditionally set based on the `postgresql.enabled` flag in the `values.yaml` file. If `postgresql.enabled` is `true`, the values are set to the internal Postgres service details. Otherwise, they are set to the corresponding values from the `externalPostgres` configuration. This enhancement allows users to easily switch between using an internal or external Postgres database when deploying the Helm chart.
refactor: Enable external Postgres support in Helm chart
This code change modifies the Helm chart to enable support for using an external Postgres database. The `postgresql.enabled` flag in the `values.yaml` file is set to `true` to indicate that an external Postgres database will be used. This enhancement allows users to configure the Helm chart to connect to an existing Postgres database instead of deploying a new one.
This code change updates the Docker login action to version 2.2.0 in the build.yml file. The new version provides improved functionality and security for logging in to Docker Hub. This chore ensures that the latest stable version of the Docker login action is used in the build process.
This code change adds the ErrorMessage component to the BasicFormModal component in BasicFormModal.tsx. The ErrorMessage component is rendered when the props.error value is truthy, displaying the error message to the user. This enhancement improves the user experience by providing clear feedback when an error occurs during form submission.
This code change adds the `doNotShowWhenEditing` flag to the form fields in the `ModelTable` component. When set to `true`, this flag prevents certain fields from being shown in the form when it is in edit mode. This improvement provides better control over which fields are displayed in the form during editing, enhancing the user experience and reducing clutter.
refactor: Update DatabaseService encrypt method to handle PartialEntity
This code change updates the `encrypt` method in the `DatabaseService` class to handle `PartialEntity` as an input parameter. Previously, the method only accepted `TBaseModel` as the input type. This improvement allows for encrypting both complete entities and partial entities, providing more flexibility in data encryption.
This code change updates the permissions for the MonitorSecret model in MonitorSecret.ts. The update includes adding the Permission.EditMonitorSecret permission to the update operation, allowing project owners, project admins, and users with the EditMonitorSecret permission to update MonitorSecret records. This improvement provides better control over who can modify MonitorSecrets and ensures that only authorized users can make changes to sensitive information.
This code change removes the unused Permission.ProjectMember from the Label model in Label.ts. The Permission.ProjectMember was mistakenly included in the create, read, update, and delete arrays, but it is not required for these operations. Removing the unused permission improves code clarity and reduces potential confusion.
This code change updates the TableRow component in the Table module to align the content at the top of the table cells. The classNames "align-top" are added to the relevant table cells to achieve this alignment. This improvement ensures consistent vertical alignment of content in the table rows.
This code change updates the AnalyticsDatabaseService to handle the count operation when a group by clause is used. Previously, the count operation would return the total number of rows, but now it correctly counts the number of groups. This improvement ensures accurate counting when grouping data in the analytics database.
This code change updates the secrets.yaml file to dynamically generate probe secrets based on the values provided in the $.Values.probes object. If a probe secret already exists, it is used. Otherwise, a new random 32-character alphanumeric string is generated and encoded. This improvement ensures that probe secrets are properly managed and provides better security for sensitive information.
This code change adds the TableBillingAccessControl decorator to the MonitorSecret model in MonitorSecret.ts. The decorator sets the access control permissions for creating, reading, updating, and deleting MonitorSecret records to the Growth subscription plan. This improvement ensures that only users with the Growth plan can perform these actions on MonitorSecrets, providing better control over access to sensitive information.
The code change adds a banner component to the MonitorSecrets page. The banner displays a title, description, and a link to a video tutorial on how to use monitor secrets to store sensitive information. This enhancement provides users with a quick resource to learn about using monitor secrets effectively.
This code change updates the environment variable setup in the test-setup.sh script. The sed command is used to modify the config.env file, setting the NODE_ENV to 'test' and BILLING_ENABLED to 'true'. Additionally, the DATABASE_HOST is set to 'localhost', DATABASE_PORT to '5400', REDIS_HOST to 'localhost', REDIS_PORT to '6379', REDIS_DB to '0', and REDIS_USERNAME to 'default'. This improvement ensures that the test environment is properly configured with the correct values for testing.
This code change adds a banner component to the APIKeyView and TeamView pages. The banner displays a title, description, and a link to a 5-minute video tutorial about permissions in OneUptime. This enhancement provides users with a quick resource to learn about permissions and how they work in the application.
This code change adds the checkReadBlockPermission method to the ReadPermission class in ReadPermission.ts. The method is responsible for checking the block permissions for reading records. It allows the query to run if the system is making the query or if the user has root or master admin privileges. This enhancement provides better control over the reading of records and improves the security of the application.
This code change adds block permission checks to the CreatePermission and DeletePermission classes. The checkCreateBlockPermissions method is added to the CreatePermission class to check block permissions for creating a new record. Similarly, the checkDeleteBlockPermissions method is added to the DeletePermission class to check block permissions for deleting a record. These enhancements provide better control over the creation and deletion of records and improve the security of the application.
This code change adds the checkCreateBlockPermissions method to the CreatePermission class in CreatePermission.ts. The method is responsible for checking the block permissions for creating a new record. It allows the query to run if the system is making the query or if the user has root or master admin privileges. This enhancement provides better control over the creation of records and improves the security of the application.
This code change adds the isBlockPermission property to the UserPermission and TeamPermission interfaces and models. The isBlockPermission property allows for blocking specific permissions for users and teams. This enhancement provides greater control and flexibility in managing permissions within the application.
refactor: Add user2 to TeamMemberService test for improved coverage
The TeamMemberService test in TeamMemberService.test.ts has been updated to include the addition of user2. This change improves the test coverage by testing the behavior with multiple users.
The BaseAPI test in BaseAPI.test.ts has been updated to use the updateOneById method instead of the updateOneBy method. This change ensures consistency in method naming and improves code readability.
The `generatePhone` method in `Faker.ts` has been simplified to remove unnecessary character replacements and instead directly generate a random 10-digit phone number. This change improves the efficiency and readability of the code.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
The BaseAPI test in BaseAPI.test.ts has been updated to use the updateOneById method instead of the updateOneBy method. This change ensures consistency in method naming and improves code readability.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
The `notInBetween` method has been added to the `QueryHelper` class in `Database/QueryHelper.ts`. This method allows for querying records that are not within a specified range of values. It accepts a start value and an end value, and generates a `NOT IN` clause for the query. This enhancement provides greater flexibility in constructing complex queries and improves the overall query capabilities of the application.
The `notIn` method has been added to the `QueryHelper` class in `Database/QueryHelper.ts`. This method allows for querying records that are not in a specified list of values. It accepts an array of strings or ObjectIDs and generates a `NOT IN` clause for the query. This enhancement provides greater flexibility in constructing complex queries and improves the overall query capabilities of the application.
The `generatePhone` method in `Faker.ts` has been updated to remove unnecessary characters from the generated phone number. This change improves the consistency and simplicity of generating phone numbers using the Faker library.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
The table descriptions in the APIKeyView component have been updated to provide clearer information about managing permissions for API keys. This change improves the user experience and ensures that the purpose of the table is easily understood.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change adds the isBlockPermission property to the UserPermission and TeamPermission interfaces and models. The isBlockPermission property allows for blocking specific permissions for users and teams. This enhancement provides greater control and flexibility in managing permissions within the application.
The `generatePhone` method in `Faker.ts` has been updated to remove the country code parameter from the `faker.phone.number` function call. This change improves the consistency and simplicity of generating phone numbers using the Faker library.
This code change adds validation for the required fields in the ApiKeyPermissionService and TeamPermissionService. It throws a BadDataException if any of the required fields (apiKeyId, projectId, permission) are missing when creating a permission. Additionally, it checks if the permission is already assigned to the API key or team and throws an error if it is. These enhancements improve data integrity and prevent invalid permissions from being created.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change adds the isBlockPermission property to the UserPermission, UserTenantAccessPermission, ApiKeyPermission, and TeamPermission interfaces and models. The isBlockPermission property allows for blocking specific permissions for users, tenants, API keys, and teams. This enhancement provides greater control and flexibility in managing permissions within the application.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change removes the BlockedApiKeyPermissionService and BlockedTeamPermissionService files, as well as their corresponding models. These services and models are no longer needed and have been deleted to improve code organization and maintainability.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change adds the BlockedApiKeyPermissionService and BlockedTeamPermissionService services, as well as the BlockedApiKeyPermission and BlockedTeamPermission models. These additions provide functionality for managing blocked permissions for API keys and teams. This enhancement improves the flexibility and security of the application.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the TeamMemberService.test.ts file to improve readability and maintainability. It refactors the code to remove duplicated lines and uses jest.spyOn to mock the AccessTokenService methods. These changes enhance the code quality and test coverage.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change improves the clarity and maintainability of the BaseAPI.test.ts file. It removes unnecessary code and updates the logic for deleting and updating items. These changes enhance the code quality and test coverage.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change renames the deleteById method to deleteOneById in the BaseAPI and DatabaseService classes. The new method name provides better clarity and consistency with other methods in the codebase. This change improves the readability and maintainability of the code.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change adds the deleteById and updateById methods to the DatabaseService class. These methods allow for more efficient deletion and updating of records in the database by directly targeting the record's ID. This enhancement improves the performance and flexibility of the DatabaseService.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change improves the clarity and maintainability of the AccessControlPermission.ts file. It removes unnecessary code and updates the logic for checking user permissions to delete or update objects in the table. These changes enhance the code quality and user experience.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change improves the clarity and maintainability of the TeamView and APIKeyView components. The commit updates the rendering of the permission restrictions messages to have consistent line breaks and spacing. It also adds missing punctuation and capitalization for better readability. These changes enhance the user experience and code quality.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the titles of the APIKeyView and TeamView components to improve clarity. The titles "API Key Permissions" and "Team Permissions" are changed to "Allow Permissions" to better reflect their purpose. This change enhances the user understanding and usability of the components.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the DatabaseService.ts file to set the access control column with specific properties when retrieving data. Instead of setting it to a boolean value, the access control column is now set to an object with the properties _id and name set to true. This change enhances the flexibility and maintainability of the code.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the DatabaseService.ts and ColumnPermission.ts files to improve type safety. In DatabaseService.ts, the type of the projectIdColumn variable is changed from keyof TBaseModel | null to string | null, ensuring compatibility with the getTenantColumn() method. In ColumnPermission.ts, the type of the permissionColumns variable is changed from Columns<TBaseModel> to Columns, removing unnecessary type specificity. These changes enhance the code's clarity and maintainability.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change adds flexibility and maintainability improvements to the LabelService.ts and TableColumn.ts files. In LabelService.ts, a constructor is added to the Service class, allowing for the injection of a PostgresDatabase instance. In TableColumn.ts, the propertyKey parameter in the getTableColumn function is changed from keyof T to string, providing more flexibility in handling property keys. These changes enhance the usability and maintainability of the code.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change overrides the name property in the Label class to allow for more flexibility in handling scenarios where the name is not specified. By setting the name property to undefined, it improves the usability and maintainability of the code.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the DeleteOneBy.ts file to allow the `deletedByUser` property to be undefined. This change provides more flexibility in handling scenarios where the deletedByUser is not specified. It improves the usability and maintainability of the code.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the ModelPermission.ts file to use specific query permission methods for delete, update, and read operations. The checkDeleteQueryPermission, checkUpdateQueryPermissions, and checkReadQueryPermission methods provide more granular control and improve the clarity and maintainability of the code.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change removes the debugger statements from the _deleteBy method in DatabaseService.ts and improves code readability by reformatting the code and removing unnecessary comments. The changes enhance the maintainability and clarity of the code.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the queries in DatabaseService.ts, IncidentService.ts, and ScheduledMaintenanceStateTimelineService.ts to use the QueryHelper.inRelationArray method instead of QueryHelper.anyRelationArray for the "monitors" property. This change provides a more accurate and efficient way to query for records related to specific monitors. It improves the accuracy and performance of the queries.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the createdAt queries in multiple files to use the QueryHelper.inBetween method instead of QueryHelper.anyBetween. The inBetween method provides a more accurate and efficient way to query for records within a specific date range. This change improves the accuracy and performance of the queries.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the QueryHelper class to use the FindOperator type for the any and in methods. This allows for more flexibility in querying by accepting an array of values or a single value. The change improves code readability and maintainability.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the Go version used in the release workflow and modifies the "Checkout" step to use a specific ref instead of fetching the entire history. By specifying the ref, the workflow will only fetch the necessary code, reducing the time and resources required for the checkout process.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the checkout step in the release workflow to use the `ref` parameter instead of `fetch-depth`. This ensures that the correct branch or tag is checked out during the workflow execution.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change reorders the imports in the CreatePermission.ts and UpdatePermission.ts files to group related imports together and improve code readability. The imports are now organized in the following order:
1. External dependencies
2. Internal dependencies
3. Local dependencies
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change in ModelPermission.ts improves code readability and maintainability by removing unnecessary code, updating function parameters, and adding comments for clarity. The changes include:
- Removing unused function parameters in CheckReadPermissionType and checkReadPermission functions
- Updating the checkIfUserIsLoggedIn function call to include the type parameter
- Refactoring the checkModelLevelPermissions function to include the type parameter
- Adding a comment to clarify the purpose of the checkBillingPermissions function
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change removes unnecessary code in the ModelPermission.ts file. The empty lines and unused function parameters have been removed to improve code readability and maintainability.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the access control permissions in the PermissionHelper class. The "isAccessControlPermission" property for various permissions has been changed from "true" to "false". This ensures that the specified permissions no longer have access control restrictions.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the import statements in BillingService.test.ts to import both the Stripe and mockStripe modules from the same line. This improves code readability and ensures that both modules are imported consistently.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the TeamPermissionService to include the "projectId" property in the select props when querying for team members. This ensures that the "projectId" value is retrieved along with the "userId" value, allowing for easier access to the project ID in subsequent code logic.
This code change updates the TeamPermissionService to include the "projectId" property in the select props when querying for team members. This ensures that the "projectId" value is retrieved along with the "userId" value, allowing for easier access to the project ID in subsequent code logic.
This code change updates the TeamPermissionService to include the "projectId" property in the select props when querying for team members. This ensures that the "projectId" value is retrieved along with the "userId" value, allowing for easier access to the project ID in subsequent code logic.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change removes the unused import statement for "RemoveCanFromPermissions" in the "DataMigrations/Index.ts" file. The import is no longer needed and can be safely removed to improve code readability and maintainability.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the permission names in multiple files to align with the latest naming conventions. The following changes were made:
- In NotificationAPI.ts, the permission name "CanManageProjectBilling" was changed to "ManageProjectBilling".
- In DataMigration.ts, the permission names "CanCreateProjectLabel" and "CanReadProjectLabel" were changed to "CreateProjectLabel" and "ReadProjectLabel" respectively.
- In BillingPaymentMethodAPI.ts, the permission name "CanCreateBillingPaymentMethod" was changed to "CreateBillingPaymentMethod".
- In BillingInvoiceAPI.ts, the permission name "CanEditInvoices" was changed to "EditInvoices".
- In PromoCode.ts, the permission names "CanCreateProjectLabel" and "CanReadProjectLabel" were changed to "CreateProjectLabel" and "ReadProjectLabel" respectively. Additionally, the permission names "CanReadProject" and "CanEditProject" were changed to "ReadProject" and "EditProject" respectively.
These updates ensure that the permission names are consistent and reflect the intended functionality.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the TeamPermissionService to refresh access permissions for team members when they are deleted. Previously, only the user's global access permission was refreshed, but now both the global and tenant access permissions are refreshed. This ensures that the user's access permissions are up to date after a team member is deleted.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the .prettierrc.json file to include the @trivago/prettier-plugin-sort-imports plugin. By adding this plugin, the codebase will automatically sort imports according to specified rules. This improves code organization and maintainability.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change simplifies the `getTestDataSourceOptions` function in `PostgresConfig.ts` by using `process.env` values directly. By removing the conditional fallback to `'localhost'`, the function now relies solely on the environment variable `DATABASE_HOST` for the host value. This change ensures that the function always retrieves the latest values during test runs, as `process.env` can change dynamically.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change modifies the Haraka SMTP and TLS configurations to listen on port 25 instead of port 2525. The previous configuration used port 2525, but it has been changed to align with the standard SMTP port. This update ensures that the Haraka server can receive incoming emails on the correct port.
This code change refactors the `getTestDataSourceOptions` function in `PostgresConfig.ts` to use `process.env` values directly. This change is made to ensure that the function always retrieves the latest values during test runs, as `process.env` can change dynamically. By removing the conditional fallback to `'localhost'`, the function relies solely on the environment variable `DATABASE_HOST` for the host value. This simplifies the code and improves consistency.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the Stripe.mock.ts file to allow the mockStripe variable to have a null value. This change is necessary to properly handle scenarios where the Stripe library is not mocked. By allowing the variable to be null, it ensures that the code can handle both mocked and non-mocked scenarios without causing errors.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change adds the INCOMING_EMAIL_DOMAIN variable to the host_list configuration in the Haraka init.sh script. This ensures that incoming emails from the specified domain are accepted by the Haraka application. The INCOMING_EMAIL_DOMAIN value is appended to the host_list file, allowing the application to properly handle emails from this domain.
This code change updates the Dockerfile for the Haraka application. It adds the email_parser.js plugin to the /harakaapp/plugins directory and installs the necessary dependencies by copying the package.json and package-lock.json files to the /harakaapp directory and running npm install. This update ensures that the email parsing functionality is properly configured and all required dependencies are installed.
This code change updates the HelmChart values.yaml file to change the type of the internalSmtp service from LoadBalancer to ClusterIP. The LoadBalancer type was causing issues with receiving emails from the internet, so this change provides a workaround by using the ClusterIP type instead. This update ensures that the internalSmtp service can properly receive emails and improves the functionality of the application.
This code change adds support for additional email ports in the Haraka configuration. It exposes ports 110, 25, 587, 465, 143, 993, and 995 for POP3, SMTP, IMAP, and their secure variants. This enhancement allows for more flexible email communication options.
The code changes include adding a new configuration file `host_list.ini` to the Haraka config directory. This file will be used to store a list of allowed hosts for incoming emails. Additionally, the `email_parser.js` plugin file has been moved to the correct directory in the Haraka config. This update ensures that the email parsing functionality is properly configured and the list of allowed hosts is maintained.
This code change updates the Haraka config plugins file to include additional plugins for blocking mails from known bad hosts, blocking mail from known bad HELOs, blocking mail from known bad email addresses, and accepting mail only from domains with resolvable MX records. It also removes the emailParser.js plugin file.
Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This code change updates the secrets.yaml file to handle release upgrades. It introduces a workaround to keep the secrets unchanged during upgrades by retrieving the existing secrets if the release is an upgrade. For new installations, it generates new secrets using the randAlphaNum function. This enhancement ensures that secrets are properly managed during upgrades and installations.
This code change refactors the `Authentication.ts` file to improve the functionality of the password reset email. It updates the logic for generating the password reset URL and adds logging statements to track the user's email and the generated URL. This enhancement ensures a smoother password reset process and improves the visibility of user actions in the system.
This code change adds logic to set the current project in the `App` component. It checks if a `selectedProject` is available and if so, it calls the `ProjectUtil.setCurrentProject` function with the `selectedProject`. This enhancement ensures that the current project is correctly set and improves the functionality of the application.
This code change adds the import statement for `ProjectUtil` and calls the `setCurrentProject` function with the `selectedProject` in the `App` component. This enhancement ensures that the current project is set correctly and improves the functionality of the application.
This code change refactors the EventItem component to improve the display of event descriptions and labels. It updates the CSS classes for the event descriptions to enhance readability and adds CSS classes for the event labels to improve their styling. This enhancement improves the overall appearance and user experience of the EventItem component.
The code change adds logging statements for the status checks in the StatusAPI file. The logging statements provide information about the status checks being performed, including the result of each check. This enhancement improves the visibility and monitoring of the status checks in the system.
This code change adds logging statements for user sign up, email verification, password reset, and login in the Authentication.ts and SSO.ts files. The logging statements provide information about the corresponding user actions, including the user's email. This enhancement improves the visibility and monitoring of user activities in the system.
This code change adds the selectedProject prop to the DashboardHeader component in the Header.tsx file. The prop is used to pass the currently selected project to the component, allowing it to display the selected project's information. This enhancement improves the functionality and user experience of the DashboardHeader component.
This code change updates the DocsNav file to include a new navigation item for the Monitor Secrets page. It adds a new object to the DocsNav array with the title "Monitor Secrets" and the URL "/docs/monitor/monitor-secrets". This enhancement improves the navigation experience for users accessing the Monitor Secrets documentation.
This code change updates the Encryption.ts file to use the Utf8 encoding for decryption in the `decrypt` method. Previously, it was using the default encoding, which could lead to incorrect results for certain inputs. This update ensures the correct decoding of the encrypted text and improves the reliability of the decryption process.
This code change adds null checks in the DatabaseService and Encryption classes to handle cases where the input data is null or undefined. It prevents potential errors and improves the robustness of the code.
refactor: Update package.json and Encryption.ts to use latest version of crypto-js
This code change updates the package.json and Encryption.ts files to use the latest version (4.2.0) of the crypto-js library. It adds the "@types/crypto-js" package as a dependency in the package.json file and updates the import statements in the Encryption.ts file to use the updated library. This update ensures compatibility with the latest features and improvements in crypto-js.
This code change updates the imports in the JSON.ts file to remove unused imports and organize the imports alphabetically. It improves code readability and maintainability.
This code change updates the MonitorSecrets page to display the monitors that have access to the secrets. It adds a new field in the form to select the monitors and renders the selected monitors using the MonitorsElement component. This enhancement improves the visibility and management of secret access for monitors.
This code change updates the MonitorSecretService to use the MonitorSecret model instead of the deprecated MonitorProbe model. This refactor ensures consistency and improves code maintainability.
This code change adds the necessary functionality for managing Monitor Secrets. It includes updates to the PageMap, SettingsBreadcrumbs, and RouteMap files to support the new "SETTINGS_MONITOR_SECRETS" page. Additionally, the "SETTINGS_MONITOR_SECRETS" route is added to the SettingsRoutePath dictionary. This enhancement improves the application's security and access control.
This code change updates the .prettierrc.json file by adding the "importOrderParserPlugins" option with the values ["typescript", "decorators"]. This enhancement allows the Prettier formatter to correctly parse and sort imports that include TypeScript and decorators. It improves the code formatting and organization.
refactor: Add @trivago/prettier-plugin-sort-imports to package.json and .prettierrc.json
This code change adds the "@trivago/prettier-plugin-sort-imports" package as a dependency in the package.json file and includes it in the "plugins" array in the .prettierrc.json file. It also sets the "importOrderSeparation" and "importOrderSortSpecifiers" options to true. This enhancement improves the code formatting and organization by automatically sorting imports.
This code change adds the necessary permissions for managing MonitorSecrets. The new permissions include CanCreateMonitorSecret, CanEditMonitorSecret, CanDeleteMonitorSecret, and CanReadMonitorSecret. These permissions allow users to create, edit, delete, and read MonitorSecrets respectively. This enhancement improves the access control and security of the application.
This code change removes the rendering of the server monitor from the SummaryView component. The monitorType prop is checked, and if it is set to MonitorType.Server, the server monitor is not rendered. This change simplifies the SummaryView component and improves code organization.
The code changes in this commit remove support for the Webkit browser in the BrowserType enum and SyntheticMonitor module. The Webkit browser was commented out and not being used, so it was decided to remove it to simplify the codebase and reduce unnecessary dependencies. This refactor improves code organization and maintainability.
The code changes in this commit update the title in the CustomMonitorSummaryView and SyntheticMonitorItemView components. The title "Is Error" is changed to "Error" to provide clearer and more concise information to users. This enhancement improves the user experience and readability of the components.
The code changes in this commit remove the unused Metrics components: ProbeNowButton.tsx, MetricsScreenshot.tsx, MetricsScreenshotGroup.tsx, PingMonitorView.tsx, and ProbePicker.tsx. These components are no longer needed and removing them improves code organization and maintainability.
The code changes in this commit update the confirmation message for email verification. Instead of just displaying the user's email, it now includes the text "Are you sure you want to verify the email -" before the email address. This change provides clearer context and improves the user experience.
The code changes in this commit add email verification functionality to the Users page. This includes adding a "Verify Email" button to each user's row in the table. Clicking the button opens a confirmation modal asking if the user's email should be verified. Upon confirmation, the user's email is marked as verified in the database. This enhancement improves the user experience and provides better control over email verification.
The code changes refactor the ProbeMonitorResponseService and Metrics component. This includes removing redundant code in ProbeMonitorResponseService and simplifying the Metrics component by removing unnecessary props. These changes improve code organization and maintainability.
The code changes in this commit improve the error messages in the MetricsInfo and SSLCertificateMonitorView components. The updated error messages provide more helpful information to users, indicating that it may take a few minutes for metrics to show up for the selected probe. This enhancement improves the user experience and reduces confusion when metrics are not immediately available.
The code changes in this commit update the MonitorView and Metrics components. Specifically, the changes introduce type annotations and improve the readability of the code by using more descriptive variable names. These updates enhance the maintainability and understanding of the codebase.
The code changes remove the unused `isHeadRequest` property in the `MonitorUtil` and `ApiMonitor` classes. This cleanup improves code readability and eliminates unnecessary code.
The commit updates the README.md file to include new configurable parameters for timeout values in the monitor scripts. This allows users to set specific timeout values for synthetic monitor scripts, custom code monitor scripts, and workflow scripts. The addition of these timeout configurations improves the flexibility and reliability of the monitoring system.
This commit updates the timeout handling in the monitor scripts to use the `WorkflowScriptTimeoutInMS` and `PROBE_CUSTOM_CODE_MONITOR_SCRIPT_TIMEOUT_IN_MS` values from the environment configuration. This ensures that the monitor scripts have consistent and configurable timeout values, improving the reliability and performance of the monitoring system.
The return value in the `getStatusPageDomain` method of the `StatusPageDomainService` class was updated to `true` to fix a bug where it was always returning `false`. This change ensures that the method returns the correct value based on the success or failure of the database query.
This commit removes an unnecessary hyphen in the monitor documentation by correcting the spelling of "Synthetic Monitor" in both the custom-code-monitor.md and synthetic-monitor.md files. The typo was causing inconsistency in the naming of the monitor, and this fix ensures accuracy and clarity in the documentation.
This commit fixes a typo in the monitor documentation by correcting the spelling of "Synthetic Monitor" in both the custom-code-monitor.md and synthetic-monitor.md files. The typo was causing inconsistency in the naming of the monitor, and this fix ensures accuracy and clarity in the documentation.
This commit adds new monitor links to the DocsNav utility in the FeatureSet/Docs/Utils/Nav.ts file. The links include "Custom Code Monitor" and "Synthetic Monitor" with their respective URLs. This enhancement improves the navigation experience for users accessing the monitor documentation section.
This commit updates the type of the executionTimeInMS property in the CustomCodeMonitorResponse interface from PositiveNumber to number. The PositiveNumber type was unnecessary and caused compatibility issues with other parts of the codebase. Changing it to number simplifies the code and ensures consistency across the application.
This commit fixes a syntax error in the MonitorStep and CriteriaFilterUtil files. In MonitorStep, the syntax error was caused by an extra semicolon (;) in the screenshotDataInBase64 assignment. In CriteriaFilterUtil, the return statement was incorrectly set to true instead of false. These changes ensure that the code is correct and functioning as intended.
This commit updates the CodeEditor component to improve the placeholder text for the JavaScript type. The placeholder now includes additional line breaks and indentation for better readability and code organization. This change enhances the user experience when working with JavaScript code in the CodeEditor.
This commit adds support for the ArrayOfText field type in the Detail component. When the field type is ArrayOfText and there is data available, the data is joined with commas and displayed in the UI. This enhancement improves the user experience by properly rendering and handling the ArrayOfText field type in the Detail component.
This commit updates the Dockerfile to install necessary dependencies for the application. It adds the installation of bash, curl, python3, make, g++, and various libraries required for playwright. Additionally, it installs net-tools for network-related functionality. These changes ensure that the application has all the required dependencies to run properly in the Docker environment.
This commit updates the logger.debug statements in multiple files to log the message 'Exiting node process' instead of 'Exiting node process'. This change improves the logging consistency and ensures that the appropriate log level is used for this message.
This commit refactors the RunWorkflow class to use the VMAPI module instead of the deprecated VMUtil module for replacing values in the argumentContent. The VMAPI module provides a more up-to-date and efficient method for replacing values, improving the performance and maintainability of the code.
This commit updates the SyntheticMonitor class to use async/await when calling the CustomCodeMonitoringCriteria.isMonitorInstanceCriteriaFilterMet() method. This change ensures that the method is properly awaited, allowing for better control flow and error handling. The use of async/await improves the readability and maintainability of the code.
This commit refactors the CriteriaFilterUtil class to improve the filtering of options based on the checkOn value. It removes the unnecessary check for CheckOn.Error in the if statement and adds a new if statement specifically for CheckOn.Error. This change ensures that the options are filtered correctly for each checkOn value, enhancing the accuracy and effectiveness of the criteria filtering functionality.
This commit updates the `ProbeApiIngestResponse` interface to include a comment indicating that the `rootCause` property is in markdown format. Additionally, it modifies the `APIRequestCriteria` class to use the `convertToNumber` method from the `CompareCriteria` class instead of the deprecated `convertThresholdToNumber` method. These changes improve the clarity and maintainability of the code.
This commit modifies the MonitorMetricsByMinute class to include the browserType and screenSizeType properties in the MonitorMetricsMiscData interface. This allows for capturing additional information about the browser type and screen size during monitoring. The changes enhance the accuracy and completeness of the monitoring data.
This commit refactors the SyntheticMonitor class to ensure that the browser and page are properly closed after use. The code now checks if the page and browser objects exist before attempting to close them, preventing potential memory leaks. This improvement enhances the reliability and efficiency of the SyntheticMonitor functionality.
This commit adds support for the CustomCodeMonitor type in the MonitorUtil class. It includes the necessary code to execute custom JavaScript code provided in the monitor step data. This enhancement improves the flexibility of the monitoring system by allowing users to define and execute their own custom code for monitoring purposes.
This commit updates the values of the BrowserType enum in the file `Common/Types/BrowserType.ts`. The `Chrome` value is changed to `Chromium`, and the `Safari` value is changed to `Webkit`. This change reflects more accurate and up-to-date browser names, improving the clarity and consistency of the code.
This commit adds the `syntheticMonitorResponse` property to the `ProbeMonitorResponse` interface in order to support the `SyntheticMonitorResponse` type. This allows for the inclusion of synthetic monitor data in the probe monitor response, providing more comprehensive monitoring information.
This commit adds the playwright module to the VMRunner class in order to enable browser automation capabilities. By including playwright, we can now execute code that interacts with web browsers, allowing for more advanced testing and automation scenarios.
This commit updates the import paths for the VMUtil module in the JavaScript and IfElse components. The new import path is '../../../Utils/VM/VMAPI'. This change ensures that the correct module is imported and used in the components, improving the reliability and maintainability of the code.
This commit fixes a bug in the Pagination component where the currentPageNumber was not being properly converted to a number before performing calculations. The bug caused incorrect navigation to the previous and next pages. The issue is resolved by adding a check to convert the currentPageNumber to a number if it is a string.
The code changes in `MonitorType.ts` and `MonitorService.ts` add support for the `SyntheticMonitor` and `CustomJavaScriptCode` monitor types in the `MonitorTypeHelper` class. This allows for easier identification of probeable monitor types and improves the flexibility of the monitoring system.
This commit updates the code editor placeholders in the MonitorStep component to provide example code using axios and playwright modules. This allows users to easily understand and customize the code for their specific monitoring needs.
This commit updates the code editor placeholders in the MonitorStep component for the CustomJavaScriptCode and SyntheticMonitor types. The placeholders now provide example code using axios and playwright modules, allowing users to easily understand and customize the code for their specific monitoring needs.
This commit modifies the `fetchDropdownOptions` function in the `Field` interface to accept an additional `item` parameter of type `FormValues<TEntity>`. This change allows for more dynamic fetching of dropdown options based on the current form values, improving the flexibility and customization of the form fields.
This commit updates the `CategoryCheckboxType` interface to make the `categoryId` property optional. This change allows for more flexibility when working with category checkboxes, as the `categoryId` is not always required.
This commit adds checkbox lists for selecting the browser type and screen type in the SyntheticMonitor step of the MonitorStep component. This allows users to choose the desired browser and screen type for running the test in SyntheticMonitor.
This commit updates the CheckOn enum value in the CriteriaFilter module from 'Result' to 'ResultValue'. This change provides a more descriptive and accurate representation of the value being checked in custom code or JavaScript monitors.
The code changes include adding a new method, `setCustomCode`, to the `MonitorStep` class. This method allows for setting custom code for a monitor step, enabling the execution of custom JavaScript code in certain types of monitors.
The code changes include adding support for custom code in monitor steps. This allows for the execution of custom code or JavaScript in certain types of monitors.
This code change updates the Table and FilterViewer components to improve their functionality and user experience.
In the Table component, the onActionEnd callback is modified to reset the state of isAllItemsSelected, setBulkSelectedItems, and then call the props.onBulkActionEnd function. This change ensures that the bulk action end event is handled correctly.
In the FilterViewer component, the styling of the filter criteria section is updated to improve readability. The font size and spacing are adjusted to provide a better visual presentation of the filter criteria.
These refactorings enhance the overall performance and usability of the components.
This code change optimizes the bulk item deselection functionality in the Table component. Instead of using the `filter` method to remove the deselected item from the `bulkSelectedItems` array, it now uses the `findIndex` method to locate the index of the item and then removes it using the `splice` method. This approach improves the performance of bulk item deselection, especially when dealing with large datasets.
This code change improves the error handling in the BulkUpdateForm component. The error handling logic is updated to display a more informative error message when a bulk update action fails. This refactor enhances the user experience by providing clearer feedback on failed bulk actions.
This code change updates the SimpleLogViewer component to be used in the BulkUpdateForm. The component is imported and rendered in the BulkUpdateForm to display logs in a consistent and reusable way. This refactor improves code reusability and reduces duplication by leveraging an existing component for log viewing.
This code change updates the SimpleLogViewer component to be used in the CallLog, Probes, Workflow, and StatusTimeline pages. The component is imported and rendered in these pages to display logs in a consistent and reusable way. This refactor improves code reusability and reduces duplication across multiple pages.
This code change updates the ProgressBar component to support different sizes. A new enum `ProgressBarSize` is introduced to define the available sizes: Small, Medium, and Large. The `size` prop is added to the `ComponentProps` interface, allowing the user to specify the desired size of the progress bar. This enhancement provides more flexibility in customizing the appearance of the progress bar based on the UI requirements.
This code change optimizes the bulk item deselection functionality in the Table component. Instead of using the `filter` method to remove the deselected item from the `bulkSelectedItems` array, it now uses the `findIndex` method to locate the index of the item and then removes it using the `splice` method. This approach improves the performance of bulk item deselection, especially when dealing with large datasets.
This code change optimizes the bulk item deselection functionality in the Table component. Instead of using the `filter` method to remove the deselected item from the `bulkSelectedItems` array, it now uses the `findIndex` method to locate the index of the item and then removes it using the `splice` method. This approach improves the performance of bulk item deselection, especially when dealing with large datasets.
The code changes in this commit add support for bulk actions in the Table component. The `BulkActionProps` interface is introduced to define the bulk action buttons, and the `BulkUpdateForm` component is rendered to display the bulk action buttons when provided. This enhancement allows users to perform actions on multiple items in the table simultaneously, improving the efficiency of managing data.
This code change updates the axios and posthog-js dependencies to their latest versions. The axios dependency is updated from 1.6.7 to 1.6.8, and the posthog-js dependency is updated from 1.115.0 to 1.129.0. This update ensures that we have the latest bug fixes and improvements for these libraries, improving the overall stability and performance of our application.
This code change removes the unused code in the Markdown.ts file that was responsible for customizing the rendering of paragraphs, blockquotes, images, and headings. This code is no longer needed and can be safely removed, simplifying the codebase and improving maintainability.
This code change updates the import statement for the Markdown module in the UserNotificationRuleService.ts file. It now imports the Markdown module along with the MarkdownContentType enum from the Types/Markdown file. This update ensures that the MarkdownContentType.Email is used when converting the incident description to HTML. This change improves the handling of Markdown content in the UserNotificationRuleService.
This code change adds the `deletedByUser` and `deletedByUserId` columns to the `User` model. These columns are used to track the user who deleted the object and their corresponding user ID. This enhancement allows for better auditing and tracking of deleted objects in the system.
This commit adds support for JSON filters in the `BaseModelTable` component. It checks if a filter is of type `FieldType.JSON` and if the filter data is of type `Object`. If both conditions are met, the filter data is included in the query. This enhancement allows for more flexible filtering options when working with JSON data in the table.
The code changes in the Dictionary component refactor the implementation to handle different value types, including strings, numbers, and booleans. This allows for more flexibility and accuracy when working with dictionary data in the component.
The code changes in the FilterViewer component improve the formatJson function by updating the styling and layout of the rendered JSON elements. This enhances the readability and visual presentation of the JSON data in the component.
The code changes add the `Equals` icon to the `Dictionary` component in the `CommonUI` module. This icon is used to visually represent the equality operator in the component.
This commit updates the dropdown options in the Dictionary component to use more descriptive variable names. The previous variable names, trueDropdwonOption and falseDropdwonOption, have been changed to trueDropdownOption and falseDropdownOption respectively. This change improves code readability and maintainability.
This commit adds the JSONFilter component to the FiltersForm in order to support filtering based on JSON data. The JSONFilter component is imported and rendered within the FiltersForm component, allowing users to input JSON filter criteria. This enhancement expands the filtering capabilities of the application.
This commit refactors the DictionaryOfStrings component by removing unused imports and simplifying the code structure. The useState hook is now used to manage the component's data state, and the useEffect hook is used to handle changes in the data. The component now uses the DictionaryForm component for rendering and handling user input. These changes improve the readability and maintainability of the code.
This commit updates the filter labels and submit button text in the FilterViewer component. The 'FILTER BY' label is changed to 'FILTER' and the labels are now capitalized. Additionally, the submit button text is changed to 'Apply Filters'. These changes improve the clarity and consistency of the user interface.
This commit refactors the FilterViewerItem and DropdownFilter components to handle changes in the ComponentProps interface. The 'text' prop in FilterViewerItem now accepts a string or ReactElement, and the 'onFilterModalClose' and 'onFilterModalOpen' props in DropdownFilter are now optional. These changes ensure compatibility with the latest version of the codebase and improve code readability and maintainability.
This commit adds a new data migration script, GenerateNewCertsForStatusPage.ts, which generates new certificates for status page domains. It retrieves all domains in the greenlock certs, orders them, and updates the certificates accordingly. This will ensure that the status page domains have up-to-date and valid certificates.
Refactor and delete unused Metric services and models
Refactor Queue class to use explicit type annotation for queue variable
Add Queue caching to improve performance and reduce redundant connections
Refactor test-e2e job in release.yml workflow
Fix error handling in StatusPageDomainService.ts
Update select field in MoveGreenlockCertsToAcmeCerts.ts to use _id instead of id
Update ingress configuration for OneUptime Helm chart
Refactor StatusPageAPI to improve code readability and maintainability
Refactor StatusPageAPI and UpdateByID to improve code readability and maintainability
Refactor Let's Encrypt configuration and update GreenlockUtil class
Refactor StatusPageDomainAPI and related components to improve CNAME verification process
Refactor StatusPageDomainService and Domains.tsx to improve CNAME verification process
Refactor API endpoints to use sendEmptySuccessResponse instead of sendEmptyResponse
Refactor SocketIO.ts to remove Redis adapter initialization
Refactor StatusPageDelete component: Add SSL auto-renewal feature and improve CNAME verification process
Refactor GreenlockUtil and StatusPageDomainService to improve CNAME validation and configuration paths
Refactor StatusPageDomainService: Add onBeforeUpdate hook to validate CNAME and update GreenlockUtil configuration paths
Refactor StatusPageDomainService: Add onBeforeUpdate hook to validate CNAME before updating
Refactor StatusPageCerts:RemoveCerts method to use statusPageDomain.fullDomain instead of domain.fullDomain
***Remove extra line in CustomCallSMSTable component***
***Remove extra line in Domains component***
***Remove extra line in BillingInvoice model***
***Remove extra line in OnCallDutyPolicyEscalationRule model***
***Remove extra line in OnCallDutyPolicyEscalationRuleSchedule model***
***Remove extra line in OnCallDutyPolicyExecutionLog model***
***Remove extra line in OnCallDutyPolicySchedule model***
***Remove extra line in OnCallDutyPolicyScheduleLayer model***
***Remove extra line in OnCallDutyPolicyScheduleLayerUser model
For example, `dashboard/some-uuid/workflows/workflow/another-uuid`
becomes `dashboard/some-uuid/workflows/another-uuid`. This change brings
2 benefits:
1. FixOneUptime/oneuptime#1252
2. Make Workflow routes consistent with other routes (e.g. Incidents)
Adds a check before workflow triggers, ensuring that multiple identical
updates (e.g. updating `currentScheduledMaintenanceStateId` twice to the
same value) only trigger workflow once.
***Update GConstructor type in Mixins***
***Update ReflectionMetadataType in Reflection***
***Update connectToDatabase function in Redis***
***Update MockRouterForMethodFunction in Helpers***
***Update DefaultValidateFunction type in BasicForm***
***Update result type in BaseAPI.test***
***Update startUserNotificationRuleExecution function in OnCallDutyPolicyEscalationRuleService***
***Update getTableColumn and getTableColumns functions in TableColumn***
***Update getColumnBillingAccessControl and getColumnBillingAccessControlForAllColumns functions in ColumnBillingAccessControl
***Refactor function declarations to use type aliases***
***Fix function signature in FilePicker component***
***Refactor function declaration in DashboardHeader component***
***Fix type declaration in BaseAPI.test.ts***
***Import missing function type in PortMonitor.ts***
***Refactor type declaration in Helpers.ts
***Remove unnecessary code from Logger.ts***
***Update OpenTelemetry.ts to use auto-instrumentations***
***Remove OpenTelemetry import from StartServer.ts***
***Update Bar component to show label outside bar if it doesn't fit
***Add validation for user input***
***Refactor code for better readability***
***Update README with installation instructions***
***Implement new feature for user profile page
title="You must be logged into OneUptime account to use single sign-on (SSO) for your project. Logging in to OneUptime account and single sign on (SSO) for your project are two separate steps. Please use the form below to log in to your OneUptime account before you use SSO."
### OneUptime: The Complete Open-Source Observability Platform
OneUptime is a comprehensive solution for monitoring and managing your online services. Whether you need to check the availability of your website, dashboard, API, or any other online resource, OneUptime can alert your team when downtime happens and keep your customers informed with a status page. OneUptime also helps you handle incidents, set up on-call rotations, run tests, secure your services, analyze logs, track performance, and debug errors.
OneUptime replaces multiple tools with one integrated platform:
##### Uptime Monitoring
Monitor the availability and response time of your online services from multiple locations around the world. Get notified via email, SMS, Slack, or other channels when something goes wrong. Replace tools like Pingdom.
##### Status Pages
Communicate with your customers and stakeholders during downtime or maintenance. Create a custom-branded status page that shows the current status and history of your services. Replace tools like StatusPage.io.
##### Incident Management
Manage incidents from start to finish with a collaborative workflow. Create incident reports, assign tasks, update stakeholders, and document resolutions. Replace tools like Incident.io.
##### On Call and Alerts
Schedule on-call shifts for your team and define escalation policies. Ensure that the right person is notified at the right time when an incident occurs. Replace tools like PagerDuty.
##### Logs Management
Collect, store, and analyze logs from your online services. Search, filter, and visualize log data to gain insights and troubleshoot issues. Replace tools like Loggly.
##### Workflows
Integrate OneUptime with your existing tools and automate your workflows. Integrate with tools like Slack, Jira, GitHub, and 5000+ more.
##### Application Performance Monitoring
Measure and optimize the performance of your online apps and services. Track key metrics such as traces, response time, throughput, error rate, and user satisfaction. Replace tools like NewRelic and DataDog.
##### Error Tracking
Detect and diagnose errors in your online services. Get detailed error reports with stack traces, context, and user feedback. Replace tools like Sentry.
##### Reliability Autopilot
Scan your code and fix performance issues and errors automatically. Get recommendations for improving the reliability of your online services.
Custom Code Monitor allows you to write custom scripts to monitor your applications. You can use this feature to monitor your applications in a way that is not possible with the existing monitors. For example, you can have multi-step API requests.
#### Example
The following example shows how to use a Synthetic Monitor:
You can select which monitors have access to the secret. In this case we added `ApiKey` secret and selected monitors to have access to it.
**Please note**: Secrets are encrypted and stored securely. If you lose the secret, you will need to create a new secret. You cannot view or update the secret after its saved.
### Using a secret
You can use secrets in the following monitoring types:
- API (in request headers, request body, and URL)
- Website, IP, Port, Ping, SSL Certificate (in URL)
- Synthetic Monitor, Custom Code Monitor (in the code)
To use a secret, add `{{monitorSecrets.SECRET_NAME}}` in the field where you want to use the secret. For example, in this case we added `{{monitorSecrets.ApiKey}}` in the Requets Header field.
### Monitor Secret Permissions
You can select which monitors have access to the secret. You can also update the permissions at any time. So, if you want to add a new monitor to have access to the secret, you can do so by updating the permissions.
Synthetic monitoring is a way to proactively monitor your applications by simulating user interactions. You can create a synthetic monitor to check the availability and performance of your applications from different locations around the world.
#### Example
The following example shows how to use a Synthetic Monitor:
```javascript
// You can use axios module, and page object from Playwright here.
// Page Object is a class that represents a single page in a browser.
// Here are some of the variables that you can use in the context of the monitored object:
console.log(browserType)// This will list the browser type in the current run context - Chromium, Firefox, Webkit
console.log(screenSizeType)// This will list the screen size type in the current run context - Mobile, Tablet, Desktop
// Playwright page object belongs to that specific browser context, so you can use it to interact with the browser.
// To take screenshots,
constscreenshots={};
screenshots['screenshot-name']=awaitpage.screenshot();// you can save multiple screenshots and have them with different names.
// when you want to return a value, use return statement with data as a prop. You can also add screenshots in the screenshots array.
return{
data:'Hello World',
screenshots:screenshots
};
```
### Use of Playwright
We use Playwright to simulate user interactions. You can use Playwright `page` object to interact with the browser and perform actions like clicking buttons, filling forms, and taking screenshots.
### Screenshots
You can take screenshots of the page at any point in the script. You can take multiple screenshots and return them in the screenshots array. These screenshots will be available in the OneUptime Dashboard for that specific monitor.
- You only have `page` object available in the context of the script. This is from Playwright Page class. You can use it to run all the interactions with the browser.
- You can use `console.log` to log the data in the console. This will be available in the logs section of the monitor.
- You can return the data from the script using the `return` statement. You can also return screenshots in the screenshots array.
- You can use `browserType` and `screenSizeType` variables to get the browser type and screen size type in the current run context. Feel free to use them in your script if you like.
- This is a JavaScript script, so you can use all the JavaScript features in the script.
- You can use `axios` module to make HTTP requests in the script. You can use it to make API calls from the script.
- If you are using oneuptime.com, you will always have the latest version of Playwright & browsers available in the context of the script. If you're self-hosting, please make sure you update the probes to have the latest version of Playwright and the browsers.
- Timeout for the script is 2 minutes. If the script takes more than 2 mins, it will be terminated.
You can use the [Fluentd](https://www.fluentd.org/) plugin to collect logs & telemetry data from your applications and services. The plugin sends the telemetry data to the OneUptime HTTP Source. You can use the http output plugin of fluentd to send the telemetry data to the OneUptime HTTP Source. This plugin can be found here: https://docs.fluentd.org/output/http
## Getting Started
Fluentd supports hundreds of data sources and you can ingest logs from any of these sources into OneUptime. Some of the popular sources include:
- Docker
- Syslog
- Apache
- Nginx
- MySQL
- PostgreSQL
- MongoDB
- NodeJS
- Ruby
- Python
- Java
- PHP
- Go
- Rust
and many more.
You can find the full list of supported sources [here](https://www.fluentd.org/datasources)
## Prerequisites
- **Step 1: Install Fluentd on your system** - You can install Fluentd using the instructions provided [here](https://docs.fluentd.org/installation)
- **Step 2: Sign up for OneUptime account** - You can sign up for a free account [here](https://oneuptime.com). Please note while the account is free, log ingestion is a paid feature. You can find more details about the pricing [here](https://oneuptime.com/pricing).
- **Step 3: Create OneUptime Project** - Once you have the account, you can create a project from the OneUptime dashboard. If you need any help with creating a project or have any questions, please reach out to us at support@oneuptime.com
- **Step 4: Create a OneUptime Telemetry Service on OneUptime Dashboard**
On the telemetry service page, click on "Create Telemetry Service" button.
You can use the following configuration to send the telemetry data to the OneUptime HTTP Source. You can add this configuration to the fluentd configuration file. The configuration file is usually located at `/etc/fluentd/fluent.conf` or `/etc/td-agent/td-agent.conf`.
**If you're self hosting OneUptime**: If you're self hosting OneUptime you can replace the `endpoint_url` with the URL of your OneUptime instance. `http(s)://<YOUR_HOST>/fluentd/logs`
## Usage
Once you have added the configuration to the fluentd configuration file, you can restart the fluentd service. Once the service is restarted, the telemetry data will be sent to the OneUptime HTTP Source. You can now start seeing the telemetry data in the OneUptime dashboard. If you have any questions or need help with the configuration, please reach out to us at support@oneuptime.com
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.