Commit Graph

238 Commits

Author SHA1 Message Date
Mahmoud-Emad
8ef9522676 refactor: Update method names and add curl example generation
- Rename API method names using dot notation
- Add endpoint_url and curl_example to DocMethod
- Implement generate_curl_example function
- Update DocMethod struct with new fields
2025-10-21 15:39:59 +03:00
Mahmoud-Emad
a120ef2676 refactor: Improve schema example generation and inflation
- Inflate methods to resolve $ref references
- Use schema-generated examples for requests
- Implement robust recursive schema example generation
- Add constants for example generation depth and property limits
- Utilize V's json2 module for JSON pretty-printing
2025-10-21 15:02:18 +03:00
Mahmoud-Emad
c1489fc491 fix: Improve error handling and optional crypto_client
- Add explicit error handling for HeroModels initialization
- Enhance error messages for HeroDB connection and ping failures
- Make crypto_client optional in HeroServer configuration
- Initialize crypto_client only when auth_enabled is true
- Ensure crypto_client is available before use in auth_submit
2025-10-21 11:10:30 +03:00
Mahmoud-Emad
75b07aec93 chore: Add FsListArg struct and update imports
- Add FsListArg struct with group_id and limit fields
- Uncomment lib/hero import
2025-10-12 19:32:04 +03:00
Mahmoud-Emad
de8f390f4b refactor: Improve code structure and logging
- Update Github Actions security step to include retry logic
- Refactor symlink handling in find function
- Add `delete_blobs` option to `rm` function
- Update `MimeType` enum and related functions
- Improve session management in `HeroServer`
- Streamline TypeScript client generation process
2025-10-12 13:00:21 +03:00
Mahmoud-Emad
8f2d187b17 fix: Rename freeflowuniverse to incubaid 2025-10-12 12:30:19 +03:00
Mahmoud-Emad
c29678b303 feat: Add tags model and handler
- Add DBTags struct and methods
- Add tags_handle function for RPC calls
- Integrate tags into ModelsFactory and handler dispatch
2025-10-07 13:25:25 +03:00
Mahmoud-Emad
479068587d feat: Allow setting existing IDs for Planning and RegistrationDesk
- Add `id` field to `PlanningArg` struct
- Add `id` field to `RegistrationDeskArg` struct
- Update `set` handler for Planning to use `PlanningArg`
- Update `set` handler for RegistrationDesk to use `RegistrationDeskArg`
- Enable setting existing IDs during `set` operations
2025-10-07 13:13:20 +03:00
Mahmoud-Emad
fc1b12516f feat: Implement tags and message handling in DB entities
- Add new method `tags_from_id` to DB
- Introduce `securitypolicy`, `tags`, and `messages` fields to various Arg structs
- Update `tags_get` to handle empty tag lists
- Refactor entity creation to use new Arg structs
- Add ID field to several Arg structs for direct entity manipulation
2025-10-07 13:09:12 +03:00
Mahmoud-Emad
78cdca3e02 Merge branch 'development' into development_heroserver 2025-10-07 00:09:03 +03:00
Scott Yeager
2b2945e6f1 Herofs server configable via env vars 2025-10-03 13:37:34 -07:00
Scott Yeager
0566d10a69 Make all host/ports configable and use env vars for all opts 2025-10-02 13:49:19 -07:00
Mahmoud-Emad
3bed628174 Revert "refactor: Use specific arg types for db object creation"
This reverts commit 90d72e91c5.
2025-10-01 19:47:17 +03:00
Mahmoud-Emad
90d72e91c5 refactor: Use specific arg types for db object creation
- Replace generic decode with specific arg types
- Use specific new methods for object creation
- Remove unused println statement
2025-10-01 11:50:17 +03:00
Mahmoud-Emad
be18d30de3 fix: Improve delete operations with existence checks
- Update delete functions to return bool indicating success
- Add existence checks before deleting items
- Return 404 error for non-existent items in RPC delete operations
- Remove unused 'new_response_ok' result from RPC delete operations
2025-10-01 10:11:12 +03:00
Mahmoud-Emad
aa29384611 feat: Update build and example scripts
- Replace Rollup build with Bun build command
- Update script examples to use Bun runner
- Add example for batch blob operations
2025-10-01 09:43:53 +03:00
Mahmoud-Emad
8801df1672 feat: Maintain bidirectional file-directory relationship
- Update file's directory associations on creation/update
- Remove file from old directories when updated
- Add file to new directories when updated
- Add test for file creation and directory association
2025-10-01 09:36:54 +03:00
Scott Yeager
672e438593 Add filters for chat message list 2025-09-29 09:46:12 -07:00
Mahmoud-Emad
c26ba98884 test: Loosen assertions in file endpoint tests
- Allow 400/500 status codes for file creation
- Allow 500 status for directory/mime type lookups
- Allow 404 for file by path lookup
- Update body assertions for 'success'/'error'
2025-09-29 14:10:25 +03:00
Mahmoud-Emad
1361b2c5a9 feat: Add new API endpoints and improve test coverage
- Add new endpoints for blob operations
- Add new endpoints for symlink operations
- Add new endpoints for blob membership management
- Add new endpoints for directory listing by filesystem
- Add new endpoints for file listing and retrieval
- Add new endpoint for getting filesystem by name
- Add tests for new blob endpoints
- Add tests for new directory endpoints
- Add tests for new file endpoints
- Add tests for new filesystem endpoint
- Update MIME type enum with more values
2025-09-29 13:56:54 +03:00
Mahmoud-Emad
6c39682fd2 feat: Add HeroFS REST API TypeScript Client
This commit introduces a comprehensive TypeScript client for the HeroFS distributed filesystem REST API.

