Yansong Zhang a3cfc1216d feat(api): Node Output Inspector service + REST endpoints (Stage 4 §8, ENG-373)
Implements the third Stage 4 backend piece: a producer-organized read view of
declared outputs per workflow run that backs PRD §Node Output Inspector.

Three console REST endpoints under
``/apps/{app_id}/workflows/draft/runs/{run_id}/node-outputs[/...]``:

- ``GET .../node-outputs`` — full per-node snapshot of the run
- ``GET .../node-outputs/{node_id}`` — single node detail
- ``GET .../node-outputs/{node_id}/{output_name}/preview`` — full value with
  signed download URL for file refs

Design choices baked in (per Stage 4 design doc §8 / decisions):

- **No new tables.** Topology reads from ``WorkflowRun.graph`` (snapshot at
  execution time so the view stays stable even if the draft was edited
  after the run started). Execution facts come from
  ``WorkflowNodeExecutionModel`` rows already produced by the runtime.
- **D-1 draft only.** Service 404s ``triggered_from != DEBUGGING`` with
  ``published_run_inspector_not_implemented``; published-run support stays
  deferred to stage 4.1.
- **Declared outputs per node kind.** Agent v2 nodes resolve their declared
  list via the existing ``WorkflowAgentBindingResolver`` (so PRD defaults
  flow through too). Non-agent nodes don't have a declared schema yet —
  the service surfaces produced payload keys with ``type=None`` so the
  panel can still render them.
- **Per-output status** derives from the metadata the §5/§6 stack already
  records (``output_type_check`` / ``output_check`` blobs in
  ``execution_metadata``). Precedence: type-check failure > output-check
  failure > not-produced > ready.
- **File preview URLs** are minted via ``graphon.file.helpers.get_signed_file_url``
  and merged into the value dict so the panel doesn't need a second round
  trip.
- **Retries** read from ``execution_metadata.attempt`` so the frontend can
  show the retry count without separate plumbing.

**SSE stream from §8.5 is intentionally deferred to a follow-up PR** — the
event bus integration + envelope shared with babysit chat warrants its own
review. The three snapshot endpoints unblock the frontend's polling MVP.

Auth pattern reuses ``@get_app_model`` (workflow / advanced-chat apps only),
matching ``workflow_run.py`` controllers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 10:12:50 +08:00
2026-04-16 16:47:53 +00:00
2025-07-29 14:05:59 +08:00
2026-05-14 06:04:44 +00:00
2023-05-15 08:51:32 +08:00

cover-v5-optimized

Dify Cloud · Self-hosting · Documentation · Dify edition overview

Static Badge Static Badge chat on Discord join Reddit follow on X(Twitter) follow on LinkedIn Docker Pulls Commits last month Issues closed Discussion posts LFX Health Score LFX Contributors LFX Active Contributors

README in English 繁體中文文件 简体中文文件 日本語のREADME README en Español README en Français README tlhIngan Hol README in Korean README بالعربية Türkçe README README Tiếng Việt README in Deutsch README in Italiano README em Português do Brasil README Slovenščina README in বাংলা README in हिन्दी

Dify is an open-source LLM app development platform. Its intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, observability features (including Opik, Langfuse, and Arize Phoenix) and more, letting you quickly go from prototype to production. Here's a list of the core features:

Quick start

Before installing Dify, make sure your machine meets the following minimum system requirements:

  • CPU >= 2 Core
  • RAM >= 4 GiB

The easiest way to start the Dify server is through Docker Compose. Before running Dify with the following commands, make sure that Docker and Docker Compose are installed on your machine:

cd dify
cd docker
cp .env.example .env
docker compose up -d

After running, you can access the Dify dashboard in your browser at http://localhost/install and start the initialization process.

Seeking help

Please refer to our FAQ if you encounter problems setting up Dify. Reach out to the community and us if you are still having issues.

If you'd like to contribute to Dify or do additional development, refer to our guide to deploying from source code

Key features

1. Workflow: Build and test powerful AI workflows on a visual canvas, leveraging all the following features and beyond.

