> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Autoconfiguration

export const SpringPropertiesTable = ({metadata}) => {
  const [query, setQuery] = React.useState('');
  const visible = query.trim() ? metadata.properties.filter(p => p.name.toLowerCase().includes(query.toLowerCase()) || p.description && p.description.toLowerCase().includes(query.toLowerCase())) : metadata.properties;
  return <div>
            <input type="text" placeholder="Filter by name or description…" value={query} onChange={e => setQuery(e.target.value)} style={{
    marginBottom: '1rem',
    padding: '0.5rem 0.75rem',
    width: '100%',
    border: '1px solid var(--border)',
    borderRadius: '0.375rem'
  }} />
            <table style={{
    width: '100%',
    borderCollapse: 'collapse',
    fontSize: '0.875rem'
  }}>
                <thead>
                <tr>
                    <th style={{
    textAlign: 'left',
    padding: '0.5rem',
    borderBottom: '2px solid var(--border)'
  }}>Name</th>
                    <th style={{
    textAlign: 'left',
    padding: '0.5rem',
    borderBottom: '2px solid var(--border)'
  }}>Type</th>
                    <th style={{
    textAlign: 'left',
    padding: '0.5rem',
    borderBottom: '2px solid var(--border)'
  }}>Default</th>
                    <th style={{
    textAlign: 'left',
    padding: '0.5rem',
    borderBottom: '2px solid var(--border)'
  }}>Description</th>
                </tr>
                </thead>
                <tbody>
                {visible.map(prop => <tr key={prop.name} style={{
    borderBottom: '1px solid var(--border)'
  }}>
                        <td style={{
    padding: '0.5rem',
    verticalAlign: 'top'
  }}>
                            <code style={{
    fontSize: '0.8rem'
  }}>{prop.name}</code>
                            {prop.deprecated && <span style={{
    marginLeft: '0.4rem',
    fontSize: '0.7rem',
    background: '#f59e0b22',
    color: '#b45309',
    border: '1px solid #f59e0b66',
    borderRadius: '0.25rem',
    padding: '0 0.3rem'
  }}>
                    deprecated
                  </span>}
                        </td>
                        <td style={{
    padding: '0.5rem',
    verticalAlign: 'top'
  }}>
                            <code style={{
    fontSize: '0.8rem'
  }}>{prop.type}</code>
                        </td>
                        <td style={{
    padding: '0.5rem',
    verticalAlign: 'top'
  }}>
                            {prop.defaultValue !== undefined ? <code style={{
    fontSize: '0.8rem'
  }}>
                                    {Array.isArray(prop.defaultValue) ? prop.defaultValue.join(', ') : String(prop.defaultValue)}
                                </code> : <span style={{
    color: 'var(--muted)'
  }}>—</span>}
                        </td>
                        <td style={{
    padding: '0.5rem',
    verticalAlign: 'top'
  }}>{prop.description || '—'}</td>
                    </tr>)}
                </tbody>
            </table>
            {visible.length === 0 && <p style={{
    textAlign: 'center',
    color: 'var(--muted)',
    marginTop: '1rem'
  }}>
                    No properties match “{query}”
                </p>}
        </div>;
};