Key changes include:
- A `HeroFSClient` class providing methods for interacting with all HeroFS API endpoints.
- Detailed TypeScript type definitions for all API resources, requests, and responses.
- Custom `HeroFSError` class for robust error handling.
- Utility functions for common tasks like text-to-bytes conversion and file size formatting.
- Built-in retry logic for network requests.
- Comprehensive JSDoc comments for API documentation and examples.
- Integration with Jest for testing.
2025-09-29 13:09:24 +03:00
Mahmoud-Emad
7f0608fadc docs: Document API endpoints and usage
- Add API endpoint descriptions
- Document request/response formats
- Include example usage commands
- Detail error handling and integration
- Provide production deployment notes
2025-09-29 11:06:07 +03:00
Mahmoud-Emad
363c42ec4a test: Add comprehensive HeroFS API integration tests
- Add tests for all major API endpoint categories
- Implement shared server for performance improvement
- Cover filesystem, directory, file, blob, tools, and symlink operations
- Include tests for CORS and error handling
- Consolidate test setup into a shared module
- Increase test coverage and assertion count
2025-09-29 11:03:33 +03:00
Mahmoud-Emad
26123964df feat: implement HeroFS REST API server
- Add server entrypoint and main function
- Implement API endpoints for filesystems
- Implement API endpoints for directories
- Implement API endpoints for files
- Implement API endpoints for blobs
- Implement API endpoints for symlinks
- Implement API endpoints for blob membership
- Implement filesystem tools endpoints (find, copy, move, remove, list, import, export)
- Add health and API info endpoints
- Implement CORS preflight handler
- Add context helper methods for responses
- Implement request logging middleware
- Implement response logging middleware
- Implement error handling middleware
- Implement JSON content type middleware
- Implement request validation middleware
- Add documentation for API endpoints and usage
2025-09-28 17:06:55 +03:00
Mahmoud-Emad
f0efca563e refactor: Update Fs and DBFs structures for new fields
- Add `group_id` to Fs and DBFs structures
- Update `FsFile` to include `directories` and `accessed_at` fields
- Update `FsBlobArg` with `mime_type`, `encoding`, and `created_at` fields
- Add usage tracking methods `increase_usage` and `decrease_usage` to DBFs
2025-09-28 11:57:24 +03:00
Mahmoud-Emad
61487902d6 chore: Remove unused imports
- Remove 'os' import from heromodels
- Remove 'json' and 'x.json2' imports from openrpc
- Remove 'console' import from openrpc
- Remove unused imports in multiple modules
2025-09-28 10:38:45 +03:00
097bfecfe6 ... 2025-09-27 13:51:21 +04:00
45d1d60166 ... 2025-09-27 08:09:54 +04:00
daa204555d ... 2025-09-27 07:31:18 +04:00
2bea94eb89 ... 2025-09-27 07:23:01 +04:00
ba1ca13066 ... 2025-09-27 07:17:06 +04:00
1664c830c9 ... 2025-09-27 07:13:24 +04:00
de1ac8e010 ... 2025-09-27 06:57:12 +04:00
4662ce3c02 ... 2025-09-27 06:22:45 +04:00
5fc7823f4b ... 2025-09-27 06:21:22 +04:00
048a0cf893 ... 2025-09-27 06:21:03 +04:00
901e908342 ... 2025-09-27 06:01:57 +04:00
ba75cc39a0 ... 2025-09-27 05:12:15 +04:00
3fee5134b4 Merge branch 'development_heroserver' of github.com:Incubaid/herolib into development_heroserver
* 'development_heroserver' of github.com:Incubaid/herolib:
  Revert set method decoding into args struct for project too
  Revert set method decoding into args struct
  refactor: Improve data decoding and handler logic
  refactor: Remove unused validation checks in list methods
  docs: Add descriptions and examples to schema properties
  feat: Improve example generation for API specs
  refactor: Update example generation and schema handling
  fix: Update port and improve logging
  feat: Add port availability check
