Identity Management Integrations (Okta, JumpCloud)
Relevant source files
The following files were used as context for generating this wiki page:
The Quix platform integrates with Identity and Access Management (IAM) services like Okta and JumpCloud to enable the AI agent to perform user, group, and device management tasks directly from Slack. This allows for natural language commands to query user information, manage group memberships, and interact with applications and devices registered in these services.
The Okta integration allows the agent to "look up users, groups, and apps in Okta," while the JumpCloud integration provides capabilities to "look up users, and groups in JumpCloud." These integrations are exposed to the Large Language Model (LLM) as a set of tools that can be invoked to fulfill user requests related to identity management.
Sources: src/lib/constants.ts:200-207, 218-225
Configuration and Installation
Both Okta and JumpCloud integrations are configured on a per-SlackWorkspace basis. The configuration details are stored in dedicated database tables, okta_configs and jumpcloud_configs, which have a one-to-one relationship with the slack_workspaces table.
Sources: src/database/models/slack-workspace.model.ts:204-207, 221-222
The diagram below illustrates the database schema for these configurations.
Installation Flow
The installation process is initiated from the Quix App Home in Slack. An admin user selects the desired tool (Okta or JumpCloud) from a dropdown menu, which triggers a modal for submitting connection credentials.
The following sequence diagram shows the configuration flow for Okta and JumpCloud.
Okta Configuration
The Okta configuration requires an Organization URL and an API Token. The system validates these credentials by making a test API call to the /api/v1/org endpoint.
Sources: src/integrations/integrations-install.service.ts:577-598
The okta_configs table stores the following information:
| Field | Type | Description |
|---|---|---|
org_id | STRING | The Okta organization ID (Primary Key). |
team_id | STRING | Foreign key to slack_workspaces.team_id. |
org_url | STRING | The base URL of the Okta organization. |
api_token | TEXT | The encrypted SSWS API token for authentication. |
Sources: src/database/models/okta-config.model.ts:20-41
JumpCloud Configuration
The JumpCloud configuration requires an API Key. The system validates the key by making a test API call to the /api/systemusers endpoint.
Sources: src/integrations/integrations-install.service.ts:625-641
The jumpcloud_configs table stores the following information:
| Field | Type | Description |
|---|---|---|
team_id | STRING | Foreign key to slack_workspaces.team_id (Primary Key). |
api_key | TEXT | The encrypted API key for authentication. |
Sources: src/database/models/jumpcloud-config.model.ts:19-29
Okta Integration
The Okta integration provides a comprehensive set of tools for managing users, groups, applications, and devices within an Okta organization. The LLM agent uses these tools when a user's query involves finding users, managing access, or viewing identity-related configurations.
Sources: agent-packages/packages/okta/src/tools.ts:8-28
Available Tools
The integration exposes numerous functions as tools for the AI agent. They are categorized by the resource they manage.
User Management
| Tool Name | Description | Operations |
|---|---|---|
list_okta_users | List users in Okta with filtering capabilities. | READ |
create_okta_user | Create a new user. | CREATE |
get_okta_user | Get details of a specific user. | READ |
update_okta_user | Update an existing user. | UPDATE |
suspend_okta_user | Suspend a user. | UPDATE |
unsuspend_okta_user | Reactivate a suspended user. | UPDATE |
activate_okta_user | Activate a user. | UPDATE |
deactivate_okta_user | Deactivate a user. | UPDATE |
unlock_okta_user | Unlock a locked-out user. | UPDATE |
reset_okta_user_password | Send a password reset email to a user. | UPDATE |
expire_okta_user_password | Expire a user's password. | UPDATE |
reset_okta_user_factors | Reset enrolled MFA factors for a user. | UPDATE |
delete_okta_user | Delete a user (must be deactivated first). | DELETE |
list_okta_user_groups | List groups for a specific user. | READ |
Sources: agent-packages/packages/okta/src/tools.ts:285-412, 532-542
Group & Application Management
| Tool Name | Description | Operations |
|---|---|---|
list_okta_groups | List groups in Okta. | READ |
create_okta_group | Create a new group. | CREATE |
assign_user_to_okta_group | Assign a user to a group. | UPDATE |
unassign_user_from_okta_group | Unassign a user from a group. | UPDATE |
list_okta_group_users | List users in a specific group. | READ |
delete_okta_group | Delete a group. | DELETE |
list_okta_applications | List applications in Okta. | READ |
assign_user_to_okta_application | Assign a user to an application. | UPDATE |
unassign_user_from_okta_application | Unassign a user from an application. | UPDATE |
assign_group_to_okta_application | Assign a group to an application. | UPDATE |
unassign_group_from_okta_application | Unassign a group from an application. | UPDATE |
deactivate_okta_application | Deactivate an application. | UPDATE |
delete_okta_application | Delete an application. | DELETE |
Sources: agent-packages/packages/okta/src/tools.ts:413-531, 509-531
Device Management
| Tool Name | Description | Operations |
|---|---|---|
list_okta_devices | List devices in Okta. | READ |
list_okta_user_devices | List devices for a specific user. | READ |
get_okta_device | Get details of a specific device. | READ |
list_okta_device_users | List users for a specific device. | READ |
Sources: agent-packages/packages/okta/src/tools.ts:543-574
JumpCloud Integration
The JumpCloud integration provides tools for managing users, groups, and devices within a JumpCloud organization. It enables the AI agent to handle requests related to user lifecycle management and group assignments.
Sources: agent-packages/packages/jumpcloud/README.md:3-9
Available Tools
The integration exposes the following tools for the AI agent.
User Management
| Tool Name | Description | Operations |
|---|---|---|
list_jumpcloud_users | List users in JumpCloud with filtering. | READ |
create_jumpcloud_user | Create a new user. | CREATE |
get_jumpcloud_user | Get details for a specific user. | READ |
update_jumpcloud_user | Update an existing user's properties. | UPDATE |
delete_jumpcloud_user | Delete a user. | DELETE |
list_jumpcloud_user_devices | List all devices associated with a specific user. | READ |
Sources: agent-packages/packages/jumpcloud/src/tools.ts:162-207, 264-272
Group Management
| Tool Name | Description | Operations |
|---|---|---|
list_jumpcloud_groups | List all user groups. | READ |
create_jumpcloud_group | Create a new user group. | CREATE |
delete_jumpcloud_group | Delete a user group. | DELETE |
list_jumpcloud_group_users | List all users in a specific group. | READ |
assign_user_to_jumpcloud_group | Assign a user to a group. | UPDATE |
unassign_user_from_jumpcloud_group | Unassign a user from a group. | UPDATE |
Sources: agent-packages/packages/jumpcloud/src/tools.ts:208-263
Device Management
| Tool Name | Description | Operations |
|---|---|---|
list_jumpcloud_devices | List all devices in the organization. | READ |
Sources: agent-packages/packages/jumpcloud/src/tools.ts:273-281
Summary
The Okta and JumpCloud integrations are critical for extending Quix's capabilities into the domain of Identity and Access Management. By providing a rich set of tools for user, group, and device management, they empower the AI agent to automate common IT administration tasks, answer identity-related questions, and manage access control, all through a conversational interface in Slack. The configuration is securely stored and managed on a per-workspace basis, ensuring that each Slack team's integration is isolated and secure.