بازگشت به فهرست ATP →
اجرای گردش‌کار

شروع اجرای گردش‌کار

POST /api/v1/workflow-runs/ مشاهده در Swagger

ATP - شروع اجرای گردش‌کار (POST /api/v1/workflow-runs/)

Endpoint

POST /api/v1/workflow-runs/

هدف آزمون

ایجاد WorkflowRun و شروع اجرای stepها.

شرایط آزمون

  • سرویس core-api در حال اجرا باشد
  • هدر Authorization با access token معتبر

فرآیند آزمون

  1. انتخاب product از workflow-products
  2. ارسال product_key + invention_case_id یا workspace_id
  3. دریافت 202 با steps_url و events_url
  4. poll steps یا subscribe به events SSE

معرفی ویژگی

لایه orchestration سطح بالا برای محصولات discover. می‌تواند از conversation منشأ بگیرد و به invention case متصل شود.

  • ورودی معتبر: اعتبارسنجی در مرز API
  • پاسخ استاندارد: قالب JSON یکسان با سایر endpointها
  • کنترل دسترسی: مطابق policy ماژول مربوطه

سناریوی آزمون

سناریو 1: مسیر موفق

  1. ارسال POST /api/v1/workflow-runs/
  2. دریافت پاسخ موفق
  3. بررسی ساختار پاسخ

سناریو 2: خطا - درخواست نامعتبر

  1. ارسال درخواست با داده یا شناسه نامعتبر
  2. دریافت کد خطای 4xx
  3. بررسی پیام خطای استاندارد API

سناریو 3: شروع از conversation

  1. create conversation
  2. POST workflow-runs با conversation_id
  3. 202
  4. بررسی لینک در workflow_run

سناریو 4: خطا — بدون workspace و case

  1. POST فقط {"product_key":"..."}
  2. 400
  3. بررسی workspace_id required

قالب API

مولفه نوع نوع داده اجباری توضیحات
product_key Body string بله کلید محصول (مثلاً prior_art_search)
invention_case_id Body uuid خیر پرونده هدف
workspace_id Body uuid شرطی الزامی اگر invention_case_id نباشد
case_title Body string خیر عنوان case جدید
conversation_id Body uuid خیر گفتگوی مبدأ discover
input_data Body object خیر ورودی اختصاصی محصول

Swagger

post:
  summary: شروع اجرای گردش‌کار
  responses:
    201:
      description: منبع ایجاد شد
    400:
      description: داده ورودی نامعتبر
    401:
      description: احراز هویت نامعتبر

نمونه ورودی

curl -X POST "http://localhost:8000/api/v1/workflow-runs/" \
  -H "Authorization: Bearer <access>" \
  -H "Content-Type: application/json"

نمونه خروجی

{
  "success": true,
  "data": {
    "workflow_run_id": "...",
    "status": "running",
    "steps_url": "/api/v1/workflow-runs/.../steps/",
    "events_url": "/api/v1/workflow-runs/.../events/",
    "workflow_run": { "product_key": "prior_art_search", "step_runs": [] }
  }
}

Status Codes

  • 202: run ایجاد شد
  • 400: validation
  • 429: rate limit (30/min)

نتیجه مورد انتظار

در صورت موفقیت، پاسخ JSON استاندارد با کد وضعیت مناسب برای POST برگردانده می‌شود.

روال صحت‌سنجی

  1. بررسی کد وضعیت HTTP
  2. بررسی فیلد success در بدنه
  3. بررسی عدم افشای داده حساس

توضیحات

  • مسیر باید با پیاده‌سازی فعلی urls.py هم‌خوان باشد

جریان یکپارچه‌سازی

discover UI:
  conversation → product recommendation → POST workflow-runs
  → poll steps/events → case operations (مثلاً search/report)