merge with milva master#1
Open
bbesli wants to merge 26 commits into
Open
Conversation
Introduce cursor-based pagination for job occurrences and enhance workflow triggering with per-step job data overrides. * Add `.env` and `.env.local` to `.gitignore` for local environment management. * Add `GetJobOccurenceListCursorQuery` and handler for cursor-based pagination. * Update `JobsController` with `GetJobOccurrencesCursorAsync` endpoint. * Add `StepJobData` to `WorkflowRuns` via `WorkflowJobDataOverride` migration. * Enhance `WorkflowStepDto` with `WorkerId` and `JobNameInWorker`. * Refactor `GetWorkflowDetailQueryHandler` to include job info for steps. * Add `TriggerWorkflowCommand` and handler for per-step job data overrides. * Implement `MergeJobData` method in `WorkflowEngineService`. * Update `OccurrenceTable` and `ExecutionList` for cursor-based pagination. * Add `TriggerWorkflowModal` for workflow triggering with step overrides. * Update `WorkflowDetail` and `WorkflowList` to integrate the modal. * Enhance `occurrenceService` and `workflowService` for new features. * Upgrade NuGet dependencies for improved functionality and compatibility. * Update unit tests to reflect changes in `JobDataMap` handling. * Add new CSS styles for `TriggerWorkflowModal` and pagination updates.
Introduce `BasePath` for hosting under a sub-path. * Add `BasePath` property to `MilvaionConfig.cs` for configuration. * Update `docker-compose.yml` and `Dockerfile` to support `VITE_BASE_PATH`. * Modify `Program.cs` to use `UsePathBase` middleware for routing. * Update `vite.config.js` to dynamically configure `base` and proxy settings. * Update `.env` files to include `VITE_BASE_PATH` for local and production builds. * Refactor React components to use `useNavigate` for base path compatibility. * Update `api.js` and `signalRService.js` to construct URLs dynamically. * Add integration tests (`BasePathIntegrationTests.cs`) to validate sub-path hosting. * Document `BasePath` configuration in `06-configuration.md`. * Update PWA settings to respect the base path. These changes enable deployment flexibility by allowing the application to be hosted under a configurable sub-path.
Refactor startup recovery to improve dispatcher responsiveness: * Add `CleanupZombieOccurrencesAsync` to handle zombie cleanup in the background. * Remove inline zombie cleanup logic from `PerformStartupRecoveryAsync`. * Update log messages to indicate background zombie cleanup. * Enhance XML documentation for `PerformStartupRecoveryAsync` and add documentation for `CleanupZombieOccurrencesAsync`. This change allows the dispatcher to start immediately while zombie cleanup runs asynchronously, improving system performance and maintainability.
Introduce /config.js endpoint to serve runtime base path and settings for the frontend. Update React app to read base path from window.__MILVAION_CONFIG__ for routing, API, and SignalR. Adjust documentation and docker-compose.yml to reflect new runtime configuration approach.
- Added ManagementEnabled and ManagementPort to RabbitMQOptions and appsettings.json. - Introduced RabbitMQManagementClient for querying queue stats via the Management HTTP API. - Updated QueueDepthMonitor to use the Management API for detailed queue statistics and dynamic queue discovery, with fallback to AMQP when unavailable. - Updated DI registration and XML docs accordingly.
Updated Milvasoft SDK and template package versions across projects. ApiWorker and ConsoleWorker now reference the latest SDK.Worker. Improved SyncOrchestratorService logging to only log when there are actual synced or failed items.
…ers. - Fix user activity tags.
- Added `JobTestRunner` and `Milvasoft.Milvaion.Sdk.Worker.Testing` for in-process local job testing without external services - Documented local job testing in `23-local-job-testing.md` - Updated worker templates to generate test projects by default - Added sample test projects and example tests for workers - Upgraded NuGet dependencies and added SQLitePCLRaw for .NET 10 support - Added root `dotnet-tools.json` for tool manifest
- Bump Milvaion template version to 10.1.4 - Update Microsoft.AspNetCore.OpenApi and Microsoft.Extensions.Hosting to 10.0.9 - Switch test imports to Milvasoft.Milvaion.Sdk.Worker.Testing - Remove unused FluentAssertions import in ConsoleWorker.Tests
Refactored AlertNotifier to properly dispose the timeout CancellationTokenSource and handle unregistered channels more cleanly. Updated WorkflowEngineServiceTests to use a polling wait instead of a fixed delay, ensuring all workflow runs have settled before proceeding.
- Implemented infinite scroll for the card (list) view in JobList using IntersectionObserver and a sentinel element. - Refactored job loading logic to support both paginated table and infinite scroll card views. - Updated CSS for infinite scroll UI elements, including loading spinner and end-of-list message. Improved refresh and error handling for both views.
- Introduce MilvaionApiKey entities, migrations, and CQRS features for create/update/revoke/delete/list with permission and audit tracking - Implement ApiKeyAuthenticationHandler (X-ApiKey), Redis cache, and immediate cache invalidation; permissions as role claims for seamless [Auth] support - Add ApiAuthAttribute and update default policy to support both JWT and API key authentication - Add /mcp Model Context Protocol server with job, workflow, and failure tools, enforcing permissions via McpPermissionGuard - Add React UI for API key management (create/edit/delete/revoke, permission selection, one-time key reveal), update navigation and styles - Add docs for API keys and MCP server, including security model and client integration - Support partial workflow updates (UpdateProperty<T>), improve validation, add tests, and optimize job occurrence indexes - Bump version to 1.2.0
Introduce mandatory method annotations (`ReadOnly`, `Destructive`, `Idempotent`) for MCP server tools to clarify intent. Add explicit filtering and sorting to list tools with a max page size of 100. Throw `McpException` for not-found cases. Require explicit permissions for write tools and enforce domain safeguards. Refactor tool methods for improved parameter descriptions and filtering. Define structured prompts in `MilvaionPrompts` and register them with endpoints. Update documentation for conventions, filtering, prompt usage, and error handling.
Added MilvaionInsightTools.cs with 40+ read-only MCP server tools for metric reports, infrastructure health, and configuration. Updated documentation tables and descriptions to reflect new endpoints and permissions, clarifying tool usage and integration details.
Introduce GetWorkflowRunAnalysisQuery and GetMetricReportSummaryListQuery for MCP tools API, providing flattened workflow run analysis and efficient metric report metadata listing. Update MCP tool endpoints to use these queries, improving programmatic consumption and performance. Add new DTOs, EF Core projections, and validators. Update documentation and XML comments to explain new endpoints, DTOs, and design rationale.
…ode, fix startup recovery bug. - Add migration for nullable CompletedAt on ScheduledJobs to track one-time job completion and prevent rescheduling. - Introduce DTOs for config, upcoming executions, and job occurrence logs. - Implement queries, handlers, and validators for job logs, summaries, and upcoming executions. - Add CronProjector and StartupScheduleResolver with unit tests for accurate scheduling. - Add workflow condition expression parser/evaluator with tests. - Add React components: collapsible section, localStorage state hook, Upcoming Executions page, workflow DAG canvas, and visual condition builder. - Refactor detail/page header CSS for consistency. - Update EF migration snapshot for CompletedAt. - Ensure unit test coverage for new features.
- Major refactor to standardize all table/list pages using new shared React components (TableParts, TableActions, Pagination, ViewToggle, JobSelect) and a single, prefixed CSS system. - Replaces per-page table markup and styles with reusable layouts, toolbars, filters, selection bars, bulk actions, and pagination. - Table cells, row actions, and status indicators are now consistent across the app. Improves mobile responsiveness, maintainability, and code reuse. - Updates Vite config for better chunking. - Cleans up global CSS and adds utility functions for durations/statuses.
- Major redesign of Dashboard, Monitoring, and Configuration pages for clarity and navigation. - Adds unified JsonView for JSON handling, refactors trigger result dialogs, and improves delete actions with busy states. - Updates sticky element CSS, CollapsibleSection icons, and table action feedback. - Backend adds /admin/resource-usage endpoint for live metrics. - Documentation and comments updated for new behaviors.
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.
Description
Please provide a brief description of the changes in this PR.
Related Issue
Fixes #(issue number)
Type of Change
Changes Made
Testing
Describe the tests you ran to verify your changes:
Test Configuration:
Checklist
Screenshots (if applicable)
Add screenshots to help explain your changes.
Additional Notes
Add any additional notes for reviewers.