blob: a6db55d0eb6ebdbfcf3d758f0a63b3cea8f08ba9 [file] [log] [blame] [view]
Track Active Users
==============================
DESCRIPTION
-----------
Track user's activity over REST, SSH and UI and allow disabling inactive
accounts after the configured inactivity period.
Configuration
=========================
The track-active-users plugin is configured in
$site_path/etc/gerrit.config` files, example:
```text
[cache "@PLUGIN@.users_cache"]
maxAge = 90d
```
Configuration parameters
---------------------
=======
```plugin.@PLUGIN@.ignoreAccountId```
: Specify an account Id that should not be auto disabled.
May be specified more than once to specify multiple account Ids, for example:
```
ignoreAccountId = 1000001
ignoreAccountId = 1000002
```
```plugin.@PLUGIN@.ignoreGroup```
: Specify one group that includes directly or indirectly all the accounts that
should not be auto disabled.
May be specified more than once to specify multiple groups, for example:
```
ignoreGroup = Active Developers
ignoreGroup = Administrators
```
> **NOTE**: The `Service Users` group is always added to the list of groups of
> accounts to not disable.
```plugin.@PLUGIN@.preloadAccounts```
: Allow to preload the active users persistent cache with all the accounts that
are currently flagged as active on All-Users when the plugin starts.
> **NOTE**: When this option is enabled, all users configured in Gerrit will
> always be flagged as active when Gerrit or the plugin is started, even though
> they were not active for a long time.
Default: true.
```plugin.@PLUGIN@.disableAccounts```
: Allow to disable the users that have been evicted from the persistent cache because
of inactivity.
> **NOTE**: When this option is enabled, as soon as a user is evicted from the
> persistent cache is then flagged as inactive on All-Users and therefore will be
> unable to login or execute any operation until is manually reactivated.
Default: true.
```cache."@PLUGIN@.users_cache".maxAge```
: Maximum allowed inactivity time for user.
Value should use common time unit suffixes to express their setting:
* h, hr, hour, hours
* d, day, days
* w, week, weeks (`1 week` is treated as `7 days`)
* mon, month, months (`1 month` is treated as `30 days`)
* y, year, years (`1 year` is treated as `365 days`)
If a time unit suffix is not specified, `hours` is assumed.
Default: 90 days
Metrics
---------------------
Currently, the metrics exposed are the following:
```groovy_track_and_disable_inactive_users_active_users```
: Indicates the number of active users.
A user is considered active when its inactivity period is not greater than `cache."@PLUGIN@.users_cache".maxAge` .
SSH commands
---------------------
This script exposes the following SSH commands to the Gerrit administrator:
## Name
`list`, list active accounts
## Synopsis
````
ssh -p <port> <host> track-and-disable-inactive-users list [--verbose]
```
## Description
display the list of all account-ids that are considered active and
their last activity timestamp.
The `--verbose` option produces a more detailed progress of the extraction
of the active accounts and is intended to be used for debugging purposes.
## Access
Any user who has been granted the ‘Administrate Server’ capability.
## Scripting
This command is intended to be used in scripts and not interactively, as it
may return a very long list of accounts and doesn't do any pagination.
## Examples
List all the currently active accounts.
```
$ ssh -p 29418 review.example.com track-and-disable-inactive-users list
SEE ALSO
[source] (/admin/track-and-disable-inactive-users-1.3.groovy)