All pages
Powered by GitBook
1 of 23

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Single sign-on (SSO)

Tonic Textual respects the access control policy of your single sign-on (SSO) provider. To access Textual, users must be granted access to the Textual application within your SSO provider.

Self-hosted instances can use any of the available SSO options. Textual Cloud organizations can enable Okta SSO.

To enable SSO, you first complete the required configuration in the SSO provider. You then configure Textual to connect to it. For self-hosted instances, you use Textual environment variables for the configuration. For a Textual Cloud organization, you use the Single Sign-On tab on the Permission Settings page.

After you enable SSO, users can use SSO to create an account in Textual.

For self-hosted instances, to only allow SSO authentication, set the environment variable REQUIRE_SSO_AUTH to true. For Textual Cloud, this is configured in the application. When SSO is required, Textual disables standard email/password authentication. All account creation and login is handled through your SSO provider. If multi-factor authentication (MFA) is set up with your SSO, then all authentication must go through your provider's MFA.

You can .

Tonic Textual supports the following SSO providers:

Textual organizations

In Tonic Textual, each user belongs to an organization. Organizations are used to determine the company or customer that a Textual user belongs to.

A self-hosted instance of Textual contains a single organization. All users belong to that organization.

Textual Cloud hosts multiple organizations. The organizations are kept completely separate. Users from one Textual Cloud organization do not have any access to the users or datasets that belong to a different Textual Cloud organization.

The displays the organization that the user account belongs to.

When is a Textual organization created?

A Textual organization is created:

Creating a new account in an existing organization

New user on a self-hosted instance

If your company has a self-hosted Textual instance that is installed on-premises, then you navigate to the Textual URL for that instance.

Your self-hosted instance might be configured to use single sign-on for Textual access. If so, then from the Textual login page, to create your Textual user account, click the single sign-on option.

Otherwise, to create your Textual user account, click Sign Up.

Your administrator can provide the URL for your Textual instance and confirm the instructions for creating your user account.

New user for an existing Textual Cloud organization

If your Textual license is on Textual Cloud, then new users that have a matching email domain are automatically added to your Textual Cloud organization.

For a Textual Cloud license other than a pay-as-you-go license, the license agreement specifies the included email domains. When a user with a matching email domain signs up for a Structural account, they are added to that Textual Cloud organization.

For a pay-as-you-go Textual Cloud license, when a user with the same corporate email domain as the subscribed user signs up for a Textual account, they are added to that Textual Cloud organization.

