Configuration
Overview
The following sections provide a comprehensive reference documentation of the available settings for configuring the io.Manager Admin UI via the component properties of the <AdminUI /> React component exported by the @interopio/manager-admin-ui library and via the respective environment variables, depending on your deployment approach.
Component Properties
The following example demonstrates basic configuration of the <AdminUI /> component:
import AdminUI from "@interopio/manager-admin-ui";
import "@interopio/manager-admin-ui/styles.css";
const App = () => {
return(
<AdminUI
// URL of the io.Manager Server to which the Admin UI will connect.
apiURL="http://localhost:4242/api"
// Base path that will be added to the URL of the Admin UI.
baseName="/admin-ui"
// Authentication method.
auth="none"
// License for AG Grid.
agGridLicKey="my-ag-grid-license-key"
/>
)
}
export default App;Top-Level Properties
The following table describes all top-level properties of the <AdminUI /> component:
| Property | Type | Description |
|---|---|---|
agGridLicKey |
string |
AG Grid license key. If provided, will enable AG Grid Enterprise features in the Admin UI. For more details, see the AG Grid official site. |
apiURL |
string |
URL of the io.Manager Server to which the Admin UI will connect. Defaults to "". |
auth |
"none" | "basic" | "auth0" | "okta" | object |
Authentication method for the Admin UI. Use one of the supported authentication methods, or specify a custom authentication implementation by providing an AuthProvider object. Defaults to "basic". |
auth_auth0 |
object |
Configuration for Auth0 authentication. Accepts an Auth0ProviderOptions object as a value. Valid only if the auth property is set to "auth0". |
auth_basic |
object |
Configuration for Basic authentication. Accepts a BasicAuthOptions object as a value. Valid only if the auth property is set to "basic" Available since io.Manager Admin UI 3.1. |
auth_okta |
object |
Configuration for Okta authentication. Accepts an OktaAuthOptions object as a value. Valid only if the auth property is set to "okta". |
authUser |
string |
Username to be used for all logins in the Admin UI when the auth property is set to "none". If the Admin UI is accessed from io.Connect Desktop, the local machine username will be used instead. Defaults to "admin". |
baseName |
string |
Base path that will be added to the Admin UI origin. If you set this to "/admin-ui", the Admin UI will be served at <origin>/admin-ui (e.g., http://localhost:3000/admin-ui). Defaults to "". |
interceptor |
object |
Custom Axios interceptor for handling responses from the io.Manager Server. Accepts an Interceptor object as a value. |
logOutUrl |
string |
Absolute URL of the Admin UI logout page (e.g., http://localhost:3000/admin-ui/logout). Defaults to <origin>/<baseName>/logout. |
theme |
"dark" | "light" |
Sets the default theme of the Admin UI. Users can change the theme from the UI. Defaults to the OS theme. |
Auth0ProviderOptions
Configuration for Auth0 authentication.
| Property | Type | Description |
|---|---|---|
authorizationParams |
object |
Authorization parameters passed to the Auth0 authorization server. |
cacheLocation |
"memory" | "localstorage" |
Cache location for the access tokens. Set to "localstorage" to store the access tokens in local storage instead of in-memory. Defaults to "memory". |
clientId |
string |
Required. The client ID found in the app settings of the Auth0 "Applications" page. |
domain |
string |
Required. URL pointing to your Auth0 account domain. |
useRefreshTokens |
boolean |
If true, will enable refresh token rotation. |
The authorizationParams object has the following properties:
| Property | Type | Description |
|---|---|---|
audience |
string |
URL pointing to the resource that will consume the access token. |
redirect_uri |
string |
URL to which users will be redirected after a successful login. It's not required to set this property. If not set, the location of the Admin UI will be used as a callback URL. |
ℹ️ For more details on the
Auth0ProviderOptionsobject and its properties, see the@auth0/auth0-reactofficial documentation.
AuthProvider
Custom authentication implementation.
| Property | Type | Description |
|---|---|---|
addCredentialsToRequest |
boolean |
Required. Passed to the withCredentials property of the XMLHttpRequest object. |
addCustomHeaders |
boolean |
If true, all headers defined in the customHeaders property will be added to all requests sent to the io.Manager Server. |
addTokenToRequest |
boolean |
Required. If true, will send the token retrieved via getAccessToken() with each request sent to the io.Manager Server. |
addUsernameToRequest |
string | boolean |
Required. If true, will send the user ID retrieved via getUserInfo() with each request sent to the io.Manager Server. Use this only for testing or demo purposes. |
customHeaders |
object |
Object with headers in the form of key/value pairs. If addCustomHeaders is set to true, all headers defined here will be added to all requests sent to the io.Manager Server. |
disablePeriodicChangeDetection |
boolean |
If true, will disable the internal change detection mechanism. Set to true if the data fields defined in the AuthProvider object will only change from within the React execution context or during the execution of any of the methods defined in AuthProvider. Valid only for custom authentication implementations. Defaults to false. |
error |
any |
Required. Indicates an unrecoverable error in the authorization flow (e.g., misconfiguration). The error will be shown to the user. |
getAccessToken() |
function |
Required. Function with the following signature: () => Promise<string | undefined>. If addTokenToRequest is set to true, this method will be invoked for every request sent to io.Manager and its return value will be set as a bearer token in the Authorization: Bearer <token> header. |
getUserInfo() |
function |
Required. Function with the following signature: () => Promise<{ id?: string } | undefined>. If addUsernameToRequest is set to true, this method will be invoked for every request sent to io.Manager and its return value will be used to set the value of the user header. |
isAuthenticated |
boolean |
Required. If true, indicates that the user has been authenticated. If false, the authentication flow will be initiated by calling the loginIfNeeded() method. |
isLoading |
boolean |
Required. If true, indicates that the authentication process is in progress and the app will display a loading screen. |
logOut() |
function |
Function with the following signature: () => Promise<void>. If provided, will be invoked when the user attempts to log out. If not provided, a "Log out" button won't be available in the app. |
loginIfNeeded() |
function |
Required. Function with the following signature: () => Promise<void>. Initial login logic that will be initiated if isAuthenticated is set to false. |
onUnauthorizedResponse() |
function |
Function with the following signature: (error: AxiosError) => Promise<void>. If provided, will be invoked when requests to the io.Manager Server fail with a 401 Unauthorized or 403 Forbidden HTTP response error. |
BasicAuthOptions
Configuration for Basic authentication.
| Property | Type | Description |
|---|---|---|
useSessionCookie |
boolean |
If true (default), io.Manager will use a signed JWT stored in a session cookie to manage the Admin UI user sessions. Set to false to disable session cookies. |
Interceptor
Custom Axios interceptor for handling responses from the io.Manager Server.
ℹ️ For more details, see the Axios official documentation.
| Property | Type | Description |
|---|---|---|
response |
object |
Required. Response interceptor configuration. |
The response object has the following properties:
| Property | Type | Description |
|---|---|---|
onError() |
function |
Function with the following signature: (error: any) => void. Callback that will be invoked when a request to the io.Manager Server fails. |
onSuccess() |
function |
Function with the following signature: (data: ResponseData) => void. Callback that will be invoked when a request to the io.Manager Server succeeds. |
OktaAuthOptions
Configuration for Okta authentication.
| Property | Type | Description |
|---|---|---|
clientId |
string |
The client ID found in the app settings of the Okta "Applications" page. |
issuer |
string |
Required. URL pointing to the issuer to be used for validation of access tokens. |
redirectUri |
string |
URL to which users will be redirected after a successful login. It's not required to set this property. If not set, the location of the Admin UI will be used as a callback URL. |
scopes |
string[] |
Scopes for the requests sent to the Okta authorization server. |
ℹ️ For more details on the
OktaAuthOptionsobject and its properties, see the documentation in the@okta/okta-auth-jsGitHub repo.
Environment Variables
The io.Manager Admin UI is a React app built with Vite that can be configured via environment variables. In development mode, you can use a .env file from which the Admin UI will attempt to read the provided environment variables.
⚠️ Note that using environment variables is the only supported option for configuring the io.Manager Admin UI when using Docker images to deploy io.Manager (e.g., when using the basic scenario via the template repository approach).
The following example demonstrates basic configuration for the io.Manager Admin UI via environment variables:
# URL of the io.Manager Server to which the Admin UI will connect.
REACT_APP_SERVER_BASE=http://localhost:4242/api
# Base path that will be added to the URL of the Admin UI.
REACT_APP_BASE=/admin-ui
# Authentication method.
REACT_APP_AUTH=none
# License for AG Grid.
REACT_APP_AG_GRID_LICENCE_KEY=my-ag-grid-license-key
| Environment Variable | Description |
|---|---|
REACT_APP_AG_GRID_LICENCE_KEY |
AG Grid license key. If provided, will enable AG Grid Enterprise features in the Admin UI. For more details, see the AG Grid official site. Available since io.Manager Admin UI 2.0.4. |
REACT_APP_AUTH |
Authentication method for the Admin UI. Use one of the supported authentication methods: none, basic, auth0, or okta. Defaults to basic. |
REACT_APP_AUTH_USER |
Username to be used for all logins in the Admin UI when REACT_APP_AUTH is set to none. If the Admin UI is accessed from io.Connect Desktop, the local machine username will be used instead. Defaults to admin. |
REACT_APP_AUTH0_AUDIENCE |
URL pointing to the resource that will consume the access token. |
REACT_APP_AUTH0_CACHE_LOCALSTORAGE |
Cache location for the access tokens. Set to true to store the access tokens in local storage instead of in-memory. |
REACT_APP_AUTH0_CLIENT_ID |
The client ID found in the app settings of the Auth0 "Applications" page. Required when using Auth0 authentication. |
REACT_APP_AUTH0_DOMAIN |
URL pointing to your Auth0 account domain. Required when using Auth0 authentication. |
REACT_APP_AUTH0_REDIRECT_URL |
URL to which users will be redirected after a successful login. It's not required to set this variable. If not set, the location of the Admin UI will be used as a callback URL. |
REACT_APP_AUTH0_USE_REFRESH_TOKENS |
If true, will enable refresh token rotation. |
REACT_APP_BASE |
Base path that will be added to the Admin UI origin. If you set this to /admin-ui, the Admin UI will be served at <origin>/admin-ui (e.g., http://localhost:3000/admin-ui). Defaults to "". |
REACT_APP_BASIC_USE_SESSION_COOKIE |
If true (default), io.Manager will use a signed JWT stored in a session cookie to manage the Admin UI user sessions. Set to false to disable session cookies. |
REACT_APP_LOGOUT_URL |
Absolute URL of the Admin UI logout page (e.g., http://localhost:3000/admin-ui/logout). Defaults to <origin>/<REACT_APP_BASE>/logout. |
REACT_APP_OKTA_CLIENT_ID |
The client ID found in the app settings of the Okta "Applications" page. |
REACT_APP_OKTA_ISSUER |
URL pointing to the issuer to be used for validation of access tokens. Required when using Okta authentication. |
REACT_APP_OKTA_REDIRECT_URL |
URL to which users will be redirected after a successful login. It's not required to set this variable. If not set, the location of the Admin UI will be used as a callback URL. |
REACT_APP_OKTA_USE_REFRESH_TOKEN |
If true, will set the scopes for the requests sent to the Okta authorization server to ["openid", "email", "profile", "offline_access"]. |
REACT_APP_SERVER_BASE |
URL of the io.Manager Server to which the Admin UI will connect. Defaults to http://localhost:4356/api. |
Docker Image
The io.Manager Admin UI can be deployed via the manager-admin-ui Docker image (e.g., when using the basic scenario via the template repository approach). The manager-admin-ui Docker image can be configured via environment variables.
The following example demonstrates providing settings for the manager-admin-ui Docker image:
# Port for the internal web server that provides the Admin UI.
ADMIN_UI_PORT=81
# Health check mode for the `manager-admin-ui` Docker image.
DOCKER_HEALTHCHECK_MODE=noneThe following environment variables are available for configuring the manager-admin-ui Docker image:
| Environment Variable | Description |
|---|---|
ADMIN_UI_PORT |
Defines the port on which the web server listens internally. Defaults to 80. |
DOCKER_HEALTHCHECK_MODE |
Health check mode for the Docker image. Set to http-connectivity to check whether the static file server responds to requests. Set to none to disable the health check handler and instruct it to always report a healthy status. Defaults to http-connectivity. |