Introduce independent action-type abstractions (single-entity / bulk / scope) with per-type runner and monitor
- Dominant language
- Python
- Stars
- 670
- Forks
- 183
- Avg merge
- 17h 7m
- Merged PRs (30d)
- 358
Description
Implement a brand-new, independent action abstraction split into three action types — single-entity, bulk, and scope — each with its own self-contained base action/result, its own runner (including processor and validator), and its own monitor. This is greenfield: the existing BaseAction framework and the ~46 entities inheriting it are left untouched.
## Design decisions
- No shared supertype: single-entity / bulk / scope bases are fully independent and carry their own common contract.
- Runner is per-type and absorbs processor + validator responsibilities.
- Monitor is per-type; monitors cannot be shared across the three types (implementations genuinely differ).
- Scope action accepts multiple scopes as input (a sequence of scopes), not a single scope_type/scope_id.
- Existing modules under actions/action, actions/processor, actions/validator, actions/monitors are NOT modified; new code lives in isolated new modules.
## Sub-issue breakdown
- Action (1): independent base action + result for all three types.
- Runner (3): one per type (single-entity / scope / bulk), each including processor + validator.
- Monitor (3): one per type (single-entity / scope / bulk).
JIRA Issue: BA-6900
Contributor guide
Research direction
Start by reviewing the existing actions/action, actions/processor, actions/validator, and actions/monitors modules to understand the boundaries the issue says to preserve. Plan isolated modules for the three independent action/result pairs, their per-type runners, and their per-type monitors. Done means all three types have the specified self-contained components without modifying the existing framework or its entities.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100