2. Comprehensive model support: Seamless integration with hundreds of proprietary / open-source LLMs from dozens of inference providers and self-hosted solutions, covering GPT, Mistral, Llama3, and any OpenAI API-compatible models. A full list of supported model providers can be found here.

providers-v5

3. Prompt IDE: Intuitive interface for crafting prompts, comparing model performance, and adding additional features such as text-to-speech to a chat-based app.

4. RAG Pipeline: Extensive RAG capabilities that cover everything from document ingestion to retrieval, with out-of-box support for text extraction from PDFs, PPTs, and other common document formats.

5. Agent capabilities: You can define agents based on LLM Function Calling or ReAct, and add pre-built or custom tools for the agent. Dify provides 50+ built-in tools for AI agents, such as Google Search, DALL·E, Stable Diffusion and WolframAlpha.

6. LLMOps: Monitor and analyze application logs and performance over time. You could continuously improve prompts, datasets, and models based on production data and annotations.

7. Backend-as-a-Service: All of Dify's offerings come with corresponding APIs, so you could effortlessly integrate Dify into your own business logic.

Using Dify

  • Cloud
    We host a Dify Cloud service for anyone to try with zero setup. It provides all the capabilities of the self-deployed version, and includes 200 free GPT-4 calls in the sandbox plan.

  • Self-hosting Dify Community Edition
    Quickly get Dify running in your environment with this starter guide. Use our documentation for further references and more in-depth instructions.

  • Dify for enterprise / organizations
    We provide additional enterprise-centric features. Send us an email to discuss your enterprise needs.

    For startups and small businesses using AWS, check out Dify Premium on AWS Marketplace and deploy it to your own AWS VPC with one click. It's an affordable AMI offering with the option to create apps with custom logo and branding.

Staying ahead

Star Dify on GitHub and be instantly notified of new releases.

star-us

Advanced Setup

Custom configurations

If you need to customize the configuration, edit docker/.env. The essential startup defaults live in docker/.env.example, and optional advanced variables are split under docker/envs/ by theme. After making any changes, re-run docker compose up -d from the docker directory. You can find the full list of available environment variables here.

Metrics Monitoring with Grafana

Import the dashboard to Grafana, using Dify's PostgreSQL database as data source, to monitor metrics in granularity of apps, tenants, messages, and more.

Deployment with Kubernetes

If you'd like to configure a highly available setup, there are community-contributed Helm Charts and YAML files which allow Dify to be deployed on Kubernetes.

Using Terraform for Deployment

Deploy Dify to Cloud Platform with a single click using terraform

Azure Global
Google Cloud

Using AWS CDK for Deployment

Deploy Dify to AWS with CDK

AWS

Using Alibaba Cloud Computing Nest

Quickly deploy Dify to Alibaba cloud with Alibaba Cloud Computing Nest

Using Alibaba Cloud Data Management

One-Click deploy Dify to Alibaba Cloud with Alibaba Cloud Data Management

Deploy to AKS with Azure Devops Pipeline

One-Click deploy Dify to AKS with Azure Devops Pipeline Helm Chart by @LeoZhang

Contributing

For those who'd like to contribute code, see our Contribution Guide. At the same time, please consider supporting Dify by sharing it on social media and at events and conferences.

We are looking for contributors to help translate Dify into languages other than Mandarin or English. If you are interested in helping, please see the i18n README for more information, and leave us a comment in the global-users channel of our Discord Community Server.

Community & contact

  • GitHub Discussion. Best for: sharing feedback and asking questions.
  • GitHub Issues. Best for: bugs you encounter using Dify.AI, and feature proposals. See our Contribution Guide.
  • Discord. Best for: sharing your applications and hanging out with the community.
  • X(Twitter). Best for: sharing your applications and hanging out with the community.

Contributors

Star history

Star History Chart

Security disclosure

To protect your privacy, please avoid posting security issues on GitHub. Instead, report issues to security@dify.ai, and our team will respond with detailed answer.

License

This repository is licensed under the Dify Open Source License, based on Apache 2.0 with additional conditions.

Languages
TypeScript 45.3%
Python 37.6%
JavaScript 15.3%
MDX 1.1%
CSS 0.4%
Other 0.3%