Merged
Conversation
Owner
PabloStarOk
commented
Oct 10, 2025
- File analysis functionality.
- URL analysis functionality.
- SMS messages and emails analysis functionality by extracting URLs and analyzing them along with attached files.
- Basic authentication with JWTs.
- Retrieval of analysis results.
- Real-time analysis updates with SignalR.
…sis status Removes the non-failed and non-timeout analysis status filters at the LINQ query when calculating the most frequent and lower status.
build(docker): add docker files
Move shared setup logic for MassTransit services to Infrastructure.Shared and move old files in Adapters directory from MultiAnalyzer to Infrastructure to decouple API from background services.
…ile storage provider
…ons configuration
…llow binding docker volumes
…cal file storage provider
…atabase configuration
…void ambiguity with message analyses
… create Analysis with the correct internal ID
…ulti-analyses - Add AnalysisJobConsumer with new logic to start and poll both file and URL analyses but with a more robust logic allowing the multi-analysis tasks to track and continue its progress even on unexpected fatal errors. - Add AnalysisJobConsumerStatus and AnalysisJobConsumerState to allow multi-analysis progress tracking in AnalysisJobConsumer. - Add FileAnalysisJobConsumerDefinition and UrlAnalysisJobConsumerDefinition to define and configure the endpoints and consumers for each analysis type. - Add new IMultiAnalyzer interface and implementations responsible for starting analyses and loading them in case the AnalysisJobConsumer needs to load its progress. - Add new IMultiAnalysisPoller interface and implementation to poll analyses. - Add JobTimeoutOptions, PollingOptions and MultiAnalyzerOptions to configure new types. - Update DI extension methods to include the new job consumers and the repository required to store their progress. - Add ExternalAnalysisIdJsonConverter to allow MassTransit to serialize and deserialize the ExternalAnalysisId when storing job progress in the DB. - Update AnalyzeFileMessage and AnalyzeUrlMessage to implement new AnalysisJobMessage and standardize their names. - Remove old unused message consumers, orchestrators and custom timeout logic as it's not required. - Update docker compose file to include a transient service for running database migrations for the worker service. - Update Dockerfile to include a migrations stage specific to the new transient service.
- Introduced FaultedMultiAnalysisConsumer to process messages for failed analysis jobs. - Updated ConsumerConfig to include the variant of the Name property with the error suffix for each consumer. - Add new FaultedMultiAnalysisConsumer to the dependency injection configuration. - Add FailedFileAnalysesConsumerDefinition and FailedUrlAnalysesConsumerDefinition to configure the new consumer for file and URL analyses respectively. - Update FileAnalysisJobConsumerDefinition and UrlAnalysisJobConsumerDefinition to remove retry policy from analysis job consumers to ensure faulted job messages are published. - Update MultiAnalysis to allow setting the status to failed.
feat: use job consumer and handle failed analysis jobs to increase file and url multi-analysis robustness
…event 404 status code
- Add a new IRecentAnalysisFinder interface to abstract the logic of finding recent analyses. - Implement RecentMessageAnalysisFinder and RecentMultiAnalysisFinder to find recent analyses based on a configurable age limit. - Introduce AnalysisReuseOptions to configure the maximum age for reusing analyses. - Add ReusableAnalysis model to encapsulate analysis details for reuse and allowing reusing the HashValues to prevent DbContext issues. - Update MessageAnalysisService, FileMultiAnalysisService, and UrlMultiAnalysisService to utilize the new recent analysis finders and respect the age limit. - Update dependency injection to register the new services and options.
- Allow existing byte arrays to be hashed without needing to wrap them in a MemoryStream. - Update HashService implementation to include the new method. - Update dependent services to utilize the new method where applicable. - Move pkg RecyclableMemoryStream to Openlysis.Infrastructure project as it's not needed by Openlysis.Application project.
…leted to prevent concurrency exceptions
…nto small-focused methods and improve efficiency
…to ValueTask for improved performance
- Add IMessageAnalysisUpdatesNotifier and IMultiAnalysisUpdatesNotifier interfaces. - Implement MessageAnalysisUpdatesNotifier and MultiAnalysisUpdatesNotifier using SignalR in the API layer. - Configure SignalR hub and client interfaces for real-time communication. - Update dependency injection and app configuration in API layer to include new services. - Modify consumers and state machines to trigger real-time notifications using the new notifier interfaces. - Add MessagePack for efficient data serialization in SignalR communication.
feat: implement real-time analysis updates via SignalR
…urpose - Rename project Openlysis.MultiAnalyzer to Openlysis.AnalysisOrchestrator - Rename directory src/Infrastructure/Workers to src/Infrastructure/Services. - Update all relevant namespaces and references. - Update Docker configurations to reflect the new names.
- Add new ICertificateProvider implementation for development environments - Update dependency injection to use the new provider in dev environments - Add logging for existing DopplerCertificateProvider.
- Add license and release badges to the README. - Add new Openlysis icon to the README. - Improve description of the project. - Add table of contents. - Add features section. - Add architecture section. - Add getting started section with prerequisites and setup instructions for development and production-like environments. - Add usage section with instructions to interact with the APIs. - Add configuration templates for development and production-like environments.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.