Grooper Service

From Grooper Wiki
(Redirected from Service)

Grooper Services are various executable programs that run as a Windows Service to facilitate Grooper processing. Service instances are installed, configured, started and stopped using Grooper Command Console (or in older Grooper versions, Grooper Config).

About

Services are utilities that perform specialized operations within the Grooper environment. The two most common Grooper Services are "Activity Processing" and "Import Watcher".

  • Activity Processing is a service that executes processing jobs and tasks in a Batch Process. Running one or more Activity Processing services allows your system to automate Activity tasks when processing document content in a Batch.
  • Import Watcher is a service that watches an assigned external storage location, like a Windows folder or an email inbox, and will import its contents into Grooper at designated times or polling cycles. Running one or more Import Watcher services allows your system to automate Batch creation from file content.


Service instances are installed and managed from Grooper Command Console (GCC) using the services commands. More information on installing and managing services can be found in this section of the Grooper Command Console article.

Service types

There are currently 6 different Grooper Services you can install.

  • Activity Processing - Executes Activities which perform the work associated with steps in a Batch Process.
  • API Services - Exposes a set of API endpoints, enabling 3rd party applications to interact with the Grooper Repository.
  • Grooper Licensing - Distributes Grooper licensing to workstations when using the "self-hosted" licensing method.
  • Import Watcher - Schedules and runs Import jobs to import file content into Grooper.
  • Indexing Service - Synchronizes data to AI Search indexes as documents are added, edited and deleted from the Grooper Repository.
  • System Maintenance Service - Runs the "System Maintenance" command on a recurring schedule.

Installing Services

Services are installed from Grooper Command Console using the following command:

services install <connectionNo> <typeName> <userName> <password>
  • <connectionNo> - Enter the Grooper Repository connection number for which the service is installed.
    • Unsure what the Grooper Repository's connection number is? Use the connections list to display all Grooper Repository connections.
  • <typeName> - Enter the Grooper Service's type name for the service you wish to install.
    • Unsure what the Service's type name is? Just enter the first three letters.
      • Activity Processing = act
      • Import Watcher = imp
      • Indexing Service = ind
      • API Services = api
      • System Maintenance Service = sys
      • Licensing = lic
  • <userName> - Enter the service user's account name.
  • <password> - Enter the service user's password.

Once installed, Grooper Services should be managed from the Design page using the Machines node. See below for more information.

Managing services from the Design page

Managing services typically involves:

  • Starting a service
  • Stopping a service
  • Editing a service

While it is possible to do some of these things from Grooper Command Console, it is generally easiest to do so from the Design page.

To manage services from the Design page:

  1. Go to the Design page.
  2. Navigate to the "Machines" folder.
  3. To select a service instance first either:
    • From the "Machines" tab, select the machine where the service is installed.
    • Or, select the "Services" tab to view all services installed on all machines connected to the Grooper Repository.
  4. Select the service instance you wish to manage.
  5. To start the service, press the "Start" button (play_circle).
  6. To stop the service, press the "Stop" button (stop_circle).
  7. To edit the service instance:
    1. First stop the service (play_circle).
    2. Edit the "Service Properties" as needed.
    3. Press the "Save" button (save).
    4. Last, start the service (stop_circle).

Things you can't do from the Design page

There are certain things you cannot do from the Design page.

You can't install a service from the Design page.

Services are installed from Grooper Command Console.

You can't uninstall a service from the Design page.

Services are uninstalled from Grooper Command Console.

You can't change a service user/password from the Design page.

You must change a service user (or their password) from the Windows Services system application.

  1. Open the "Services" app.
  2. Search for the Grooper service instance (It will be named like the following: Grooper {ServiceTypeName}, Instance {##}).
  3. Right click it and select "Properties".
  4. Go to "Log On".
  5. Adjust the service user as needed.
  6. Press "Apply" or "OK" when finished.


Additional info

Least-privileged service accounts

Minimum service user rights

Grooper services — such as the Activity Processing service — run under dedicated Windows service accounts to automate task processing for Batches. These accounts must be granted a minimum set of permissions to execute tasks.

From a security standpoint, service accounts should be granted only the permissions required for their function. It is unadvisable to grant full local administrator privileges or elevated database roles to any Grooper service account.

Permission Type Where to Configure Reason
Local Users Group Local Computer Management → Local Users and Groups → Groups → Users Grants rights to run installed applications, including Grooper
File Store Access NTFS / Share Windows Explorer → Folder Properties → Security (NTFS) and/or Share Permissions Read and write access to the Grooper file store location
Database Access SQL Server SQL Server Management Studio → Security → Logins → [account] → User Mapping → [GrooperDB] Read and write access to the Grooper database. Grant db_datareader and db_datawriter on the Grooper database.
Logon As Service Local Security Policy Local Security Policy → Local Policies → User Rights Assignment → Log on as a service Required to run services installed via Grooper Command Console

Note: These permissions are sufficient for Activity Processing services and serve as a baseline for all Grooper services. Other Grooper services may require additional permissions depending on their function. For example, an Import Watcher service account may need read access to directories used as import sources. Always scope additional permissions to the minimum required for that service's specific function.


Services with "Error" statuses

A common issue will occur with least-privileged accounts. This can cause some user confusion.

A service with an error status.

When viewing services from the Machines node on the Design page you may see services with an error status.

  • "Error" is a general status Grooper uses when it can't determine if a service is running or stopped.
  • Most typically, "Error" indicates the query to get the service's status has failed.
  • In this case, the entity checking the status (the Grooper app pool user in IIS) does not have permission to check the service's status.
  • This doesn't necessarily mean the service is not running (nor does it mean it's stopped). It just means the app pool user can't verify its status.

This issue does not occur when service accounts have administrator rights, as broad access is granted by default. For least-privileged accounts, however, the service DACL must be explicitly modified to grant the rights needed to query status, start, and stop the service.


Example Scenario:

  • The Grooper Web Client is installed on web server named GRPWEB01. The user "DOMAIN\grooperapp" is the app pool user in IIS
  • Grooper Activity Processing services are installed on a processing server named GRPACT01.
  • The user "DOMAIN\grooperapp" does not have permissions to access GRPACT01. So, it cannot verify the status of services installed on that machine.
  • When any user opens up the Grooper web app, they will see the services installed on GRPACT01 listed with an "Error" status.

Addressing "ghost services" - Deleting services from Windows

Very rarely, a Grooper service will not uninstall properly when you uninstall a Grooper service instance. Or, a user may delete a Grooper Repository connection or purge a Grooper Repository without uninstalling services first.

This can make it appear as though a duplicate or "ghost" Windows service is installed without being listed in GCC (or Grooper Config before version 2024).


If this does occur, you will need to manually delete the service. If you know the name of the service instance you need to delete (something like Grooper.ServiceTypeName.##), you can use the following command lines to stop the service (if necessary) and manually delete it.

SC STOP Grooper.ServiceTypeName.##
SC DELETE Grooper.ServiceTypeName.##

OR

You can delete the service from the Windows Registry Editor, using the following steps:

  1. Open the Registry Editor (regedit.exe)
  2. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.
  3. Select the key of the service you want to delete.
    • Grooper services will always be named something like Grooper.ServiceTypeName.##
  4. From the "Edit" menu select "Delete.
  5. You will be prompted "Are you sure you want to delete this Key?". Click Yes.
  6. Exit the Registry Editor.