---
title: "Evaluators"
description: "Optimize your configuration with dynamic evaluators for a tailored runtime experience. (Gitana 4.0)"
product: "Gitana"
version: "4.0"
url: "/documentation/gitana/4.0/developers/ui-dev/evaluators"
---

# Evaluators

Evaluators are used to define conditions that determine whether a block of configuration should be included in the evaluated and merged configuration document.

Evaluators work on different aspects of the runtime experience, including:

- what is being observed
- who is observing it
- what URL is being looked at
- what objects are known about at the time (i.e. observables)
- what permissions and authorities the current user has over things that are being observed

There are many types of evaluators available.

## The `condition` parameter

Each conditional block names an `evaluator` and may supply a `condition`. In the `evaluate` phase of the [Configuration Service](/documentation/gitana/4.0/developers/ui-dev/configuration.md), the evaluator matches the current runtime state against the given condition. If true, the block's `config` section is carried forward and merged into the final configuration document.

```
{
    "evaluator": "{evaluatorId}",
    "condition": {condition},
    "config": {
        ...
    }
}
```

Each evaluator has its own support for different kinds of conditions, so set the condition according to what the evaluator expects (if it is needed at all). For example:

- `document-has-type` takes a type as its condition (for example, `"my:article"`)
- `document-is-file` takes no condition
- `and` and `or` take an array of condition blocks
- `not` takes a single condition block

A `condition` is only applicable when an `evaluator` is supplied. If an `evaluator` is not supplied, the configuration block always evaluates to `true`.

Boolean evaluators assume a `condition` of `true`, which tests for the evaluator to return true. You can adjust this to test the opposite by setting `condition` to `false`.

## Available evaluators

The following evaluators are available:

- [and](/documentation/gitana/4.0/developers/ui-dev/evaluators/and.md)
- [context-application](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-application.md)
- [context-archive](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-archive.md)
- [context-conflict](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-conflict.md)
- [context-datalist](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-datalist.md)
- [context-dataview](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-dataview.md)
- [context-definition](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-definition.md)
- [context-deployment](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-deployment.md)
- [context-document](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-document.md)
- [context-document-has-feature](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-document-has-feature.md)
- [context-document-has-property-value](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-document-has-property-value.md)
- [context-document-has-qname](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-document-has-qname.md)
- [context-document-has-type](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-document-has-type.md)
- [context-document-is-association](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-document-is-association.md)
- [context-document-is-container](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-document-is-container.md)
- [context-document-is-datalist](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-document-is-datalist.md)
- [context-document-is-multilingual](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-document-is-multilingual.md)
- [context-document-is-node](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-document-is-node.md)
- [context-document-is-tag](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-document-is-tag.md)
- [context-form](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-form.md)
- [context-group](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-group.md)
- [context-platform](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-platform.md)
- [context-principal](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-principal.md)
- [context-project](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-project.md)
- [context-project-application](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-project-application.md)
- [context-release](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-release.md)
- [context-role](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-role.md)
- [context-team](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-team.md)
- [context-user](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-user.md)
- [context-vault](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-vault.md)
- [context-workflow](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-workflow.md)
- [context-workflow-model](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-workflow-model.md)
- [context-workflow-task](/documentation/gitana/4.0/developers/ui-dev/evaluators/context-workflow-task.md)
- [current-user-has-authority](/documentation/gitana/4.0/developers/ui-dev/evaluators/current-user-has-authority.md)
- [current-user-has-permission](/documentation/gitana/4.0/developers/ui-dev/evaluators/current-user-has-permission.md)
- [document-has-attachment](/documentation/gitana/4.0/developers/ui-dev/evaluators/document-has-attachment.md)
- [document-has-qname](/documentation/gitana/4.0/developers/ui-dev/evaluators/document-has-qname.md)
- [document-has-type](/documentation/gitana/4.0/developers/ui-dev/evaluators/document-has-type.md)
- [document-is-file](/documentation/gitana/4.0/developers/ui-dev/evaluators/document-is-file.md)
- [document-is-folder](/documentation/gitana/4.0/developers/ui-dev/evaluators/document-is-folder.md)
- [document-is-locked](/documentation/gitana/4.0/developers/ui-dev/evaluators/document-is-locked.md)
- [document-is-locked-by-current-user](/documentation/gitana/4.0/developers/ui-dev/evaluators/document-is-locked-by-current-user.md)
- [entity-is-type](/documentation/gitana/4.0/developers/ui-dev/evaluators/entity-is-type.md)
- [entity-property-equals](/documentation/gitana/4.0/developers/ui-dev/evaluators/entity-property-equals.md)
- [id](/documentation/gitana/4.0/developers/ui-dev/evaluators/id.md)
- [not](/documentation/gitana/4.0/developers/ui-dev/evaluators/not.md)
- [or](/documentation/gitana/4.0/developers/ui-dev/evaluators/or.md)
- [project-has-application](/documentation/gitana/4.0/developers/ui-dev/evaluators/project-has-application.md)
- [project-has-module](/documentation/gitana/4.0/developers/ui-dev/evaluators/project-has-module.md)
- [project-workspaces-enabled](/documentation/gitana/4.0/developers/ui-dev/evaluators/project-workspaces-enabled.md)
- [tenant-has-plan](/documentation/gitana/4.0/developers/ui-dev/evaluators/tenant-has-plan.md)
- [uri-match](/documentation/gitana/4.0/developers/ui-dev/evaluators/uri-match.md)
- [uri-starts-with](/documentation/gitana/4.0/developers/ui-dev/evaluators/uri-starts-with.md)
