Skip to content

Comments

v0.1.0-alpha#29

Merged
PabloStarOk merged 353 commits intomainfrom
dev
Oct 10, 2025
Merged

v0.1.0-alpha#29
PabloStarOk merged 353 commits intomainfrom
dev

Conversation

@PabloStarOk
Copy link
Owner

  • 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.

PabloStarOk and others added 30 commits April 28, 2025 19:21
…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.
PabloStarOk and others added 28 commits August 30, 2025 23:04
… 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
- 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.
…nto small-focused methods and improve efficiency
- 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.
@PabloStarOk PabloStarOk changed the title v0.1.0 v0.1.0-alpha Oct 10, 2025
@PabloStarOk PabloStarOk merged commit 7228dc5 into main Oct 10, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant