v7.0.0-alpha.3
Pre-release
Pre-release
·
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()forsectionwithoutsection_id. Nowsectionis only the definition of itstipoand the record instance is moved tosection_record. - Correct SQL syntax for adding and updating columns in
matrix_time_machinetable - Update return type of
build_sql_query_selectmethod to void and adjust return statements accordingly and addorder_columnsoption - Ensure
full_countcheck is safe and get it from theSQO - Ensure
section_tipois included in SQL select statements and adjust fallback selection logic - Refactor
build_main_whereto 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_databy 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_areatags path issues on test context. - Fix changed path for JS test to the new path in
/test/client - Fix non defined
fallback_valueissue in view line ofcomponent_input_text - Fix
component_text_areatags path issues on test context (2). - Fix
filter::get_user_authorized_projectsissue with label resolution with the new v7 value model as object. - Fix
ts_objecterror whenrender_ts_linevarssection_tipoandsection_idare not correctly set. - Fix
area_maintenance::long_process_streamresponse types issues. - Add missing cache checking to
DBi::_getConnection_mysql - Rename
set_dato()toset_data()and enhance data handling - Update data value handling to use object structure
- Correct typo in
DEDALO_THESAURUS_RELATION_CHIDREN_TIPOconstant name - Provide default values for nullable expressions
- Rename
get_dato()to newget_data()model - Add type checking and defensive coding for data handling
- Add null check for
dataframe_ddobefore 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
dd15section tipo to remove thewhereclause - Fix 'non existing counter record' error in
matrix_db_manager::create - Add fallback INSERT to
matrix_db_manager::updateto handle updates of non existing records. In these cases, a new record will be created. - Refactor
get_hierarchy_by_tldwith secure input handling inhierarchy - 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 newset_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_testtest unit class. - Add
debug_prepared_statementfunction tocore_functionsfile. - Add global code snippets for PHP and JavaScript
- Add new Time Machine files to loader.
- Add new
db_resultclass. Used to iterate records, fetch and process rows. - Add
build_sql_filter_by_locators_order()method intoorder. 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_operatormethod to detect search operators. Utility method to identify objects containing operator$oror$and, which are used as search operators. - Enhance search query generation with recursive support and debugging
- Add
exec_searchperformance tracking and adjust summaries - [breaking] Add Time Machine record database manager with CRUD operations
- Add
db_datatracking for Time Machine feature incomponent_common - Add
set_idsetter 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_dataforsection - Refactor search tests and cleanup test suite
- Refactor
name_datastructure 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.jsonfor 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()toget_data()
Miscellaneous Tasks
- [breaking] Add new parameters to
SQOdefinition... important!, to see if they will be necessary in the new model. - Unify
environmentcalculation file from API usingdd_core_api::get_environment(). - Remove deprecated method
curl_closefrom curl request. - Add
deparametrize_sqlcore function to parse parametrized SQL in debug tasks. Converts parameters like '$1' to 'oh1'. - Add
get_user_profilecheck 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_multipleuntil the search class is refactored. - Add
idx_matrix_langs_hierarchy41_valuematrix_langsindex for performance resolving language labels. - Update
updatesfile minimum update from value from 6.8.1 to 6.8.3 - Add
test_searchandtest_exec_searchtomatrix_db_manager_testunit test. - Update PHPUnit from 12.4.2 to 12.4.4.
- Change
search_tm->build_sql_query_selectmethod to be compatible with new definition. - Update composer
installed.phpreferences. - Set
data_pathreplacingcomponent_path, it is not used anymore. - Change
diffusion_sql::map_target_section_tiposearch value parameters to includetable_aliasin the results (besidestable). - Improve
Startingmessage CSS in starting page JS. - Improve page
HTMLandBODYtags 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 thematrix_time_machinetable. - Add
delete_tm_columns()method in update process from v6 to v7. Remove oldmatrix_time_machinecolumns. - Change the
component_security_accessupdate data process. Now the component store its data directly in the object withoutvalueproperty. - Change the
matrixprefix 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()indd_core_apisave() - Set
full_counttotrueintodd_core_api->count(). Nowfull_countis not set automatically by search. - Implement new search
countas a trait. - Remove
order_customoption ofSQO - Delete redundant
is_loaded_matrix_dataproperty and associated methods fromcommonclass - Improve error logging for user ID availability in filter_by_user_records
- Add
trim_tipoutility 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_sectionclass 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_versiontotm_record::$save_tmfor 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_managererror 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_valuesfor 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_testto adapt it to v7 features. - Refactor
matrix_db_manager::createmethod to use modernpg_advisory_xact_lockinstead oldBEGIN ISOLATION LEVEL SERIALIZABLE;. - Refactor
matrix_db_manager::update_by_keymethod to handle properly multiple updates in one DB call. Add nestedjsonb_set_laxto handle sentences for the same column. - Refactor
dd_ontology_db_manager_Testandmatrix_db_manager_Testtest classes improving test. - Change the
tool_commonto use the new data format. Parse every row in PgSql instead to use an array. - Refactor page
index.jscode for convenience. - Refactor
get_current_data_versionfor convenience. Simplify the process of searching for and recovering data. - Change search
ar_recordsto newdb_resultcalls inarea_thesaurus. - Change
page_globalsdedalo_projects_default_langsresoution using multiple query instead one by one for performace. - Change
read_raw()to use the new search model for components. - Set
default_orderto be used in every search. - Set new
search()model intofilterand changedatoto newdatamodel. - Clean up SQL filter construction by removing unused user area checks
- Replace
ar_recordsaccess withfetch_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_cacheimprove memory management and variable names- Improve search result handling with proper fetch methods
component_commondatabase 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_recordsto 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_managerclass. Normalize columns and vars names and fix minor issues. - Refactor
section::get_ar_children_tipo_by_model_name_in_sectionfor clarity and better code organization. - Refactor
lang::resolve_multiplemethod adding cache for result. - Refactor
filter::get_user_projectsfor performance - Refactor
filterfor clarity. Re-organized redundant code. - Refactor
component_check_boxdatalist calculation. Moved specific tools properties fromcomponent_commontocomponent_check_box. - Refactor v6 ontology code to work in v7 context
- Refactor v6 search results to v7
db_resultiterator. - Add
pg_connection_statuscontrol to avoid to check on every call. - Change
get_dato()with newget_data(), improve data fetching and formatting logic - Replace 'dato' with 'data' in locator methods
- Refactor
common::get_jsonfor clarity and improved debug. - Change variable name from
datotodatain API class - Rename
datovariables/methods to newdatafor clarity load_component_datamethod by removing redundant section_tipo check- Rename
$datovariables to new$datafor consistency - Rename
$datoto new$datavariables 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_oneofdb_resultreturn 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_TIPOconstant - Rename
get_dato()toget_data()for consistency inmedia_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_dataimplementation and docs inontology - 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_subdatumimplementation - Replace 'dato' with new 'data' model for consistent.
- Refactor
logindirect SQL sentences for convenience. - Fix section save and rename
datotodata. incomponent_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_datotois_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
$datoto new$data - Allow multiple value types in
set_column_dataintm_record - Rename variables and update method calls in
get_typology_locator_from_tldinhierarchy - Rename
is_empty_dato()tois_empty()for clearer naming - Refactor
diffusion_section_statsfor convenience. Replacedpg_queryexecutions by unifiedmatrix_db_manager::exec_search. - Standardize variable naming from
datoto newdataincomponent_text_area - Replace $dato with
$component_datafor clarity ints_object - Change
datoto newdatavariable naming convention - Standardize data retrieval methods and variable names in
ts_object - Use native exception throwing syntax
- Remove unused
__destructmethod and clean up constructor insection_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_dataincomponent_commonanddiffusion_sql classes - Delete unused
build_search_query_objectmethod fromcommonclass - Delete unused
get_profiles_for_areasmethod fromfilterclass
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::createmethod - Refactor test data to use object notation
- Refactor component tests by removing redundant data loading checks
- Remove obsolete
regenerate_relationstest
Change
- Add
startingmessage to the page atindex.jsto 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
WHEREclause in string components. First version of the new parseSQOin components. - Set the new
WHEREclause in date components. First version of the new parseSQOin components. - Set the new
WHEREclause in relation components. First version of the new parseSQOin components. - Replace all calls to
JSON_RecordDataBoundObject::search_free()with new `matrix_db_manager::exec_search(). - Remove
TOP_TIPOdefinition, it is not used anymore. - Change old
search_freeto newexec_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, theSQLJOINclauses use thecomponent_portaldata instead therelationstable. - Delete unused class variable for
sql_queaynow is not necessary. - Delete old dataframe update of v6
- Delete
DEDALO_LOCK_COMPONENTSis not used right now - Delete old
RecordDataBoundfiles fromloader.php - Delete old
sql_recordclass. Is not used anymore - Delete old
get_value_with_fallback_from_dato_full() - Delete unused
build_sql_filter_by_locators_ordermethod fromwheretrait fetch_rowmethod - unused utility function- Delete deprecated
get_valor()method