{"status":"running","service":"LangGraph AI Workflow Service","version":"5.0.0","features":["Dynamic workflow configuration from JSON","Generic agent architecture (researcher, classifier, etc.)","Laravel Passport authentication","Database-backed workflows (PostgreSQL)","LLM agents with Ollama support","Conditional routing and branching","Delay nodes with scheduled resume","API integrations (Laravel, external APIs)","Short-term & long-term memory","Multi-tenancy (org_id scoped)"],"endpoints":{"workflow_templates":["POST /api/v1/workflow-templates - Create/update a generic workflow template (upsert by workflow_key)","GET /api/v1/workflow-templates - List templates","GET /api/v1/workflow-templates/{workflow_key} - Get template detail","PATCH /api/v1/workflow-templates/{workflow_key}/activate - Publish/unpublish a template","DELETE /api/v1/workflow-templates/{workflow_key} - Delete a template (blocked while orgs are assigned)","GET /api/v1/workflow-templates/{workflow_key}/versions - List template version history","GET /api/v1/workflow-templates/{workflow_key}/versions/{version} - Get a specific version snapshot","POST /api/v1/workflow-templates/{workflow_key}/versions/{version}/restore - Roll back to an earlier version"],"org_workflow_assignments":["GET /api/v1/orgs/{org_id}/workflows - List an org's assigned workflows","POST /api/v1/orgs/{org_id}/workflows - Assign a template to an org","GET /api/v1/orgs/{org_id}/workflows/{workflow_key} - Get the org's config form (schema + answers)","PUT /api/v1/orgs/{org_id}/workflows/{workflow_key}/config - Save the org's config answers (and optionally activate)","PATCH /api/v1/orgs/{org_id}/workflows/{workflow_key}/activate - Pause/resume an assignment","DELETE /api/v1/orgs/{org_id}/workflows/{workflow_key} - Unassign (soft-disable) a workflow from an org","GET /api/v1/orgs/{org_id}/workflows/{workflow_key}/executions - List execution history for an assignment"],"workflow_execution":["POST /api/v1/execute/workflow - Execute workflow (synchronous JSON execution)","POST /api/v1/execute/workflow/async - Execute workflow async (multipart form-data with optional file uploads, returns immediately with execution_id)","POST /api/v1/execute/workflow/resume - Resume workflow (synchronous resume at human_in_loop node)","POST /api/v1/execute/workflow/resume/async - Resume workflow async (background resume, returns immediately with execution_id)","POST /api/v1/execute/delayed/process - Process due delay nodes (AWS EventBridge trigger)","POST /api/v1/execute/memory - Store memory (context to long-term memory)","GET /api/v1/execute/memory/{org_id}/{workflow_id}/{memory_type}/{key} - Retrieve stored memory","GET /api/v1/executions/{execution_id} - Get a single execution by ID"],"docs":"/docs - Swagger UI"},"node_types":["llm_agent - Generic LLM-based agent (researcher, classifier, etc.)","condition - Conditional logic and validation","api_call - External API integration","laravel_api - Laravel API calls","transform - Data transformation","router - Decision routing","delay - Scheduled pause and automatic resume","start - Workflow entry point"],"authentication":"Laravel Passport (set LARAVEL_API_URL environment variable)","database":true}