Commit Graph

51 Commits

Author SHA1 Message Date
Mahmoud-Emad
8f2d187b17 fix: Rename freeflowuniverse to incubaid 2025-10-12 12:30:19 +03:00
46e1c6706c ... 2025-05-04 08:19:47 +03:00
a155122898 Merge branch 'development_actions007' into development
* development_actions007:
  add vfs method to local vfs
  add actor gen func
  mcp fixes
  code module fixes
  Fix sidebar paths to include top-level directory names in wiki configuration
2025-03-29 05:59:15 +01:00
Timur Gordon
8e82b2865b add vfs method to local vfs 2025-03-26 19:30:28 +01:00
Mahmoud Emad
2335d14623 refactor: Remove unnecessary import in local filesystem model
- Removed unused `os` import from `model_fsentry.v`. This
  improves code clarity and reduces unnecessary dependencies.

- Updated `vfs_implementation_test.v` to use the correct
  import paths for mail-related modules.
2025-03-26 12:15:38 +02:00
598b312140 ... 2025-03-24 06:44:39 +01:00
Mahmoud Emad
bd83ad37bf feat: Improve RadixTree debugging output
- Enable printing of RadixTree debug information: The `debug_db` and
  `print_tree_from_node` functions now print detailed information
  about the RadixTree's internal structure, aiding in debugging.  This
  improves the developer experience by providing better tools for
  understanding and troubleshooting issues within the RadixTree.
- Remove unnecessary comments:  Unnecessary comments in the `debug_db`
  function have been removed to improve code clarity.
2025-03-17 22:23:14 +02:00
Mahmoud Emad
22cbc806dc feat: Add calendar VFS implementation
- Adds a new virtual file system (VFS) implementation for calendar data.
- The calendar VFS provides a read-only view of calendar events,
  organized by calendar, date, title, and organizer.
- Includes new modules for factory, model, and implementation details.
- Adds unit tests to verify the functionality of the calendar VFS.
2025-03-17 22:12:57 +02:00
Mahmoud Emad
02e0a073aa feat: Add Contacts VFS module
- Adds a new VFS module for accessing contact data.
- Provides read-only access to contacts, organized by groups and
  browsable by name and email.
- Includes comprehensive documentation and unit tests.
2025-03-17 16:44:41 +02:00
Mahmoud Emad
abd694015b feat: Add contacts database and VFS implementation
- Added a new contacts database (`ContactsDB`) to store contact
  information.  This improves data organization and allows for
  more efficient querying and manipulation of contact data.
- Implemented a virtual file system (VFS) for contacts
  (`vfs_contacts`). This provides a file-like interface to access
  and manage contact data, improving integration with existing
  file-system-based tools and workflows.  The VFS supports
  listing by group, by name, and by email.
- Added model structs for contacts, improving data organization and
  serialization.  This lays the foundation for more robust data
  handling and future expansion.
2025-03-17 15:58:20 +02:00
3b1068a3a8 ... 2025-03-15 19:55:48 +01:00
122cba9f6b ... 2025-03-15 19:32:38 +01:00
timurgordon
a974091442 webdav completion wip 2025-03-13 04:34:10 +01:00
timurgordon
ff430c2e4d Remove path from fsentry metadata, make vfs and webdav work again with fixes 2025-03-12 02:16:40 +01:00
708147435e vfs working 2025-03-09 20:01:00 +01:00
26289bb00f Merge branch 'development_actions007' into development_ourdb_new
# Conflicts:
#	lib/data/dedupestor/dedupestor.v
#	lib/data/dedupestor/dedupestor_test.v
2025-03-09 19:07:12 +01:00
timurgordon
01cac0f741 fixes to chunked file data processing 2025-03-08 01:52:53 +01:00
timurgordon
90c81a1234 add path to fsentry metadata 2025-03-06 15:48:37 +01:00
timurgordon
b01e40da40 fix vfsimplemetation, add path metadata 2025-03-06 01:23:17 +01:00
timurgordon
913b0cb790 fix vfs_db and add metadata_db 2025-03-04 00:49:57 +01:00
timurgordon
a690f98cc1 fine tuned vfs_db to work with dedupe db 2025-02-28 03:15:47 +03:00
timurgordon
d06a806184 isolate vfs's and improve documentation 2025-02-27 11:42:46 +03:00
timurgordon
fe1becabaf fix and refactor vfs modules to merge ourdb implementations into generic vfs_db and separate vfs_local 2025-02-27 11:12:17 +03:00
timurgordon
17979b4fde start implementing vfs with dedupe ourdb driver 2025-02-26 03:12:09 +03:00
Mahmoud Emad
4ed80481aa test: Add more comprehensive tests for vfsourdb
- Added tests to verify directory listing functionality after
  creating and moving directories.
