iWF Web is a powerful web-based user interface for iWF (Indeed Workflow Framework), an open-source framework that simplifies building highly reliable applications with Temporal. This UI allows users to search, view, and monitor workflow executions by connecting directly to a Temporal server.
Watch a walkthrough of iWF WebUI features:
- Workflow-As-Code uses native code to define everything: branching, looping, parallel threads, variables, schema etc.
- Simplified Architecture: iWF applications are all REST based micro-services which are easy to deploy, monitor, scale, maintain(version) and operate with industry standards.
- Simplicity and explicitness of APIs: uses as few concepts as possible to model complex logic. It uses clear abstractions to defines workflows in terms of discrete states, with waitUntil conditions and execute actions, declarative schema for data and search attributes for persistence, and RPC for external interaction for both read and write.
- Dynamic Interactions: allows external applications to interact with running workflows through RPC, signals, and internal channels.
- Extensive tooling: provides tooling to look up running state definitions, skipping timers, enhanced resetting etc.
- Advanced Search: Search workflow executions by various criteria with a powerful query syntax
- Customizable Filters: Apply filters by column with various operators (=, !=, >, <, etc.)
- Shareable URLs: Search parameters are preserved in the URL for easy sharing with teammates
- Search History: Recent searches are automatically saved and can be accessed quickly
- Named Queries: Save important searches with custom names for future reference
- Customizable Display: Personalize your table columns, order, and visibility
- Timezone Selection: View timestamps in your preferred timezone
- Pagination Controls: Navigate through search results with adjustable page sizes
- Workflow Timeline: Chronological view of all workflow events
- Interactive Graph View: Visualize workflow execution in a tree-based graph representation
- Event Details: Expand individual events to see complete details
- Workflow Summary: View key workflow information including status, IDs, and timestamps
- Custom Search Attributes: Display of workflow-specific metadata and custom attributes
- Responsive Design: Works on both desktop and mobile devices
- Persistent Preferences: User settings for columns and timezone are saved between sessions
- Real-time Updates: Workflow information is fetched directly from the Temporal server
- Node.js (v16 or later)
- npm or yarn
- Access to a Temporal server
/app
- Frontend React application (Next.js)/app/page.tsx
- Main application component/app/api/v1/workflow/search
- API endpoint for workflow search
/api-schema
- API schema definitions/ts-api
- TypeScript API client generated from OpenAPI specs
-
Clone the repository:
git clone https://github.com/yourusername/iwf-web.git cd iwf-web
-
Install dependencies:
npm install
Start the development server:
npm run dev
The application will be available at http://localhost:3000.
Build the application for production:
npm run build
Start the production server:
npm start
Before launching iWF WebUI, check the .env.local
file to make sure you're connecting to the right Temporal service and namespace:
For production, you can set environment variables directly.
# Temporal Configuration
TEMPORAL_HOST_PORT=localhost:7233 # Change to your Temporal server address
TEMPORAL_NAMESPACE=default # Change to your namespace
TEMPORAL_API_KEY="" # Change to your API key to connect to Temporal Cloud
By default, the application will connect to a local Temporal server on port 7233 with the "default" namespace.
npm run dev
Any contribution is welcome!
If you need to update the API schema:
- Update the API schema in
/api-schema/iwf-web.yaml
- Run
make gen
to regenerate the TypeScript client
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.