> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowx.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# React SDK

> Migrate the FlowX React renderer SDK from 5.9.x to 6.0.0.

## React SDK migration guide

6.0 moves the React renderer to Node 26 and aligns the SDK's names with the iOS and Android SDKs. Update your app to the new prop and function names. The `logSink` and `logCategories` renderer props are removed and need a code change.

### Framework requirements

React stays on 19. Upgrade Node in your build and CI environments.

| Requirement | 5.9 | 6.0 |
| - | - | - |
| React | 19 | 19 |
| Node | ≥ 24.0.0 | **≥ 26.0.0** |
| npm | ≥ 11.0.0 | ≥ 11.0.0 |

### FlowX SDK changes

#### Renamed props and functions

Replace each 5.9 name with its 6.0 name. The 5.9 names still work in 6.0, but they are deprecated.

| 5.9 | 6.0 |
| - | - |
| `apiUrl` prop | `baseUrl` |
| `processApiPath` prop | `enginePath` (the leading slash is optional) |
| `staticAssetsPath` prop | `assetsBaseUrl` |
| `authToken` prop | `accessToken` |
| `customLoader` prop | `customLoaderProvider` (same shape) |
| UI Flow `appInfo.selectedProcessResourceId` | `resourceId` |
| Custom component `input.actionsFn.<name>(params)` | `input.runAction(name, params?)` |
| Custom component `registerValidation` prop | `validate` |
| `getEnumeration(name, parentName?)` | `getEnumerationItems(name, parentName?)` |
| `useEnumeration(name, parentName?)` | `useEnumerationItems(name, parentName?)` |
| `getStaticAsset(key)` | `getMediaItemUrl(key)` |
| `getMediaItemURL(mediaItemId)` (async) | `getMediaItemUrl(key)` (sync, once the process has loaded its media) |
| `getSubstitutionTag(code)` | `getSubstitutionTagContent(key)` |

`baseUrl` and `assetsBaseUrl` apply to the process, UI Flow, chat and task management renderers. `enginePath` applies to the process, UI Flow and chat renderers. `customLoaderProvider` applies to the process and UI Flow renderers.

```diff theme={"dark"}
 <FlxProcessRenderer
-  apiUrl={baseUrl}
-  processApiPath="onboarding"
-  staticAssetsPath={mediaLibraryUrl}
-  authToken={token}
+  baseUrl={baseUrl}
+  enginePath="onboarding"
+  assetsBaseUrl={mediaLibraryUrl}
+  accessToken={token}
   ...
 />
```

#### New custom component action: `runUploadAction`

Custom components get `input.runUploadAction(name, file, params?)` to upload a file through an upload action. `params` are sent as extra form fields beside the file.

```typescript theme={"dark"}
input.runAction('action_one', { amount: 3 })
input.runUploadAction('upload_document', file, { side: 'front' })
```

`FlxCustomComponentData` is now generic (`FlxCustomComponentData<TFile = Blob>`) and requires `runAction` and `runUploadAction`. If your tests build a mock of it by hand, add both.

#### `logSink` and `logCategories` props removed

The `logSink` and `logCategories` props on `FlxProcessRenderer` and the UI Flow renderer are removed. Subscribe a log sink once at app start with `logSink()` from `@flowx/core-sdk` instead. It takes the same sinks and categories and returns a function that stops logging.

```diff theme={"dark"}
- <FlxProcessRenderer logSink={formattedLogger} logCategories={['rest', 'sse']} ... />
+ import { formattedLogger, logSink } from '@flowx/core-sdk'
+
+ const stopLogging = logSink(formattedLogger, { categories: ['rest', 'sse'] })
```

`@flowx/react-sdk` no longer re-exports `formattedLogger`, `createFormattedLogger` or the log types (`FlxLogCategory`, `FlxLogEvent`, `FlxLogSink`, `FlxLogSinkOptions`, `FormattedLoggerOptions`). Import them from `@flowx/core-sdk`.

#### Props removed or deprecated without replacement

| Prop | Status in 6.0 |
| - | - |
| `legacyHttpVersion` on the process renderer | Deprecated, no replacement. Still honored. |
| `legacyHttpVersion` on the UI Flow renderer | Removed. It never had any effect. |
| `customHeaders` | Removed. It never had any effect. |
| `updateStateEnabled` | Removed. It never had any effect. |
| `isAnonymousMode` | Removed. It never had any effect. |
| `fw` | Removed. It never had any effect. |

Delete the removed props from your process and UI Flow renderer props.

#### Behavior changes

* Links and URLs now carry only `?processInstanceUuid=`, including task management links. Links with `?processUuid=` still resume. An app on a 5.9 SDK reads only `?processUuid=`, so it can't resume from links a 6.0 app writes: upgrade every app that opens these links together.

## Related resources

> [card] [React SDK reference](https://docs.flowx.ai/6.x/sdks/react-renderer.md)
>
> React renderer SDK documentation

> [card] [Migration overview](https://docs.flowx.ai/release-notes/v6.x/v6.0.0-october-2026/migrating-from-v5.9-to-v6.0/migration-overview.md)
>
> Full 5.9.x → 6.0.0 container app upgrade guide


## Related topics

- [React SDK](https://docs.flowx.ai/6.x/sdks/react-renderer.md)
- [React Native SDK](https://docs.flowx.ai/6.x/sdks/react-native-renderer.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.