- Improved test coverage for file operations within directories.
- Ensured tests accurately reflect the updated behavior of
  `dir_list` function.
2025-02-25 13:13:41 +02:00
Mahmoud Emad
b67db23e07 feat: Improve VFS rename and copy operations
- Return FSEntry from `rename` and `copy` operations in VFS
  to provide more information about the result.  This allows
  access to metadata after a successful rename or copy.

- Update `LocalVFS` and `NestedVFS` implementations to return
  the appropriate FSEntry objects after successful rename and
  copy operations.
2025-02-24 14:03:41 +02:00
Mahmoud Emad
4fe1e70881 feat: Improve directory copy functionality and add error handling
- Refactor `Directory.copy()` to use a struct for arguments,
  improving readability and maintainability.
- Add comprehensive error handling to `Directory.copy()`,
  preventing unexpected failures and providing informative error
  messages.  This includes handling cases where the source is not
  a directory, or a source and destination path are the same.
- Implement recursive copying of directory contents, including files
  and symlinks.
- Add unit tests to cover the new `copy` functionality and error
  handling.
- Update `OurDBVFS.copy()` to utilize the improved `Directory.copy()`
  method and add input validation.
2025-02-24 13:55:16 +02:00
Mahmoud Emad
988602f90f feat: Enhance VFS with file and directory manipulation
- Add `move`, `copy`, and `rename` methods to `Directory` and `File`
  for improved file system management.
- Refactor `move` operation in `Directory` for better error handling and
  support for recursive directory moves.  Improves robustness and
  clarity of the move operation.
- Implement a `MoveDirArgs` struct to improve the clarity and
  maintainability of the `move` function arguments.
- Remove unnecessary `save()` calls for improved performance.
- Add comprehensive tests for the new and improved file system
  operations.  Ensures reliability and correctness of the added
  functionality.
2025-02-24 13:10:34 +02:00
Mahmoud Emad
306de32de8 feat: Implement rename functionality for directories and files
- Added `rename` method to `Directory` struct to rename files and
  directories, updating metadata and timestamps.  This improves
  file management capabilities.
- Added `rename` method to `OurDBVFS` to provide a unified
  interface for renaming files and directories across the VFS. This
  allows for consistent file system operations.
- Added tests for the new rename functionality in `vfsourdb_test.v`
  to ensure correctness and robustness. This enhances confidence in
  the implementation.
2025-02-23 22:35:37 +02:00
Mahmoud Emad
c0b57e2a01 feat: Add file move operation
- Added `move` operation to `Directory` to rename files and
  directories within the same directory.  This improves
  file management capabilities.
- Updated `VFS` interface to include `move` function with
  FSEntry return type for consistency. This allows for
  retrieving metadata of the moved file/directory.
- Implemented `move` operation for `LocalVFS`, `OurDBVFS`, and
  `NestedVFS`.  This provides consistent file move
  functionality across different VFS implementations.
- Added tests for the new move functionality in
  `vfsourdb_test.v`. This ensures the correct behavior of the
  new feature.
2025-02-23 22:26:05 +02:00
Mahmoud Emad
aeeacc877b feat: Improve VFS handling and authentication middleware
- Remove unnecessary debug print statements in VFS and WebDAV
  middleware for cleaner code.
- Fix a bug in `OurDBVFS.exists` to correctly handle root and
  current directory paths.
- Enhance `OurDBVFS.get_entry` to handle '.' path correctly.
- Improve WebDAV authentication middleware to gracefully handle
  unauthenticated requests.
2025-02-23 14:33:18 +02:00
timurgordon
0d96c5fc65 fix webdav server implementation and logic 2025-02-22 01:40:46 +03:00
timurgordon
6b0cf48292 implement webdav server in veb 2025-02-20 19:04:07 +03:00
timurgordon
9160e95e4a fix circular printing 2025-02-20 18:03:30 +03:00
Mahmoud Emad
296cb9adf5 feat: Add WebDAV support and tests
- Added basic WebDAV functionality for interacting with the
  underlying VFS.
- Created unit tests to verify WebDAV methods.
- Improved OurDBFS implementation by adding skip attribute to
  myvfs field.
2025-02-20 16:50:11 +02:00
Mahmoud Emad
f08af0e2c5 refactor: Improve WebDAV VFS implementation
- Removed unnecessary dependencies and improved code structure in `webdav` module.
- Updated VFS configuration to use global VFS instance for WebDAV app.
- Renamed example VFS file to reflect WebDAV functionality.
- Removed redundant code and simplified app initialization.
- Used the vfs interface to interact with files and dirs.
2025-02-19 22:57:15 +02:00
Mahmoud Emad
33150846cc feat: Add move operation and file type checks
- Add `move` operation to the VFS interface and implementations.
  This allows for moving files and directories within the VFS.
