# Manage tenant settings

From the Tenant Configuration page, tenant administrators (`tenant-admin`s) can conveniently configure their tenant settings. This space currently includes settings such as enabling public visibility for Spark service APIs, permission controls, and IP allowlisting.

The Tenant Configuration page can be found in the [Options](/navigation/options.md) menu.

## Set *General configurations*

### Choose the Public API visibility

Spark services have private visibility by default. By checking **Enable 'Public' API visibility settings**, this will turn on the ability to create public Spark services. *Public* Spark services do not require any authentication to execute. For more detailed instructions, see [Authorization - Public APIs](/spark-apis/authorization-public-apis.md).

### Choose the Neuron compiler for newly uploaded services

This defines a version of [Neuron](/build-spark-services/neuron.md), Spark's Excel-to-code compiler to use for all new services. This setting can be overridden on upload.

* *Stable Latest*: Spark will use the latest stable release of Neuron available.
* *Release Candidate*: Spark will always use a release candidate release if available. A release candidate is a version of Spark that may contain enhancements and fixes that were not included in the latest stable version. If there are no release candidate versions available, Spark will use *Stable Latest*. When a service is compiled using a *Release Candidate*, subsequent updates will also be performed using *Release Candidate*.
* In addition to these options, a specific version of Neuron can be used for all newly uploaded services.

This setting can be overridden on upload. Also refer to the [Neuron](/build-spark-services/neuron.md) [Neuron release history](/build-spark-services/neuron/neuron-release-history.md).

### Choose the Neuron compiler version for additional service versions

When [Folder overview](/navigation/folder-overview.md#add-new-version) is applied to a service, there is also an option to define which version of Neuron to use for a service update. This will only apply to any new services that are uploaded to Spark. This setting can be overridden on upload.

* *Tenant Default*: Spark will use the version of Neuron defined above for newly uploaded services.
* *Maintain Version*: Spark will try to use the same version of Neuron as the previous version of the service. If Spark cannot determine what version of Neuron was used on the previous version of the service, then Spark will use the **Stable Latest** version of Neuron.
* *Stable Latest:* Spark will use the latest stable release of Neuron available for the update.
* *Release Candidate*: Spark will use the release candidate version (see definition above) if available.

Also refer to the [Neuron](/build-spark-services/neuron.md) [Neuron release history](/build-spark-services/neuron/neuron-release-history.md).

### Set the Coherent Assistant Hybrid Runner URL

When this is defined, Coherent Assistant will direct API calls and execution to your hybrid runner URL or [XConnector](/xconnector/introduction-to-xconnector.md) instead of the Coherent Spark systems.

## Define Explainer domain URL in *Explainer configurations*

Explainer is an application from Coherent that can make dynamic insurance front-ends using Microsoft Excel.

&#x20;Define the Explainer Domain URL (the root domain for Explainer user interfaces) here. Replace the default URL with your own if you need to host the Explainer UI in your own domain. Please note clicking **Save** while the URL input is empty will repopulate the previously saved URL.

## Assign permissions through *Features permissions*

Spark services can be called using [Authorization - API keys](/spark-apis/authorization-api-keys.md). For better security, by default API keys cannot also be used to call other microservices that serve Spark services.

If you are looking to perform more of the service management or to access advanced features, the *Features permissions* allow API keys to also be used to call backend microservices. Each row represents a feature permission which can be thought of as folders of endpoints grouped by function.

More information can be found in [Permissions - Features permissions](/spark-apis/authorization-api-keys/permissions-features-permissions.md).

## Restrict Spark access via IP allowlisting

Check the box labeled *Enable IP allowlisting* to restrict access to the Spark UI and Spark service APIs to specific IP addresses. This restricts access to this tenant only for specified IP addresses, reducing the possibility of unauthorized access.

1. Enter the name to assign to the IP address under *Rule name.*
2. Insert the IP address in IPv4, IPv6, or in CIDR notation standard for specifying blocks of IP addresses under *IP address*.
3. Add other relevant information under *Description*. (This column is optional)
4. Click **Save** when completed.

Note that in order to prevent any account lockouts, credentials that include the `tenant-admin` group including accounts, API keys, or credentials, are not restricted from the IP allowlisting.&#x20;

## Manage tags

Tags can be useful to categorize the service versions uploaded to Spark. Within *Tenant configuration* tenant administrators can enable tagging and define the universe of tags. Tags can be used associated with a service either during the service upload or modified in the [Service Documentation](/navigation/service-documentation.md).

## Configure webhooks

Spark can send a webhook even when particular actions occur in Spark. More information can be found in [Webhooks: Connect Spark with external systems to automate workflows](/integrations/webhooks-connect-spark-with-external-systems-to-automate-workflows.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.coherent.global/tenant-administration/manage-tenant-settings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
