<commit_before>---
title: Creating and Managing Users with the UAA CLI (UAAC)
owner: Identity
---

<strong><%= modified_date %></strong>

Using the UAA Command Line Interface (UAAC), an administrator can create users in the User Account and Authentication (UAA) server.

<p class="note"><strong>Note</strong>: The UAAC only creates users in UAA, and does not assign roles in the Cloud Controller database (CCDB). In general, administrators create users using the Cloud Foundry Command Line Interface (cf CLI). The cf CLI both creates user records in the UAA and associates them with org and space roles in the CCDB. Before administrators can assign roles to the user, the user must log in through Apps Manager or the cf CLI for the user record to populate the CCDB. Review the <a href="./cli-user-management.html">Creating and Managing Users with the cf CLI</a> topic for more information. </p>

For additional details and information, refer to the following topics:

* [UAA Overview](../concepts/architecture/uaa.html)
* [UAA Sysadmin Guide](https://github.com/cloudfoundry/uaa/blob/master/docs/Sysadmin-Guide.rst)
* [Other UAA Documentation](https://github.com/cloudfoundry/uaa/tree/master/docs)

## <a id='creating-admin-users'></a>Create an Admin User ##

1. Install the UAA CLI, `uaac`.
    <pre class="terminal">
    $ gem install cf-uaac
    </pre>

1. Use the `uaac target uaa.YOUR-DOMAIN` command to target your UAA server.
    <pre class="terminal">
    $ uaac target uaa.example.com
    </pre>

1. Record the **uaa:admin:client_secret** from your deployment manifest.

1. Run `uaac token client get admin -s ADMIN-CLIENT-PASSWORD` to authenticate and obtain an access token for the admin client from the UAA server. Replace 
`ADMIN-CLIENT-PASSWORD` with your admin password. UAAC stores the token in 
`~/.uaac.yml`.
    <pre class="terminal">
    $ uaac token client get admin -s <PASSWORD>Password
    </pre>

1. Use the `uaac contexts` command to display the users and applications authorized by the UAA server, and the permissions granted to each user and application.

    <pre class="terminal">
    $ uaac contexts

    [1]*[admin]
      client_id: admin
        access_token: <PASSWORD>
        token_type: bearer
        expires_in: 43200
        scope: uaa.admin clients.secret scim.read
        jti: 91b3-abcd1233
    </pre>

1. In the output from `uaac contexts`, search in the `scope` section of the
`client_id: admin` user for **scim.write**.
The value **scim.write** represents sufficient permissions to create accounts.

1. If the admin user lacks permissions to create accounts, add the permissions by following these steps:
    * Run `uaac client update admin --authorities "EXISTING-PERMISSIONS
    scim.write"` to add the necessary permissions to the admin user account on
    the UAA server. Replace EXISTING-PERMISSIONS with the current contents of
    the `scope` section from `uaac contexts`.
    * Run `uaac token delete` to delete the local token.
    * Run `uaac token client get admin` to obtain an updated access token from
    the UAA server.

    <pre class="terminal">
    $ uaac contexts

    [1]*[admin]
      client_id: admin
      . . .
      scope: uaa.admin clients.secret scim.read
      . . .

    $ uaac client update admin --authorities "`uaac client get admin | \
      awk '/:/{e=0}/authorities:/{e=1;if(e==1){$1="";print}}'` scim.write"

    $ uaac token delete
    $ uaac token client get admin
    </pre>

1. Run the following command to create an admin user: `uaac user add NEW-ADMIN-USERNAME -p NEW-ADMIN-PASSWORD --emails NEW-ADMIN-EMAIL`
<br>
Replace `NEW-ADMIN-USERNAME`, `NEW-ADMIN-PASSWORD`, and `NEW-ADMIN-EMAIL` with appropriate information.
    <pre class="terminal">
    $ uaac user add Adam -p newAdminSecretPassword --emails <EMAIL><span>@</span><EMAIL>
    </pre>

1. Run `uaac member add GROUP NEW-ADMIN-USERNAME` to add the
new admin to the groups `cloud_controller.admin`, `uaa.admin`, `scim.read`, and `scim.write`.
    <pre class="terminal">
    $ uaac member add cloud_controller.admin Adam
    $ uaac member add uaa.admin Adam
    $ uaac member add scim.read Adam
    $ uaac member add scim.write Adam
    </pre>

## <a id='external-group'></a>Grant Admin Permissions to an External Group (SAML or LDAP) ##

Follow the steps below to grant all users under an external group admin permissions:

1. Obtain the credentials of an admin client created using UAAC as above, or
refer to the `uaa: scim` section of your deployment manifest for the user
name and password of an admin user.

1. Run `uaac token client get admin -s ADMIN-CLIENT-PASSWORD` to authenticate and obtain an access token for the admin client from the UAA server. Replace 
`ADMIN-CLIENT-PASSWORD` with your admin password.
UAAC stores the token in `~/.uaac.yml`.
    <pre class="terminal">
    $ uaac token client get admin -s MyAdminPassword
    </pre>

1. Run the commands below to grant all users under the mapped LDAP Group admin permissions. Replace `GROUP-DISTINGUISHED-NAME` with an appropriate group name. 
    * `uaac group map --name scim.read "GROUP-DISTINGUISHED-NAME"`
    * `uaac group map --name cloud_controller.admin "GROUP-DISTINGUISHED-NAME"`

1. <%= vars.saml_provider %>

1. Run the commands below to grant all users under the mapped SAML group admin permissions. Replace `GROUP-NAME` with the group name, and `SAML-PROVIDER-NAME` with the name of your SAML provider.
    * `uaac group map --name scim.read "GROUP-NAME" --origin SAML-PROVIDER-NAME`
    * `uaac group map --name cloud_controller.admin "GROUP-NAME" --origin SAML-PROVIDER-NAME`

## <a id='creating-users'></a>Create Users ##

1. Obtain the credentials of an admin client created using UAAC as above, or
refer to the `uaa: scim` section of your deployment manifest for the user
name and password of an admin user.

1. Run `cf login -u NEW-ADMIN-USERNAME -p NEW-ADMIN-PASSWORD` to log in.
    <pre class="terminal">
    $ cf login -u Adam -p newAdminSecretPassword
    </pre>

1. Run `cf create-user NEW-USER-NAME NEW-USER-PASSWORD` to create a new
user.
    <pre class="terminal">
    $ cf create-user Charlie aNewPassword
    </pre>

## <a id='changing-passwords'></a>Change Passwords ##

1. Obtain the credentials of an admin client created using UAAC as above, or
refer to the `uaa: scim` section of your deployment manifest for the user
name and password of an admin user.

1. Run `uaac token client get admin -s ADMIN-CLIENT-PASSWORD` to authenticate and obtain an access token for the admin client from the UAA server. Replace 
`ADMIN-CLIENT-PASSWORD` with your admin password.
UAAC stores the token in `~/.uaac.yml`.
    <pre class="terminal">
    $ uaac token client get admin -s <PASSWORD>
    </pre>

1. Run `uaac contexts` to display the users and applications authorized by the
UAA server, and the permissions granted to each user and application.

    <pre class="terminal">
    $ uaac contexts

    [1]*[admin]
      client_id: admin
        access_token: <PASSWORD>
        token_type: bearer
        expires_in: 43200
        scope: uaa.admin clients.secret password.read
        jti: 91b3-abcd1233
    </pre>

1. In the output from `uaac contexts`, search in the `scope` section of the
`client_id: admin` user for **password.write**.
The value **password.write** represents sufficient permissions to change
passwords.

1. If the admin user lacks permissions to change passwords, add the permissions by following these steps:
    * Run `uaac client update admin --authorities "EXISTING-PERMISSIONS
    <PASSWORD>"` to add the necessary permissions to the admin user account
    on the UAA server. Replace EXISTING-PERMISSIONS with the current contents of
    the `scope` section from `uaac contexts`.
    * Run `uaac token delete` to delete the local token.
    * Run `uaac token client get admin` to obtain an updated access token from
    the UAA server.

    <pre class="terminal">
    $ uaac contexts

    [1]*[admin]
      client_id: admin
      . . .
      scope: uaa.admin clients.secret password.read
      . . .

    $ uaac client update admin --authorities "`uaac client get admin | \
      awk '/:/{e=0}/authorities:/{e=1;if(e==1){$1="";print}}'` password.write"

    $ uaac token delete
    $ uaac token client get admin
    </pre>

1. Run `uaac password set USER-NAME -p TEMP-PASSWORD` to change an
existing user password to a temporary password.
    <pre class="terminal">
    $ uaac password set Charlie -p ThisIsATempPassword
    </pre>

1. Provide the `TEMP-PASSWORD` to the user.
Have the user use `cf target api.YOUR-DOMAIN`, `cf login -u USER-NAME -p TEMP-PASSWORD`, and `cf passwd` to change the temporary password. <%= vars.pw_policy %>
    <pre class="terminal">
    $ cf target api.example.com
    $ cf login -u Charlie -p ThisIsATempPassword
    $ cf passwd

    Current Password><PASSWORD>

    New Password>*******

    Verify Password>*******
    Changing password...
    </pre>

## <a id='retrieving-email-addresses'></a>Retrieve User Email Addresses ##

Some Cloud Foundry components, like Cloud Controller, only use GUIDs for user
identification.
You can use the UAA to retrieve the emails of your Cloud Foundry instance users
either as a list or, for a specific user, with that user's GUID.

Follow the steps below to retrieve user email addresses:

1. Run `uaac target uaa.YOUR-DOMAIN` to target your UAA server.
    <pre class="terminal">
    $ uaac target uaa.example.<EMAIL>
    </pre>

1. Record the **uaa:admin:client_secret** from your deployment manifest.

1. Run `uaac token client get admin -s ADMIN-CLIENT-PASSWORD` to authenticate and obtain an access token for the admin client from the UAA server. Replace 
`ADMIN-CLIENT-PASSWORD` with your admin password. UAAC stores the token in `~/.uaac.yml`.
    <pre class="terminal">
    $ uaac token client get admin -s MyAdminPassword
    </pre>

1. Run `uaac contexts` to display the users and applications authorized by the
UAA server, and the permissions granted to each user and application.

    <pre class="terminal">
    $ uaac contexts

    [1]*[admin]
      client_id: admin
        access_token: <PASSWORD>
        token_type: bearer
        expires_in: 43200
        scope: uaa.admin clients.secret
        jti: 91b3-abcd1233
    </pre>

1. In the output from `uaac contexts`, search in the `scope` section of the
`client_id: admin` user for **scim.read**.
The value **scim.read** represents sufficient permissions to query the UAA
server for user information.

1. If the admin user lacks permissions to query the UAA server for user
information, add the permissions by following these steps:
    * Run `uaac client update admin --authorities "EXISTING-PERMISSIONS
    scim.write"` to add the necessary permissions to the admin user account on
    the UAA server. Replace EXISTING-PERMISSIONS with the current contents of
    the `scope` section from `uaac contexts`.
    * Run `uaac token delete` to delete the local token.
    * Run `uaac token client get admin` to obtain an updated access token from
    the UAA server.

    <pre class="terminal">
    $ uaac contexts

    [1]*[admin]
      client_id: admin
      . . .
      scope: uaa.admin clients.secret
      . . .

    $ uaac client update admin --authorities "uaa.admin clients.secret scim.read"

    $ uaac token delete
    $ uaac token client get admin
    </pre>

1. Run `uaac users` to list your Cloud Foundry instance users.
By default, the `uaac users` command returns information about each user account
including GUID, name, permission groups, activity status, and metadata.
Use the `--attributes emails` or `-a emails` flag to limit the output of `uaac
users` to email addresses.

    <pre class="terminal">
    $ uaac users --attributes emails

    resources:
      emails:
    value: <EMAIL>
      emails:
    value: <EMAIL>
      emails:
    value: <EMAIL>
    </pre>

1. Run `uaac users "id eq GUID" --attributes emails` with the GUID of a specific
user to retrieve that user's email address.

    <pre class="terminal">
    $ uaac users "id eq 'aabbcc11-22a5-87-8056-beaf84'" --attributes emails

    resources:
      emails:
    value: <EMAIL>
    </pre>
<commit_msg>[#128825059] adding line about admin read only role<commit_after>---
title: Creating and Managing Users with the UAA CLI (UAAC)
owner: Identity
---

<strong><%= modified_date %></strong>

Using the UAA Command Line Interface (UAAC), an administrator can create users in the User Account and Authentication (UAA) server.

<p class="note"><strong>Note</strong>: The UAAC only creates users in UAA, and does not assign roles in the Cloud Controller database (CCDB). In general, administrators create users using the Cloud Foundry Command Line Interface (cf CLI). The cf CLI both creates user records in the UAA and associates them with org and space roles in the CCDB. Before administrators can assign roles to the user, the user must log in through Apps Manager or the cf CLI for the user record to populate the CCDB. Review the <a href="./cli-user-management.html">Creating and Managing Users with the cf CLI</a> topic for more information. </p>

For additional details and information, refer to the following topics:

* [UAA Overview](../concepts/architecture/uaa.html)
* [UAA Sysadmin Guide](https://github.com/cloudfoundry/uaa/blob/master/docs/Sysadmin-Guide.rst)
* [Other UAA Documentation](https://github.com/cloudfoundry/uaa/tree/master/docs)

## <a id='creating-admin-users'></a>Create an Admin User ##

1. Install the UAA CLI, `uaac`.
    <pre class="terminal">
    $ gem install cf-uaac
    </pre>

1. Use the `uaac target uaa.YOUR-DOMAIN` command to target your UAA server.
    <pre class="terminal">
    $ uaac target uaa.example.com
    </pre>

1. Record the **uaa:admin:client_secret** from your deployment manifest.

1. Run `uaac token client get admin -s ADMIN-CLIENT-PASSWORD` to authenticate and obtain an access token for the admin client from the UAA server. Replace 
`ADMIN-CLIENT-PASSWORD` with your admin password. UAAC stores the token in 
`~/.uaac.yml`.
    <pre class="terminal">
    $ uaac token client get admin -s MyAdminPassword
    </pre>

1. Use the `uaac contexts` command to display the users and applications authorized by the UAA server, and the permissions granted to each user and application.

    <pre class="terminal">
    $ uaac contexts

    [1]*[admin]
      client_id: admin
        access_token: <PASSWORD>
        token_type: bearer
        expires_in: 43200
        scope: uaa.admin clients.secret scim.read
        jti: 91b3-abcd1233
    </pre>

1. In the output from `uaac contexts`, search in the `scope` section of the
`client_id: admin` user for **scim.write**.
The value **scim.write** represents sufficient permissions to create accounts.

1. If the admin user lacks permissions to create accounts, add the permissions by following these steps:
    * Run `uaac client update admin --authorities "EXISTING-PERMISSIONS
    scim.write"` to add the necessary permissions to the admin user account on
    the UAA server. Replace EXISTING-PERMISSIONS with the current contents of
    the `scope` section from `uaac contexts`.
    * Run `uaac token delete` to delete the local token.
    * Run `uaac token client get admin` to obtain an updated access token from
    the UAA server.

    <pre class="terminal">
    $ uaac contexts

    [1]*[admin]
      client_id: admin
      . . .
      scope: uaa.admin clients.secret scim.read
      . . .

    $ uaac client update admin --authorities "`uaac client get admin | \
      awk '/:/{e=0}/authorities:/{e=1;if(e==1){$1="";print}}'` scim.write"

    $ uaac token delete
    $ uaac token client get admin
    </pre>

1. Run the following command to create an admin user: `uaac user add NEW-ADMIN-USERNAME -p NEW-ADMIN-PASSWORD --emails NEW-ADMIN-EMAIL`
<br>
Replace `NEW-ADMIN-USERNAME`, `NEW-ADMIN-PASSWORD`, and `NEW-ADMIN-EMAIL` with appropriate information.
    <pre class="terminal">
    $ uaac user add Adam -p newAdminSecretPassword --emails newadmin<span>@</span>example.com
    </pre>

1. Run `uaac member add GROUP NEW-ADMIN-USERNAME` to add the
new admin to the groups `cloud_controller.admin`, `uaa.admin`, `scim.read`, and `scim.write`.
    <pre class="terminal">
    $ uaac member add cloud_controller.admin Adam
    $ uaac member add uaa.admin Adam
    $ uaac member add scim.read Adam
    $ uaac member add scim.write Adam
    </pre>
    
    <p class="note"><b>Note</b>: If you want to create an admin user account with read-only access to Cloud Controller APIs, then in the first command, replace the <code>cloud_controller.admin</code> group with <code>cloud_controller.admin_read_only</code>. As a result, the created admin account can view but not modify all Cloud Controller API resources. For more information on which roles can perform various operations, see <a href="../concepts/roles.html#roles">Roles and Permissions</a>.</p>

## <a id='external-group'></a>Grant Admin Permissions to an External Group (SAML or LDAP) ##

Follow the steps below to grant all users under an external group admin permissions:

1. Obtain the credentials of an admin client created using UAAC as above, or
refer to the `uaa: scim` section of your deployment manifest for the user
name and password of an admin user.

1. Run `uaac token client get admin -s ADMIN-CLIENT-PASSWORD` to authenticate and obtain an access token for the admin client from the UAA server. Replace 
`ADMIN-CLIENT-PASSWORD` with your admin password.
UAAC stores the token in `~/.uaac.yml`.
    <pre class="terminal">
    $ uaac token client get admin -s MyAdminPassword
    </pre>

1. Run the commands below to grant all users under the mapped LDAP Group admin permissions. Replace `GROUP-DISTINGUISHED-NAME` with an appropriate group name. 
    * `uaac group map --name scim.read "GROUP-DISTINGUISHED-NAME"`
    * `uaac group map --name cloud_controller.admin "GROUP-DISTINGUISHED-NAME"`

1. <%= vars.saml_provider %>

1. Run the commands below to grant all users under the mapped SAML group admin permissions. Replace `GROUP-NAME` with the group name, and `SAML-PROVIDER-NAME` with the name of your SAML provider.
    * `uaac group map --name scim.read "GROUP-NAME" --origin SAML-PROVIDER-NAME`
    * `uaac group map --name cloud_controller.admin "GROUP-NAME" --origin SAML-PROVIDER-NAME`

## <a id='creating-users'></a>Create Users ##

1. Obtain the credentials of an admin client created using UAAC as above, or
refer to the `uaa: scim` section of your deployment manifest for the user
name and password of an admin user.

1. Run `cf login -u NEW-ADMIN-USERNAME -p NEW-ADMIN-PASSWORD` to log in.
    <pre class="terminal">
    $ cf login -u Adam -p <PASSWORD>AdminSecretPassword
    </pre>

1. Run `cf create-user NEW-USER-NAME NEW-USER-PASSWORD` to create a new
user.
    <pre class="terminal">
    $ cf create-user Charlie aNewPassword
    </pre>

## <a id='changing-passwords'></a>Change Passwords ##

1. Obtain the credentials of an admin client created using UAAC as above, or
refer to the `uaa: scim` section of your deployment manifest for the user
name and password of an admin user.

1. Run `uaac token client get admin -s ADMIN-CLIENT-PASSWORD` to authenticate and obtain an access token for the admin client from the UAA server. Replace 
`ADMIN-CLIENT-PASSWORD` with your admin password.
UAAC stores the token in `~/.uaac.yml`.
    <pre class="terminal">
    $ uaac token client get admin -s MyAdminPassword
    </pre>

1. Run `uaac contexts` to display the users and applications authorized by the
UAA server, and the permissions granted to each user and application.

    <pre class="terminal">
    $ uaac contexts

    [1]*[admin]
      client_id: admin
        access_token: <PASSWORD>
        token_type: bearer
        expires_in: 43200
        scope: uaa.admin clients.secret password.read
        jti: 91b3-abcd1233
    </pre>

1. In the output from `uaac contexts`, search in the `scope` section of the
`client_id: admin` user for **password.write**.
The value **password.write** represents sufficient permissions to change
passwords.

1. If the admin user lacks permissions to change passwords, add the permissions by following these steps:
    * Run `uaac client update admin --authorities "EXISTING-PERMISSIONS
    password.write"` to add the necessary permissions to the admin user account
    on the UAA server. Replace EXISTING-PERMISSIONS with the current contents of
    the `scope` section from `uaac contexts`.
    * Run `uaac token delete` to delete the local token.
    * Run `uaac token client get admin` to obtain an updated access token from
    the UAA server.

    <pre class="terminal">
    $ uaac contexts

    [1]*[admin]
      client_id: admin
      . . .
      scope: uaa.admin clients.secret password.read
      . . .

    $ uaac client update admin --authorities "`uaac client get admin | \
      awk '/:/{e=0}/authorities:/{e=1;if(e==1){$1="";print}}'` password.write"

    $ uaac token delete
    $ uaac token client get admin
    </pre>

1. Run `uaac password set USER-NAME -p TEMP-PASSWORD` to change an
existing user password to a temporary password.
    <pre class="terminal">
    $ uaac password set <PASSWORD> -p This<PASSWORD>empPassword
    </pre>

1. Provide the `TEMP-PASSWORD` to the user.
Have the user use `cf target api.YOUR-DOMAIN`, `cf login -u USER-NAME -p TEMP-PASSWORD`, and `cf passwd` to change the temporary password. <%= vars.pw_policy %>
    <pre class="terminal">
    $ cf target api.example.com
    $ cf login -u Charlie -p ThisIsATempPassword
    $ cf passwd

    Current Password><PASSWORD>

    New Password>*******

    Verify Password>*******
    Changing password...
    </pre>

## <a id='retrieving-email-addresses'></a>Retrieve User Email Addresses ##

Some Cloud Foundry components, like Cloud Controller, only use GUIDs for user
identification.
You can use the UAA to retrieve the emails of your Cloud Foundry instance users
either as a list or, for a specific user, with that user's GUID.

Follow the steps below to retrieve user email addresses:

1. Run `uaac target uaa.YOUR-DOMAIN` to target your UAA server.
    <pre class="terminal">
    $ uaac target uaa.example.com
    </pre>

1. Record the **uaa:admin:client_secret** from your deployment manifest.

1. Run `uaac token client get admin -s ADMIN-CLIENT-PASSWORD` to authenticate and obtain an access token for the admin client from the UAA server. Replace 
`ADMIN-CLIENT-PASSWORD` with your admin password. UAAC stores the token in `~/.uaac.yml`.
    <pre class="terminal">
    $ uaac token client get admin -s MyAdminPassword
    </pre>

1. Run `uaac contexts` to display the users and applications authorized by the
UAA server, and the permissions granted to each user and application.

    <pre class="terminal">
    $ uaac contexts

    [1]*[admin]
      client_id: admin
        access_token: <PASSWORD>
        token_type: bearer
        expires_in: 43200
        scope: uaa.admin clients.secret
        jti: 91b3-abcd1233
    </pre>

1. In the output from `uaac contexts`, search in the `scope` section of the
`client_id: admin` user for **scim.read**.
The value **scim.read** represents sufficient permissions to query the UAA
server for user information.

1. If the admin user lacks permissions to query the UAA server for user
information, add the permissions by following these steps:
    * Run `uaac client update admin --authorities "EXISTING-PERMISSIONS
    scim.write"` to add the necessary permissions to the admin user account on
    the UAA server. Replace EXISTING-PERMISSIONS with the current contents of
    the `scope` section from `uaac contexts`.
    * Run `uaac token delete` to delete the local token.
    * Run `uaac token client get admin` to obtain an updated access token from
    the UAA server.

    <pre class="terminal">
    $ uaac contexts

    [1]*[admin]
      client_id: admin
      . . .
      scope: uaa.admin clients.secret
      . . .

    $ uaac client update admin --authorities "uaa.admin clients.secret scim.read"

    $ uaac token delete
    $ uaac token client get admin
    </pre>

1. Run `uaac users` to list your Cloud Foundry instance users.
By default, the `uaac users` command returns information about each user account
including GUID, name, permission groups, activity status, and metadata.
Use the `--attributes emails` or `-a emails` flag to limit the output of `uaac
users` to email addresses.

    <pre class="terminal">
    $ uaac users --attributes emails

    resources:
      emails:
    value: <EMAIL>
      emails:
    value: <EMAIL>
      emails:
    value: <EMAIL>
    </pre>

1. Run `uaac users "id eq GUID" --attributes emails` with the GUID of a specific
user to retrieve that user's email address.

    <pre class="terminal">
    $ uaac users "id eq 'aabbcc11-22a5-87-8056-beaf84'" --attributes emails

    resources:
      emails:
    value: <EMAIL>
    </pre>

{'fraction_non_alphanumeric': 0.0942049328253459, 'fraction_numerical': 0.007980749949869661, 'mean_word_length': 3.368605466012614, 'pattern_counts': {'":': 0, '<': 170, '<?xml version=': 0, '>': 176, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3199704', 'n_tokens_mistral': 7700, 'n_tokens_neox': 7367, 'n_words': 3118}