Skip to content

v7.0.0-alpha.3

Pre-release
Pre-release

Choose a tag to compare

@renderpci renderpci released this 17 Dec 20:50
· 57 commits to master since this release

[7.0.0-alpha.3] - 2025-12-17

Bug Fixes

  • Fix deprecated use of backtick in class exec_. Changed by double quotes.
  • Set correctly the get_instance() for section without section_id. Now section is only the definition of its tipo and the record instance is moved to section_record.
  • Correct SQL syntax for adding and updating columns in matrix_time_machine table
  • Update return type of build_sql_query_select method to void and adjust return statements accordingly and add order_columns option
  • Ensure full_count check is safe and get it from the SQO
  • Ensure section_tipo is included in SQL select statements and adjust fallback selection logic
  • Refactor build_main_where to conditionally include root user exclusion based on section type
  • Rename and enhance search SQL parser with null safety
  • Skip empty search objects in filter parser
  • Simplify save_component_data by removing redundant code
  • Correctly merge error arrays in area maintenance class and update return type for long_process_stream method
  • Correct constant name typo and improve array handling in lock_components class
  • Handle non-string parameters in debug_prepared_statement
  • Add isset check for full_count property access
  • Fix component_text_area tags path issues on test context.
  • Fix changed path for JS test to the new path in /test/client
  • Fix non defined fallback_value issue in view line of component_input_text
  • Fix component_text_area tags path issues on test context (2).
  • Fix filter::get_user_authorized_projects issue with label resolution with the new v7 value model as object.
  • Fix ts_object error when render_ts_line vars section_tipo and section_id are not correctly set.
  • Fix area_maintenance::long_process_stream response types issues.
  • Add missing cache checking to DBi::_getConnection_mysql
  • Rename set_dato() to set_data() and enhance data handling
  • Update data value handling to use object structure
  • Correct typo in DEDALO_THESAURUS_RELATION_CHIDREN_TIPO constant name
  • Provide default values for nullable expressions
  • Rename get_dato() to new get_data() model
  • Add type checking and defensive coding for data handling
  • Add null check for dataframe_ddo before processing
  • Refactor relation children data handling and remove deprecated methods
  • Handle object arrays when joining value strings
  • Refactor email input handling with improved validation for render edit in component_email
  • Improve hierarchy processing and add defensive checks
  • Handle array of objects for email value strings
  • Safely render content values and display validation errors in component_email
  • Prevent empty WHERE clause in SQL query generation in search
  • Handle Time Machine dd15 section tipo to remove the where clause
  • Fix 'non existing counter record' error in matrix_db_manager::create
  • Add fallback INSERT to matrix_db_manager::update to handle updates of non existing records. In these cases, a new record will be created.
  • Refactor get_hierarchy_by_tld with secure input handling in hierarchy
  • Handle empty value arrays in component_number
  • Standardize data access methods for consistency in tool_ontology
  • Correct 'dato' to 'data' in component media test method names
  • Sort children data by order, fix references and add alt key reload in ts_object
  • Improve error handling when creating section records in section
  • Update time machine save flag name to consistent save_tm
  • Enable full count in relation index search queries
  • Correct indentation and add null checks for safe DOM manipulation
  • Replace set_dato() with new set_data() for consistent API usage

Documentation

  • Add copilot AI instructions
  • Update references in search_query_object documentation to point to the correct parsing methods
  • Add comprehensive RQO field mapping and API v1 documentation. This documentation helps developers understand and correctly implement API calls to Dédalo.
  • Add Fedora installation guide with system requirements and steps
  • Increase recommended RAM from 32GB to 64GB

