Files
igny8/docs/20-API/AUTOMATION-ENDPOINTS.md
IGNY8 VPS (Salman) 6a4f95c35a docs re-org
2025-12-09 13:26:35 +00:00

3.8 KiB
Raw Blame History

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.