To create your Textual user account, on the Textual Cloud login page, click Sign Up.

  • For a standard Textual license, both self-hosted and Textual Cloud, when the first user signs up for a Textual account.

  • When a user signs up for a free trial or pay-as-you go Textual Cloud license with a unique corporate email domain.

  • When a user signs up for a free trial or pay-as-you-go Textual Cloud license with a public email domain, such as Gmail or Yahoo. Every user with a public email domain is in a separate organization.

  • When is a new user added to an existing organization?

    Self-hosted instance

    A self-hosted instance has a single organization. Every user who signs up for an account on that instance is added to the organization.

    Annual Textual Cloud license (not pay-as-you-go)

    For companies with an annual Textual Cloud license, the license includes the email domains that are included in the license.

    When a user with one of the included email domains signs up for a Textual account, they are automatically added to that organization.

    Pay-as-you-go license

    For a pay-as-you-go license, when a user with the same corporate email domain signs up for a Textual account, they are automatically added to that organization.

    Users with public email domains are always in separate organizations.

    User Profile page
    view the list of SSO groups whose members have logged into Textual

    Azure

    Use Azure to enable SSO on Textual.

    GitHub

    Use GitHub to enable SSO on Textual.

    Google

    Use Google to enable SSO on Textual.

    Keycloak

    Use Keycloak to enable SSO on Textual.

    Okta

    Use Okta to enable SSO on Textual.

    Available for both self-hosted instances and Textual Cloud.

    OpenID Connect (OIDC)

    Use OIDC to enable SSO on Textual.

    Viewing the list of SSO groups in Textual

    Required global permission: View users and groups

    If you use SSO to manage Tonic Textual groups, then Textual displays the list of groups for which at least one user has logged in to Textual.

    To display the SSO group list:

    1. Click the user image at the top right.

    2. In the user menu, click Permission Settings.

    3. On the Permission Settings page, click Groups.

    If no users from a group have logged in to Textual, then the group does not display in the list.

    The list only displays the group names and indicates the SSO provider. To manage the group permissions:

    • To assign global permission sets, go to the Global Permission Sets list. For more information, go to .

    • To assign dataset permission sets, go to the Datasets page. For more information, go to .

    Managing user access to Textual

    Tonic Textual provides the following options to manage access to Textual and its features.

    Configuring access to global permission sets
    Sharing dataset access

    Textual organizations Learn about Textual organizations and how they are populated.

    Create an account in an organization How new accounts are assigned to organizations.

    Single sign-on (SSO) Use SSO to manage user access to Textual.

    Manage Textual users View and remove Textual users that are in your organization.

    Manage permissions View and configure permission sets. Assign global permission sets to users and groups.

    Textual configuration (Textual Cloud)

    Required global permission: Manage users and groups

    On Textual Cloud, after you complete the configuration in Okta, you configure the Textual connection to Okta from the Single Sign-On tab on the Permission Settings page.

    1. To enable Okta SSO, check the Enable Okta SSO checkbox.

    2. In the SSO Client ID field, enter the client identifier of the application.

    3. In the SSO Domain field, enter the Okta domain.

    4. If you use a third-party provider, then in the Identity Provider ID field, provide the provider identifier. If you do not use a third-party provider, then you can skip this field.

    5. If you created a custom authorization server, then in the Authorization Server field, provide the server identifier. If you did not create a custom authorization server, then you can skip this field.

    6. To require your organization users to use Okta SSO to log in to Textual, check the Require SSO for login checkbox.

    Okta (self-hosted and Cloud)

    Use these instructions to set up Okta as your SSO provider for Tonic Textual. Okta is supported on both self-hosted instances and on Textual Cloud.

    Azure

    Use these instructions to set up Azure Active Directory as your SSO provider for Tonic Textual.

    Azure configuration

    Register Textual as an application within the Azure Active Directory Portal:

    1. In the portal, navigate to Azure Active Directory -> App registrations, then click New registration.

    Textual configuration (self-hosted)

    On a self-hosted instance, after you , uncomment and configure the relevant in Textual.

    Kubernetes

    For Kubernetes, the settings are in the Okta SSO Config section of values.yaml:

    • oktaAuthServerId

    GitHub

    Use these instructions to set up GitHub as your SSO provider for Tonic Textual.

    Create an OAuth application

    1. In GitHub, navigate to Settings -> Developer Settings -> OAuth Apps, then create a new application.

    Managing Textual users

    Required global permission: View users and groups

    To display the list of Textual users:

    1. Click the user icon at the top right.

    2. In the user menu, click Permission Settings.

    Setting initial access to all global permissions

    In a self-hosted instance of Tonic Textual, the default global permission set for Textual users does not include the ability to manage or assign global permissions.

    Until you set the initial access to all global permissions, there is no way to manage or assign global permissions.

    To set the initial access to all global permissions, you set the list of users or groups as the value of the SOLAR_ADMINISTRATORS.

    The users and groups are assigned the built-in Admin (Environment) permission set.

    From the Global Permission Sets list:

    • You cannot revoke the built-in Admin (Environment) permission set from those users or groups.

    On the Permission Settings page, click Users.

    Okta configuration Required configuration within Okta.

    Textual configuration (self-hosted) Required configuration to enable Okta on a self-hosted instance.

    Textual configuration (Textual Cloud) Configuring Textual Cloud to use Okta SSO for an organization.

    You cannot assign the Admin (Environment) permission set to other users or groups.

    To change the assigned users and groups, you update the value of SOLAR_ADMINISTRATORS.

    environment variable

    Viewing the lists of permission sets

    Displaying the permission set lists

    The Permission Settings page contains the lists of global and dataset permissions.

    To display the Permission Settings page:

    1. Click the user icon at the top right.

    2. In the user menu, click Permission Settings.

    On the Permission Settings page:

    • Global Permission Sets contains the list of global permission sets.

    • Dataset Permission Sets contains the list of dataset permission sets.

    The lists include:

    • The permission set name.

    • Whether the permission set is built-in or custom.

    • For custom permission sets, when it was most recently modified, and the user who modified it.

    Viewing the details for a permission set

    To view the details for a permission set, in the permission sets list, click Settings.

    The details panel for a permission set includes:

    • The name of the permission set.

    • The permission configuration.

    Register Textual and create a new web redirect URI that points to your Textual instance's address and the path /sso/callback/azure.

  • Take note of the values for client ID and tenant ID. You will need them later.

  • Click Add a certificate or secret, and then create a new client secret. Take note of the secret value. You will need this later.

  • Navigate to the API permissions page. Add the following permissions for the Microsoft Graph API:

    • OpenId permissions

    • email

    • openid

    • profile

    • GroupMember

    • GroupMember.Read.All

    • User

    • User.Read

  • Click Grant admin consent for Tonic AI. This allows the application to read the user and group information from your organization. When permissions have been granted, the status should change to Granted for Tonic AI.

  • Navigate to Enterprise applications and then select Textual. From here, you can assign the users or groups that should have access to Textual.

  • Textual configuration

    After you complete the configuration in Azure, you uncomment and configure the required environment variables in Textual.

    For Kubernetes, in values.yaml:

    For Docker, in .env:

    - If you created a custom authorization server, the server ID. If you do not use a custom authorization server, then you can omit this.
  • oktaClientId - The client identifier of the application.

  • oktaDomain - The Okta domain.

  • oktaIdentityProviderId - If you use a third-party provider, the provider identifier. If you do not use a third-party provider, you can omit this.

  • Docker

    For Docker, the settings are in .env:

    • SOLAR_SSO_OKTA_CLIENT_ID - The client identifier of the application.

    • SOLAR_SSO_OKTA_DOMAIN - The Okta domain.

    • SOLAR_SSO_OKTA_IDENTITY_PROVIDER_ID - If you use a third-party provider, the provider identifier. If you do not use a third-party provider, then you can omit this.

    complete the configuration in Okta
    environment variables
    For Application Name, enter Textual.
  • For Homepage URL, enter https://textual.tonic.ai.

  • For Authorization callback URL, enter https://your-textual-url/sso/callback/github.

  • Replace your-textual-url with the URL of your Textual instance.

    Create a client secret

    After you create the application, to create a new secret, click Generate a new client secret.

    You use the client ID and the client secret in the Textual configuration.

    Textual configuration

    After you complete the configuration in GitHub, you uncomment and configure the required environment variables in Textual.

    For Kubernetes, in values.yaml:

    For Docker, in .env:

    # Github SSO Config
    # -----------------
    #githubClientId: <client-id>
    #githubClientSecret: <client-secret>
    # Azure SSO Config
    # -----------------
    #azureClientId: <client-id>
    #azureTenantId: <tenant-id>
    #azureClientSecret: <client-secret>
    #azureGroupFilterRegex: <regular expression to identify allowed groups>
    #SOLAR_SSO_AZURE_CLIENT_ID=#<client ID>
    #SOLAR_SSO_AZURE_TENANT_ID=#<tenant ID>
    #SOLAR_SSO_AZURE_CLIENT_SECRET=#<client secret>
    #SOLAR_SSO_AZURE_GROUP_FILTER_REGEX=#"<regular expression to identify allowed groups>
    # Okta SSO Config
    # -----------------
    #oktaAuthServerId: <customer auth server if you have one>
    #oktaClientId: <client-id>
    #oktaDomain: <sso-domain>
    #oktaIdentityProviderId: <identity-provider-id>
    #oktaGroupFilterRegex: <regular expression to identify allowed groups>
    #SOLAR_SSO_OKTA_CLIENT_ID=#<client ID>
    #SOLAR_SSO_OKTA_DOMAIN=#<SSO domain>
    #SOLAR_SSO_OKTA_IDENTITY_PROVIDER_ID=#<third-party provider identifier>
    #SOLAR_SSO_OKTA_GROUP_FILTER_REGEX="<regular expression to identify allowed groups>
    #SOLAR_SSO_GITHUB_CLIENT_ID=#<client ID>
    #SOLAR_SSO_GITHUB_CLIENT_SECRET=#<client secret>

    Configuring custom permission sets

    Required global permission: Manage custom permission sets

    You can create custom global and dataset permission sets.

    A custom permission set allows you to have more precise control over global and dataset permissions.

    For example, you might want a dataset permission set that allows a user to manage the files but not share or delete the dataset.

    For global permissions, you might want a global permission set that allows a user to manage access to any dataset, but not manage Textual users.

    Creating a custom permission set

    To create a custom permission set:

    1. On the global or dataset permission sets list, click the create permission set button.

    2. On the permission set details panel, in the Permission Set Name field, type the name for the new permission set. Permission set names must be unique for that permission set type (global, dataset).

    3. Select the permissions to grant to the permission set. If a permission checkbox is checked, then the permission is granted to the permission set. If a permission checkbox is not checked, then the permission is not granted to the permission set.

    4. To save the new permission set, click

    Editing a custom permission set

    You cannot make any changes to a built-in permission set.

    For a custom permission set, you can change the permission set name and adjust the assigned permissions.

    To edit an existing custom permission set:

    1. On the global or datasets permission sets list, click Settings.

    2. On the permission set details panel, update the permission set configuration.

    3. Click Save.

    Deleting a custom permission set

    You can delete a custom permission set. You cannot delete a built-in permission set.

    You cannot delete a permission set that is assigned to any users or groups. Before you can delete the permission set, you must remove the assignment.

    To delete a custom permission set:

    1. On the global or dataset permission sets list, click Settings.

    2. On the permission set details panel, click Delete Permission Set.

    3. On the confirmation panel, click Confirm.

    Managing permissions

    You use permissions and permission sets to manage access to Tonic Textual features and functions.

    Learn about permission sets and permissions

    View and configure permission sets

    Assign global permission sets

    About permissions and permission sets

    Tonic Textual uses permissions and permission sets to manage role-based access (RBAC) to Textual features and functions.

    A permission grants access to a specific feature or function.

    A permission set is a collection of permissions that can be assigned to a user or an SSO group.

    Built-in and custom permission sets

    Textual provides a set of built-in permission sets that you cannot edit or delete.

    You can also create custom permission sets.

    Save
    .
  • For a global permission set, Textual prompts you to configure access to the new permission set. To display the access management panel for the permission set, click Manage User Access. To not manage access at that time, click Skip.

  • Global permission sets

    Global permission sets control access to features and functions that are outside of the context of a specific dataset. For example, global permission control who can manage users and configure custom entity types.

    You can also select a default global permission set to assign to all new users.

    For the list of global permission sets and available permissions, go to Built-in permission sets and available permissions.

    For information on how to assign global permission sets, go to Configuring access to global permission sets.

    Dataset permission sets

    Dataset permission sets provide access to specific dataset management features and functions.

    Dataset permission sets are assigned to users and groups within the context of a specific dataset. For example, a user might have the Editor permission set in one dataset and the Viewer permission set in another dataset.

    For the lists of built-in dataset permission sets and available permissions, go to Built-in permission sets and available permissions.

    For information on how to assign dataset permission sets, go to Sharing dataset access.

    Guided redaction permission sets

    Guided redaction permission sets provide access to specific guided redaction management features and functions.

    Guided redaction permission sets are assigned to users and groups within the context of a specific project. For example, a user might have the Editor permission set in one project and the Viewer permission set in another project.

    For the lists of built-in guided redaction permission sets and available permissions, go to Available guided redaction permissions.

    For information on how to assign guided redaction permission sets, go to Sharing access to a guided redaction project.

    About permissions and permission sets Learn how user access works in Textual.

    Built-in permission sets and permissions Lists of the global and dataset permission sets and permissions that come with Textual.

    View the permission sets View the lists of global and dataset sets.

    Configure custom permission sets Create and assign permissions to your own global and dataset sets.

    Select default permission sets Select the global permission set for all users, and the permission sets for database creators.

    Grant access to global permission sets Assign users and groups to global permission sets.

    Set the initial admin access Use an environment variable to grant the initial access to all global permissions.

    OpenID Connect (OIDC)

    Use these instructions to set up an OpenID Connect SSO provider for Tonic Textual.

    SSO setup

    When you configure the application/client in your SSO system, you must configure it to use Authorization Code Flow.

    You must also make note of the client_id. You must provide the client ID when you complete the configuration for Textual.

    Redirect URI

    In your SSO provider, configure the following redirect URI:

    • Sign-in redirect URI: <textual-base-url>/sso/callback/oidc

    Textual configuration

    Required environment variables

    After you set up the SSO provider, you uncomment and configure the required in Textual.

    • The application client identifier

    • For HTTP basic authentication (client_secret_basic), the client secret

    • The base URL of the provider. This is the location of /.well-known/openid-configuration

    For Kubernetes, in values. yaml:

    For Docker, in .env:

    Optional environment variables

    You can optionally uncomment and configure the following optional environment variables:

    • A space-delimited list of scopes to request from the OIDC SSO provider. Because group information is not part of the standard OIDC specification, for Textual to capture group information, a custom scope must be configured.

    • The name of the claim that contains the user's first name.

    • The name of the claim that contains the user's last name.

    • The name of the claim that contains the user's email address or username.

    Textual has default values for these settings:

    For Kubernetes, in values.yaml:

    For Docker, in .env:

    Google

    Use these instructions to set up Google as your SSO provider for Tonic Textual.

    Create an OAuth 2.0 client ID in Google

    1. Go to https://console.developers.google.com/apis/credentials

    2. Click Create credentials, located near the top.

    3. Select OAuth client ID.

    4. Select Web application as the application type.

    5. Choose a name.

    6. Under Authorized redirect URIs, add the URL of the Textual server with the endpoint /sso/callback/google. For example, a local Textual server at http://localhost:3000 would need http://localhost:3000/sso/callback/google to be set as the redirect URI. Also note that internal URLs might not work.

    7. On the confirmation page, note the client ID and client secret. You will need to provide them to Textual.

    Textual configuration

    After you complete the configuration in Google, you uncomment and configure the required in Textual.

    • The client ID

    • The client secret

    For Kubernetes, in values.yaml:

    For Docker, in .env:

    Configuring access to global permission sets

    Required global permissions:

    • Manage access to global permission sets

    • View users and groups

    From the Global Permission Sets list, you can grant or revoke access to a global permission set. Global permission sets can be assigned to individual users and to SSO groups.

    Access to dataset permission sets is managed from the Datasets page. For more information, go to .

    You cannot change the assignment of the following global permission sets:

    • The global permission set that is assigned to all Textual users. Initially, this is the General User permission set, but it can be changed to a different permission set.

    • The built-in Admin (Environment) global permission set.

    Before you assign a global permission set to an SSO group, make sure that you are aware of who is in the group. The permissions that are granted to an SSO group automatically are granted to all of the users in the group.

    To manage the permission set assignment:

    1. On the Global Permission Sets list, for the permission set to manage, click Manage Access.

    2. To grant access to a user or group:

      1. Begin to type the user or group name.

      2. In the list of matching users or groups, click the user or group name.

    To remove access from a user or group, click Revoke for that user or group.

  • To save the changes to the permission set access, click Save.

  • Sharing dataset access
    A regular expression to identify groups that are permitted to use Textual.

    The name of the claim that contains the user's group membership.

    environment variables
    environment variables
    # OIDC SSO Config
    # -----------------
    #oidcClientId: <application client ID>
    #oidcClientSecret: <client secret for HTTP basic authentication>
    #oidcAuthority: <base URL of the provider>
    #oidcGroupFilterRegex: <regular expression to identify allowed groups>
    #SOLAR_SSO_OIDC_CLIENT_ID=#<application client ID>
    #SOLAR_SSO_OIDC_CLIENT_SECRET=#<client secret for HTTP basic authentication>
    #SOLAR_SSO_OIDC_AUTHORITY=#<base URL of the provider>
    #SOLAR_SSO_OIDC_GROUP_FILTER_REGEX=#<regular expression to identify allowed groups>
    #oidcScopes: openid profile email
    #oidcFirstNameClaimName: given_name
    #oidcLastNameClaimName: family_name
    #oidcEmailClaimName: email
    #oidcGroupsClaimName: groups
    #SOLAR_SSO_OIDC_SCOPES=#openid profile email
    #SOLAR_SSO_OIDC_FIRST_NAME_CLAIM_NAME=#given_name
    #SOLAR_SSO_OIDC_LAST_NAME_CLAIM_NAME=#family_name
    #SOLAR_SSO_OIDC_EMAIL_CLAIM_NAME=#email
    #SOLAR_SSO_OIDC_GROUPS_CLAIM_NAME=#groups
    # Google SSO Config
    # -----------------
    #googleClientId: <client-id>
    #googleClientSecret: <client-secret>
    #googleGroupFilterRegex: <regular expression to identify allowed groups>
    #SOLAR_SSO_GOOGLE_CLIENT_ID=#<client ID>
    #SOLAR_SSO_GOOGLE_CLIENT_SECRET=#<client secret>
    #SOLAR_SSO_GOOGLE_GROUP_FILTER_REGEX=#<regular expression to identify allowed groups>

    Keycloak

    Use these instructions to set up Keycloak as your SSO provider for Tonic Textual.

    Keycloak configuration

    Within Keycloak, select the realm to use for your Textual client. Under Clients, click Create client.

    Create client option for Keycloak

    On the Create client page, under General Settings:

    1. From the Client type dropdown list, select OpenID Connect.

    2. Enter a Client ID and Name.

    3. Click Next.

    On the Capability Config tab, click Save. The details page for the new client displays.

    On the Settings tab, under Access settings, enter your Textual URL information.

    Click Client scopes. Each client has a dedicated scope named <client-id>-dedicated. To configure the scope, click the scope name.

    On the Mappers tab, to add a property mapper to the scope, click Configure a new mapper.

    In the list of mapper types, click Group Membership.

    Under Add mapper, set both Name and Token Claim Name to groups.

    The Full group path toggle affects how child groups appear in Tonic:

    • When on, child groups display as parent group/child group.

    • When off, child groups display as child group.

    To save the new group membership mapper, click Save.

    Textual configuration

    After you complete the configuration in Keycloak, you uncomment and configure the required in Textual.

    • The realm URL

    • The client identifier

    • The client secret, if client authentication is enabled

    For Kubernetes, in values.yaml:

    For Docker, in .env:

    Disabling pushed authorization requests

    The environment variable SOLAR_SSO_KEYCLOAK_DISABLE_PUSHED_AUTHORIZATION determines whether to disable Keycloak pushed authorization requests.

    By default, this is false.

    You would set this to true to troubleshoot Keycloak authentication issues.

    environment variables
    Create client fields for a Keycloak client
    Access settings for a Keycloak client
    Client scopes tab for a Keycloak client
    Options to add a property mapper to a Keycloak client scope
    Available mapper types for a Keycloak client scope property mapper
    Configuration options for a Keycloak property mapper

    Selecting default permission sets

    You can configure:

    • The global permission set that is assigned to all Tonic Textual users.

    • The dataset permission set to assign to a user who creates a dataset.

    Selecting the global permission set to assign to all Textual users

    Required global permission: Manage access to global permission sets

    By default, all Textual users are assigned the built-in General User global permission set. You can configure a different global permission set to assign to all Textual users.

    The permission set cannot be removed.

    When you choose a different permission set to assign to all users, unless they were otherwise assigned the previous permission set, they lose access to it.

    To set the default global permission set to assign to all Textual users:

    1. Click the user icon at the top right.

    2. In the user menu, click Permission Settings.

    3. On the Permission Settings page, click Global Permission Sets. The current permission set for all users is marked as Assigned to all users.

    4. To select a different permission set, hover over the permission set row, then click Assign to all users

    1. The confirmation panel explains the risks of making this change. To confirm the change:

    2. Check I have read and understand the risks.

    3. Click Confirm.

    Selecting the permission set to assign to a dataset creator

    Required global permission: Manage access to dataset permission sets

    By default, when a user creates a dataset, they are assigned the built-in Editor dataset permission set. You can configure a different dataset permission set to assign when a database is created.

    Changing the selected permission set does not affect existing datasets. It only applies to datasets that are created after the change.

    To select a different permission set for dataset creation:

    1. Click the user icon at the top right.

    2. In the user menu, click Permission Settings.

    3. On the Permission Settings page, click Dataset Permission Sets. The current permission set for database creators is marked Assigned on dataset creation.

    4. To select a different permission set, hover over the permission set row, then click

    Selecting default permission sets

    Default permission set for users who create projects.

    Selecting the permission set to assign to a guided redaction project creator

    By default, when a user creates a guided redaction project, they are assigned the built-in Editor guided redaction permission set. You can configure a different guided redaction permission set to assign to the user who creates a project.

    Changing the selected permission set does not affect existing projects. It only applies to projects that are created after the change.

    To select a different permission set for guided redaction project creation:

    1. Click the user icon at the top right.

    2. In the user menu, click Permission Settings.

    3. On the Permission Settings page, click Guided Redaction Permission Sets. The current permission set for project creators is marked Assigned on project creation.

    4. To select a different permission set, hover over the permission set row, then click

    # Keycloak SSO Config
    # -----------------
    #keycloakClientId: <client-id>
    #keycloakClientSecret: <client-secret>
    #keycloakAuthority: <authority-url>
    #keycloakGroupFilterRegex: <regular expression to identify allowed groups>
    #SOLAR_SSO_KEYCLOAK_AUTHORITY=#<keycloak_url_with_scheme>/realms/<realm_name>
    #SOLAR_SSO_KEYCLOAK_CLIENT_ID=#<client identifier>
    #SOLAR_SSO_KEYCLOAK_CLIENT_SECRET=#<client secret>
    #SOLAR_SSO_KEYCLOAK_GROUP_FILTER_REGEX=#<regex to identify allowed groups>
    .
    Assign on dataset creation
    .
  • The confirmation panel explains the risk of making this change. To confirm the change:

    1. Check I have read and understand the risks.

    2. Click Confirm.

  • Assign on project creation
    .
  • The confirmation panel explains the risk of making this change. To confirm the change:

    1. Check I have read and understand the risks.

    2. Click Confirm.

  • Selecting a global permission set to assign to all users

    Built-in permission sets and available permissions

    Tonic Textual comes with a set of built-in global, dataset, and guided redaction permission sets. You cannot edit or delete the built-in permission sets.

    Each permission is assigned Textual permissions. When a new permission is added to Textual, it is also added to the appropriate built-in permission sets.

    Built-in global permission sets

    Textual comes with the following built-in global permission sets:

    • Admin - Provides complete access to all global permissions. The Admin permission set automatically receives any new global permissions.

    • Admin (Environment) - For self-hosted only. Identical to the Admin permission set. Only assigned to users and groups listed in the value of the TEXTUAL_ADMINISTRATORS.

    • General User - Allows users to create datasets and custom entity types. Users can also use the Home page and the Request Explorer. By default, the General User permission set is assigned to all Textual users and SSO groups.

    Available global permissions

    The following tables list the available global permissions, and indicate how the permissions apply to the built-in global permission sets.

    Textual API and requests

    Permission
    General User
    Admin and Admin (Environment)

    Configuration management

    Permission
    General User
    Admin and Admin (Environment)

    Datasets

    Permission
    General User
    Admin and Admin (Environment)

    Guided redaction

    Permission
    General User
    Admin and Admin (Environment)

    Users and permissions

    Permission
    General User
    Admin and Admin (Environment)

    Built-in dataset permission sets

    Textual comes with the following built-in permission sets:

    • Editor - A dataset Editor has full access to view, edit, and share access to a dataset. When you create a dataset, you are automatically granted the Editor permission set for that dataset.

    • Viewer - A dataset Viewer only has access to view the configuration and to preview and download the results.

    Available dataset permissions

    The following tables list the available dataset permissions, and indicate how the permissions apply to the built-in dataset permission sets.

    General dataset management

    Permission
    Viewer
    Editor

    Dataset file management

    Permission
    Viewer
    Editor

    Built-in guided redaction permission sets

    Textual comes with the following built-in guided redaction permission sets:

    • Editor - An Editor has almost full access to a guided redaction project. The one permission an Editor does not have is the permission to review redactions. When you create a project, you are assigned the Editor permission set.

    • Viewer - A Viewer can view project settings, change statuses, and review redactions.

    Available guided redaction permissions

    The following tables list the available guided redaction permissions, and indicate how the permissions apply to the built-in guided redaction permission sets.

    General project management

    Permission
    Editor
    Viewer

    Project file management

    Permission
    Editor
    Viewer

    Review and collaboration

    Permission
    Editor
    Viewer

    Create redaction reference codes

    ✔

    Edit redaction reference codes

    ✔

    Create guided redaction status values

    ✔

    Edit guided redaction status values

    ✔

    View usage metrics

    ✔️

    Download redacted dataset files

    ✔️

    ✔️

    Preview project files

    ✔

    ✔

    Create an API key

    ✔️

    ✔️

    Use the playground on the Home page

    ✔️

    ✔️

    Use the API to parse or redact a text string

    ✔️

    ✔️

    Use the Request Explorer

    ✔️

    Create custom entity types

    ✔️

    ✔️

    Edit any custom entity type

    ✔️

    Create datasets

    ✔️

    ✔️

    Manage access to datasets

    ✔️

    View all datasets

    ✔️

    Use guided redaction projects

    ✔

    ✔

    Create guided redaction projects

    ✔

    ✔

    Control access to all guided redaction projects

    ✔

    View all guided redaction projects

    Manage custom permission sets

    ✔️

    Manage access to global permission sets

    ✔️

    View users and groups

    ✔️

    ✔️

    Manage users and user groups

    View dataset settings

    ✔️

    ✔️

    Edit dataset settings

    ✔️

    Share dataset access

    ✔️

    Delete a dataset

    ✔️

    Upload files to a dataset

    ✔️

    Start a scan of dataset files

    ✔️

    ✔️

    Delete files from a dataset

    ✔️

    Preview redacted dataset files

    ✔️

    ✔️

    View project settings

    ✔

    ✔

    Edit project settings

    ✔

    Share project access

    ✔

    Delete a project

    ✔

    Upload files to a project

    ✔

    Download project files

    ✔

    ✔

    Delete files from a project

    ✔

    Edit file redactions

    ✔

    Manage comments

    ✔

    Review redactions

    ✔

    View audit log

    ✔

    ✔

    environment variable

    ✔️

    ✔

    ✔️

    Okta configuration

    To enable Okta as your SSO provider for Tonic Textual, you first complete the following configuration steps within Okta:

    1. Create a new application. Choose the OIDC - OpenId Connect method with the Single-Page Application option.

    Create a new app integration
    1. Click Next, then fill out the fields with the values below:

      • App integration name: The name to use for the Textual application. For example, Textual, Textual-Prod, Textual-Dev.

      • Grant type: Implicit (hybrid)

      • Sign-in redirect URIs: For self-hosted instances, <base-url>/sso/callback/okta. For Textual Cloud, on the Permission Settings page, the sign-in redirect URL is displayed on the Single Sign-On tab. Copy the value from there and paste it into the field.

      • Base URIs: The URL to your Textual instance

      • Controlled access: Configure as needed to limit Textual access to the appropriate users

    1. After saving the above, navigate to the General Settings page for the application and make the following changes:

      • Grant type: Check Implicit (Hybrid) and Allow ID Token with implicit grant type.

      • Login initiated by: Either Okta or App

    1. Make a note of the following values that must be provided to Textual:

      • Client ID of the application:

      • Your Okta domain (for example, tonic.okta.com)

    Application visibility: Check Display application icon to users

  • Initiate login URI: <base-url>

  • If you created a custom authorization server for Textual, the server ID:

  • IdP ID (If you use an outside identity provider):

  • App integration settings
    Application settings
    Login settings