-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
featureNew functionality.New functionality.
Description
Define a RESTless API-like interface for the Analytics module, providing CRUD operations for Workflows, Triggers, and Schedules, following the same architectural and implementation pattern used in DataStreamService.
This service will form the core application layer entry point for clients to:
- Create, update, retrieve, and delete analytic workflows
- Manage triggers and schedules
- Import workflows or triggers from a shared library
- Execute a workflow given a workflow or workflow name
(Updated) Acceptance Criteria for Analytics Services
TriggersService
-
TriggersServiceinterface defined incarp.analytics.core. - Interface extends
ApplicationService<TriggersService, TriggersService.Event>using correct type. - Includes methods:
createTrigger(trigger)updateTrigger(trigger)deleteTrigger(triggerId)getTrigger(triggerId)listTriggers(studyId)startTrigger(triggerId, at)endTrigger(triggerId, at)
-
API_VERSIONset to1.0. - Sealed
TriggersService.Eventdefined and implementsIntegrationEvent<TriggersService>. -
TriggersServiceRequestdefined with full serializer setup and docstrings. -
TriggersServiceInvokermanually dispatches to implementation methods. -
TriggersServiceRequest.jsonschema generated with correct__typeconstants and polymorphic response anchors. -
Trigger.jsonschema supports polymorphism withManualTrigger. - Example request and response pairs defined in
exampleRequests. - JSON schema validation tests pass.
WorkflowService
-
WorkflowServiceinterface defined with methods:createWorkflow(studyId, workflow)updateWorkflow(studyId, metadata, workflow)getWorkflow(studyId, workflowId)deleteWorkflow(studyId, workflowId)listWorkflows(studyId)
-
WorkflowServiceRequestsealed class with serializers and docstrings. -
WorkflowServiceInvokermanually routes each request. -
WorkflowServiceRequest.jsonschema implemented with all request types and response anchors. -
Workflow.jsonandWorkflowMetadata.jsonschemas generated. - Example requests for all methods added to
exampleRequests. - Round-trip validation tests added and pass.
ExecutionService
-
ExecutionServiceinterface defined with methods:executeWorkflow(studyId, workflowId)executeWorkflowFromDefinition(studyId, workflow)getExecutionState(executionId)getExecutionResult(executionId)findExecutions(studyId, workflowId?, from?, to?)getLatestExecutionStatus(studyId, workflowId?)
-
ExecutionServiceRequestdefined with serializers and docstrings. -
ExecutionServiceInvokermanually dispatches all request types. -
ExecutionServiceRequest.jsonschema created with:oneOfentry for each request- version field
Responseanchor for each type
- Schemas created for all domain models:
ExecutionStateExecutionResult(with subtype:BasicExecutionResult)ExecutionArtifact,ArtifactType
- Example requests for all methods added to
exampleRequests. - JSON schema test coverage added and validated.
Documentation Table (Optional)
- Add a Markdown table (similar to
DataStreamService) summarizing TriggersService methods.
Metadata
Metadata
Assignees
Labels
featureNew functionality.New functionality.