- Add `is_dir`, `is_file`, and `is_symlink` methods to the
  `FSEntry` interface and implementations.  This allows for
  robust file type checking before performing operations.
2025-02-19 12:10:52 +02:00
Mahmoud Emad
383fc9fade feat: Improve OurDBFS ID generation and data persistence
- Use a counter for consistent ID generation in OurDBFS: This
  eliminates reliance on timestamps, preventing ID collisions and
  improving data integrity.
- Refactor save methods to directly use the VFS's save_entry
  function: This simplifies the code and reduces redundancy across
  different file system entity types (Directory, File, Symlink).
- Update `save_entry` in OurDBFS to use IDs for database updates:
  This ensures data is correctly updated in the database based on the
  unique ID of each entry.  This also fixes potential issues with
  overwriting data.
2025-02-19 01:12:19 +02:00
Mahmoud Emad
4691046d5f refactor: Remove unnecessary debug print statements
- Removed numerous println statements throughout the codebase.
2025-02-18 17:45:29 +02:00
Mahmoud Emad
7b453962ca feat: Enhance WebDAV server and add VFS encoder/decoder tests
- Add user authentication to the WebDAV server using a user
  database.
- Implement encoding and decoding functionality for directories,
  files, and symlinks in the OurDBFS VFS.
- Add comprehensive unit tests for the encoder and decoder
  functions.
- Improve the OurDBFS factory method to handle directory creation
  more robustly using pathlib.
- Add `delete` and `link_delete` methods to the `NestedVFS` and
  `OurDBVFS` implementations (though currently unimplemented).
- Improve WebDAV file handling to correctly determine and set the
  content type.  The previous implementation was incomplete and
  returned a dummy response.
- Update VFS test to actually test functionality.
- Remove unnecessary `root_dir` parameter from the WebDAV app.
2025-02-18 17:40:37 +02:00
Mahmoud Emad
528d594056 feat: Improve OurDBFS file system persistence and ID generation
- Fixed ID generation for files and directories in OurDBFS,
  preventing collisions and improving data integrity.  This
  ensures that IDs are consistently and uniquely assigned.
- Updated save methods to correctly update the `metadata.id`
  field across all FSEntry types (File, Directory, Symlink).
  This change solves a previous issue where IDs weren't being
  properly persisted.
- Added incremental mode to OurDB, improving performance for
  large datasets.  This allows for more efficient updates
  instead of full overwrites.
2025-02-18 13:27:22 +00:00
timurgordon
6305cf159e small fixes on example 2025-02-18 05:22:38 +03:00
Mahmoud Emad
906f13b562 feat: Refactor WebDAV server to use VFS core
- Replace custom VFS implementations with the core VFS module
- Simplify VFS setup and configuration in example code
- Improve code maintainability and consistency
2025-02-17 17:01:35 +00:00
timurgordon
84142b60a7 create webdav -> parent_vfs -> ourdb_vfs example 2025-02-17 19:14:00 +03:00
Mahmoud Emad
66f29fcb02 feat: Improve OurDBFS and OurDBVFS functionalities
- Handle updates correctly in OurDB `set` function, preventing errors
  when incremental mode is enabled.
- Ensure directories are correctly created with metadata in OurDBFS.
- Add debug print statements to OurDBVFS for improved debugging.
- Simplify OurDBVFS `get_entry` function for better readability and
  correctness.  Fixes potential issues with returning references.
- Update tests to reflect changes and use a temporary directory
  to avoid conflicts.
2025-02-17 15:37:58 +00:00
Mahmoud Emad
fa677c01b2 feat: Improve safety of get_entry function
- Wrap child access in unsafe block to prevent potential data races.
2025-02-17 09:44:25 +00:00
Mahmoud Emad
acd1a4a61d WIP: Fixing the tests 2025-02-16 14:04:17 +00:00
Mahmoud Emad
ee1ac54dde refactor: Rename crystallib to herolib
- Updated import paths to reflect the renaming of the
  `crystallib` module to `herolib`. This change improves
  consistency and clarity in the project structure.
2025-02-16 13:01:50 +00:00
Mahmoud Emad
2599fa6859 feat: Move the vfs dirs to the herolib 2025-02-16 14:56:29 +02:00
4a2753d32c refactor(webdav): remove lock_manager from webdav app
- Remove unused `lock_manager` from the `App` struct.
- Comment out the lock and unlock handlers.
- Improve `propfind` response XML generation.
- Fix path handling in `generate_response_element`.
- Update content type handling for files.
- Improve XML generation for resource responses.

Co-authored-by: mahmmoud.hassanein <mahmmoud.hassanein@gmail.com>
2025-02-06 15:37:21 +02:00