docs re-org

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-09 13:26:35 +00:00
parent 4d13a57068
commit 6a4f95c35a
231 changed files with 11353 additions and 31152 deletions

View File

@@ -0,0 +1,65 @@
# Automation Endpoints
## Purpose
Describe automation API endpoints that configure, trigger, monitor, and control automation runs.
## Code Locations (exact paths)
- Routing: `backend/igny8_core/business/automation/urls.py`
- Views: `backend/igny8_core/business/automation/views.py`
- Services/Tasks: `backend/igny8_core/business/automation/services/automation_service.py`, `automation_logger.py`, `backend/igny8_core/business/automation/tasks.py`
## High-Level Responsibilities
- Expose configuration CRUD (get/update) and operational controls (run, pause, resume, cancel).
- Provide run history, status, logs, pipeline overview, credit estimate, and current processing state.
- Enforce site/account scoping and authentication.
## Detailed Behavior
- Base path: `/api/v1/automation/`
- Key endpoints (actions on `AutomationViewSet`):
- `GET config?site_id=` → get/create `AutomationConfig` for site (includes batch sizes, delays, schedule, flags, last/next run).
- `PUT update_config?site_id=` → update config fields (enable, frequency, scheduled_time, batch sizes, delays).
- `POST run_now?site_id=` → start a run (checks locks/credits) and enqueue Celery `run_automation_task`.
- `GET current_run?site_id=` → current running/paused run details with per-stage results and totals.
- `GET history?site_id=` → last 20 runs with status and timestamps.
- `GET logs?run_id=&lines=` → tail of automation log file for run.
- `GET estimate?site_id=` → estimated credits required plus current balance and sufficiency flag (1.2× buffer).
- `GET pipeline_overview?site_id=` → counts/pending by stage across planner/writer models.
- `GET current_processing?site_id=&run_id=` → live processing state for active run.
- `POST pause?run_id=` / `POST resume?run_id=` / `POST cancel?run_id=` → control run state (pause/resume/cancel).
- Permissions/tenancy: `IsAuthenticated`; site fetched with `account=request.user.account`; automation lock is per site; `request.account` set by middleware.
## Data Structures / Models Involved (no code)
- `AutomationConfig`, `AutomationRun`, planner models (Keywords/Clusters/ContentIdeas), writer models (Tasks/Content/Images).
## Execution Flow
- View actions call `AutomationService` to start/control runs; long-running work executed by Celery tasks (`run_automation_task`, `resume_automation_task`).
- Config updates persist to DB; run state and logs updated as stages progress.
## Cross-Module Interactions
- Uses planner/writer data for counts and processing; AI functions run inside service; billing credits checked via account balance before start and inferred from AI task logs during execution.
## State Transitions
- Run status: running ↔ paused → completed/failed/cancelled; `current_stage` advances per stage; per-stage results stored in `AutomationRun`.
- Config `last_run_at`/`next_run_at` updated on scheduled runs.
## Error Handling
- Missing site_id/run_id → 400; run not found → 404; insufficient credits or concurrent run → 400; server errors → 500.
- Logs endpoint 404s when run missing.
## Tenancy Rules
- All operations scoped to the authenticated users account/site; no cross-tenant access; locks are per site.
## Billing Rules
- Start requires credits ≥ estimated * 1.2; credits consumed by AI tasks are recorded via AI task logs and aggregated per stage.
## Background Tasks / Schedulers
- Celery tasks for scheduled runs (`check_scheduled_automations`) and pipeline execution/resume.
## Key Design Considerations
- Cooperative pause/resume/cancel with persisted partial results.
- Log access via filesystem tail; structured per-stage results stored in DB for quick status reads.
## How Developers Should Work With This Module
- Trigger runs via `run_now`; avoid bypassing locks/credit checks.
- Extend actions by reusing `AutomationService` and Celery tasks; keep site scoping and error handling consistent.