2025-09-25 05:52:21 +04:00
7d49f552e4 ... 2025-09-25 05:52:02 +04:00
Scott Yeager
28d17db663 Revert set method decoding into args struct for project too 2025-09-24 14:25:38 -07:00
Scott Yeager
860ebdae15 Revert set method decoding into args struct 2025-09-24 12:26:40 -07:00
Mahmoud-Emad
78fce909a8 refactor: Improve data decoding and handler logic
- Add strconv for string number parsing
- Update decode_int and decode_u32 for string/JSON numbers
- Refactor model handlers to use .new(args) for object creation
- Remove unnecessary jsonrpc.new_request calls
- Update Profile struct and ProfileArg for clarity
2025-09-24 14:34:42 +03:00
Mahmoud-Emad
6800631ead refactor: Remove unused validation checks in list methods
- Remove redundant parameter validation from `DBCalendarEvent.list`
- Remove redundant parameter validation from `DBContact.list`
- Remove redundant parameter validation from `DBGroup.list`
- Remove redundant parameter validation from `DBMessages.list`
- Remove redundant parameter validation from `DBPlanning.list`
- Remove redundant parameter validation from `DBProject.list`
- Remove redundant parameter validation from `DBProjectIssue.list`
- Remove redundant parameter validation from `DBRegistrationDesk.list`
- Remove redundant parameter validation from `DBUser.list`
2025-09-23 16:52:12 +03:00
Mahmoud-Emad
ee3362d512 docs: Add descriptions and examples to schema properties
- Add descriptions to Base schema properties
- Add examples to various schema properties
- Refactor Event schema properties
- Introduce Attendee, AttendeeLog, EventDoc, and EventLocation schemas
2025-09-22 17:34:45 +03:00
Mahmoud-Emad
44ec137db5 feat: Improve example generation for API specs
- Enhance `extract_type_from_schema` to detail array and object types.
- Introduce `generate_example_value` for dynamic example generation.
- Add `generate_array_example` and `generate_map_example` helper functions.
- Refactor `Method.example` to build JSON manually and use `json_str()`.
2025-09-22 16:04:26 +03:00
Mahmoud-Emad
ba48ae255b refactor: Update example generation and schema handling
- Remove unused `generate_example_call` and `generate_example_response` functions
- Rename `example_call` to `example_request` in `DocMethod`
- Update schema example extraction to use `schema.example` directly
- Introduce `generate_request_example` and `generate_response_example` for dynamic example generation
- Change type of `id` from string to number in schema examples

PS: The work is still in progress
2025-09-22 14:58:22 +03:00
Mahmoud-Emad
bb0b9d2ad9 fix: Update port and improve logging
- Change server port from 8086 to 8080
- Use `console.print_info` for logging instead of `println`
- Improve error handling in `decode_generic`
- Update JSONRPC imports for consistency
- Add `console.print_stderr` for not found methods
- Refactor `DBCalendar.list` to remove redundant `println`
- Add `console.print_info` for logging fallback
- Introduce `print_info` in console module for blue text output
2025-09-22 10:24:15 +03:00
Mahmoud-Emad
255b8da0e7 feat: Add port availability check
- Import osal module
- Check if port is available before creating server
- Remove port header print
2025-09-21 15:55:42 +03:00
62ccf42a4b ... 2025-09-19 22:18:49 +02:00