Features

  • Add a new trait for where clause.
  • Add a new trait for from clause.
  • Add a new trait for order clause.
  • Add a new trait for select clause.
  • Add API performance monitor.
  • Add dd_ontology_db_manager_test test unit class.
  • Add debug_prepared_statement function to core_functions file.
  • Add global code snippets for PHP and JavaScript
  • Add new Time Machine files to loader.
  • Add new db_result class. Used to iterate records, fetch and process rows.
  • Add build_sql_filter_by_locators_order() method into order. Used to join sections in specific order (the locators order)
  • Add recursive get_query_path() method for component relationship traversal to handle recursive path construction in JSON query objects.
  • Implement search options tooltip generator for operator labels. Create tooltips displaying search operators and their labels.
  • Add is_search_operator method to detect search operators. Utility method to identify objects containing operator $or or $and, which are used as search operators.
  • Enhance search query generation with recursive support and debugging
  • Add exec_search performance tracking and adjust summaries
  • [breaking] Add Time Machine record database manager with CRUD operations
  • Add db_data tracking for Time Machine feature in component_common
  • Add set_id setter method for id property
  • Enhance query preparation with path validation
  • Refactor variable naming from dato to data for consistency
  • Add fallback language data retrieval method
  • Add provisional v6 root user migration support and fix typo
  • Simplify hierarchy search logic and remove deprecated code in install
  • Add input event handling and change tracking in render_edit_component_email
  • Enhance query parsing and SQL parameter handling in component_section_id
  • Add translation support and new data methods in component_section_id
  • Use consistent {value: ...} object structure in component_json
  • Add new ontology type constants for semantic modeling
  • Refactor typology section handling with multi-language support in ontology
  • Extract utility methods to utils trait in search
  • Add default ordering to SQL query builder for tm
  • Update reference IDs for metadata fields for tool_time_machine
  • Refactor change event handler and add search method for component_password
  • Refactor SQL construction and test assertions of login
  • Remove obsolete test_set_is_loaded_matrix_data for section
  • Refactor search tests and cleanup test suite
  • Refactor name_data structure for translation objects
  • Add BaseTestCase with execution timing benchmarking helper
  • Refactor column data handling to support multiple types with config arrays
  • Rename get_dato to get_data for improved code clarity in widgets
  • Improve locator order assignment in parse_child_data
  • Add method to check if record exists in database in section_record
  • Add save method to persist data to database in section_record
  • Track if record exists in database in section_record
  • Add nolan language support for transliteration fallback
  • Add loading spinner animation and clean up debug code in ts_object
  • Refactor input padding and normalize styles
  • Add OpenAPI 3 specification for JSON API entrypoint
  • Restructure main_section_data.json for new organization
  • Implement language-aware column mapping for CSV import tool
  • Refactor bulk process creation and component data saving in CSV importer
  • Add time machine history saving option in tool_import_dedalo_csv
  • Prevent SQL injection in activity stats queries

Fix

  • Correct method name from get_dato() to get_data()

Miscellaneous Tasks

  • [breaking] Add new parameters to SQO definition... important!, to see if they will be necessary in the new model.
  • Unify environment calculation file from API using dd_core_api::get_environment().
  • Remove deprecated method curl_close from curl request.
  • Add deparametrize_sql core function to parse parametrized SQL in debug tasks. Converts parameters like '$1' to 'oh1'.
  • Add get_user_profile check for empty user data cases.
  • Change spinner CSS to v7 spinner.
  • Add user activity data check to prevent empty values issues.
  • Add temporal query for lang::resolve_multiple until the search class is refactored.
  • Add idx_matrix_langs_hierarchy41_value matrix_langs index for performance resolving language labels.
  • Update updates file minimum update from value from 6.8.1 to 6.8.3
  • Add test_search and test_exec_search to matrix_db_manager_test unit test.
  • Update PHPUnit from 12.4.2 to 12.4.4.
  • Change search_tm->build_sql_query_select method to be compatible with new definition.
  • Update composer installed.php references.
  • Set data_path replacing component_path, it is not used anymore.
  • Change diffusion_sql::map_target_section_tipo search value parameters to include table_alias in the results (besides table).
  • Improve Starting message CSS in starting page JS.
  • Improve page HTML and BODY tags vertical fill to 100%.
  • Add remove_tm_created_sections() method in update process from v6 to v7
  • Add recreate_tm_table() method in update process from v6 to v7. Used to change the matrix_time_machine table.
  • Add delete_tm_columns() method in update process from v6 to v7. Remove old matrix_time_machine columns.
  • Change the component_security_access update data process. Now the component store its data directly in the object without value property.
  • Change the matrix prefix var names for all db managers.
  • Add fill_new_columns_in_tm() to copy data from old tm columns into new schema.
  • Change to new set_data() in dd_core_api save()
  • Set full_count to true into dd_core_api->count(). Now full_count is not set automatically by search.
  • Implement new search count as a trait.
  • Remove order_custom option of SQO
  • Delete redundant is_loaded_matrix_data property and associated methods from common class
  • Improve error logging for user ID availability in filter_by_user_records
  • Add trim_tipo utility for compacting section tipo in SQL queries
  • Fix and improve search filter building logic and method signatures
  • Add allowed tables configuration for matrix activity database manager
  • Update search parameters and result handling
  • Optimize section::get_ar_children_tipo_by_model_name_in_section class removing unnecessary recursive resolution.
  • Add cache clause to prevent cache failed API responses (e.g. menu lot logged case)
  • Disable API performance metrics
  • Add exec_search stats metrics
  • Change RecordObj_time_machine::$save_time_machine_version to tm_record::$save_tm for convenience.
  • Clean up DBi code and add more faillures controls.
  • Adapt code to v7 data calls component_media_common
  • Adapt code to v7 data calls component_3d
  • Simplify data handling and remove dead code
  • Change Exception cases by return false to make more permisive the matrix_db_manager error handling.
  • Update test host and add PostgreSQL table duplication utility
  • Expand skip list for database operations db_tasks
  • Remove obsolete section initialization logic
  • Increase z-index of modal header to 4
  • Add new ignore patterns for continue tooling files
  • Add .markdownlint.json to gitignore