export const metadata = {
  groups: [{
    name: "limits",
    type: "com.activeviam.limits.autoconfigure.common.LimitsConnectionConfigurationProperties",
    sourceType: "com.activeviam.limits.autoconfigure.common.LimitsConnectionConfigurationProperties"
  }],
  properties: [{
    name: "limits.autoconfiguration",
    type: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties",
    description: "The properties defined on an Atoti Server that is aiming to connect with Atoti Limits.",
    sourceType: "com.activeviam.limits.autoconfigure.common.LimitsConnectionConfigurationProperties"
  }, {
    name: "limits.autoconfiguration.as-of-date",
    type: "java.lang.String",
    description: "The Atoti Server's AsOfDate dimension.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.atoti-base-url",
    type: "java.lang.String",
    description: "The URL of the Atoti Server. This will be required when the application server and Atoti Limits are not on the same machine.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.atoti-configuration-execute-url",
    type: "java.lang.String",
    description: "The URL of the Atoti Server cube's \/configuration\/execute url.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.atoti-configuration-suffix",
    type: "java.lang.String",
    description: "The Atoti Server cube's \/configuration REST URL suffix.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.atoti-configuration-url",
    type: "java.lang.String",
    description: "The URL of the Atoti Server cube's Configuration service.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.atoti-discovery-suffix",
    type: "java.lang.String",
    description: "The Atoti Server cube's \/discovery REST URL suffix.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.atoti-discovery-url",
    type: "java.lang.String",
    description: "The URL of the Atoti Server cube's Discovery service.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.atoti-execute-suffix",
    type: "java.lang.String",
    description: "The URL of the Atoti Server cube's \/execute suffix.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.atoti-mdx-download-url",
    type: "java.lang.String",
    description: "The URL of the Atoti Server's endpoint to send evaluation requests.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.atoti-mdx-query-url",
    type: "java.lang.String",
    description: "The URL of the Atoti Server cube's \/mdx\/query url.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.atoti-server-rest-url",
    type: "java.lang.String",
    description: "The URL of the Atoti Server cube's REST service.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.connect-on-application-ready-event",
    type: "java.lang.Boolean",
    description: "True if the application should attempt to connect to Atoti Limits once the application has started and an ApplicationReadyEvent is emitted by Spring. False if the connection should be manually triggered. Default is true.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties",
    defaultValue: true
  }, {
    name: "limits.autoconfiguration.connection-attempts",
    type: "java.lang.Long",
    description: "The number of attempts to connect to the module before quitting. If less than zero, the Atoti Server will continuously try to connect.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties",
    defaultValue: -1
  }, {
    name: "limits.autoconfiguration.connection-delay",
    type: "java.lang.Long",
    description: "The time delay in milliseconds between consecutive attempts to connect to the module.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties",
    defaultValue: 10000
  }, {
    name: "limits.autoconfiguration.content-server.limits-created-measures-owners",
    type: "java.util.List<java.lang.String>",
    description: "The list of roles that will be able to view calculated measures created by Limits in the connected server.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties$LimitsConnectionContentServerProperties"
  }, {
    name: "limits.autoconfiguration.content-server.name",
    type: "java.lang.String",
    description: "The name given to the connected Atoti Server's Content server.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties$LimitsConnectionContentServerProperties"
  }, {
    name: "limits.autoconfiguration.content-server.url",
    type: "java.lang.String",
    description: "The URL of the connected Atoti Server's Content server.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties$LimitsConnectionContentServerProperties"
  }, {
    name: "limits.autoconfiguration.content-server.version",
    type: "java.lang.String",
    description: "The connected Atoti Server's Content server version.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties$LimitsConnectionContentServerProperties"
  }, {
    name: "limits.autoconfiguration.enabled",
    type: "java.lang.Boolean",
    description: "True if autoconfiguration is enabled on the Atoti Server, false if a connection to Atoti Limits is not desired.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties",
    defaultValue: true
  }, {
    name: "limits.autoconfiguration.level-path-url",
    type: "java.lang.String",
    description: "The URL used to locate the LevelPathRestService.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.limits-base-url",
    type: "java.lang.String",
    description: "The base URL to Atoti Limits. This is **required** as a base to construct valid REST URLs.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.limits-discovery-url",
    type: "java.lang.String",
    description: "The URL of the Limits Discovery REST service.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.limits-ping-url",
    type: "java.lang.String",
    description: "The URL of the limits `ping` endpoint that is used to check if the server is running.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.limits-rest-url",
    type: "java.lang.String",
    description: "The URL of the Limits REST service.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.server-name",
    type: "java.lang.String",
    description: "The name of the Atoti Server. This property is required if you are using the default catalog name: 'Catalog'.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.server-version",
    type: "java.lang.String",
    description: "The version of the connected Atoti Server.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }, {
    name: "limits.autoconfiguration.service-principal",
    type: "java.lang.String",
    description: "The name of the user authenticated to perform machine-to-machine requests. This property is **required**.",
    sourceType: "com.activeviam.limits.core.shared.autoconfigure.LimitsConnectionProperties"
  }],
  hints: [],
  ignored: {
    properties: []
  }
};

## Overview

These are the properties used to auto-configure the Atoti server that will connect to Atoti Limits.
For the steps to connect to a server, see [Atoti Java](../../../dev/integration/java). Note that we provide all properties that
can be used, but only the following are required:

* `limits.autoconfiguration.limits-base-url`
* `limits.autoconfiguration.service-principal`
* `limits.autoconfiguration.server-name` - This property is only required if you are using the default catalog name: ‘Catalog’.

The remaining properties are auto-configured. We have provided them for information and in the event
that you need to explicitly define them for your Atoti Server.

## Module properties

<SpringPropertiesTable metadata={metadata} />
