Fingera

Fingera (created by Innovatrics, a global leader in biometric technology) is a next-generation access control and attendance management system, built upon industry-leading biometric technology, that is designed to meet the needs of small and medium businesses.

To allow seamless entry and attendance face biometry, the SmartFace is integrated using the FingeraAdapter module.

Fingera Adapter

The module connects to SmartFace AccessController gRPC stream, processes GRANTED notifications and sends Open request to Fingera Server. The Fingera server can be configured to react accordingly as per current project and workflow.

Development

The source code is available on our Github. To run application localy, follow these steps

  • clone the https://github.com/innovatrics/smartface-integrations/ Github repository using the git commands or download the code uzing the “Download Zip” button
  • open terminal
  • navigate to /src/FingeraAdapter
  • run dotnet run

Deployment

To deploy the module, follow these steps

  • open terminal
  • navigate to /src/FingeraAdapter
  • for MS Windows version run dotnet publish -c Release -r win10-x64 --self-contained true -p:ReadyToRun=false -p:PublishSingleFile=true -p:PublishTrimmed=false -p:IncludeNativeLibrariesForSelfExtract=true -p:IncludeAllContentForSelfExtract=true
  • for Linux (x64) version run dotnet publish -c Release -r linux-x64 --self-contained true -p:ReadyToRun=false -p:PublishSingleFile=true -p:PublishTrimmed=false -p:IncludeNativeLibrariesForSelfExtract=true -p:IncludeAllContentForSelfExtract=true

Deploy to Docker

  • navigate to root of this repository
  • the following commands are samples and you will likely need to use your own repository to upload your version of the code. If you do not wish to do any changes, you can use the code provided by us as per the usage section of this page. Please adjust the version if needed, instead of 1.0 please use your desired version number
  • run build for docker and push to a registry, please use the following commands
  • docker build -f src/FingeraAdapter/Dockerfile -t registry.gitlab.com/innovatrics/smartface/integrations-fingera:1.0 .
  • docker tag registry.gitlab.com/innovatrics/smartface/integrations-fingera:1.0 registry.gitlab.com/innovatrics/smartface/integrations-fingera:latest
  • docker push registry.gitlab.com/innovatrics/smartface/integrations-fingera:1.0
  • docker push registry.gitlab.com/innovatrics/smartface/integrations-fingera:latest

Configuration

When running the application you can configure it via the appsettings.json file in the Windows version, or using the environment variables in the .env.fa file when the module is deployed as a docker container.

SmartFace Server To set up the SmartFace server to be used as a source to the biometry we need to set up the path to the SmartFace’s Access Controller service and the port it is running on. Unless a specific setup was used, you can use the configuration below.

# this example is used in the .env.fa format
AccessController__Host=SFAccessController
AccessController__Port=80

Fingera Server Additional configuration is available to set the path to the Fingera server and to set the pairs of values - matching bindings between the Fingera and SmartFace cameras.

# this example is used in the appsettings.json format
"Fingera": {
        "Server": "http://1.1.1.1",
        "Cameras": [
            {
                "Source": "FF197D00-7307-4238-9706-6794D137755A",
                "Target": "cam_FF197D00-7307-4238-9706-6794D137755A"
            },
            {
                "Source": "7A27194C-D81E-4FFD-BF15-6550D6B8B8B5",
                "Target": "cam_7A27194C-D81E-4FFD-BF15-6550D6B8B8B5"
            },
            {
                "Source": "847F65B6-3211-41AE-8A33-72D595A48CE7",
                "Target": "cam_847F65B6-3211-41AE-8A33-72D595A48CE7"
            }
        ],
        

Policies You can specify currently one policy AllowedTimeWindow which authorizes open request only within a given time frame. We receive notifications with UTC date, time in policy must also be specified in UTC date (time)

# this example is used in the appsettings.json format
"Policies" : {
    "AllowedTimeWindow" : {
        "Enabled" : true,
        "From" : "03:00",
        "To" : "19:00"
    }
    ...

Usage

Add following pattern to existing docker compose file (docker-compose.yml) and set up the .env.fa file as described above:

      
  ...

  sf-station:
    image: ${REGISTRY}sf-station:${SFS_VERSION}
    container_name: SFStation
    restart: unless-stopped
    ports:
      - 8000:8000
    env_file: .env.sfstation

    # Fingera Adapter starts here
    fingeraadapter:
    image: ${REGISTRY}integrations-fingera:1.0
    container_name: SFFingera
    restart: unless-stopped
    env_file: .env.fa

networks:
  default:
    external:
      name: sf-network