Commit Graph

245 Commits

Author SHA1 Message Date
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
f47703f599 feat: Simplify OurDB.set function
- Remove unnecessary nested `if` statement in `OurDB.set`.
- Improve code readability and maintainability.
2025-02-19 01:18:23 +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
c6ff7e7ba5 Merge branch 'development' of github.com:freeflowuniverse/herolib into development 2025-02-16 10:05:41 +03:00
3f9a3fb1cd caldav... 2025-02-16 10:05:35 +03:00
7ae4f7dbd0 mail/contacts... 2025-02-16 09:30:51 +03:00
dbb44ec30a mail 2025-02-16 08:25:25 +03:00
7f4fc42a7a mail 2025-02-16 07:49:06 +03:00
01db4540b1 imap 2025-02-16 06:44:43 +03:00
5c0c096a79 Merge pull request #64 from freeflowuniverse/development_coredns
Development coredns
2025-02-13 19:19:09 +02:00
e969eacd06 fix(golang): add go path to env 2025-02-13 16:56:45 +00:00
8ed3439cdc fix(coredns): comment getting machine public ip 2025-02-13 16:13:15 +00:00
25c997fec5 fix(coredns): fixes in coredns installer and client 2025-02-12 17:55:36 +02:00
3117d288b1 WIP(osal.coredns): add example for coredns usage
- added openssl and iproute2 installation to install_v.sh since they're
  needed in coredns installation and usage.
- fixed bug in coredns build process.
- fixed bug in getting own public ip.
- fixed bugs in json encoding dns records before pushing to redis
2025-02-10 17:07:49 +00:00
ed025f9acb ... 2025-02-10 15:53:06 +03:00
5f9c6ff2bb ... 2025-02-10 12:41:14 +03:00
2c149507f6 fixes 2025-02-10 09:42:09 +03:00
timurgordon
34dea39c52 ... 2025-02-09 20:13:18 +00:00
timurgordon
f1a4547961 Merge branch 'development' of https://github.com/freeflowuniverse/herolib into development 2025-02-09 17:55:25 +00:00
timurgordon
8ae56a8df6 new 2025-02-09 17:53:16 +00:00
86e3fdb910 WIP(osal.coredns): add example for coredns usage
- create an example to use coredns module for adding dns records
- fix module errors
2025-02-09 18:06:16 +02:00
f219a4041a ... 2025-02-09 15:50:56 +03:00
f62369bd01 ... 2025-02-09 13:32:44 +01:00
7a6660ebd8 ... 2025-02-09 13:32:34 +01:00
e20d1bdcc5 traeffik first version, coredns 2025-02-09 13:32:11 +01:00
3e309b6379 ... 2025-02-09 12:24:12 +01:00
7b69719f0e ... 2025-02-09 08:55:01 +01:00
1d631fec21 ... 2025-02-09 08:52:42 +01:00
6e619622d2 ... 2025-02-08 14:11:51 +01:00
aa85172700 Merge branch 'development_hetzner' into development_webdav 2025-02-07 13:00:16 +03:00
eff269e911 Merge branch 'development' into development_hetzner 2025-02-07 12:55:30 +03:00
e34d804dda ... 2025-02-07 11:59:52 +03:00
133a8c7441 Merge branch 'development_kristof10' into development
# Conflicts:
#	.github/workflows/build_and_test.yml
#	.github/workflows/hero_build_linux.yml
#	.github/workflows/hero_build_macos.yml
#	install_herolib.vsh
#	install_v.sh
#	workflows/hero_build_macos.yml
2025-02-07 11:20:20 +03:00
4495df4d2e ... 2025-02-07 06:30:13 +03:00
99d3e6c00c ... 2025-02-07 06:19:54 +03:00
a3daefa7ce ... 2025-02-07 05:21:13 +03:00
a66ef2e8b3 ... 2025-02-06 21:09:20 +03: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