Performance

  • Add empty select '[]' to get_list_of_values for performance.

Refactor

  • Change the search to use the new data columns model.
  • Change the search_tm() class according to new data columns model.
  • Refactor class matrix_db_manager_test to adapt it to v7 features.
  • Refactor matrix_db_manager::create method to use modern pg_advisory_xact_lock instead old BEGIN ISOLATION LEVEL SERIALIZABLE;.
  • Refactor matrix_db_manager::update_by_key method to handle properly multiple updates in one DB call. Add nested jsonb_set_lax to handle sentences for the same column.
  • Refactor dd_ontology_db_manager_Test and matrix_db_manager_Test test classes improving test.
  • Change the tool_common to use the new data format. Parse every row in PgSql instead to use an array.
  • Refactor page index.js code for convenience.
  • Refactor get_current_data_version for convenience. Simplify the process of searching for and recovering data.
  • Change search ar_records to new db_result calls in area_thesaurus.
  • Change page_globals dedalo_projects_default_langs resoution using multiple query instead one by one for performace.
  • Change read_raw() to use the new search model for components.
  • Set default_order to be used in every search.
  • Set new search() model into filter and change dato to new data model.
  • Clean up SQL filter construction by removing unused user area checks
  • Replace ar_records access with fetch_all() method in the ontology update process.
  • Improve code readability in class factory
  • Simplifies SQL construction by replacing string concatenation with array-based building. Now search query builder to use object-oriented approach.
  • Reorganize SQL query building logic for better readability
  • Modularize SQL query building with parse_sql_default
  • Remove deprecated search utility methods
  • Wrap DB result in iterator wrapper
  • Improve parse_sqo method structure and readability
  • Clean up query properties and update row fetching method
  • tool_update_cache improve memory management and variable names
  • Improve search result handling with proper fetch methods
  • component_common database result handling by using correct fetch methods
  • Simplify project filter logic and fix JSONB operator usage
  • Enhance debugging and error handling in matrix DB manager
  • Migrate from ar_records to fetch methods for search results
  • Improve search results handling with database result object
  • Simplify search query parsing method
  • Simplify media references removal logic
  • Improve Time Machine record handling and error reporting
  • Reorganize section creation process and fix search result handling
  • Improve caching, search logic and data handling
  • Standardize variable names and improve database result handling
  • Optimize section ID retrieval using foreach loop
  • Normalize variable naming from dato to data
  • Improve code quality and fix search limit handling
  • Optimize context/data processing and caching
  • Simplify tool object creation and data handling
  • Simplify active tools processing and update return type
  • Improve value handling with clearer comments and type safety
  • Refactor dd_ontology_db_manager class. Normalize columns and vars names and fix minor issues.
  • Refactor section::get_ar_children_tipo_by_model_name_in_section for clarity and better code organization.
  • Refactor lang::resolve_multiple method adding cache for result.
  • Refactor filter::get_user_projects for performance
  • Refactor filter for clarity. Re-organized redundant code.
  • Refactor component_check_box datalist calculation. Moved specific tools properties from component_common to component_check_box.
  • Refactor v6 ontology code to work in v7 context
  • Refactor v6 search results to v7 db_result iterator.
  • Add pg_connection_status control to avoid to check on every call.
  • Change get_dato()with new get_data(), improve data fetching and formatting logic
  • Replace 'dato' with 'data' in locator methods
  • Refactor common::get_json for clarity and improved debug.
  • Change variable name from dato to data in API class
  • Rename dato variables/methods to new data for clarity
  • load_component_data method by removing redundant section_tipo check
  • Rename $dato variables to new $data for consistency
  • Rename $dato to new $data variables for consistency and clarity
  • Unify variable naming from 'dato' to 'data'
  • Update default query handling to use JSON path querying
  • Email component event handling and data structure
  • Standardize data fallback methods and improve consistency
  • Update fetch_one of db_result return type to include false
  • Improve translation fallback mechanism for component_string_common
  • Improve query parsing and handling for component strings
  • Simplify query building with JSONB operator for component_relation
  • Rename table/column variables and update method signature in ontology
  • Remove redundant legacy DEDALO_TESAURO_TIPO constant
  • Rename get_dato() to get_data() for consistency in media_icons
  • Standardize component new data methods in ontology
  • Simplify TLD lookup with secure JSON query approach im ontology
  • Optimize main form target section lookup performance in ontology
  • Change ontology section management and add new component data handling
  • Update get_main_name_data implementation and docs in ontology
  • Change ontology data access methods to consistent get_data() interface
  • Improve type safety and null handling in ontology_node
  • Update record creation and data handling methods section_stats
  • Comment out get_tm_subdatum implementation
  • Replace 'dato' with new 'data' model for consistent.
  • Refactor login direct SQL sentences for convenience.
  • Fix section save and rename dato to data. in component_relation
  • Update data access methods and variable names in hierarchy
  • Update data structure and fallback handling in component_input_text
  • Improve error logging and tool configuration handling in tool_common
  • Add row count validation for safe result iteration in tool_register
  • Update test references from is_empty_dato to is_empty
  • Migrate database manager tests to BaseTestCase with performance optimizations
  • Remove deprecated filter test method and dataset
  • Remove obsolete is_loaded_matrix_data test methods
  • Disable dark mode component styling and remove test case
  • Improve code quality and fix data retrieval component_iri
  • Rename $dato to new $data
  • Allow multiple value types in set_column_data in tm_record
  • Rename variables and update method calls in get_typology_locator_from_tld in hierarchy
  • Rename is_empty_dato() to is_empty() for clearer naming
  • Refactor diffusion_section_stats for convenience. Replaced pg_query executions by unified matrix_db_manager::exec_search.
  • Standardize variable naming from dato to new data in component_text_area
  • Replace $dato with $component_data for clarity in ts_object
  • Change dato to new data variable naming convention
  • Standardize data retrieval methods and variable names in ts_object
  • Use native exception throwing syntax
  • Remove unused __destruct method and clean up constructor in section_record
  • Update variable names and disable matrix feature
  • Simplify label fetching by using precomputed value in tool_import
  • Simplify section existence check and remove unused time machine code in tool_import_dedalo_csv

