Summary
Service API endpoints for Knowledge Pipeline (RAG pipeline) are not reachable under /v1 and return 404, even though the controller exists in the codebase.
Steps to reproduce
- Self-host Dify and create a dataset with Knowledge Pipeline enabled
- Call the Service API endpoint:
curl -i -H "Authorization: Bearer $DIFY_API_KEY" \
"$DIFY_BASE_URL/v1/datasets/<dataset_id>/pipeline/datasource-plugins"
Expected behavior
- Endpoint exists and returns
200 with a JSON array (or a non-404 error if request is invalid).
Actual behavior
Notes / suspected root cause
api/controllers/service_api/dataset/rag_pipeline/rag_pipeline_workflow.py exists but is not imported/registered in the Service API blueprint aggregation module (api/controllers/service_api/__init__.py), so routes never get registered.
- Route decorators in that module currently use invalid patterns like
f"/datasets/{uuid:dataset_id}/..." instead of Flask converter syntax "/datasets/<uuid:dataset_id>/...". If the module is imported, this can also break import/init.
Summary
Service API endpoints for Knowledge Pipeline (RAG pipeline) are not reachable under
/v1and return 404, even though the controller exists in the codebase.Steps to reproduce
Expected behavior
200with a JSON array (or a non-404 error if request is invalid).Actual behavior
404 Not Found.Notes / suspected root cause
api/controllers/service_api/dataset/rag_pipeline/rag_pipeline_workflow.pyexists but is not imported/registered in the Service API blueprint aggregation module (api/controllers/service_api/__init__.py), so routes never get registered.f"/datasets/{uuid:dataset_id}/..."instead of Flask converter syntax"/datasets/<uuid:dataset_id>/...". If the module is imported, this can also break import/init.