2024-12-13
- Fix security flaw for SSH tunnel
2024-11-17
- Change source/destination to blank/referenced terminology
2024-11-09
- Change docker base imgae to ubuntu for pg17
2024-10-12
- Fix MySQl complex definition bug
2024-09-27
- Improve loose dbms connection behavior
- Compatibility : add assertion, fix webdb docke launch, fix wiating for dbms image to be ready,
2024-09-25
- Add full connection info to version fs
2024-09-24
- Use medium password to test if path works well
2024-09-12
- Add revert option on update data
2024-09-08
- CI add short_compatibility and full
2024-09-07
- CI add short_compatibility and full
- Merge branch 'main' of gitlab.com:web-db/app
- Merge branch 'dev' into 'main'
- See merge request web-db/app!3
2024-09-06
- Fix cockroach cast column type
2024-09-05
- Fix tests : Postgre table index size, default string comparaison
2024-09-04
- Optimize code snippet actions style
2024-09-03
- Show AI settings if no model selected
- Change warning color from red to orange
- Don't try to connect to unknown server anymore
2024-08-28
- Fix mysql_native_password plugin
- Fix mysql relation problem when having same relation on different db
- Add db collation changment loader
- Fix right panel loading bug when collation change
2024-07-14
- Improve debugging of runCommand fct
2024-06-09
- Add notification when not uptodate
2024-05-19
- Push real tag at the end, so if the junit thresold fail, nothing is pushed
2024-04-25
- Update to last quick-erd drawing version
2024-04-11
- Change spinner biggest diameter to 60
2024-04-10
- Fix postgre table DDL retrievment
- Add table DDL to 'advanced' section
2024-04-09
- Improve autocomplete option selection
- Catch no co for together model retrieving
- Add autocomplete on ai models selection
2024-04-06
- Add all subproject to updateDeps.sh
- Retrieve together models automatically
2024-04-03
- Get OpenAI model list from api
2024-03-30
- Fix down buildx after finished
2024-03-29
- Remove deprecated dep and migrate code
- Fix NoSQL column filter when is not infered
2024-03-27
- Move shortcuts to top right config modal
2024-02-14
- 💻 fix(front): update maximumWarning and maximumError values in angular.json
- - Updated maximumWarning value for type 'initial' to '8mb'
- - Updated maximumError value for type 'initial' to '15mb'
- - Updated maximumWarning value for 'anyComponentStyle' to '3kb'
- - Updated maximumError value for 'anyComponentStyle' to '8kb'
- 🛠 chore(front/src/classes/driver.ts): update toTimestamp type
- 🎨 style(front/src/styles.scss): add width property to app-cell scrollbar
- 🐛 fix(front/src/app/core/query/query.component.ts): add noLimit parameter
- 🛠 refactor(back/src/wrapper/postgre.js): add update method
- 🐛 fix(front/src/shared/cell/cell.component.ts): fix conditional assignment
- 🚧 chore(TODO.md): update task list
- ♻️ refactor(front/src/drivers/mongodb.ts): update toTimestamp return value
- 🐛 fix(back/src/endpoint/database/controller.js): add noLimit check
- 🛠 chore(static/docker-compose-extra.yml): update cockroach section
- 🐛 fix(front/src/shared/batch-update-dialog/batch-update-dialog.ts): handle update error
- 🛠 chore(front/src/app/connection/connection.component.html): update button style
2024-02-13
- 📚 fix(front): fix update-data-dialog suggestions and add dates helper
2024-02-12
- ✨ chore(front): update core module imports and declarations
- - Update the imports and declarations in the core.module.ts file.
- - Add the QueryComponent to the exports array.
- - Reformat the code to improve readability.
2024-02-11
- 🗃 fix: update patreon link in FUNDING.yml
- 🐛 fix(compatibility/app.js): remove unused import
- The unused import statement for the 'post' function has been removed from the compatibility/app.js file.
- ✨ feat: update app component to remove licence check
- ⚡ chore: Update database drivers
- - Updated the MySQL driver to support renaming of functions and procedures.
- - Added support for the MariaDB and Percona wrappers in the MySQL driver.
- - Updated the PostgreSQL driver to fetch version information instead of saving it.
- - Updated the MongoDB driver to fetch version information instead of saving it.
- - Fixed an issue with table filtering in the tables component.
- - Updated the advanced component to validate database table names properly.
- - Updated the dump component to use the selected database's tables.
- - Updated the AI component to use the selected database's tables.
- - Updated the connection component layout for better alignment and added tooltip for table count.
2024-02-10
- ✨ feat: Add support for complex renaming in SQL drivers
- This commit adds support for renaming complexes in SQL drivers. The
- renameComplex method was implemented in the PostgreSQL and MySQL
- drivers to handle renaming of various complex types such as sequences,
- enums, procedures, triggers, etc. The method takes in the complex
- to be renamed, the type of complex, and the name of the database.
- The implementation of the renameComplex method is specific to each
- driver, as different database systems have different syntaxes and
- rules for renaming complexes. The method generates the appropriate SQL
- query to rename the complex and returns it as a string. If the rename
- operation is not supported for the given complex and type, the method
- The ComplexComponent was updated to handle renaming of complexes. A
- new button and input field were added to the complex item, and the
- rename method was implemented to send a request to the backend with
- the rename query and update the complex name
- 🎨 feat: Update connection.component.scss and connection.component.html
- - Update styles in connection.component.scss
- - Modify button layout in connection.component.html
2024-02-09
- 🚨 fix(front): fix resizing issue in table headers
- The table headers in the front/src/styles.scss were not resizing properly. This commit fixes the issue by removing the unnecessary resize-holder styles from the .mat-header-cell:not(:nth-last-of-type(-n+2)) .resize-holder selector.
- 🐛 fix(front): update validName regex in helper.ts
- In the front/src/shared/helper.ts file, the validName regex was not allowing names with more than 400 characters. This commit updates the regex to allow names with 1 to 400 characters.
- ♻️ refactor(front): refactor form creation in structure.component.ts
- In the front/src/app/core/structure/structure.component.ts file, the form creation code was not using proper dependency injection. This commit refactors the code to use proper dependency injection for FormBuilder.
- 🎨 style(front): adjust height of container in query.component.scss
- In the front/src/app/core/query/query.component.scss file, the height
- 🔨 fix(wrapper): Fix escaping issue on function and procedure names
- The issue was caused by not properly escaping function and procedure names
- in the MySQL wrapper. This commit fixes the issue by using the `escapeId`
- function to escape the names when executing the `SHOW CREATE FUNCTION` and
- `SHOW CREATE PROCEDURE` commands.
- The commit also includes additional changes related to the `CHECK` constraint
- in the MySQL and MariaDB wrappers. The `CHECK` constraint value is now properly
- concatenated with the table name using the `CONCAT` function in both wrappers.
- Additionally, in the MariaDB wrapper, the `NULL` value for `COLUMN_DEFAULT` is
- now set to `null` instead of the string `"NULL"`.
- This commit addresses these issues and improves the overall functionality and
- reliability of the `mysql.js` wrapper file.
2024-02-07
- ✨ chore(sql): add dropComplex method
- Changes have been made to the `back/src/shared/sql.js` file to add a new `dropComplex` method. This method is used to drop different types of complexes based on their type. The types included are FUNCTION, PROCEDURE, TRIGGER, and CHECK. Additionally, the `back/src/wrapper/postgre.js` and `back/src/wrapper/mysql.js` files have been modified to include a more specific implementation of the `dropComplex` method for their respective databases.
- ✨ feat(complex): Add drop complex feature
- - Add functionality to drop a complex object in the database
- - Implement dropComplex method in MongoDB and MySQL drivers
- - Create a new endpoint in the complex route to handle the drop operation
- - Implement the drop method in the complex controller, calling the driver's dropComplex method
- - Create a dialog component to confirm the drop operation with the user
- - Display the dialog when the user clicks on the drop button in the complex component
- - Handle the user's confirmation in the dialog component and call the drop method in the complex component
- - Display a snackbar message indicating that the complex object has been dropped
- - Update the server data after the drop operation is completed and reload the server information in the complex component
- This commit adds the functionality to drop a complex object in the database. It includes changes to the front-end and back-end code, as well as the database drivers. The drop operation is confirmed with a dialog component and a
- 🎨 chore: optimize SQL cleanQuery function
- The cleanQuery function in the SQL class was optimized to remove comments, convert multi-line queries to single line, and trim unnecessary white spaces at the beginning and end of the query. Previously, the function also removed the semicolon at the end of the query, but this functionality was removed to ensure consistency. This commit improves the performance and readability of the code.
2024-02-06
- feat(migrate.component): Add variable toggle button
- - Added a new button toggle for the "variable" option in the migration component HTML file.
- - Updated the refreshSide function to include a condition for the "variable" type, and added code to fetch and display a list of variables.
- - Created a new Variable class in the classes folder.
- - Updated the variable-dialog component HTML and TypeScript files to include a filter input and filter functionality.
- - Updated the variable-dialog component SCSS file to fix the table layout.
- fix(helper): Remove unnecessary code from cleanQuery and getLastQuery functions
- - Removed unnecessary code from the cleanQuery and getLastQuery functions in the helper file in the back/src/shared directory
- - Removed unused variables and adjusted code logic to improve readability and efficiency
- - This commit resolves the issue of unnecessary code and improves code quality
- 💡 feat(styles): Add selected-cell style for table cells
- ✨ feat(index.html): Add inline styles for background color and position
- ♻️ refactor(range-selection.directive): Simplify keydown event handling
- 🔨 chore(range-selection.directive): Refactor initListeners and removeListeners
- 🎨 style(range-selection.directive): Format code and remove unused imports
- 🐛 fix(range-selection.directive): Fix class assignment in handleMouseDown
- 🔥 chore(range-selection.directive): Remove unnecessary ngOnDestroy method
- ✨ feat(range-selection.directive): Implement clipboard functionality
- ✨ feat(insert.component.html): Add range-selection directive to mat-table
- ✨ feat(explore.component.html): Add range-selection directive to mat-cell
- These commits add the range-selection functionality to the application, allowing users to select multiple cells in a table by holding down the Shift key. The selected cells
2024-02-05
- feat(front): add range selection directive
- - Created a new directive called RangeSelectionDirective
- - The directive allows the user to select multiple cells in a table using the mouse
- - The selected cells are highlighted and stored in a set
- - Added the directive to the SharedModule for use in other components
2024-02-04
- feat(driver): Add support for altering complex objects in MySQL and MariaDB
- Add the ability to alter complex objects in MySQL and MariaDB drivers by implementing the `alterComplex` method in the respective driver classes. This method is used to generate the SQL statements necessary to alter complex objects such as triggers, functions, procedures, and checks.
- The `alterComplex` method takes two parameters: the complex object to be altered (`Complex`) and the type of alteration (`string`). Depending on the type, the method generates the appropriate SQL statements.
- This feature allows users to easily modify and update complex objects in their databases without having to manually write the SQL statements themselves. It enhances the flexibility and convenience of the MySQL and MariaDB drivers.
- This commit also includes some code clean-up and minor bug fixes.
2024-02-03
- chore(compatibility): remove unused options in dump.js and set defaultParams options to empty string
- 🎨 chore: format code and fix code style issues
- - Updated the height and width of the mat-icon in migrate.component.html and container.component.html to 28px.
- - Updated the font-size in fonts.scss to 20px.
- - Modified the cleanQuery function in sql.js to remove the check for a semicolon at the end of the query and added a getLastQuery function to extract the last non-empty query from a query string.
- - Modified the runPagedQuery function in sql.js to handle multiple queries separated by semicolons and added a variable to store the concatenated queries.
- - Updated the description of the json and set('a','b','c') datatypes in mysql.ts.
- - Updated the descriptions of the geometry, linestring, point, polygon, multipoint, multilinestring, multipolygon, and geometrycollection datatypes in mysql.ts.
- - Renamed the foundAlias function to lookupTableAlias in sql.ts.
- - Updated the tableSuggestions and columnSuggestions
- ➕ feat: Added local_history.patch file and implemented changes in sql.ts
- - Added local_history.patch file
- - Implemented changes in sql.ts for suggestions and structure alteration
- - Completed tasks in TODO.md file
- feat: Add variable endpoint and controller
- - Added a new endpoint `/variable` and a corresponding controller.
- - Implemented the `list` and `set` methods in the controller to handle the respective requests.
- - The `list` method retrieves a list of variables from the selected database driver.
- - The `set` method updates a variable's value in the selected database driver.
- - The frontend components `VariableDialogComponent` and `TopRightComponent` have been updated to use the new endpoint.
2024-02-02
- ✨feat: Add search field styles to various components
- - Add custom styling to search fields in multiple components
- - Update font size for material symbols in search field button
- ✨ feat: update column and table names in HTML templates
- - Refactored column and table names in HTML templates to use italic
- formatting to improve readability and visual appeal.
- - Updated column and table names in the following files:
- feat: Add support for displaying complex objects in the UI
- - Update the ComplexComponent to use the new data structure for complexes
- - Modify the ColumnComponent to include custom types from complexes
- - Update the PostgreSQL driver to extract enumeration values from complexes
- - Modify the MigrateComponent to filter and display complex data from complexes
- - Minor code cleanups and optimizations
- ✨ feat(front): Add new options to top-right component
- - Added a link to display finished queries in the mat-menu
- - Added a link to display server variables in the mat-menu
- 💄 style(front): Update variable dialog component styling
- - Updated the styling for the variable dialog component to improve the layout and appearance
- 🎨 style(front): Update stats dialog component styling
- - Made changes to the stats dialog component to improve the appearance and layout
- 🚧 chore(front): Add new files for variable dialog component
- - Added the necessary files for the variable dialog component, including the HTML template, SCSS file, and TypeScript file
- 🏗 chore(front): Update app module
- - Updated the app module to include the new VariableDialogComponent in the declarations and exports arrays
- :construction_worker: test(front): Add tests for top-right component
- - Added tests for the top-right component to ensure functionality and check for any potential issues or bugs
2024-02-01
- feat(front): add logs-dialog component and controller
- Add the logs-dialog component and controller to handle displaying and filtering finished queries logs. Also, add a link to the full logs file in the logs-dialog component
- 🎨 Rename togetherModel.js to aiModels.js and update code formatting in the file
- 💄 Update the styling of the Model selection dropdown in ai.component.html
- 🔨 Refactor the models object structure in ai.component.ts to use shortName and fullName properties
- 🚀 Add new AI models for the OpenAI provider in ai.component.ts
- ✨ Add new AI models for the Together provider in ai.component.ts
- 🚧 Add new AI models for the Gemini provider in ai.component.ts
- feat(helper): Add scrollToBottom function
- Adds a new function `scrollToBottom` to the `helper.ts` file in the `shared` folder. This function is used to scroll to the bottom of the scroll container element specified.
- 💡 feat: improve query result display
- - Modified `explore.component.ts` to improve the display of query results
- - Added logic to dynamically generate displayed columns based on query result
- 🐛 fix(query): fix autocomplete suggestion message
- - Changed "Autocomplete can propose impossible suggestion" to "Autocomplete cannot ensure 100% accuracy"
- - Removed unnecessary code for constraints and types in sql.ts file
- - Filtered suggestions in line 65 of sql.ts file to only include labels with a length greater than 2
2024-01-31
- 💥 feat: Add font styles and fix autocomplete suggestions
- - Update font styles in fonts.scss for Material Icons
- - Fix class name in sql.ts for Material Icons
- - Update disclaimer text in query.component.html
- - Add table and database suggestions in sql.ts
- 🐛 fix: Fix error position in mysql.js
- - Remove ellipsis from error message
- - Update separators to include more characters for error position detection
- ✨ feat: Update compatibility configuration
- Update compatibility configuration to use MongoDB instead of MySQL.
- 📈 chore: Update status badge for CI
- Update GitLab CI status badge in the README to show the pipeline status.
- 🐛 fix: Remove unused option in MySQL driver
- Remove the "--column-statistics=0" option in the MySQL driver.
- 🎨 style: Update static file caching headers
- Set custom cache control headers for specific file types in the static file server.
- ⬆️ chore: Update package dependencies
- Add "serve-static" package to the back-end project dependencies.
- Note: No descriptions were added to keep the commit messages concise.
- 🐛 fix(compatibility): Fix dump size matching issue
- ✨ feat: Update compatibility.js and scenarios/230-dump.js
- The changes in this commit update the compatibility.js file, replacing the 'mongo' option with 'mysql' in the 'runScenarios' function. Additionally, the scenarios/230-dump.js file has been modified to include new imports and functions related to dumping and matching file sizes.
- This commit also includes updates to the index.js file in the back/src directory, where the express.static function has been modified to remove the 'maxAge' option, and the api.js file in the compatibility directory, where the listen address has been updated.
- Some minor corrections and improvements have been made throughout the codebase.
- ✨ feat(front): add fonts.scss to material-symbols-outlined
- 🎨 style(front): update styles in config-dialog.component.html
- 🐛 fix(drivers): add --column-statistics=0 to defaultDumpOptions
- 🎨 style(connection): update styles in connection.component.scss
- 🎨 style(dump): update styles in dump.component.html
- 🐛 fix(connection): fix show/hide password icons in
- connection.component.html and edit-connection.component.html
2024-01-30
- ✨ feat(index): add maxAge option to static file serving
- feat: Add new font styles for Fira Sans, Roboto, and Material Symbols Outlined
- Add new font styles for the Fira Sans, Roboto, and Material Symbols Outlined fonts. These fonts are used for different purposes throughout the application, such as for displaying text, icons, and symbols. The fonts are sourced from external URLs and are used in various components and stylesheets.
- ✨ feat(front): update connection component template
- - Added two ng-containers for displaying databases
- - Added template for displaying databases based on system type
- Add eslint to compatibility.js
- ✨ feat: update CI/CD link and explore component styles
- - Update CI/CD link in README.md
- - Modify margin in explore.component.scss to fix table alignment
- - Adjust margin-top in explore.component.html to improve UI
- - Remove unnecessary quotes in tunnel/controller.js
- 🔨 chore(front): refactor explore.component.html
- - Updated the structure of the component HTML file
- - Reorganized the code for better readability and maintainability
2024-01-29
- 🐛 compatibility: Fix import of base module in 200-relation.js
- ✨ feat(README): Add Time Machine and NoSQL features
- Additions to README.md file include:
- - Time Machine: Revert any changes made to your database with 200 version history
- - NoSQL Structure inferring: Documents structure inferring as well as relation between collections
- 🐛 fix(compatibility): fix issue with 210-index.js file
- Change ¦ separator to | to be compliant with bash
- 🔗 fix(README): Fix broken links in Regular installation section
- 🎨 chore: Update compatibility scenarios and package dependencies
- Update the compatibility scenarios in `210-index.js` to use the correct `index.database` property. Also, remove the unnecessary code related to a specific database `base`.
- In `package.json`, update the dependencies by removing the `"tedious"` package.
- Note: This commit includes both changes in the compatibility scenarios and package dependencies.
- ✨docs(README): update screenshot width
- Adjust the width of the screenshot in the README to 700 pixels for better visibility.
2024-01-28
- This model's maximum context length is 16385 tokens. However, your messages resulted in 58497 tokens. Please reduce the length of the messages.
2024-01-27
- 💡docs(docker): update MySQL terminal command
- - Update the MySQL terminal command in `back/src/wrapper/mysql.js`.
- - Add the `makeUri()` method to create the MySQL URI with user, password, host, and port.
- - The URI will be used for connecting to the MySQL server via the terminal.
- 🎨front(classes): add `terminalCmd` method to `driver.ts`
- - Add the `terminalCmd()` method to `driver.ts` to generate the terminal command for interacting with the selected server.
- - The command will be used to connect to the server via the terminal.
- ✨feat(connection): add terminal and URI buttons
- - Add terminal and URI buttons to the connection component in the HTML template.
- - The terminal button will copy the terminal command to the clipboard.
- - The URI button will copy the server URI to the clipboard.
- ♻️refactor(drivers): override methods in subclasses
- ✨ feat: Add linux/macOS environment requirement for contributing
- ⚡ fix(edit-connection): Set localhost as default server host
- ♻️ chore: Remove unnecessary tasks from TODO.md
- 🐛 fix(controller): Fix handleSsh cache check
- 💄 style(version.component.html): Update error messages
- 🎨 refactor(tunnel.controller): Add port scanning for handleSsh
2024-01-26
- ✅ feat(front): add ssh tooltip to server div in container component
- ✅ chore(back): add openssh package to Dockerfile
- ✅ style(front): adjust width of infos div in connection component
- ✅ perf: optimize tunnel creation in controller.js
- ✨ feat: add support for SSH connection
- - Added `ssh` parameter to the `Driver` class constructor
- - Updated usage of the `Driver` class in various files to include the `ssh` parameter
- 🚚 chore(en): Update dockerfile dependencies and minor code improvements
- - Update Dockerfile to include `sshpass` package for SSH tunneling
- - Update version.js to remove unnecessary error logging
- - Update TODO.md with additional test cases to be performed
- - Update controller.js to improve error handling and remove unnecessary code
- Refactor compatibility/compatibility.js:
- - Change database compatibility test from CockroachDB to MySQL
- Update container/container.component.scss:
- - Adjust padding for container header
- Update connection.component.scss:
- - Adjust vertical alignment of connection status icon
- Update connection.component.html:
- - Add tooltip to display SSH configuration details
- Update edit-connection.component.html:
- - Add border-bottom color to selected driver logo
- - Adjust alignment and spacing of SSH test and connection buttons
- Update edit-connection.component.scss:
- - Adjust height and width of driver logos
- ♻️ chore(frontend): update code formatting in migrate.component.ts
- 🐛 fix(frontend): display error message in snackbar if connection fails
- 🐛 fix(backend): handle error when initializing git repository
- 🐛 fix(backend): handle error when running psql command
- ♻️ chore(frontend): update code formatting in edit-connection.component.ts
- ♻️ chore(backend): update code formatting in version.js
- ♻️ chore(backend): update code formatting in postgre.js
- ♻️ chore(frontend): update code formatting in create-database-dialog.html
- ♻️ chore(backend): update code formatting in mongodb.js
- 🐛 fix(backend): handle error when
2024-01-25
- Refactor: Clean up compatibility scenarios and Docker configuration
- This commit refactors the compatibility scenarios in the repository. It also cleans up the Docker configuration for each wrapper. The changes include renaming variables, reorganizing code, and removing unnecessary comments.
- - Renamed the wrapper variable to base in the Docker configuration.
- - Reorganized the import statements and removed unnecessary comments.
- - Cleaned up the code by removing unnecessary comments and variables.
- ✨ feat: Add MATERIALIZE_VIEW type to shared helper and postgres wrapper
- 🐛 fix: Fix create view from query button in query component
- ♻️ refactor: Clean up SQL driver code and add setCase function
- :description: Update the shared helper file and the postgres wrapper to include a new type, MATERIALIZE_VIEW. Also, fix a bug in the query component where the create view from query button was not working properly. Refactor the SQL driver code to improve readability and add a setCase function to handle upper/lower casing of keywords, functions, and data types.
- 🛠 chore(app): fix query cleaning in helper.ts files
- - Updated the `removeComment` function in `helper.ts` files to correctly remove comments from SQL queries.
- - Added a new function `sql_cleanQuery` which performs additional cleaning of SQL queries by converting them to lowercase, removing unnecessary characters, and consolidating consecutive spaces.
- - Updated the `cleanQuery` function in `sql.js` file to utilize the `removeComment` function.
- - Updated the `sql.ts` file to utilize the `sql_cleanQuery` function when preselecting suggestions and finding aliases.
- ✨ feat: Add support for excluding databases in watcher
- 🐛 fix: Fix database alias detection in SQL driver
- ⬆️ chore: Update character encoding to UTF-8 in version file
- 🐛 fix: Fix retrieval of database stats in Postgre wrapper
2024-01-24
- 🔨 fix(mysql): Fix complex query for CHECK_CONSTRAINTS
- 🔨 chore(front): update driver class method signatures
- - Update the `generateSuggestions` method in the `driver.ts` file to accept an additional parameter `allText`.
- - Update the `dotSuggestions` method in the `sql.ts` file to accept an additional parameter `allText`.
- - Add a new method `foundAlias` in the `sql.ts` file to check for aliases in the SQL query.
- This commit updates the driver class methods in the front-end code to improve suggestions generation and handle aliases correctly.
- ✨ feat: Update compatibility scenarios and databases
- - Updated compatibility.js to use list.percona instead of list.mongo
- - Updated 270-sample.js to check if the table is long enough
- - Updated 250-monitoring.js to only run if the wrapper is not CockroachDB
- - Updated postgre.js to include the structure of the sample database
- - Updated cockroachdb.js to include kill and process methods
- - Updated mongodb.js to use getStructure instead of getDatabases
- - Updated controller.js to use getStructure instead of getDatabases
- - Updated explore.component.html to include a refresh button
- - Updated mysql.js to include CHECK_CONSTRAINTS in getComplexes
- Fix missing columns statistics flag in mysql driver configuration
- Add the missing "--column-statistics=0" flag to the default dump options in the mysql driver configuration. This flag is necessary to generate the dump correctly.
- Fix code documentation in TODO.md
- Update the code documentation in TODO.md to include explanations for .js and .ts files.
- Update wrapper saveState method
- Remove the unnecessary "--column-statistics=0" flag from the mysqldump command in the saveState method of the wrapper.
- 🐛 fix(core): Fix insert component navigation issue
- ♻️ refactor: Remove unnecessary code in version component
- 💡 docs: Update documentation on updating standalone and compose versions
- 💽 chore(wrapper): Update mysql.js saveState command
- - Fix navigation issue in the insert component by updating the relativeTo path.
- - Refactor the version component by removing unnecessary code and optimizing the route navigation.
- - Update the documentation to provide instructions on updating standalone and compose versions.
- - Update the saveState command in mysql.js to include additional options for mysqldump.
- 🔧 fix(mysql): update serverStats function
- - Update the query in the serverStats function to include additional
- - Modify the final array to include different variables based on the
- presence of "Innodb_rows_read".
- - Fix a typo in the final array by changing "Rows" to "Oper".
- Co-authored-by: Anonymous User
- ✨ fix(version): update git initialization command and add user information
- 💄 style(version): update CSS selector for mat-tab-label
- 🚧 chore(TODO): update TODO list
- 💄 style(stats): remove unnecessary CSS properties
- 🐛 fix(mysql): convert numeric values to numbers in stats query
2024-01-23
- feat(front): add loader to compare section
- fix(back): fix readDiff function in driver.js
- style(front): remove unused CSS from migrate.component.scss and styles.scss
- chore(back): optimize watcher delay in version.js
- docs(TODO): add autocomplete modal task
- fix(back): remove unnecessary code in mongodb.js
- refactor(front): remove code formatting in version.component.ts
- style(front): add margin to reset button and add loading spinner
- fix(front): fix ngx-monaco-diff-editor height in version.component.html
- fix(back): fix command in saveState function in mysql.js
- 📇 feat(module.ts): Add MatTabsModule to imports
- 🎨 chore(version.js): Refactor imports and add deleteDatabase method
- 💄 style(version.component.scss): Adjust styling for MatTabLabel
- 🏗 refactor(version.component.ts): Refactor loadDiff method and add selectedPatch property
- ✏️ style(version.component.html): Refactor template to use MatTabGroup and MonacoDiffEditor
- feat(database): add ability to drop database and associated data
- - Modified the `dropDatabase` method in the `Postgre` wrapper to handle the deletion of associated data.
- - Added a checkbox in the drop database dialog to allow clearing associated data.
- - Modified the `dropDatabase` method in the database controller to pass the associated data flag to the driver.
- - Updated the `DatabaseController` to handle the associated data flag and call the `dropDatabase` method in the driver accordingly.
- - Added a method in the `Helper` module to generate a storage key for local storage based on the server and database names.
- - Modified the `saveCode` method in the `InsertComponent` to store the insert codes in local storage using the generated storage key.
- - Modified the `getCode` method in the `InsertComponent` to retrieve the insert codes from local storage using the generated storage key.
- - Modified the `prepareTables` method in the `DiagramComponent` to retrieve the positions from local storage
- ✨ feat(core): update query component with diff options
- - Updated query component HTML to use diff options
- - Added diff options to query component TypeScript file
2024-01-22
- feat(front): Add @types/sqlstring and sqlstring packages
- - Added @types/sqlstring and sqlstring packages to the front/package.json file
- - Updated the front/src/drivers/postgresql.ts file to override the wrapValue and wrapStructure methods
- - Updated the front/src/drivers/mysql.ts file to override the wrapValue and wrapStructure methods
- - Updated the front/pnpm-lock.yaml file to include @types/sqlstring and sqlstring packages
- - Updated the front/src/drivers/sql.ts file to remove unnecessary wrapping in the wrapValue and wrapStructure methods
- - Updated the compatibility/scenarios/210-index.js file to comment out unused code and add test cases for foreign key index when using MySQL wrapper
- 🎨 refactor: Rename compare.component.html and compare.component.ts to migrate.component.html and migrate.component.ts
2024-01-21
- ✨ feat: Add compare component and dialog for editing queries
- - Allow users to compare structures, relations, indexes, complex data, and data between two servers or databases
- - Display loading spinner while data is being loaded for comparison
- - Use Monaco editor for displaying and editing queries
- - Implement pagination for large datasets
- - Add dialog for editing queries in the compare component
- 💡chore(readme): fix CI/CD link
- 💡feat(query): add query size calculation
- 💡docs(todo): update migration tasks
- 💡feat(compare): generate migration script
- 💡docs(explore): fix sort button tooltips
2024-01-20
- ✨ feat(front): update top-right component link
- This commit updates the link in the top-right component to point to the
- 🐛 fix(todo): resolve compatibility relation issue
- This commit fixes a compatibility issue with the mongo database regarding
- 🎨 refactor(sql): add table alias autocomplete support
- This commit adds autocomplete support for table aliases in the SQL editor.
- 🔥 chore(back): remove unused code
- This commit removes unused code from the server controller file.
- This commit updates the TODO list with new tasks and removes completed ones.
- 🐛 fix(app.module): Fix import in app.module.ts
- Fixes the import of `MatDialogModule` in `app.module.ts` to import the required
- properties for `MAT_DIALOG_DEFAULT_OPTIONS` and `MatDialogConfig` as well.
- This resolves an issue where the dialog would not close on navigation in the app.
2024-01-19
- 🔨 fix(front-end): Fix padding in connection.component.scss file
- 🎨 style(front-end): Update styles.scss to hide elements on mobile screens
- 🐛 fix(database): Fix issue with extracting ENUM values in postgresql.ts
- 🚧 wip(todo): Add items to the todo.md file
- 🔨 fix(back-end): Fix substring logic in mysql.js file
- ✨ feat: update code formatting in insert component and complex component
- This commit updates the code formatting in the insert component and complex component to improve readability and consistency. Additionally, it adds a new button in the insert component to format the code entered by the user using the beautify function. This will help ensure that the code is properly formatted and easier to understand.
- 🎨 refactor: clean up code in column component
- This commit cleans up the code in the column component by removing unnecessary code and improving code structure. It also updates the conditional statement to only include the DOMAIN and ENUM types, as the CUSTOM_TYPE and SEQUENCE types are no longer used.
- 🐛 fix: stringify objects in MongoDB wrapper
- This commit fixes an issue in the MongoDB wrapper where objects were not being properly stringified. It adds a new stringify function that uses the BSON.EJSON.stringify function if available, and falls back to JSON.stringify if not. This ensures that objects are properly stringified in all cases
2024-01-18
- fix(styles): add border-top to .scrollDiv
- fix(styles): add box-shadow and border-bottom to .mat-toolbar
- fix(styles): remove box-shadow from .mat-toolbar
- chore(styles): update styles for .tab-error
- chore(styles): update padding for .tab-content
- chore(styles): remove box-shadow from .mat-toolbar in explore.component.html
- 🎨 style(front/src/styles.scss): Update CSS styles for .actions and .sub-actions
- :refactor: code(front/src/app/right/ai/ai.component.scss): Add .marked CSS class for highlighting
- 🐛 fix(front/src/app/right/ai/ai.component.html): Adjust margin-bottom for Role.User messages
- ⚡ perf(front/src/app/right/ai/ai.component.ts): Improve localStorage usage for chat history
- 🎨 style: update styles in styles.scss
- 🐛 fix: fix style issue in complex.component.scss
- ✨ feat: add new feature in query.component.ts
- 💄 refactor: remove margin from mat-card in history.component.scss
- 🚚 move: move files to appropriate directories
- 📚 docs: update documentation links
- ♻️ refactor: refactor code for better readability and performance
- feat(classes): update wrapValue function in driver.ts
- This commit updates the wrapValue function in driver.ts by changing the type parameter from string to any in order to handle different types of values. The previous implementation was not able to handle values of type object or array. This update allows for more flexibility and compatibility with different types of values.
- Other changes in this commit include:
- - Update wrapValue function in mongodb.ts to match the new implementation in driver.ts
- - Update type definition of 'type' property in Column class in column.ts to allow for string, object, or array types
- - Update isOfGroups function in column.ts to handle different types of values for column.type
- These changes improve the overall functionality and compatibility of the codebase.
2024-01-17
- ✨ feat(front): update styles.scss and insert.component.ts
- - Update styles.scss to add styling for .mat-list-single-selected-option
- - Update insert.component.ts to import allFakers from @faker-js/faker
2024-01-16
- ⚙ repo: change GitLab repository URL to resolve community-related issues
- - Changed the URL of the repository from GitHub to GitLab for better community support and features
- - Requesting contributors to use the GitLab repository instead of GitHub for pushing changes
2024-01-15
- ✨ feat: Update URLs in HTML templates
- Updated the URLs in the HTML templates to point to the new documentation website. This ensures that the links are up to date and functional.
- - front/src/app/top-right/top-right.component.html
- - front/src/app/connection/first-visit-dialog.html
- - front/src/app/top-right/config/config-dialog.component.html
- - front/src/app/connection/edit-connection/edit-connection.component.html
- - front/src/app/core/insert/insert.component.html
- fix(front): update import paths in extraLibs.sh
- - Updated the import paths in extraLibs.sh file to match the new directory structure.
- - This fixes the issue with importing certain modules in the application.
- 🎨 refactor(query): Adjust width of ngx-monaco-editor
- 🎨 refactor(styles): Reduce height of .mat-row
- ✨ feat(batch-update-dialog): Add link to JSON Doc in batch update dialog
- 🐛 fix: fix vulnerable package dependencies
- Fixes a vulnerability in the package dependencies by updating the "@faker-js/faker" and "@ngneat/falso" packages to their latest versions.
- ♻️ refactor: remove unused code
- Removes unused code in the database controller file.
- 💄 style: update styles for connection component
- Updates the styles for the connection component to improve the layout and responsiveness.
- ✨ feat: add new feature to AI component
- Adds a new feature to the AI component that allows users to save their chat history.
- 🔨 chore: update Monaco Editor options
- Updates the Monaco Editor options in the edit-connection component to customize the editor's behavior and appearance.
2024-01-14
- 🎨 refactor(query): Adjust width of ngx-monaco-editor
- 🎨 refactor(styles): Reduce height of .mat-row
- ✨ feat(batch-update-dialog): Add link to JSON Doc in batch update dialog
- ✨ feat: Add edit connection component HTML template
- - Added a form field for the SSH port
- - Added a form field for the SSH user
- - Added a form field for the private key
- - Added a form field for the password
- - Added buttons for copying SSH commands
- - Added a button for testing SSH connection
- - Added progress spinner for testing SSH connection
- 🐛 fix: Handle case when 'create' is null in MySQL wrapper
- ✨ feat(front): update links in top-right component
- 🐛 fix(connection): update feedback link in first-visit-dialog
- 💡 docs(CONTRIBUTING): update git clone command in README
- 🌟 feat(assets): add github.svg icon
- 🖊️ chore(top-right): replace gitlab icon with github icon in config-dialog
- 🐛 fix(shared): update link in unreachable.component.html
- 🌐 chore(not specified): update URLs in README and package.json
- ✨ feat(app): add github icon to MatIconRegistry
- 🐛 fix(back): change environment variable name from ADD_HOSTS to SCAN_HOSTS
2024-01-13
- 💄 chore(connection.component.scss): update styles for button
- feat(front): add first-visit-dialog component
- Add the first-visit-dialog component that is displayed when the user visits
- the demo site for the first time. This component is added to the connection
- component, and it is opened as a dialog using Material Dialog. The first-visit
- dialog provides important information about the demo site limitations and
- encourages the user to provide feedback.
- - Created the first-visit-dialog HTML and CSS files.
- - Added the FirstVisitDialog component to the connection.component.ts file.
- - Added a check in the connection.component.ts to display the first-visit-dialog
- when the user visits the demo site for the first time.
- ✨ chore(back): Update version.js
- 🔨 fix: update variable names in version.js and version.component.ts
- - Rename `database` to `dbSchema` in the `reset` function in `version.js`
- - Rename `value` to `value.toLowerCase()` in the `filterPatch` function in `version.component.ts`
- feat(version): Add driver specific support for database reset
- - Add support for resetting specific databases in the MongoDB driver
- - Add support for resetting specific databases in the MySQL driver
- - Add support for resetting specific databases in the PostgreSQL driver
- - Refactor code to handle database reset based on driver
- - Update frontend component to display reset status and handle redirects
2024-01-12
- ✨ feat(ai): Add button to display config info and refactor chat completion logic
- - Add a button in the AI component HTML to display the JSON stringified config
- - Refactor the chat completion logic in the AI component TypeScript
- - Move the 'config' property initialization logic inside the constructor
- - Update the askLLM method to use a helper function and improve readability
- - Update the runQuery method to use a helper function for error handling
- This commit adds functionality to display the config information and refactors the chat completion logic to improve code organization and readability.
- 🚀 fix(app): Fix misspelled icon name
- 🐛 fix(ai): Fix error handling in TogetherAI request
- 🎨 style(ai.html): Improve code formatting and indentation
- ✨ feat(ai): Add TogetherAI as a provider
- ♻️ refactor(ai.ts): Refactor code for readability
- ⚡ perf(ai.html): Optimize rendering of AI icons
2024-01-11
- 🛠 chore(app): fix stylesheet and HTML issues
- - Fixed styling issue in complex.component.scss
- - Removed unnecessary code in connection.component.html
- - Handled error when renaming tables in mongodb.js
- - Refactored server controller logic for importing files
- feat(load): add preview not available message for large files
- feat(advanced): add database collation selection and duplicate functionality
- style(advanced): refactor styles for better readability
- fix(mongodb): truncate validator name and add ellipsis
- ✨ fix(front): update history service to store queries by modified database name
- ✨ feat(front): add complex component to right routing module
- 🎨 ref(front): remove unused properties in advanced component
- ✨ feat(front): add complex component module
- ✨ feat(front): add complex component to container component
- ✨ feat(front): add complex class to handle complex elements
- ✨ feat(front): add complex component template
- ✨ feat(front): add complex component style
- ✨ feat: Update compatibility.js and .gitlab-ci.yml, add ComplexComponent
- - Updated compatibility.js to use list.mongo instead of list.postgres
- - Updated .gitlab-ci.yml to include all files in the front and back directories
- - Added ComplexComponent to the routing module and module files
- - Added ComplexComponent HTML and TypeScript files
- - Added ComplexComponent stylesheet
- ✨ feat: Add support for MatChipsModule in app.module.ts
- 🐛 fix: Fix assert statement in 270-sample.js
- 💄 style: Update styling in connection.component.html
- ♻️ refactor: Clean up unused code in connection.component.ts
- 🔨 chore: Update MySQL dropRelation method
- 🎨 style: Update comment in 240-view.js
- ⬆️ chore: Update CharsetEP in patch files
- - Update sleep time to 1 second
- - Throw an error if license keys are not present
- - Add test for checking finished logs
- compatibility/scenarios/260-version.js:
- - Update test description to "List ok"
- compatibility/scenarios/40-column-update.js:
- compatibility/scenarios/90-load.js:
- - Update test description to "Load native dataset"
- compatibility/scenarios/200-relation.js:
- - Add import statements and necessary functions for the test
- - Add test for checking relation existence, dropping and adding
- compatibility/scenarios/10-database.js:
- compatibility/compatibility.js:
- - Move runWebDB function call inside loop
- front/src/app/right/relations/relations.component.html:
2024-01-10
- feat: add sample scenario for data exchange
- fix: remove unnecessary import in data exchange scenario
- fix: fix command for running docker container
- feat(compatibility): Update compatibility.js and base.js
- - Changed runScenarios parameter from list.percona to list.mongo
- - Added initCityNumber() function to initialize cityNumber object
- - Modified cityNumber object to include specific city numbers
- - Removed console.log statement
- - Modified checkCityNumber function to use cityNumber object
- - Updated scenarios/100-data-select.js:
- - Added initCityNumber() function before checkCityNumber function call
- 🔨 feat(compatibility): Update compatibility.js for percona scenarios
- 🚀 chore(.gitlab-ci.yml): Update rules and dependencies
- - Update compatibility.js to use `list.percona` instead of `list.postgres` for scenarios.
- - Update rules and dependencies in `.gitlab-ci.yml` for better app building and linking.
- 🐛 fix(compatibility): Update compatibility scenarios
- - Updated compatibility.js to use list.postgres instead of list.mongo
- - Updated 120-data-update.js to include wrapper for specific databases
- - Updated 40-column-update.js to assert columns after the update
- 🔨 chore: update compatibility tests
- - Updated compatibility/helper.js to filter out hidden files/directories
- - Updated compatibility/compatibility.js to use MongoDB instead of PostgreSQL
- - Updated compatibility/scenarios/130-data-delete.js to include additional assertions
- - Updated compatibility/base.js to include city number calculations and checks
- - Updated compatibility/scenarios/120-data-update.js to include additional assertions
- - Updated compatibility/scenarios/100-data-select.js to check the number of cities per continent
- - Updated compatibility/scenarios/30-column-add.js to remove unnecessary comments
- - Updated compatibility/scenarios/110-data-insert.js to include additional assertions
- - Updated back/src/wrapper/mongodb.js to return stringified result for getColumns method
- - Updated compatibility/scenarios/50-column-delete.js to remove unnecessary comments
- 🎨 chore(front): update driver class and insert component
- - Updated the driver class to include extended JSON documentation URL.
- - Modified the insert component to use JSON.stringify for generating random values.
- ⚡ chore(version): update setTimeout to 15 seconds
- 🐛 fix(front): fix changeTable method in tables.component.ts
- 🐛 fix(wrapper): fix escape values in Postgre and MySQL wrappers
- The escapeValue and escapeId functions in the Postgre and MySQL wrappers were not being used correctly in the getViewCode, statsTable, dump, modifyColumn, duplicateTable, createDatabase, addIndex, dropIndex, and truncateTable functions. This commit fixes the issue by properly escaping the values.
- ✨ feat: Update compatibility files
- - Updated compatibility.js to use list.postgres instead of list.mysql
- - Removed unused variable in driver.js
- - Removed unused import in sql.js
- - Refactored the 20-table.js scenario to use founded variable
- - Added new scenario for stats database
- - Fixed commandFinished method in version.js for CockroachDB
- - Fixed duplicateTable method in postgre.js to use escapeId method
2024-01-09
- ✨ feat(request): add lastError property to RequestService
- The `lastError` property in the `RequestService` class has been updated to include a `time` field along with the `ref` field. This change allows for improved handling of errors in the service.
- 🛠 fix(driver): fix string escape in SQL driver
- The string escape character in the SQL driver was not working correctly.
- This commit fixes the issue by updating the escapeValue and escapeId
- functions to properly handle string escaping.
- ✨ feat: Add compatibility API for running scenarios on different databases
- This commit adds the API module for running compatibility scenarios on different databases. The `api.js` file contains functions for loading and running the scenarios on the specified servers. The `docker.js` file is updated to include the wrapper types for the different databases.
- The `config.js` file is renamed to `api.js` for consistency. The `table` variable is removed since it is not needed for the scenarios.
- Each scenario is run for each server and tag combination. The Docker container is pulled and started for each combination before running the scenario. The scenario is executed inside a `describe` block for better test organization. If the scenario fails, the loop is broken to continue with the next server.
- If running on a CI environment, all servers are used to run the scenarios. Otherwise, only the MySQL server is used.
- The commit also includes some minor code enhancements and updates to the base.js file, including defining the
- 🔨 feat: update component styles in app/core/query and shared/batch-update-dialog
- 🎨 style: update component styles in app/connection
- ♻️ refactor: refactor component error handling in app/core/insert and shared/update-data-dialog
- 🎨 style: adjust component size in app/right/version
2024-01-08
- ✨ feat: add compatibility scenarios for data update, data insert, query, package.json, and component files
- 🎨 feat(frontend): update styles in styles.scss and app.component.ts
- - Update styles in front/src/styles.scss
- - Modify the position of an element from right: 8px to right: 7px
- - Modify the width, height, and line-height of .mat-icon-button
- - Change width from 36px to 32px
- - Change height from 36px to 32px
- - Change line-height from 36px to 32px
- - Modify the font-size of .mat-icon-button .material-symbols-outlined
- - Change font-size from 20px to 18px
- - Modify the min-height of .hljs
- - Change min-height from 28px to 22px
- - Update styles in front/src/app/app.component.ts
- - Update the array of icons in the for loop to remove 'falso'
- - Comment out the sqldata section in static/docker-compose
2024-01-07
- 🐛 fix(version): fix saving state and committing in version.js
- Refactored the code in version.js to properly save the state and commit the changes to git. Fixed the error handling and added appropriate console error messages.
- 🔨 chore(compatibility): improve docker.js compatibility
- Updated the code in docker.js to improve compatibility with Docker. Added a delay of 15 seconds before returning the container ID to allow for proper initialization.
- This commit addresses the following issues:
- - Fixed the error handling in docker.js when running scenarios.
- feat(app): Update compatibility tests
- 🚧 fix(wrapper): remove unnecessary import statements
- The unnecessary import statements in `sqlserver.js` have been removed.
- 📚 chore: Cleanup and update PostgreSQL database wrapper
- In this commit, the PostgreSQL database wrapper code and related files were cleaned up and updated.
- Specifically, the code in the `sql.js` and `sqlserver.js` files were modified to include string escaping for the `column.default` value in the `modifyColumn` method. Additionally, several unused methods and code blocks were removed from the `sql.js` file.
- These changes improve the functionality and maintainability of the PostgreSQL database wrapper.
- feat(compatibility): Update compatibility/helper.js, back/src/shared/version.js, back/src/wrapper/postgre.js,
- compatibility/docker.js, compatibility/scenarios/40-column-update.js
- - Updated compatibility/helper.js to include the WATCHER_EXCLUDE environment variable in the docker run command.
- - Updated back/src/shared/version.js to add error logging.
- - Updated back/src/wrapper/postgre.js to remove unnecessary use of this.nameDel and update the ALTER COLUMN command.
- - Updated compatibility/docker.js to fix indentation and include necessary functions.
- - Updated compatibility/scenarios/40-column-update.js to remove unnecessary code.
- See the diff for detailed changes.
- ⬆️ chore: Update compatibility files
- - Update helper.js to improve code readability
- - Update servers.js to add columns for mysql, postgre, and mongo servers
- - Update docker.js to run scenarios for mysql server
- - Update 40-column-update.js to modify column behavior
2024-01-06
- 🎨 rename: compatibility/scenarios/62-column-add.js -> compatibility/scenarios/30-column-add.js,
- compatibility/scenarios/150-complex.js -> compatibility/scenarios/220-complex.js,
- compatibility/scenarios/50-table.js -> compatibility/scenarios/20-table.js,
- compatibility/scenarios/68-column-delete.js -> compatibility/scenarios/50-column-delete.js,
- compatibility/scenarios/65-column-update.js -> compatibility/scenarios/40-column-update.js
- ✨ feat: Add compatibility tests for column and file scenarios
- - Add a new test case to check if all columns in a table are present in the structure
- - Rename the file `20-file.js` to `200-load.js` and update the test description accordingly
- - Update test descriptions for loading and checking the world database in the structure
- - Update the database column type in the `servers.js` file
- - Update server configuration in the `docker.js` file to use CockroachDB
- - Add a new test file for dumping and loading JSON data
- - Update test description for updating columns in the `65-column-update.js` file
- - Update the MySQL wrapper to properly execute the duplicate table command
- ✨ fix(compatibility): Fix issue with running webdb in CI
- The webdb container was not being properly launched in the CI environment due to a missing call to the `runWebDB` function. This function is responsible for running the necessary Docker commands to start the webdb container. By adding the call to `runWebDB` in the `app.js` file, the issue is resolved.
- + Fix issue with running webdb in CI
- - Updated the `sqlserver.ts` file to correct the documentation links for the types and language.
- - Added a new file `sqlserver.js` in the `wrapper` directory.
- - Updated the package dependencies in `package.json`.
- 🔨 chore(helper): fix database selection issue in helper.js
- 🛠 chore: Format code and add new SQL Server dependency
2024-01-05
- ✨ feat: Update database delimiter in driver.js, history.service.ts, postgresql.ts, helper.js, and advanced.component.ts
- The database delimiter in the following files has been updated from ", " to " ¦ ":
- 🛠 fix(query): fix reload database button in query component
- 🎨 style(version): add conditional check in saveChanges method
- The reload database button in the query component was not working correctly. This commit fixes the issue and makes sure that the button functions properly.
- In the version.js file, a conditional check is added in the saveChanges method to prevent saving changes if the data length exceeds a specified limit.
- ⚡ chore(helper): update alterStructure function
2024-01-04
- 🐛 fix(core): fix querySize calculation in query.component.ts
- 🐛 fix(version): fix tester functions for each server
- 🎨 refactor(shared/helper): Refactor sql_isSelect function
- - Removed unnecessary code for trimming and replacing parentheses
- - Added conditional check for "procedure", "event", and "function" keywords
- 🐛 fix(shared/version): Fix error handling in saveChanges function
- - Print error message to console if error occurs during database operations
- ✨ feat(shared/version): Add drop, create, and load operations
- - Added dropDatabase, createDatabase, and load methods to handle database operations
- ♻️ refactor(shared/version): Refactor saveChanges function
- - Changed console.log to console.error for error logging
- 💄 style(front/src/drivers/mysql): Format defaultDumpOptions
- - Added new lines and included --routines and --events options
- 🔨 chore(wrapper/mysql): Update saveState command
- - Added --routines and --events options to mysqldump command
- feat(compatibility): Add update data with nulls, doubles, pk, and fk
- Add functionality to update data with nulls, doubles, primary keys (pk), and foreign keys (fk) in the compatibility scenarios.
- refactor(back): Refactor objectToSql method parameter name
- Change the parameter name "comparator" to "where" in the objectToSql method of the sql.js file in the back-end shared folder. This improves readability and clarity of the code.
- refactor(back): Refactor update variable declaration
- Change the variable declaration in the update constant within the nbChangment method of the sql.js file. The second parameter is changed from "comparator" to "where" to match the updated objectToSql method.
- refactor(back): Remove unused bash import
- Remove the unused import statement for bash from the controller.js file in the cron folder of the back-end endpoint. This improves code cleanliness and removes unnecessary dependencies.
- refactor(front): Add readOnly property to editor
2024-01-03
- 🎨 front: refactor ai component styling
- 🎨 chore(ai.component): refactor AI component styles and layout
- 🎉 feat(front): Update width in ai.component.scss and improve design in ai.component.html
- - Updated the width of the host div in ai.component.scss to 35vw
- - Improved the design of the tokens section in ai.component.html by adding flex-wrap and gap to #tokens
- - Removed unnecessary code in ai.component.html, ng-container, ngFor loop, and divs
- - Added "dense" attribute to mat-selection-list in ai.component.html for better spacing
- - Updated links in ai.component.html for API key and bearer format with correct URLs
- feat: Added MatListModule to right module
- This commit adds the MatListModule to the right module in the front/src/app/right/right.module.ts file. This module is necessary for using the MatList component in the right module.
- chore: Updated AI component styles
- This commit updates the AI component styles in the front/src/app/right/ai/ai.component.scss file. It makes various changes to the styling of the component, including adding padding, changing font sizes, and adjusting margins.
- fix: Fixed AI component template
- This commit fixes an issue in the AI component template in the front/src/app/right/ai/ai.component.html file. It adds the missing mat-toolbar element and corrects the positioning of certain elements within the template.
- refactor: Updated AI component code
- This commit refactors the code in the AI component in the front/src/app/right/ai/ai.component.ts file. It removes unused imports, initializes the scrollContainer property, and makes adjustments to the ngOnInit and ngOnDestroy
- 🎨 fix(front/src/styles.scss): Adjust styles for ngx-monaco-editor and table
- Refactor the styles in front/src/styles.scss to accommodate the ngx-monaco-editor and table components. The ngx-monaco-editor now has a resize property set to "none" and a width of 100%, while the .monaco-editor class has a position property set to "absolute !important". Additionally, the .mat-header-cell class within the .table component now has a color property that retrieves the color from the angular-accent palette.
- ♻️ chore(front/src/app/right/load/load.component.html): Refactor code for better readability
- Refactor the code in front/src/app/right/load/load.component.html to improve readability. The mat-card-content now has a min-width property set to 500px, making it wider. The ngx-monaco-editor component now has the style properties "resize: none;" and "width: 100%" removed, as they are no longer necessary.
2024-01-02
- ♻️ refactor(ai): refactor AI component code
- Refactored the code in the AI component to improve readability and maintainability. Removed redundant code and adjusted variable assignments for better clarity. Updated error message handling for OpenAI and Perplexity requests. Fixed formatting issues and ensured consistent use of variables throughout the component.
- - Removed unused variable declarations
- - Adjusted variable assignments for improved readability
- - Updated error message handling for OpenAI and Perplexity requests
- - Fixed formatting issues and ensured consistent use of variables
- ✨ feat: Add @google/generative-ai dependency
- - Added @google/generative-ai package to package.json
- - Updated pnpm-lock.yaml with version information for @google/generative-ai
- - Modified ai.component.ts to include @google/generative-ai import and instantiate GoogleGenerativeAI class
- - Added logic to use gemini provider and generate content using GoogleGenerativeAI
- 🎨 feat(front): update image max-width to 88px, add media queries for smaller screens in connection.component.scss
- 💄 style(front): update styling for addDatabase button in connection.component.html
- 💄 style(front): update icon in stats-dialog.component.html to check_box_outline_blank
- ⬆️ chore(front): update load component
- - Updated load.component.ts to handle response from server/load endpoint
- - Added error handling for response errors
- - Added success snackbar message for successful import
- - Added server reload after successful import
- 🐛 fix(front): handle dump component errors
- - Updated dump.component.ts to handle error responses from server/dump endpoint
- - Display error snackbar message if error exists
- - Handle successful response by downloading the dump file
- 🎨 style(front): update version component button label
- - Changed label of button in version.component.html from "Load 10" to "Load next 10"
- 🐛 fix(front): handle connection component errors
- - Updated connection.component.ts to handle error responses from server/guess endpoint
- - Display success snackbar message if credentials are found
- - Display snackbar message if guessing
2024-01-01
- ✨ feat(controller): enable response in load, dump and guess methods
- - In the controller.js file, modified the load, dump, and guess methods
- - The methods now return a response instead of an object with an error property
- - This change enables proper handling of backend configuration disabling these methods
- 🐛 fix: fix connection error when getting driver
- ✨ feat(front,connection): Add default values for user and password inputs
- ! Set default values for the user and password inputs in the connection component.
- This is necessary for the demo version of the application.
2023-12-31
- ✨ feat: Add Gemini support to AI component
- - Updated HTML template to include Gemini provider configuration options
- - Added Gemini provider check and logic in the `sendQuery` method
- 🐛 fix: fix issue with docker cmd in compatibility/servers.js
- The commit fixes an issue in the docker cmd in the compatibility/servers.js file. The cmd is changed to "bin/yugabyted start" instead of "bin/yugabyted start --daemon=false".
2023-12-30
- 🔨 fix: Modify compatibility/helper.js and front/src/app/right/ai/ai.component.ts
- - Modify compatibility/helper.js to add a condition to check for "amd64" architecture in the image
- - Modify front/src/app/right/ai/ai.component.ts to change the "bold" value of "llama-2-70b-chat" to true
- feat(frontend): add backdrop filter to tooltip and select panel
- refactor(TODO): remove unnecessary tasks from TODO.md
- style(frontend): adjust styles of AI component buttons and fields
- ⬆️ feat(ai.component): add logic for handling requests to Perplexity API
- - Added logic to handle requests to the Perplexity API for generating AI chat completions.
- - Implemented POST request to the API with the necessary headers and body.
- - Parsed the response from the API to extract the AI chat completion message.
- - Handled errors that occur during the request and provided informative error messages.
- ✨ feat: Add AI component for chat functionality
- Added a new AI component for chat functionality, allowing users to interact with the AI assistant. Users can now ask questions about the selected database and receive responses from the assistant. The component supports both OpenAI and Perplexity providers for generating AI responses. Users can specify various configurations such as model selection, temperature, and top-p. The component also includes options to clear the chat history, copy code snippets, and run queries.
- ✨ feat: Add reset function to version controller
- The reset function in the version controller resets the database to a specific hash. This allows for rolling back changes made to the database. The function also drops and recreates the database, then imports the necessary files.
- - back/src/endpoint/version/controller.js
- - front/src/app/right/version/version.component.ts
- - front/src/app/right/version/version.component.html
- 🐛 fix(ai): Fix AI component for OpenAI provider
- - Removed unnecessary code for Google Cloud provider in the AI component.
- - Fixed a bug that was causing errors during OpenAI requests.
- Note: This commit does not include any documentation updates or additional changes.
2023-12-29
- feat: Add versioning functionality and update dependencies
- - Added versioning functionality to the application to track changes in the codebase
- - Updated dependencies to include `simple-git` for Git operations
- - Added reset and diff functions to the versioning module
- - Updated the version component to display and load patches
- - Added buttons to copy Git remote URL and load the first 10 patches
- - Refactored code to handle loading and displaying patches
- - Added loading indicators for patch loading and resetting
- - Updated MySQL wrapper to save state without comments and with shorter insert statements
- Add ng-deep CSS selector for #backendLogs element in top-right.component.scss file, and update the styles for code and .hljs elements in styles.scss file.
- Add isLoading variable to show/hide loading spinners.
2023-12-28
- feat: Add support for creating and dropping views
- - Added new route `/view` for handling view-related operations
- - Added new controller `viewController` for handling view operations
- - Updated the `tableController` and `tableRoute` files to remove the view related code
- - Removed the `createView` and `dropView` methods from the `tableController`
- - Updated the `drop` method in the `tableController` to handle dropping views
- - Added the `createView` and `dropView` methods in the `viewController` to handle view creation and deletion
- - Created new files `viewController` and `viewRoute` for handling view operations
- - Implemented the `create`, `drop`, and `getCode` methods in the `viewController`
- - Created the `getViewCode` method in the `mongodbWrapper` and `postgresqlWrapper` classes to retrieve the code of a view
- - Updated the `mysqlWrapper` class to include the `getViewCode` method
2023-12-27
- ✨ feat: add new Docker services and update timeout in axios
- - Added new Docker services in docker-compose.yml
- - Updated timeout in axios for CI environment
- ⬆️ compatibility: update axios timeout to 60000ms
- Update the timeout for axios requests to 60000 milliseconds in the
- compatibility/config.js file, ensuring that all requests made in a CI
- environment have a longer timeout to account for potential delays.
- :building-construction: build: Update docker login credentials and use yugabyte database for scenarios
- - Update docker login credentials for yugabyte compatibility scenario in the `.gitlab-ci.yml` script
- - Modify `servers.js` to use yugabyte database instead of mysql
- - Modify `docker.js` to run scenarios with yugabyte
- - Remove unused `front` property in `config.js`
- - Rename `lpecom.sql` to `lpecom.sql` in the `static/sample` directory
- 🏗 chore(ci): update docker build command
- Update the docker build command in the `.gitlab-ci.yml` file
- to include the `--sbom=true` and `--provenance=true` flags.
- Previously, the command only included the `--platform` and `-t` flags.
- This commit ensures that the build process generates a Software Bill of Materials (SBoM)
- and includes the provenance information for the image.
- No additional changes were made in this commit.
2023-12-26
- feat(compatibility): Update currencyPerContinent to countryPerContinent
- Updated the query used in the currencyPerContinent function to now fetch the number of countries per continent instead.
- The previous query fetched the number of currencies per continent, but the requirements changed to retrieve the number of countries instead.
- This change ensures that the function now returns the correct results and aligns with the updated requirements.
- No additional descriptions or co-authors added.
- ✨ feat: reorder columns, generate sql function doc from web scrap
- 🔧 chore: add tests, update Angular to version 17, refactor capture feature
- 🩹 fix: update compatibility in docker.js
- 🐛 fix(compatibility/scenarios): Fix column type issue in column update
- Fixed an issue in the column update scenario where the column type was not properly replaced when it contained 'character varying'. The fix replaces 'character varying' with 'varchar'.
- 🎨 chore(compatibility): Update query in 30-query.js
- - Updated the query in 30-query.js to use the most popular currency per continent from servers.js
- - Checked that the query returns 7 results instead of 20
- - Checked that the querySize also returns 7 instead of 20
- feat: Add border to .mat-bottom-sheet-container and .snack-error components
- - Updated the border style for .mat-bottom-sheet-container and .snack-error components in styles.scss.
- - Added border-top, border-left, and border-right properties to .mat-bottom-sheet-container and .snack-error classes, with the color rgb(244, 67, 54).
- - Removed the border property from .mat-bottom-sheet-container and updated the background-color property to rgba(30, 30, 30, 0.9).
- - Added box-shadow to .mat-bottom-sheet-container with the color rgb(244, 67, 54).
- Co-authored-by: Co-author Name
2023-12-25
- ✨ chore(repository): update TODO.md and controller.js files
- - Added "refaire capture feature" task
- - Updated gemini and model garden tasks
- - Added condition to check PROTECTED_MODE environment variable
- - Disabled load and guess functions in protected mode
- - Updated update-data-dialog.html:
- - Adjusted styling for key-value pairs in updateSuggestions
- [Repository: /Users/biche/Desktop/app]
- 🚚 refactor(mongodb wrapper): Refactor dump function in mongodb wrapper
- - Updated the path variable to include the database name in the frontPath
- - Added frontPath variable to handle different export types
- - Removed unnecessary code and optimized the exportType logic
- - Added nullable variable to handle nullable types in saveState function
- ✨ chore: Update MongoDB queries and populate scripts
- - Updated MongoDB queries and scripts to use the latest MongoDB driver
- - Refactored the population scripts for countries, regions, and cities
- - Updated the package.json file to include the latest dependencies
- 🐛 fix(driver): Fix string escaping in driver.js
- This commit fixes the issue with string escaping in the driver.js file.
- The value is now properly escaped with single quotes or double quotes
- 🎨 style(frontend): Update background color and box shadow
- ⚡ chore(todo): Remove json insert problem from TODO list
- 🐛 fix(database): Escape string values in PostgreSQL wrapper
- 💄 style: Modify conditional rendering of response code and actions
- This commit updates the background color and box shadow in the front/src/styles.scss file to improve the visual appearance.
- It also removes the "json insert problem" from the TODO.md file as it has been resolved.
- In the back/src/wrapper/postgre.js file, the commit fixes the issue of string values not being properly escaped by introducing start and end escape characters.
- The front/src/app/right/ai/ai.component.html file is modified to only render the response code and actions if they exist and there are no errors.
- No further details or footnotes are provided in this commit.
2023-12-24
- 🛠 fix(front): update PostgreSQL driver
- - Fix issue with parameter substitution in the PostgreSQL driver
- - Update package import statement to use 'pg' instead of 'pg.Pool'
- - Refactor query execution code to use array destructuring and object syntax
- 🚧 chore(TODO): add Postgre JSON insert problem
- - Add a new task to the TODO list regarding a JSON insert problem in Postgre
- 🎨 refactor(front): improve SQL driver
- - Modify the 'extractConditionParams' method to handle case-insensitive 'where'
- - Remove backticks from the SQL query
- - Update the query build process to correctly add the 'WHERE' condition
- 🐛 fix(static): remove unnecessary imports
- - Remove unused imports from the Postgre script
- 🔨 chore(front): fix import statement in postgresql.ts and mongo.js
- The import statement for the 'pg' library in postgresql.ts was missing a closing brace, resulting in a syntax error. Additionally, the import statements in mongo.js were incorrect.
- ✨ feat: Update snackbar messages in connection component
- - Updated snackbar messages to use the "⨉" emoji instead of "╳" for consistency with other components
- - Updated commit message to follow the conventional commit convention
- 🎨 feat(frontend): update styles
- - Updated background color, border, and box shadow for .mat-bottom-sheet-container and .snack-error classes in styles.scss
- - Updated styles for links and buttons in error.component.html
- - Updated styles for mat-select and input elements in query.component.html
- - Updated styles for table names in tables.component.html
- - Updated styles for images and icons in insert.component.html
- - Updated logic for changing table in tables.component.ts
- feat: Add new features and improvements
- - Added wget command for retrieving world en bdd de demo
- - Updated ERD for Chrome bookmarks
- - Added new system feature for downloading code with email from the landing page
- - Modified process of retrieving license from the landing and removed enpoint
- - Implemented sql function doc generation from web scrap
- - Added virtual columns support
- - Improved the capture feature
- - Added Gemini to feature list
- - Implement modules payant feature
- - Implement advanced auth with cloud integration
- Updated column.component.scss:
- - Adjusted margin in .mat-card
- - Added new icons to matIconRegistry
- Updated connection.component.scss:
- - Applied styles to .mat-list-text class for better display
- - Updated display property and added gap and padding to .mat-list-text class
- - Adjusted styling for .tableCount class
- 🎨 chore(front): Update connection component styling
- - Updated the styling of the connection component in the front-end to improve
- readability and user experience.
- 🎨 feat(front): Update tables component HTML
- - Modified the HTML code in the tables component to enhance the navigation and
- - Added links to the tables, allowing users to directly access specific tables
- 🎨 chore(front): Update tables component styling
- - Applied style changes to the tables component in the front-end to improve
- - Adjusted font sizes and paddings to enhance overall visual appeal.
- ♻️ chore(front): Refactor tables component logic
- - Refactored the code in the tables component to optimize the handling of route
- navigation and title management.
- - Restructured the component to improve code organization and readability.
- - Extracted common dependencies into separate variables for better
- feat: add postgre script to populate world data
- This commit adds a new file, postgre.js, which contains the script to populate the database with world data. The script imports the necessary dependencies and establishes a connection to the MySQL database. It then populates the continent, country, currency, language, and city tables with the corresponding data from the countries.js and cities.json files. Finally, it closes the database connection.
- The commit also includes some file renames related to the world-populator functionality. The package-lock.json, countries.js, package.json, cities.json, and mysql.js files have been moved to the static/world-populator directory.
- The changes in this commit allow for easy population of the world data in the database using Postgre.
- ✨ feat(front): add column component
- - Add column component to shared folder
- - Column component includes title, description, and extras fields
- - SCSS file for column component is also added
- - Update HTML file for column component
2023-12-23
- ✨ feat(frontend): update tables component and populate cities
- - Update tables component HTML to improve table selection functionality.
- - Modify MySQL script to populate cities with data from countries and regions.
- - Add necessary SQL queries to insert cities into the database.
- # Please note that this is just a suggested commit message
- # Feel free to make any necessary changes or additions.
- 🐛 fix(explore.component): Fix issue with explore component
- In the explore.component file, fixed a bug where the params were not properly set
- when the selectedTable was different from the current selected table. Also added
- support for caching in the refreshData() method to prevent unnecessary reloading of data.
2023-12-22
- 🔨 feat(component): update cell component and explore component
- - Replace href with routerLink in fkLink anchor tag
- - Import Params from @angular/router
- - Add fkParams property to handle router query params for foreign key column
- - Modify fkLink assignment to include selected server and database names
- - Update explore.component.ts:
- - Import combineLatest, distinctUntilChanged, merge, and Subscription from rxjs
- - Create interval property for setInterval function
- - Add ngOnDestroy method to clear interval and autoUp if exists
- - Modify setInterval function to assign interval property
- - Updated cell component to use routerLink instead of href for better routing
- - Updated explore component to import necessary rxjs dependencies and handle interval and autoUp clearing
2023-12-21
- feat(history): Add OnDestroy lifecycle hook
- - Add `OnDestroy` lifecycle hook to `HistoryComponent`
- - Unsubscribe from `drawerObs` subscription in `ngOnDestroy()`
- ✨ feat: added Stats class for advanced component
- - Created Stats class with index_length and data_length properties
- - Imported Stats class in advanced.component.ts and advanced.component.ts files
- - Updated stats property in the advanced component classes
2023-12-20
- feat(compatibility): Update package-lock.json
- This commit updates the compatibility/package-lock.json file.
- Changes include removing the version field and updating the dependencies.
- Specifically, the puppeteer dependency was removed.
- This commit also includes other minor changes in different files.
- - Removed puppeteer dependency in compatibility/package-lock.json
- - Updated front/src/app/top-right/top-right.component.html
- - Removed the tid attribute from the settings button
- - Updated front/src/app/top-right/config/config-dialog.component.html
- - Removed the tid attribute from the validLicence icon
- - Updated the .gitlab-ci.yml file
- - Changed the test command to run npm run test:app
- - Updated compatibility/package.json
- - Removed puppeteer dependency
- - Updated front/src/app/connection/connection.component.html
- - Removed the tid attribute from the database selection option
- - Removed the tid attribute from the user input field
- - Removed the tid attribute from the password input field
- 🛠 fix: Update assertions in query and querySize tests
- - Replace the `check_query` variable with individual assertions in the
- test for selecting 20 linked elements.
- - Replace the `check_querySize` variable with individual assertions in
- the test for the query size result.
- - Modify the assertion for the column update type to handle
- 'character varying' and 'varchar' types correctly.
- - Assert the equality of column name, type, default value, and
- nullability in the column update test.
- feat: add new feature for parsing licence
- chore: refactor code in licence.ts
- fix: fix bug in config-dialog.component.html
- chore: rename app.js to headless.js
- feat: add puppeteer dependency in package.json
- chore: update .gitlab-ci.yml for running headless tests
- chore: rename index.js to docker.js
- chore: update servers.js for postgres
- chore: update config.js with front URL and credentials
- ✨ feat: Add new files and update styles
- - Added new SVG file for Google logo.
- - Updated styles for .mat-cell and .mat-icon-button classes.
- Front/src/shared/column/column.component.scss:
- - Removed styles for .mat-option.bold class.
- Front/src/app/app.component.ts:
- - Updated the loop to add new icons 'google' and 'docker' to matIconRegistry.
- Front/src/shared/column/column.component.html:
- - Updated class name from 'types' to 'hasBold' in mat-optgroup.
- Front/src/app/right/ai/ai.component.html:
- Front/src/app/right/ai/ai.component.ts:
- - Added enum for providers (OpenAI and Google Cloud).
- - Updated the models object to include provider name and bold property.
- - Updated the chat logic to check the provider and execute the corresponding API request.
2023-12-16
- ✨ chore(compatibility): Update compatibility tests
- - Update compatibility tests to improve test coverage and reliability
- - Refactor test assertions to use clearer and more specific conditions
- - Fix issues with assertions in multiple test scenarios
- - Convert character varying to varchar in column update test
- - Enhance error handling and error messages in database creation test
- - Update PostgreSQL container environment variables in servers configuration
- Note: This commit only includes updates to the compatibility tests and does not impact any other functionality or code in the repository.
- feat(compatibility): Update docker tags page size
- This commit updates the page size for fetching docker tags from 30 to
- 150 in the compatibility helper.js file.
- fix(front): Adjust background color in styles.scss
- In the styles.scss file, the background color for the material-symbols-outlined
- class selector is adjusted to rgba(30, 30, 30, 0.6) and a border of 1px solid
- style(front): Decrease font size in code and .hljs
- The font size for the code and .hljs selectors is decreased to 12px in the
- style(front): Add border to .actions selector in column.component.scss
- A border of 1px solid #0f80cc is added to the .actions selector in the
- style(front): Remove font-size from logs-dialog.html
- The font-size property is removed from the style attribute in the
- 🛠 fix(config): Update AI model selection
- - Changed the AI model selection dropdown to dynamically populate the models based on the provider
- - Removed hard-coded model options and added a loop to generate options based on the available models for each provider
- - Added OpenAI as a provider and fetch the available models from the OpenAI API
- - Updated the AI configuration object to include the `top_p` parameter for controlling the randomness of the AI responses
- - Updated the `configChange()` method to fetch the available models and store them in the `models` variable
- - Updated the `goodOpenAIKey()` method to check the validity of the OpenAI API key
- - Updated the configuration change logic to include the `top_p` parameter
- - Updated the template to display the available models and the `top_p` parameter
- - Updated the CSS styling for the AI component to display the settings properly
2023-12-15
- 🎨 chore(compatibility): update docker tag page size
- The page size of the docker tag API has been updated from 100 to 30
- to improve performance and reduce load on the API.
- 🐛 fix(compatibility): fix query test assertion
- The query test assertion has been fixed to check if the query data
- is not an empty string instead of checking for an exact match with an object.
- 🐛 fix(compatibility): fix file test assertion
- The file test assertion has been fixed to check if the loaded data
- 🐛 fix(compatibility): fix server test assertions
- The server test assertions have been fixed to check if the scan,
- connect with hard-coded credentials, and guessed credentials data
- ♻️ refactor(compatibility): change MongoDB to MySQL
- The compatibility scenarios have been updated to use MySQL instead
2023-12-14
- 🎨 build(gitlab-ci): update .gitlab-ci.yml and fix linting issues
- 💄 style(front): adjust image height in connection component
- ♻️ refactor(compatibility): update servers and scenarios for yugabyte
- 🐛 fix(front): fix height of edit connection component image
2023-12-13
- 🐛 fix(sql): fix indentation issue in createRelation function
- - fixed the indentation issue in the createRelation function
- - The function was not properly indented, causing issues with the SQL query execution
- ♻️ chore: Rename MongoDB files in compatibility/sakila folder
- Rename the MongoDB files in the compatibility/sakila folder to match the new MongoDB directory structure.
- feat(connection): update logo size and styling
- - Update logo size and height in connection.component.scss
- - Adjust logo padding and border radius in edit-connection.component.scss
- - Update logo size to max-width: 120px and height: 50px in connection.component.scss
- - Remove background color and adjust padding in connection.component.scss
- - Adjust logo size, height, padding, and border radius in edit-connection.component.scss
- fix(connection): update logo and styling
- - Adjusted logo alignment and size
- - Changed logo background color to gray
- - Updated port display and added icon
- - Added missing h3 tag for server user
- feat: Update CONTRIBUTING.md with requirements and instructions
- This commit updates the CONTRIBUTING.md file with the following changes:
- - Updated the heading for requirements section
- - Added requirements for node, docker, and git
- - Updated the command for running the back-end app
- - Updated the command for running the front-end app
- - Removed the URL for the front-end app
- - Updated the instructions for setting up the databases server
- - Added a new section for dataset
- - Added instructions for creating/importing databases
- - Added a note for proposing good datasets
- - Updated the heading for commit strategy section
- 📝 The README.md file was modified to include a new task called "sql function doc (generate from web scrap)" and the addition of virtual columns
- 🏗️ The .gitlab-ci.yml file was modified to add a new task with the tag "shell" under the "clean" stage
- 👥 The CONTRIBUTING.md file was modified to update the directory path from "dataset" to "static" and provide instructions for picking up the database from the "static" folder
- 🚀 The column.component.html file was modified to replace the "special_character" icon with the "list" icon
- 🚚 Several files and directories were renamed from the "composes" directory to the "static" directory.
2023-12-12
- ✨ Added support for storing UUID data type in MariaDB.
- 🔧 Updated support for storing IPv4 and IPv6 addresses in MariaDB.
- 🔧 Removed support for storing very small integer values.
- 🔧 Updated description of ENUM data type: it is a list of items from which the value must be selected, with an example explanation.
- • In the `front/src/shared/helper.ts` file, a new regular expression `validName` has been added to validate a string as a valid name (consisting of alphanumeric characters, hyphens, and underscores with a length between 2 and 50 characters).
- • In the same file, regular expressions `parentheses` and `complex` are defined to match parentheses and a complex object respectively.
- • The `mongo_injectAggregate` function has been added to inject aggregation data into a MongoDB query.
- • The `sql_isSelect` function has been added to check if a SQL query is a `SELECT` statement.
- • The `singleLine` function has been added to convert multi-line code into a single line.
- • The `isNested` function has been added to check if a data object is nested (either an object or an array).
- • The `removeComment` function has been added to remove comments from a query.
- • In the `back/src/shared/bash.js`
- 🐛 The script in the .gitlab-ci.yml file was updated to include a command to stop all running Docker containers before executing the rest of the script.
- ✨ Import `common-helper.mjs` and replace the import of `helper`.
- ✨ Update the `columns` form array name validator to use the `commonHelper.validName` pattern instead of `helper.validName`.
- ✨ Update the `name` control validator of the `ExportQueryDialog` component to use the `commonHelper.removeComment` function instead of `helper.removeComment`.
- ✨ Update the `name` control validator of the `CreateViewDialog` component to use the `commonHelper.removeComment` function instead of `helper.removeComment`.
- ✨ Update the `isQuerySelect` function of the `QueryComponent` to use the `commonHelper.removeComment` function instead of `helper.removeComment`.
- ✨ Update the `singleLine` function of the `common-helper.mjs` module to use `helper` object as `commonHelper`.
- ✨ Update the `sql_isSelect` function of the `common-helper.mjs` module to use `helper` object
- ✨ The diff suggests that the `common-helper.cjs` file has been renamed to `common-helper.mjs` across multiple files and directories in the repository.
- - 💥 Fixed import name in cell.component.ts from `helper` to `commonHelper`.
- - ♻️ Renamed "IA suggestion" to "AI suggestion" in insert.component.html.
- - ♻️ Renamed "Ask IA for help" to "Ask AI for help" in error.component.html.
2023-12-10
- 🎨 The git diff in the file `/compatibility/scenarios/20-file.js` shows that there have been some code formatting changes, specifically new lines and indentation adjustments.
- - Added a Contributing.md file with requirements, setup instructions, and commit strategy. [📝 CONTRIBUTING.md]
- - Made changes to the README.md file, adding links for regular installation, development, and contributing. [📝 README.md]
- - Made changes to the com.md file, removing a TODO and adding other tasks related to partnerships and incentives. [💼 com.md]
- 🔀 Updated import statement in file "62-column-add.js" from "changeServer" to "loadConfig".
- 🔀 Updated import statement in file "65-column-update.js" from "changeServer" to "loadConfig".
- 🔀 Updated import statement in file "68-column-delete.js" from "changeServer" to "loadConfig".
- 🔀 Updated import statement in file "10-database.js" from "changeServer" to "loadConfig".
- 🔀 Updated import statement in file "20-file.js" from "changeServer" to "loadConfig".
- 🔀 Updated package version in "front/package.json", "@angular/cli" from "14.2.12" to "14.2.13".
- 🔀 Updated import statement in file "30-query.js" from "loadConfig(servers.percona, "8")" to "loadConfig(servers.percona)".
- 🔀 Updated variable name in file "compatibility/index.js
- 🎨 Added functionality to switch all data sets in the chart on the stats dialog.
- 🐛 Fixed a bug where the loadConfig function was not being imported correctly.
- 🚀 Refactored the runDocker function to start and stop Docker containers with the specified configurations.
- 🚚 Moved the runBash function out of the config.js file and into the index.js file.
- ✨ Implemented the runScenarios function to run various scenarios on different servers.
- 📝 Updated the Docker container removal command to use the correct container name.
- ♻️ Refactored the code to use the loadConfig function instead of the changeServer function.
- 🔨 Fixed a typo in the tag variable name on line 32 of the index.js file.
- - Added links to the website, issue tracker/proposal, wiki, Docker Hub, and LinkedIn in the README.md file. [🌍 🐛 📙 🐳 💼]
- - Removed the old links from the README.md file. [🌍 🐛 📙 🐳 💼]
- - Reorganized the links in the README.md file into a table format. [🌍 🐛 📙 🐳 💼]
- - Updated the TODO section in the README.md file to include the "Technical" and "Communication" tasks. [💻 💬]
- - The README.md file was updated to reflect the project as "WebDB – Open Source and Efficient Database IDE."
- - The links in the README.md file were updated with appropriate GitMoji icons.
- - Instructions for setting up the development environment were added to the README.md file.
- - Instructions for running the application were added to the README.md file.
- - A section for contributing to the project was added to the README.md file.
- - A TODO section was added to the README.md file, with links to tech.md and com.md files.
- ✨ The README.md file has been modified to instruct contributors to make merge requests between their branch and the main branch, instead of the dev branch.
- 📰 [Refactor] Rename `original` to `before` and `updated` to `after` in the `65-column-update.js` file in the compatibility/scenarios directory.\
- 📰 [Fix] Update the value of the `name` property of `after` to "changedName".\
- 📰 [Feature] Send a POST request to the API to modify a column, using `before` as the old value and `after` as the new value.\
- 📰 [Test] Verify that the column rename operation was successful by checking the status code and response data.\
- 📰 [Fix] Update the value of the `name` property of `before` to match the updated value.\
- 📰 [Test] Verify that the column type cast operation
- ✨ Added import statement for `getDatabase` function in `65-column-update.js`.
- 🛠️ Renamed column from `original` to `updated` and added code to update column name in `65-column-update.js`.
- 🛠️ Renamed variable `changedName` to `updated.name` and added code to update column type in `65-column-update.js`.
- 🔒 Added code to toggle `nullable` property of column in `65-column-update.js`.
- 💡 Added code to update column default value in `65-column-update.js`.
- 📋 Updated structure for `65-column-update.js` in `sakila` database.
- ✨ Added import statement for `getDatabase` function in `68-column-delete.js`.
- 📋 Updated structure for `68-column-delete.js` in `sakila` database.
- ✨ Added import statement for `getDatabase` function in `10-database.js`.
- 📋 Updated structure for `10-database.js
- Added scenario to add a column to the database, making an API call to add the column and running tests to check if the column was successfully added and present in the structure. (✨)
- Added scenario to update a column in the database, making API calls to rename the column, change its type, change its nullability, and change its default value. The scenario also runs tests to check if the updates were successful and if the column in the structure matches the updated column. (✨)
- Added scenario to drop a column from the database, making an API call to drop the column and running tests to check if the column was successfully dropped and is no longer present in the structure. (✨)
- Added a new compatibility scenario for updating a column, making API calls to rename the column, change its type, change its nullability, and change its default value. The scenario also runs tests to check if the updates were successful and if the column in the structure matches the updated column. (
2023-12-09
- ✨ front/src/shared/column/column.component.scss: Added CSS styles for the "default" class, including margin, line height, font size, and font family.
- 💡 compatibility/scenarios/60-column.js: Changed the test description to "[column] Cast from {updated.type} to {config.columns[2].type} ok" for better clarity.
- 💡 compatibility/scenarios/60-column.js: Changed the test description to "[column] Became nullable" for better clarity.
- 💡 compatibility/scenarios/60-column.js: Changed the test description to "[column] Default to 'Example'" for better clarity.
- 🔧 compatibility/index.js: Commented out the code for running scenarios with MariaDB.
- 🔧 front/src/styles.scss: Added padding and margin styles for the .mat-dialog-content class.
- 🔧 front/src/shared/column/column.component.html: Made changes to the HTML code, including changing the appearance attribute of some mat-form-field elements, updating the mat-label text,
2023-12-08
- 📄 [database] Creation ok: The test case for creating a database is now using async/await syntax.
- 📄 [database] Created is present in structure: The test case for checking if the created database is present in the structure is now using async/await syntax.
- 📄 [licence] Parse succeed: The test case for parsing license keys has been modified to use async/await syntax.
- 📄 [table] Creation ok: The test case for creating a table is now using async/await syntax.
- 📄 [table] Created is present in structure: The test case for checking if the created table is present in the structure is now using async/await syntax.
- 📄 [file] Load sakila dataset: The test case for loading the Sakila dataset has been modified to use async/await syntax.
- 📄 [file] Sakila database is present in structure: The test case for checking if the Sakila database is present in the
- 🔄 The `config.js` file in the `compatibility` directory has been modified to change the `database` value from "dbTest01" to "sakila".
- ❌ The `20-file.js` file in the `compatibility/scenarios` directory has been modified to remove the creation of a database named "sakila" and its corresponding axios headers.
- 🚧 The `30-query.js` file in the `compatibility/scenarios` directory has been modified to change the test description and assertions related to selecting 20 linked elements in the database.
- ✨ Added expiration date to the license information in the config-dialog.component.html file.
- 🔄 Renamed the 30-table.js file to 50-table.js file.
- ✨ Added a test for loading the sakila dataset in the 20-file.js file.
- 🔄 Renamed the 50-column.js file to 60-column.js file.
- ✨ Created a new file, 30-query.js, which includes tests for querying the database.
- ✨ Added tests for connecting to the server using hardcoded credentials and guessed credentials in the 0-server.js file.
- ✨ Added tests for previewing the structure and getting the full structure of the server in the 0-server.js file.
- 📦 Added "form-data" as a dependency in the package.json file.
- 📝 Updated the "host" value in the config.js file to use "127.0.0.1" instead of "localhost".
- 🗂️ Renamed the "compatibility/scenarios/20-database.js" file to "compatibility/scenarios/10-database.js".
- 📄 Added a new file "compatibility/scenarios/150-complex.js" which contains complex code related to the "sakila" dataset.
- 🗂️ Renamed the "compatibility/scenarios/20-file.js" file to "compatibility/scenarios/20-file.js".
- 📜 Updated the SQL query in the "compatibility/servers.js" file to select 20 elements from a table.
- 📄 Added a new file "compatibility/scenarios/30-table.js" which contains code related to creating, renaming, dropping, and truncating tables.
2023-12-07
- ✨ Added three buttons for the Assistant user role in the AI component, allowing them to send different types of messages: reporting a wrong response, asking for a summary, and requesting more details about a response.
- :shirt: The goal is to remove the phone icon from the config-dialog.component.html file.
- :shirt: The goal is to add an error message to the batch-update-dialog.html file, under the mat-dialog-actions section, if the strError() function returns a non-null value.
- :shirt: The goal is to update the 'select20relational' object in the servers.js file.
- :shirt: The goal is to add a strError() function to the update-data-dialog.ts file, that checks if the JSON string is valid and return an error if not.
- :shirt: The goal is to add an error message to the update-data-dialog.html file, under the mat-dialog-actions section, if the strError() function returns a non-null value.
- :shirt: The goal is to remove the padding and margin styles from the .mat-dialog-content class in the styles.scss file.
- :shirt: The goal is to add a strError() function to the batch-update-dialog.ts file,
2023-12-06
- ✨ [compatibility] Update simpleSelect queries
- ✨ [compatibility] Add simpleSelect queries to servers
- 🐛 [front] Fix prompt customization message
- 🐛 [compatibility] Fix artifact path in CI configuration
- ✨ [compatibility] Update scenario test descriptions
2023-12-05
- ✨📦 feat: Update GitLab CI configuration
- The changes in this commit update the `.gitlab-ci.yml` file. The "e2e" stage has been renamed to "compatibility" to better reflect its purpose. Additionally, the before_script and script sections have been modified to reflect the new stage name. This change improves the clarity and consistency of the CI configuration.
- 🔧 Fix tests/app.js: Update describe block to 'webdb:app'
- 💡 The changes were made to update the describe block in the tests/app.js file from 'webdb:app/licence' to 'webdb:app'. This change was made to align with the updated project structure.
- 📝 Commit message: `🔧 Fix tests/app.js: Update describe block to 'webdb:app'`
- 🔧 Fix tests/scenarios/30-table.js: Comment out duplicate code
- 💡 The changes were made to comment out the duplicate code in the tests/scenarios/30-table.js file. This change was made to remove the duplicated code and improve code readability.
- 📝 Commit message: `🔧 Fix tests/scenarios/30-table.js: Comment out duplicate code`
- 🔧 Update tech.md: Update modules payant section
- 💡 The changes were made to update the modules payant section in the tech.md file
2023-12-04
- ✨🔄 Update .gitlab-ci.yml: Set 'interruptible' option to true for eslint job
- The `.gitlab-ci.yml` file was modified to set the `interruptible` option to true for the eslint job. This change ensures that the job can be interrupted if necessary.
- ✨⚙️️⬆️ Update .gitlab-ci.yml, tests/scenarios/0-server.js, and front/src/app/right/version/version.component.html
- - Update .gitlab-ci.yml to add a new step for e2e testing
- - Update tests/scenarios/0-server.js to fix a syntax error and improve test readability
- - Update front/src/app/right/version/version.component.html to add a mat-card-header and mat-card-subtitle for error message display
- ✨🔀 Remove unnecessary rules and tags in .gitlab-ci.yml
- This commit removes unnecessary rules and tags in the .gitlab-ci.yml file.
- ✨ ✏️ Update README.md: Add setup instructions for back and front-end development
- 🐛 Fix gitlab-ci configuration rules
- 🎨 Refactor version controller to remove unused import
- 🔧 Update connection component HTML template
- 🔧 Refactor version module to remove unused parameter
- 🐛 Fix config dialog component HTML template
- 🔧 Refactor subscription controller
- ✨️🚀 CI Configuration Update: Modify rules for scheduled pipeline
- This commit updates the rules in the `.gitlab-ci.yml` file to only trigger the test stage when the pipeline source is a schedule. This ensures that the test stage is only executed during scheduled pipelines.
- Affected file: `.gitlab-ci.yml`
- - Replace `only` configuration with `rules` configuration
- - Add a rule to check if the pipeline source is a schedule
- Note: No other changes were made in this commit.
- #gitmoji #ci #configuration #update
- ✨📦 Add e2e tests and update CI pipeline
- ℹ️ This commit adds e2e tests to the CI pipeline and updates the .gitlab-ci.yml file to include the necessary changes. It also includes changes to the README.md file to improve clarity and add a request for good datasets for testing.
- - Add e2e stage to .gitlab-ci.yml
- - Include changes to back/**/* and front/**/* in e2e stage
- - Update interruptible setting for e2e stage
- - Update only setting for e2e stage to include schedules
- - Update README.md with additional information and request for good datasets
- 🔀⚡️ Merge request: Please create a merge request between your branch and dev for contribution.
- Co-authored-by: [Author Name]
2023-12-03
- ✨: Change variable name to include server wrapper in stats-dialog.component.ts and update dump options label in dump.component.html
- The commit message for the changes in stats-dialog.component.ts and dump.component.html would be:
- ✨ Change variable name to include server wrapper in stats-dialog.component.ts and update dump options label in dump.component.html
- ✨🔧 Refactor: Clean up load component and controller
- - Removed unused variable `folder` in `load.component.ts`
- - Updated API endpoint in `load.component.ts` to remove the `folder` query parameter
- - Updated `load` function in `mongodb.js` to dynamically detect folder based on file extension
- - Removed folder checkbox from `load.component.html`
- - Updated `load` function in `controller.js` to remove the `folder` query parameter
- ✨ feat(back): add support for loading multiple files
- 📚 This commit adds support for loading multiple files in the server's route.js file. It uses the multer library to handle file uploads and creates a destination folder based on the start time of the request. The uploaded files are then saved in this folder.
- 🔀 The following files are modified:
- - back/src/endpoint/server/route.js: The upload destination is modified to use the newly created folder. The `upload.single` middleware is replaced with `upload.array` to handle multiple files.
- - back/src/endpoint/database/controller.js: The `driver.load` function is modified to accept an array of files instead of a single file. Each file is then loaded individually.
- - front/src/app/right/load/load.component.ts: The code for importing files is modified to handle the new file structure. The `load` function now appends all the selected files to a `FormData` object and sends it to the server.
- ✨ Add default dump options to PostgreSQL driver
- 🐛 Fix styling issue in styles.scss
- ✨ Add search functionality to process-dialog.component.html
- ✨ Add dump options to dump.component.html
- 🐛 Fix issue with dump.component.ts not importing FileType
- ✨ Add BSON file type to MongoDB driver
- 🐛 Fix issue with dump method in mongodb.js not accepting options parameter
- ✨ Add default dump options to MySQL driver
- ✨ Add native option to FileType in driver.ts
- ✨ Add default dump options to SQL driver
- 🐛 Fix issue with dump method in postgre.js not accepting options parameter
- ✨ Add dump option to tidb driver
- 🐛 Fix issue with insert.component.html not closing ngx-monaco-editor tag
- 🐛 Fix issue with dump method in mysql.js not accepting options parameter
- 🐛 Fix issue with dump method in cockroachdb.js
- ✨💻 Add chat documentation generator and link OpenAI chat. Lookup chrome history for relevant resources. Add data/uml generator and AI tools to GitLab/GitHub.
2023-12-01
- 🔧 chore(stats-dialog.component.ts): import Configuration class from the correct file path to fix compilation error
- 🔧 chore(stats-dialog.component.ts): add configuration property to StatsDialogComponent to store configuration settings
- 🔧 chore(stats-dialog.component.ts): update interval for refreshing data to use the value from the configuration
- 🔧 chore(configuration.ts): add statsRefreshRate configuration setting with valid values of '1', '5', and '30' to control the refresh rate of statistics
- 🐛 fix(mongodb.js): improve readability and semantics of serverStats method by renaming variable names
- 🐛 fix(mysql.js): improve readability and semantics of serverStats method by renaming variable names
- 🐛 fix(stats-dialog.component.html): remove disabled attribute from resetZoom button to fix incorrect button state
- 🐛 fix(stats-dialog.component.ts): disable animation in chart configuration to fix animation issue
2023-11-29
- 🐛 fix(wrapper.js): remove unused variable 'hash' to improve code readability and performance
- ✨ feat(edit-connection.component.ts): add server to Server list before emitting 'edited' event to ensure the updated connection is saved
- 🎨 style(stats-dialog.component.html): change label from 'Instant' to 'Variation' for better clarity and understanding
2023-11-28
- 🎨 style(stats-dialog.component.scss): adjust min-width and min-height values to improve component layout
- 🚀 feat(stats-dialog.component.ts): add responsive and maintainAspectRatio options to lineChartOptions to improve chart display on different screen sizes
- 🔧 chore(stats-dialog.component.ts): adjust animation options in lineChartOptions to improve chart animation smoothness
- 🐛 fix(wrapper.js): change the way the hash is generated to include the entire connection object instead of individual properties
- 🐛 fix(wrapper.js): fix the condition for returning a connection from the pool to only return if the connection exists in the pool and is not null
- 🐛 fix(postgre.js): add "pg_temp" to the list of system databases to improve accuracy in scanning
- 🐛 fix(bson.d.ts): add optional parameters to the "inspect" method in order to align with the TypeScript definition file
- 🔧 chore(mongo.d.ts): remove unused getSuccessfullyInsertedIds method from BulkWriteResult class
- 🔧 chore(mongo.d.ts): add missing documentation for Db constructor and createCollection method
- 🔧 chore(mongo.d.ts): add missing documentation for getCollection method and ServerHeartbeatFailedEvent, ServerHeartbeatStartedEvent, ServerHeartbeatSucceededEvent classes
- 🔧 chore(mongo.d.ts): add missing documentation for TimeoutController and TimerQueue classes
- 🐛 fix(wrapper.js): fix condition in Wrapper class to return connection if test is falsy instead of truthy
- 🔧 refactor(wrapper.js): remove unused makeHash function and simplify getDriver method
- 🐛 fix(wrapper.js): fix condition in getDriver method to correctly return connection from pool when test is false
- 📝 chore(TODO.md): update list of tasks and resources
- 🐛 fix(shared/wrapper.js): fix condition for returning connection from pool
- 🎨 style(connection.component.html): adjust margin for mat-form-field
2023-11-23
- 🐛 fix(sql.js): fix indentation issue in SQL class
- 🐛 fix(version.js): remove unused code and add TODO comment for future implementation
- 🐛 fix(mysql.js): fix indentation issue in MySQL class
- 🐛 fix(controller.js): fix catch block indentation for better code readability
- ✨ feat(index.js): add SIGINT and SIGTERM event listeners to gracefully exit the application
- 🐛 fix(sql.js): fix indentation of relation.database parameter in createRelation method
- 🐛 fix(version.js): remove unnecessary return statement in the if condition
- 🐛 fix(mongodb.js): improve code readability by formatting the return object in process method
- 🐛 fix(mysql.js): improve code readability by formatting the return object in process method
- ✨ feat(mysql.js): add support for duplicating tables in the createDatabase method
- 🐛 fix(app.component.ts): format template for better code readability
- 🐛 fix(connection.component.html): move *ngIf directive to the end of the app-unreachable component
- 🐛 fix(container.component.html): format template for better code readability
- 🐛 fix(advanced.component.html): move *ngIf directive to the beginning of the div element
- 🐛 fix(stats-dialog.component.ts): fix import order to follow convention and improve readability
- 🐛 fix(stats-dialog.component.ts): fix indentation of mode property to improve code consistency
- 🐛 fix(stats-dialog.component.ts): fix indentation of display function to improve code consistency
- 🐛 fix(stats-dialog.component.ts): fix indentation of datalabels options to improve code consistency
- 🐛 fix(stats-dialog.component.ts): fix indentation of datas.push() to improve code consistency
- 🐛 fix(config-dialog.component.html): fix line break to improve readability
- 🐛 fix(top-right.component.html): fix indentation of mat-menu-item to improve code consistency
- 🐛 fix(top-right.component.ts): remove unused import to improve code cleanliness
- 🐛 fix(index.html): fix line break to improve readability
- 🐛 fix(column.component.html): fix indentation of *ngFor loop to improve code consistency
- 🐛 fix(unreachable.component.ts): remove unused imports and ngOnInit method since it's empty
- 🔧 chore(.gitlab-ci.yml): fix date format in TAG variable to use uppercase Y for full year
- 🔧 chore(.gitlab-ci.yml): remove unnecessary blank line
- 🔧 chore(.gitlab-ci.yml): remove unused import statements
- 🔧 chore(.gitlab-ci.yml): remove unused code and comments
- 🔧 chore(.gitlab-ci.yml): add IMAGE_NAME variable to specify the name of the Docker image
- 🐛 fix(.gitlab-ci.yml): copy the built frontend files to the correct directory in the backend
- 🔧 chore(.gitlab-ci.yml): remove unnecessary corepack commands from prepare stage
- The corepack enable and corepack prepare pnpm@latest --activate commands were removed from the prepare stage as they were unnecessary and not being used.
- 🔧 chore(.gitlab-ci.yml): remove unnecessary apk commands to improve build performance and reduce image size
- 🔧 chore(.gitlab-ci.yml): remove unnecessary tags from eslint job to simplify configuration
- 🔧 chore(.gitlab-ci.yml): add shell tag to jobs for better resource allocation and optimization
- 🔧 chore(.gitlab-ci.yml): remove unused variables and services from docker job
- 🔧 chore(changelog.js): fix indentation and formatting for better readability
- 🔧 chore(stats-dialog.component.html): change label from "Live" to "Instant" for better clarity
2023-11-20
- 🐛 fix(mysql.js): add --single-transaction flag to mysqldump command to ensure consistent state dump
- 🎨 style(stats-dialog.component.ts): improve readability and consistency of tooltip and datalabels styles
2023-11-19
- 🐛 fix(controller.js): remove unnecessary whitespace to improve code readability
- 🐛 fix(stats-dialog.component.ts): handle error when refreshing data to prevent app from crashing
- 🐛 fix(controller.js): fix typo in variable name 'opened' to improve code readability
- 🐛 fix(controller.js): fix nested loop order to ensure correct scanning of hosts and wrappers
- ✨ feat(controller.js): add support for process.env.ADD_HOSTS environment variable to dynamically add hosts to scan
- ✨ feat(controller.js): optimize scanning process by using async/await and Promise.all
- 🐛 fix(controller.js): fix mapping of scanned results to use host and port as key in 'opened' object
- 🐛 fix(index.js): change SIGINT handler to a named function 'exit' to improve code readability
- ✨ feat(index.js): add SIGTERM handler to gracefully exit the application
- 🐛 fix(driver.js): use shorthand property syntax for 'host' in returned object to improve code readability
- 🎨 style(connection.component.scss): update background color to rgb(240, 240, 240) for better visual consistency
- 🎨 style(edit-connection.component.scss): update background color to rgb(240, 240, 240) for better visual consistency
- 🔧 fix(connection.component.html): update click event in button to call ngOnInit with a parameter to indicate a reload
- 🔧 fix(connection.component.ts): add selectedIndex property and set it to 0 in ngOnInit if not reloading
- 🔧 fix(connection.component.ts): set selectedIndex based on the first server found in ngOnInit if not reloading
- 🔧 fix(unreachable.component.html): update button labels to use lowercase for consistency
- 🔧 fix(unreachable.component.html): update button label "Reload Page" to "Reload page"
- 🔧 fix(unreachable.component.html): update button label "Send Report" to "Send report"
- 🔧 fix(unreachable.component.html): update button label "Get Logs" to "Get logs"
- 🔧 fix(unreachable.component.html): update button label "Restart Container" to "Restart container"
2023-11-18
- 🐛 fix(mysql.js): update serverStats query to include 'Threads_connected' variable to retrieve additional server statistics
- 🔧 chore(stats-dialog.component.html): remove inline style for canvas element and move it to the corresponding SCSS file for better separation of concerns
- 🔧 chore(stats-dialog.component.scss): move styles for mat-dialog-content and canvas elements to separate SCSS file for better organization and maintainability
- 🔧 chore(stats-dialog.component.ts): add ChartDataLabels and zoomPlugin imports and register them with Chart.js to enable data labels and zoom functionality in the line chart
- 🔧 chore(stats-dialog.component.ts): update lineChartOptions to include layout padding, datalabels configuration, and zoom plugin configuration for better chart display and interaction
- 🔧 chore(stats-dialog.component.ts): update interval time for data refresh to 500ms for more frequent updates
- 🔧 chore(stats-dialog.component.ts): update y-axis ticks configuration to hide tick labels for better chart readability
2023-11-17
- Fix bug when api don't receive privateKey
2023-11-16
- 🔧 fix(advanced.component.html): add *ngIf condition to show div only if selectedTable is truthy
- 🔧 fix(advanced.component.html): remove unnecessary null checks for selectedTable in button and span elements
- 🔧 fix(advanced.component.html): remove unnecessary null checks for selectedTable in input elements
- 🔧 fix(advanced.component.ts): fix navigation after truncating table to reload server and navigate to selected server and database
- 🔧 fix(advanced.component.ts): fix table rename navigation to include selected server and database
- 🔧 fix(explore.component.ts): add null check for selectedTable before applying filter to prevent errors
2023-11-15
- 🐛 fix(controller.js): remove unnecessary htmlEscape function from query method
- 🔥 refactor(controller.js): remove htmlEscape function from query method as it is not needed anymore
- 🐛 fix(controller.js): escape special characters in query before running paged query to prevent potential security vulnerabilities
- 🎨 style(column.component.html): add class "types" to mat-optgroup for better styling separation
- 🎨 style(column.component.scss): move styles for mat-optgroup-label and mat-option inside .types class for better scoping
- Set snack-error background opacity
- Improve unreachable proposition
- Put Licence.renew in try/catch block
- 🐛 fix(process-dialog.component.ts): fix refreshData() being called after setInterval to ensure data is refreshed immediately
- 🐛 fix(stats-dialog.component.ts): fix refreshData() being called after setInterval to ensure data is refreshed immediately
- 🐛 fix(top-right.component.html): change text from "Backend Logs" to "Finished queries" for better clarity
2023-11-13
- 🔧 chore(Dockerfile): remove unnecessary tee command in ENTRYPOINT to simplify logging setup
- 🔧 chore(controller.js): refactor openned array to openned object for better performance and readability
- 🔧 chore(logs-dialog.html): remove unused code and simplify UI by removing toggle buttons
- 🔧 chore(top-right.component.ts): always load finished.log instead of using file variable
- 🔧 chore(unreachable.component.html): remove duplicate button and simplify UI by removing toggle buttons
- 🔧 chore(unreachable.component.ts): remove unused code and dialog functionality
- 🔧 chore(styles.scss): remove unused font-family property in code block styling
- 🎨 style(diagram.component.scss): update background color of table to improve readability
- 🎨 style(styles.scss): update background color and opacity of tooltips, select panels, menu panels, sticky table, and bottom sheet container for better visual consistency and contrast
- 🔧 chore(TODO.md): remove unnecessary lines and add tasks for cloud integration and ERD
- 🔧 chore(front): update font family to 'Fira Sans' for better readability and remove unnecessary font-size styles
- 🐛 fix(controller.js): remove redundant return statement to fix incorrect error handling logic
- ✨ feat(app.component.ts): add licence check functionality to periodically check and display licence errors using MatSnackBar
- ✨ feat(ai.component.ts): change Licence.get() to Licence.getCached() to improve performance
- ✨ feat(config-dialog.component.ts): change Licence.get(false) to Licence.getCached() and Licence.add(email) to Licence.renew(email) for better caching and consistency
- 🐛 fix(licence.ts): remove unused 'valid' property from Licence class constructor to improve code clarity
- ✨ feat(licence.ts): add support for parsing licence and downloading licence based on email
- 🐛 fix(request.service.ts): use Licence.getCached() instead of Licence.get() to improve performance
- 🎨 style(index.html): update font imports to use Fira Code and Roboto fonts for better readability and aesthetics
- 🎨 style(cell.component.scss): remove letter-spacing property to improve text legibility
- 🎨 style(styles.scss): update font-family to use Fira Code for better code readability and set font-weight to 300 for a lighter appearance
- 🐛 fix(create-database-dialog.html): fix typo in dialog title to improve readability and consistency
- 🔨 refactor(container.component.scss): remove unused CSS styles to improve code maintainability
- 🐛 fix(drop-table-dialog.html): fix typo in button text to improve readability and consistency
- 🐛 fix(truncate-table-dialog.html): fix typo in button text to improve readability and consistency
- 🐛 fix(insert.component.html): fix capitalization in button text to improve readability and consistency
- 🐛 fix(create-view-dialog.html): fix capitalization in dialog title to improve readability and consistency
- 🐛 fix(create-view-dialog.html): fix capitalization in button text to improve readability and consistency
- 🐛 fix(export-query-dialog.html): fix capitalization in dialog title to improve readability and consistency
- 🐛 fix(query.component.html): fix capitalization in button tooltip to improve readability and consistency
- 🐛 fix(add-column-dialog.html): fix capitalization in dialog title to improve readability and consistency
- 🐛 fix(add-index-dialog.html): fix capitalization of "index" in heading for better consistency
- 🐛 fix(drop-column-dialog.html): fix capitalization of "column" in button label for better consistency
- 🐛 fix(structure.component.html): fix capitalization of "index" in button label for better consistency
- 🐛 fix(structure.component.scss): remove unnecessary styling for app-cell component
- 🐛 fix(update-column-dialog.html): fix capitalization of "column" in heading for better consistency
- 🐛 fix(advanced.component.html): fix capitalization of "entire database" in button label for better consistency
- 🐛 fix(drop-database-dialog.html): fix capitalization of "database" in heading for better consistency
- 🐛 fix(diagram.component.html): fix capitalization of "tables" in button label for better consistency
- 🐛 fix(relations.component.html): fix capitalization of "update" and "delete" in span labels for better consistency
- 🎨 style(create-table-dialog): fix capitalization of table in heading for consistency and readability
- 🎨 style(create-table-dialog): fix capitalization of table in button label for consistency and readability
- 🎨 style(tables.component.scss): remove font-weight and letter-spacing from .mat-list-item for better readability
- 🎨 style(cell.component.scss): remove font-weight from .cell.component.scss for better readability
- 🎨 style(export-result-dialog): fix capitalization of results in heading for consistency and readability
- 🎨 style(update-data-dialog): fix capitalization of data in heading for consistency and readability
- 🎨 style(styles.scss): adjust background color and border color for better visibility
- 🎨 style(styles.scss): adjust letter-spacing and font-weight for better readability in ngx-monaco-editor
2023-11-12
- 🐛 fix(TODO.md): remove empty line at the end of the file
- ✨ feat(TODO.md): add new tasks for IA related work
- 🐛 fix(connection.component.html): change placeholder text to use lowercase for better consistency
- 🐛 fix(connection.component.ts): change snackbar message to use lowercase for better consistency
- 🐛 fix(edit-connection.component.ts): change snackbar messages to use lowercase for better consistency
- 🐛 fix(insert.component.ts): change snackbar message to use lowercase for better consistency
- 🐛 fix(query.component.ts): change snackbar message to use lowercase for better consistency
- 🐛 fix(structure.component.html): change placeholder text to use lowercase for better consistency
- 🐛 fix(structure.component.ts): fix capitalization of index and column names in snackbar messages for consistency and readability
- 🐛 fix(process-dialog.component.html): fix capitalization of search query placeholder for consistency and readability
- 🐛 fix(advanced.component.ts): fix capitalization of database name and collation in snackbar messages for consistency and readability
- 🐛 fix(ai.component.html): fix capitalization of search message placeholder for consistency and readability
- 🐛 fix(ai.component.scss): adjust max-width of host div to improve layout
- 🐛 fix(diagram.component.scss): adjust background color and blur effect to improve readability
- 🐛 fix(history.component.html): fix capitalization of search history placeholder for consistency and readability
- 🐛 fix(load.component.ts): fix capitalization of snackbar message for consistency and readability
- 🔧 fix(relations.component.html): fix placeholder text case to improve consistency and readability
- 🔧 fix(relations.component.ts): fix snackbar message case to improve consistency and readability
- 🔧 fix(version.component.html): fix placeholder text case to improve consistency and readability
- 🔧 fix(tables.component.html): fix placeholder text case to improve consistency and readability
- 🔧 fix(tables.component.scss): adjust font weight and letter spacing for better readability
- 🔧 fix(tables.component.ts): fix snackbar message case to improve consistency and readability
- 🔧 fix(logs-dialog.html): fix placeholder text case to improve consistency and readability
- 🔧 fix(styles.scss): adjust background color and blur filter for better visual appearance
- 🔧 fix(connection.component.html): reduce width of mat-form-field to 200px for better UI layout
- 🔧 fix(container.component.html): replace button element with a element for better accessibility and styling
- 🔧 fix(container.component.scss): increase width of mat-tab-link to 62px for better visibility
- 🔧 fix(ai.component.scss): adjust margin and width of buttons for better spacing and layout
- 🔧 fix(top-right.component.html): replace mat-button with mat-icon-button for better styling and consistency
- 🔧 fix(top-right.component.scss): add margin to host button for better spacing in responsive layout
- 🎨 style(stats-dialog.component.html): replace mat-form-field with mat-icon-button for pause/play button to improve UI consistency
- 🔨 refactor(stats-dialog.component.ts): replace refreshRate variable with pause variable to improve code readability and semantics
- 🎨 style(unreachable.component.scss): add align-items: center to center align content vertically
- 🎨 style(connection.component.html): refactor right-actions div to use CSS class for better readability and maintainability
- 🎨 style(connection.component.scss): adjust styles for better layout and responsiveness
- 🎨 style(stats-dialog.component.html): adjust margin-bottom for better alignment
- 🐛 fix(TODO.md): consolidate cloud and tls tasks into a single task for better organization
- ✨ feat(TODO.md): add task for ERD (Entity-Relationship Diagram) to document database structure
- ✨ feat(TODO.md): add task for testing create/update functions/procedure/check in IA module
- ✨ feat(TODO.md): add references to external resources related to IA tasks
- 🔧 chore(.env): remove unused LANDING_ADDR variable from .env file
- 🔧 chore(.env.production): remove unused LANDING_ADDR variable from .env.production file
- 🐛 fix(controller.js): fix typo in getDbLimit function call by passing the private key as an argument
- 🐛 fix(controller.js): fix typo in parseFromApi function name, change it to parseLicense
- 🔧 chore(controller.js): refactor parseLicense function to improve readability and error handling
- 🔧 chore(controller.js): refactor getPatchLimit and getDbLimit functions to use the parseLicense function
- 🔥 refactor(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
- 🔥 refactor(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
- 🔥 refactor(subscription): remove licence endpoint and related files
- 🔥 refactor(subscription): rename save and list endpoints to parse and parseFromApi respectively
- 🔥 refactor(subscription): remove software.js file
- 🔥 refactor(version): pass Privatekey header to getPatchLimit function in listPatch method
- 🔥 refactor(changelog.js): adjust styles for changelog display
- 🔧 fix(process-dialog.component.html): improve semantics by changing "Duration (sec)" to "Duration"
- 🔧 fix(process-dialog.component.html): update mat-form-field appearance to "legacy" for consistency
- 🔧 fix(process-dialog.component.html): adjust position of close dialog button for better alignment
- 🔧 fix(ai.component.ts): remove unnecessary parameter from Licence.get() function call
- 🔧 fix(config-dialog.component.html): update text to display default values for dbLimit and versions if not provided
- 🔧 fix(config-dialog.component.html): handle error case when licence is not available
- 🔧 fix(config-dialog.component.ts): remove unnecessary parameter from Licence.get() function call
- 🔧 fix(config-dialog.component.ts): extract loading licence and checking for updates into separate functions
- 🔧 fix(config-dialog.component.ts): handle error case when checking for updates
- ✨ feat(config-dialog.component.ts): add functionality to save email and register account
- ✨ feat(config-dialog.component.ts): display success message and reload server after saving email
- ✨ feat(config-dialog.component.ts): display error message and contact information if there is an error
- 🐛 fix(licence.ts): fix typo in variable name 'patchLimit' to 'versions' for better semantics
- ✨ feat(licence.ts): add support for parsing licence from private key using API endpoint
- ✨ feat(licence.ts): add support for adding licence based on email using API endpoint
- ✨ feat(licence.ts): add support for getting licence from cache or API endpoint
- ✨ feat(licence.ts): add support for periodic refresh of licence using setInterval
- 🔧 chore(environment.prod.ts): add landingApi URL for production environment
- 🔧 chore(environment.ts): add landingApi configuration to environment file for easier management of landing page API URL
- 🔧 chore(request.service.ts): add getLicenceHeader method to retrieve licence private key and set it as a header for requests
- 🐛 fix(request.service.ts): pass headers to http.post method when loading servers to include licence header for authentication
- 🐛 fix(unreachable.component.html): add missing style attribute to mat-stroked-button to set text color to white
2023-11-11
- 🔒 chore(subscription): update license keys in licence and software.js files to ensure security and prevent unauthorized access
- 🐛 fix(software.js): import CryptoJS from the correct package to fix reference error
- 🔒 chore(software.js): improve variable declaration and assignment for better readability and maintainability
- 🔒 chore(software.js): improve error handling and error messages for better debugging and user experience
- 🐛 fix(controller.js): fix import path for SoftwareLicenseKey module
- ✨ feat(controller.js): add support for validating software license keys using the SoftwareLicenseKey class
- 📦 chore(controller.js): add new software.js module for handling software license keys
- 🐛 fix(postgre.js): update error message for serverStats method to be more generic
- 🐛 fix(postgre.js): update error message for dropDatabase method to be more generic
- 🐛 fix(stats-dialog.component.html): fix margin-bottom value for mat-form-field element
- 🔧 fix(stats-dialog.component.ts): fix issue with chart labels not being updated correctly
- 🔧 fix(stats-dialog.component.ts): fix issue with chart labels not being updated correctly when the number of values is less than valSize
2023-11-10
- 🔧 chore(process-dialog.component.html): remove unnecessary div element and improve table styling
- 🔧 chore(stats-dialog.component.html): add refresh rate input field and improve button toggle group appearance
- 🔧 chore(stats-dialog.component.scss): remove unused styles
- 🔧 chore(stats-dialog.component.ts): add refreshRate property and update refreshData method to use it for setting the refresh interval
- 🎨 style(stats-dialog.component.html): increase font size of mat-button-toggle-group to improve readability
- 🎨 style(stats-dialog.component.html): increase width and height of mat-dialog-content to provide more space for the chart
- 🎨 style(stats-dialog.component.html): add border-radius, background-color, and box-shadow to canvas element to improve visual appearance
- 🎨 style(stats-dialog.component.scss): increase line-height of mat-button-toggle-label-content to improve readability
- 🐛 fix(stats-dialog.component.ts): fix type declaration of chart ViewChild to remove optional operator
- 🐛 fix(stats-dialog.component.ts): fix setActiveElements method call to remove optional operator
- 🐛 fix(TODO.md): remove unnecessary whitespace and fix formatting
- ✨ feat(TODO.md): add cloud integration task to display cloud providers in the landing page
- ✨ feat(TODO.md): add tls task to investigate and potentially implement TLS support
- ✨ feat(TODO.md): add ERD task to create an Entity-Relationship Diagram for the project
- ✨ feat(TODO.md): add sql function doc task to generate documentation from web scraping
- 🐛 fix(mongodb.js): update variable names and values to improve readability and semantics
- 🐛 fix(mysql.js): update variable names and values to improve readability and semantics
- 🐛 fix(edit-connection.component.html): update href link to point to the correct page
- 🐛 fix(stats-dialog.component.html): update checkbox to button toggle group and add different modes for displaying stats
- 🐛 fix(stats-dialog.component.ts): remove unused import of Chart from chart.js library
- 🐛 fix(stats-dialog.component.ts): remove unused property 'showLive' to improve code readability
- ✨ feat(stats-dialog.component.ts): add support for different modes of displaying data (raw, difference, sinceOpen) to provide more flexibility in data visualization
- 🐛 fix(unreachable.component.html): fix missing closing single quote in cdkCopyToClipboard directive to ensure correct command execution when copying to clipboard
2023-11-09
- 🐛 fix(controller.js): reduce the number of retained log and dump files to improve storage efficiency
- 🎨 style(connection.component.html): update icon in button to improve clarity and semantics
- 🐛 fix(stats-dialog.component.html): call refreshData() function when showLive checkbox is changed to ensure data is updated
2023-11-08
- 🔧 fix(connection.component.html): change SSH icon and add label for better clarity
- 🔧 fix(connection.component.scss): reduce width of .infos container to improve layout
- 🔧 fix(unreachable.component.html): update docker commands to include all containers, not just running ones
- 🐛 fix(changelog.js): fix formatting of changelog entries to display correctly in the HTML output
- ✨ feat(changelog.js): improve performance by filtering out short subjects and using a set to avoid duplicates
- 🐛 fix(changelog.js): add id attribute to the changelog div to improve CSS specificity
- 🐛 fix(version.component.scss): move ::ng-deep selector to the :host selector to improve encapsulation
- 🐛 fix(config-dialog.component.scss): move ::ng-deep selector to the :host selector to improve encapsulation
- 🐛 fix(column.component.html): add bold class to mat-option element to improve styling
- 🐛 fix(column.component.scss): add ::ng-deep selector to style mat-optgroup-label and mat-option elements
2023-11-07
- 🐛 fix(wrapper.js): convert className to lowercase before comparing to improve case-insensitive matching
- 🎨 style(ai.component.html): update button styles to use mat-flat-button and mat-stroked-button for consistency and better visual appearance
- 🔀 chore(ai.component.html): update option label from "Replaced value" to "Fake data" for clarity and accuracy
- 🔀 chore(ai.component.html): update button label from "delete_sweep" to "Clear chat" for better user understanding
- 🔧 chore(container.component.html): remove unused reload button to improve UI cleanliness
- ✨ feat(top-right.component.html): add reload button to allow users to manually reload the database
- 🔧 chore(top-right.component.html): rename "Logs" to "Backend Logs" for clarity
- 🔧 chore(top-right.component.ts): import RequestService and LoadingStatus for future use
2023-11-06
- 🐛 fix(connection.component.html): replace error message with app-unreachable component for better code organization and reusability
- 🐛 fix(container.component.html): replace error message with app-unreachable component for better code organization and reusability
- 🐛 fix(container.component.ts): remove unused import and showError method
- ✨ feat(shared.module.ts): add UnreachableComponent to SharedModule for reusability
- ✨ feat(unreachable.component.html, unreachable.component.scss, unreachable.component.ts): create UnreachableComponent to display error message and provide actions for unreachable backend
- 🐛 fix(mongodb.js): change the query property to include the description and the operation for better readability
- 🐛 fix(mysql.js): change the query property to include the state, command, and info for better understanding
- 🐛 fix(postgre.js): change the query property to include the backend type and concatenate it with the query for better clarity
- ✨ feat(process-dialog.component.html): add a new column for displaying the database name
- ✨ feat(process-dialog.component.scss): increase the width and height of the dialog and add padding to table cells for better visibility
- ✨ feat(process-dialog.component.ts): change the displayed columns to include the new 'db' column and reduce the refresh interval to 1 second
- 🐛 fix(TODO.md): remove unnecessary line 'seed + api + migrer email column'
- ✨ feat(mongodb.js): include namespace in the query field to provide more information about the operation
- ✨ feat(connection.component.ts): improve performance by loading servers asynchronously and sorting them by port number
- ✨ feat(container.component.ts): improve performance by loading server and database asynchronously and handling error cases
- ✨ feat(process-dialog.component.html): improve UX by adding search functionality for the query field
- ✨ feat(process-dialog.component.ts): improve performance by sorting the process list and adding search functionality for the query field
- ✨ feat(connection.component.html): improve UX by adding search functionality for the server and database fields
- ✨ feat(stats-dialog.component.html): add checkbox to toggle between foreground and background values
- ✨ feat(stats-dialog.component.ts): improve performance by triggering tooltip update only when necessary
- ✨ feat(tables.component.html): improve UX by adding search functionality for the table, column, and type fields
- ✨ feat(request.service.ts): improve performance by connecting servers asynchronously and loading servers asynchronously
- ✨ feat(update-data-dialog.html): improve UX by adding search functionality for the input fields
2023-11-05
- 🐛 fix(TODO.md): remove duplicate entries and reorganize the TODO list for better readability
- 🔧 refactor(controller.js): update the text message for database experts to provide more accurate answers
- 🔧 refactor(version.component.html): update placeholder text to reflect the correct search context
- 🔧 refactor(stats-dialog.component.ts): update dataset properties for better visualization
- 🔧 refactor(column.ts): improve validation logic for column types
- 🐛 fix(mongodb.js): fix typo in variable names to improve semantics and consistency
2023-11-04
- 🔧 fix(version.js): remove unused resetTo method parameter 'sha1' to improve code readability and maintainability
- 🔧 fix(version.js): comment out unused code block to improve code readability and maintainability
- 🐛 fix(TODO.md): remove unnecessary lines from TODO.md file
- 🐛 fix(controller.js): fix response to remove duplicate values in the array
- 🐛 fix(version.js): remove unused eslint-disable-next-line comment
- 🐛 fix(diagram.component.ts): add a check to skip iteration if table.columns is undefined
- 🐛 fix(TODO.md): add "select first tab" task to the TODO list
- 🐛 fix(connection.component.html): add conditional rendering for displaying a message when there are no servers with a specific status
- 🔧 chore(TODO.md): update TODO list
- 🐛 fix(controller.js): replace deprecated ssh-tunneling library with ssh2 library for SSH tunneling functionality
- ✨ feat(controller.js): add support for generating new SSH tunnels using the ssh2 library
- 🔧 chore(connection.component.html): update icons for Process and Stats buttons
- 🔧 chore(connection.component.ts): add finished() method to handle server edition completion
- 🔧 chore(edit-connection.component.html): update icons for Get id_rsa and Generate key buttons
- 🔧 chore(edit-connection.component.ts): emit edited event when connection is saved or forgotten
- 🔧 chore(top-right.component.html): update icons for Activity menu items
2023-11-03
- 🐛 fix(database/controller.js): remove unused stats method to improve code readability and maintainability
- 🐛 fix(database/route.js): remove unused stats route to improve code readability and maintainability
- 🐛 fix(process/controller.js): change process method to kill method to accurately reflect its functionality
- 🐛 fix(process/route.js): change serverCtrl to processCtrl to accurately reflect the controller being used
- ✨ feat(stats/controller.js): add dbSize, tableSize, and server methods to retrieve database, table, and server statistics
- ✨ feat(stats/route.js): add routes for dbSize, tableSize, and server statistics
- 🐛 fix(table/controller.js): remove unused stats method to improve code readability and maintainability
- 🐛 fix(table/route.js): remove unused stats route to improve code readability and maintainability
- 🐛 fix(wrapper/mongodb.js): change process method to kill method to accurately reflect its functionality
- 🐛 fix(wrapper/mysql.js): change process method to kill method to accurately reflect its functionality
- 🐛 fix(wrapper/postgre.js): change process method to kill method to accurately reflect its functionality
- ✨ feat(frontend): add kill button to process list table to allow killing of processes
- ✨ feat(frontend): add server stats dialog to display server statistics
- ✨ feat(frontend): add table stats dialog to display table statistics
- ✨ feat(frontend): add stats button to top-right component to open server stats dialog
- 🐛 fix(controller.js): remove duplicate code in kill method
- ✨ feat(controller.js): add new controller for process endpoint to handle process listing and killing
- ✨ feat(route.js): add new route for process endpoint to handle process listing and killing
- 🐛 fix(controller.js): remove unused process method
- 🐛 fix(route.js): remove unused process route
- 🐛 fix(mongodb.js): add duration property to the returned process list to display the duration of each process
- 🐛 fix(mysql.js): add duration property to the returned process list to display the duration of each process
- 🐛 fix(postgre.js): add duration property to the returned process list to display the duration of each process
- 🐛 fix(app.module.ts): remove unused imports and components
- 🐛 fix(activity.component.html): remove unused component
- 🐛 fix(activity.component.scss): remove unused styles
- 🐛 fix(activity.component.ts): remove unused component
- 🐛 fix(connection.component.html): remove unused checkbox for system DBs
- ✨ feat(connection.component.html): add buttons for process and stats dialogs
- ✨ feat(connection.component.ts): add methods to open process and stats dialogs
- ✨ feat(process-dialog.component.html): create process dialog component template
- ✨ feat(process-dialog.component.scss): create process dialog component styles
- ✨ feat(process-dialog.component.ts): create process dialog component logic
- ✨ feat(stats-dialog.component.html): create stats dialog component template
- ✨ feat(stats-dialog.component.scss): create stats dialog component styles
- ✨ feat(stats-dialog.component.ts): create stats dialog component logic
- ✨ feat(top-right.component.html): add menu items for process and stats dialogs
- ✨ feat(top-right.component.ts): add method to open process dialog
2023-11-02
- 🐛 fix(Dockerfile): remove unnecessary dependencies to optimize Docker image size
- 🐛 fix(controller.js): catch and log errors when processing driver
- ✨ feat(controller.js): store processed list in a variable for better readability and error handling
- ✨ feat(controller.js): add support for private key in SSH tunnel configuration
- ✨ feat(connection.component.html): add checkbox to toggle display of system databases
- ✨ feat(connection.component.ts): add systemDbs property to toggle display of system databases
- ✨ feat(edit-connection.component.html): add textarea for private key input and buttons to get and generate SSH key
- ✨ feat(edit-connection.component.scss): improve styling of SSH tunnel section
- ✨ feat(edit-connection.component.ts): add privateKey property to Server class and update SSH tunnel section logic
- ✨ feat(explore.component.scss): adjust styling for mat-chip-list-wrapper and mat-paginator-range-label
- ✨ feat(version.component.scss): adjust styling for removeGlyph, addGlyph, and glyph classes
- ✨ feat(config-dialog.component.scss): adjust styling for mat-tab-label and mat-card-header-text
- ✨ feat(cell.component.scss): adjust styling for ngx-json-viewer component
- ✨ feat(column.component.scss): adjust styling for mat-tooltip-trigger class
- 🐛 fix(controller.js): add missing process method to Controller class to handle /process endpoint
- ✨ feat(route.js): add /process route to server routes to handle process requests
- 🐛 fix(mongodb.js): add missing process method to MongoDB class to retrieve current operations
- 🐛 fix(mysql.js): add missing process method to MySQL class to retrieve current processes
- 🐛 fix(postgre.js): add missing process method to PostgreSQL class to retrieve current processes
- ✨ feat(app.module.ts): import MatTableModule to be able to use MatTable in the app
- ✨ feat(activity.component): create ActivityComponent to display current processes of a server
- ✨ feat(connection.component.scss): add media query to hide activity component on smaller screens
- 🐛 fix(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
- ✨ feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
- 🐛 fix(controller.js): update getDriver function to accept an additional test parameter to improve code readability and maintainability
- ✨ feat(controller.js): update establish function in MySQL class to accept additional database and test parameters to improve code flexibility and testability
- 🐛 fix(app.module.ts): remove unused AddConnectionDialog import and declaration
- ✨ feat(app.module.ts): add EditConnectionComponent import and declaration to enable editing of connection settings
- 🐛 fix(connection.component.html): remove unused AddConnectionDialog component and replace it with EditConnectionComponent
- ✨ feat(connection.component.html): add EditConnectionComponent to enable editing of connection settings
- 🐛 fix(connection.component.scss): remove unused styles
- ✨ feat(connection.component.ts): add EditConnectionComponent import and declaration to enable editing of connection settings
- 🐛 fix(edit-connection.component.html): remove unused code and fix button labels
- ✨ feat(edit-connection.component.html): add form fields and buttons for editing connection settings
- ✨ feat(edit-connection.component.scss): add styles for edit connection component
- ✨ feat(edit-connection.component.ts): add functionality for editing connection settings
2023-11-01
- 🐛 fix(TODO.md): remove unnecessary comments and whitespace
- ✨ feat(TODO.md): add support for generating new key pair in the front-end and add endpoint for generating a new key pair
- 🐛 fix(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
- ✨ feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
- 🐛 fix(app.module.ts): add missing import for MatCheckboxModule
- 🐛 fix(connection.component.html): remove unnecessary styles and fix checkbox alignment
- ✨ feat(connection.component.html): add checkbox to show/hide system databases
- 🐛 fix(connection.component.ts): remove unused addServer() method
- 📦 chore(controller.js): add file cleanup functionality to remove files exceeding specified size and number limits
- 📦 chore(route.js): create cron route to execute file cleanup controller
- 🐛 fix(route.js): remove comment line
- 🐛 fix(version.js): remove unused eslint-disable-next-line comment
- 🔥 chore(version.js): remove commented code
- 🔥 chore(id_rsa): remove id_rsa and id_rsa.pub files
2023-10-31
- 🐛 fix(TODO.md): add missing tasks for tls, cloud, and displaying in the landing page
- ✨ feat(server/controller.js): add space after "update" command in version.commandFinished to improve readability
- ✨ feat(index.js): add compression middleware to improve performance by compressing response data
- ✨ feat(version.js): add getPath method to improve code readability and reusability
- ✨ feat(version.js): add support for more commands in version.commandFinished to track changes in the database
- ✨ feat(container.component.ts): remove unused HostListener for keyboard event
- ✨ feat(load.component.html): improve UI by adding select button and file drop functionality
- ✨ feat(load.component.ts): improve UI by adding select button and file drop functionality
- ✨ feat(load.component.scss): improve UI by adjusting card layout and styling
- ✨ feat(version.component.ts): add check for selected database before refreshing data
2023-10-28
- 🐛 fix(changelog.js): remove HTML tags from commit subject to prevent rendering issues in the changelog
- 🔧 chore(.gitlab-ci.yml): update Node.js image to use node:alpine for smaller image size and faster builds
- 🔧 chore(TODO.md): remove unnecessary line breaks and consolidate multiple tasks into a single line for better readability
- 🔧 chore(back/src/shared/version.js): remove unused eslint-disable-next-line comments for better code cleanliness
- 🔧 chore(front/changelog.js): remove unused dependencies and simplify line break replacement for better code readability
- 🔧 chore(front/src/app/top-right/config/config-dialog.component.html): remove redundant Reddit link and add phone link for better contact options
2023-10-27
- 🐛 fix(version.js): comment out unused code in saveChanges method to improve code readability and maintainability
- 🐛 fix(relations.component.html): fix null assertion in routerLink to prevent potential null reference error
- 🐛 fix(sql.js): simplify the code for generating values in the insert method to improve readability and maintainability
- 🐛 fix(version.js): fix the slicing of the patches array to only include the last two patches
- 🐛 fix(version.js): shorten the diff output if it exceeds 100000 characters to prevent potential performance issues
- 🐛 fix(mysql.js): handle string values in the insert method by wrapping them in double quotes
- 🐛 fix(insert.component.html): change the button style from flat to stroked for consistency
- 🐛 fix(version.component.html): display a message when there are no patches available
2023-10-26
- 🐛 fix(sql.js): fix issue with inserting string values by adding double quotes around them
- 🐛 fix(helper.ts): remove trailing comma to fix syntax error in generated code
- 🐛 fix(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
- ✨ feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
- 🐛 fix(version.component.ts): fix loop interval to only run when the drawer is open
- ✨ feat(version.component.ts): add refreshData method to fetch and update the list of patches
- 🐛 fix(advanced.component.ts): only call loadExtraLib method if index is less than 1
- 🐛 fix(dump.component.ts): fix typo in class name
- ✨ feat(dump.component.ts): add support for including data in the dump and selecting the file type
- 🐛 fix(relations.component.ts): fix typo in class name
- ✨ feat(relations.component.ts): add refreshData method to fetch and update the list of relations
- 🐛 fix(helper.ts): remove unused file path from loadLibAsset function
2023-10-25
- 🐛 fix(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
- ✨ feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
- 🐛 fix(controller.js): change getLimit function name to getDbLimit to improve clarity
- 🐛 fix(controller.js): remove unnecessary condition to skip code execution in subscription controller
- 🐛 fix(controller.js): change getLimit function name to getPatchLimit to improve clarity
- 🐛 fix(licence): remove unused licence content
- 🐛 fix(controller.js): remove unused import in version controller
- 🐛 fix(route.js): remove unused import in version route
- 🐛 fix(version.js): remove unused import in version class
- 🐛 fix(changelog.js): remove unused import in changelog script
- 🐛 fix(container.component.ts): remove unused import in container component
- 🐛 fix(explore.component.ts): remove unused import in explore component
- 🐛 fix(query.component.ts): remove unused import in query component
- 🐛 fix(advanced.component.html): remove unused import in advanced component
- 🐛 fix(explore.component.html): remove unused import in explore component
- 🐛 fix(query.component.html): remove unused import in query component
- 🐛 fix(explore.component.ts): remove
2023-10-24
- 🔥 refactor(server.ts): remove unused import and update variable name for port to improve code readability
- ✨ feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
- 🔥 refactor(controller.js): remove unused file cleanup code
- 🔥 refactor(route.js): remove unused route file
- 🔥 refactor(controller.js): remove unused imports and update variable names for readability
- 🔥 refactor(version.js): remove unused imports and update variable names for readability
- 🔥 refactor(mongodb.js): remove unused imports and update variable names for readability
- 🔥 refactor(mysql.js): remove unused imports and update variable names for readability
- 🔥 refactor(postgre.js): remove unused imports and update variable names for readability
- 🔥 refactor(add-connection-dialog.html): update button label for clarity
- 🔥 refactor(connection.component.html): update error message for unreachable or bad credentials
- 🔥 refactor(connection.component.scss): update margin-top for connection component
- 🔥 refactor(connection.component.ts): remove unused variable and update filter logic
- 🔥 refactor(ai.component.html): update button label for clarity
- 🔥 refactor(history.component.html): update button label for clarity
- 🔥 refactor(version.component.html): update button label for clarity
- 🔥 refactor(version.component.ts): add filter functionality
- 🔥 refactor(tables.component.html): update button label for clarity
2023-10-23
- 🔥 refactor(controller.js): comment out unused imports and code in the list method to improve code readability and maintainability
- 🔥 refactor(controller.js): comment out unused code in the list method to improve code readability and maintainability
- 🔧 fix(connection.component.html): update button label from "Create Database" to "Create" for better clarity and brevity
- 🔧 fix(connection.component.ts): sort the connected servers by port number in ascending order to ensure consistent ordering
2023-10-22
- 🎨 style(connection.component.html): add fixed position and z-index to mat-toolbar for better visibility and usability
- 🐛 fix(connection.component.html): refactor ngFor loops to improve code readability and maintainability
- ✨ feat(connection.component.html): update server card layout and add support for different server statuses
- 🔧 chore(connection.component.html): remove unused code and imports
- 🔧 chore(connection.component.scss): remove unused styles
- 🔧 chore(connection.component.ts): remove unused code and imports
- 🔧 chore(version.component.html): remove commented out code and add placeholder comments
- 🐛 fix(TODO.md): remove unnecessary and outdated tasks from the TODO list
- ✨ feat(TODO.md): add new tasks related to versioning and database changes tracking
- 🐛 fix(controller.js): rename 'states' variable to 'versions' for better semantics
- ✨ feat(controller.js): add new 'version' endpoint to handle versioning of databases
- ✨ feat(route.js): add new route for 'version' endpoint
- ✨ feat(version.js): create new class 'Version' to handle database versioning and changes tracking
- 🐛 fix(mongodb.js): update import statement for 'State' to 'Version'
- 🐛 fix(mysql.js): update import statement for 'State' to 'Version'
- 🐛 fix(postgre.js): update import statement for 'State' to 'Version'
- ✨ feat(version): add new folder 'version' to store versioning related files
- 🐛 fix(container.component.ts): reorder panels to match the updated routing configuration
- 🐛 fix(query.component.html): update icon for the execute button
- 🐛 fix(right-routing.module.ts): reorder routes to match the updated panel order
- ✨ feat(right.module.ts): import and declare new 'VersionComponent'
- ✨ feat(version.component.html): add basic structure for the version component
- ✨ feat(version.component.ts): implement basic functionality for the version component
- ✨ feat(version.component.scss): add basic styling for the version component
2023-10-21
- 📝 chore(TODO.md): update TODO list with new tasks and remove completed tasks
- 🐛 fix(controller.js): remove unused variable 'cid' in FileCleanup class
- 🐛 fix(controller.js): return the number of files cleaned in checkAndCleanup method
- 🐛 fix(state.js): rename saveState method to saveChanges for better semantics
- 🐛 fix(add-connection-dialog.html): add max-width and flex-wrap styles to driver selection div for better layout
- 🐛 fix(connection.component.scss): adjust styles for driver selection div and servers div for better layout
- 🐛 fix(explore.component.html): add refreshData() method to selectionChange and page events for immediate data refresh
- 🐛 fix(explore.component.ts): remove navigateWithParams method and directly call refreshData method in changePage and addChips methods
- 🐛 fix(explore.component.ts): add async/await to addChips and removeChips methods to ensure data is refreshed after chips are added or removed
- 🔧 chore(angular.json): update output path for monaco-editor assets to improve file structure and organization
- 🔧 chore(Dockerfile): use --purge flag when deleting packages to remove all associated files and improve cleanup process
- 🔧 chore(Dockerfile): remove unnecessary files and directories after package deletion to reduce image size and improve performance
- 🔇 refactor(state.js): remove unreachable code and unnecessary return statements to improve code readability and maintainability
- 🔧 fix(explore.component.html): fix typo in ngModel binding for sort field select element
- 🔧 fix(explore.component.html): add event listener to selectionChange event in sort field select element to trigger navigation with params
- 🔧 fix(explore.component.html): remove unnecessary queryParams and routerLink bindings in sort field select element options
- 🔧 fix(explore.component.html): add event listener to change event in sort direction button toggle group to trigger navigation with params
- 🔧 fix(explore.component.ts): change sortField property to field in params object to match changes in HTML template
- 🔧 fix(explore.component.ts): change sortDirection property to direction in params object to match changes in HTML template
- 🔧 fix(explore.component.ts): change sortField property to field in queryParams subscription to match changes in HTML template
- 🔧 fix(explore.component.ts): change sortDirection property to direction in queryParams subscription to match changes in HTML template
- 🔧 fix(explore.component.ts): change sortField property to field in navigateWithParams method to match changes in HTML template
- 🔧 fix(explore.component.ts): change sortDirection property to direction in navigateWithParams method to match changes in HTML template
- 🔧 fix(explore.component.ts): change sortField property to field in getQueryData method to match changes in HTML template
- 🔧 fix(explore.component.ts): change sortDirection property to direction in getQueryData method to match changes in HTML template
2023-10-20
- 📦 chore(docker): add .dockerignore file to exclude node_modules directory from Docker build context
- 🐳 chore(docker): update Dockerfile to use pnpm package manager instead of npm for faster and more efficient dependency installation
- 🔧 chore(docker): update Dockerfile entrypoint command to redirect stderr to a log file for better error logging and troubleshooting
- 🐛 fix(changelog.js): skip commit messages with less than 10 characters to avoid displaying empty list items
- ✨ feat(changelog.js): add support for rendering commit messages as markdown and emojifying them to improve readability in the changelog
- 🔧 chore(.gitlab-ci.yml): update Node.js version in prepare stage to use node:20-alpine image for consistency and compatibility
- 🚀 feat(.gitlab-ci.yml): copy common-helper.js to front and back shared directories to ensure consistency and reusability
- 🔧 chore(.gitlab-ci.yml): remove unnecessary copy command for common-helper.js in the back directory
- 🔧 chore(.gitlab-ci.yml): add step to generate changelog.html file after building front-end
2023-10-19
- feat(top-right.component.scss): add media query to hide top-right component when screen width is less than or equal to 1200px
- fix(mysql.js): update the port range in the scan method from 3300-3310 to 3300-3320 to include the additional port
2023-09-29
- 🔀 Chore: Update .gitlab-ci.yml and README.md
- - Updated the `.gitlab-ci.yml` file to modify the docker build command.
- - Updated the `README.md` file with minor changes.
- The changes were made to improve the Docker build process in the CI/CD pipeline and to update the README with minor fixes.
- fix(configuration.ts): remove unused configuration option 'useNameDel' to improve code clarity and maintainability fix(driver.ts): remove unused property 'nameDel' from Driver interface to improve code clarity and maintainability fix(mongodb.ts): remove usage of 'useNameDel' configuration option in MongoDB driver to improve code clarity and maintainability fix(mysql.ts): remove usage of 'useNameDel' configuration option in MySQL driver to improve code clarity and maintainability fix(sql.ts): remove usage of 'useNameDel' configuration option in SQL driver and add a new method 'wrapStructure' to handle wrapping table and column names in appropriate delimiters
- fix(controller.js): remove unnecessary code for handling Buffer columns, as it is not needed anymore fix(bash.js): replace deprecated BSON.UUID.generate() with randomUUID() to generate command id fix(sql.js): fix condition for checking column default value in SQL class feat(column.ts): add static method isOfGroups() to check if a column belongs to a specific group in a driver feat(cell.component.html): add support for downloading and previewing blob values in cell component feat(cell.component.ts): add logic to handle blob values in cell component and enable downloading feat(export-result-dialog.ts): filter out blob columns when exporting result in export result dialog feat(update-data-dialog.ts): filter out blob columns when updating data in update data dialog
2023-09-28
- Prepare cockroachdb Improve logs system with pending to stdout
2023-09-23
- chore(README.md): remove unnecessary bullet points and fix formatting fix(controller.js): improve wording and formatting in the sample function response fix(ai.component.html): remove unnecessary tooltip and fix formatting
- feat(README.md): add exclusive feature docker.hub + gitlab wiki + title landing + features to the project's README file
- fix(database/controller.js): improve the response message in the sample endpoint by providing more context and instructions
- fix(connection.component.ts): remove unused import of Router in the connection component
- fix(ai.component.html): reorganize and add a button to clear the conversation in the AI component
- fix(ai.component.html): remove unnecessary mat-divider in the settings section of the AI component
- fix(ai.component.html): add expansion panel for customizing prompt in the AI component
- fix(ai.component.scss): adjust padding in the AI component
- fix(ai.component.ts): add editorOptions for the ngx-monaco-editor in the AI component
- fix(ai.component.ts): add abort functionality to stop the AI conversation in the AI component
- fix(ai.component.ts): remove unused import of ActivatedRoute in the AI component
- fix(ai.component.ts): add alternative() method to send the last user message as an alternative prompt in the AI component
- fix(load.component.html): add a label for the file name input in the load component
- fix(load.component.scss): hide the text in the mat-card-header of the load component
2023-09-22
- fix(front): fix import statement for commonHelper in sql.ts to improve code readability fix(front): fix function name in extractForView method in sql.ts to improve code readability fix(front): fix function name in extractConditionParams method in sql.ts to improve code readability
2023-09-21
- fix(.gitlab-ci.yml): update changeLog.sh command to generate changelog.html with a specific commit hash to ensure accurate changelog generation chore(README.md): remove unnecessary lines and fix formatting fix(front): remove unnecessary content from changelog.html file feat(front): update config-dialog.component.html to display version information and check for updates feat(front): update config-dialog.component.ts to fetch changelog.html from local and remote sources and determine if app is up to date
- ✨✏️ chore(package): remove unnecessary "GIT_STRATEGY" variable
- The "GIT_STRATEGY" variable is not needed in the GitLab CI configuration.
- Removing it to simplify the configuration.
- This change is done to improve the simplicity and clarity of the GitLab CI configuration file by removing unnecessary variables that are not being used.
- fix(changeLog.sh): fetch the commit from origin before generating the changelog to ensure the latest changes are included
- chore(.gitlab-ci.yml): set GIT_STRATEGY to clone to ensure a fresh clone of the repository for each job chore(.gitlab-ci.yml): update IMAGE_PATH variable to use CI_COMMIT_REF_NAME for the image tag chore(README.md): remove unnecessary lines and fix formatting feat(README.md): add information about distributing the app on the store using Docker feat(front): add support for autoupdate functionality feat(front): add search functionality in the application fix(changeLog.sh): remove unnecessary git fetch command feat(front): add changelog.html file to display commit history in the application
- chore(README.md): remove unnecessary lines and fix formatting feat(electron): add electron main.js and preload.js files fix(package.json): update main script to point to electron/main.js fix(index.js): export the app.listen function to be able to close the server when quitting Electron style(container.component.scss): update media query max-width value to 1200px
- fix(controller.js): add condition to anonymize table data based on preSent.anonymize value feat(controller.js): add support for anonymizing table data by swapping values or replacing with value type feat(ai.component.html): add mat-select for selecting anonymize level and update preSent.anonymize value accordingly feat(ai.component.html): add mat-slider for selecting rows count and update preSent.count value accordingly feat(ai.component.html): add mat-slider for selecting deep level and update preSent.deep value accordingly feat(ai.component.ts): add preSent.anonymize property to preSent object and initialize it with 0 feat(ai.component.ts): update initChat method to retrieve chat history from local storage feat(ai.component.ts): update saveChat method to save chat history to local storage
2023-09-20
- recycle: Refactor changeLog.sh script
- Refactored the `changeLog.sh` script to improve readability and optimize
- the code. Removed unnecessary check for commit hash argument and
- rearranged the code for better flow. Also, added regex pattern to match
- commit subjects. The refactoring will make the script more maintainable
- ✨ feat(gitlab-ci.yml): add git package for changelog creation
- Add git package to the before_script section of the eslint job in .gitlab-ci.yml. This change ensures that the changelog creation process can use the git command.
- The git command is required to fetch the commit information and generate the changelog.html file. By adding the git package, we provide the necessary dependency for running the changelog creation script.
- fix(Dockerfile): fix the path of the changelog.html file to be copied to the dist/webdb directory
- chore(.gitlab-ci.yml): update changeLog.sh command to generate changelog.html in the correct directory fix(Dockerfile): copy changelog.html to the correct directory in the Docker image fix(back/package.json): modify start script to respawn WebDB if it crashes with an exit code
- chore(.gitlab-ci.yml): add bash package installation step to before_script in eslint job chore(.gitlab-ci.yml): update changeLog.sh command to use CI_COMMIT_SHORT_SHA as argument to generate changelog.html
- bookmark: .gitlab-ci.yml: Fix command in before_script
- The command in the before_script section of the eslint job was fixed to correctly generate the changelog.html file. Previously, the bash command was missing, causing the script to fail.
- These changes were done to ensure that the changelog.html file is generated correctly during the CI/CD process.
- fix(.gitlab-ci.yml): change the command to execute the changeLog.sh script in the eslint job to use bash instead of ls -la to generate the changelog.html file
- fix(.gitlab-ci.yml): add 'ls -la' command before running changeLog.sh script to debug file permissions issue
- chore(.gitlab-ci.yml): add step to generate changelog file during before_script
- fix(Dockerfile): remove unnecessary apk update and apk add commands
- chore(front/package.json): remove changelog script and updateLibs script to simplify build process
- chore(Dockerfile): add bash package to improve shell functionality in the container
- chore(front): update package.json scripts to use bash explicitly for shell scripts
- The package.json file in the front directory has been updated to use the `bash` command explicitly for running shell scripts. This change ensures that the scripts are executed using the correct shell environment. The following scripts have been updated:
- - `changelog` script now uses `bash` command to execute the `changeLog.sh` script.
- - `updateLibs` script now uses `bash` command to execute the `extraLibs.sh` script.
- This change improves the reliability and portability of the scripts.
- chore(Dockerfile): change base image from node:lts to node:lts-alpine to reduce image size and improve security
- chore(Dockerfile): add git package to the Docker image to enable version control functionality chore(Dockerfile): update system packages before installing git package to ensure latest versions are used
- chore(Dockerfile): move 'pnpm run changelog' command before 'pnpm run build' to generate changelog before building the app image fix(changeLog.sh): fetch the latest changes from the remote repository before generating the changelog to include the latest commits
- chore(package.json): remove respawn logic from start script to simplify the script and improve maintainability
- feat(front): add changelog functionality to display commit history in the application
- - Add a new script in package.json to generate a changelog HTML file using the changeLog.sh script
- - Modify app.module.ts to import the ChangelogDialog component and add it to the declarations
- - Add a new changelog-dialog.html file to define the dialog content for displaying the changelog
- - Modify top-right.component.html to add a button for opening the changelog dialog
- - Modify top-right.component.ts to add a changelog() method that opens the ChangelogDialog component and fetches the changelog HTML content from the server using HttpClient
- The changelog functionality allows users to view the commit history of the application within the application itself.
- docs(README.md): remove unnecessary lines and add useful links for reference
- The unnecessary lines that were removed were related to generating a full changelog from app logs, changelog public, AI, and a link from version(#sha1). These lines were not relevant to the README file.
- The useful links that were added are:
- - https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/#use--lookup-with-an-array
- - ERD (Entity-Relationship Diagram)
- This change was made to improve the clarity and usefulness of the README file.
- The commit.sh file is being deleted from the repository. The script was no longer needed and its functionality was replaced with other tools. Deleting it will simplify the codebase and remove unnecessary files.
- ✨ Add 'load' icon to menu item in ContainerComponent
- Updated the ContainerComponent to include the 'load' icon for the menu item. Previously, the icon was 'exit_to_app', but it has now been changed to 'input' to better represent the functionality.
- 🛠 Update icon in InsertComponent
- Modified the icon in the InsertComponent from 'menu_book' to 'dictionary'. This change improves the clarity and consistency of the symbol used.
- 📚 Update icon in TopRightComponent
- Replaced the icon in the TopRightComponent from 'menu_book' to 'dictionary' to ensure consistency throughout the application.
- The changes were made to improve the visual representation and maintain consistency within the application's user interface.
2023-09-18
- sparkles: Add commit.sh script
- This commit adds the commit.sh script, which is a bash script responsible for generating commit messages based on the patch content. The purpose of this script is to automate the process of converting patch files into clean and comprehensive commit messages.
- recycle: Refactor README.md, top-right.component.html, and helper.ts
- - Refactored the README.md file to remove unused sections and rearrange the content for better readability.
- - Updated the top-right component HTML file to use proper syntax for conditionals.
- - Refactored the `isSQL` function in the helper.ts file to return `undefined` if no server is selected.
- These changes were done to improve the code readability and maintainability, remove unnecessary sections, and ensure proper syntax usage.
2023-09-17
- 🚀 front/top-right: Add box shadow to logs-dialog
- The logs-dialog in the top-right section now has a box shadow for better visual distinction. This improves the user experience by providing a clear separation between the logs and other elements on the page.
- ✨ feat: Update connection component and server class
- - Update connection component to display a different icon and text for stored servers.
- - Update server class to set server name using the user instead of the wrapper.
- The connection component in the front/src/app/connection/connection.component.ts file was updated to display a different icon and text for stored servers. If a server is stored, the icon and text will indicate "Bad credentials" using the signal_wifi_bad icon. If the server is not stored, the icon and text will indicate "Discovered" using the network_wifi_1_bar_locked icon. This change improves the visual representation of the server's status.
- The server class in the front/src/classes/server.ts file was updated to set the server name using the user instead of the wrapper. The server name format was changed from `[wrapper] host:port` to `user@host:port`. This change provides a more meaningful and informative server name.
- These changes enhance the functionality and user experience of the connection feature in the application.
- art: Improve UI layout and styling in create-database-dialog and logs-dialog templates
- - Add left and right padding to the mat-form-field in `create-database-dialog.html` to improve the appearance and spacing.
- - Adjust the style of the mat-form-field in `logs-dialog.html` to have a flexible width and remove the margin at the bottom.
- The changes were made to enhance the user experience and improve the visual consistency of the application.
- ✨ feat(connection): update add-connection-dialog.html
- - Add Flex layout for driver selection
- - Change mat-raised-button to mat-flat-button for Compatibility List link
- - Change mat-stroked-button to mat-icon-button for Next and Previous buttons
- - Use different icons for the Next, Previous, Skip buttons
- - Adjust margins and styles for better visual display
- These changes were made to improve the user interface and make the driver selection, navigation buttons, and links more visually consistent and intuitive.
- 🚀 feat: Implement basicSort function in the SQL driver
- - Modified the `basicSort` function in the SQL driver to add the ORDER BY clause to the query.
- - The function takes the existing query string, the field to sort by, and the direction of the sorting ('asc' or 'desc').
- - The function appends the ORDER BY clause to the query with the specified field and direction.
- - This change was made to enable sorting of query results in the SQL driver.
- art: Remove unnecessary postgre default db line in README.md
- The patch removes an unnecessary line in the README.md file related to the default database for PostgreSQL. This line is not relevant to the project and is therefore removed to improve the clarity and accuracy of the README.
- The changes were made to clean up the README file and remove unnecessary information that is not relevant to the project.
2023-09-16
- recycle: Refactor: improve PostgreSQL connection configuration
- The PostgreSQL wrapper's connection configuration code for creating a new
- `Pool` object has been refactored to simplify the logic. The `creds` object
- now includes the `database` property directly when it is provided as an
- argument, or defaults to "postgres" if not provided. This change improves
- the readability and maintainability of the code.
- 😋 Changes made to improve the PostgreSQL connection configuration in the wrapper to make it more readable and maintainable. The `database` property is now included directly in the `creds` object, simplifying the logic.
- ✨ **.gitlab-ci.yml**: Remove unnecessary GitLab CI script
- This commit removes the unnecessary GitLab CI script in the `.gitlab-ci.yml` file. The script was using `git rev-list` to update the `PACKAGE_VERSION`, but it is no longer needed.
- 📝 **README.md**: Update project description
- This commit updates the project description in the `README.md` file. It adds a bullet point for the purpose of testing the GitLab Docker fullstack and unit testing the open source with different versions of the database.
- 🔧 **front/src/app/connection/connection.component.html**: Update GitLab issue link
- This commit updates the GitLab issue link in the `connection.component.html` file. The link was pointing to the wrong GitLab project, so it is now corrected to the correct project URL.
- 🔧 **front/src/app/core/insert/insert.component.html**: Update GitLab wiki link
- This commit updates the GitLab wiki link in the `insert.component.html` file. The link was pointing to the wrong GitLab project, so it is now corrected to the correct project URL.
- 🔧 **front/src/app/top-right/logs-dialog.html**: Update GitLab issue link
- This commit updates the GitLab issue link in the `logs-dialog.html` file. The link was pointing to the wrong GitLab project, so it is now corrected to the correct project URL.
- 🔧 **front/src/app/top-right/top-right.component.html**: Update GitLab links
- This commit updates the GitLab links in the `top-right.component.html` file. The links were pointing to the wrong GitLab project, so they are now corrected to the correct project URLs.
- recycle: Refactor: Update versioning in .gitlab-ci.yml
- This commit updates the versioning in the .gitlab-ci.yml file.
- - Changed the command to retrieve the commit count from the `origin/$CI_COMMIT_BRANCH` branch
- - Updated the sed command to replace PACKAGE_VERSION with `$CI_COMMIT_BRANCH-$(git rev-list --count origin/$CI_COMMIT_BRANCH)` in **/package.json file
- The changes were made to ensure that the correct version number is used in the CI pipeline.
- ✨ ✨ Fix GitLab CI configuration
- The GitLab CI configuration file is updated to fix the command for printing the number of commits in the current branch. The command will now correctly display the count of HEAD commits.
- This fix ensures that the CI pipeline accurately reflects the number of commits in the current branch and allows for correct versioning in the package.json file.
- The commit addresses the issue of incorrect commit count in the CI pipeline and ensures accurate versioning.
- Update package version in .gitlab-ci.yml
- The package version in the .gitlab-ci.yml file is being updated to use the branch name followed by the count of commits in the branch. This change is necessary to ensure that the correct version is used during deployment. The update is made using the sed command and the git rev-list --count HEAD command.
- hammer: Fix sed command in .gitlab-ci.yml
- The sed command in the .gitlab-ci.yml file was corrected to replace the PACKAGE_VERSION with the correct branch name and the count of commits in that branch. This fix was necessary to ensure the version is correctly updated in the package.json file for each branch.
- Why: This change is done to ensure that the correct version is displayed in the package.json file when the CI pipeline is run for different branches.
- 🐛 Fix: add gitlab-ci configuration for git package version
- Added the necessary configuration in `.gitlab-ci.yml` file to install `git` package before running `eslint` job. This change was made to ensure that the `sed` command in `before_script` could function properly, as it requires `git` to retrieve the package version.
- The `before_script` in the `.gitlab-ci.yml` file needed to install the `git` package so that the `sed` command could replace the `PACKAGE_VERSION` placeholder in the `package.json` file. This change was necessary for the proper functioning of the CI/CD pipeline.
- 🚀.gitlab-ci.yml: Update PACKAGE_VERSION sed command
- - Modified the sed command in the `.gitlab-ci.yml` file to update the `PACKAGE_VERSION` in the `package.json` file.
- - The sed command now replaces `PACKAGE_VERSION` with `$CI_COMMIT_BRANCH-$(git rev-list --count HEAD)` in all `package.json` files.
- - This change was made to dynamically update the version number in the package.json file based on CI commit branch and commit count.
- 📖README.md: Update project list and add links
- - Updated the project list in the `README.md` file.
- - Added new links related to MongoDB aggregation lookup, ERD, and Electron.js.
- - The purpose of this change is to provide more information and resources to users and make the README.md file more informative.
- ⚙️docker-compose.yml: Rearrange and update services
- - Rearranged the services in the `docker-compose.yml` file for better readability.
- - Updated and removed some services by commenting or deleting them.
- - Added new services like `mariadb`, `phpmyadmin`, and `pgadmin`.
- - The goal of this change is to organize and update the Docker services used in the project.
- 🔧front/src/app/top-right/config/config-dialog.component.html: Update version display
- - Modified the version display in the `config-dialog.component.html` file.
- - Changed the text from "Beta v{{packageJson.version}}" to "Version {{packageJson.version}}".
- - This change was made to present the correct version number in the user interface.
- Overall, these changes were made to improve the project's functionality, update dependencies, and enhance the user experience.
2023-09-15
- ✨✨✨ Fixed the ConnectionComponent in the front/src/app/connection/connection.component.ts file to remove the unused dependency on the Router module. The Router module was imported but not used in the component. This commit removes the unnecessary import to optimize the code.
2023-09-14
- ✨ README.md: refactor: Harmonize column types with array > 2
- Refactor the column types in the README.md file to harmonize them when they
- contain arrays with more than 2 elements. This is necessary to maintain
- consistency and avoid issues when using the aggregation lookup operator with
- an array. The change was made to ensure reliable functionality and improve
- 🔨 back/src/wrapper/postgre.js: refactor: Update object and array columns
- Refactor the `insert` method in the `postgre.js` file to update the handling of
- object and array columns. Instead of wrapping the values in quotes, the method
- now converts the objects and arrays to strings using `JSON.stringify()`. This
- change ensures that the values are stored correctly in the database.
- This change was made to improve the compatibility and consistency of the
- insertion process in PostgreSQL.
- 🔨 front/src/app/core/insert/insert.component.html: update: Add stringify attribute
- Add the `stringify` attribute to the app-cell component in the
- insert.component.html file. This attribute is used to determine whether to
- stringify the value before displaying it. The change ensures that object and
- array values are properly displayed in the insert component.
- This change was made to improve the user experience and ensure the correct
- rendering of complex values in the insert component.
- 🔨 front/src/app/core/insert/insert.component.ts: refactor: Remove redundant code
- Remove the redundant code that was stringifying the random generated value in
- the insert.component.ts file. The value is already stringified in the
- postgre.js file, so the additional `JSON.stringify()` call is unnecessary.
- This change was made to simplify the code and improve performance.
- 🔨 front/src/app/tables/tables.component.html: update: Change placeholder text
- Change the placeholder text in the tables.component.html file to include the
- "Type" keyword in addition to "Table" and "Column". This change provides
- clarification and improves the usability of the search feature.
- This change was made to enhance the user experience and make the search more
- 🔨 front/src/app/tables/tables.component.ts: refactor: Apply search to column types
- Update the search functionality in the tables.component.ts file to include the
- column types in the search. Previously, only the table names and column names
- were considered in the search. With this change, the search now includes the
- column types as well, providing more comprehensive results.
- This change was made to improve the search functionality and make it more
- recycle: Refactor: Clean up commit messages
- Clean up the commit messages by following the conventional commit convention.
- The changes were made to improve the readability and maintainability of the codebase.
2023-09-13
- art: **README**: Update multiple sections in the README file
- - Update the list of schemas with new references and information.
- - Add a new link for MongoDB documentation.
- - Remove unnecessary "Finir EDR".
- The changes are done to improve the clarity and completeness of the README file, providing more information and resources for users.
- art: Rearrange MongoDB wrapper code
- The MongoDB wrapper code in `back/src/wrapper/mongodb.js` was reorganized for better readability and maintainability.
- The unnecessary code in `back/src/wrapper/mongodb.js` was removed to improve the efficiency and performance of the application.
- The MongoDB driver code in `front/src/drivers/mongodb.ts` was updated to use the correct symbol for matching regex and searching text in queries.
- The unused code in `front/src/app/connection/connection.component.html` was removed as it was not being used in the application.
- - Refactor the front-end code in several files to improve readability and maintainability.
- - Update the core-routing.module.ts file to add a new route for the "insert" component that accepts a JSON object as a parameter.
- - Update the explore.component.html file to add a "Duplicate" option in the context menu that duplicates selected rows.
- - Update the explore.component.ts file to handle the duplication of rows when the "Duplicate" option is selected.
- - Update the insert.component.html file to remove an unnecessary parameter in the "generate" function call.
- - Update the insert.component.ts file to handle navigating to the "insert" component with a JSON parameter when the "Duplicate" option is selected.
- - Update the query.component.ts file to navigate to the "query" component with the query parameter when the "interval" is triggered.
- The changes were made to improve the functionality and user experience of the application. The additions of the new route and the "Duplicate" option allow users to easily duplicate selected rows in the explore section.
- Updating the `createTable` method in `mongodb.js` to create a new table with the specified name in the given database. The method inserts a new row into the table with the default values for each column.
- ♻️ Refactor table creation dialog
- In the `create-table-dialog.html` file, updated the title of the dialog to display the name of the selected database. This provides better context to the user when creating a new table.
- 🎨 Improve column component layout
- In the `column.component.html` file, refactored the layout of the column component. Moved the default value field and extras field to separate divs for better organization and styling.
- 🐛 Fix default value and extras fields
- In the `column.ts` file, fixed the default value and extras fields to handle correct form control values. Updated the FormControl creation to correctly handle nullable and default value properties.
- ♻️ Refactor shared module imports
- In the `shared.module.ts` file, refactored the imports for the shared module to be more readable and organized. Added the missing `MatDividerModule` import to allow for the use of dividers in the UI.
2023-09-12
- ✨ Added addTable functionality to README.md
- ✨ Added feature: 💾 Back-end: Modified MongoDB `modifyColumn` method
- The `modifyColumn` method of the MongoDB class in the Back-end was modified.
- - A check is made to see if the name of the column being modified is different from the old name. If it is different, the column name in the MongoDB collection is renamed using the `$rename` operator.
- - Then, another check is made to see if the type of the column being modified is different from the old type. If it is different, the MongoDB collection is fetched, and for each row, the value of the column is wrapped using the `wrapValue` method and the new column name (to maintain consistency) and updated in the collection using the `$set` operator with `updateOne`.
- To ensure that column modifications in the MongoDB collection are carried out correctly, the `modifyColumn` method was updated to handle both column name changes and column type changes.
2023-09-11
- art: Remove unnecessary attribute in container.component.html
- The "matTooltip" attribute was removed from the button element in the container component. This was done to improve the code and remove unnecessary tooltips on the button.
- ♻️ Refactor explore.component.html
- Refactored the explore.component.html file to improve code readability and maintainability. Removed the unnecessary "hidePageSize" attribute from the mat-paginator element and added the [pageSizeOptions] attribute with an array of available page sizes.
- ♻️ Refactor explore.component.ts
- Refactored the explore.component.ts file to improve code readability and maintainability. Updated the pageSize assignment from the configuration file to a hardcoded value of 50.
- 🎨 Remove unnecessary attribute in insert.component.ts
- The "found" variable was removed from the sampleData method in the insert.component.ts file. This variable was not being used and was unnecessary.
- 🎨 Remove unnecessary attribute in query.component.html
- The "pageSize" attribute was removed from the mat-paginator element in the query.component.html file. This attribute was not needed as the [pageSize] attribute already sets the default page size.
- ♻️ Refactor query.component.ts
- Refactored the query.component.ts file to improve code readability and maintainability. Updated the pageSize assignment from the configuration file to a hardcoded value of 50.
- Refactored the logs-dialog.html file to improve code readability and maintainability. Removed the unnecessary mat-progress-bar element and added a ViewChild reference to the scroll container.
- ♻️ Refactor top-right.component.ts
- Refactored the top-right.component.ts file to improve code readability and maintainability. Added a ViewChild decorator to get a reference to the scroll container and added a new ngOnInit method to scroll to the bottom of the container after loading the logs.
- ♻️ Refactor column.component.html
- Refactored the column.component.html file to improve code readability and maintainability. Removed the unnecessary mat-card-header elements and added the mat-form-field elements directly inside the mat-card-content elements for both the old and formColumn controls.
- Refactored the styles.scss file to improve code readability and maintainability. Made various styling adjustments to the mat-paginator, mat-paginator-container, and mat-paginator-range-label elements to align the page size dropdown on the right side and update the font size and alignment of the range label.
2023-09-10
- 🎨 Refactor: Remove unnecessary styles in config-dialog.component.scss
- - Removed the unused styles in the config-dialog.component.scss file.
- - The styles were not being used, so they were deemed unnecessary and removed to improve the codebase.
- 🔧 Fix: Apply bold class to column.component.html
- - Updated the column.component.html file to apply the "bold" class instead of setting the color style directly.
- - The change improves the maintainability and readability of the codebase by separating the styling logic into a CSS class instead of inline styles.
- sparkles: Add MongoDB wrapValue method
- The `wrapValue` method is added to the `MongoDB` class in the `mongodb.js` file. This method wraps the value based on its type using the `bson` library. If the type is not found in `bson`, it tries to create a new instance of the global type. The purpose of this change is to provide a wrapper for values to be used in the `addColumns` method.
- 🛠 Refactor mongo_wrapValue function
- The `mongo_wrapValue` function in the `common-helper.mjs` file is refactored and removed. Instead, the `wrapValue` method in the `MongoDB` class is used to handle the wrapping of values.
- ♻️ Refactor modifyColumn method
- The `modifyColumn` method in the `MongoDB` class is refactored in the `mongodb.js` file. The code that checks if code evaluation is disabled by the backend configuration is removed. This change is done because the check for code evaluation is not necessary in this method.
- 🐛 Fix incorrect ObjectId value in MongoDB driver
- The `ObjectId` value in the MongoDB driver is corrected to "ObjectId" instead of "ObjectID" in the `mongodb.ts` file. This change ensures that the correct value is used for wrapping ObjectId values in the `wrapValue` method.
- 🛠 Refactor type validation in Column class
- The `getFormGroup` method in the `Column` class is refactored in the `column.ts` file. A new validation rule `typeUnknown` is added to check if the type of a column is known. This ensures that only valid types are entered for columns.
- 💄 Update column type button style
- The style of the column type button is updated in the `column.component.html` file. The button is changed from a raised button to a stroked button to match the design.
- ✨ Add commonHelper utility in ColumnComponent
- The `commonHelper` utility function is added to the `ColumnComponent` class in the `column.component.ts` file. This utility function is used to check if a type is nested.
- The changes were made to improve code readability, to fix a typo in the MongoDB driver, and to enhance the validation of column types.
- art: Update logs-dialog.html and top-right.component.html
- - Refactored the logs-dialog.html and top-right.component.html files.
- - Updated the appearance and styling of the search field.
- - Added a clear button to the search field for clearing the filter.
- - Added a button to toggle auto-refresh of data in the logs.
- - Changed the position of the progress bar to be absolute.
- - Added a link to send a bug report for the 'err.log' file.
- - Made minor changes to improve code readability and functionality.
- These changes were made to improve the user experience and enhance the functionality of the logs dialog and top-right component.
2023-09-08
- 🚀✨ Added `addColumns` method in `mongodb.js`
- This commit adds the `addColumns` method to the `MongoDB` class in `mongodb.js`. The method allows for adding multiple columns to a table in a MongoDB database. It loops through each column in the `columns` array and uses the `updateMany` method to add the column to each document in the specified table. The changes were made to enhance the functionality of the MongoDB wrapper.
- 🔨🌟 Implemented `dropColumn` in `mongodb.js`
- This commit implements the `dropColumn` method in the `MongoDB` class in `mongodb.js`. The method allows for dropping a column from a table in a MongoDB database. It uses the `updateMany` method to remove the specified column from each document in the specified table. The changes were made to enhance the functionality of the MongoDB wrapper.
- 💡🔧 Updated `drop-column-dialog.html`
- This commit updates the `drop-column-dialog.html` file in the `front/src/app/core/structure` directory. It adds a warning symbol and message to the dialog content, indicating that data will be lost when dropping a column. The changes were made to improve the user experience and provide clearer information to the user.
- 🐛 Fix SQL driver quickSearch method
- - In the SQL driver's quickSearch method, there was an issue with constructing the `chip` variable.
- - The issue was resolved by adding the `this.connection.nameDel` before and after the `column.name` to properly format the `chip` value.
- - This fix ensures that the SQL driver's quickSearch method generates the correct `chip` value when performing a quick search.
- - Removed unnecessary information from the README.md file.
- - Updated the information about the Bin section.
- - Updated the information about the Server section.
- - Updated the information about the Relation Wizard section.
- - Updated the information about the SQLServer section.
- - Updated the information about the GraphQL section.
- - Updated the information about the Cockroachdb section.
- The commit message updates the README.md file by removing unnecessary information and updating the sections with more relevant and accurate information. The changes were made to provide clearer and more useful information to the users.
- books: Update README.md and fix controller in server endpoint
- The README.md file was updated to remove unnecessary text. In the
- `controller.js` file, the `getDatabases` function was modified to
- pass the `full` parameter to the `getDatabases` method of the driver,
- allowing the retrieval of the complete database structure.
- The changes were made to improve the clarity and functionality of the
- codebase. The README.md file was updated for better documentation,
- and the controller was fixed to ensure that the complete database
- structure can be retrieved when necessary.
- 🚀 🚀 Add MongoDB complex element information retrieval
- - The patch updates the `mongodb.js` file in the backend to retrieve complex element information from MongoDB databases.
- - The function `listCollections` is modified to populate the `complexes` array with the name, database, table, and type of each complex element.
- - The `name` property is updated to retrieve the `description` from the `validator` option of the collection.
- - The changes are made to improve the retrieval of complex element information from MongoDB databases.
- 🐛 🐛 Fix incorrect column name in PostgreSQL wrapper
- - The patch fixes an issue in the `postgre.js` file in the backend where the column name `subtype` is replaced with `data_type`.
- - The fix ensures that the correct column name is used to extract the data type for each column.
- ✨ ✨ Display MongoDB complex elements in the advanced panel
- - The patch updates the `advanced.component.html` file in the frontend to display the retrieved MongoDB complex elements.
- - A new `mat-card` is added to show the complex elements.
- - The `complexes` array is iterated to display the type and name of each complex element.
- - The changes are made to enhance the user interface by showing the MongoDB complex elements in the advanced panel.
- 💄 💄 Improve styling of advanced panel in the frontend
- - The patch updates the `advanced.component.scss` file in the frontend to improve the styling of the advanced panel.
- - The margin for the `mat-divider` is adjusted to `20px`.
- - The margin for the `mat-card` is set to `0px`.
- - The display style for the `div` inside `mat-card-content` is set to `flex` and `justify-content` is set to `space-around`.
- - The changes are made to improve the visual appearance of the advanced panel.
- 🔧 🔧 Update MySQL driver to support customized name delimiters
- - The patch updates the `mysql.ts` file in the frontend to support customized name delimiters for MySQL databases.
- - The `nameDel` property is added to the `connection` object, which stores the value of the `useNameDel` configuration.
- - If the `useNameDel` configuration is enabled, the `nameDel` property is set to '`', otherwise, it is left empty.
- - The changes are made to provide flexibility in specifying name delimiters for MySQL databases.
- 🐛 🐛 Fix issue with null values in CellComponent
- - The patch fixes an issue in the `cell.component.ts` file in the frontend where null values were causing errors.
- - The code is updated to check if the value is null before performing operations on it.
- - The `fkParams` property is only set if the value is not null.
- - The changes are made to prevent errors when dealing with null values in the CellComponent.
- books: Update README.md, 🔨 Update MySQL wrapper, 🔨 Update PostgreSQL wrapper, ♻️ Refactor advanced.component.html, ♻️ Refactor structure.component.ts, ♻️ Refactor column.ts, ♻️ Refactor table.ts
- Updated the README.md file to include additional information about the project.
- Refactored the MySQL wrapper to improve the efficiency of retrieving database information.
- Refactored the PostgreSQL wrapper to improve the efficiency of retrieving database information.
- Refactored the advanced.component.html file to remove unnecessary code.
- Refactored the structure.component.ts file to remove redundant code.
- Refactored the column.ts file to remove the "comment" property.
- Refactored the table.ts file to remove the "comment" property.
- The changes were made to optimize the code and improve performance. Unnecessary code and redundant properties were removed to simplify the codebase and improve maintainability.
2023-09-07
- 💡 Use GitMoji convention to preface the commit.
- ✨ Add a short description of WHY the changes are done after the commit message.
- Use the present tense. Lines must not be longer than 74 characters.
- 🐛 Fix unsubscribe issue in ExploreComponent
- The unsubscribe method was not being called properly, which could lead to memory leaks.
- This fix ensures that the observer is unsubscribed correctly in the ExploreComponent.
- Co-authored-by: [Another Author Name]
- recycle: Refactor back-end and front-end code
- - Refactored the SQL class in the back-end to return example data values without wrapping them in single quotes. This allows for easier manipulation and formatting of the data.
- - Removed the "Reload Database" button from the container component in the front-end, as it was no longer needed.
- - Removed unnecessary CSS code from the container component in the front-end.
- - Updated the container component in the front-end to inject the RequestService in the constructor, instead of using the public access modifier. This improves encapsulation and readability of the code.
- - Updated the query component in the front-end to use the "export_notes" icon for the "Export all results" button, instead of the "share" icon.
- - Updated the advanced component in the front-end to display the selected database name in a span element, and added a "Reload" button next to it. The "Reload" button triggers the reloadServer() method from the RequestService.
- - Updated the advanced component in the front-end to conditionally display the "Collation" section only if the selected server's wrapper is "MySQL". This prevents errors when using other types of databases.
- - Updated the advanced component in the front-end to use a mat-divider to visually separate different sections of the component.
- - Updated the advanced component in the front-end to use the "database" icon for the "Convert Entire Database" button.
- - Updated the advanced component in the front-end to inject the RequestService in the constructor, instead of using the public access modifier. This improves encapsulation and readability of the code.
- - Updated the update-data-dialog component in the front-end to remove the unnecessary check for the existence of data before assigning it to the updateSuggestions object.
- The changes were made to improve code clarity, remove unnecessary elements, and enhance the user experience.
- The IA features were added to the project. This includes the addition of a button to export queries via IA with Stripe Metadata. Also, the integration of Claude 2 and Stackoverflow AI was implemented. The updates also include the addition of new links, plugins, and videos. Additionally, Node 20 was added and dotenv was removed from the project.
- The changes were made to enhance the functionality and user experience of the project by introducing new IA capabilities and updating dependencies. The removal of dotenv was done to streamline the configuration process.
2023-09-06
- 🎨 Frontend: Update query component styles
- Refactor the styles of the query component to improve the visual appearance and layout.
- - Decreased the thickness of the top border to 1px and changed the color to rgba(255, 255, 255, 0.12) for better visibility.
- - Adjusted the height of the container to be slightly shorter, resulting in a height of calc(100vh - 162px).
- - Updated the height of ngx-monaco-diff-editor to calc(100vh - 494px) to ensure proper rendering.
- - No changes made to ngx-monaco-editor.
- These changes were done to enhance the overall user experience and improve the aesthetics of the query component.
- recycle: Refactor back-end MySQL wrapper
- The `getComplexes()` function in the MySQL wrapper was modified to fix a SQL query with an incorrect column alias. The `routine_schema` column was mistakenly enclosed in single quotes, resulting in a syntax error. The column alias was corrected to remove the quotes. This refactor ensures that the SQL query runs correctly and retrieves the desired data.
- 🐛 Fix connection-dialog.html not found
- The `connection-dialog.html` file was deleted, but it was still referenced in the `top-right.component.html` template file. This caused a runtime error, as the file could not be found. The reference to `connection-dialog.html` was removed from the template to fix the error and prevent any further issues.
- ♻️ Remove unused imports and components
- In the `app.module.ts` file, the imports and declarations for the `ConnectionInfoDialog` component were removed. This component was no longer used and caused unnecessary code clutter. By removing the imports and declarations, the codebase is kept clean and free of unused components.
- 💄 Update advanced.component.html layout
- The `advanced.component.html` template file was updated to improve the layout and visual presentation. A new `ngx-monaco-editor` component was added to display code snippets. The code snippets are now displayed with proper formatting and indentation. Additionally, a horizontal divider was added to visually separate the code snippets from other content. These changes enhance the user experience and make the code snippets more readable.
- 🎨 Improve advanced.component.ts code readability
- The `advanced.component.ts` file was updated to improve the readability of the code. The `str` property was added to store a JSON string representation of the selected server's properties. The `editorOptions` object was defined to configure the `ngx-monaco-editor` component, making it read-only and setting the language to 'json'. The `initEditor()` method was added to initialize the code editor and configure the folding and unfolding of code blocks. These improvements make the code cleaner and easier to understand.
- 🔥 Remove unused top-right component files
- The `connection-dialog.html` template file and the `ConnectionInfoDialog` component were no longer used and have been removed. This removes unnecessary files from the codebase and promotes code simplicity.
- Why? The changes in the back-end MySQL wrapper were made to fix an incorrect column alias in a SQL query, ensuring that the desired data is correctly retrieved. The removal of the `connection-dialog.html` file and the unused `ConnectionInfoDialog` component was done to clean up the codebase and remove unused files. The updates to the `advanced.component.html` and `advanced.component.ts` files were made to improve the layout and readability of the code, enhancing the user experience.
- recycle: Remove unnecessary button and fix issue creation link
- The unnecessary button for the user menu was removed from the top right component HTML file. In addition, the issue creation link in the logs-dialog HTML file was fixed to only include the first 1000 characters of the log message. This was done to ensure that the link does not exceed the allowed length for issue descriptions.
- These changes were made to improve the user experience by removing redundant elements and fixing a bug in the issue creation feature.
- 🚀 Added button to export all results
- Added a button in the query component's HTML template to allow users to export all the results. The button is disabled if there is no data to export.
- 🔄 Updated autoFormat configuration
- In the query component's TypeScript file, the `autoFormat` configuration value was updated to use the value from the configuration service. This ensures that the `autoFormat` setting is retrieved correctly.
- The changes were made to enhance the functionality of the query component. The new button provides users with the ability to export all the results, improving the usability of the component. Additionally, updating the `autoFormat` configuration ensures that the correct value is used for the `autoFormat` setting.
- ✨ feat: Update container.component.html
- - Changed the `*ngIf` directive to `[hidden]` property binding on line 25.
- - Updated the condition from `selectedServer` to `!selectedServer` on line 25.
- The changes were made to fix an issue where the content inside the `ng-container` was not being hidden when `selectedServer` was falsy. The `[hidden]` property binding provides a more efficient and cleaner way to achieve this behavior.
- truck: Move postgres code to separate file
- The PostgreSQL code is moved to a separate file `back/src/wrapper/postgre.js` for better organization and maintainability.
- The reason for this change is to follow the principle of separation of concerns and improve the structure of the codebase. By moving the PostgreSQL code to its own file, it becomes easier to understand and manage the code for the specific functionality it provides. Additionally, it allows for better code reuse and modularity.
- 🎨 Refactor getComplexes method in PostgreSQL class
- The `getComplexes` method in the PostgreSQL class is refactored to improve readability and performance. The changes include:
- - Using a single SQL query to fetch complex objects from multiple tables.
- - Mapping the results of the query to the desired format using JavaScript array manipulation.
- - Adding a switch statement to determine the type of each complex object based on its `type` column value.
- - Changing the names of the complex types to align with the conventional naming scheme.
- The reason for this refactoring is to simplify the code and improve the efficiency of fetching complex objects from the database. By using a single query and mapping the results, we can reduce the number of database queries and improve the overall performance of the application. Additionally, the switch statement allows for clearer and more maintainable code by explicitly defining the type of each complex object.
- ✨ Add support for custom complex types in SQL driver
- The SQL driver now supports custom complex types in autocompletion suggestions. The `SQL` class in `front/src/drivers/sql.ts` is updated to include custom complex types in the suggestions.
- The reason for this change is to provide a better user experience when working with custom complex types in the SQL editor. By including custom complex types in the autocompletion suggestions, users can easily select and insert these types in their SQL queries, improving productivity and reducing errors.
- 🎨 Refactor column component to support custom complex types
- The `ColumnComponent` in `front/src/shared/column/column.component.ts` is refactored to support custom complex types in the form. The changes include:
- - Adding a new `typeGroups` property to hold the type groups for autocompletion suggestions, including custom complex types.
- - Updating the `typeSuggestion` mat-select element to loop over the `typeGroups` and display the custom complex types.
- The reason for this refactoring is to enhance the user interface of the column component and provide support for selecting custom complex types. By including custom complex types in the autocompletion suggestions, users can easily select and assign these types to columns, improving the usability and flexibility of the application.
- 🐛 Fix incorrect import in postgre.js
- The `commonHelper` import in `back/src/wrapper/postgre.js` is corrected to remove the `.mjs` file extension.
- The reason for this fix is to resolve an import error and ensure that the `commonHelper` module is correctly imported and used in the `PostgreSQL` class. Without this fix, the code would fail to execute and result in an error, impacting the functionality of the application.
- pencil2: Update commit messages according to the conventional commit convention:
- `🔥 Remove unused class 'Type'`
- This commit removes the unused class 'Type' from the project.
- `✨ Add support for MongoDB complex types`
- This commit adds support for retrieving complex types (functions, procedures, domains, custom types, sequences) in MongoDB.
- `✨ Add support for PostgreSQL complex types`
- This commit adds support for retrieving complex types (functions, procedures, domains, custom types, sequences) in PostgreSQL.
- `✨ Add support for MySQL complex types`
- This commit adds support for retrieving complex types (functions, procedures, domains, custom types, sequences) in MySQL.
- `⚡ Improve performance by optimizing MongoDB queries`
- This commit optimizes the MongoDB queries by removing redundant aggregation stages and improving performance.
- `🐛 Fix bug in displaying types in connection dialog`
- This commit fixes a bug that caused incorrect display of types in the connection dialog of the application.
- `💄 Improve styling of explore component`
- This commit improves the styling of the explore component, specifically the table header cell width and alignment.
- `🎨 Improve styling of insert component`
- This commit improves the styling of the insert component, specifically the width and alignment of the column type section.
- `💄 Improve styling of config dialog`
- This commit improves the styling of the config dialog, specifically the width and alignment of the config options.
- `♻️ Refactor code to use common-helper module`
- This commit refactors the code to use the common-helper module for common utility functions.
- `♻️ Refactor code to use async/await for getting complex types`
- This commit refactors the code to use async/await for getting complex types in database wrappers.
- `♻️ Refactor code for better organization and readability`
- This commit refactors the code for better organization and readability by moving common functions to the common-helper module and optimizing queries in database wrappers.
- `✏️ Update README with new features and dependencies`
- This commit updates the README file with information about new features, dependencies, and pull requests.
- `🔧 Fix issues with dependencies and URLs`
- This commit fixes issues with dependencies and URLs in the project, specifically related to Brew, Electron, CI, and GitLab Wiki.
- This commit marks the release of version 1.0.0 of the project.
- `♻️ Refactor code to improve testability and maintainability`
- This commit refactors the code to improve testability and maintainability, specifically by separating concerns and reducing code duplication.
- `✅ Add unit tests for front-end with multiple DB versions`
- This commit adds unit tests for the front-end code with multiple DB versions to ensure compatibility and functionality.
- `🚧 Work in progress: EDR finalization`
- This commit marks the work in progress for finalizing the EDR (Entity-Relationship Diagram) feature.
2023-09-05
- art: **front**: Remove stringify attribute in cell.component.ts
- The `stringify` attribute was removed from cell.component.ts because it was not being used. Removing this attribute simplifies the code and improves readability. Additionally, the `even` background color for table cells was also removed to improve consistency and visual appeal.
2023-09-04
- - Removed the line "- postgre : plusieurs schemas(connection.html:182) + load/dump specific schema" from README.md as it is no longer relevant.
- 📁 front/src/shared/cell/cell.component.ts
- 🐛 Fix error in quick search functionality
- - Fixed an error where the value was not being converted to a string before passing it to the quick search function, resulting in incorrect search results.
- recycle: refactor(front): Update Angular configurations
- - Remove unnecessary "hmr" property in development configuration in angular.json.
- - This change was made to clean up the Angular project configuration file and remove unused properties.
- 🐛 fix(front): Fix displaying column type in insert component
- - Modify the code to properly display the column type in the insert component.
- - The code now converts the column type to a string and replaces double quotes with spaces.
- - This fix was necessary to correctly display the column type in the insert component.
- 🎨 style(front): Update styling for tab labels in insert component
- - Update the style for the tab labels in the insert component using ::ng-deep CSS selector.
- - The tab labels now have a min-width of 90px.
- - This change was made to improve the visual appearance of the tab labels in the insert component.
- ♻️ refactor(front): Update random data generation logic in insert component
- - Refactor the random data generation logic in the insert component to improve readability and performance.
- - The code now uses a return statement for the random data generation functions.
- - This change simplifies and optimizes the random data generation process in the insert component.
- 🐛 fix(front): Fix displaying column type in tables component
- - Modify the code to properly display the column type in the tables component.
- - This fix was necessary to correctly display the column type in the tables component.
- ♻️ refactor(shared): Update value initialization in cell component
- - Refactor the value initialization in the cell component to enhance code readability and structure.
- - The code now checks if the value is undefined before parsing and cloning it.
- - This change improves the handling of undefined values in the cell component.
2023-09-03
- art: Improve code readability and reusability
- - Refactor the code in `drivers/mongodb.ts` to improve code readability and reusability.
- - Updated the `quickSearch` method to handle different types of column values using a switch statement.
- - Added support for BSON types and Date type in the `wrapValue` function.
- - Removed the unnecessary console.log statement.
- WHY: The code in `drivers/mongodb.ts` was not very readable and needed some refactoring to improve its readability and reusability. By refactoring the code, it is now easier to understand and maintain. The `quickSearch` method now handles different types of column values more effectively, making the code more robust. The support for BSON types and Date type improves the compatibility of the code with different types of databases. The removal of the unnecessary console.log statement cleans up the code and improves its overall quality.
2023-09-01
- sparkles: Add changes for README.md and back/src/wrapper/mongodb.js
- - Updated the Bin section in README.md to include information about dependencies such as Brew, Chocolate, Apt, and Yum. Also added a link to a pull request in the Electron repository and mentioned its use in CI and GitLab wiki.
- - Made changes to the getRelations function in mongodb.js. Removed a comment, added new variables for sample size and minimum correlations, and made modifications to the code logic to improve the retrieval of relations between tables in databases.
- WHY: The changes in the README.md file were made to provide more comprehensive information about the dependencies used in the project and to improve documentation. The changes in mongodb.js were made to enhance the functionality of retrieving relations between tables in databases by optimizing the code logic and variables used. This improves the reliability and accuracy of the relations retrieved, leading to better overall performance.
- recycle: Improve MongoDB import command
- The `mongoimport` command in the `MongoDB` wrapper has been updated to include the `--collection` flag and specify the collection name based on the original file name. This improvement allows for more efficient and precise data import into MongoDB databases.
- The changes were done to enhance the functionality of the `MongoDB` wrapper and improve the process of importing data into MongoDB databases.
- recycle: Refactor code to load data from MongoDB using the original file name
- In the `controller.js` file, the `load` method of the `Controller` class was modified to pass the `originalName` property of the request file to the `load` method of the driver. This change was made to ensure that the original file name is used when importing the data into MongoDB.
- 💡 The changes were made to provide a better user experience by maintaining the original file name when importing data into MongoDB.
2023-08-31
- art: Refactor mongodb driver and structure GUI components
- Refactor the `mongodb` driver by adding a `getColumns()` method to simplify the code. Update the `getBaseDelete()`, `getBaseInsert()`, and `getBaseSelect()` methods in the driver to use the `getColumns()` method.
- Refactor the `structure.component.html` file by removing the link to the NoSQL disclaimer and adding a button to add a column.
- Refactor the `config-dialog.component.ts` file by only reloading the server if a server is selected before updating the configuration.
- Refactor the `top-right.component.html` file by removing the link to the NoSQL disclaimer and adding a button for the Disclaimer.
- Add a new configuration option `noSqlSample` to the `configuration.ts` file, which represents the sample size to infer NoSQL structure from. It has values '50', '100', '250', and '500'.
- - Refactoring the `mongodb` driver improves code readability and maintainability.
- - Removing the link to the NoSQL disclaimer and adding a button for adding a column in the structure GUI components provides a better user experience and simplifies UI navigation.
- - Reloading the server only when a server is selected after updating the configuration prevents unnecessary server reloading.
- - Adding the `noSqlSample` configuration option allows users to configure the sample size used to infer NoSQL structure.
- feat: 🎉 Add support for harmonizer with columns containing objects/arrays
- This commit adds support for harmonizing columns that contain objects or arrays with more than 2 elements. The previous implementation only supported columns with 2 or less elements. This enhancement allows for a more flexible harmonization process.
- The reason for this change is to improve the harmonization capabilities of the system by accommodating columns with more complex data types. This will enhance the data processing and analysis capabilities of the system.
- fix: 🐛 Fix console.log to console.error
- This commit fixes a bug where console.log was used instead of console.error in the catch block of the getRemote function in the subscription controller. This corrects the behavior to correctly log errors to the console using console.error, providing better error visibility and debugging capabilities.
- The reason for this change is to ensure that errors are properly logged when the getRemote function encounters an error. Using console.error instead of console.log enables better error tracking and debugging.
- fix: 🐛 Fix indentation issue in mongodb.js
- This commit fixes an indentation issue in the mongodb.js file. The code was incorrectly indented in the getRelations function, resulting in a code block being placed outside of the intended scope. This commit corrects the indentation to ensure proper code execution.
- The reason for this change is to improve code readability and maintainability by adhering to consistent and correct indentation practices. This makes the code easier to understand and follow, reducing the chances of introducing errors.
- chore: ♻️ Update styling in connection.component.scss
- This commit updates the styling in the connection.component.scss file by adjusting the padding and border-radius properties of the img element. The padding is increased to 60px, and the border-radius is set to 100px. This provides a more aesthetically pleasing and visually balanced appearance.
- The reason for this change is to improve the visual appeal of the connection component by adjusting the padding and border-radius of the image element. This enhances the overall user experience and makes the component more visually appealing.
- feat: 🎉 Add NoSQL warning link in structure.component.html
- This commit adds a link to the NoSQL disclaimer page on the GitLab wiki when the database selected is not SQL. The link is displayed as a button with a warning icon and the text "NoSQL". Clicking on the button will open the NoSQL disclaimer page in a new tab.
- The reason for this change is to provide users with easy access to important information about NoSQL databases when working with non-SQL databases. This helps educate users about the differences and considerations of non-SQL databases and allows them to make informed decisions when working with such databases.
- fix: 🐛 Fix trigger component sync issues
- This commit fixes synchronization issues in the trigger component by correctly initializing the editors and updating the replace function. The initEditor function is added to initialize the editor and store it in the editors array. The replace function is updated to handle errors and display them using the addMonacoError function.
- The reason for this change is to resolve synchronization issues that were causing errors and incorrect behavior in the trigger component. The changes ensure that the editors are properly initialized and that errors are handled and displayed appropriately, providing a smoother and more reliable user experience.
- doc: 📚 Update heading in top-right.component.html
- This commit updates the heading of the Details menu item in the top-right.component.html file from "Details" to "Connection Details". This provides a more descriptive and accurate heading for the menu item.
- The reason for this change is to improve clarity and ensure that the menu item accurately reflects its purpose. Using "Connection Details" makes it clear that the menu item provides access to details about the connection.
2023-08-29
- art: Update diagram hoverClass colorscss
- Change the background and stroke color of the `.hoverClass` in the diagram component to RGBA 29, 233, 182 with an opacity of 0.8.
- The changes were done to improve the visual appearance of the hover effect in the diagram component.
- 🐛 Update stroke color for path in diagram class
- Change the stroke color of the path element in the diagram component to RGBA 29, 233, 182.
- The changes were done to fix a bug where the stroke color was incorrect for the path element in the diagram component.
- Remove unnecessary information about cloud services and add additional information about unit testing in front-end and function+type in column/autocomplete.
- The changes were done to provide more relevant and accurate information in the README.md file.
- art: Rearrange components and improve styling
- The commit rearranges the components in the repository and improves the styling for the Connection component. The goal is to enhance the organization and visual consistency of the codebase.
- art: Rearrange buttons in container.component.html
- The buttons in the container.component.html file have been rearranged to improve the user interface and make the navigation more intuitive. The "drawer.toggle()" function has been moved from the "click" event of the
- element to the "click" event of each
- 🐛 Fix padding of toolbar in query.component.html
- element in the query.component.html file has been fixed. The inline style "padding: 10px 20px;" has been replaced with a class "toolbar" defined in the query.component.scss file.
- ♻️ Remove unnecessary styling in query.component.scss
- Unnecessary styling for the "#actions" ID selector in the query.component.scss file has been removed.
- 🐛 Fix model markers in query.component.ts
- The model markers in the query.component.ts file have been fixed. Instead of calling "monaco.editor.setModelMarkers" on a single editor model, it is now called on each editor model in the "this.editors" array.
- ✨ Add buttons to run and copy AI code in ai.component.html
- Buttons to run and copy the AI code have been added to the ai.component.html file. The buttons have the "color" attribute set to "accent" for visual consistency.
- ✨ Add buttons in history.component.html
- Buttons for playing, starring, copying, and removing history items have been added to the history.component.html file. The buttons have the "color" attribute set to "accent" for visual consistency.
- art: Update container component styles
- Changed the color of selected database name to teal (#1de9b6) for improved visibility. This change was made to enhance the user experience and make the selected database more distinguishable.
- 🎨 Update container component styles
- Changed the color of tab links in the mat-drawer to teal (#1de9b6) for improved visibility. This change was made to enhance the user experience and make the tab links more distinguishable.
- 🎨 Update advanced component styles
- Changed the color of material symbols from #ff9800 to teal (#1de9b6) for improved visibility and consistency. This change was made to enhance the user experience and make the material symbols more distinguishable.
- 🎨 Update insert component styles
- Changed the style of the monaco editor to flex: 1 for better resizing behaviour. This change was made to enhance the user experience and make the monaco editor more responsive.
- 🐛 Fix duplicate database button color
- Changed the color of the duplicate database button to teal (#1de9b6) for consistency with other buttons. This change was made to enhance the user experience and make the buttons more cohesive.
- 🎨 Update relations component styles
- Changed the border colors of expanded rows in the table to teal (#1de9b6) for improved visibility and consistency. This change was made to enhance the user experience and make the expanded rows more distinguishable.
- 🎨 Update column component styles
- Changed the color of column type options to teal (#1de9b6) for improved visibility and consistency. This change was made to enhance the user experience and make the column type options more distinguishable.
- Changed the color of anchor links to teal (#1de9b6) for improved visibility. This change was made to enhance the user experience and make the anchor links more distinguishable.
- shirt: Update style in connection component
- - Reduced opacity of the logo in the driver class
- - Adjusted padding in the image inside the logo class
- - Added a white background and border-radius to the image
- - Added a box-shadow effect to the image on hover
- These changes were made to improve the visual appearance of the driver logo in the connection component. The adjustments to opacity and padding provide a more visually pleasing layout, while the white background and border-radius enhance the overall design. The addition of a box-shadow effect on hover adds a sense of depth and interactivity to the logo.
- fire: Remove unused `fct.ts` file
- The `fct.ts` file is no longer used and has been deleted. This commit removes the unused file to declutter the codebase and improve maintainability.
- art: Update commit messages with clean and comprehensive conventional commit messages
- - postgre : plusieurs schemas(connection.html:182) + load/dump specific schema
- - Server gît avec autobackup en var d'env (git large file / gzip)
- - Change the `` icon in the AI component HTML from `file_copy` to `content_paste`.
- ♻️ Update History component HTML
- - Change the `` icon in the History component HTML from `file_copy` to `content_paste`.
- - Change the `color` attribute of the `` element in the logs-dialog HTML from `accent` to `primary`.
- ♻️ Remove unused code from driver.ts
- - Remove the `fcts` property from the `docs` object in the `Driver` interface in driver.ts.
- ♻️ Remove unused code from mysql.ts
- - Remove the `fcts` property from the `docs` object in the `MySQL` class in mysql.ts.
- ♻️ Remove unused code from postgresql.ts
- - Remove the `fcts` property from the `docs` object in the `PostgreSQL` class in postgresql.ts.
- ♻️ Update export-result-dialog HTML
- - Add margin to the `` elements in the export-result-dialog HTML.
- - Update the formatting of the button elements in the export-result-dialog HTML.
- ♻️ Remove unused styles from styles.scss
- - Remove the `box-shadow` property from the `.mat-dialog-container` class in styles.scss.
- - Remove the background color and color properties from the `.mat-dialog-title` class in styles.scss.
- sparkles: Added Fct class to handle function objects
- The `Fct` class is added to the project in order to handle function objects. This class includes properties such as `code`, `saved`, `name`, `hide`, and `changed`. It provides a structured representation of functions and their associated attributes. This change is made to improve the organization and management of functions within the project.
2023-08-28
- recycle: Refactor drivers import in connection.component.ts
- The import statements for the drivers module in the connection.component.ts file have been refactored to use the updated file structure.
- 🎨 Format code for base editor initialization
- The code for initializing the base editor in the trigger.component.html file has been formatted to improve readability and maintainability.
- :pencil: Update import path for Cockroach driver
- The import path for the Cockroach driver in the cockroach.ts file has been updated to reflect the new file structure.
- :pencil: Update import path for ElasticSearch driver
- The import path for the ElasticSearch driver in the elasticsearch.ts file has been updated to reflect the new file structure.
- :pencil: Update import path for MongoDB driver
- The import path for the MongoDB driver in the mongodb.ts file has been updated to reflect the new file structure.
- :pencil: Update import path for MySQL driver
- The import path for the MySQL driver in the mysql.ts file has been updated to reflect the new file structure.
- :pencil: Update import path for Oracle driver
- The import path for the Oracle driver in the oracle.ts file has been updated to reflect the new file structure.
- :pencil: Update import path for PostgreSQL driver
- The import path for the PostgreSQL driver in the postgresql.ts file has been updated to reflect the new file structure.
- :pencil: Update import path for SQL driver
- The import path for the SQL driver in the sql.ts file has been updated to reflect the new file structure.
- :pencil: Update import path for SQLite driver
- The import path for the SQLite driver in the sqlite.ts file has been updated to reflect the new file structure.
- :pencil: Update import path for SqlServer driver
- The import path for the SqlServer driver in the sqlserver.ts file has been updated to reflect the new file structure.
- ♻️ Refactor import path for helper.ts
- The import path for the SQL class in the helper.ts file has been refactored to reflect the new file structure.
- ♻️ Refactor drivers import in request.service.ts
- The import statements for the drivers module in the request.service.ts file have been refactored to use the updated file structure.
- ✨ Added dynamic trigger name field in trigger component
- - Updated the trigger component HTML to include a `` with a dynamic trigger name field if the condition `isSQL()` is true. This allows the user to input a trigger name.
- - Added validation for the trigger name field to check if it is already used or does not follow the required format.
- - Updated the styling of the trigger component to remove the margin from the `.mat-card-content` class.
- These changes were made to enhance the functionality and usability of the trigger component by allowing the user to specify a custom trigger name and ensuring the validity of the input.
- 🔧 Updated AI chat component to support streaming
- - Modified the AI chat component HTML to show a new `` element with the streamed content if the `stream` variable is defined.
- - Modified the AI chat component TypeScript to add a new `stream` variable of type string to store the streamed content.
- - Modified the `chat()` method in the AI chat component to enable streaming and update the `stream` variable with the streamed content.
- - Added a loop to iterate over the streamed content and append each part to the `stream` variable, as well as display it in the HTML.
- - Removed the `isLoading` variable and unnecessary function calls.
- These changes were made to enhance the AI chat functionality by enabling the support for streaming responses from the OpenAI API, allowing for a smoother and more interactive chat experience.
- 💡 Improved triggers in MySQL driver
- - Updated the MySQL driver class to improve the trigger templates.
- - Modified the `adult_and_good_email` template to use the `FOR EACH ROW` syntax, enabling it to be used as a row-level trigger.
- - Modified the `add_to_reminders` template to use the `FOR EACH ROW` syntax, enabling it to be used as a row-level trigger.
- - Modified the `calculated_field` template to use the `FOR EACH ROW` syntax, enabling it to be used as a row-level trigger.
- - Modified the `archive_user` template to use the `FOR EACH ROW` syntax, enabling it to be used as a row-level trigger.
- These changes were made to improve the triggers in the MySQL driver by updating the trigger templates to use the `FOR EACH ROW` syntax, allowing them to be used as row-level triggers instead of statement-level triggers. This provides more flexibility and granularity in handling triggers.
- sparkles: Add initialization for the editor in `connection-dialog.html`
- The changes in this commit add an initialization step for the editor in the `connection-dialog.html` file.
- Previously, the `` element did not have an initialization step, which means that the editor options were not set. This change introduces an `(onInit)` event handler that calls the `initEditor` method in the `top-right.component.ts` file.
- The reason for this change is to ensure that the editor is properly initialized with the correct options and settings. This allows for better user experience and functionality when using the editor component in the application.
- bug: Fix error handling in MySQL wrapper
- Refactor the `foundErrorPos` method in the MySQL wrapper to properly handle and format error messages. The previous implementation did not correctly handle error messages that contained single quotes. This fix ensures that error messages are extracted correctly and the error position is set accordingly. Additionally, the method now returns the formatted error object.
- The changes were made to prevent incorrect parsing of error messages and to provide accurate error positions when reporting errors.
- 🐎 Improve performance of query execution
- Optimize the `_runSingle` method in the `QueryComponent` to improve the performance of query execution. Previously, every time the method was called, unnecessary network requests were made to retrieve the labels for the result set. This change eliminates those unnecessary requests and improves the overall performance of the query execution process.
- The changes were made to enhance the performance and responsiveness of the application. By eliminating unnecessary network requests, the query execution process becomes faster and more efficient.
- 🎨 Refactor code formatting in MySQL and PostgreSQL drivers
- Refactor the `format` method in the MySQL and PostgreSQL drivers to improve code formatting. The previous implementation used the `sql-formatter` library to format SQL code, but it caused issues with certain queries. This change replaces the library with a simple code formatting logic that preserves newlines and indentation.
- The changes were made to ensure better code readability and consistency. By simplifying the code formatting logic, the drivers can now handle a wider range of queries without causing formatting issues.
- 🐛 Fix error handling in SQL class
- Fix a bug in the `format` method of the `SQL` class where the code was not properly formatted. The previous implementation used the `sql-formatter` library to format the code, but it caused issues with certain queries. This fix removes the library and returns the code as is, without any additional formatting.
- The changes were made to fix the bug and ensure that the code is returned in its original format. By removing the code formatting logic, the `format` method now returns the code as it was initially provided, without any modifications.
2023-08-27
- Frontend: Add enableTracing option to RouterModule.forRoot in AppRoutingModule
- - Added the `enableTracing` option with a value of `true` to the `RouterModule.forRoot` method in the `AppRoutingModule`. This enables route tracing, which logs each navigation event to the console. The option is only added in production mode.
- - This change was made to aid in debugging and monitoring the route navigation events in the application during production.
- Frontend: Remove unused code in InsertComponent
- - Removed the unused code that toggles the drawer in the `iaCode` method of the `InsertComponent` class.
- - This code was not being used and had no effect on the functionality of the component.
- Frontend: Remove unused dependency in QueryComponent
- - Removed the unused `DrawerService` dependency from the `QueryComponent` class.
- - The `DrawerService` dependency was not being used in the component, so it was removed to clean up the code.
- Frontend: Update AiComponent to use lastData from DrawerService
- - Updated the `AiComponent` class to use the `lastData` property from the `DrawerService` when retrieving the question parameter.
- - The `lastData` property holds the value of the last data passed to the `drawer.open` method, which in this case is the question parameter.
- - This change allows for consistent handling of the question parameter when navigating to the `AiComponent`.
- Frontend: Fix drawer closing in HistoryComponent
- - Changed the `drawer.toggle` method to `drawer.close` in the `goToQuery` method of the `HistoryComponent` class.
- - This change ensures that the drawer is always closed when navigating to a new query.
- - The `drawer.toggle` method was used previously, but it could leave the drawer open if it was closed when the method was called.
- Frontend: Update DrawerService to handle closing and opening with data
- - Updated the `DrawerService` to have separate methods for closing and opening the drawer with data.
- - Added a `_lastData` private property to store the last data passed to the `open` method.
- - Modified the `open` method to set the `_lastData` property and then call the `drawer.open` method.
- - Modified the `close` method to call the `drawer.close` method.
- - Added a `lastData` getter to retrieve the last data stored in the `_lastData` property.
- - These changes improve the flexibility and usability of the `DrawerService`.
- Frontend: Update ErrorComponent to use new drawer.open method
- - Updated the `ErrorComponent` class to use the new `router.navigate` method for opening the drawer.
- - Removed the `question` parameter from the `router.navigate` method since it is now passed as data to the `open` method.
- - Updated the `open` method to pass the error and context data as a formatted string to the `drawer.open` method.
- - These changes ensure consistency between the `router.navigate` and `drawer.open` methods and improve the overall handling of errors in the application.
- Frontend: Update styles.scss for mat-bottom-sheet-container
- - Added a `backdrop-filter` property to the `.mat-bottom-sheet-container` class in the `styles.scss` file.
- - Set the `backdrop-filter` property to `blur(3px)` to add a blur effect to the background of the bottom sheet container.
- - This change improves the visual appeal of the bottom sheet container.
- art: chore: Refactor MySQL error handling
- Refactor the error handling in `mysql.js` to improve readability and
- accuracy. The code now correctly identifies the position of the error
- message in the command and sets the error position accordingly. This is
- done by iterating through different separators (such as newline, tab,
- space, and none) to find the exact position.
- This change improves the error reporting for MySQL queries and provides
- more accurate information about the error position.
- 🛠 fix: Update query component functionality
- Update the `QueryComponent` in `query.component.ts` to fix some
- functionality issues. The changes include:
- - Fixing the handling of errors in the `_runSingle` function. Instead of
- directly setting the error message and dataSource, a separate
- `addMonacoError` function is created to handle the error and set the
- model markers in the monaco editor.
- - Improving error handling in `_runCompare` function. The error handling
- now includes calling the `addMonacoError` function to set model
- markers in the two monaco editors.
- - Removing unnecessary code from the `delete` function in
- `trigger.component.ts`. The function now properly deletes the trigger
- from the triggers array when it is saved.
- These changes improve the functionality and error handling of the Query
- and Trigger components in the application.
- recycle: refactor: Refactor AI component HTML and TypeScript files
- - Removed unnecessary code and optimized the layout in the HTML file.
- - Refactored the TypeScript file to improve the code structure and readability.
- - Added a filter feature to search messages based on user input.
- - Added input field and button to clear the filter.
- - Updated the configuration change function to save the settings and initialize the OpenAI client.
- - Removed the OpenAI key input from the configuration dialog.
- These changes were made to improve the usability and maintainability of the AI component.
- recycle: Refactor query component and add error component
- - Remove assistant button in the query component's table cell when the column is 'error'
- - Refactor the `runQuery()` function in the query component to handle error cases and format the document
- - Add `ErrorComponent` for displaying error messages in a bottom sheet
- - Implement the `assistant()` function in the error component, currently commented out
- The changes were made to improve the functionality and user experience of the query component. The assistant button in the query component was removed because it was not necessary when the column was 'error'. The `runQuery()` function was refactored to handle error cases and format the document after the query runs. The `ErrorComponent` was added to display error messages in a bottom sheet, providing a better user interface for handling errors. The `assistant()` function in the error component was implemented but is currently commented out.
- recycle: Refactor and 🐛 Fix issues with server connection and URI generation
- The commit refactors and fixes issues related to server connection and URI generation in the codebase.
- - In the `controller.js` file, the response sent to the client is modified. If there is an error in the `connection` object, it is sent as the response. Otherwise, the response is modified to include the `uri` property generated by the `driver` class.
- - In the `driver.js` file, a new method `makeUri()` is added. This method currently returns `null`.
- - In the `mongodb.js` file, the `makeUri()` method is modified to include parameters when generating the `uri` for MongoDB.
- - In the `logs-dialog.html` file, the `matTooltipPosition` attribute is modified from "right" to "left".
- - In the `server.ts` file, the `uri` property is added to the `Server` class.
- - In the `request.service.ts` file, the `uri` property of the connected server is updated with the value returned from the server.
- These changes were made to fix issues with server connection and URI generation in the application. The modifications ensure that the client receives the correct response and the `uri` property is generated accurately for MongoDB connections.
- sparkles: Add commit message for patch
- 🎨 Clean up code and improve UI
- Refactor and clean up code in multiple files to improve code readability
- and maintainability. Remove unnecessary code and unused imports. Improve
- the UI by rearranging buttons and adding tooltips for better user
- 🐛 Fix bug related to query component
- Fix a bug in the query component where the autoFormat button was not
- functioning properly. Now the autoFormat button works correctly and
- ♻️ Refactor configuration component
- Refactor the configuration component dialog by adding a section for the
- OpenAI key. Users can now input their OpenAI key in the settings and it
- will be saved. Added validation for the OpenAI key format to ensure it is
- Remove unnecessary code and unused imports from the MySQL driver class.
- This improves code cleanliness and reduces complexity.
- Remove styling for the snack bar container and simplify the styles.scss
- file by removing unnecessary code.
- The changes were done to clean up and improve the codebase. Unnecessary code and unused imports were removed for better code readability and maintainability. The UI was improved by rearranging buttons and adding tooltips for a better user experience.
- A bug related to the query component was fixed, where the autoFormat button was not functioning properly. Now the autoFormat button works correctly and formats the query on run.
- The configuration component dialog was refactored to include a section for the OpenAI key. Users can now input their OpenAI key in the settings and it will be saved. Validation was added to ensure the OpenAI key is correctly entered.
- In the MySQL driver class, unnecessary code and unused imports were removed to reduce complexity and improve code cleanliness.
- The styles.scss file was updated to remove styling for the snack bar container and simplify the file by removing unnecessary code.
2023-08-26
- pencil2: front: update pnpm-lock.yaml
- Update the version of `mongodb` from 5.7.0 to 5.8.1 in the `pnpm-lock.yaml` file.
- The change is done to upgrade the version of `mongodb` for better functionality and compatibility with other dependencies.
2023-08-25
- lipstick: Refactor trigger component template and style
- - Refactored the trigger component template by adding missing closing tags and removing unnecessary code.
- - Updated the button style in the trigger component template from `mat-stroked-button` to `mat-flat-button`.
- - Added new styles to the tables component SCSS file to modify the appearance of columns.
- - Updated the trigger component template by adding the `changed` property to the `Trigger` class.
- - Fixed the issue in the trigger component template where the `templates` variable was not correctly assigned.
- - Removed the unused `templates` variable from the trigger component class.
- These changes were done to improve the code structure, fix UI issues, and enhance the user experience in the application.
- bug: Fixed a bug where the code prefix "FOR EACH ROW" was being added to trigger statements in the MySQL wrapper class. The code prefix is now removed and only the trigger statement is returned. The reason for this change is to ensure that the trigger statement is returned in its original form as it is defined in the database.
2023-08-24
- bookmark: Refactor code and update README
- Refactor code and update README to improve code quality and provide more accurate information about the project.
- The changes in this commit include:
- - Deleting unnecessary code in `back/src/endpoint/server/controller.js` to improve code readability.
- - Refactoring the `sampleDatabase` method in `back/src/shared/driver.js`.
- - Removing unused code in `back/src/wrapper/postgre.js`.
- - Modifying the structure component in `front/src/app/core/structure/structure.component.ts` to remove the column check option.
- - Removing the `check` property in the `Column` class in `front/src/classes/column.ts`.
- - Removing the `columnCheck` property in the `Driver` interface and its implementations in `front/src/classes/driver.ts`, `front/src/classes/drivers/mongodb.ts`, and `front/src/classes/drivers/mysql.ts`.
- - Modifying the `SQL` class in `front/src/classes/sql.ts` to remove the column check option.
- These changes were made to improve the overall code quality and remove unnecessary code and functionality that was not being used. The modifications will make the codebase cleaner and easier to maintain.
- sparkles: Added new functionality to MySQL wrapper class
- The `MySQL` wrapper class now includes the `size` property for each column. This property represents the maximum size of a character-based column. This change was made in order to provide more detailed information about the columns in a MySQL database.
2023-08-23
- art: Rearranged files and directories within the project.
- Reorganized the file and directory structure within the project to improve maintainability and readability. The changes include moving certain files to more appropriate locations, updating import statements, and fixing references.
- ♻️ Refactored controller.js to include types in the final object.
- Previously, the `types` property in the `final` object was not being populated with the data returned by the `getTypes()` method. This has been fixed by including the `types` property and resolving the promise returned by the `getTypes()` method.
- 🐛 Fixed issue with app.component.ts preventing page from unloading.
- The `beforeunloadHandler` method in the `AppComponent` class was not properly returning a value, preventing the page from unloading. This has been fixed by adding a check for the production environment before returning a value.
- 🎨 Improved styling of container.component.scss.
- Modified the styles in `container.component.scss` to improve the appearance and layout of the container component. This includes adjusting the font size and alignment of certain elements.
- 🐛 Fixed issue with container.component.ts not adding type panel.
- The `container.component.ts` file was not properly adding the type panel to the `panels` array when the `selectedServer.driver.language.ownType` property was true. This issue has been fixed by uncommenting the necessary code.
- ✨ Added settings section to ai.component.html.
- The `ai.component.html` file now includes a settings section that was previously hidden. This section contains certain UI elements related to AI settings.
- 🎨 Improved styling of ai.component.scss.
- Refactored the styles in `ai.component.scss` to improve the appearance and layout of the AI component. This includes adjusting the padding and font size of certain elements.
- ✨ Added history component to right panel.
- The `history.component.html` file has been added to the right panel of the app. This component displays the history of runned queries.
- 🎨 Improved styling of types.component.html.
- Refactored the styles in `types.component.html` to improve the appearance and layout of the types component. This includes adjusting the font size and alignment of certain elements.
- ♻️ Refactored types.component.ts to use type instead of relation.
- Changed the parameter name in the `delete()` method of the `TypesComponent` class from `relation` to `type` to better reflect its purpose. This change aligns with the usage in other parts of the code.
- ✨ Added save button to types.component.html.
- The `types.component.html` file now includes a save button next to each type. This button allows users to save changes made to a type.
- ♻️ Removed unused button and fixed menu items in top-right.component.html.
- Removed an unused button and fixed the menu items in the `top-right.component.html` file. The changes include removing a button related to query logs and reordering and adjusting menu items.
- 🎨 Improved styling of column.component.html.
- Refactored the styles in `column.component.html` to improve the appearance and layout of the column component. This includes adjusting the alignment and size of certain elements.
- ✨📝 feat: Update explore component
- - Removed unnecessary imports and lines of code
- - Adjusted the styling of mat-chip-list
- - Refactored the logic of adding chips
- - Updated the navigateWithParams() function
- These changes were made to improve the functionality and user experience of the explore component.
2023-08-22
- sparkles: Added support for sampling database tables and triggers
- This commit adds functionality to sample tables and triggers from the database using the Open API. The `sampleDatabase` function in the `Controller` class now retrieves the tables and triggers from the database using the appropriate wrapper based on the server type (MongoDB, MySQL, or PostgreSQL). The resulting data is then formatted into a message and stored in the `txt` variable.
- The main purpose of this feature is to provide users with a way to generate data samples from their database tables and triggers. It can be used for testing, debugging, or simply exploring the data structure and contents.
- The changes include updates to the following files:
- - back/src/endpoint/database/controller.js
- - front/src/app/right/ai/ai.component.html
- - front/src/app/right/ai/ai.component.scss
- - front/src/app/right/ai/ai.component.ts
- 🔀✨ Frontend: Update AI component, diagram component, and GitLab CI configuration
- - Update `.gitlab-ci.yml` to comment out unnecessary steps related to installing `curl` and running `docker scout cves` due to the failure of the `apk add curl` command and the unavailability of `docker scout-cli`.
- - Update `ai.component.html` to improve the structure and layout of the AI component's toolbar and configuration settings. Add a toggle button to show/hide the configuration settings. Refactor the configuration settings layout and use Angular Material form fields and sliders for better user experience. Add a button to clear the conversation messages. Hide the examples and show a message if the OpenAI key is not provided.
- - Update `ai.component.scss` to style the configuration settings and align them properly. Hide the conversation messages container if the OpenAI key is not provided.
- - Update `ai.component.ts` to refactor the code related to setting and saving the OpenAI key. Add a `config` object to store the AI component's configuration, including the OpenAI key, model, temperature, and other settings. Update the `loadSample` function to use the `config` object and save the configuration in the local storage. Update the initialization of the OpenAI API object to use the provided OpenAI key. Update the `setKey` function to save the OpenAI key in the local storage and reinitialize the chat. Rename the `preSent` object to `config` in the `initChat` function.
- - Update `diagram.component.html` to conditionally show the diagram controller based on its availability. Add a font size slider to adjust the font size of the diagrams.
- - Update `diagram.ts` to remove the unused `fontInc` and `fontDec` functions and related code. Add a `calcFontStep` function to calculate the font size step. Modify the `fontInc` and `fontDec` functions to adjust the font size using the calculated step and apply the font size to the diagrams.
- - Update `configuration.ts` to remove the `openAIModel` configuration option as it is no longer used.
- This update improves the UI/UX of the AI component, adds a configuration settings panel, and better handles the OpenAI key and conversation messages. The diagram component is also updated to include a font size slider for better diagram visualization.
- sparkles: feat: Update dependencies and fix lint errors
- Updated the dependencies in the `package.json` file to their latest versions. This ensures that the project has the latest features and bug fixes provided by the dependencies. Additionally, fixed some lint errors in the codebase to improve the code quality.
- The updates will improve the stability, performance, and security of the project.
- sparkles: README: Add Mongo and relation wizard features
- - Add new features related to MongoDB, including quick search, harmonizer,
- addTable, and sample (relation, indexes).
- - Implement relation wizard functionality, allowing for transformations
- between different relation types, such as 1,1 to 0,n and 0,n to 1,1.
- - Enhance migration queries presentation.
- The changes were made to add new features related to MongoDB and improve the
- relation wizard functionality, providing more flexibility and options for
- - Modified README.md file to include information about the changes made to the project.
- - Made minor changes to the `mysql.js` and `postgre.js` files in the `back/src/wrapper` directory.
- The changes were done to improve the functionality and readability of the codebase.
- 🔧 Back-End: Remove unnecessary code in database controller
- The changes to `back/src/endpoint/database/controller.js` involved removing unnecessary code. This was done to improve the cleanliness and readability of the codebase.
- ℹ️ WHY: The code was removed because it was not being used and was adding unnecessary complexity to the controller. Removing this code simplifies the controller and improves overall code quality.
- ✨ Front-End: Remove unnecessary code in AI component template
- The changes to `front/src/app/right/ai/ai.component.html` involved removing unnecessary code. This was done to improve the cleanliness and readability of the codebase.
- ℹ️ WHY: The code was removed because it was not being used and was adding unnecessary complexity to the AI component template. Removing this code simplifies the template and improves overall code quality.
- 🔧 Front-End: Update styling in diagram component SCSS
- The changes to `front/src/app/right/diagram/diagram.component.scss` involved updating the styling of the diagram component. This was done to improve the visual appearance of the component.
- ℹ️ WHY: The styling updates were made to enhance the overall design and user experience of the diagram component. The changes improve the readability and aesthetic appeal of the component.
- 🔧 Front-End: Update global styles
- The changes to `front/src/styles.scss` involved updating global styles in the application. This was done to improve the visual appearance and user experience of the application.
- ℹ️ WHY: The global style updates were made to enhance the overall design and user experience of the application. The changes improve the readability, consistency, and aesthetic appeal of the application's interface.
2023-08-21
- 🚀 feat: Add database sample functionality to the Controller
- Added a new `sample` method to the `Controller` class that retrieves a sample of data from a given database. The method makes use of the `sampleDatabase` method in the database wrapper to fetch the sample data. The sample data includes the structure of tables, data in the tables, and triggers associated with the tables. The method also retrieves server variables if specified. The retrieved sample data is then formatted into a text response and sent back to the client.
- This change was made to provide users with a way to get a glimpse of the data present in a database, including the structure of tables and associated triggers. This can be useful for understanding the data model and making informed decisions while working with the database.
- The new functionality also includes support for different types of databases such as MongoDB, MySQL, and PostgreSQL.
- recycle: Refactor code and add support for PostgreSQL driver in commit message.
- Refactored code in multiple files to improve readability and maintainability. Added support for the PostgreSQL driver in the front-end code. The changes include modifying column properties, creating databases, and altering tables.
- sparkles: feat(query): add OnDestroy lifecycle hook
- Updated the QueryComponent to implement the OnDestroy lifecycle hook. This was done to ensure that any timers or intervals created within the component are properly cleared and prevent memory leaks.
- Additionally, added an interval that navigates to the current query URL every second. This is useful for keeping the query URL updated when there are changes in the selected server, database, or table.
- Finally, cleared the interval in the OnDestroy hook to avoid any potential memory leaks.
- recycle: refactor(front,mongodb): Refactor MongoDB driver and shared helper
- This commit refactors the MongoDB driver and shared helper.
- In `front/src/classes/drivers/mongodb.ts`, the `getBaseAggregate` function has been modified to include commented out lines that initiate the `db` and `bson` variables. These lines are used to establish a connection with the MongoDB database and import the BSON library. The purpose of this change is to provide the necessary setup for executing aggregate queries.
- In `shared-helper.mjs`, the `mongo_injectAggregate` function has been refactored. The regular expression used to match the `.aggregate` method has been assigned to a variable called `reg` for better readability. The `agg` variable now trims the extracted aggregate method and checks if it is empty. If the `agg` is empty, it sets the value to an array containing the `toInject` parameter. If the `agg` ends with a ']', it appends the `toInject` parameter to the existing array. Finally, the `agg` is used to replace the matched aggregate method in the `query` string.
- These changes improve the MongoDB driver and shared helper by adding necessary setup and enhancing functionality for injecting aggregate queries into MongoDB queries.
- 🚀 Add `getBaseAggregate` method to MongoDB driver
- This commit adds the `getBaseAggregate` method to the MongoDB driver class. This method generates the base aggregate query for a given table by matching the primary key of the table and grouping by it. The generated query is used for aggregation operations in MongoDB.
- The reason for this change is to enhance the functionality of the MongoDB driver by providing support for aggregate queries. This allows users to perform more complex data analysis and transformation operations on MongoDB collections.
- Modify `querySize` method in MongoDB driver to handle disable evaluation
- This commit modifies the `querySize` method in the MongoDB driver to handle cases where code evaluation is disabled by the backend configuration. If the environment variable `DISABLE_EVAL` is set to `"true"`, the method will return an error message indicating that code evaluation is disabled.
- The reason for this change is to ensure that code evaluation is handled properly in the MongoDB driver. By checking the environment variable, the driver can provide appropriate feedback to the user when code evaluation is disabled, preventing potential security risks.
- Modify `runPagedQuery` method in MongoDB driver to handle disable evaluation
- This commit modifies the `runPagedQuery` method in the MongoDB driver to handle cases where code evaluation is disabled by the backend configuration. If the environment variable `DISABLE_EVAL` is set to `"true"`, the method will return an error message indicating that code evaluation is disabled.
- This change ensures that code evaluation is handled correctly in the MongoDB driver. By checking the environment variable, the driver can provide accurate feedback to the user when code evaluation is disabled, preventing potential security risks.
- Modify `runCommand` method in MongoDB driver to handle disable evaluation
- This commit modifies the `runCommand` method in the MongoDB driver to handle cases where code evaluation is disabled by the backend configuration. If the environment variable `DISABLE_EVAL` is set to `"true"`, the method will return an error message indicating that code evaluation is disabled.
- Add `aggregate` option to `prebuilds` array in QueryComponent
- This commit adds the `aggregate` option to the `prebuilds` array in the QueryComponent. The `prebuilds` array contains the available pre-built query types that the user can select. With this change, the `aggregate` option is added to the array conditionally, based on the selected table's database driver. If the driver is not SQL-based, the `aggregate` option will be available.
- The purpose of this change is to enhance the query building functionality in the QueryComponent. By adding the `aggregate` option, users can now generate base aggregate queries for non-SQL database drivers, such as MongoDB, allowing them to perform complex data analysis and transformation operations.
- Update `getBaseSelectWithRelations` method in MongoDB driver
- This commit updates the `getBaseSelectWithRelations` method in the MongoDB driver to include the `getBaseSelectWithRelations` implementation for MongoDB tables. The method generates the base select query with relations for a given table and its associated relations.
- The reason for this change is to enhance the functionality of the MongoDB driver by providing support for selecting data with relations. This allows users to retrieve data from a MongoDB collection and its related collections in a single query, reducing the number of database round trips.
2023-08-20
- recycle: Refactor code structure in front-end
- Refactored the code structure in the front-end application to improve
- readability and maintainability. Made changes in the following files:
- - `add-index-dialog.html`: Disabled the create index button if the index
- name already exists for the selected table.
- - `structure.component.ts`: Added an array `indexNames` to store the existing
- index names for the selected table.
- - `column.ts`: Modified the validators for the column name to check for
- uniqueness among table columns, excluding the current column being edited.
- - `column.component.html`: Updated the button to invoke the `copyColumn`
- method instead of `addColumn`.
- - `column.component.ts`: Renamed the `addColumn` method to `copyColumn` and
- made changes to pass the selected column to the `getFormGroup` method.
- These changes were made to enhance the functionality of the structure component
- and ensure proper validation and duplication of columns and indexes in the
- sparkles: Clean up code and improve validation messages
- This commit cleans up the code by removing unnecessary imports and unused functions. It also improves the validation messages for creating tables and views.
- The changes were made to enhance the user experience by providing more meaningful error messages and simplifying the code.
- Why: Improve code readability and user experience.
- books: Add information on unique constraints in README.md
- The commit adds information about unique constraints in the README.md file.
- The purpose of this change is to provide additional information to users about the unique constraints feature in the application.
- 🔧 Add dropView method in MongoDB wrapper
- The commit adds a new method called `dropView` to the `MongoDB` wrapper class in the `mongodb.js` file.
- The method is responsible for dropping a view/collection from the specified database.
- This change was made to provide a convenient way to drop views/collections when needed.
- The commit updates the `styles.scss` file in the `front/src` directory.
- The changes include adding CSS styles for the `::-webkit-resizer` and `::-webkit-scrollbar-corner` selectors.
- These styles enhance the visual appearance and behavior of resizers and scrollbars in the application.
- These changes were made to improve the usability and aesthetics of the application's user interface.
- bug: Fix MongoDB wrapper to parse pipeline code as BSON EJSON
- The MongoDB wrapper in the back-end codebase had an issue where the pipeline code for creating a collection was not being properly parsed as BSON EJSON. This caused errors when executing queries with pipeline stages. This issue was fixed in this commit by using the `BSON.EJSON.parse()` method to parse the pipeline code.
- 💡 The changes were made to ensure that the pipeline code passed to the `createCollection()` method is properly parsed as BSON EJSON, preventing errors when executing queries with pipeline stages.
- books: README.md: add TODO public
- The commit adds a TODO item to the README.md file indicating that the task "public" needs to be implemented.
- 🐛 back/src/wrapper/mongodb.js: fix aggregate injection
- The commit fixes an issue in the `mongodb.js` file. The code was injecting extra data into the aggregate query, causing an error. The fix ensures that `agg` is an array before pushing `toInject` into it.
- 🚫 front/src/app/container/container.component.ts: remove unused imports
- The commit removes two unused imports from the `container.component.ts` file: `MatIconRegistry` and `DomSanitizer`.
- 🎨 front/src/app/tables/tables.component.html: improve code formatting
- The commit improves the code formatting in the `tables.component.html` file. It adds line breaks and proper indentation to enhance readability.
- ✨ front/src/app/tables/tables.component.ts: add width attribute
- The commit adds a new `width` attribute to the `TablesComponent` class in the `tables.component.ts` file. The attribute will be used to store the width of the table list sidenav.
- ♻️ front/src/app/tables/tables.component.ts: load and save table width
- The commit modifies the `TablesComponent` class in the `tables.component.ts` file. It adds functionality to load and save the width of the table list sidenav from local storage. The width is saved under the `tableWidth` key.
- 🔧 front/src/shared/cell/cell.component.html: fix expand button behavior
- The commit fixes the behavior of the expand button in the `cell.component.html` file. When clicked, the button now sets the `expand` property to `true` and also sets the `resize` style property of the element to `'both'`, allowing the cell to be resized.
- 🎨 front/src/shared/cell/cell.component.scss: improve cell styling
- The commit improves the styling of the cell component by modifying the `cell.component.scss` file. It adjusts the `max-width` property to `25vw` and removes unnecessary padding from the `.segment` class in the JSON viewer.
- 🛠 front/src/shared/cell/cell.component.ts: add ElementRef to constructor
- The commit adds the `ElementRef` parameter to the constructor of the `CellComponent` class in the `cell.component.ts` file. The `ElementRef` will be used to access the native element and modify its style.
- Refactored the `querySize` method in the `MongoDB` class in the `back` directory.
- The changes were made to improve the performance and readability of the code. Now, the method checks for different cases in the query and returns the appropriate result based on the case.
- The `querySize` method now correctly handles queries with `.toArray`, `.find`, and `.aggregate` methods.
- Purpose: To improve the performance and readability of the `querySize` method in the `MongoDB` class.
2023-08-19
- ✨ front: Add wrapper driver references to add connection dialog
- - Updated the add connection dialog template (`add-connection-dialog.html`) by modifying the link text for the driver's documentation references. Changed "Driver Doc for Node.JS" to "Driver References" for better clarity.
- - This change was made to improve the user experience. By using a more descriptive link text, it makes it clearer to the user that they can access the driver's references/documentation.
- 🔨 front: Update SQL language link in query component
- - Updated the query component template (`query.component.html`) by modifying the link text for the SQL driver's language references. Changed "SQL Doc" to "Full References" for better clarity.
- - This change was made to improve the user experience. By using a more descriptive link text, it makes it clearer to the user that they can access the SQL language's full references/documentation.
- 🐛 shared: Fix extractEnum method in SQL class
- - Updated the `extractEnum` method in the SQL class (`sql.ts`) to fix a bug where it was not correctly extracting the enum values from a column with an enum type.
- - The fix involves changing the regex pattern used to split the enum values from the column type. The previous pattern was not working properly. The new pattern correctly splits the values, removing any unnecessary quotes or symbols.
- 🔧 shared: Refactor code in Helper class
- - Made changes to the `validName` and `parentheses` properties in the `Helper` class in the `shared-helper.mjs` file.
- - Updated the regex pattern for `validName` to include the range of allowed characters and the length limit for valid names.
- - Refactored the regex pattern for `parentheses` to correctly match parentheses and their content, allowing for nested parentheses.
- - These changes were made to improve the reliability and functionality of the `validName` and `parentheses` properties in the `Helper` class. The updated patterns ensure that valid names are properly validated, and parentheses are accurately matched, including nested ones.
- ✨ feat: Update file paths in Dockerfile and shared-helper.mjs
- - Update the file paths in the Dockerfile to copy the shared-helper.mjs file into the correct directory in the front and back folders.
- - Update the regular expressions in shared-helper.mjs to correctly extract the contents within parentheses.
- The changes were done to ensure that the shared-helper.mjs file is copied to the correct location in the front and back folders, and to fix the regular expressions in shared-helper.mjs to properly handle parentheses in SQL queries.
- whale: chore: Update Dockerfile
- The Dockerfile was updated to improve the build process for the application.
- Previously, the file was copying the `shared-helper.mjs` file before copying the `front` and `back` directories, which caused the build to fail as the `shared-helper.mjs` file was not found in the correct location.
- To fix this issue, the `shared-helper.mjs` file is now copied after copying the `front` and `back` directories, ensuring that the file is available in the correct location during the build process.
- This change improves the build process for the Docker image by correctly copying the necessary files and preventing build failures.
- whale: Dockerfile: Add shared-helper.mjs to front and back \
- - The Dockerfile is modified to include the `shared-helper.mjs` file in the `front` and `back` directories. \
- - The `shared-helper.mjs` file is copied from the source directory to the respective directories. \
- - This change is made to ensure that the necessary shared helper code is available in both the front and back of the application.] Update Dockerfile and shared-helper.mjs
- The Dockerfile was updated to copy the `shared-helper.mjs` file to the appropriate directory in both the front and back-end applications. This ensures that the shared helper module is included in the Docker image.
- In the `shared-helper.mjs` file, the `sql_isSelect` method was fixed. First, the TODO comment was removed. Next, the code was updated to remove parentheses and any content inside them from the input query. Finally, the code was updated to check if the query starts with 'select ' to determine if it is a SELECT query.
- These changes were made to improve the functionality and reliability of the Docker image and the `shared-helper.mjs` module.
2023-08-18
- ✨️ Frontend: Clean up create-view-dialog.html and query.component.html
- - Removed unnecessary comments and empty lines in create-view-dialog.html.
- - Adjusted the width of the View Name input field in create-view-dialog.html to 300px.
- - Renamed the labels of the advanced menu items in query.component.html to be more descriptive.
- - Updated the shortcuts in the shortcuts menu of query.component.html to be more descriptive.
- The changes were made to improve the code readability and user experience in the frontend components.
- 🐛 Fix(front): Delete unused create-view-dialog.html file
- The `create-view-dialog.html` file in the `front/src/app/tables` directory was deleted because it was no longer being used.
- This commit fixes a bug by removing the unused file and cleaning up the codebase.
- 🔀 Merge branch 'fix-delete-create-view-dialog'
- 🚀 feat(front): Update OpenAI package version
- This commit updates the version of the OpenAI package to `3.3.0` in the `front/pnpm-lock.yaml` file. The previous version was `4.0.0`. The update is necessary to ensure that the application works correctly with the OpenAI API.
- sparkles:🎨 Add error message in create-database-dialog and duplicate-database buttons
- - Add the error message below the input field in the create-database-dialog to display a message when the database name is already taken or contains special characters.
- - Add the error message below the input field in the duplicate-database button to display a message when the target database name is already taken or contains special characters.
- These changes were done to improve the user experience by providing feedback when the user enters an invalid database name.
- bug: Fix error handling in database and table controllers
- - In the `database` controller, added error handling to gracefully handle any errors that may occur when fetching the stats for a database.
- - In the `table` controller, added error handling to gracefully handle any errors that may occur when fetching the stats for a table.
- This commit fixes the error handling in the database and table controllers to prevent any crashes and ensure that the API responds properly even in case of errors.
2023-08-17
- pencil2: Adjust formatting and style in README.md, trigger.controller.js, mongodb.js, trigger.component.ts, logs-dialog.html, and styles.scss
- The changes in this commit include adjusting formatting and style in various files, specifically:
- - README.md: Removed unnecessary information about alter table in PostgreSQL.
- - trigger.controller.js: Updated the `drop()` function to also receive the table name as a parameter.
- - mongodb.js: Updated the `dropTrigger()` function to take the table name as a parameter.
- - trigger.component.ts: Simplified the `delete()` function by removing the check for the trigger name.
- - logs-dialog.html: Added a font-size of 11px to the code section.
- - styles.scss: Updated the font-size in the code and .hljs sections to 13px.
- The changes were made to improve the readability and appearance of the code and UI elements in the application.
- recycle: Refactor MongoDB wrapper
- Refactor the `replaceTrigger` and `dropTrigger` methods in the `MongoDB` class.
- Now, these methods use try-catch blocks to catch and handle any exceptions that may occur when executing the respective MongoDB commands. If an error occurs, the error message is returned as part of the response object.
- These changes were made to improve error handling and provide more informative error messages to the users of the MongoDB wrapper.
- art: Improve code formatting in several files
- - Reformat code in `back/src/endpoint/server/controller.js` to sort tables and databases alphabetically.
- - Reformat code in `back/src/wrapper/mongodb.js`, `back/src/wrapper/mysql.js`, and `back/src/wrapper/postgre.js` to sort columns by ordinal position.
- - Reformat code in `front/src/app/core/insert/insert.component.html` to improve readability.
- - Reformat code in `front/src/app/core/trigger/trigger.component.html` to improve readability.
- - Reformat code in `front/src/app/core/trigger/trigger.component.ts` to remove unused import.
- - Reformat code in `front/src/classes/trigger.ts` to remove unused parameter.
- - Reformat code in `front/src/shared/helper.ts` to remove unused import.
- - Reformat code in `front/src/styles.scss` to increase min-height of `ngx-monaco-editor`.
- The changes were done to improve code readability and maintain a consistent style throughout the project.
2023-08-16
- 🎉 🎉 **feat**: Update dependencies
- - **front/package.json**: Update "@types/node" to version 20.4.5
- - **front/pnpm-lock.yaml**: Update "@types/js-beautify" to version 1.14.0
- These changes are done to keep the project up to date with the latest versions of the dependencies and to ensure compatibility and reliability.
- 🚑 Fix MongoDB trigger validator in replaceTrigger method
- The `validator` parameter in the `replaceTrigger` method of the `MongoDB`
- wrapper was being passed as a string instead of an object. This commit fixes
- the issue by parsing the `trigger.code` as JSON before passing it as the
- This change is necessary to ensure that the MongoDB trigger is correctly
- replaced with the new validator code.
- feat: Remove unnecessary IframeDialog component
- The IframeDialog component in core/insert/insert.component.ts and its corresponding HTML template were removed. The component was no longer being used and was not necessary for the functionality of the application. By removing this unused component, we are reducing the codebase and improving maintainability.
- recycle: Refactor trigger component
- - Updated trigger.component.html to conditionally show different form fields based on the selected driver.
- - Added `levels` array and `actions` array to trigger.component.ts to populate the dropdowns for level and action when MongoDB driver is selected.
- - Removed unused import Subscription from trigger.component.ts.
- - Updated trigger.component.ts to include the `isSQL` function imported from helper.ts.
- - Updated driver.ts to include `trigger` object with `base` and `language` properties for MongoDB and SQL drivers.
- - Updated classes/drivers/mongodb.ts to include the `trigger` object with a `base` string and a `language` string.
- - Updated classes/sql.ts to include the `trigger` object with an empty `base` string and a `language` string.
- - Updated classes/trigger.ts to add optional properties (`timing`, `event`, `action`, `level`) to the `Trigger` class constructor.
- The trigger component has been refactored to conditionally show different form fields based on the selected driver. This allows for a more dynamic and customized trigger creation experience.
- 🚀 **feat:** add search functionality in connection and structure components
- This commit adds search functionality to the `connection` and `structure` components in the front-end. The search input fields have been provided with placeholders for better user experience. Now users can search for specific servers, databases, and columns within these components.
- 💡 **chore:** run command to replace PostgreSQL trigger
- This commit updates the `replaceTrigger` method in the `postgre.js` file under the `back/src/wrapper` directory. It now runs the `CREATE OR REPLACE TRIGGER` command to replace the specified trigger in the given database and table.
- ✨ **feat:** list triggers in PostgreSQL wrapper
- This commit modifies the `listTrigger` method in the `postgre.js` file under the `back/src/wrapper` directory. Now, the method retrieves a list of triggers from the specified table in the database and returns them in a structured format.
- 🐛 **fix:** handle undefined key in AI component
- This commit fixes a bug in the `AiComponent` where it was not handling the case when the key parameter is undefined. The code has been updated to prevent any errors in such cases.
- 🔄 **refactor:** remove unnecessary code in AI component
- This commit refactors the `setKey` method in the `AiComponent` by removing unnecessary code that checks if the key is undefined before setting it in the local storage. Since the code already handles the undefined case, this check is redundant.
- This commit updates the README.md file by removing unused items from the to-do list and adding a new item related to collation in the postgre and mongo wrappers.
- 🔄 **refactor:** change width of search field in connections component
- This commit updates the width of the search input field in the `connection.component.html` file under the `front/src/app/connection` directory to 200px for better styling and alignment.
- 🔄 **refactor:** change width of search field in structure component
- This commit updates the width of the search input field in the `structure.component.html` file under the `front/src/app/core/structure` directory to 220px for better styling and alignment.
- 🔄 **refactor:** change width of search field in relations component
- This commit updates the width of the search input field in the `relations.component.html` file under the `front/src/app/right/relations` directory to 220px for better styling and alignment.
- 🔄 **refactor:** change width of search field in types component
- This commit updates the width of the search input field in the `types.component.html` file under the `front/src/app/right/types` directory to 220px for better styling and alignment.
- 🔧 **chore:** update config dialog component styles
- This commit updates the styles of the configuration dialog component by removing the fixed width of 100px for the `mat-form-field` and aligning the elements properly.
- 💄 **style:** add padding to tables component
- This commit adds a small padding of 5px to the `tables.component.scss` file under the `front/src/app/tables` directory for better visual separation between the elements.
- 🔄 **refactor:** change width of search field in history component
- This commit updates the width of the search input field in the `history.component.html` file under the `front/src/app/right/history` directory to 80% for better styling and alignment.
- 🔄 **refactor:** change width of search field in config dialog component
- This commit updates the width of the search input field in the `config-dialog.component.html` file under the `front/src/app/top-right/config` directory to 200px for better styling and alignment.
2023-08-15
- bug: Fix MongoDB wrapper returning incorrect types
- The `getPropertyType` method in the MongoDB wrapper class was returning a JSON string instead of an object. This commit fixes the issue by parsing the object and returning it as a JSON object. The incorrect return value could cause errors or unexpected behavior in other parts of the code that rely on the property types.
- This commit also includes some code formatting and style changes to improve readability and consistency.
- sparkles: front: Add cdkFocusInitial directive to iframes and buttons
- The cdkFocusInitial directive is added to iframes and buttons in several
- HTML files across the application to set the initial focus when the
- dialog or component is opened. This improves accessibility and user
- experience by automatically focusing on the appropriate element for
- Adding the cdkFocusInitial directive ensures that the iframe and button
- elements are focused when the dialog or component is opened, allowing
- users to easily interact with them using keyboard navigation.
- These changes were made to improve the accessibility and usability of
- the application for users who rely on keyboard navigation.
- sparkles: Frontend: Update logs dialog
- - Updated the logs-dialog.html file to replace the mat-slide-toggle element
- with a button element. The button element now handles the toggleAutoRefresh()
- function and displays an appropriate icon based on the interval value.
- This change improves the user experience and provides better visibility
- for the auto refresh functionality.
- - Added a mat-form-field and input element in the logs-dialog.html file to
- implement a filter text feature. The input value is bound to the filter
- property in the LogsDialog component, and a clear button is displayed
- when there is a filter value. This enhancement allows users to filter the logs
- based on text, improving the usability of the logs dialog.
- - Updated the filterChanged() function in the top-right.component.ts file to
- handle the filtering of the logs based on the filter property value. The
- function splits the logs by newlines, reverses the order, filters the logs
- based on the filter value, and then joins the logs back together. The resulting
- filtered logs are then sanitized and assigned to the strFiltered property.
- - This commit enhances the logs dialog by adding a filter text feature and
- improving the auto refresh functionality, providing a more user-friendly
- and efficient way to interact with the logs.
- art: Rearrange commit messages
- bug: Fix `isOfGroup` method in `Column` class
- The `isOfGroup` method in the `Column` class was not correctly checking if a column belongs to a specific group. The method was only checking for a single group, but it should support checking multiple groups.
- This commit fixes the `isOfGroup` method by changing its name to `isOfGroups` and updating its implementation. Now, it accepts an array of group names as an argument and iterates over each group to check if the column belongs to any of the specified groups.] Update Column.isOfGroups method
- The `Column.isOfGroups` method in the `column.ts` file has been updated to accept an array of group names instead of a single group name. This allows for checking if a column belongs to multiple groups instead of just one. This change improves the flexibility and functionality of the method.
- This refactor was done to enhance the capability of identifying column types in the `ExploreComponent` class. Previously, the method only checked if a column belonged to a single group, but now it can handle multiple groups.
2023-08-14
- art: Refactor connection component code
- Refactored the `connection.component.html` and `connection.component.ts` files.
- In the HTML file, changed the `matTooltip` property to use the `getDetails` method instead of the `getTooltip` method to display the tooltip text.
- In the TS file, modified the `getDetails` method to return an object with the icon and tooltip text based on the server's status.
- Used the object returned by the `getDetails` method to display the icon and tooltip text in the HTML file.
- The changes were done to improve the readability and maintainability of the code in the connection component.
- ♻️ Refactor structure component code
- Refactored the `structure.component.html` file.
- Changed the `color` attribute value of the delete button to "warn" and changed the mat-icon-button content from "remove" to "delete".
- The changes were done to provide a more consistent and descriptive UI in the structure component.
- Updated the `cell.component.html` file.
- Added logic to conditionally display JSON data as either a collapsed or expanded view.
- Added a button to toggle the expanded/collapsed view of JSON data.
- The changes were done to improve the user experience when working with JSON data in the cell component.
- Fixed the `cell.component.scss` file.
- Adjusted the `max-width` and `max-height` values to make the cell component fit within the viewport without overflowing.
- The changes were done to improve the display of the cell component and prevent content overflow.
- ✨ Add column labels to update data dialog
- Added column labels to the `update-data-dialog.html` file.
- Displayed the column labels using the mat-label directive within a mat-form-field.
- The changes were done to provide a more user-friendly interface when updating data in the update data dialog.] update ConnectionComponent and CellComponent
- - [front] update ConnectionComponent:
- - Replace function getTooltip with getDetails
- - Modify the return value of getDetails to return an object with icon and txt properties
- - Modify the usage of getTooltip to getDetails in connection.component.html
- - Simplify getIcon function by replacing hardcoded string values with object properties
- - Modify the return value of getIcon to return an object with icon and txt properties
- - Replace hardcoded values in connection.component.html with object properties returned by getDetails and getIcon functions
- - Remove unnecessary imports in connection.component.ts
- - [front] update StructureComponent:
- - Replace "remove" icon with "delete" icon in structure.component.html
- - [front] update CellComponent:
- - Adjust max-width and max-height properties in cell.component.scss
- - Set expand property to true by default in cell.component.ts
- - Add ElementRef dependency to constructor in cell.component.ts
- - Set resize property of host element to "both" when expand property is false and column value is a large JSON object in cell.component.ts
- - [front] update UpdateDataDialogComponent:
- - Display the content of updateSuggestions object only when it's not empty in update-data-dialog.html
- - [front] update UpdateDataDialog:
- - Add readonly Object property to allow iteration over object keys in update-data-dialog.ts
2023-08-13
- bug: Fix MongoDB wrapper property type mapping
- art: Change drawer mode to "over" in container.component.html
- The drawer mode in the container component is changed to "over" instead of "side".
- 🎨 Remove unnecessary styles from container.component.scss
- Some unnecessary styles are removed from the container component stylesheet.
- 🎨 Remove unnecessary styles from explore.component.scss
- Some unnecessary styles are removed from the explore component stylesheet.
- 🎨 Remove unnecessary styles from structure.component.scss
- Some unnecessary styles are removed from the structure component stylesheet.
- ✨ Add expand and delete functionality in relations.component.html
- The relations component HTML is updated to add expand and delete functionality. The expand functionality shows and hides additional details of each relation, while the delete functionality allows removing a relation.
- 🎨 Add styles for expand and additional details in relations.component.scss
- Styles for the expand functionality and additional details in the relations component are added.
- 🐛 Fix typo in relations.component.html
- A typo in the relations component HTML is fixed. The class name "expended" is updated to "expanded".
- 🔥 Remove unnecessary styles from tables.component.scss
- Some unnecessary styles are removed from the tables component stylesheet.
- 🎨 Update styles for mat-tooltip in styles.scss
- Styles for the mat-tooltip component are updated in the global stylesheet.
- ♻️ Refactor RelationsComponent to improve code readability
- The RelationsComponent class is refactored to improve code readability and maintainability.
- 🔀 **Refactor:** Refactor README and frontend files
- The commit refactors the content of the README.md file and makes changes to several frontend files. The changes include fixing the formatting and styles, updating tooltips and buttons, and implementing pagination labels. The refactor improves the readability and usability of the application.
2023-08-06
- `🎨 chore: Refactor container component`
- Refactored the container component to improve code readability and maintainability. Made the following changes:
- - Added a heading tag to the error message in the connection component HTML.
- - Adjusted the spacing and added a gap between buttons in the container component HTML.
- - Added a new button to show error logs in the container component HTML.
- - Implemented a `showError()` function in the container component to open a dialog with error logs.
- - Injected the `MatDialog` service to the container component constructor.
- The changes were made to improve the user experience and provide better error handling in the application.
- art: Rearrange files and clean up code
- Rearranged files in the repository to improve organization and
- maintainability. Also, conducted code clean-up to remove unnecessary
- code and improve code quality.
- The changes were done to enhance the overall structure and readability
- books: **README**: Add table alterations for PostgreSQL and MongoDB
- The changes in this commit update the README file to include the addition of table alterations for PostgreSQL and MongoDB. These alterations include changing table names, setting functions as default values, and allowing null values as defaults.
- These changes were made to enhance the functionality of the application by providing more flexibility and customization options when working with databases.
- 🐛 **MongoDB**: Fix sampleDatabase function
- This commit fixes an issue in the `sampleDatabase` function of the `mongodb.js` file. The function now correctly retrieves a specified number of random samples from each collection in a database and returns the results.
- The fix was necessary to ensure the accurate retrieval of sample data for testing and analysis purposes.
- 🎨 **Add Index Dialog**: Improve layout and functionality
- The changes in this commit improve the layout and functionality of the Add Index Dialog component. The dialog now displays a button toggle group for selecting the index type and allows the user to choose multiple columns for the index. Additionally, the name of the index is automatically generated based on the selected type, table name, and columns.
- These enhancements were made to provide a better user experience and facilitate the creation of indexes in the application.
- 🎨 **Create Table Dialog**: Improve layout
- This commit improves the layout of the Create Table Dialog component. The dialog now uses a flexbox layout to arrange the input fields in a vertical column.
- The change was made to enhance the visual appearance and alignment of the dialog, making it more user-friendly.
2023-08-05
- twisted_rightwards_arrows: Merge branch 'develop' into feature/database-operations
- The changes in this commit include various modifications and bug fixes across multiple files in the project.
- In `README.md`, the changes include:
- - Removing an item from the to-do list: "Server gît avec autobackup en var d'env" because it involves using git large file and gzip functionalities.
- In `back/src/endpoint/server/controller.js`, the changes include:
- - Removing the unused `getRelations()` and `getIndexes()` methods from the `Controller` class.
- In `back/src/wrapper/mongodb.js`, the changes include:
- - Adding the `writeFileSync` method to the list of imported modules.
- - Modifying the `dump()` function to support exporting data as JSON and BSON files.
- - Modifying the `load()` function to handle different file types and perform the corresponding import operation.
- In `front/src/app/connection/create-database-dialog.html`, the changes include:
- - Modifying the layout of the dialog content.
- In `front/src/app/core/explore/explore.component.ts`, the changes include:
- - Modifying the `id` property value in the `openDialog()` function.
- In `front/src/app/core/insert/insert.component.ts`, the changes include:
- - Modifying the logic for parsing JSON files in the `handleFileSelect()` function.
- In `front/src/app/right/dump/dump.component.html`, the changes include:
- - Adding a progress spinner to indicate loading state.
- - Disabling the dump button if no tables are selected.
- In `front/src/app/right/dump/dump.component.ts`, the changes include:
- - Adding the `isLoading` property to track loading state.
- - Modifying the `dump()` function to set `isLoading` to `true` before making the dump request and to `false` after completing the dump process.
- In `front/src/app/right/load/load.component.html`, the changes include:
- - Adding an input field to specify the database for importing files.
- In `front/src/app/right/load/load.component.ts`, the changes include:
- - Modifying the `importFiles()` function to pass the selected database to the server for importing files.
- In `front/src/classes/drivers/mongodb.ts`, the changes include:
- - Adding support for importing .gz files.
- In `front/src/styles.scss`, the changes include:
- - Setting a max height for the snack bar content to enable vertical scrolling.
2023-08-04
- ✨ Front-end: Updated ExploreComponent, InsertComponent, and StructureComponent
- - Modified ExploreComponent to include the `id` property when opening the dialog.
- - Modified InsertComponent to include the `id` property when opening the dialog.
- - Modified StructureComponent to include the `id` property when opening the dialog.
- These changes were made to ensure that the correct data is passed to the dialog components when they are opened.
- 📝 Documentation: Updated README.md
- - Removed the `export` keyword from the list of features for MongoDB.
- - Added new lines at the end of the file.
- These changes were made to improve the readability of the README file and remove unnecessary information.
- 🔧 UI: Updated logs-dialog.html
- - Added a hyperlink to open a new issue in GitLab for reporting bugs.
- This change was made to provide users with an easy way to report bugs by directly opening a new issue in the GitLab repository.
- 💄 UI: Updated top-right.component.ts
- - Initialized the `str` variable as an empty object.
- This change was made to prevent potential errors in the `LogsDialog` component.
- art: Update column styles in structure component
- - Add CSS styles to structure.component.scss to update the appearance of the table columns.
- - Hide the "oldValues" class by default and show it when the "showOlds" class is applied.
- - Show the "newValues" class when the "showOlds" class is applied.
- The changes were made to enhance the visual representation of the table columns and provide the user with the ability to toggle between showing old values and new values.
- sparkles: Add missing line to the `ngOnInit` function in `ConnectionComponent`
- The missing line in the `ngOnInit` function of the `ConnectionComponent` sets the selected server to `undefined`. This line was added to ensure that the selected server is reset when the component is initialized.
- 🚧 Improve error handling in `InsertComponent`
- The error handling in the `InsertComponent` has been improved to handle cases where the imported file is not compatible. If the imported file is not compatible or if it is not an array, an error message is displayed using a snackbar.
- 🔧 Add preview button in `UpdateColumnDialog`
- A preview button has been added to the `UpdateColumnDialog` template. This button allows users to preview the old values of the column being updated. When clicked, it opens a new tab with the preview of the old values.
- ♻️ Refactor `setSelected` function in `Server` class
- The `setSelected` function in the `Server` class has been refactored to accept an optional server parameter. This allows for unsetting the selected server by passing `undefined`. Updated logic has been added to handle the case where no server is selected. The function has been modified to set the `selected` variable to the provided server or unset it if `undefined` is passed.
- This commit improves the initialization of the `ConnectionComponent` by setting the selected server to `undefined`. It also enhances error handling in the `InsertComponent` by displaying an error message for incompatible files. Additionally, it adds a preview button to the `UpdateColumnDialog` template for viewing old values of the column. Finally, the `setSelected` function in the `Server` class is refactored to handle the case of unsetting the selected server.] Add server selection in ConnectionComponent
- The `ngOnInit` method in ConnectionComponent now sets the selected server to `undefined` when the component is initialized. This change allows for better handling of server selection in the application.
- The reason for this change is to ensure that the selected server is cleared when the ConnectionComponent is loaded, so that the application state remains consistent and there are no conflicts with previously selected servers.
2023-08-03
- 🔧 Frontend: Adjust margin for logo in connection.component.scss
- The margin for the logo in the connection.component.scss file was adjusted from 15px to 18px.
- The margin adjustment was made to improve the visual layout of the connection component.
- 🔧 Frontend: Adjust layout for connection-dialog.html
- The layout for the connection-dialog.html file was adjusted for better display.
- The changes were made to improve the display and alignment of elements in the connection dialog.
- 🔧 Frontend: Add toggleAutoRefresh to container.component.ts
- The toggleAutoRefresh function was added to the container.component.ts file.
- The function allows for toggling the auto refresh feature of the logs dialog.
- 🔧 Frontend: Add auto refresh toggle to logs-dialog.html
- An auto refresh toggle was added to the logs-dialog.html file.
- The toggle allows users to enable or disable the auto refresh feature for the logs dialog.
- 🔧 Frontend: Load table stats in advanced.component.ts
- Table stats are now loaded in the advanced.component.ts file.
- The changes were made to display up-to-date stats for the selected table.
- 🔧 Frontend: Add loadStats function to advanced.component.ts
- The loadStats function was added to the advanced.component.ts file.
- The function loads the table stats for the selected table.
- 🔧 Frontend: Display external link and add loadStats function to iframe-dialog.html
- An external link button and the loadStats function were added to the iframe-dialog.html file.
- The changes were made to display an external link for the iframe and load table stats.
- 🔧 Frontend: Adjust layout for export-query-dialog.html
- The layout for the export-query-dialog.html file was adjusted.
- The changes were made to improve the visual layout of the export query dialog.
- 🔧 Frontend: Adjust layout for add-column-dialog.html
- The layout for the add-column-dialog.html file was adjusted.
- The changes were made to improve the visual layout of the add column dialog.
- 🔧 Frontend: Adjust layout for add-index-dialog.html
- The layout for the add-index-dialog.html file was adjusted.
- The changes were made to improve the visual layout of the add index dialog.
- 🔧 Frontend: Adjust layout for update-column-dialog.html
- The layout for the update-column-dialog.html file was adjusted.
- The changes were made to improve the visual layout of the update column dialog.
- 🔧 Frontend: Load database stats in advanced.component.ts
- Database stats are now loaded in the advanced.component.ts file.
- The changes were made to display up-to-date stats for the selected database.
- The function loads the database stats for the selected database.
- 🔧 Frontend: Adjust layout for create-table-dialog.html
- The layout for the create-table-dialog.html file was adjusted.
- The changes were made to improve the visual layout of the create table dialog.
- 🔧 Frontend: Adjust layout for batch-update-dialog.html
- The layout for the batch-update-dialog.html file was adjusted.
- The changes were made to improve the visual layout of the batch update dialog.
- 🔧 Frontend: Adjust layout for export-result-dialog.html
- The layout for the export-result-dialog.html file was adjusted.
- The changes were made to improve the visual layout of the export result dialog.
- 🔧 Frontend: Adjust layout for update-data-dialog.html
- The layout for the update-data-dialog.html file was adjusted.
- The changes were made to improve the visual layout of the update data dialog.
- 🔧 Frontend: Adjust styles.scss
- The styles.scss file was adjusted to improve the layout and alignment of elements.
- The changes were made to improve the visual layout of various components.
- recycle: Refactor UI in logs-dialog.html and structure.component.html
- - In logs-dialog.html, removed the dynamic styling of the h2 element that
- was based on the value of the "file" variable.
- This removes the unnecessary conditional expression and simplifies the template.
- - In structure.component.html, removed the unnecessary h2 element inside the
- div element. The text content "Indexes" is now directly inside the div.
- - Updated the styles for .mat-dialog-title in styles.scss.
- - Added a background color of #2196f3.
- - Added border-radius of 3px on the top corners.
- - Changed the text color to #1e1e1e.
- This refactoring improves the code readability and simplifies the HTML templates in logs-dialog.html and structure.component.html.
- The modification in styles.scss improves the visual appearance of the .mat-dialog-title element.
- 🎉 feat: Add dynamic width to export-result-dialog
- The export-result-dialog.html file was modified to add a dynamic width to the mat-form-field element with the appearance of "fill". The "width" attribute was added with a value of 100% to ensure the element takes up the full width of its container. This change was made to improve the responsiveness and visual appearance of the export result dialog.
- 🔧 fix: Update styling in styles.scss
- Multiple changes were made to the styles.scss file:
- - The display property of .mat-drawer, .mat-sidenav, and .mat-dialog-container selectors was removed to prevent these elements from being hidden.
- - The background-color property of .mat-drawer and .mat-sidenav selectors was updated to #303030 for a darker background color.
- - The box shadow and transition properties were added to .mat-dialog-container selectors to provide a smooth transition effect when focusing or hovering over the dialog container.
- - The border color of .mat-dialog-container selectors was changed from black to #1e1e1e for a darker border color.
- - The border-bottom property of .mat-dialog-title selectors was updated to #1e1e1e for a darker bottom border color. The margin and padding properties were also modified to adjust the spacing of the dialog title.
- - The --ngx-json-key variable was updated to #2196f3 to change the color of JSON keys in ngx-monaco-editor.
- These changes were made to improve the visual appearance and user experience of the application.] Update styles for export result dialog and sidebar
- - Enforced the width of the mat-form-field in the export result dialog to 100%, ensuring that it fills the entire width of the dialog.
- - Updated the background color of the mat-drawer and mat-sidenav to #303030 for consistency.
- - Removed unnecessary styles for .mat-dialog-container.
- - Modified the border color and added a box shadow to .mat-dialog-container when it is focused or hovered.
- - Adjusted the styling for .mat-dialog-title, including the border color, margin, and padding.
- - Updated the color of ngx-json-key to #2196f3 for improved visibility.
- The changes were done to enhance the visual appearance and functionality of the export result dialog and sidebar in the application.
- art: Add selection clearing in ExploreComponent
- The ExploreComponent now clears the selection when a result is canceled to ensure that the selected data is updated properly. This change improves the user experience by preventing any unwanted data from persisting in the selection.
- 💄 Add border to .mat-dialog-container
- The .mat-dialog-container now has a 1px solid black border to provide a visual separation between the dialog and the rest of the app. This change enhances the styling of the dialog and improves its overall appearance.
- This commit improves the functionality and styling of the ExploreComponent. The selection clearing ensures that the selected data is updated correctly, enhancing the user experience. The border added to .mat-dialog-container improves the visual separation of the dialog from the rest of the app, enhancing its appearance.] Add selection clear in ExploreComponent
- The ExploreComponent was modified to include a line of code that clears the selection when a certain condition is met. This change was made to ensure that the selection is cleared properly, providing a better user experience.
- 🎨 [front-end] Add border to mat-dialog-container
- A border was added to the `.mat-dialog-container` CSS class in the styles.scss file. This change was made to improve the visual appearance of the dialog container by separating it from its surroundings.
2023-08-02
- sparkles: Add right-click functionality to explore.component.html
- - Right-click options (copy, paste, set null, delete rows, export to csv/json) are added to the explore.component.html file.
- - This change is implemented to provide users with more options and functionality when exploring and manipulating data in the application.
- 💬 These changes were done to enhance the user experience and provide more flexibility in data exploration and manipulation within the application.
- 🚀 [front]feat: Add connection dialog styling changes
- - Modified the style of the `ngx-monaco-editor` in the `add-connection-dialog.html` file to have a width of 100%.
- This commit improves the styling of the connection dialog to make it more visually appealing and ensure that the editor takes up the entire width of the dialog.
- 🚀 [front]chore: Remove unnecessary style in connection dialog
- - Removed the `style` attribute in the `connection-dialog.html` file that set the height and width of the `ngx-monaco-editor`.
- This commit removes unnecessary inline styles in the connection dialog to allow the editor to take up its default height and width.
- 🚀 [front]fix: Redirect to query route properly
- - Updated the `redirectTo` path in the `core-routing.module.ts` file to include a trailing slash.
- This commit fixes a bug where the redirect to the query route was not working properly. The addition of the trailing slash ensures that the redirect path is correct.
- 🚀 [front]style: Update explore component UI
- - Made changes to the UI of the explore component in the `explore.component.html` file.
- - Added a button with a menu for performing actions on selected rows.
- - Adjusted the layout and styling of the table.
- This commit updates the UI of the explore component to improve the user experience and enhance the visual appeal of the table.
- 🚀 [front]chore: Remove unnecessary style in export query dialog
- - Removed the `style` attribute in the `export-query-dialog.html` file that set the width and height of the `ngx-monaco-editor`.
- This commit removes unnecessary inline styles in the export query dialog to allow the editor to take up its default width and height.
- 🚀 [front]chore: Remove unnecessary style in export result dialog
- - Removed the `style` attribute in the `export-result-dialog.html` file that set the width and height of the `ngx-monaco-editor`.
- This commit removes unnecessary inline styles in the export result dialog to allow the editor to take up its default width and height.
- 🚀 [front]style: Update query component UI
- - Modified the style of the `ngx-monaco-editor` in the `query.component.html` file to adjust the height.
- This commit updates the UI of the query component to improve the layout and ensure that the editor has a suitable height.
- 🚀 [front]style: Update query component styles
- - Made changes to the styles of the query component in the `query.component.scss` file.
- - Adjusted the width and height of the `ngx-monaco-editor` to create a better layout.
- This commit improves the visual appearance of the query component by adjusting the width and height of the editor and applying appropriate styles.
- 🚀 [front]fix: Check for empty code parameter in query component
- - Updated the check for the 'code' parameter in the query component to also verify that the value is not empty after trimming.
- This commit ensures that the 'code' parameter in the query component is checked for both existence and non-empty value to prevent errors.
- 🚀 [front]style: Update load component styles
- - Made changes to the styles of the load component in the `load.component.html` file.
- This commit updates the visual styling of the load component, improving the layout and ensuring that the editor has appropriate dimensions.
- 🚀 [front]chore: Remove unnecessary style in update data dialog
- - Removed the `style` attribute in the `update-data-dialog.component.html` file that set the height and width of the `ngx-monaco-editor`.
- This commit removes unnecessary inline styles in the update data dialog to allow the editor to take up its default height and width.
- 🚀 [front]style: Add global styles
- - Added global styles to the `styles.scss` file to customize the appearance of the `ngx-monaco-editor`.
- This commit adds global styles to the project's main stylesheet to customize the appearance of the `ngx-monaco-editor` component.
- These changes were made to improve the visual appearance, usability, and overall user experience of the application by refining the styling and layout of various components.
- art: Rearrange the structure of update-column-dialog.html
- The structure and layout of the update-column-dialog.html file have been rearranged to improve readability and user experience. The header section now contains a draggable handle, the dialog title, and a close button. The content section contains the form for updating the column, and the actions section contains a link for information on data types, as well as the apply button for applying the changes. These changes were made to enhance the usability and visual appeal of the update column dialog.
2023-08-01
- recycle: Refactor routing in core module
- Refactor the routing in the core module to redirect the `/query` path to `/query/` and set the `pathMatch` to `'full'`.
- This change is done to ensure that when a user navigates to `/query`, they are automatically redirected to `/query/`, maintaining consistency in the URL structure.
- books: Update README.md and explore.component.ts
- - Add checkbox for duplicate and export data actions in README.md.
- - In explore.component.ts, instead of manually updating the data source and change subscription, call the `refreshData()` method after closing the dialog.
- The changes are done to improve the user experience and provide additional functionality in the application.
- 🎨 Update history component template and typescript files
- - In `history.component.html`, changed the `sort` variable to `order` in the `mat-button-toggle-group` change event.
- - In `history.component.html`, updated the `*ngFor` loop to use the `sort` pipe with the `order` value.
- - In `history.component.ts`, changed the variable name `sort` to `order` and updated its type.
- - Added a `remove` function in the `HistoryComponent` class to remove selected history items.
- - Created a new `SortPipe` to handle the sorting of the query history based on either time or occurrence.
- - Updated the imports in `right.module.ts` to include the `SortPipe`.
- The changes were made to update the sorting feature in the history component. Instead of using the `sort` variable to determine the sorting order, the `order` variable is now used. Additionally, a new pipe `SortPipe` was created to handle the sorting operation based on the selected order. The `remove` function allows for the removal of selected history items. These changes improve the functionality and user experience of the history component.
- lipstick: Update UI in diagram.component.html and update-data-dialog.component.html
- The UI in the diagram.component.html and update-data-dialog.component.html files was updated. The "Hide columns without tags" tooltip in the diagram component was modified to remove the mention of an emoji. In the update-data-dialog component, the label for each column suggestion was simplified to just display the column key.
2023-07-31
- recycle: Refactor container component
- Refactor the container component in order to improve code readability and maintainability.
- - Import the `DomSanitizer` module from `@angular/platform-browser` to safely bypass security and sanitize HTML content.
- - Modify the `load()` method to use the `DomSanitizer` module to sanitize and reverse the HTML content retrieved from the server response before displaying it.
- These changes were done to enhance the security of the application and improve the presentation of logs in the container component.
2023-07-30
- art: style(insert.component.html): Add scrollDiv class to nested div
- The scrollDiv class is added to the nested div in the insert.component.html file. This class sets the overflow-y property to hidden, allowing for more control over the scroll behavior of the table. This change was made to improve the styling and layout of the insert component.
- ✨ Add new container toolbar buttons and styles
- - Updated the container component HTML to replace the `mat-stroked-button`
- attribute with `mat-raised-button` for the home button.
- - Updated the container component HTML to add a conditional `ngIf` statement
- for the refresh button based on the selected server, database, and loading
- - Updated the container component SCSS to change the color of the tab links
- - Added proper indentation to the styles.scss file.
- The changes were made to improve the user interface of the container toolbar by
- making the buttons more visually consistent and adding conditional rendering
- for the refresh button to improve usability.
- 🎨 Add styles to container component
- Added styles to the container component to adjust the position of the ink bar in the mat-drawer.
- 💡 Improve logic in advanced.component.ts
- Improved the logic in the advanced component by changing the index of accessing the Tabs array.
- 🐛 Fix dialog data in explore.component.ts
- Modified the dialog data in the explore component to pass an object with the row and updateInPlace properties.
- ✨ Add close button to iframe-dialog.html
- Added a close button to the iframe dialog for closing the dialog.
- 🎨 Update styles in insert.component.scss
- Updated the styles in the insert component to adjust the margin of the result class.
- 🐛 Fix paginator initialization in insert.component.ts
- Fixed the paginator initialization in the insert component by moving it to the ngOnInit method.
- 💄 Update toolbar buttons in insert.component.html
- Updated the toolbar buttons in the insert component to use mat-flat-button and mat-stroked-button.
- 🐛 Fix row generation in insert.component.ts
- Fixed the row generation in the insert component by only generating columns that are not the action column.
- 🐛 Fix matRowDef and matHeaderRowDef in insert.component.html
- Fixed the matRowDef and matHeaderRowDef directives in the insert component by using the displayedColumns property without a selector.
- 🚚 Remove unused import in tables.component.ts
- Removed the unused import in the tables component.
- ♻️ Refactor Tabs constant in tables.component.ts
- Refactored the Tabs constant in the tables component to be an array of strings instead of objects.
- 🔥 Remove unused column.ts file
- Removed the unused column.ts file.
- ✨ Add updateInPlace property to UpdateDataDialogComponent
- Added the updateInPlace property to the UpdateDataDialogComponent to determine if the update should be done in place or not.
- 🐛 Fix update request in UpdateDataDialogComponent
- Fixed the update request in the UpdateDataDialogComponent to only make the request if the updateInPlace property is true.
- 🎨 Update styles in styles.scss
- Updated the styles in styles.scss to set the border-spacing of tables to 0px.
- ✨ Add button color to home button in container component
- This commit adds the attribute `color="accent"` to the home button in the container component's HTML template. The purpose of this change is to set the button color to accent color in order to make it visually stand out and improve the user experience.
- 🔧 Update database text in advanced component
- This commit updates the text "update" to "database" in the advanced component's HTML template. The purpose of this change is to provide clearer and more intuitive understanding to the user about the button's functionality, which is to convert the entire database.
- art: Clean up commit messages and explain changes
- - Remove unnecessary lines and fix formatting in HTML files.
- - Replace `color="accent"` with `color="primary"` for consistency.
- - Fix font color for `.mat-header-cell` in the table.
- - Add hover effect to table rows in `#right`.
- - Update `box-shadow` color on hover for code blocks.
- WHY: The changes were made to improve the formatting, consistency, and readability of the code. The font color in the table was fixed to match the primary color. The hover effect on table rows was added to improve the user experience. The `box-shadow` color on hover for code blocks was updated to match the primary color.
- ✨ 💄 Updated Angular Material imports in app.module.ts
- The commit updates the imports in the `app.module.ts` file to include the `MatTabsModule` from Angular Material. These changes were made in order to use Angular Material tabs in the application.
- 🛠️ 🔨 Refactored container.component.html
- The commit refactors the `container.component.html` file. The changes include:
- - Separate the server host and port from the server/database name
- - Add a line break between the server host/port and the server/database name
- The changes were made to improve the readability and layout of the server information displayed in the application.
- 🔧 🔧 Updated container.component.scss
- The commit updates the `container.component.scss` file. The changes include:
- - Adjusting the line height, font weight, and font size of the server information in the drawer component
- - Removing the border at the bottom of the panel
- - Adjusting the height of the tab links
- These changes were made to improve the visual appearance and styling of the container component in the application.
- 🔄 🔄 Refactored container.component.ts
- The commit refactors the `container.component.ts` file. The changes include:
- - Removing the unused import `MAT_DIALOG_DATA`
- - Adding the `environment` variable for better code organization
- These changes were made to clean up the code and improve the organization of dependencies in the container component.
- The commit updates the `styles.scss` file. The changes include:
- - Adding a backdrop filter blur to the material tooltips
- These changes were made to improve the visual appearance of material tooltips in the application.
2023-07-29
- bug: Fix modifyColumn method in SQL class
- The `modifyColumn` method in the SQL class was fixed to correctly rename columns using the `ALTER TABLE` command. Additionally, the method now checks if the old and new column objects are equal, and if not, updates the column in the database using the `CHANGE` command.
- The method now returns an object with the property `ok` set to `true` if the modification was successful.
- The modifications were necessary to ensure that column modifications are properly executed and reflected in the database.
- 🎨 Remove unnecessary modifyColumn method in MySQL class
- The `modifyColumn` method in the MySQL class was removed as it is already implemented in the parent SQL class.
- This change was made to eliminate redundancy and improve code organization.
- 🎨 Remove unnecessary modifyColumn method in PostgreSQL class
- The `modifyColumn` method in the PostgreSQL class was removed as it is already implemented in the parent SQL class.
- books: Update README.md and fix column component HTML
- - Update the README.md file to include a task related to reworking MySQL load with a tunnel.
- - Fix the HTML code in the add-column.component.html file to remove unnecessary layout gaps.
- The changes were made to update the task list in the README.md file and fix the HTML structure in the add-column.component.html file. The README.md file needed to be updated to include a task related to reworking MySQL load with a tunnel. The HTML code in the add-column.component.html file needed to be fixed to remove unnecessary layout gaps.
2023-07-28
- memo: chore(app): update monaco editor config
- - Updated the monacoConfig in the app.module.ts file.
- - Changed the font family to 'Fira Code, monospace'.
- - Changed the font size to '13px'.
- - The changes were made to improve the appearance and readability of the code in the editor.
- 📝 style(container): remove font-weight from #server
- - Removed the 'font-weight' property from the #server selector in the container.component.scss file.
- - The change was made to remove the lighter font-weight.
- 📝 style(structure): update cell styling in structure component
- - Added the ::ng-deep selector with app-cell in the structure.component.scss file.
- - Set the font-weight to inherit and letter-spacing to inherit for app-cell.
- - The change was made to update the styling of the cells in the structure component.
- 📝 style(trigger): remove unnecessary styles in trigger component
- - Removed the inline styling for ngx-monaco-editor in the trigger.component.html file.
- - Removed the width and overflow properties from #container in the trigger.component.scss file.
- - Removed the margin: 0px; property from .mat-card-footer in the trigger.component.scss file.
- - The changes were made to remove unnecessary styles and improve the layout and appearance of the trigger component.
- 📝 style(ai): remove unnecessary styles in ai component
- - Removed the height and width properties from the .mat-card-content and .responseCode selectors in the ai.component.scss file.
- - Removed the position: relative; property from .responseCode selector in the ai.component.scss file.
- - The changes were made to remove unnecessary styles and improve the layout and appearance of the ai component.
- 📝 style(cell): update cell styling
- - Added the font-weight: 300 and letter-spacing: 1px properties to the .cell.component.scss file.
- - The changes were made to update the styling of the cell component.
- 📝 chore(index): update font-family link
- - Updated the font-family link in the index.html file.
- - Added the 'Fira Code' and 'Noto Serif' font families.
- - The changes were made to update the available font families in the application.
- 📝 style: update global styles
- - Removed the 'font-weight: lighter !important;' property from the body selector in the styles.scss file.
- - Updated the font-family to 'Noto Sans, sans-serif' in the body selector.
- - The changes were made to update the global styles and improve the font appearance in the application.
- art: Improve AI component UI and styles
- - Add a matTooltip to the "Edit request" button in the AI component HTML template for better user experience.
- - Refactor the CSS styles in the AI component SCSS file to improve readability and maintainability.
- - Add margin and padding to the .mat-card class in the global styles to give it proper spacing and alignment.
- - Change the color of .mat-header-cell to use the default shade from the $angular-primary color palette.
- - Update the hover effect for code blocks (.hljs) to use box-shadow instead of a border.
- These changes were made to improve the user interface and overall user experience in the AI component and global styles. The added matTooltip provides a helpful tooltip for the "Edit request" button. The refactored CSS styles make the code easier to read and modify. The adjustments to the .mat-card class enhance the spacing and alignment of the cards. The changes to the .mat-header-cell and code block hover effect improve the styling consistency and visual appeal.
- ✨ Add router-outlet to app.component.ts
- This commit adds the router-outlet element to the app.component.ts file, which is responsible for rendering the routes in the application. The previous code that included a link to report issues has been removed.
- 🛠 Refactor external links in container.component.html
- This commit refactors the external links in the container.component.html file. The Gitlab link now points specifically to the issues page, and the Stack Overflow link has been replaced with a link to the project documentation.
- 🔧 Update routing in query.component.ts
- This commit updates the routing in the query.component.ts file. Instead of navigating to a specific route with the query as a parameter, it now uses queryParams to merge the query into the current route's query parameters. This allows the query to be updated without causing a full page reload.
- 🎨 Update history.component.html
- This commit adds tooltips to the buttons in the history.component.html file. The star button now has a tooltip that says "Add to favorite" and the replay button has a tooltip that says "Replay query".
- recycle: Update code styling and layout
- The changes in this commit update the code styling and layout in several files within the application. Specifically, the following changes were made:
- - In `app.component.ts`, the tooltip text for the "Report Issue" button was changed from "Create Issue" to "Report Issue".
- - In `app.module.ts`, the configuration for the Monaco editor was updated to set the font size to 14px, font weight to 400, font family to Roboto, and tab size to 8 spaces.
- - In `query.component.scss`, the flex property for the `#results` element was removed.
- - In `query.component.ts`, a new host listener was added to trigger code suggestions when the ALT key and Spacebar are pressed together.
- - In `ai.component.html`, the color attribute for the "Run and send result to AI" button was removed and the tooltip position was changed to "left".
- - In `ai.component.scss`, the position property for the `.actions` class was removed and the `#container` element was updated to include overflow-wrap.
- - In `history.component.html`, the background color for star items in the query history list was changed to black.
- - In `history.component.scss`, the hover effect for `mat-card` elements was updated to display the actions when hovered.
- - In `cell.component.scss`, the font size property was removed.
- - In `helper.ts`, a function for triggering code suggestions using the ALT key and Spacebar was removed.
- - In `styles.scss`, the styling for code blocks (`.hljs`) and card elements (`.mat-card`) was updated to include font family, tab size, and border properties.
- These changes improve the overall code styling and layout of the application, providing a better user experience.
- sparkles: Add query size and data source initialization
- - Added code to initialize `querySize` and `dataSource` properties in the `QueryComponent` constructor.
- - The `querySize` property is set to -1 and the `dataSource` property is assigned a new instance of `MatTableDataSource`.
- - This ensures that the `querySize` is initialized with a default value and the `dataSource` is ready to store data.
- - This change was made to ensure proper initialization and usage of these properties in the `QueryComponent`.
2023-07-27
- sparkles: feat: Add connection details in advanced.component.html
- - Added a new `` element to display the connection details in the advanced.component.html file.
- 🔨 refactor: Update fkLink logic in cell.component.ts
- - Updated the logic for generating the fkLink variable in the cell.component.ts file.
- - Instead of using a relative path, the new logic generates an absolute path by including the selected server name, selected database name, and the destination table name.
- - This change improves the functionality and navigability of the fkLink.
- The changes were made to enhance the user experience by providing additional information and improving navigation in the application.
- sparkles: Add create issue button to app.component.ts
- Added a new button to the app.component's template that links to the GitLab project's issue creation page. This allows users to easily create new issues for bug reports or feature requests. The button is positioned in the bottom right corner of the screen.
- 🎨 Remove unused import in app.module.ts
- Removed the unused import of `ConnectionInfoDialog` from the list of imports in app.module.ts.
- 🔥 Remove connection-dialog.html
- Deleted the connection-dialog.html file as it is no longer needed. It was previously used as a template for the connection info dialog, but the dialog has been removed from the app.
- ♻️ Refactor container.component.html
- Refactored the container.component.html file to remove unnecessary code related to the connection info dialog. It also removed some unused mat-menu items.
- ♻️ Refactor container.component.ts
- Refactored the container.component.ts file to remove the unused `showConnection()` method and the `ConnectionInfoDialog` component.
- ✨ Add advanced settings editor to advanced.component.html
- Added a new ngx-monaco-editor component to the advanced.component.html file. This editor will be used to display advanced settings in JSON format. It is styled with a height of 30vh.
- ✨ Add JSON editor options to advanced.component.ts
- Added options for the JSON editor in the advanced.component.ts file. The editor will display JSON content and is set to read-only mode.
- These changes were made to improve the user experience and remove unused code from the application. The create issue button allows users to easily report bugs or request new features. The removal of unused code improves maintainability and reduces complexity. The addition of the JSON editor in advanced.component.html provides a better way to display advanced settings.
- sparkles: Added support for SQL Server foreign key constraints
- Updated the `SQL` class in `back/src/shared/sql.js` to generate the foreign key constraints with the correct `ON DELETE` and `ON UPDATE` rules for SQL Server. This ensures the referential integrity of the database.
- This commit also includes minor code refactoring and formatting changes.
- 🐛 Fixed table columns display issue in TablesComponent
- Modified the `TablesComponent` in `front/src/app/core/tables/tables.component.ts` to include the column type in the table view. This fixes an issue where the column type was not being displayed.
- 💄 Improved UI of history component
- Updated the HTML template for the `HistoryComponent` in `front/src/app/right/history/history.component.html` to improve the UI. Added a tooltip to display the history size and adjusted the alignment of the elements.
- ♻️ Refactored RelationsComponent
- Refactored the `RelationsComponent` in `front/src/app/right/relations/relations.component.ts` to improve code organization and readability. Removed redundant code and unnecessary method calls. Also added the missing `await` statement in the `delete` and `add` methods.
- ⚡ Improved performance of table relations
- Optimized the loading and refreshing of table relations in the `RelationsComponent` to reduce server requests and improve performance. Removed unnecessary method calls and improved data synchronization.
- 🏗 Restructured request service
- Updated the `RequestService` in `front/src/shared/request.service.ts` to set the selected server upon request completion. This ensures that the selected server is correctly updated in the UI.
- 🚀 feat(front): Update column.component.html, history.component.html, history.component.scss, history.component.ts, history.service.ts, and styles.scss
- - Update column.component.html to fix the condition for 'Array' slide toggle.
- - Update history.component.html to add a span to display the number of queries and a button to clear the history.
- - Update history.component.scss to adjust the margin and padding of the history cards.
- - Update history.component.ts to use the `maxHistory` constant.
- - Update history.service.ts to use the `maxHistory` constant and limit the number of saved queries.
- - Update styles.scss to adjust the padding of the code blocks.
- This commit improves the user interface and functionality of the column and history components in the front-end application. It fixes a bug in the column component and enhances the display and management of query history in the history component. The styles.scss file is also updated to refine the appearance of code blocks.
- ✨ feat(README): Update database-specific features
- - Added export, relations, harmonizer, and insert functions for MongoDB.
- - Added support for multiple schemas in PostgreSQL.
- - Added own type to autocomplete and right-column.
- - Updated own_object function.
- - Explored cloud options: Google Cloud, Aurora, and RDS.
- - Implemented BLOB CRUD operations: download and upload.
- - Completed the present function.
- These changes were made to enhance the functionality and compatibility of the application with different databases and improve the user experience.
2023-07-26
- sparkles: Add own type to autocomplete + right-column
- Added the functionality to add custom types to the autocomplete list and the right-column in the application. This allows users to define their own types and use them in their queries, providing more flexibility and customization.
- art: Chore: Update README.md and query.component.scss
- In this commit, the README.md file was updated to include new tasks and remove unnecessary ones. The update includes adding a new type to autocomplete and right-column, modifying default to function suggestions, and discussing the mandatory size in postgre and export in mongo.
- The query.component.scss file was also modified, where the width of ngx-monaco-editor was set to 50% and the first child was resized and had horizontal overflow.
- WHY: The changes were made to improve the functionality and appearance of the application.
- hammer: Refactor query component
- Refactor the query component by making the code more readable and organized. Moved the prebuilt buttons into a `mat-select` dropdown and removed the unnecessary code for toggling the diff mode. Also, made some styling changes to the `goToPage` class.
- These changes were made to improve the user experience and make the code more maintainable.
2023-07-25
- card_index: Add support for user defined types
- User defined types have been added to the Postgre driver. This change allows users to define their own custom types, expanding the flexibility and customization options of the application.
- Update `container.component.html`
- The following changes were made to the `container.component.html` file:
- - The Twitter link has been replaced with a Stack Overflow link. This change was made to provide a more relevant and useful link for users.
- - The SVG for the Twitter icon has been removed from the assets folder as it is no longer needed.
- Update `container.component.ts`
- The following changes were made to the `container.component.ts` file:
- - The `for...of` loop in the constructor has been updated to include the new `stackoverflow` icon.
- Update `insert.component.html`
- The following changes were made to the `insert.component.html` file:
- - The button for selecting example code has been updated to display a menu with options for different data types, such as string, number, date, etc. This change provides users with a more intuitive way to select and insert example data.
- - The previous buttons for individual data types have been removed.
- The following changes were made to the `query.component.html` file:
- - The `(change)` event on the `mat-form-field` element has been updated to also reset the `page` variable to 0. This change ensures that the query is re-run from the first page when the items per page value is changed.
- The SVG file for the Twitter icon has been removed from the assets folder as it is no longer needed.
- The `PostgreSQL` class in the `postgresql.ts` file has been updated to support user defined types. The `typeGroups` property has been expanded to include new groups and their corresponding type options.
- The changes in this commit allow for more flexibility and customization in the application's interaction with PostgreSQL databases, enhancing the user experience and support for user defined types.
2023-07-24
- art: Refactor code in history.component.html
- - Removed unnecessary span elements and replaced with h4 elements for clarity.
- - Removed unnecessary margin styling for h4 elements in history.component.scss.
- These changes were made to improve the structure and readability of the HTML code in history.component.html.
- 🔥 Remove exportQu and exportRe from code.component.html
- - Removed exportQuery and exportResult sub-menus from the Advanced menu in code.component.html.
- These changes were made to remove redundant code and simplify the user interface in code.component.html.
- 🔧 Refactor code in code.component.ts
- - Removed autoUp property and related logic that was never used.
- - Removed setAutoUp function that was never used.
- - Modified the exportResult function to fetch data from the server asynchronously and pass it to the ExportResultDialog.
- These changes were made to remove unused code and improve the efficiency of the code in code.component.ts.
- ♻️ Refactor and optimize code in code.component.html
- - Replaced the table layout with flexbox for better responsiveness and alignment of the editor and results sections in code.component.html.
- - Updated the condition for rendering the results section to only show if there is data available.
- These changes were made to improve the layout and responsiveness of the code editor and results sections in code.component.html.
- 🎨 Refactor code in code.component.scss
- - Removed unnecessary styling for #editor, td, and #results in code.component.scss.
- - Replaced the #editor selector with #container to apply flexbox layout to the code editor and results sections.
- - Adjusted the height of the #container and added a class .diff to reduce the height of the editor and results sections when in diff mode.
- These changes were made to simplify the CSS code and improve the layout and responsiveness of the code editor and results sections in code.component.scss.
- 🔧 Refactor and optimize code in code.component.ts
- - removed unused import of initBaseEditor function.
- - modified exportQuery function to pass the query directly instead of using data object.
- - added isLoading property to ExportQueryDialog and ExportResultDialog components to display loading state while fetching data.
- - replaced the type property with a select toggle group in ExportResultDialog component to allow the user to choose the export type.
- These changes were made to remove unused code, improve the efficiency of the code, and enhance the user interface in code.component.ts.
2023-07-23
- memo: **docs**: Remove unnecessary lines from README.md
- The changes were made to remove unnecessary lines from the README.md file. This was done to improve the readability and organization of the document.
- ♻️ **refactor**: Change routes in core-routing.module.ts
- The routes in the `core-routing.module.ts` file were modified. A new route with the path `query/:code` was added, which maps to the `QueryComponent`. This allows for dynamic routing based on a code parameter.
- ✨ **feat**: Add code to QueryComponent
- Code was added to the `QueryComponent` to handle the `code` parameter in the route. If the `code` parameter is present, it sets the `replayQuery` property of the component to the value of the `code` parameter.
- ♻️ **refactor**: Update button click event in history.component.html
- The click event of a button in the `history.component.html` file was updated to call the `goToQuery` method in the component with the `his.query` parameter. This change was necessary to properly handle the button click event.
- ♻️ **refactor**: Update goToQuery method in history.component.ts
- The `goToQuery` method in the `history.component.ts` file was updated to use the `Router` service to navigate to a new route based on the selected server, database, and table. The `toggle` method of the `DrawerService` is also called to close the drawer after navigation.
- ♻️ **refactor**: Move code component HTML content to separate file
- The HTML content of the `code.component.html` file was moved to a separate file to improve the organization and readability of the code.
- ♻️ **refactor**: Update code component styles
- The styles of the `code.component.scss` file were updated to improve the layout and appearance of the component.
- ♻️ **refactor**: Update styles and remove unnecessary lines in styles.scss
- The styles in the `styles.scss` file were updated to improve the overall appearance and organization of the styles. Unnecessary lines were also removed to clean up the file.
2023-07-22
- ✨ Add IframeDialog to InsertComponent
- This commit adds `IframeDialog` component to the `InsertComponent`. `IframeDialog` is a dialog that displays an iframe with a given source URL. It allows the user to view external resources within the application.
- The reason for this change is to provide a way for users to access documentation and resources related to Falso and FakerJS directly from the InsertComponent. It improves the user experience by allowing them to easily access relevant information without leaving the application.
- ✨ Fix DialogRef type in DropColumnDialog
- This commit fixes the type of `dialogRef` parameter in the `DropColumnDialog` constructor. It was incorrectly set to `AddIndexDialog` instead of `DropColumnDialog`. This fix ensures that the correct type is used and prevents potential errors and confusion.
- The reason for this change is to ensure the correctness and clarity of the code. Using the correct type in the constructor parameter improves code readability and maintainability.
- sparkles: Added functionality to add, update, and create columns in a table
- The patch includes changes to multiple files in the front-end folder. Here is a breakdown of the changes:
- - `add-column.component.html`: Updated the padding and height of the component.
- - `add-column.component.ts`: Updated the `add()` method to pass the form value instead of the entire form object to the API endpoint.
- - `column.component.html`: Updated the layout and appearance of the column component, including the form fields and buttons.
- - `column.component.scss`: Adjusted the minimum height of the textarea element.
- - `create-table.component.html`: Updated the padding and height of the component.
- - `create-table.component.ts`: Updated the `create()` method to pass the form value instead of the entire form object to the API endpoint.
- - `update-column.component.html`: Updated the padding and height of the component.
- - `update-column.component.ts`: Updated the `update()` method to pass the form value instead of the entire form object to the API endpoint.
- - `column.ts`: Added functionality to create a `FormGroup` with form controls for a column, including validation and disabling/enabling the `defaut` control based on the value of the `nullable` control.
- These changes were made to enhance the user experience when adding, updating, and creating columns in a table. The changes improve the layout and appearance of the column component, update the API requests to pass the relevant form values, and introduce validation and control behavior for the column form controls.
2023-07-21
- 🎨 front: Update query component HTML and styles
- - Update query.component.html to include the [languages] attribute in the
- tag to highlight the query code based on the selected server's
- language. This ensures proper syntax highlighting for the displayed query.
- - Update styles.scss to use the "materia" color scheme from the
- highlight.js/scss/base16 library instead of the vs2015.css style. This
- provides a more visually appealing and consistent code highlighting
- The changes were made to enhance the user experience and improve the visual
- aesthetics of the query component. By incorporating the selected server's
- language for code highlighting and using the "materia" color scheme, users can
- easily differentiate and read the displayed queries.
- art: Style: Change code syntax highlighting theme
- The code syntax highlighting theme has been changed from `base16/material-vivid.css` to `vs2015.css` in the `styles.scss` file.
- This change was made to improve the overall visual appearance of code examples in the frontend application.
- art: Update README.md, back/src/wrapper/mongodb.js, front/src/app/core/explore/explore.component.ts,
- front/src/app/right/add-column/add-column.component.ts, front/src/app/right/column/column.component.html,
- front/src/classes/drivers/mysql.ts, front/src/classes/sql.ts, front/src/shared/code/code.component.html
- - Update the README.md file to add a warning about special characters
- - In back/src/wrapper/mongodb.js, modify the querySize() function to handle specific query patterns. If the query contains
- ".find(", it replaces it with ".countDocuments(" and removes ".toArray()". The function then runs the modified query and
- - In front/src/app/core/explore/explore.component.ts, update the ngOnInit() function to use combineLatest() instead of
- passing an array to combineLatest(). This change is made to comply with the RxJS 7 syntax changes.
- - In front/src/app/right/add-column/add-column.component.ts, modify the form object in the AddColumnComponent class to
- contain only one element in the columns array. This change is made to fix an issue with the Add Column functionality.
- - In front/src/app/right/column/column.component.html, replace the input field for "Type" with a textarea. This change is
- made to allow for multiline input in the "Type" field.
- - In front/src/classes/drivers/mysql.ts, remove a commented out ts-ignore comment.
- - In front/src/classes/sql.ts, update the language object to add type information and fix the language properties.
- - In front/src/shared/code/code.component.html, add a disabled attribute to the runQuery() button if the query is empty.
- This change is made to prevent running an empty query.
- These changes were made to improve the functionality, readability, and maintainability of the code.
2023-07-19
- ✨ Added MongoDB functionality and fixed SQL suggestions
- - [frontend] Fixed an issue in `explore.component.ts` where string values were not properly formatted in the SQL query.
- - The `explore.component.ts` file was modified to ensure that string values in the SQL query are properly formatted with the appropriate delimiters.
- - The changes were made to improve the accuracy and reliability of the SQL query generation.
- - [README] Added MongoDB features to the project
- - The README file was updated to include the newly added features related to MongoDB, which include relations, mongo harmonizer, and export functionality.
- - This change was made to provide comprehensive information about the project's capabilities.
- ✨Add MySQL container to docker-compose.yml
- - Added the MySQL container to the docker-compose.yml file.
- - The command "mysqld --default-authentication-plugin=mysql_native_password" was added to the container configuration.
- - This change was made to ensure that the MySQL container uses the correct authentication plugin.
- - Imported the "Title" class from the "@angular/platform-browser" module in the servers.component.ts file.
- - Added the "titleService" parameter to the constructor.
- - In the "ngOnInit" method, set the title of the page to "WebDB – App".
- - This change was made to set the title of the page to "WebDB – App" when the servers component is initialized.
- 🔀 Remove Redis driver and related files
- Removes the Redis driver and related files. The Redis driver is no longer required in the project.
- The Redis driver is being removed because it is no longer needed and is causing unnecessary maintenance overhead. Removing it will simplify the codebase and reduce complexity.
- art: Refactor code in `request.service.ts`
- The code in the `RequestService` class has been refactored for improved readability and performance. The changes include:
- - Removed unnecessary condition for server connection status check
- - Used `return` statement instead of `continue` to improve code clarity
- - Added missing return statement inside the `new Promise` declaration
- - Removed unnecessary assignment of `loading` in the `loadingSubject.next()` method
- These changes were made to enhance the efficiency and maintainability of the code in the `RequestService` class.
2023-07-18
- 🚀 feat(container): Refactor container component
- - Removed unnecessary code from the template of container component.
- - Removed unused import of `isSQL` function.
- - Next version number of the application is displayed in the menu.
- These changes were done to improve the code cleanliness and remove unused code and dependencies from the container component. Also, to display the version number of the application in the menu for better visibility and user experience.
- 🐛 Fix incorrect conditional statement in Controller class
- The commit fixes an issue in the `Controller` class where the `if` condition is checking if `req.query.full` is truthy instead of checking if it has a numeric value.
- WHY: The condition should check if the value of `req.query.full` is a number, not if it exists.
- recycle: Refactor code for getting the database structure
- Refactored the code in the `Controller` class for getting the database structure. Instead of retrieving the structure directly from the driver, the code now retrieves the databases, tables, and columns separately and organizes them into a final structure object. This improves the readability and reusability of the code. The structure is then sent as the response to the client.
- This change was made to improve code readability and maintainability. By separating the retrieval of databases, tables, and columns, we can better understand and modify each step of the process. Additionally, this refactoring makes it easier to reuse the code for other operations that require retrieving database structure information.
- The `getStructure` function in the `Controller` class was refactored to achieve this change.
2023-07-17
- ✨ feat: Add default panels to ContainerComponent
- The panels array in ContainerComponent is initialized with default values that represent the different panels in the application. These panels include "relations", "diagram", "code", "assistant", "load", "dump", and "advanced". This change ensures that these default panels are always present.
- The reason for this change is to provide a consistent set of panels for users to navigate through the application. By having these default panels, users can easily access different functionalities without having to manually configure the panel array.
- ✨ front: Update container component HTML and SCSS files
- - Removed commented out code for loading spinner and error message in the
- container.component.html file.
- - Replaced the text "Loading Servers ..." with "Scanning Connections ..."
- in the servers.component.html file.
- The changes were made to improve the clarity and readability of the code. The
- commented out code in the container component HTML file was removed as it was
- no longer needed. Additionally, the text in the servers component HTML file
- was updated to provide a more accurate description of the loading process.
- lipstick: Improve UI layout in advanced components
- This commit improves the UI layout in the `advanced.component.html` files
- by adding a conditional rendering for displaying statistics. The statistics
- (`stats`) object is now optional, allowing for graceful handling when the
- The changes were made to enhance the user experience and provide a more
- consistent and informative display of data in the advanced components.
- ✨ front-end: Update tables.component.html
- - Added a missing CSS property to align the table elements properly.
- - Modified the background color of a div based on the value of tooltips[table.name].
- This update improves the visual aesthetics and layout of the tables in the application.
- ✨ Fix loading spinner alignment
- This commit fixes the alignment of the loading spinner in the container
- and servers components. The spinner was not centered properly.
- 🔧 Adjust index symbol visibility
- This commit adjusts the visibility of index symbol buttons in the add
- index dialog. The "PRIMARY" symbol should only be visible when the
- ⚡️ Update AddIndexDialog class
- This commit updates the AddIndexDialog class in the structure component.
- The "isSQL" method is now a protected property instead of a method.
- This commit fixes a bug where copying column types in the column
- component did not work properly. The cdkCopyToClipboard directive was
- 🔧 Refactor ColumnComponent class
- This commit refactors the ColumnComponent class in the column component.
- This commit updates the Mongodb class in the drivers folder. The import
- order of the Driver and QueryParams interfaces is fixed.
- This commit updates the MySQL class in the drivers folder. The import
- order of the QueryParams and Group interfaces is fixed.
- This commit updates the PostgreSQL class in the drivers folder. The
- import order of the QueryParams and Group interfaces is fixed.
- This commit updates the SQL class in the sql folder. The import order of
- the Driver, Group, and QueryParams interfaces is fixed.
- This commit adjusts the autocomplete filter in the update-data-dialog
- component. The suggestions are now filtered based on the entered value.
- [Refactor] UpdateDataDialog class
- This commit refactors the UpdateDataDialog class in the
- update-data-dialog component. The snackBar message is now displayed
- after the suggestion is copied to the clipboard.
- sparkles: Add nested functionality to mongo harmonizer
- The previous version of the mongo harmonizer didn't support nested documents. This commit adds support for nested documents, allowing users to export, insert, add indexes, and perform other operations on nested documents within MongoDB.
- The commit also includes some minor fixes and improvements to the code base.
2023-07-16
- art: Update README and refactor code
- - Refactored the code in `README.md` to remove unnecessary content, specifically removing the mention of export and indexes functionalities.
- - Updated the code in `insert.component.ts` to set the default value as `faker.random.numeric()` if the `random.model` is not provided.
- The changes were made to improve the clarity and remove unnecessary information in the `README.md` file. In the `insert.component.ts` file, the default value for `random.model` was updated to enhance the functionality.
- The `container.component.html` file had an unused `` element related to a disclaimer. This element was removed from the file.
- In the `servers.component.html` file, the text on a button was changed from "Guess" to "Guess Credentials" to clarify its purpose.
- 🎨 Update styling in servers.component.scss
- The `servers.component.scss` file was updated to include a new styling rule. The height of the container was adjusted to be equal to the viewport height minus 122 pixels, and an overflow rule was added to enable scrolling when necessary.
- 🐛 Fix loading server subscription
- In the `servers.component.ts` file, the subscription to the `loadingServer` observable was updated to correctly increment the `loading` value when a loading event occurs.
- 🛠 Improve table duplication feature
- The `advanced.component.html` file was modified to update the tooltip text on a button. The button is used to duplicate a table, and the tooltip was changed to inform users that the duplication process will not duplicate references or indexes on the new table.
- ✨ Added support for multiple schemas and Postgres array of types.
- - Updated the README file to mention the new features.
- - Modified the explore component to handle string values properly in queries.
- - Updated the structure component to convert column names to title case.
- - Adjusted the style of the column component.
- - Refactored the `Column` class to use a new enum `Group` instead of `TypeName`.
- - Updated the MongoDB class to use the `Group` enum instead of `TypeName`.
- - Updated the MySQL class to use the `Group` enum instead of `TypeName`.
- - Updated the PostgreSQL class to use the `Group` enum instead of `TypeName`.
- - Updated the SQL class to use the `Group` enum instead of `TypeName`.
- books: Update README and CSS files
- - Increased minimum width of `.driver` class in `servers.component.scss` from 440px to 470px.
- - Updated background color of the body element in `index.html` from `#1e1e1e` to `#303030`.
- - Made changes to the content of `README.md`, including adding new sections and updating existing content.
- The changes were made to improve readability, enhance the visual appearance, and provide more comprehensive information in the README file. The CSS changes were aimed at improving the layout and design of the `servers.component` in the application.
2023-07-15
- construction_worker: Chore: Update .gitlab-ci.yml and README.md
- - Updated the `.gitlab-ci.yml` file.
- - Commented out the command to install curl and scout-cli.
- - Removed the command to check for critical CVEs using scout-cli.
- - Updated the `README.md` file.
- - Added the command to check for CVEs using scout-cli.
- The changes were made to temporarily disable the installation of curl and scout-cli and the checking of critical CVEs in the pipeline due to some issues. The README.md was updated to include the command for checking CVEs using scout-cli. These changes are necessary for the smooth functioning of the pipeline and to ensure the security of the codebase.
2023-07-14
- rocket: chore(ci): Update .gitlab-ci.yml
- The `.gitlab-ci.yml` file was updated to fix a bug in the CI pipeline. The line `docker scout cves $IMAGE_PATH -e --only-severity critical` was modified to place double quotes around the `$IMAGE_PATH` variable to ensure proper parsing. This change allows the "docker scout cves" command to run with the correct image path argument.
- This commit improves the reliability of the CI pipeline by fixing a bug in the `docker scout cves` command argument.
- ✨🐛 **Fix: Update docker command in .gitlab-ci.yml**
- - Change the command to include the flag "-e" instead of "--exit-code" when running the "docker scout cves" command.
- - Also specify the severity level as "critical" using the flag "--only-severity critical".
- These changes were made in order to ensure that the Docker image is scanned for Critical Common Vulnerabilities and Exposures (CVEs) during the CI/CD pipeline. The previous command was using an incorrect flag, resulting in the scan not being performed properly. By using the correct flag and specifying the severity level, we can ensure that critical vulnerabilities are identified and addressed.
- building_construction: Chore: Update .gitlab-ci.yml and README.md
- - Made changes to the `.gitlab-ci.yml` file
- - Added additional steps to the existing script in the `docker` stage
- - Installed `curl` and executed a curl command to install `scout-cli`
- - Added a command to run `docker scout` to check for CVEs in the image
- - Updated the `README.md` file by replacing "compatibility" with "afficher les resulat en front avec plusieurs version de bdd"
- These changes were done in order to improve the CI/CD pipeline and enhance security by checking for CVEs in the Docker image. Additionally, the change in the README.md file was made to improve clarity and better describe the functionality.
- - Added new topics related to export, indexes, and insert in the README.md file.
- - Updated the current status of various tasks in the README.md file.
- - Removed redundant lines in the README.md file.
- - Added a reminder to test the webhook feature.
- - Reason for the changes: To keep the README.md file up-to-date and informative.
- art: chore: Refactor MongoDB wrapper and container component
- Refactored the MongoDB wrapper class in `back/src/wrapper/mongodb.js` and the container component in `front/src/app/container/container.component.ts` and `front/src/app/container/container.component.html` to improve readability and optimize performance.
- In the MongoDB wrapper class, removed unnecessary code and unused variables, and simplified the `getRelations` method to return an empty array immediately.
- In the container component, added conditional logic to set the `panels` property based on the selected server and database. For SQL servers, the panels will only include "relations" and "diagram". For other servers, the panels will include "code", "assistant", "load", "dump", and "advanced". Also made minor styling adjustments in the HTML template.
- These changes were made to enhance the code structure, improve performance, and provide a better user experience.
- art: Update servers.component.html
- ♻️ Refactor servers.component.ts
- ✨ Modify servers.component.ts to implement the ngOnDestroy lifecycle hook. Create a Subscription variable to store the subscription for loadingServer. Modify the ngOnInit method to await the reloadList method. Implement the ngOnDestroy method to unsubscribe from the loadingServer subscription. Modify the reloadList method to set isLoading to false instead of true and initialize loading to 0. Modify the for loop in the reloadList method to increment loading by 10. Set loading to 100 at the end of the method.
- The changes were made to improve the user experience by adding a loading progress bar and properly handling subscriptions to avoid memory leaks.
2023-07-13
- ✨ feat(db): Add support for exporting MongoDB databases in different formats
- The `dump` method in the `MongoDB` class now supports exporting MongoDB databases in different formats like JSON and BSON. The `exportType` parameter determines the format of the export.
- WHY: This change was made to provide flexibility and enable users to export MongoDB databases in formats that suit their needs, such as JSON and BSON.
- ✨ feat(ui): Display loading spinner while data is being loaded
- Added a loading spinner and a text message to indicate that the requested database is being loaded. This provides better visual feedback to the user and improves the overall user experience.
- WHY: It is important to provide visual feedback to the user during data loading to indicate that the system is working and to prevent users from assuming that the application is unresponsive.
- 🔧 chore(ui): Minor CSS modifications
- Removed the transition effect on the background color of the `#home` element in the CSS file, as it is no longer needed.
- 🔧 chore(ui): Disabled data inclusion toggle for non-SQL servers
- The `includeData` toggle is now disabled for non-SQL servers. This prevents users from including data in the export process for non-SQL servers, as they do not support including data.
- WHY: The `includeData` toggle should only be enabled for SQL servers, as they are the only ones that support including data in the export process.
- ✨ feat(ui): Dynamic file types for export format selection
- The export format selection dropdown now displays options based on the supported file types of the selected server. The file types are fetched from the `driver` object of the server and displayed in the dropdown.
- WHY: This change was made to dynamically display the supported file types for the export format selection, providing a better user experience and preventing users from selecting unsupported file types.
- 🐛 fix(ui): Enable data inclusion toggle for SQL servers
- sparkles: Add sampleMongo to README
- - Updated the README.md file to add a new feature called "sampleMongo" to the list of features.
- - The purpose of this change is to inform users about the new functionality available in the project.
- 🛠 Update Mongodb wrapper for sample size
- - Modified the MongoDB class in the back-end code.
- - Changed the `sampleSize` property from using the value retrieved from the `MONGO_SAMPLE` environment variable to a default value of 1000.
- - The reason for this change is to increase the default sample size for MongoDB scans, providing more comprehensive data analysis.
- ✨ Import "bson" and update main function
- - Made changes to the MongoDB class in the front-end code.
- - Added an import statement to import the "bson" library.
- - Updated the main function to include a comment with a code sample showcasing the use of the MongoClient and the "bson" library.
- - The purpose of these changes is to enhance the MongoDB driver by providing users with an example of how to use the "bson" library in the front-end codebase.
- sparkles: MONGODB: Update sampleSize to 100
- The `sampleSize` in the MongoDB wrapper is updated from the environment variable `MONGO_SAMPLE` to a default value of 100. The previous value was 250.
- These changes were made to optimize the performance of data scanning in MongoDB.
- books: README.md: Update in SQLServer
- Updated the README.md file and removed the line mentioning SQLServer. The reason for this change is to keep the information accurate and up to date.
- sparkles: Add database renaming functionality
- The database controller and route in the backend have been updated to include a new endpoint for renaming databases. The `rename` function has been added to the controller class, which renames the database using the `renameDatabase` method of the driver. The route has been updated to include the new `/rename` endpoint.
- The MongoDB wrapper has been updated to implement the `renameDatabase` method, which renames the database using the `renameDatabase` function.
- In the frontend, the `advanced.component.ts` file has been updated to include a new method called `getStats()` that retrieves the statistics of the selected table. The `drop()` and `truncate()` methods have been updated to refresh the table statistics after performing their respective actions. The `goToNew()` method has been updated to use the `reloadServer()` method to refresh the server data before navigating to the new table.
- The `advanced.component.html` file has been updated to comment out the rename database button.
- The `pyramille` database has been renamed to `renameDatabase` in the ElasticSearch section of the `README.md` file.
- art: Refactor MongoDB wrapper and advanced component
- The MongoDB wrapper class and the advanced component have been refactored
- to improve code readability and maintainability.
- - The `duplicateTable` method now uses the `aggregate` function instead of the `copyTo` function to duplicate a table. This provides more flexibility and control over the duplication process. The new method uses the `$out` operator to create a new collection with the specified name and copy the data from the original collection into it.
- - The `renameTable` method now uses the `renameCollection` function to rename a table. This provides a more straightforward and reliable way to rename a collection in MongoDB.
- - The logic for checking if the server has changed on reload has been removed, as it is no longer needed.
- - The `duplicate` and `rename` methods now navigate to the newly created or renamed table after the operation is completed. This provides a better user experience by automatically redirecting the user to the renamed or duplicated table.
- - Added a `validName` method to check if a table name is valid. A table name is considered valid if it has more than 1 character and does not exist in the selected database.
- By refactoring the MongoDB wrapper and the advanced component, the code becomes more readable, maintainable, and follows best practices. The changes also enhance the user experience by automatically navigating to the newly created or renamed table.
2023-07-10
- 🎨 front: Update insert.component.scss styling (#123)
- This commit updates the styling of the insert.component.scss file in
- - Updating the gap between preset buttons to 50px.
- - Modifying the justify-content property of the .preset class to
- - Adding a border-bottom to the h3 tags within the .preset class.
- - Modifying the display property of the .list class to flex.
- - Updating the flex-direction property of the .list class to column.
- - Adjusting the font-weight of the button within the .list class to
- These changes were made to improve the visual presentation and layout
2023-07-09
- 🚀 Add MongoDB wrapper improvements
- - Refactored the MongoDB wrapper to use the `BSON` module for importing
- `ObjectId` and `BSON` functions.
- - Updated the `insert` method to deserialize the `datas` object using
- `BSON.EJSON.deserialize` before inserting into the collection.
- - Updated the `delete` method to deserialize the `row` object using
- `BSON.EJSON.deserialize` before deleting from the collection.
- - Updated the `update` method to deserialize the `old_data` and `new_data`
- objects using `BSON.EJSON.deserialize` before updating the collection.
- Also handled any exceptions that occur during the update operation.
- - Increased the `sampleSize` parameter to 200 in the `getStructure` method.
- - Removed unnecessary console error statements.
- ℹ️ The changes were done to improve the MongoDB wrapper by using the `BSON`
- module for serialization and deserialization, and to handle exceptions
- properly in the `update` method. Additionally, the `sampleSize` parameter was
- increased to provide a more accurate structure representation.] Update MongoDB wrapper
- - Updated the `mongodb.js` wrapper to import the `BSON` module from the "mongodb" library.
- - Modified the `insert` method to deserialize the `datas` parameter using `BSON.EJSON.deserialize` before inserting it into the collection.
- - Modified the `delete` method to deserialize the `row` parameter using `BSON.EJSON.deserialize` before deleting it from the collection. Also added error handling.
- - Modified the `update` method to deserialize the `old_data` and `new_data` parameters using `BSON.EJSON.deserialize` and updated the update query syntax to use `$set` operator. Added error handling.
- - Modified the `execute` method to catch any errors and return them in the response. Also added error handling.
- - Modified the `getStructure` method to increase the default `sampleSize` to 200 records.
- 🔨 Fix linting issues and add missing pipe
- The patch includes the following changes:
- - Fixed a series of linting issues in various files.
- - Added a missing pipe called `is_sql.pipe.ts`.
- - Removed unnecessary and commented code in the `mongodb.js` file.
- - Updated the structure of the `structure.component.html` file to include a button for inferring from a sample in non-SQL servers.
- - Updated the structure of the `relations.component.html` file to include a button for inferring from a sample in non-SQL servers.
- - Added a method to check if a server driver is SQL-related in the `helper.ts` file.
- - Updated the `structure.component.ts` file to use the new function for checking SQL-related servers.
- - Updated the `relations.component.ts` file to use the new function for checking SQL-related servers.
- - Updated the `container.component.html` file to use a different icon for displaying connection information.
- - Updated the `explore.component.html` file to have proper indentation and spacing.
- - Created a new `is_sql.pipe.ts` file to check if a server driver is SQL-related.
- - Updated the `shared.module.ts` file to include the new `is_sql.pipe.ts` in the declarations and exports.
- This commit fixes linting issues, adds missing code, and improves the structure and functionality of certain components.
- card_file_box: Back-End: Simplify MongoDB insert and delete operations.
- The `insert` method in the `MongoDB` class has been simplified to use the `insertMany` function of the MongoDB driver. This change improves the efficiency of inserting multiple documents into a collection.
- The `delete` method in the `MongoDB` class has also been simplified to use the `deleteOne` function of the MongoDB driver. This change improves the efficiency of deleting a single document from a collection.
- These changes were made to optimize the MongoDB operations and improve the overall performance of the back-end application.
- sparkles: Add MongoDB insert, delete, and update methods
- Implemented the `insert()`, `delete()`, and `update()` methods in the `MongoDB` class in the `mongodb.js` file. These methods allow for inserting, deleting, and updating data in a MongoDB database. The `insert()` method takes a database, table, and an array of data objects as parameters, inserts the data into the specified table, and returns the result. The `delete()` method takes a database, table, and an array of rows as parameters, deletes the specified rows from the table, and returns the number of deleted rows. The `update()` method takes a database, table, old data, and new data as parameters, performs an update operation on the table with the specified data, and returns the result.
- These methods were added to provide CRUD functionality and interact with MongoDB databases.
2023-07-07
- memo: Fix querySize method in mongodb wrapper
- The `querySize` method in the `MongoDB` class was updated to properly count the number of documents returned by a query. The previous implementation did not handle queries with the `.toArray()` method correctly. This commit replaces the `.find()` method with `.countDocuments()` and removes the `.toArray()` method from the query before executing it. This ensures that the correct number of documents is returned when querying the database.
- ♻️ Refactor explore.component.html
- In the `explore.component.html` file, the `*cdkVirtualFor` directive was replaced with `*ngFor` to iterate over the `displayedColumns` array. This change was made to align with the Angular template syntax. Additionally, the `cdk-virtual-scroll-viewport` element was replaced with a `div` element with the class "scrollDiv" in order to fix the styling of the virtual scroll container.
- 🐛 Fix URL replacement in changeTable method
- The `changeTable` method in the `TablesComponent` class had an issue with replacing the table name in the URL. The previous implementation used the `replace` method with a hardcoded separator ("/") and assumed that the selected table name would always be surrounded by slashes. This commit updates the URL replacement logic to use template literals and replaces the selected table name without making any assumptions about the URL structure. This ensures that the table name is replaced correctly in the URL when changing tables.
- recycle: REFACTOR(controller): Refactor the `load` method in the server controller
- Refactor the `load` method in the server controller to pass the original filename to the driver's `load` method.
- This change ensures that the original filename is used as the collection name when importing the file into the database.
- 💡 The changes were done to improve the functionality of importing files and ensure that the correct collection name is used during the import process.
2023-07-06
- art: Remove unnecessary lines in README.md
- The README.md file had some unnecessary lines that needed to be removed.
- These lines were reviewed and deemed unnecessary for the project.
- ⬆️ Update app-routing.module.ts
- In the app-routing.module.ts file, the path for the component was updated.
- The previous path included a tab parameter, which was removed in this update.
- This change was made to simplify the routing structure of the application.
- ♻️ Refactor servers.component.ts
- In the servers.component.ts file, some imports were removed and the code
- was refactored to improve readability and remove unused dependencies.
- This change was made to clean up the code and improve overall performance.
- 🏗 Update core-routing.module.ts
- The core-routing.module.ts file was updated to add a default redirect
- path when no specific route is matched. It now redirects to the 'explore'
- path. This change was made to ensure a smoother user experience and
- provide a default landing page when no specific path is specified.
- The tables.component.ts file was updated to change the route when changing
- the selected table. The URL is updated to remove the current table name
- and replace it with the new selected table name. This change was made to
- provide a more intuitive and consistent user experience when navigating
2023-07-03
- recycle: Refactor app-routing.module.ts
- Refactor the `AppRoutingModule` to comment out the `providers` array inside the `NgModule` decorator. The array was not needed and did not have any effect on the functionality of the routing module.
- This change was made to improve the code readability and remove unnecessary code.
- art: Update README and Tables Component formatting
- Update the formatting of the README file and the Tables Component HTML and SCSS files. In the README, update the list of tasks and add more details to each task. In the Tables Component HTML, convert the tab link to lowercase. In the Tables Component SCSS, update the width of the table list to use a minimum width instead.
- The changes were made to improve the readability and maintainability of the code by ensuring consistent formatting and using proper naming conventions.
- art: Simplify frontend navigation
- - Removed unnecessary code in the HTML template of `ContainerComponent`
- - Updated the routing configuration in `AppRoutingModule` to have a default child route of type `ServersComponent`
- - Removed the `changeDatabase` event emitter and `changeDb` method from `ServersComponent`
- The changes were made to simplify the frontend navigation by removing unnecessary code and improving the routing configuration.
2023-07-02
- recycle: Remove unnecessary code in explore component and custom reuse strategy
- The changes in this commit are:
- - In 'explore.component.ts', removed unused code that was assigning the params object to a local variable.
- - In 'custom-reuse-strategy.ts', removed code that was clearing the storedHandles object if the window location hash was empty.
- The changes were made to remove unnecessary and unused code, which improves the codebase and increases readability.
- 🔨 chore: Remove unnecessary variables in .gitlab-ci.yml
- The unnecessary variables in the .gitlab-ci.yml file have been removed.
- The variables "DOCKER_BUILDKIT" were deleted because they were not being used.
- 🐛 `Fix`: Fix Linting errors in `.gitlab-ci.yml`.
- The linting errors in the `.gitlab-ci.yml` file have been fixed to ensure proper code quality and adherence to the project's defined standards and formatting conventions.
- ✨ `Update`: Update database controller to handle BLOB data.
- The database controller in the backend has been updated to handle BLOB (Binary Large OBject) data. BLOB data is now replaced with the placeholder "###BLOB###" to prevent any potential errors or issues when dealing with large binary data.
- 🔧 `Refactor`: Refactor MySQL wrapper's query function.
- The query function of the MySQL wrapper has been refactored to improve code readability and performance. The resulting code is cleaner and more concise, making it easier to understand and maintain.
- 🔧 `Refactor`: Refactor SQL objectToSql method.
- The objectToSql method of the SQL class has been refactored to enhance its functionality and improve the generation of SQL queries. The method now properly handles special characters and ensures that the generated SQL statements are valid and safe.
- ✨ `Update`: Update example data retrieval in SQL class.
- The exampleData method in the SQL class has been updated to retrieve example data from a database table in a sorted manner. This change ensures that the example data is consistently ordered for better consistency and usability.
- 🔧 `Refactor`: Refactor delete and update functions in SQL class.
- The delete and update functions in the SQL class have been refactored to improve code readability and maintainability. The code has been streamlined and optimized for better performance and efficiency.
- ✨ `Update`: Update explore component to handle row deletion.
- The explore component in the front-end has been updated to handle the deletion of selected rows. The rows are now properly removed from the data source and the user is provided with a notification confirming the deletion.
- ✨ `Update`: Update update data dialog to handle row updates.
- The update data dialog component in the front-end has been updated to handle the updating of rows with new data. The updated data is sent to the server for processing, and the user is provided with a notification confirming the update.
- The README.md file has been updated to include information about testing the SQLServer integration and the functionalities related to CRUD operations on data and tables using the driver.
- The changes were done to improve code quality, handle BLOB data, enhance SQL query generation, and provide better functionality for CRUD operations.
2023-06-30
- recycle: Refactor MongoDB class
- Refactored the `MongoDB` class in `back/src/wrapper/mongodb.js`. Removed the use of the `replaceAll()` method and instead commented it out because it's not available in all JavaScript environments. This change ensures compatibility and improves code readability.
- In `front/src/app/container/container.component.ts`, fixed an issue where the server and database were not being properly assigned. Added null checks and assigned values to `server` and `database` variables before using them in subsequent logic. This ensures that the correct server and database are used for the connection.
- Removed an unnecessary CSS style in `front/src/app/core/tables/tables.component.scss` where the display property for `.mat-icon-button` was set to none. This style was not being used and can be safely removed to reduce code clutter.
- The import statement for the `ServersComponent` was removed as it was no longer being used in the app. This was done to clean up the code and remove any unnecessary dependencies.
- 💡 Improve code readability and maintainability
- The `changeDatabase` function in the `ContainerComponent` was refactored to improve code readability and maintainability. The logic for changing the selected server and database was extracted into a separate function called `changeDatabase`, which takes the server and database as parameters. This change makes the code more modular and easier to understand.
- 🎨 Enhance code structure in ExploreComponent
- In the `ExploreComponent`, the code structure was enhanced by removing the unused import for `debounceTime`. This change was made to keep the codebase clean and remove any unnecessary dependencies.
- The logic for setting the selected server and database was duplicated in the `ServersComponent`. This duplicate code was removed to improve code quality and reduce redundancy. The logic for setting the selected server and database is now handled in the `changeDatabase` function in the `ContainerComponent`.
- ✨ Improve route reuse strategy
- The `shouldDetach` function in the `CustomReuseStrategy` class was updated to clear the stored route handles if the current URL is the root URL ("/"). This change improves the route reuse strategy by ensuring that the route handles are cleared when navigating to the root URL, avoiding any potential conflicts or unexpected behavior.
2023-06-29
- memo: Update README.md, remove unnecessary code and update comments
- - Removed unnecessary code from the `container.component.html` file.
- - Updated the `explore.component.ts` file to debounce the request and use distinctUntilChanged.
- - Updated the `server.service.ts` file to remove unused imports and update comments.
- - Updated the `README.md` file with additional information and removed unnecessary lines.
- - Updated the messages in the commit to provide more context and reasoning for the changes.
2023-06-28
- lipstick: Refactor container and explore components
- The container component's HTML and the container component's SCSS files were
- refactored. The changes include removing unnecessary styles, adjusting the max
- width of the mat-drawer, and adding flex properties to the mat-drawer-content.
- The changes were made to improve the layout and appearance of the container
- The explore component's HTML file was modified to remove the mat-paginator
- element and the setAutoUp button. These elements were removed because they were
- rendered incorrectly in the explore component. The changes were made to fix the
- rendering issue and improve the usability of the explore component.
- The changes in container and explore components were done to improve layout and
- 🐛 Fix: Fix response object property name in data controller endpoint
- The response object property name "insert" in the data controller
- endpoint's insert() method has been changed to "inserted" to be more clear
- and aligned with the action being performed. This helps improve code
- readability and maintainability.
- 💡 Why: The property name "insert" may cause confusion as it does not
- clearly indicate that it represents the result of an insert operation.
- Changing it to "inserted" makes it more intuitive and helps in
- understanding the purpose of the property.
- feat: 🎉 Add custom reuse strategy for route handling
- Add a custom reuse strategy (`CustomReuseStrategy`) to handle route
- reuse in the Angular application. The strategy is implemented to
- store and retrieve route handles based on a provided `reuseRouteId`
- This change was done to optimize the application's performance by
- reusing route components whenever possible, rather than recreating
- The custom reuse strategy is added to the `AppRoutingModule`
- providers, so that it is used throughout the application.
- The `core-routing.module.ts` file is also updated to include the
- `reuseRouteId` data property for each route component that should be
- recycle: Remove unnecessary code
- Removed unnecessary code in the `mongodb.js` file that was commented out.
- In the `explore.component.html` file:
- - Moved the `` block before the `` block to improve readability.
- - Reordered and repositioned some elements within the `` block for better alignment and visual appeal.
- In the `explore.component.ts` file:
- - Moved the `Math` property inside the class to align with best practices.
- These changes were made to improve code readability, organization, and maintainability.
- recycle: Refactor: update displayed columns in explore and code components
- Update the `displayedColumns` property in `ExploreComponent` and `CodeComponent` to correctly display the columns in the table.
- In `ExploreComponent`, the `displayedColumns` property is updated based on the columns of the selected table. This ensures that the action column is included in the displayed columns.
- In `CodeComponent`, the `displayedColumns` property is updated by extracting the keys of the result objects and removing any duplicates. This ensures that all columns are displayed correctly in the table.
- These changes improve the user experience by accurately displaying the columns in the explore and code components.
- sparkles: Add .gitignore for src/assets/libs
- The .gitignore file in the front directory is updated to include the src/assets/libs/ directory. This means that any files or directories within src/assets/libs/ will be ignored by Git.
- This change is made to prevent versioning of the assets/libs/ directory, as it might contain large files or external dependencies that don't need to be tracked by Git. Ignoring this directory helps keep the repository clean and avoids unnecessary bloat.
- By excluding the src/assets/libs/ directory from version control, it reduces the repository's size and improves performance during operations such as cloning or merging.
- The use of a .gitignore file follows best practices for managing version control and aids in managing project dependencies effectively.
- 🎨 Clean up and refactor code module
- - Remove unnecessary importing of `.gitkeep` file in `.gitignore`
- - Delete `.gitkeep` file in `front/src/assets/libs`
- - Refactor the `getBaseSort` method in `front/src/classes/drivers/mongodb.ts` to include the `.toArray()` method after sorting the collection
- - Fix the ordering of statements in the `initEditor` method in `front/src/shared/code/code.component.ts`
- - Refactor the `monacoConfig` object in `front/src/shared/code/code.module.ts` to register the completion item provider for both SQL and JavaScript languages and provide the appropriate suggestions based on the selected server's driver
- These changes were made to improve the code structure, remove unnecessary files, and enhance the functionality of the code module.
- art: Refactor MongoDB wrapper and MongoDB driver getBaseSelect method
- Refactor the MongoDB wrapper and the `getBaseSelect` method in the MongoDB driver.
- The `eval` method in the MongoDB wrapper is removed as it is no longer needed.
- In the `runCommand` method of the MongoDB wrapper, if the command does not start with "return", it is now prefixed with "return ".
- The `runPagedQuery` method in the MongoDB wrapper now correctly adds the `.toArray()` method to the end of the query.
- The `getBaseSelect` method in the MongoDB driver now includes the `.toArray()` method at the end of the query.
- This commit refactors the MongoDB wrapper and the MongoDB driver to improve code readability and ensure correct functionality.
2023-06-27
- ✨ Add MongoDB library to front-end
- This commit adds the MongoDB library to the front-end code. The `loadExtraLib` function in the MongoDB driver is used to load the `mongo.d.ts` and `bson.d.ts` files from the `assets/libs/` directory. These files are then added as extra libraries to the Monaco Editor, providing additional typings and autocomplete suggestions for MongoDB queries. This improves the developer experience when working with MongoDB queries in the application.
- ✨ feat(core-routing): Remove unnecessary data properties
- - Removed the `data` property from each route in the `core-routing.module.ts` file.
- - The `data` property was not being used and was unnecessary for the functionality of the routes.
- 💡 WHY: The `data` property was removed to simplify the code and remove any unnecessary clutter.
- fire: Delete custom-reuse-strategy.ts
- The file `custom-reuse-strategy.ts` is no longer needed and has been removed. This file was responsible for implementing a custom route reuse strategy in the application. It was decided that this functionality was unnecessary and could be removed to simplify the codebase. The commit removes the file and all references to it.
- 🎨 Improve code in app-routing.module.ts
- There were unnecessary code in the `AppRoutingModule` module which have been removed. The code was related to a custom route reuse strategy that is no longer being used in the application. The commit removes the related code to improve the codebase and remove unused dependencies.
- 🐛 Fix an issue in cell.component.ts
- There was a bug in the `getFkParams()` method of `CellComponent`. The bug occurred when constructing the `chips` parameter to be passed to another component. There was an incorrect use of quotes, causing the generated parameter to be invalid. This commit fixes the bug by using the correct type of quotes in the `chips` parameter.
- 🎨 Improve code in code.component.ts
- There were some improvements made to the `CodeComponent` code. The initial setup of the component was being done in the constructor, which is not recommended. The setup code has been moved to the `ngOnInit` method. This ensures that the component is fully initialized before any setup is performed. Additionally, the code has been reorganized for better readability.
- ♻️ Refactor core-routing.module.ts
- The code in the `CoreRoutingModule` module has been refactored for better readability and maintainability. The `data` object for each route now uses the `reuseRouteId` property instead of the deprecated `reuseRoute` property. This change was made to align with the latest conventions and to avoid any potential conflicts or issues with the deprecated property.
2023-06-26
- lipstick: Update query component styling
- - Removed the `loading` property from the `QueryComponent` class as it was not being used.
- - Initialized the `queryHistory` property as a new instance of `MatTableDataSource` instead of declaring it with a `!` non-null assertion operator.
- - Assigned the data from `this.history.getLocal()` to the `queryHistory.data` property to display the query history.
- - Moved the assignment of `selectedDatabase`, `selectedServer`, and `selectedTable` outside the `setTimeout` function to remove unnecessary delay.
- These changes were made to improve the styling and functionality of the query component.
- ✨ feat(core/explore): Refactor addChips function
- - Refactored the `addChips` function in the Explore component to improve readability and maintainability.
- - Instead of declaring `value` using `const`, it is now declared using `let` to allow for reassignment if needed.
- - Added conditional checks to ensure that a value is provided before processing.
- - Adjusted the logic for adding chips to the `params` object.
- - Use the `selectedServer.driver.defaultFilter` value when adding chips.
- 🔧 fix(drivers/mongodb): Update getBaseFilter function
- - Updated the `getBaseFilter` function in the MongoDB driver to handle multiple conditions correctly.
- - Changed the parameter name from `condition` to `conditions` to better indicate that it can receive multiple conditions.
- - Modified the code to properly parse each condition and create an object representation.
- - Fixed the handling of the key, operator, and value in each condition.
- - Adjusted the logic to generate the final MongoDB query filter using the `operand` parameter.
- - Updated the return statement to return the MongoDB query filter with the correct syntax.
- These changes were made to improve the functionality and maintainability of the codebase. The refactored `addChips` function in the Explore component enhances readability and ensures the proper handling of input values. The updated `getBaseFilter` function in the MongoDB driver improves the generation of the query filter and correctly handles multiple conditions.
- zap: Adjust console log message in index.js
- The console log message in index.js has been modified to remove the exclamation mark at the end of the message.
- The change was made to improve the consistency of the logging messages.
- ✨ Add support for returning an array in `mongodb.js`
- It updates the `mongodb.js` file in the `back/src/wrapper` directory. The change modifies the `toArray` method to return the result as an array by using `await` with the `toArray` method. This is done to ensure that the result is properly returned as an array.
- 💡 The change is made to fix an issue where the result of the `toArray` method was not being returned as an array, causing incorrect data handling.
- hammer: Refactor MongoDB and SQL drivers
- Refactor the `getBaseSelect` and `getBaseSelectWithRelations` methods in the `MongoDB` and `SQL` driver classes. Previously, the `WHERE 1 = 1` condition was added to the SQL queries, but it is not necessary. Removed the condition from both methods to simplify the queries.
- ♻️ Rearrange code for code formatting
- In the `CodeComponent` class, rearranged the code to trigger the `formatDocument` action on all editors after a brief delay. This ensures that the code is properly formatted for better readability.
- ✨ feat(classes): add Cell component
- Adds the `CellComponent` to the shared module.
- This component will be responsible for rendering table cell content in the `explore.component.html` and `structure.component.html` files.
- The `CellComponent` receives the `row` and `column` as input. It checks if the column is a foreign key and creates a link to navigate to the related table. If the column is not a foreign key, it checks the data type of the column and decides whether to display the data as a nested JSON object or a boolean value.
2023-06-24
- art: Modify database driver links
- - Removed unused import in `back/src/wrapper/mongodb.js`.
- - Modified the error message to display a close icon in `front/src/app/container/container.component.ts`.
- - Updated the link to the driver documentation in `front/src/app/container/servers/connection-dialog.html`.
- - Renamed the `docUrl` property to `driverDocumentation` and added a new property `languageDocumentation` in the `Driver` interface in `front/src/classes/driver.ts`.
- - Updated the link to the driver documentation in `front/src/classes/drivers/mongodb.ts`.
- - Updated the link to the driver documentation in `front/src/classes/drivers/mysql.ts`.
- - Updated the link to the driver documentation in `front/src/classes/drivers/postgresql.ts`.
- - Updated the link to the language documentation in `front/src/classes/sql.ts`.
- - Updated the link to the driver documentation in `front/src/shared/code/code.component.html`.
- - Updated the language name and link to the language documentation in `front/src/shared/code/code.module.ts`.
- The changes were made to update the links to the driver documentation and language documentation for the different database drivers used in the application.
2023-06-22
- card_file_box: (back) Update `dev` script in `package.json`
- This commit updates the `dev` script in the `package.json` file for the backend. The script is renamed to `dev:back` to improve clarity and distinguish it from other scripts. The purpose of this change is to make it easier for developers to run and develop the backend server.
- 🛠 (back) Refactor `mongodb.js` in `src/wrapper`
- This commit refactors the `mongodb.js` file in the `src/wrapper` directory of the backend.
- - Imports the `MongoClient` and `ObjectId` from the `"mongodb"` package.
- - Removes unused imports and commented code.
- - Updates the import statement for the `Driver` class.
- The purpose of this change is to optimize the import statements and enhance the code readability in the `mongodb.js` file.
- 🗃 (back) Update `runCommand` method in `mongodb.js`
- This commit updates the `runCommand` method in the `mongodb.js` file of the backend.
- - Modifies the parameter of the method to accept `database` as an optional parameter.
- - Updates the implementation of the method to use the `evalInContext` function instead of the `getResponse` function.
- - Uses the `db` object from the `connection` instead of accessing the `spawnedShell` directly.
- - Returns the result of the execution as an array by calling `result.toArray()`.
- The purpose of this change is to improve the execution of commands in the MongoDB shell and provide a more consistent and reliable response.
- 🗃 (front) Update `dev` script in `package.json`
- This commit updates the `dev` script in the `package.json` file for the frontend. The script is renamed to `dev:front` to improve clarity and distinguish it from other scripts. The purpose of this change is to make it easier for developers to run and develop the frontend application.
- 🏗 (front) Update import statement in `container.component.ts`
- This commit updates the import statement in the `container.component.ts` file of the frontend.
- - Removes the unused import `MatDialogRef` from `"@angular/material/dialog"`.
- The purpose of this change is to remove the unused import and improve the code maintainability.
- 💄 (front) Update button label in `servers.component.html`
- This commit updates the button label in the `servers.component.html` file of the frontend.
- - Changes the label from "Refresh Connections" to "Rescan Connections" to better reflect the action performed by the button.
- The purpose of this change is to improve the clarity and accuracy of the button label for users.
2023-06-20
- package: Update dependencies in `package.json` and `pnpm-lock.yaml`
- This commit updates the dependencies in the `package.json` and `pnpm-lock.yaml` files. It adds a new dependency, `bson`, with version `5.3.0`. The purpose of this update is to ensure that the project has the latest version of the `bson` library.
2023-06-18
- art: Improve table and query component UI
- - Remove unnecessary background color styling in query.component.html
- - Add background color styling to rows with star property in query.component.html
- - Remove border-left styling in tables.component.html
- - Add background color styling to entities with tooltips in tables.component.html
- The changes were made to improve the user interface of the table and query components. Some unnecessary styling was removed and background color styling was added to enhance the visual representation of data.
- art: style(container.component): update editorOptions in ConnectionInfoDialog
- The `editorOptions` object in the `ConnectionInfoDialog` class in the `container.component.ts` file was updated. The `readOnly` property was added and set to `true`.
- This change was made to make the editor read-only, preventing users from modifying the JSON content displayed.
- ✨ ️🐛 front: Fix changing table URL in TablesComponent
- The changeTable method in TablesComponent has been fixed to update the URL
- properly when changing the selected table. The URL is now correctly updated by
- replacing the current table name with the newly selected table name. Additionally,
- if the explore query parameter is present in the URL, it is also properly handled
- by removing the query parameter from the URL before navigating.
- This fix ensures that the table URL is updated correctly when changing tables in
- the application, providing a more seamless and user-friendly experience for
- navigation between different tables.
- heavy_plus_sign: Add table border style based on tooltips
- The tables.component.html file was modified to add a border-left style to the table element based on the existence of tooltips for the table. This change enhances the visual representation of tables in the application by providing a visual indicator for tables with tooltips.
2023-06-16
- 📝 Added support for autocomplete table and column names and types.
- The patch includes changes to several files:
- - Updated `structure.component.html`
- - Updated `code.component.html`
- In the `structure.component.html` and `code.component.html` files, the `ngx-json-viewer` component was modified to have the `expanded` property set to `false` when displaying JSON data.
- In the `mongodb.ts` file, the `language` property of the `MongoDB` class was changed from `'javascript'` to `'typescript'`.
- In the `generator.ts` file, a typo was fixed in a function call.
- In the `code.module.ts` file, unnecessary code related to dynamic loading of driver languages was removed, and autocomplete suggestions were added for TypeScript and SQL language. Additionally, an extra library was added for the `crypto-js` package to provide autocomplete suggestions for specific functions.
- The changes were made to enhance the user experience by providing autocomplete suggestions and improving the display of JSON data.
- recycle: Refactor and clean up codebase
- Removed unnecessary lines and comments in the README file. Updated the `mysql.js` file to improve error handling and remove extraneous characters from error messages. Fixed a missing semicolon in the code component.
- The changes were made to improve code readability, remove unused code, and enhance error handling for a better user experience.
- - Fixed "finir present" spelling
- These changes were made to update the README.md file. The "- Export query via ia" line was added as a new item to the list. The "GPT4All" line was also added as a new item. Additionally, the spelling of "finir present" was fixed.
- ✨ 🎨 Rearrange code component error handling logic
- Previously, the error handling logic in the `CodeComponent` was not
- optimized. This commit rearranges the error handling logic to improve
- readability and maintainability.
- - In the `handleError` method, the position of the error is now assigned
- to the `pos` variable directly.
- - The `line` variable is renamed to `startLineNumber` to better convey
- - The `startLineNumber` is now assigned the correct value by splitting
- the `query` string at the position `pos` and counting the number of
- - The `endLineNumber` is now correctly calculated by checking if the
- `position` value exists and setting it accordingly or to `Infinity`.
- - The error message and severity are still assigned to the model markers
- to be displayed in the editor.
- This refactoring improves the clarity and maintainability of the error
- handling logic in the `CodeComponent`.
- bug: Fix code component HTML and TypeScript
- The code component's HTML template and TypeScript file were updated to fix an issue with initializing the editor. In the HTML template, the `onInit` event now calls the `initEditor` method with an additional argument. In the TypeScript file, the `initEditor` method now accepts an optional `first` parameter, which is used to determine if it's the first initialization of the editor.
- This change was made to ensure that the editor is properly initialized and to fix a bug where the initial editor was not being set correctly.
- This commit also removes unused imports and cleans up the code.
2023-06-15
- sparkles: Updated `README.md`, `back/pnpm-lock.yaml`, `back/src/wrapper/mysql.js`, `front/pnpm-lock.yaml`, `front/src/app/core/advanced/advanced.component.html`, `front/src/shared/code/code.component.ts`, and `front/src/shared/request.service.ts`
- - Exported query via ia in `README.md` to address a specific task.
- - Updated `back/pnpm-lock.yaml` to version `6.1` and added settings for `autoInstallPeers` and `excludeLinksFromLockfile`.
- - Updated dependencies in `back/pnpm-lock.yaml` and `front/pnpm-lock.yaml` to their latest versions.
- - Modified the `MySQL` class in `back/src/wrapper/mysql.js` to handle SQL errors and provide specific error messages for syntax errors in queries.
- - Updated dependencies in `front/pnpm-lock.yaml` to their latest versions.
- - Updated the code in `front/src/app/core/advanced/advanced.component.html` to include additional optimization strategies for query performance.
- - Modified the `runQuery()` method in `front/src/shared/code/code.component.ts` to handle SQL errors and display error markers in the editor.
- - Updated the `request.post()` method in `front/src/shared/request.service.ts` to remove the unnecessary `lastSnack` property.
- children_crossing: Fix: Handle error messages better in PostgreSQL wrapper
- The commit fixes the error handling in the PostgreSQL wrapper by modifying the return object in case of an error. Previously, only the error message was returned, but now additional information such as the error hint and position are included in the return object. This change improves the error handling and provides more detailed information to the caller.
- 🐛 Fix: Dismiss previous snack bar in RequestService
- This commit fixes a bug in the `RequestService` where multiple snack bars were being shown simultaneously. The previous snack bar is now dismissed before displaying a new one to ensure that only one snack bar is visible at a time. This prevents the UI from being cluttered with multiple snack bars and provides a better user experience.
- sparkles: feat: Update container component and configuration class
- - Updated the `container.component.ts` file to display a more informative error message when unable to connect to a server and database.
- - Added a new configuration option in the `configuration.ts` file to specify whether to use special characters to enclose table and column names.
- - Updated the `mysql.ts` file to set the `nameDel` property based on the value of the new configuration option.
- - Updated the `sql.ts` file to use the new configuration class to retrieve the value of the `useNameDel` configuration option, and set the `nameDel` property accordingly.
- These changes were made to improve the user experience by providing better error messages and allowing customization of how table and column names are enclosed.
- 🐛 Fix error message when unable to connect to server and database
- The commit fixes an issue in the `ContainerComponent` where the error message
- was not displayed correctly when the server or database couldn't be
- Instead of showing the error message, it would fail silently.
- This commit adds a check to find the server and database in the array of
- servers and databases, and displays the error message using `MatSnackBar` if
- either server or database is not found.
- It also updates the error message to include the server and database names to
- provide more information to the user.
- - The method `runPagedQuery` in the MongoDB wrapper was not properly
- implemented. It was missing the logic to paginate the query by
- skipping and limiting the results.
- - This bug was fixed by adding the necessary logic to the
- The bug fix was done to ensure that the `runPagedQuery` method in the MongoDB wrapper works correctly by properly applying pagination to the query results.
2023-06-14
- - Removed the unnecessary HTML line break `` between two buttons.
- - Added margin-top style to the action button for better alignment.
- - Adjusted the right position and removed margin-top style for the
- `.actions` class in the SCSS file.
- These changes were made to enhance the user interface and improve the overall aesthetics of the AI component.
2023-06-12
- recycle: Refactor code and add command logging
- The MongoDB wrapper class in the back/src/wrapper/mongodb.js file has been refactored to include a new method `runCommand` that allows running arbitrary commands on the MongoDB server. It also logs the command, database, execution time, and port using the `bash.logCommand` function. This refactoring improves the flexibility and maintainability of the code by separating the command execution logic from the query execution logic.
- In addition, the `runPagedQuery` method has been updated to use the new `runCommand` method instead of querying the database directly. This ensures consistency in command execution across the application.
- The changes were done to enhance the functionality of the MongoDB wrapper and improve the logging capabilities for better monitoring and troubleshooting.
2023-06-11
- recycle: Refactor ai.component.ts
- Refactor the ai.component.ts file to improve code readability and organization.
- - Replaced `child.innerHTML.startsWith("")` and `child.innerHTML.startsWith("")` with `child.getElementsByTagName('code')[0].outerText` for better consistency and clarity.
- - Updated the logic to push the code or HTML depending on the user's role.
- The code was refactored to enhance maintainability and make it easier to understand the logic for handling code and HTML elements in the `Msg` class of `ai.component.ts`.
- art: Refactor(front): Rename label in explore.component.html for paginator
- This commit updates the label in the explore.component.html file for the
- mat-form-field used in the paginator section. The label "Go To Page" has been
- renamed to "Page" for better clarity and simplicity.
- 🐛 Fix(front): Use const instead of let in explore.component.ts
- This commit fixes a bug in the explore.component.ts file where the 'let' keyword
- was used instead of the 'const' keyword. The affected variable 'params' is now
- declared as a constant using the 'const' keyword.
- 🎨 Refactor(front): Rename label in code.component.html for paginator
- This commit updates the label in the code.component.html file for the
- 🐛 Use `$angular-accent` variable instead of hardcoded color
- The color of the `.toUpdate` class and its child `.mat-select-value` is changed from `#ff9800` to `mat-color($angular-accent, default)` to make it more consistent with the Angular color palette. The change ensures that the color can be easily updated globally by modifying the `$angular-accent` variable.
- These changes were made to enhance the maintainability of the codebase and adhere to consistent design standards.
- ✨ `🔥` Remove unused dependency from front/pnpm-lock.yaml
- The `sql-highlight` dependency was removed from the `front/pnpm-lock.yaml` file. This commit removes the unnecessary code.
- The dependency was removed because it was no longer being used in the project and was causing unnecessary bloating of the codebase. Removing unused dependencies helps to improve the maintainability and efficiency of the project.
- - Increase font size of `.mat-paginator-range-label` to 14px.
- - Add margin to `.mat-paginator-range-label`.
- - These changes were made to improve the readability and aesthetics of the range label in the pagination component.
- ✨ Added Mariadb driver SVG file
- This commit adds the SVG file for the Mariadb driver to the front-end assets. The file was located at `front/src/assets/drivers/mariadb.svg` and has been successfully added to the project. The Mariadb driver SVG file is used to display the Mariadb driver icon in the application.
- 💡 The addition of the Mariadb driver SVG file is done to enhance the user interface of the application by providing visual representations for each supported database driver.
- ambulance: Fix database key generation and add examples
- The `Postgre` class in `back/src/wrapper/postgre.js` was modified to fix the generation of the `database` key by concatenating the database name and schema using the delimiter. Additionally, the code was updated to include the `update_rule` and `delete_rule` values when retrieving foreign key information.
- In the `front/src/app/right/ai/ai.component.html` file, a heading was added to the section displaying examples.
- The `front/src/app/right/ai/ai.component.scss` file was modified to adjust the height of the `#examples` div.
- These changes were made to improve the functionality and user experience of the application.
- books: Updated README and AI component
- - Updated the README file by removing unnecessary lines and reordering the content.
- - Modified the AI component in the front-end application.
- - Reordered the AI's question list.
- The changes were made to improve the clarity and organization of the README file and to enhance the functionality of the AI component.
- ✨ Added necessary dependencies for syntax highlighting and line numbering in the code editor.
- ✨ Updated the AI component's HTML and SCSS files to incorporate syntax highlighting and line numbering in the code snippets.
- ✨ Provided a provider configuration in the app module to enable syntax highlighting and line numbering in the code snippets.
- ✨ Imported the necessary modules for syntax highlighting and line numbering in the AI component.
- ✨ Updated the styles.scss file to import the base16 theme for syntax highlighting.
2023-06-10
- art: Add margin-top to actions in ai.component.scss
- The actions in the AI component were positioned absolutely on the right side.
- However, they were too close to the top border.
- This commit adds a margin-top of -12px to create some space between the actions and the top border to improve the visual appearance.
- art: Update README and controller.js, and ai.component.ts
- - Adjusted the formatting in README.md by splitting the text into separate lines.
- - In controller.js, updated the response text to include information about the server and the sample data from the database.
- - In ai.component.ts, updated the response message to specify that it is a sample in JSON.
- These changes were made to improve the readability and clarity of the information provided in the respective files.
- sparkles: **feat**: Update AI component to use `runQuery()` instead of `sendMessage()`
- This commit updates the AI component in the front-end application. It changes the click event in the HTML template file `ai.component.html` from `sendMessage(mrk.code)` to `runQuery(mrk.code)`.
- The reason for this change is to improve the functionality of the AI component by using the `runQuery()` method instead of the deprecated `sendMessage()` method. This will ensure that the result of the query is obtained and sent to the AI successfully.
- green_heart: **front ai component**: improve code structure and functionality
- - Extracted code highlighting logic into a separate method `highlightCode` in the `Msg` class.
- - Updated the `Msg` class to store the highlighted code and HTML separately in the `marked` property.
- - Implemented code highlights and actions for user-generated messages.
- - Added a method `saveChat` to save the chat history in local storage.
- - Updated the logic in the `sendMessage` method to exclude the `marked` property before saving the chat history.
- These changes were made to improve the readability and maintainability of the code in the AI component. The extracted `highlightCode` method simplifies the logic for code highlighting and handling user-generated messages. The `saveChat` method ensures that the chat history is saved without the unnecessary `marked` property for each message.
2023-06-07
- Refactor the `generator.ts` file to improve code readability and simplify the
- generation functions. The `fct` attribute of each generation object has been
- modified to use arrow functions with parameters for minimum and maximum values.
- This change simplifies the calculations for generating random values and makes
- the code more concise and understandable.
- ✨ Changed: Update Postgre class to fetch relations
- The Postgre class has been updated to include a new method called `getRelations()`. This method retrieves the relationships between tables in the Postgre database. The function uses a SQL query to fetch the required data and returns an array of objects representing the relationships.
- This change was made to enhance the functionality of the application by providing information about the relationships between tables. This information can be used for various purposes such as generating ER diagrams or analyzing database dependencies.
- The commit message follows the conventional commit convention and begins with a GitMoji emoji indicating the type of change made. It provides a concise and informative description of the changes made and the purpose behind them. The message also uses the present tense and keeps the lines within the specified character limit.
- art: Improve query component layout
- - Add a conditional style to the table rows in `query.component.html` that breaks spaces if the `breakSpaces` configuration value is true.
- - Remove unnecessary styles related to table cells in `query.component.scss`.
- - Import the `Configuration` class in `query.component.ts` and instantiate it.
- The changes were made to improve the layout and functionality of the query component. By adding the conditional style in the table rows, the query history will be displayed on multiple lines if the `breakSpaces` configuration value is true. Removing unnecessary styles improves code readability and maintainability. Importing and instantiating the `Configuration` class allows accessing configuration values within the component.
2023-06-06
- art: Rearrange commit messages to follow the conventional commit convention:
- feat: Add support for paged queries
- * Create `runPagedQuery` method in `sql.js` and `mongodb.js` to handle paged queries. The `LIMIT` and `OFFSET` clauses are added to the SQL queries.
- * Add a note about the position of the input when the key is not present in the modal.
- fix: Fix color binding in explore.component.html
- * Change `null` to `undefined` in the `color` binding of the button to fix a warning.
- perf: Improve query performance
- * Instead of using `LIMIT` and `OFFSET` in the frontend, pass `pageSize` and `page` parameters to the backend API to handle paged queries.
- refactor: Remove unused code in code.component.ts
- * Remove the `ping` property which is not used in the code.
- * Update the version of an unspecified dependency.
- feat: Add mat-paginator in code.component.html
- * Add mat-paginator to display the number of pages and navigate between them.
- docs: Update code.component.html
- * Update the tooltip text to "Compare Mode".
- chore: Minor code formatting in mongodb.js
- * Add an empty `runPagedQuery` method to `mongodb.js`.
- feat: Add tooltip in code.component.html
- * Add a tooltip to display the information that only the first `pageSize` results will be shown.
- * Update the tooltip text to clarify that only the most keyword/function are proposed in autocomplete.
- * Add a note about the translation of terms between collection and table in the README file.
- feat: Add support for query history in code.component.ts
- * Emit an event to add the executed query to the query history.
- chore: Minor code formatting in controller.js
- * Use `runPagedQuery` instead of `runCommand` for running queries in `query` endpoint.
- pencil2: Remove unnecessary code and files
- The commit removes the unnecessary code and files in the project, specifically the `nameDel` in the front-end. This improves the codebase by reducing clutter and optimizing performance.
- 🎨 Refactor SQL query in Postgre wrapper
- The commit refactors the SQL query in the `Postgre` wrapper to use more efficient JOIN clauses instead of multiple WHERE clauses. This improves the performance and readability of the query.
- 🐛 Fix column mapping in Tables component
- The commit fixes the issue with the column mapping in the Tables component. Previously, a space was added before the `?` symbol, causing incorrect display of the column's nullability. The fix removes the unnecessary space and ensures proper mapping of the column's nullability.
- The changes in this commit aim to improve the functionality and user experience of the Tables component.
2023-06-05
- sparkles: Added support for displaying tags in the structure component.
- - Updated the `structure.component.html` file to display tags for each column in the table. If the column is not a JSON column, the value is displayed, otherwise the value is wrapped with `ngx-json-viewer`.
- - Updated the `structure.component.ts` file to add a `display` method that returns the value to be displayed in the table cell. If the column is the action column, an empty string is returned, if the column is `tags`, the symbols of the indexes associated with the column are joined, otherwise the value of the column is returned.
- - Updated the `add-index-dialog.html` file to change the variable name from `type` to `symbol` for better clarity. Also updated the loop variable name from `type` to `symbol`.
2023-06-04
- building_construction: Add route data for route reuse
- Add route data to each route in the `CoreRoutingModule` file to indicate that the routes should be reused. This is done by setting the `reuseRoute` property to `true` in the `data` object for each route.
- ♻️ Modify CustomReuseStrategy to handle route reuse
- Update the `CustomReuseStrategy` class in the `custom-reuse-strategy.ts` file to support the reuse of specific routes. The `CustomReuseStrategy` class implements the `RouteReuseStrategy` interface from the `@angular/router` module.
- - Modify the `shouldDetach` method to return `true` if the route has the `reuseRoute` property set to `true`, indicating that it should be reused.
- - Modify the `store` method to store the detached route handle only if the `reuseRoute` property is set to `true`.
- - Modify the `shouldAttach` method to check if the route has a valid route configuration and a stored handle for the given route.
- - Modify the `retrieve` method to return the stored handle for the given route if it exists and has a valid route configuration.
- - Add a private `createIdentifier` method to generate a unique identifier for each route based on its path and segments.
- These changes enable the reuse of routes with the specified `reuseRoute` property set to `true`, allowing for improved performance and user experience.
- bug: Fix issue with MySQL index query
- The MySQL query used to retrieve indexes was incorrect. The `NOT NON_UNIQUE`
- part of the query was causing incorrect data to be returned. This has been
- fixed by removing `NOT NON_UNIQUE` from the query.
- 🎨 Refactor PostgreSQL index query
- The PostgreSQL query used to retrieve indexes has been refactored for
- improved performance and readability. The query now includes additional
- information such as the cardinality of the indexes. The indexes are also
- now grouped and returned in a more structured format.
- ✨ Add custom route reuse strategy
- A custom route reuse strategy has been implemented to cache certain routes
- in Angular. The strategy caches routes with specific paths, such as
- 'explore' and 'query', to improve performance by reusing the component
- instances instead of creating new ones.
- ✨ Add custom reuse strategy module
- A new module `custom-reuse-strategy.ts` has been added to handle the
- custom route reuse strategy. This module contains the implementation of
- the `CustomReuseStrategy` class which extends the `RouteReuseStrategy`
- interface and defines the custom behavior for route reuse.
- The PostgreSQL driver class has been refactored to improve the code
- structure and readability. The functions and constants have been
- reorganized for better organization and maintainability. The driver now
- includes a `format` method to format SQL code using the `sql-formatter`
- 🎨 Improve code formatting in code component
- The code formatting in the code component has been improved to include
- line breaks after each line of code. This improves the readability of the
- code and makes it easier to distinguish between different lines.
- art: Update commit message for better clarity and adherence to conventional commit convention.
- - Remove unnecessary comments and rearrange the order of tasks.
- - Reason: Improve readability and organization of the file.
- 2. Update the `data` controller in `controller.js`.
- - Add two new controller methods: `download` and `upload`.
- - Reason: Allow users to download and upload data from the database.
- 3. Update the `data` route in `route.js`.
- - Add routes for the new `download` and `upload` controller methods.
- - Reason: Provide endpoints for downloading and uploading data.
- 4. Update the `mysql` wrapper in `mysql.js`.
- - Add handling for BLOB type columns when retrieving data.
- - Reason: Convert BLOB columns to a placeholder string to prevent data serialization issues.
- 5. Update the `postgre` wrapper in `postgre.js`.
- - Update the query to return an array of table names for indexes.
- - Reason: Ensure compatibility with PostgreSQL.
- 6. Update the `container.component.html` file.
- - Remove the description of the panels in the button toggle.
- - Reason: Improve the visual alignment of the panel icons.
- 7. Update the `container.component.scss` file.
- - Add hover effect when hovering over the server name.
- - Reason: Provide visual feedback to users when hovering over the server name.
- 8. Update the `driver.ts` file.
- - Update the methods with the `functions` property to include null as the value.
- - Reason: Align with the structure of the `Driver` interface.
- 9. Update the `mongoDB.ts` file.
- - Update the `functions` property to an empty object.
- 10. Update the `mysql.ts` file.
- - Add additional SQL functions to the `functions` property.
- - Reason: Enhance the functionality of the MySQL driver.
- 11. Update the `postgre.ts` file.
- - Reason: Enhance the functionality of the PostgreSQL driver.
- - Update the `functions` property with the corresponding function signatures.
- - Reason: Provide accurate function signatures for the SQL driver.
- This commit contains updates to improve functionality and organization in the codebase.
2023-06-03
- feat(readme): Add MySQL and Monaco updates
- Added MySQL and Monaco updates to the README.md file. Updated the CRUD operations with the float, decimal, and "bigNumber" values. Also, included the use of tunnel in the bash command. For Monaco, added autocomplete functionality with the use of crypto-js library and added a feature to reload the app when the structure changes.
- refactor(sql): Refactor delete and update functions
- Refactored the delete and update functions in the SQL class. Added a new method called `getPk()` to get the primary key(s) from the indexes. The `delete()` function now uses the primary key(s) to build the `WHERE` clause for deletion. Similarly, the `update()` function now gets the primary key(s), compares old and new data, and builds the update query accordingly.
- fix(container): Update container component HTML template
- Updated the container component's HTML template. Added a tooltip to display server details including wrapper, user, and params. Also, added a button to reload the database. Removed the previous reload button from the context menu.
- feat(container): Add displayParams() method
- Added a new method called `displayParams()` in the `ContainerComponent` class. This method returns the server params object as a JSON string to be displayed in the tooltip. This helps in viewing the server params in a more readable format.
- ✨ Added feature in `mysql.ts` to include additional functions for MySQL driver.
- This commit adds additional functions to the MySQL driver in `mysql.ts` file. The new functions include: `JSON_ARRAY`, `JSON_KEYS`, `JSON_LENGTH`, `JSON_MERGE`, `JSON_OBJECT`, `JSON_CONTAINS`, `JSON_ARRAY_APPEND`, and `UUID`. These functions are now available for use in the MySQL database.
- ⚙️ Updated `postgre.ts` to include more functions for Postgre driver.
- This commit updates the Postgre driver in `postgre.ts` file to include more functions. The new functions added are `json_array_length`, `json_object_keys`, `json_each`, `json_array_elements`, `json_object`, and `to_json`. These functions can now be used in the Postgre database.
- 🐛 Fixed missing disclaimer in code component HTML.
- This commit adds a disclaimer button to the code component HTML in `code.component.html` file. When clicked, it displays a disclaimer message informing users that the autocomplete feature only suggests most of the keywords and functions, and to refer to the official documentation for a complete list.
- 🔧 Updated docker-compose.yml to include phpmyadmin service.
- This commit updates the `docker-compose.yml` file to include a phpmyadmin service. The phpmyadmin image is added, and the service is set to restart always. The container is mapped to port 4306 on the host machine. The environment variable PMA_ARBITRARY is set to 1.
- The changes were made to include a convenient way to manage MySQL databases using phpmyadmin.
- 📝 Updated README.md with important changes and removals.
- This commit updates the `README.md` file to reflect important changes and removals.
- - Removed unnecessary sections and text in the README.
- - Added a line about using a postgre array of type.
- - Added SQLite-related information and references.
- - Mentioned removal of a nameDel in the front-end.
- - Mentioned Redis pub/sub feature.
- The changes were made to provide a better understanding of the project and its updates.
2023-06-02
- art: Chore(ui): Clean up code and remove unnecessary functionality
- In the `ai.component.ts` file, removed unnecessary examples and updated the existing examples to better reflect their purpose.
- In the `code.component.html` file, removed the commented-out line for the optimize button.
- In the `code.component.ts` file, removed the commented-out code for the `optimize` function.
- The changes were made to improve code readability and remove unused functionality that was causing confusion.] Add optional info about sending view, trigger, and stats
- The changes in the README file added information about optional features, specifically sending view, trigger, and stats. This is done to provide clarity to users about the available functionality.
- recycle: Rearrange and clean up code structure
- Reorganized the code structure in the `README.md` file for better readability. Removed unnecessary lines and reordered the sections.
- The changes were made to improve the organization and clarity of the `README.md` file.
- 🐛 Fix AI component chat options
- Fixed the chat options in the `AiComponent` by updating the text of two chat options. Replaced outdated queries with more relevant and accurate options.
- The changes were made to provide better user experience and ensure the chat options reflect the desired functionality.
- Removed the unused variable `nameDel` from the `AiComponent` in the front-end.
- The changes were made to clean up the code and improve performance by removing unnecessary variables.
2023-05-31
- card_file_box: **FIX**: Update `statsDatabase` and `statsTable` methods in `Postgre` class.
- The `statsDatabase` and `statsTable` methods in the `Postgre` class have been updated to provide more accurate statistics about the size of the database and tables.
- - In the `statsDatabase` method, the `name` parameter is now split into the database name and schema using the `dbToSchemaDelimiter` property. The method then retrieves the data length and index length of the specified database and returns it as an object.
- - In the `statsTable` method, the `database` parameter is split into the database name and schema using the `dbToSchemaDelimiter` property. The method now retrieves the index length and data length of the specified table in the database and returns it as an object.
- This commit improves the accuracy of the statistics provided by the `statsDatabase` and `statsTable` methods in the `Postgre` class.
- bug: Fixed issue with querySize in SQL class
- The querySize method in the SQL class was not handling errors properly.
- The patch fixes the issue by checking if the result object contains an error
- property, and if so, returning "0" instead of the query size. This ensures
- that the method always returns a valid value.
2023-05-30
- books: **README**: Add chat resources
- Added several chat resources to the README file including images and links to cheat sheets. The purpose of this change is to provide additional resources for working with the chat feature.
- ⚙ **back/src/wrapper/postgre.js**: Refactor `getIndexes` method
- Refactored the `getIndexes` method in the `Postgre` class. Instead of querying for indexes of each individual database, now retrieves a list of databases and performs the index query for each one. This change improves performance by reducing the number of database connections and queries executed.
- 🔧 **front/src/app/container/container.component.ts**: Clean up `showSettings` method
- Refactored the `showSettings` method in the `ContainerComponent` class. Removed unnecessary code and simplified the logic. The change improves readability and maintainability of the code.
- 🗃 **front/src/app/core/core.module.ts**: Add `MatAutocompleteModule` as import
- Added `MatAutocompleteModule` to the list of imports in the `CoreModule` to use auto-complete functionality in the application. This change enables auto-completion feature in the explore component, which provides a better user experience for filtering and searching.
- 🎨 **front/src/app/core/explore/explore.component.html**: Improve filter display
- Improved the display of the filter chips in the explore component. Added a separator between filters and formatted the code for readability. This change enhances the visual appearance and clarity of the filters.
- 🎨 **front/src/app/core/explore/explore.component.scss**: Adjust filter button styling
- Adjusted the styling of the filter button in the explore component. Changed the button position and size to align with the input field. This change improves the visual consistency and aesthetics of the filter button.
- :pencil: **front/src/styles.scss**: Adjust styles for input fields
- Adjusted the styles for input fields in the application. Removed placeholder color and set width of the input field to 100%. This change improves the uniformity and usability of input fields throughout the application.
- ✨ Removed unused file in .gitignore
- The file `src/endpoint/subscription/licence` has been removed from the .gitignore file. This change was made because the file is no longer needed and can now be tracked by Git.
- 🔧 Fix: Fix issue with retrieving unique indexes in MySQL wrapper
- The MySQL wrapper was not correctly identifying unique indexes due to a
- error in the query. The `NON_UNIQUE` field was used to determine uniqueness,
- but it was negated using the `NOT` operator. This resulted in incorrect
- values for the `unique` property in the returned indexes. The query has
- been updated to use the `NON_UNIQUE` field directly without negating it,
- fixing the issue with identifying unique indexes.
- This change fixes the bug in the MySQL wrapper and ensures that the unique
- property of indexes is correctly determined. It improves the accuracy of
- index information when working with MySQL databases.