Remove

  • Delete redundant loading data checks is_loaded_matrix_data in component_common and diffusion_sql classes
  • Delete unused build_search_query_object method from common class
  • Delete unused get_profiles_for_areas method from filter class

Testing

  • Add comprehensive PHPUnit tests for tm_db_manager class
  • Add unit test for search method with empty query for tm_record_search
  • Add comprehensive PHPUnit tests for search functionality
  • Rename test method to match updated parse_sql_query
  • Add comprehensive unit tests for matrix_activity_db_manager::create method
  • Refactor test data to use object notation
  • Refactor component tests by removing redundant data loading checks
  • Remove obsolete regenerate_relations test

Change

  • Add starting message to the page at index.js to give info to users when server is preparing the start response (creation of needed tables, server checks, etc.).
  • Set the test_build_main_where()
  • Set the postgreSQL values of the columns as JSON when string are given. Used to set data from DB.
  • Set the new WHERE clause in string components. First version of the new parse SQO in components.
  • Set the new WHERE clause in date components. First version of the new parse SQO in components.
  • Set the new WHERE clause in relation components. First version of the new parse SQO in components.
  • Replace all calls to JSON_RecordDataBoundObject::search_free() with new `matrix_db_manager::exec_search().
  • Remove TOP_TIPO definition, it is not used anymore.
  • Change old search_free to new exec_search
  • Rename old search class to identify it as v6
  • Implements new search()->db_result.
  • Set TIme Machine process to get a ontology section definition dd15. Now the Time Machine process its data as any other section

Remove

  • [breaking] Delete old widget regenerate_relations. Now the relations is calculate directly by the locators. So, the SQL JOIN clauses use the component_portal data instead the relations table.
  • Delete unused class variable for sql_queay now is not necessary.
  • Delete old dataframe update of v6
  • Delete DEDALO_LOCK_COMPONENTS is not used right now
  • Delete old RecordDataBound files from loader.php
  • Delete old sql_record class. Is not used anymore
  • Delete old get_value_with_fallback_from_dato_full()
  • Delete unused build_sql_filter_by_locators_order method from where trait
  • fetch_row method - unused utility function
  • Delete deprecated get_valor() method